@agent-native/core 0.90.1 → 0.90.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +14 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/AgentPanel.tsx +1 -1
- package/corpus/core/src/client/rich-markdown-editor/useCollabReconcile.ts +11 -6
- package/corpus/core/src/client/use-action.ts +39 -2
- package/corpus/core/src/client/use-db-sync.ts +44 -18
- package/corpus/core/src/db/create-get-db.ts +32 -2
- package/corpus/core/src/server/framework-request-handler.ts +52 -4
- package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +5 -0
- package/corpus/templates/assets/.agents/skills/logo-composite/SKILL.md +34 -6
- package/corpus/templates/assets/AGENTS.md +23 -4
- package/corpus/templates/assets/actions/_generation-preset-settings.ts +48 -0
- package/corpus/templates/assets/actions/_helpers.ts +8 -1
- package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +64 -0
- package/corpus/templates/assets/actions/create-generation-preset.ts +11 -3
- package/corpus/templates/assets/actions/generate-image-batch.ts +7 -2
- package/corpus/templates/assets/actions/generate-image.ts +342 -25
- package/corpus/templates/assets/actions/get-library.ts +4 -3
- package/corpus/templates/assets/actions/navigate.ts +2 -1
- package/corpus/templates/assets/actions/refresh-generation-run.ts +5 -1
- package/corpus/templates/assets/actions/update-asset.ts +1 -0
- package/corpus/templates/assets/actions/update-generation-preset.ts +8 -1
- package/corpus/templates/assets/actions/view-screen.ts +8 -1
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +9 -1
- package/corpus/templates/assets/app/hooks/use-image-model-menu.ts +1 -0
- package/corpus/templates/assets/app/hooks/use-navigation-state.ts +11 -0
- package/corpus/templates/assets/app/i18n/zh-TW.ts +64 -0
- package/corpus/templates/assets/app/i18n-data.ts +650 -0
- package/corpus/templates/assets/app/routes/asset.$id.tsx +2 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +44 -33
- package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +1474 -0
- package/corpus/templates/assets/app/routes/library.tsx +43 -1
- package/corpus/templates/assets/server/lib/generation.ts +366 -44
- package/corpus/templates/assets/server/lib/image-processing.ts +252 -0
- package/corpus/templates/assets/server/lib/preset-skeleton.ts +137 -0
- package/corpus/templates/assets/shared/api.ts +47 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +7 -2
- package/corpus/templates/clips/app/components/library/sort-menu.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +114 -33
- package/corpus/templates/clips/app/routes/_app.library._index.tsx +27 -1
- package/corpus/templates/clips/app/routes/record.tsx +157 -68
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +5 -5
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +20 -3
- package/corpus/templates/clips/shared/finalize-recovery.ts +23 -3
- package/corpus/templates/content/AGENTS.md +52 -52
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +188 -8
- package/corpus/templates/content/actions/_builder-docs-client.ts +41 -3
- package/corpus/templates/content/actions/_database-source-utils.ts +998 -160
- package/corpus/templates/content/actions/_database-utils.ts +44 -4
- package/corpus/templates/content/actions/_notion-action-utils.ts +6 -2
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +23 -1
- package/corpus/templates/content/actions/attach-content-database-source.ts +85 -12
- package/corpus/templates/content/actions/change-content-database-source-role.ts +9 -1
- package/corpus/templates/content/actions/delete-content-database.ts +1 -0
- package/corpus/templates/content/actions/get-document.ts +11 -2
- package/corpus/templates/content/actions/list-content-databases.ts +57 -9
- package/corpus/templates/content/actions/prepare-builder-source-review.ts +23 -6
- package/corpus/templates/content/actions/refresh-content-database-source.ts +26 -3
- package/corpus/templates/content/actions/restore-content-database.ts +1 -0
- package/corpus/templates/content/actions/update-document.ts +43 -0
- package/corpus/templates/content/app/components/editor/BuilderBodySyncingNotice.tsx +21 -0
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +0 -1
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +70 -28
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +69 -17
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +4 -4
- package/corpus/templates/content/app/components/editor/body-hydration.ts +112 -0
- package/corpus/templates/content/app/components/editor/builder-body-hydration-pump.ts +52 -0
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +9076 -2876
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +41 -1
- package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +36 -11
- package/corpus/templates/content/app/components/editor/previewDocumentSaveController.ts +21 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +11 -1
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +11 -8
- package/corpus/templates/content/app/global.css +41 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +346 -42
- package/corpus/templates/content/app/hooks/use-db-sync.ts +9 -0
- package/corpus/templates/content/app/hooks/use-documents.ts +47 -0
- package/corpus/templates/content/app/hooks/use-notion.ts +12 -10
- package/corpus/templates/content/app/i18n/zh-TW.ts +35 -0
- package/corpus/templates/content/app/i18n-data.ts +355 -0
- package/corpus/templates/content/app/root.tsx +22 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-database-sources-keep-loading-rows-in-the-background.md +6 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-source-attach-starts-with-usable-rows.md +6 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-source-attachment-now-stays-connected-after-large.md +6 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-source-refreshes-now-show-progress-for-large-docs-blog.md +6 -0
- package/corpus/templates/content/changelog/2026-07-01-database-pages-now-delete-to-trash-without-route-errors.md +6 -0
- package/corpus/templates/content/changelog/2026-07-02-builder-source-refreshes-recover-from-stalled-background-row.md +6 -0
- package/corpus/templates/content/changelog/2026-07-02-builder-sourced-rows-open-with-sync-protection.md +6 -0
- package/corpus/templates/content/changelog/2026-07-02-database-rows-and-pages-open-faster-from-recently-loaded-dat.md +6 -0
- package/corpus/templates/content/changelog/2026-07-02-preview-panels-close-reliably-narrow-sidebar-row-actions-sta.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-builder-sync-progress-no-longer-shows-continue.md +6 -0
- package/corpus/templates/content/shared/api.ts +13 -0
- package/corpus/templates/content/shared/builder-mdx.ts +16 -3
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +23 -13
- package/corpus/templates/design/.agents/skills/responsive-breakpoints/SKILL.md +98 -0
- package/corpus/templates/design/.agents/skills/shader-fills/SKILL.md +162 -0
- package/corpus/templates/design/AGENTS.md +9 -2
- package/corpus/templates/design/actions/add-breakpoint.ts +6 -3
- package/corpus/templates/design/actions/apply-a11y-fix.ts +57 -37
- package/corpus/templates/design/actions/apply-component-prop-edit.ts +41 -20
- package/corpus/templates/design/actions/apply-motion-edit.ts +251 -38
- package/corpus/templates/design/actions/apply-shader-fill.ts +90 -66
- package/corpus/templates/design/actions/apply-visual-edit.ts +282 -55
- package/corpus/templates/design/actions/create-component.ts +29 -60
- package/corpus/templates/design/actions/create-file.ts +9 -2
- package/corpus/templates/design/actions/duplicate-design.ts +31 -2
- package/corpus/templates/design/actions/edit-design.ts +36 -38
- package/corpus/templates/design/actions/generate-design-title.ts +87 -0
- package/corpus/templates/design/actions/generate-design.ts +53 -18
- package/corpus/templates/design/actions/generate-screens.ts +108 -4
- package/corpus/templates/design/actions/get-motion-timeline.ts +35 -7
- package/corpus/templates/design/actions/insert-asset.ts +34 -29
- package/corpus/templates/design/actions/insert-design-native-asset.ts +129 -32
- package/corpus/templates/design/actions/insert-figma-library-asset.ts +35 -30
- package/corpus/templates/design/actions/present-design-variants.ts +7 -2
- package/corpus/templates/design/actions/remove-motion-timeline.ts +31 -36
- package/corpus/templates/design/actions/update-file.ts +190 -75
- package/corpus/templates/design/app/components/design/BreakpointBar.tsx +403 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +469 -222
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +708 -53
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +83 -3
- package/corpus/templates/design/app/components/design/EditPanel.tsx +1091 -6948
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +419 -85
- package/corpus/templates/design/app/components/design/MotionDock.tsx +1124 -103
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +2610 -1398
- package/corpus/templates/design/app/components/design/ReadOnlyDesignBanner.tsx +22 -0
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +2182 -235
- package/corpus/templates/design/app/components/design/bridge/motion-preview.bridge.ts +187 -11
- package/corpus/templates/design/app/components/design/bridge/shader-fill-preview.bridge.ts +376 -1
- package/corpus/templates/design/app/components/design/bridge/shader-runtime.bridge.ts +746 -0
- package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +17 -0
- package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +1 -1
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +1 -3
- package/corpus/templates/design/app/components/design/code-workbench/quickinput/QuickInput.tsx +1 -1
- package/corpus/templates/design/app/components/design/edit-panel/appearance-properties.tsx +518 -0
- package/corpus/templates/design/app/components/design/edit-panel/code-inspect-helpers.tsx +562 -0
- package/corpus/templates/design/app/components/design/edit-panel/component-section.tsx +763 -0
- package/corpus/templates/design/app/components/design/edit-panel/document-colors.ts +94 -0
- package/corpus/templates/design/app/components/design/edit-panel/effects-properties.tsx +780 -0
- package/corpus/templates/design/app/components/design/edit-panel/element-classification.ts +446 -0
- package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +79 -0
- package/corpus/templates/design/app/components/design/edit-panel/field-primitives.tsx +315 -0
- package/corpus/templates/design/app/components/design/edit-panel/fill-gradient-helpers.ts +344 -0
- package/corpus/templates/design/app/components/design/edit-panel/fill-properties.tsx +594 -0
- package/corpus/templates/design/app/components/design/edit-panel/frame-presets-panel.tsx +119 -0
- package/corpus/templates/design/app/components/design/edit-panel/inspector-controls.tsx +248 -0
- package/corpus/templates/design/app/components/design/edit-panel/interaction-state-helpers.ts +45 -0
- package/corpus/templates/design/app/components/design/edit-panel/layout-properties.tsx +693 -0
- package/corpus/templates/design/app/components/design/edit-panel/panel-primitives.tsx +724 -0
- package/corpus/templates/design/app/components/design/edit-panel/position-helpers.ts +207 -0
- package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +628 -0
- package/corpus/templates/design/app/components/design/edit-panel/selection-helpers.ts +91 -0
- package/corpus/templates/design/app/components/design/edit-panel/stroke-properties.tsx +649 -0
- package/corpus/templates/design/app/components/design/edit-panel/style-change-types.ts +118 -0
- package/corpus/templates/design/app/components/design/edit-panel/style-options.ts +88 -0
- package/corpus/templates/design/app/components/design/edit-panel/transform-helpers.ts +100 -0
- package/corpus/templates/design/app/components/design/edit-panel/typography-helpers.ts +117 -0
- package/corpus/templates/design/app/components/design/edit-panel/typography-properties.tsx +501 -0
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +91 -40
- package/corpus/templates/design/app/components/design/inspector/BreakpointOverrideIndicator.tsx +82 -0
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +189 -87
- package/corpus/templates/design/app/components/design/inspector/GlslShaderPanel.tsx +1097 -0
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +44 -0
- package/corpus/templates/design/app/components/design/inspector/InteractionStatePanel.tsx +258 -0
- package/corpus/templates/design/app/components/design/inspector/MotionKeyframeDiamond.tsx +144 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +99 -9
- package/corpus/templates/design/app/components/design/inspector/frame-size-presets.ts +116 -0
- package/corpus/templates/design/app/components/design/inspector/index.ts +26 -0
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +29 -0
- package/corpus/templates/design/app/components/design/multi-screen/alt-hover-measurement.ts +171 -0
- package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +220 -0
- package/corpus/templates/design/app/components/design/multi-screen/chrome-transitions.ts +35 -0
- package/corpus/templates/design/app/components/design/multi-screen/cross-screen-drop.ts +134 -0
- package/corpus/templates/design/app/components/design/multi-screen/culling.ts +185 -0
- package/corpus/templates/design/app/components/design/multi-screen/gradient-overlay-geometry.ts +120 -0
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +892 -0
- package/corpus/templates/design/app/components/design/multi-screen/vector-edit-geometry.ts +21 -0
- package/corpus/templates/design/app/components/design/types.ts +15 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +109 -5
- package/corpus/templates/design/app/global.css +8 -8
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +259 -2
- package/corpus/templates/design/app/i18n/zh-TW.ts +163 -9
- package/corpus/templates/design/app/i18n-breakpoints.ts +205 -0
- package/corpus/templates/design/app/i18n-data.ts +1664 -152
- package/corpus/templates/design/app/i18n-motion.ts +563 -0
- package/corpus/templates/design/app/lib/design-import.ts +73 -0
- package/corpus/templates/design/app/pages/Index.tsx +41 -22
- package/corpus/templates/design/changelog/2026-06-29-design-inspector-controls-now-match-figmas-softer-dark-chrome.md +1 -1
- package/corpus/templates/design/changelog/2026-06-30-design-now-has-a-figma-style-left-rail-for-file-agent-assets.md +1 -1
- package/corpus/templates/design/changelog/2026-06-30-design-tools-now-use-a-quieter-figma-style-list-layout.md +1 -1
- package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +1 -1
- package/corpus/templates/design/changelog/2026-07-03-canvas-interactions-now-match-figma-rotation-aware-resizing-.md +1 -1
- package/corpus/templates/design/changelog/2026-07-03-layers-panel-matches-figma-top-layer-on-top-drag-with-auto-s.md +1 -1
- package/corpus/templates/design/changelog/2026-07-05-designs-get-ai-generated-names-from-your-prompt.md +6 -0
- package/corpus/templates/design/changelog/2026-07-05-local-code-screens-keep-their-connection-when-duplicated-and.md +6 -0
- package/corpus/templates/design/changelog/2026-07-05-press-a-to-draw-screens-on-the-canvas-inside-a-screen-it-dr.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-3d-rotation-and-perspective-controls-on-every-element.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-ai-generated-and-duplicated-screens-now-get-their-editor-sel.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-applying-shaders-and-fills-in-quick-succession-can-no-longer.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-breakpoint-frames-in-the-overview-now-support-click-to-selec.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-breakpoint-segments-in-the-inspector-now-show-a-device-icon-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-breakpoint-targeting-now-lives-in-one-compact-control-in-the.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-canvas-edits-can-no-longer-be-overwritten-by-stale-collabora.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-canvas-edits-inside-screens-save-reliably-again.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-cleaner-inspector-removed-the-ask-ai-box-from-the-design-tab.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-clicking-empty-canvas-space-now-deselects-an-element-inside-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-dragging-an-element-onto-a-rectangle-now-nests-it-inside-wit.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-dragging-screens-and-objects-on-the-canvas-is-now-much-smoot.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-drawing-a-shape-or-text-on-the-canvas-no-longer-flashes-away.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-dropping-an-element-between-two-others-inside-a-screen-now-s.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-duplicating-a-screen-now-places-the-copy-exactly-where-you-d.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-edit-gradients-directly-on-elements-inside-screens-scale-str.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-edits-from-collaborators-and-the-agent-now-update-the-canvas.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-a-bug-where-most-style-position-and-text-edits-briefly.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-a-confusing-raw-error-message-when-a-file-upload-fails.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-a-rare-case-where-an-edit-could-be-silently-overwritte.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-inserted-assets-sometimes-disappearing-reappearing-or-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-inspector-value-scrubbing-producing-erratic-numbers-an.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-padding-gap-and-min-max-size-scrubbing-not-updating-th.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-text-stroke-color-turning-black-and-glyphs-disappearin.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-the-collapsed-effects-and-stroke-inspector-sections-sh.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-the-new-design-dialog-closing-unexpectedly-when-using-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fixed-the-typography-section-missing-when-selecting-text-nes.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-full-view-no-longer-flashes-back-to-the-overview-on-entry-no.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-keyframe-animation-timeline-per-property-keyframes-easing-cu.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-moving-restyling-and-scrubbing-values-on-elements-in-ai-gene.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-padding-and-corner-radius-value-scrubbing-now-snaps-to-whole.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-padding-handles-now-only-resize-on-the-handle-line-itself-sh.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-preview-and-edit-hover-focus-and-pressed-states-with-real-cs.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-promoting-an-element-to-a-component-now-works-correctly-for-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-reduced-url-history-churn-and-selection-overlay-flicker-whil.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-removed-the-decorative-dot-before-screen-names-in-the-overvi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-responsive-breakpoints-edit-at-any-width-with-cascading-over.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-screen-labels-no-longer-turn-blue-when-you-hover-inside-the-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-scrolling-a-screen-with-an-element-selected-stays-smooth-on-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-selecting-multiple-elements-and-dragging-now-moves-the-whole.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-selection-borders-handles-and-value-readouts-now-stay-the-sa.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-selection-handles-and-editing-chrome-now-stay-a-constant-siz.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-shader-fills-and-effects-ai-authored-or-preset-glsl-shaders-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-text-drawn-on-the-canvas-now-defaults-to-white-and-inter-in-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-text-dropped-into-a-shape-now-stays-readable-instead-of-disa.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-the-add-tweak-controls-prompt-no-longer-jumps-to-the-corner-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-the-padding-value-readout-now-stays-visible-while-you-hover-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-the-selected-element-attachment-now-clears-from-the-chat-com.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-the-zoom-menu-is-more-compact-with-tight-rows-and-right-alig.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-undo-and-redo-no-longer-flash-the-screen-changes-now-apply-i.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-zoom-presets-like-zoom-to-50-now-stay-on-the-focused-screen-.md +6 -0
- package/corpus/templates/design/server/lib/import-design-files.ts +11 -2
- package/corpus/templates/design/server/source-workspace.ts +139 -59
- package/corpus/templates/design/shared/board-file.ts +11 -2
- package/corpus/templates/design/shared/breakpoint-media.ts +543 -0
- package/corpus/templates/design/shared/canvas-math.ts +354 -35
- package/corpus/templates/design/shared/code-layer.ts +277 -8
- package/corpus/templates/design/shared/design-state.ts +11 -4
- package/corpus/templates/design/shared/interaction-states.ts +548 -0
- package/corpus/templates/design/shared/motion-compiler.ts +186 -23
- package/corpus/templates/design/shared/motion-easing.ts +294 -0
- package/corpus/templates/design/shared/motion-timeline.ts +400 -34
- package/corpus/templates/design/shared/prompt-title.ts +95 -0
- package/corpus/templates/design/shared/responsive-classes.ts +448 -10
- package/corpus/templates/design/shared/screen-annotation.ts +46 -0
- package/corpus/templates/design/shared/shader-fills.ts +1009 -0
- package/corpus/templates/design/shared/shader-presets.ts +852 -4
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +15 -2
- package/corpus/templates/slides/app/components/editor/ImportButton.tsx +10 -1
- package/corpus/templates/slides/app/lib/upload-response.ts +71 -0
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.js +11 -6
- package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
- package/dist/client/use-action.d.ts +3 -0
- package/dist/client/use-action.d.ts.map +1 -1
- package/dist/client/use-action.js +34 -3
- package/dist/client/use-action.js.map +1 -1
- package/dist/client/use-db-sync.d.ts +4 -0
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +37 -18
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/db/create-get-db.d.ts +25 -0
- package/dist/db/create-get-db.d.ts.map +1 -1
- package/dist/db/create-get-db.js +25 -2
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +37 -1
- package/dist/server/framework-request-handler.js.map +1 -1
- package/package.json +1 -1
- package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +0 -153
- package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +0 -133
- package/corpus/templates/design/app/pages/DesignEditor.tsx +0 -22924
|
@@ -362,9 +362,10 @@ function assetCategoryLabel(
|
|
|
362
362
|
) {
|
|
363
363
|
return t("assetDetail.contentOnly");
|
|
364
364
|
}
|
|
365
|
-
const category = asset?.metadata?.category;
|
|
365
|
+
const category = asset?.metadata?.category ?? asset?.category;
|
|
366
366
|
if (typeof category !== "string") return null;
|
|
367
367
|
if (category === "style-only") return t("assetDetail.styleReference");
|
|
368
|
+
if (category === "skeleton") return t("assetDetail.skeletonPlate");
|
|
368
369
|
return category.replace(/-/g, " ");
|
|
369
370
|
}
|
|
370
371
|
|
|
@@ -298,7 +298,7 @@ function referenceRoleForAsset(asset: any): ImageRole {
|
|
|
298
298
|
if (asset?.mediaType === "video" || asset?.mimeType?.startsWith("video/")) {
|
|
299
299
|
return "video_reference";
|
|
300
300
|
}
|
|
301
|
-
const category = asset?.metadata?.category;
|
|
301
|
+
const category = asset?.metadata?.category ?? asset?.category;
|
|
302
302
|
if (category === "logo") return "logo_reference";
|
|
303
303
|
if (category === "product") return "product_reference";
|
|
304
304
|
if (category === "diagram") return "diagram_reference";
|
|
@@ -1492,7 +1492,7 @@ export function BrandKitDetailRoute({
|
|
|
1492
1492
|
))}
|
|
1493
1493
|
</div>
|
|
1494
1494
|
) : (
|
|
1495
|
-
<div className="flex min-h-
|
|
1495
|
+
<div className="flex min-h-65 flex-col items-center justify-center rounded-lg border border-dashed border-border bg-muted/20 p-8 text-center">
|
|
1496
1496
|
<IconMessageCircle className="h-10 w-10 text-muted-foreground" />
|
|
1497
1497
|
<h3 className="mt-4 text-base font-semibold">
|
|
1498
1498
|
{t("brandKitDetail.noRunsYet")}
|
|
@@ -1874,9 +1874,10 @@ function assetCategoryLabel(asset: any): string | null {
|
|
|
1874
1874
|
if (isContentOnlyReference(asset)) {
|
|
1875
1875
|
return "content only";
|
|
1876
1876
|
}
|
|
1877
|
-
const category = asset?.metadata?.category;
|
|
1877
|
+
const category = asset?.metadata?.category ?? asset?.category;
|
|
1878
1878
|
if (typeof category !== "string") return null;
|
|
1879
1879
|
if (category === "style-only") return "style reference";
|
|
1880
|
+
if (category === "skeleton") return "skeleton plate";
|
|
1880
1881
|
return category.replace(/-/g, " ");
|
|
1881
1882
|
}
|
|
1882
1883
|
|
|
@@ -2110,9 +2111,12 @@ function GenerationPresetsPanel({
|
|
|
2110
2111
|
>
|
|
2111
2112
|
<div className="min-w-0">
|
|
2112
2113
|
<div className="flex flex-wrap items-center gap-2">
|
|
2113
|
-
<
|
|
2114
|
+
<Link
|
|
2115
|
+
to={`/brand-kits/${libraryId}/presets/${preset.id}`}
|
|
2116
|
+
className="truncate text-sm font-medium underline-offset-4 hover:underline"
|
|
2117
|
+
>
|
|
2114
2118
|
{preset.title}
|
|
2115
|
-
</
|
|
2119
|
+
</Link>
|
|
2116
2120
|
<Badge variant="outline">{preset.aspectRatio}</Badge>
|
|
2117
2121
|
{preset.includeLogo ? (
|
|
2118
2122
|
<Badge variant="secondary">{t("brandKitDetail.logo")}</Badge>
|
|
@@ -2122,15 +2126,22 @@ function GenerationPresetsPanel({
|
|
|
2122
2126
|
{preset.textPolicy || preset.description || preset.category}
|
|
2123
2127
|
</p>
|
|
2124
2128
|
</div>
|
|
2125
|
-
<
|
|
2126
|
-
variant="ghost"
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2129
|
+
<div className="flex shrink-0 items-center gap-1">
|
|
2130
|
+
<Button variant="ghost" size="sm" asChild>
|
|
2131
|
+
<Link to={`/brand-kits/${libraryId}/presets/${preset.id}`}>
|
|
2132
|
+
{t("brandKitDetail.edit")}
|
|
2133
|
+
</Link>
|
|
2134
|
+
</Button>
|
|
2135
|
+
<Button
|
|
2136
|
+
variant="ghost"
|
|
2137
|
+
size="icon"
|
|
2138
|
+
className="h-8 w-8 text-muted-foreground hover:text-destructive"
|
|
2139
|
+
aria-label={`${t("brandKitDetail.delete")} ${preset.title}`}
|
|
2140
|
+
onClick={() => setConfirmPresetId(preset.id)}
|
|
2141
|
+
>
|
|
2142
|
+
<IconTrash className="h-4 w-4" />
|
|
2143
|
+
</Button>
|
|
2144
|
+
</div>
|
|
2134
2145
|
</div>
|
|
2135
2146
|
))}
|
|
2136
2147
|
{!presets.length ? (
|
|
@@ -2807,7 +2818,7 @@ function AssetSwimlaneBoard({
|
|
|
2807
2818
|
if (!hasAnyBoardItem) {
|
|
2808
2819
|
if (hideEmptyLanes) {
|
|
2809
2820
|
return (
|
|
2810
|
-
<div className="flex min-h-
|
|
2821
|
+
<div className="flex min-h-70 w-full flex-col items-center justify-center rounded-lg border border-dashed border-border bg-muted/15 p-8 text-center">
|
|
2811
2822
|
<IconSearch className="h-9 w-9 text-muted-foreground" />
|
|
2812
2823
|
<span className="mt-4 text-base font-semibold">
|
|
2813
2824
|
{t("library.noAssetsMatchView")}
|
|
@@ -2829,7 +2840,7 @@ function AssetSwimlaneBoard({
|
|
|
2829
2840
|
e.stopPropagation();
|
|
2830
2841
|
onDrop(e.dataTransfer.files);
|
|
2831
2842
|
}}
|
|
2832
|
-
className="flex min-h-
|
|
2843
|
+
className="flex min-h-90 w-full flex-col items-center justify-center rounded-lg border border-dashed border-border bg-muted/20 p-8 text-center"
|
|
2833
2844
|
>
|
|
2834
2845
|
<IconPhotoPlus className="h-10 w-10 text-muted-foreground" />
|
|
2835
2846
|
<span className="mt-4 text-base font-semibold">
|
|
@@ -2883,7 +2894,7 @@ function AssetSwimlaneBoard({
|
|
|
2883
2894
|
|
|
2884
2895
|
<div className="mb-3 flex flex-col gap-3 rounded-md border border-border bg-background px-3 py-2 lg:flex-row lg:items-center lg:justify-between">
|
|
2885
2896
|
<div className="flex min-w-0 flex-wrap items-center gap-2">
|
|
2886
|
-
<label className="flex h-8 cursor-pointer items-center gap-2 rounded-md border border-border px-2.5 text-sm font-medium text-foreground transition hover:border-foreground/30 has-
|
|
2897
|
+
<label className="flex h-8 cursor-pointer items-center gap-2 rounded-md border border-border px-2.5 text-sm font-medium text-foreground transition hover:border-foreground/30 has-disabled:cursor-not-allowed has-disabled:opacity-50">
|
|
2887
2898
|
<Checkbox
|
|
2888
2899
|
checked={allSelected}
|
|
2889
2900
|
disabled={!boardAssets.length || deleting}
|
|
@@ -3218,7 +3229,7 @@ function AssetCardsView({ items }: { items: LaneGalleryItem[] }) {
|
|
|
3218
3229
|
|
|
3219
3230
|
if (!items.length) {
|
|
3220
3231
|
return (
|
|
3221
|
-
<div className="flex min-h-
|
|
3232
|
+
<div className="flex min-h-55 items-center justify-center rounded-lg border border-dashed border-border bg-muted/15 p-8 text-center text-sm text-muted-foreground">
|
|
3222
3233
|
{t("library.noAssetsToShow")}
|
|
3223
3234
|
</div>
|
|
3224
3235
|
);
|
|
@@ -3243,7 +3254,7 @@ function AssetCardsView({ items }: { items: LaneGalleryItem[] }) {
|
|
|
3243
3254
|
].join(" ")}
|
|
3244
3255
|
aria-busy={item.busy}
|
|
3245
3256
|
>
|
|
3246
|
-
<div className="relative aspect-
|
|
3257
|
+
<div className="relative aspect-4/3 bg-muted/30">
|
|
3247
3258
|
{item.href ? (
|
|
3248
3259
|
<Link to={item.href} className="block h-full w-full">
|
|
3249
3260
|
{item.thumbnail}
|
|
@@ -3373,11 +3384,11 @@ function SwimLane({
|
|
|
3373
3384
|
|
|
3374
3385
|
return (
|
|
3375
3386
|
<section className="overflow-hidden rounded-lg border border-border/80 bg-background">
|
|
3376
|
-
<div className="assets-brand-kit-preview-grid grid min-h-
|
|
3387
|
+
<div className="assets-brand-kit-preview-grid grid min-h-90">
|
|
3377
3388
|
<div className="flex min-w-0 flex-col bg-muted/10">
|
|
3378
3389
|
{hasContent ? (
|
|
3379
3390
|
<>
|
|
3380
|
-
<div className="flex min-h-
|
|
3391
|
+
<div className="flex min-h-68 flex-1 items-center justify-center border-b border-border/70 p-4">
|
|
3381
3392
|
<div
|
|
3382
3393
|
className={[
|
|
3383
3394
|
"group relative w-full max-w-3xl overflow-hidden rounded-lg border bg-background shadow-sm",
|
|
@@ -3385,7 +3396,7 @@ function SwimLane({
|
|
|
3385
3396
|
].join(" ")}
|
|
3386
3397
|
aria-busy={activeItem?.busy}
|
|
3387
3398
|
>
|
|
3388
|
-
<div className="aspect-
|
|
3399
|
+
<div className="aspect-16/10 bg-muted/30">
|
|
3389
3400
|
{activeItem?.href ? (
|
|
3390
3401
|
<Link
|
|
3391
3402
|
to={activeItem.href}
|
|
@@ -3430,7 +3441,7 @@ function SwimLane({
|
|
|
3430
3441
|
aria-pressed={active}
|
|
3431
3442
|
>
|
|
3432
3443
|
{item.thumbnail}
|
|
3433
|
-
<span className="pointer-events-none absolute inset-x-0 bottom-0 h-6 bg-
|
|
3444
|
+
<span className="pointer-events-none absolute inset-x-0 bottom-0 h-6 bg-linear-to-t from-background/90 to-transparent" />
|
|
3434
3445
|
{item.busy && item.showBusyOverlay !== false ? (
|
|
3435
3446
|
<span className="absolute right-1.5 top-1.5 rounded-full bg-background/90 p-1 shadow-sm">
|
|
3436
3447
|
<Spinner className="h-3 w-3" />
|
|
@@ -3442,10 +3453,10 @@ function SwimLane({
|
|
|
3442
3453
|
</div>
|
|
3443
3454
|
</>
|
|
3444
3455
|
) : (
|
|
3445
|
-
<div className="min-h-
|
|
3456
|
+
<div className="min-h-47 p-3">{empty}</div>
|
|
3446
3457
|
)}
|
|
3447
3458
|
</div>
|
|
3448
|
-
<aside className="order-first flex min-h-32 flex-col justify-between gap-4 border-b border-border bg-background/95 p-4 xl:order-
|
|
3459
|
+
<aside className="order-first flex min-h-32 flex-col justify-between gap-4 border-b border-border bg-background/95 p-4 xl:order-0 xl:min-h-90 xl:border-b-0 xl:border-l">
|
|
3449
3460
|
<div className="min-w-0 space-y-2">
|
|
3450
3461
|
<div className="flex items-center justify-between gap-3">
|
|
3451
3462
|
<h3 className="truncate text-sm font-semibold">{title}</h3>
|
|
@@ -3545,7 +3556,7 @@ function LaneDropTarget({
|
|
|
3545
3556
|
e.stopPropagation();
|
|
3546
3557
|
onDrop(e.dataTransfer.files);
|
|
3547
3558
|
}}
|
|
3548
|
-
className="flex h-full min-h-
|
|
3559
|
+
className="flex h-full min-h-37 w-full items-center justify-center rounded-md px-4 text-center transition hover:bg-muted/25"
|
|
3549
3560
|
>
|
|
3550
3561
|
<span>
|
|
3551
3562
|
<IconPhotoPlus className="mx-auto h-7 w-7 text-muted-foreground" />
|
|
@@ -3568,7 +3579,7 @@ function LaneActionEmpty({
|
|
|
3568
3579
|
onClick: () => void;
|
|
3569
3580
|
}) {
|
|
3570
3581
|
return (
|
|
3571
|
-
<div className="flex h-full min-h-
|
|
3582
|
+
<div className="flex h-full min-h-37 items-center justify-between gap-3 rounded-md px-4">
|
|
3572
3583
|
<div className="min-w-0">
|
|
3573
3584
|
<div className="text-sm font-medium">{title}</div>
|
|
3574
3585
|
<div className="mt-1 text-xs text-muted-foreground">{body}</div>
|
|
@@ -3715,8 +3726,8 @@ function PendingUploadLaneTile({ upload }: { upload: PendingUpload }) {
|
|
|
3715
3726
|
const t = useT();
|
|
3716
3727
|
const isChecking = upload.status === "checking";
|
|
3717
3728
|
return (
|
|
3718
|
-
<div className="w-
|
|
3719
|
-
<div className="flex aspect-
|
|
3729
|
+
<div className="w-36 shrink-0 overflow-hidden rounded-md border border-dashed border-border bg-background sm:w-39">
|
|
3730
|
+
<div className="flex aspect-4/3 items-center justify-center bg-muted/30">
|
|
3720
3731
|
<div className="flex flex-col items-center gap-2 text-muted-foreground">
|
|
3721
3732
|
<Spinner className="h-5 w-5" />
|
|
3722
3733
|
<span className="text-xs font-medium">
|
|
@@ -3774,7 +3785,7 @@ function AssetLaneTile({
|
|
|
3774
3785
|
return (
|
|
3775
3786
|
<div
|
|
3776
3787
|
className={[
|
|
3777
|
-
"group relative w-
|
|
3788
|
+
"group relative w-36 shrink-0 overflow-hidden rounded-md border bg-background transition sm:w-39",
|
|
3778
3789
|
selected
|
|
3779
3790
|
? "border-primary ring-2 ring-primary/25"
|
|
3780
3791
|
: "border-border/80 hover:border-foreground/20",
|
|
@@ -3868,9 +3879,9 @@ function AssetLaneTile({
|
|
|
3868
3879
|
</DropdownMenu>
|
|
3869
3880
|
</div>
|
|
3870
3881
|
<Link to={`/asset/${asset.id}`} className="block outline-none">
|
|
3871
|
-
<div className="relative aspect-
|
|
3882
|
+
<div className="relative aspect-4/3 bg-muted">
|
|
3872
3883
|
<AssetPreview asset={asset} />
|
|
3873
|
-
<div className="pointer-events-none absolute inset-x-0 bottom-0 bg-
|
|
3884
|
+
<div className="pointer-events-none absolute inset-x-0 bottom-0 bg-linear-to-t from-background via-background/90 to-transparent px-2 pb-2 pt-8">
|
|
3874
3885
|
<div className="flex items-center gap-1.5 truncate text-xs font-medium">
|
|
3875
3886
|
{asset.mediaType === "video" ? (
|
|
3876
3887
|
<IconVideo className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
@@ -4342,7 +4353,7 @@ export function LiveCandidatesStage({
|
|
|
4342
4353
|
aria-pressed={active}
|
|
4343
4354
|
>
|
|
4344
4355
|
{item.thumbnail}
|
|
4345
|
-
<span className="pointer-events-none absolute inset-x-0 bottom-0 h-6 bg-
|
|
4356
|
+
<span className="pointer-events-none absolute inset-x-0 bottom-0 h-6 bg-linear-to-t from-background/90 to-transparent" />
|
|
4346
4357
|
{item.busy && item.showBusyOverlay !== false ? (
|
|
4347
4358
|
<span className="absolute right-1.5 top-1.5 rounded-full bg-background/90 p-1 shadow-sm">
|
|
4348
4359
|
<Spinner className="h-3 w-3" />
|