Repository navigation
Releases
Releases · apexshift/atom-crafter-releases
0.2.9
Added
- Canvas inline text editing (#659). Double-click a heading, paragraph, span, link, button, list item or label on the canvas to edit its text in place. Enter (or clicking elsewhere) saves to the
.astrosource; Escape cancels. Text containing a{dynamic expression}is blocked with an "edit in source" tooltip (#660, #661). - Multi-line text (#662). Shift+Enter inserts a line break, saved as
<br />. The Settings content field now shows each<br>as a muted ↵ marker that deletes as one unit, so the tag is visible wherever the text is edited. - Edit-mode feedback (#663). While editing, the preview toolbar shows "h1: editing — Enter to save · Esc to cancel" with the node's icon, the canvas label reads "h1: editing", and the node's outline turns orange (the complement of the blue selection ring), with WCAG AA text on the orange label. Editable text shows a text cursor on hover.
Fixed
- Inline-edit interactions. Click to place the caret, drag to select and double-click a word all work inside the element being edited; clicking elsewhere on the canvas now saves the edit; and double-clicking text inside a layout or component drills into it again instead of doing nothing.
0.2.8
Fixed
- Spurious blank line after each property in generated
interface Propsblock (#625).renderDefinitionreturned a string with an implicit leading\n(the per-property separator). The insert-into-existing-block path also had a\nalready present in the source before}, producing a double newline — a blank line between every consecutive property. Removed the implicit leading\nfromrenderDefinitionand made each of the four call sites explicit about their separator.
0.2.7
Fixed
- Double-clicking a component in the Components or Layouts panel inserted it after the Layout wrapper, not inside it (#624).
PalettePanelandLayoutsPanelcalledaddComponent(name, null), bypassinginsertTargetForand always appending to the end of root nodes. BothonInsertcallbacks now compute the insertion target viainsertTargetFor— matching the behaviour of the Insert palette — so the selection context is respected and the new component lands inside the correct container.
0.2.6
Fixed
- CMD+Enter (Focus Class Field) not invokable via Command Palette (#623). The shortcut appeared in the CMD+/ keyboard shortcuts overlay but had no registered handler in
waveOneHandlers.ts, so selecting it from the Command Palette (CMD+K) was a silent no-op. Registered the handler: checksselectedIdfor applicability, switches the inspector to Settings, and bumpsclassFocus— matching the existing keyboard handler.
0.2.5
Fixed
- Data-attribute value not saved — bare attribute written instead (#620). After committing a new attribute name in the Attributes panel,
AttrEditorremounted withisNew=falsebut the value field (BindField/BindInput) received no auto-focus signal. Keystrokes typed immediately after pressing Enter went to the browser body rather than the value input, leaving the attribute bare. ThreadedautoFocusthroughBindField → BindInputand passfocusValuefromAttrEditor, so the value field grabs focus immediately after name commit. - Inline content edits not persisted for heading elements (h1–h6) (#621). Typing into the Content field for a heading in the Settings panel was silently discarded. Same root cause as #622 — covered by that fix.
- Anchor content and href value not persisted from Settings panel (#622). Editing the content or
hrefof an<a>element via the Settings panel had no visible effect.RichContent.onChangeemits id-lessRichContentInputNode[]from DOM parsing, butasPageNodeinApp.tsxrequiredtypeof value.id === "string"and silently dropped every node that lacked one. Removed the unnecessary id check;setNodeInlineregenerates all node ids viawithIds()anyway.
0.2.4
Fixed
- Escape key still exited component edit context when focus had not yet moved to the dropdown listbox (#626). The initial fix (
stopPropagationon the listbox) covered the steady-state case but missed a timing gap:openMenu()defers the focus-move to the listbox viarequestAnimationFrame, so if Escape is pressed immediately after opening, focus is still on the trigger<button>and the event bubbled unhandled to the globalbackOutOfComponentlistener. Added an Escape case toonButtonKeyDownthat intercepts and cancels the menu whenever the popup is open, closing the gap.
0.2.1
Fixed
- App failed to launch on first open. The TypeScript compiler package was missing from the packaged app because it was listed as a dev dependency. Five Electron main-process modules use the TypeScript Compiler API at runtime to parse and edit Astro component frontmatter — moving
typescripttodependenciesand including it in the electron-builder bundle resolves the crash.
0.2.0
The headline of this release is a full Code editor mode built on Monaco — a second editing surface alongside the visual canvas, toggled with ⌘\. The release also ships Astro Islands visualisation, CMS content authoring improvements, two new manager panels, a Command Palette, and a broad WCAG AA accessibility pass.
Added
- Code editor mode (⌘\). Switch between Visual mode and the new Monaco-based code editor at any time. Entering Code mode always opens the current Visual canvas page as the active tab; leaving with unsaved changes prompts you to apply or discard them (apply-on-exit).
- File tree. Scoped to project content by default with an "All files" toggle. Create, rename, and delete files and folders from the toolbar. The tree is resizable via a drag handle and scrolls horizontally for deep paths. Indent guides and expand/collapse-all toggle included.
- Code editor tabs and session state. Open buffers persist across app restarts; the file list and active tab are restored on re-entry. ⌘S saves the active buffer to disk.
- Astro frontmatter syntax highlighting.
.astrofiles render dedicated frontmatter highlighting in the Monaco editor. - Cmd+click import navigation. Jump to any imported file by Cmd+clicking its path — ES imports, CSS
@import, Sass@use, CommonJSrequire, and tsconfig path aliases (@/…) are all resolved. - Problems panel (⌘⇧M). Lists all Monaco diagnostics for the active file. HTML and
.astrofiles are also checked for unclosed or mismatched tags. - Astro Islands & Slots visualisation. The visual canvas now identifies and annotates client directive islands (
client:load,client:idle, etc.) and named slots, keeping the visual structure accurate for component-heavy pages. - Command Palette (⌘K). A searchable list of every registered command.
- Integrations panel. Browse and manage Astro integrations configured in
astro.config.mjs. - Site Map panel. A top-level view of every page and route in the project.
- CMS: create and delete entries. The CMS panel now supports creating new entries in glob collections and deleting existing ones, with an undo step registered for each operation.
- Component dependency graph (dev builds). A force-directed SVG view of the module-import graph with layer violations highlighted. Available in the Developer menu in dev builds.
- Registry Browser (dev builds). A dev-only window for browsing all registered StyleSections, PanelViews, and Commands.
Changed
- Code editor mode toggle label changed from "IDE" to "Code" in the mode toggle UI.
- Release script now promotes the
[Unreleased]section ofCHANGELOG.mdto a versioned heading automatically and refuses to release if the section is empty.
Fixed
- Untracked folders no longer duplicate in the file tree when changes are detected.
- Code editor session correctly reopens the canvas page when the stored session has no tabs.
- CMS content entry IDs are now stable; focus reliably lands on the new entry after creation.
Accessibility
- WCAG AA audit and fixes across style panel surfaces, manager panels (CMS, Assets, Pages, History, Variables, Framework), and app chrome (Structure, Props, canvas overlays, code dock, terminal, welcome screen, modals).
0.1.27
Added
- Code dock: Cmd+click import navigation. Cmd+clicking any local import path in the code dock jumps directly to that file. Hovering while holding Cmd underlines the path to signal it is clickable.
- Code dock: single-editor with staged apply. The dock now shows one editor at a time with an explicit Apply button, replacing the multi-pane layout. Changes stage locally and are written to disk on apply.
- Code dock: edit-target chip. The current file's name is shown inline in the dock bar so you always know which file you are editing.
Fixed
- Astro files in the code dock now render correct mixed-language highlighting, distinguishing the TypeScript frontmatter from the HTML template.
- Unsigned Mac builds now show a clear explanation dialog instead of a cryptic Squirrel code-signature error when checking for updates.
0.1.26
Fixed
- Props panel host fields are now extracted into a dedicated component, keeping always-mounted views hook-safe and preventing hook order violations.
- Panel compound component overhauled to production quality — more robust layout, consistent sizing, and correct scroll behaviour across panel variants.