@stephen-netu/design-system 0.2.1 → 0.5.1
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/dist/b0-app-shell/clarification-overlay/ClarificationOverlay.svelte +10 -2
- package/dist/b0-app-shell/clarification-overlay/ClarificationOverlay.svelte.d.ts.map +1 -1
- package/dist/b0-app-shell/{command-bar/CommandBar.svelte → global-command-bar/GlobalCommandBar.svelte} +75 -75
- package/dist/b0-app-shell/{command-bar/CommandBar.svelte.d.ts → global-command-bar/GlobalCommandBar.svelte.d.ts} +6 -6
- package/dist/b0-app-shell/global-command-bar/GlobalCommandBar.svelte.d.ts.map +1 -0
- package/dist/b0-app-shell/index.d.ts +1 -1
- package/dist/b0-app-shell/index.d.ts.map +1 -1
- package/dist/b0-app-shell/index.js +1 -1
- package/dist/d0-data-viz/BarChart.test.js +53 -0
- package/dist/d0-data-viz/CheckpointBar.test.js +83 -0
- package/dist/d0-data-viz/CheckpointPill.svelte +8 -3
- package/dist/d0-data-viz/CheckpointPill.svelte.d.ts.map +1 -1
- package/dist/d0-data-viz/CheckpointPill.test.js +78 -0
- package/dist/d0-data-viz/ConnectionHealth.test.js +70 -0
- package/dist/d0-data-viz/MetricCard.test.js +57 -0
- package/dist/d0-data-viz/SparkLine.test.js +47 -0
- package/dist/d0-data-viz/StorageMap.test.js +63 -0
- package/dist/d0-data-viz/Timeline.test.js +62 -0
- package/dist/d0-data-viz/WorldLineTimeline.test.js +99 -0
- package/dist/d0-data-viz/checkpoint-types.js +1 -1
- package/dist/d0-data-viz/storage-map-types.d.ts.map +1 -1
- package/dist/d0-data-viz/storage-map-types.js +6 -3
- package/dist/d0-data-viz/theme-integration.d.ts +3 -3
- package/dist/d0-data-viz/theme-integration.js +4 -4
- package/dist/d0-data-viz/theme-integration.test.js +41 -0
- package/dist/demos/AmbientPrimitivesDemo.svelte +103 -0
- package/dist/demos/AmbientPrimitivesDemo.svelte.d.ts +5 -0
- package/dist/demos/AmbientPrimitivesDemo.svelte.d.ts.map +1 -0
- package/dist/demos/BspSizingInfographic.svelte +3 -32
- package/dist/demos/NodepadBlocksShowcase.svelte +2 -1
- package/dist/demos/NodepadBlocksShowcase.svelte.d.ts.map +1 -1
- package/dist/demos/index.d.ts +1 -0
- package/dist/demos/index.d.ts.map +1 -1
- package/dist/demos/index.js +1 -0
- package/dist/editor/CodeEditor.svelte +83 -26
- package/dist/editor/CodeEditor.svelte.d.ts +0 -1
- package/dist/editor/CodeEditor.svelte.d.ts.map +1 -1
- package/dist/editor/CodeEditor.test.js +38 -0
- package/dist/editor/ExternalChangeDialog.svelte +117 -0
- package/dist/editor/ExternalChangeDialog.svelte.d.ts +13 -0
- package/dist/editor/ExternalChangeDialog.svelte.d.ts.map +1 -0
- package/dist/editor/FindReplaceDialog.svelte +32 -32
- package/dist/editor/MarkdownEditor.svelte +105 -605
- package/dist/editor/MarkdownEditor.svelte.d.ts +1 -1
- package/dist/editor/MarkdownEditor.svelte.d.ts.map +1 -1
- package/dist/editor/MarkdownEditor.test.js +38 -0
- package/dist/editor/codemirror-config.d.ts +36 -0
- package/dist/editor/codemirror-config.d.ts.map +1 -0
- package/dist/editor/codemirror-config.js +87 -0
- package/dist/editor/components/CorrectionTooltip.svelte +180 -160
- package/dist/editor/components/CorrectionTooltip.svelte.d.ts +7 -23
- package/dist/editor/components/CorrectionTooltip.svelte.d.ts.map +1 -1
- package/dist/editor/extensions/autocomplete.d.ts +2 -2
- package/dist/editor/extensions/autocomplete.d.ts.map +1 -1
- package/dist/editor/extensions/autocomplete.test.js +121 -0
- package/dist/editor/extensions/spellcheck.d.ts +21 -3
- package/dist/editor/extensions/spellcheck.d.ts.map +1 -1
- package/dist/editor/extensions/spellcheck.js +51 -9
- package/dist/editor/extensions/spellcheck.test.js +168 -0
- package/dist/editor/extensions/types.d.ts +2 -1
- package/dist/editor/extensions/types.d.ts.map +1 -1
- package/dist/editor/index.d.ts +2 -1
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +1 -0
- package/dist/editor/markdown-preview.d.ts +9 -0
- package/dist/editor/markdown-preview.d.ts.map +1 -0
- package/dist/editor/markdown-preview.js +19 -0
- package/dist/editor/markdown-preview.test.js +38 -0
- package/dist/editor/useCodeMirror.d.ts +23 -0
- package/dist/editor/useCodeMirror.d.ts.map +1 -0
- package/dist/editor/useCodeMirror.js +40 -0
- package/dist/editor/useFilePersistence.d.ts +32 -0
- package/dist/editor/useFilePersistence.d.ts.map +1 -0
- package/dist/editor/useFilePersistence.js +117 -0
- package/dist/entity-graph-view/WorldView.svelte +1 -1
- package/dist/fabric/ai/ChatPanel.svelte +84 -85
- package/dist/fabric/ai/ChatPanel.svelte.d.ts.map +1 -1
- package/dist/fabric/ai/ResearchPanel.svelte +35 -25
- package/dist/fabric/ai/ResearchPanel.svelte.d.ts.map +1 -1
- package/dist/fabric/data/FileTree.svelte +195 -0
- package/dist/fabric/data/FileTree.svelte.d.ts +19 -0
- package/dist/fabric/data/FileTree.svelte.d.ts.map +1 -0
- package/dist/fabric/data/FileTree.test.js +127 -0
- package/dist/fabric/data/index.d.ts +5 -9
- package/dist/fabric/data/index.d.ts.map +1 -1
- package/dist/fabric/data/index.js +4 -1
- package/dist/fabric/index.d.ts +5 -5
- package/dist/fabric/index.d.ts.map +1 -1
- package/dist/fabric/index.js +5 -3
- package/dist/fabric/input/{CommandBar.svelte → AppHeaderBar.svelte} +13 -13
- package/dist/fabric/input/{CommandBar.svelte.d.ts → AppHeaderBar.svelte.d.ts} +5 -5
- package/dist/fabric/input/AppHeaderBar.svelte.d.ts.map +1 -0
- package/dist/fabric/input/{CommandBar.test.js → AppHeaderBar.test.js} +9 -9
- package/dist/fabric/input/KeyboardShortcuts.svelte +23 -21
- package/dist/fabric/input/index.d.ts +2 -2
- package/dist/fabric/input/index.d.ts.map +1 -1
- package/dist/fabric/input/index.js +1 -1
- package/dist/fabric/layout/CollapsiblePanel.svelte +8 -10
- package/dist/fabric/layout/KanbanBoard.svelte +25 -155
- package/dist/fabric/layout/KanbanBoard.svelte.d.ts +2 -26
- package/dist/fabric/layout/KanbanBoard.svelte.d.ts.map +1 -1
- package/dist/fabric/layout/KanbanBoard.test.js +125 -10
- package/dist/fabric/layout/KanbanCard.svelte +27 -223
- package/dist/fabric/layout/KanbanCard.svelte.d.ts +2 -19
- package/dist/fabric/layout/KanbanCard.svelte.d.ts.map +1 -1
- package/dist/fabric/layout/KanbanColumn.svelte +41 -275
- package/dist/fabric/layout/KanbanColumn.svelte.d.ts +2 -22
- package/dist/fabric/layout/KanbanColumn.svelte.d.ts.map +1 -1
- package/dist/fabric/layout/index.d.ts +2 -5
- package/dist/fabric/layout/index.d.ts.map +1 -1
- package/dist/fabric/layout/index.js +1 -1
- package/dist/fabric/navigation/ActivityRail.svelte +3 -5
- package/dist/fabric/navigation/ActivityRail.svelte.d.ts.map +1 -1
- package/dist/g0-generative/components/Text.svelte +38 -0
- package/dist/g0-generative/components/Text.svelte.d.ts +9 -0
- package/dist/g0-generative/components/Text.svelte.d.ts.map +1 -0
- package/dist/g0-generative/index.d.ts +1 -0
- package/dist/g0-generative/index.d.ts.map +1 -1
- package/dist/g0-generative/index.js +1 -0
- package/dist/g0-generative/library/ComponentLibrary.d.ts +4 -0
- package/dist/g0-generative/library/ComponentLibrary.d.ts.map +1 -1
- package/dist/g0-generative/library/ComponentLibrary.js +10 -0
- package/dist/g0-generative/library/ComponentLibrary.test.js +135 -0
- package/dist/g0-generative/renderer/OpenUIRenderer.svelte +16 -56
- package/dist/g0-generative/renderer/OpenUIRenderer.svelte.d.ts.map +1 -1
- package/dist/g0-generative/renderer/OpenUIRenderer.test.js +143 -0
- package/dist/g0-geo/SovereignMap.svelte +13 -13
- package/dist/g0-geo/SovereignMap.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/l0-layout/SectionSplitter.svelte +5 -5
- package/dist/l0-layout/block-writer/BlockContent.svelte +23 -22
- package/dist/l0-layout/block-writer/BlockContent.svelte.d.ts.map +1 -1
- package/dist/l0-layout/block-writer/BlockContent.test.js +47 -0
- package/dist/l0-layout/block-writer/BlockItem.svelte +6 -4
- package/dist/l0-layout/block-writer/markdown.js +11 -11
- package/dist/l0-layout/block-writer/markdown.test.js +81 -0
- package/dist/l0-layout/card/CompactCard.svelte +4 -3
- package/dist/l0-layout/card/StackedCard.svelte +87 -0
- package/dist/l0-layout/card/StackedCard.svelte.d.ts +9 -0
- package/dist/l0-layout/card/StackedCard.svelte.d.ts.map +1 -0
- package/dist/l0-layout/card/StackedCard.test.js +29 -0
- package/dist/l0-layout/grant/GrantCard.svelte +15 -5
- package/dist/l0-layout/grant/GrantCard.svelte.d.ts.map +1 -1
- package/dist/l0-layout/index.d.ts +3 -0
- package/dist/l0-layout/index.d.ts.map +1 -1
- package/dist/l0-layout/index.js +2 -0
- package/dist/l0-layout/kanban/KanbanBoard.svelte +246 -29
- package/dist/l0-layout/kanban/KanbanBoard.svelte.d.ts +28 -2
- package/dist/l0-layout/kanban/KanbanBoard.svelte.d.ts.map +1 -1
- package/dist/l0-layout/kanban/KanbanCard.svelte +175 -150
- package/dist/l0-layout/kanban/KanbanCard.svelte.d.ts +16 -18
- package/dist/l0-layout/kanban/KanbanCard.svelte.d.ts.map +1 -1
- package/dist/l0-layout/kanban/KanbanColumn.svelte +152 -78
- package/dist/l0-layout/kanban/KanbanColumn.svelte.d.ts +28 -7
- package/dist/l0-layout/kanban/KanbanColumn.svelte.d.ts.map +1 -1
- package/dist/l0-layout/kanban/index.d.ts +6 -0
- package/dist/l0-layout/kanban/index.d.ts.map +1 -0
- package/dist/l0-layout/kanban/index.js +3 -0
- package/dist/n0-node-graph/Node.svelte +2 -2
- package/dist/n0-node-graph/NodePalette.svelte +2 -2
- package/dist/n1-flow-canvas/FlowCanvas.svelte +50 -6
- package/dist/n1-flow-canvas/FlowCanvas.svelte.d.ts.map +1 -1
- package/dist/n1-flow-canvas/graph-state.test.js +69 -0
- package/dist/n1-flow-canvas/index.d.ts +2 -0
- package/dist/n1-flow-canvas/index.d.ts.map +1 -1
- package/dist/n1-flow-canvas/index.js +1 -0
- package/dist/n1-flow-canvas/pipeline-adapter.d.ts +37 -0
- package/dist/n1-flow-canvas/pipeline-adapter.d.ts.map +1 -0
- package/dist/n1-flow-canvas/pipeline-adapter.js +160 -0
- package/dist/n1-flow-canvas/utils.test.js +116 -0
- package/dist/n2-manifold-disk/ManifoldDisk.svelte +62 -35
- package/dist/n2-manifold-disk/ManifoldDisk.svelte.d.ts.map +1 -1
- package/dist/n3-force-graph/GraphTooltip.svelte +2 -2
- package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte +34 -29
- package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte.d.ts.map +1 -1
- package/dist/n4-adaptive-manifold/classifier.test.js +104 -0
- package/dist/n4-adaptive-manifold/n4-tokens.css +2 -2
- package/dist/n4-adaptive-manifold/types.d.ts +3 -0
- package/dist/n4-adaptive-manifold/types.d.ts.map +1 -1
- package/dist/p0-primitives/ThemeProvider.svelte +38 -18
- package/dist/p0-primitives/ThemeProvider.svelte.d.ts +6 -1
- package/dist/p0-primitives/ThemeProvider.svelte.d.ts.map +1 -1
- package/dist/p0-primitives/canvas-theme.d.ts +33 -1
- package/dist/p0-primitives/canvas-theme.d.ts.map +1 -1
- package/dist/p0-primitives/canvas-theme.js +82 -17
- package/dist/p0-primitives/debug.d.ts +6 -0
- package/dist/p0-primitives/debug.d.ts.map +1 -0
- package/dist/p0-primitives/debug.js +21 -0
- package/dist/p0-primitives/index.d.ts +2 -1
- package/dist/p0-primitives/index.d.ts.map +1 -1
- package/dist/p0-primitives/index.js +1 -0
- package/dist/p0-primitives/theme-context.d.ts +9 -0
- package/dist/p0-primitives/theme-context.d.ts.map +1 -0
- package/dist/p0-primitives/theme-context.js +8 -0
- package/dist/p0-primitives/theme.d.ts.map +1 -1
- package/dist/p0-primitives/theme.js +11 -31
- package/dist/p0-primitives/tokens/ambient.css +76 -0
- package/dist/p0-primitives/tokens/tokens.css +140 -34
- package/dist/p0-primitives/utils/index.d.ts +4 -2
- package/dist/p0-primitives/utils/index.d.ts.map +1 -1
- package/dist/p0-primitives/utils/index.js +1 -0
- package/dist/p0-primitives/utils/reveal.d.ts +15 -0
- package/dist/p0-primitives/utils/reveal.d.ts.map +1 -0
- package/dist/p0-primitives/utils/reveal.js +29 -0
- package/dist/p0-primitives/utils/reveal.test.js +95 -0
- package/dist/s0-state/SyncStatus.svelte +2 -2
- package/dist/s0-state/ThemeStore.svelte.d.ts +3 -2
- package/dist/s0-state/ThemeStore.svelte.d.ts.map +1 -1
- package/dist/s0-state/ThemeStore.svelte.js +20 -1
- package/dist/s0-state/index.d.ts +2 -2
- package/dist/s0-state/index.d.ts.map +1 -1
- package/dist/s0-state/index.js +3 -0
- package/dist/s0-state/modal-stack-store.svelte.d.ts +27 -2
- package/dist/s0-state/modal-stack-store.svelte.d.ts.map +1 -1
- package/dist/s0-state/modal-stack-store.svelte.js +21 -2
- package/dist/showcase/Showcase.svelte +43 -34
- package/dist/showcase/Showcase.svelte.d.ts.map +1 -1
- package/dist/spatial/BspTilingCanvas.svelte +5 -5
- package/dist/spatial/BspTilingSimulation.test.js +88 -0
- package/dist/spatial/CameraController.test.js +120 -0
- package/dist/spatial/ForceCanvas.svelte +18 -13
- package/dist/spatial/ForceCanvas.svelte.d.ts.map +1 -1
- package/dist/spatial/ForceSimulation.svelte.d.ts.map +1 -1
- package/dist/spatial/ForceSimulation.svelte.js +33 -22
- package/dist/spatial/LodRenderer.svelte +14 -1
- package/dist/spatial/LodRenderer.svelte.d.ts.map +1 -1
- package/dist/spatial/ParticleAssembleMark.svelte +285 -0
- package/dist/spatial/ParticleAssembleMark.svelte.d.ts +24 -0
- package/dist/spatial/ParticleAssembleMark.svelte.d.ts.map +1 -0
- package/dist/spatial/SnapZoomCamera.svelte +23 -13
- package/dist/spatial/SnapZoomCamera.svelte.d.ts.map +1 -1
- package/dist/spatial/ZoneTiler.svelte +3 -2
- package/dist/spatial/ZoneTiler.test.js +90 -0
- package/dist/spatial/d3-types.d.ts +31 -0
- package/dist/spatial/d3-types.d.ts.map +1 -0
- package/dist/spatial/d3-types.js +19 -0
- package/dist/spatial/index.js +1 -0
- package/dist/spatial/particle-assemble-math.d.ts +22 -0
- package/dist/spatial/particle-assemble-math.d.ts.map +1 -0
- package/dist/spatial/particle-assemble-math.js +26 -0
- package/dist/spatial/particle-assemble-math.test.js +56 -0
- package/dist/ssr-import-clean.test.js +37 -0
- package/dist/t0-transport/fs.d.ts +12 -0
- package/dist/t0-transport/fs.d.ts.map +1 -0
- package/dist/t0-transport/fs.js +55 -0
- package/dist/t0-transport/index.d.ts +1 -0
- package/dist/t0-transport/index.d.ts.map +1 -1
- package/dist/t0-transport/index.js +1 -0
- package/dist/t0-transport/invoke.d.ts.map +1 -1
- package/dist/t0-transport/invoke.js +5 -2
- package/dist/t0-transport/quality.d.ts +12 -3
- package/dist/t0-transport/quality.d.ts.map +1 -1
- package/dist/t0-transport/quality.js +17 -4
- package/dist/t0-transport/substrate.svelte.d.ts +27 -0
- package/dist/t0-transport/substrate.svelte.d.ts.map +1 -0
- package/dist/t0-transport/substrate.svelte.js +55 -0
- package/dist/u0-primitives/LockIndicator.svelte +17 -15
- package/dist/u0-primitives/VerticalToolbar.svelte +25 -22
- package/dist/u0-primitives/accordion/Accordion.svelte +14 -12
- package/dist/u0-primitives/accordion/Accordion.svelte.d.ts +0 -7
- package/dist/u0-primitives/accordion/Accordion.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/accordion/Accordion.test.js +5 -5
- package/dist/u0-primitives/animated-icon/AnimatedIcon.svelte +3 -3
- package/dist/u0-primitives/animated-icon/AnimatedIcon.test.js +82 -0
- package/dist/u0-primitives/avatar/Avatar.svelte +14 -14
- package/dist/u0-primitives/avatar/Avatar.test.js +81 -0
- package/dist/u0-primitives/badge/Badge.svelte +6 -4
- package/dist/u0-primitives/badge/Badge.test.js +10 -10
- package/dist/u0-primitives/badge/ValidityBadge.svelte +4 -27
- package/dist/u0-primitives/badge/ValidityBadge.test.js +9 -9
- package/dist/u0-primitives/button/Button.svelte +18 -13
- package/dist/u0-primitives/button/Button.svelte.d.ts +1 -0
- package/dist/u0-primitives/button/Button.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/button/Button.test.js +11 -11
- package/dist/u0-primitives/card/Card.svelte +60 -32
- package/dist/u0-primitives/card/Card.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/card/Card.test.js +86 -0
- package/dist/u0-primitives/command-palette/CommandPalette.svelte +75 -43
- package/dist/u0-primitives/command-palette/CommandPalette.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/command-palette/CommandPalette.test.js +202 -0
- package/dist/u0-primitives/command-palette/commandStore.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/command-palette/commandStore.svelte.js +2 -1
- package/dist/u0-primitives/dropdown/Dropdown.svelte +20 -25
- package/dist/u0-primitives/dropdown/Dropdown.test.js +1 -1
- package/dist/u0-primitives/grant-badge/GrantStatusBadge.svelte +2 -2
- package/dist/u0-primitives/index.d.ts +8 -0
- package/dist/u0-primitives/index.d.ts.map +1 -1
- package/dist/u0-primitives/index.js +9 -0
- package/dist/u0-primitives/input/Input.svelte +85 -23
- package/dist/u0-primitives/input/Input.svelte.d.ts +2 -10
- package/dist/u0-primitives/input/Input.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/input/Input.test.js +82 -2
- package/dist/u0-primitives/live-dot/LiveDot.svelte +56 -0
- package/dist/u0-primitives/live-dot/LiveDot.svelte.d.ts +11 -0
- package/dist/u0-primitives/live-dot/LiveDot.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/live-dot/LiveDot.test.js +41 -0
- package/dist/u0-primitives/live-dot/index.d.ts +3 -0
- package/dist/u0-primitives/live-dot/index.d.ts.map +1 -0
- package/dist/u0-primitives/live-dot/index.js +1 -0
- package/dist/u0-primitives/modal/Modal.svelte +64 -38
- package/dist/u0-primitives/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/modal/Modal.test.js +63 -15
- package/dist/u0-primitives/rsvp/RsvpReader.svelte +8 -8
- package/dist/u0-primitives/rsvp/RsvpReader.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/spinner/Spinner.svelte +11 -79
- package/dist/u0-primitives/spinner/Spinner.svelte.d.ts.map +1 -1
- package/dist/u0-primitives/steps/Steps.svelte +20 -21
- package/dist/u0-primitives/surface-state/SurfaceState.svelte +190 -0
- package/dist/u0-primitives/surface-state/SurfaceState.svelte.d.ts +15 -0
- package/dist/u0-primitives/surface-state/SurfaceState.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/tabs/Tabs.svelte +13 -11
- package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte +94 -0
- package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte.d.ts +16 -0
- package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.test.js +48 -0
- package/dist/u0-primitives/theme-swatch-group/index.d.ts +3 -0
- package/dist/u0-primitives/theme-swatch-group/index.d.ts.map +1 -0
- package/dist/u0-primitives/theme-swatch-group/index.js +1 -0
- package/dist/u0-primitives/toggle/Toggle.svelte +22 -13
- package/dist/u0-primitives/tooltip/Tooltip.svelte +9 -9
- package/dist/u0-primitives/tooltip/Tooltip.test.js +12 -12
- package/dist/u0-primitives/web-components/button-component.d.ts +5 -1
- package/dist/u0-primitives/web-components/button-component.d.ts.map +1 -1
- package/dist/u0-primitives/web-components/button-component.js +72 -33
- package/dist/u0-primitives/web-components/index.d.ts +3 -0
- package/dist/u0-primitives/web-components/index.d.ts.map +1 -0
- package/dist/u0-primitives/web-components/index.js +2 -0
- package/dist/u0-primitives/web-components/input-component.d.ts +5 -1
- package/dist/u0-primitives/web-components/input-component.d.ts.map +1 -1
- package/dist/u0-primitives/web-components/input-component.js +56 -39
- package/dist/u0-primitives/web-components/web-components.test.js +96 -0
- package/dist/u0-primitives/window-frame/WindowFrame.svelte +87 -0
- package/dist/u0-primitives/window-frame/WindowFrame.svelte.d.ts +10 -0
- package/dist/u0-primitives/window-frame/WindowFrame.svelte.d.ts.map +1 -0
- package/dist/u0-primitives/window-frame/WindowFrame.test.js +31 -0
- package/dist/u0-primitives/window-frame/index.d.ts +3 -0
- package/dist/u0-primitives/window-frame/index.d.ts.map +1 -0
- package/dist/u0-primitives/window-frame/index.js +1 -0
- package/dist/v0-diagrams/MarkmapDiagram.test.js +49 -0
- package/dist/v0-diagrams/MermaidDiagram.svelte +21 -9
- package/dist/v0-diagrams/MermaidDiagram.svelte.d.ts.map +1 -1
- package/dist/v0-diagrams/MermaidDiagram.test.js +40 -0
- package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte +11 -2
- package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte.d.ts.map +1 -1
- package/package.json +57 -15
- package/src/n4-adaptive-manifold/n4-tokens.css +2 -2
- package/src/p0-primitives/tokens/ambient.css +76 -0
- package/src/p0-primitives/tokens/tokens.css +140 -34
- package/src/p0-primitives/tokens/tokens.json +55 -26
- package/dist/b0-app-shell/command-bar/CommandBar.svelte.d.ts.map +0 -1
- package/dist/fabric/input/CommandBar.svelte.d.ts.map +0 -1
- package/dist/stores/vaultStore.svelte +0 -14
- package/dist/stores/vaultStore.svelte.d.ts +0 -24
- package/dist/stores/vaultStore.svelte.d.ts.map +0 -1
- package/dist/tauri/index.d.ts +0 -3
- package/dist/tauri/index.d.ts.map +0 -1
- package/dist/tauri/index.js +0 -11
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { classifyTopology, computeMetrics, STABILITY_TICKS } from './classifier';
|
|
3
|
+
import { EASING_FUNCTIONS, TransitionAnimator } from './transition';
|
|
4
|
+
function makeSnapshot(nodes, edges) {
|
|
5
|
+
return {
|
|
6
|
+
nodes: nodes.map((id) => ({ id, label: id, weight: 1, type: 'default' })),
|
|
7
|
+
edges: edges.map((e, i) => ({ id: `e-${i}`, source: e.source, target: e.target })),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
describe('n4-adaptive-manifold/classifier', () => {
|
|
11
|
+
it('recommends manifold for any graph', () => {
|
|
12
|
+
const snapshot = makeSnapshot(['a', 'b', 'c'], [{ source: 'a', target: 'b' }]);
|
|
13
|
+
const result = classifyTopology(snapshot);
|
|
14
|
+
expect(result.recommended).toBe('manifold');
|
|
15
|
+
expect(result.confidence).toBe(1.0);
|
|
16
|
+
});
|
|
17
|
+
it('returns empty metrics for empty snapshot', () => {
|
|
18
|
+
const snapshot = makeSnapshot([], []);
|
|
19
|
+
const metrics = computeMetrics(snapshot);
|
|
20
|
+
expect(metrics.nodeCount).toBe(0);
|
|
21
|
+
expect(metrics.edgeCount).toBe(0);
|
|
22
|
+
expect(metrics.edgeDensity).toBe(0);
|
|
23
|
+
});
|
|
24
|
+
it('computes correct node/edge counts', () => {
|
|
25
|
+
const snapshot = makeSnapshot(['a', 'b', 'c'], [
|
|
26
|
+
{ source: 'a', target: 'b' },
|
|
27
|
+
{ source: 'b', target: 'c' },
|
|
28
|
+
]);
|
|
29
|
+
const metrics = computeMetrics(snapshot);
|
|
30
|
+
expect(metrics.nodeCount).toBe(3);
|
|
31
|
+
expect(metrics.edgeCount).toBe(2);
|
|
32
|
+
expect(metrics.edgeDensity).toBeCloseTo(2 / 3);
|
|
33
|
+
});
|
|
34
|
+
it('detects cycles in directed graph', () => {
|
|
35
|
+
const snapshot = makeSnapshot(['a', 'b', 'c'], [
|
|
36
|
+
{ source: 'a', target: 'b' },
|
|
37
|
+
{ source: 'b', target: 'c' },
|
|
38
|
+
{ source: 'c', target: 'a' },
|
|
39
|
+
]);
|
|
40
|
+
const metrics = computeMetrics(snapshot);
|
|
41
|
+
expect(metrics.cycleCount).toBeGreaterThan(0);
|
|
42
|
+
});
|
|
43
|
+
it('counts roots (in-degree 0)', () => {
|
|
44
|
+
const snapshot = makeSnapshot(['a', 'b', 'c'], [
|
|
45
|
+
{ source: 'a', target: 'b' },
|
|
46
|
+
{ source: 'a', target: 'c' },
|
|
47
|
+
]);
|
|
48
|
+
const metrics = computeMetrics(snapshot);
|
|
49
|
+
expect(metrics.rootCount).toBe(1);
|
|
50
|
+
});
|
|
51
|
+
it('computes max depth via BFS from roots', () => {
|
|
52
|
+
const snapshot = makeSnapshot(['a', 'b', 'c', 'd'], [
|
|
53
|
+
{ source: 'a', target: 'b' },
|
|
54
|
+
{ source: 'b', target: 'c' },
|
|
55
|
+
{ source: 'c', target: 'd' },
|
|
56
|
+
]);
|
|
57
|
+
const metrics = computeMetrics(snapshot);
|
|
58
|
+
expect(metrics.maxDepth).toBe(3);
|
|
59
|
+
});
|
|
60
|
+
it('counts connected components', () => {
|
|
61
|
+
const snapshot = makeSnapshot(['a', 'b', 'c', 'd'], [
|
|
62
|
+
{ source: 'a', target: 'b' },
|
|
63
|
+
{ source: 'c', target: 'd' },
|
|
64
|
+
]);
|
|
65
|
+
const metrics = computeMetrics(snapshot);
|
|
66
|
+
expect(metrics.componentCount).toBe(2);
|
|
67
|
+
});
|
|
68
|
+
it('tracks max cluster size', () => {
|
|
69
|
+
const snapshot = makeSnapshot(['a', 'b', 'c', 'd'], [
|
|
70
|
+
{ source: 'a', target: 'b' },
|
|
71
|
+
{ source: 'b', target: 'c' },
|
|
72
|
+
{ source: 'd', target: 'd' },
|
|
73
|
+
]);
|
|
74
|
+
const metrics = computeMetrics(snapshot);
|
|
75
|
+
expect(metrics.maxClusterSize).toBe(3);
|
|
76
|
+
});
|
|
77
|
+
it('STABILITY_TICKS is 3', () => {
|
|
78
|
+
expect(STABILITY_TICKS).toBe(3);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('n4-adaptive-manifold/transition', () => {
|
|
82
|
+
it('EASING_FUNCTIONS contains expected names', () => {
|
|
83
|
+
expect(EASING_FUNCTIONS).toHaveProperty('linear');
|
|
84
|
+
expect(EASING_FUNCTIONS).toHaveProperty('easeInOutCubic');
|
|
85
|
+
expect(EASING_FUNCTIONS).toHaveProperty('easeOutExpo');
|
|
86
|
+
expect(EASING_FUNCTIONS).toHaveProperty('spring');
|
|
87
|
+
});
|
|
88
|
+
it('linear easing returns t unchanged', () => {
|
|
89
|
+
expect(EASING_FUNCTIONS.linear(0)).toBe(0);
|
|
90
|
+
expect(EASING_FUNCTIONS.linear(0.5)).toBe(0.5);
|
|
91
|
+
expect(EASING_FUNCTIONS.linear(1)).toBe(1);
|
|
92
|
+
});
|
|
93
|
+
it('easeInOutCubic is clamped to [0,1]', () => {
|
|
94
|
+
expect(EASING_FUNCTIONS.easeInOutCubic(0)).toBe(0);
|
|
95
|
+
expect(EASING_FUNCTIONS.easeInOutCubic(1)).toBe(1);
|
|
96
|
+
expect(EASING_FUNCTIONS.easeInOutCubic(0.5)).toBeCloseTo(0.5);
|
|
97
|
+
});
|
|
98
|
+
it('TransitionAnimator cancels without error', () => {
|
|
99
|
+
const animator = new TransitionAnimator();
|
|
100
|
+
expect(animator.active).toBe(false);
|
|
101
|
+
animator.cancel();
|
|
102
|
+
expect(animator.active).toBe(false);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -66,10 +66,10 @@
|
|
|
66
66
|
|
|
67
67
|
/* ── Kind accents (overridden by consuming apps) ───────────────────────── */
|
|
68
68
|
--n4-kind-task: var(--color-accent, #b87333);
|
|
69
|
-
--n4-kind-agent: var(--
|
|
69
|
+
--n4-kind-agent: var(--expert-sovereign, #b87333);
|
|
70
70
|
--n4-kind-signal: var(--color-status-info, #2980b9);
|
|
71
71
|
--n4-kind-capability: var(--color-accent-secondary, #d4a574);
|
|
72
|
-
--n4-kind-intent: var(--
|
|
72
|
+
--n4-kind-intent: var(--expert-atelier, #b87333);
|
|
73
73
|
--n4-kind-subtask: color-mix(in srgb, var(--color-accent, #b87333) 60%, transparent);
|
|
74
74
|
--n4-kind-note: var(--color-text-primary, #e8e0d0);
|
|
75
75
|
--n4-kind-concept: var(--color-accent-secondary, #d4a574);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { NodeLayout, LayoutResult } from '../n1-flow-canvas/types.js';
|
|
2
|
+
import type { AccentRamp } from '../p0-primitives/canvas-theme.js';
|
|
2
3
|
/** The active layout algorithm. Gravitational is the only registered provider. */
|
|
3
4
|
export type LayoutAlgorithm = 'gravitational' | 'manifold';
|
|
4
5
|
/** Visual treatment for nodes — maps to --n4-node-* design tokens. */
|
|
@@ -161,6 +162,8 @@ export interface ResolvedThemeColors {
|
|
|
161
162
|
edgeActive: string;
|
|
162
163
|
pulseColor: string;
|
|
163
164
|
pulseCritical: string;
|
|
165
|
+
/** Runtime-derived accent ramp for inline canvas 2D paint calls. */
|
|
166
|
+
accentRamp: AccentRamp;
|
|
164
167
|
}
|
|
165
168
|
/** Inferred phase in the perceive-think-act-sync loop */
|
|
166
169
|
export type LoopPhase = 'perceive' | 'think' | 'act' | 'sync' | 'idle';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/n4-adaptive-manifold/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/n4-adaptive-manifold/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Runtime theme management for KOS Design System.
|
|
6
6
|
* Provides light/dark/auto modes and custom theme overrides.
|
|
7
|
-
*
|
|
7
|
+
* Receives theme store via Svelte context (set by s0-state or app layer).
|
|
8
8
|
*
|
|
9
9
|
* @package @kos/design-system/p0-primitives
|
|
10
10
|
*/
|
|
11
11
|
import type { Snippet } from 'svelte';
|
|
12
|
-
import {
|
|
13
|
-
import { themeStore, initThemeStore, type ThemeName } from '../s0-state/ThemeStore.svelte';
|
|
12
|
+
import { getThemeStore, THEME_STORE_KEY, type ThemeName, type ThemeStoreLike } from './theme-context';
|
|
14
13
|
|
|
15
14
|
export type ThemeMode = 'light' | 'dark' | 'auto';
|
|
16
15
|
|
|
@@ -34,6 +33,11 @@
|
|
|
34
33
|
colorFgTertiary?: string;
|
|
35
34
|
|
|
36
35
|
colorAccent?: string;
|
|
36
|
+
/** @deprecated Accent ramp fields ignored by ThemeProvider — the ramp is
|
|
37
|
+
* derived from `colorAccent` via tokens.css color-mix. Palette fields
|
|
38
|
+
* (Amber, Copper, Rust, Sage, Gold) below are still emitted directly as
|
|
39
|
+
* --color-accent-* custom properties for source compatibility. Set only
|
|
40
|
+
* `colorAccent` for the primary accent. */
|
|
37
41
|
colorAccentHover?: string;
|
|
38
42
|
colorAccentActive?: string;
|
|
39
43
|
colorAccentSubtle?: string;
|
|
@@ -81,7 +85,7 @@
|
|
|
81
85
|
|
|
82
86
|
let { mode, theme, children }: Props = $props();
|
|
83
87
|
|
|
84
|
-
|
|
88
|
+
const store = getThemeStore();
|
|
85
89
|
|
|
86
90
|
const THEME_MAP: Record<Exclude<ThemeMode, 'auto'>, ThemeName> = {
|
|
87
91
|
dark: 'dark',
|
|
@@ -97,7 +101,7 @@
|
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
$effect(() => {
|
|
100
|
-
|
|
104
|
+
store.setTheme(resolveMode());
|
|
101
105
|
});
|
|
102
106
|
|
|
103
107
|
function generateCSSVariables(t: ThemeConfig | undefined): string {
|
|
@@ -122,13 +126,29 @@
|
|
|
122
126
|
if (t.colorFgInverse) vars.push(`--color-fg-inverse: ${t.colorFgInverse};`);
|
|
123
127
|
if (t.colorFgTertiary) vars.push(`--color-fg-tertiary: ${t.colorFgTertiary};`);
|
|
124
128
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (t.
|
|
131
|
-
|
|
129
|
+
// Accent: emit the seed AND redeclare the full alias/ramp chain on this
|
|
130
|
+
// wrapper. CSS resolves var() in unregistered custom properties at computed-
|
|
131
|
+
// value time on the declaring element (:root). Without redeclaring the
|
|
132
|
+
// derived variables here, --color-accent etc. stay baked to the root seed
|
|
133
|
+
// even when --accent-primary is overridden on this wrapper.
|
|
134
|
+
if (t.colorAccent) {
|
|
135
|
+
vars.push(`--accent-primary: ${t.colorAccent};`);
|
|
136
|
+
vars.push(`--accent-hover: color-mix(in oklab, var(--accent-primary), #fff 16%);`);
|
|
137
|
+
vars.push(`--accent-active: color-mix(in oklab, var(--accent-primary), #000 22%);`);
|
|
138
|
+
vars.push(`--accent-glow: color-mix(in srgb, var(--accent-primary) 28%, transparent);`);
|
|
139
|
+
vars.push(`--accent-muted: color-mix(in srgb, var(--accent-primary) 16%, transparent);`);
|
|
140
|
+
vars.push(`--accent-subtle: color-mix(in srgb, var(--accent-primary) 8%, transparent);`);
|
|
141
|
+
vars.push(`--accent-faint: color-mix(in srgb, var(--accent-primary) 4%, transparent);`);
|
|
142
|
+
vars.push(`--color-accent: var(--accent-primary);`);
|
|
143
|
+
vars.push(`--color-accent-hover: var(--accent-hover);`);
|
|
144
|
+
vars.push(`--color-accent-active: var(--accent-active);`);
|
|
145
|
+
vars.push(`--color-accent-glow: var(--accent-glow);`);
|
|
146
|
+
vars.push(`--color-accent-muted: var(--accent-muted);`);
|
|
147
|
+
vars.push(`--color-accent-subtle: var(--accent-subtle);`);
|
|
148
|
+
vars.push(`--color-accent-faint: var(--accent-faint);`);
|
|
149
|
+
vars.push(`--color-accent-secondary: color-mix(in oklab, var(--accent-primary), #fff 26%);`);
|
|
150
|
+
vars.push(`--border-focus: var(--accent-primary);`);
|
|
151
|
+
}
|
|
132
152
|
if (t.colorAccentAmber) vars.push(`--color-accent-amber: ${t.colorAccentAmber};`);
|
|
133
153
|
if (t.colorAccentCopper) vars.push(`--color-accent-copper: ${t.colorAccentCopper};`);
|
|
134
154
|
if (t.colorAccentRust) vars.push(`--color-accent-rust: ${t.colorAccentRust};`);
|
|
@@ -165,10 +185,10 @@
|
|
|
165
185
|
|
|
166
186
|
<div
|
|
167
187
|
class="theme-provider"
|
|
168
|
-
class:mode-dark={
|
|
169
|
-
class:mode-light={
|
|
170
|
-
data-theme={
|
|
171
|
-
data-theme-mode={
|
|
188
|
+
class:mode-dark={store.theme === 'dark'}
|
|
189
|
+
class:mode-light={store.theme === 'light'}
|
|
190
|
+
data-theme={store.theme}
|
|
191
|
+
data-theme-mode={store.theme}
|
|
172
192
|
style={customStyles}
|
|
173
193
|
>
|
|
174
194
|
{@render children()}
|
|
@@ -176,8 +196,8 @@
|
|
|
176
196
|
|
|
177
197
|
<style>
|
|
178
198
|
.theme-provider {
|
|
179
|
-
color: var(--color-text-primary
|
|
180
|
-
background: var(--color-bg-primary
|
|
199
|
+
color: var(--color-text-primary);
|
|
200
|
+
background: var(--color-bg-primary);
|
|
181
201
|
font-family: var(--font-sans, 'Outfit', system-ui, sans-serif);
|
|
182
202
|
}
|
|
183
203
|
</style>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Runtime theme management for KOS Design System.
|
|
5
5
|
* Provides light/dark/auto modes and custom theme overrides.
|
|
6
|
-
*
|
|
6
|
+
* Receives theme store via Svelte context (set by s0-state or app layer).
|
|
7
7
|
*
|
|
8
8
|
* @package @kos/design-system/p0-primitives
|
|
9
9
|
*/
|
|
@@ -26,6 +26,11 @@ export interface ThemeConfig {
|
|
|
26
26
|
colorFgInverse?: string;
|
|
27
27
|
colorFgTertiary?: string;
|
|
28
28
|
colorAccent?: string;
|
|
29
|
+
/** @deprecated Accent ramp fields ignored by ThemeProvider — the ramp is
|
|
30
|
+
* derived from `colorAccent` via tokens.css color-mix. Palette fields
|
|
31
|
+
* (Amber, Copper, Rust, Sage, Gold) below are still emitted directly as
|
|
32
|
+
* --color-accent-* custom properties for source compatibility. Set only
|
|
33
|
+
* `colorAccent` for the primary accent. */
|
|
29
34
|
colorAccentHover?: string;
|
|
30
35
|
colorAccentActive?: string;
|
|
31
36
|
colorAccentSubtle?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.svelte.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/ThemeProvider.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;;KAQK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeProvider.svelte.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/ThemeProvider.svelte.ts"],"names":[],"mappings":"AAGA;;;;;;;;KAQK;AACL,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;gDAI4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAqHH,QAAA,MAAM,aAAa,2CAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
interface SeverityPalette {
|
|
2
|
+
critical: string;
|
|
3
|
+
major: string;
|
|
4
|
+
minor: string;
|
|
5
|
+
}
|
|
6
|
+
interface QuaternionPalette {
|
|
7
|
+
i: string;
|
|
8
|
+
j: string;
|
|
9
|
+
k: string;
|
|
10
|
+
}
|
|
11
|
+
/** Runtime-derived accent ramp. Values are pre-parsed for Canvas 2D use. */
|
|
12
|
+
export interface AccentRamp {
|
|
13
|
+
/** Solid accent — e.g. "rgb(184 115 51)" — use for borders, active edges, cursors. */
|
|
14
|
+
solid: string;
|
|
15
|
+
/** Lighter variant (+16% toward white in OKLab approximation). */
|
|
16
|
+
hi: string;
|
|
17
|
+
/** Darker variant (-22% toward black). */
|
|
18
|
+
lo: string;
|
|
19
|
+
/** Return an rgba string at the given alpha (0–1). */
|
|
20
|
+
alpha: (a: number) => string;
|
|
21
|
+
}
|
|
1
22
|
interface CanvasTheme {
|
|
2
23
|
bg: string;
|
|
3
24
|
node: string;
|
|
@@ -7,11 +28,22 @@ interface CanvasTheme {
|
|
|
7
28
|
edgeLine: string;
|
|
8
29
|
edgeFade: string;
|
|
9
30
|
focus: string;
|
|
31
|
+
severity: SeverityPalette;
|
|
32
|
+
quaternion: QuaternionPalette;
|
|
33
|
+
/** Accent ramp derived from the single seed (--accent-primary). */
|
|
34
|
+
accentRamp: AccentRamp;
|
|
10
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the accent seed and return a canvas-ready AccentRamp.
|
|
38
|
+
* Reads --accent-primary from the target element's computed styles.
|
|
39
|
+
* Call once per frame (or on theme change) and cache the result.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveAccentRamp(el?: Element): AccentRamp;
|
|
11
42
|
/**
|
|
12
43
|
* Get the current canvas theme by reading CSS custom properties.
|
|
13
44
|
* This enables runtime theming for all canvas-based components.
|
|
45
|
+
* Pass a container element to resolve tokens scoped to a ThemeProvider.
|
|
14
46
|
*/
|
|
15
|
-
export declare function getCanvasTheme(): CanvasTheme;
|
|
47
|
+
export declare function getCanvasTheme(el?: Element): CanvasTheme;
|
|
16
48
|
export type { CanvasTheme };
|
|
17
49
|
//# sourceMappingURL=canvas-theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-theme.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/canvas-theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas-theme.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/canvas-theme.ts"],"names":[],"mappings":"AAaA,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9B;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mEAAmE;IACnE,UAAU,EAAE,UAAU,CAAC;CACxB;AAqDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,GAAE,OAAkC,GAAG,UAAU,CAKpF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAE,OAAkC,GAAG,WAAW,CAwBlF;AAED,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,36 +1,101 @@
|
|
|
1
|
-
// Canvas Theme Helper — reads CSS custom properties at runtime for canvas rendering
|
|
1
|
+
// Canvas Theme Helper — reads CSS custom properties at runtime for canvas rendering.
|
|
2
2
|
// Allows canvas components (FlowCanvas, ForceGraph, etc.) to respect runtime theming
|
|
3
3
|
// without hardcoded hex values.
|
|
4
4
|
//
|
|
5
5
|
// Usage:
|
|
6
6
|
// const theme = getCanvasTheme();
|
|
7
7
|
// context.fillStyle = theme.node;
|
|
8
|
+
// context.strokeStyle = theme.accentRamp.solid; // e.g. "rgb(184 115 51)"
|
|
9
|
+
// context.fillStyle = theme.accentRamp.alpha(0.3); // e.g. "rgba(184,115,51,0.3)"
|
|
8
10
|
//
|
|
9
|
-
// The helper reads from the document root's computed styles
|
|
10
|
-
// whatever theme
|
|
11
|
+
// The helper reads from the document root's computed styles (or a provided element),
|
|
12
|
+
// so it picks up whatever theme and user accent the consumer has active.
|
|
11
13
|
/**
|
|
12
|
-
* Resolve a CSS custom property to its computed value.
|
|
13
|
-
* Falls back to the provided default if the property is undefined.
|
|
14
|
+
* Resolve a CSS custom property to its computed value from a target element.
|
|
15
|
+
* Falls back to the provided default if the property is undefined or SSR.
|
|
14
16
|
*/
|
|
15
|
-
function resolveCssVar(name, fallback) {
|
|
17
|
+
function resolveCssVar(name, fallback, el = document.documentElement) {
|
|
16
18
|
if (typeof document === 'undefined')
|
|
17
19
|
return fallback;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
return getComputedStyle(el).getPropertyValue(name).trim() || fallback;
|
|
21
|
+
}
|
|
22
|
+
// --- Accent ramp derivation -------------------------------------------------
|
|
23
|
+
// Canvas 2D cannot use CSS color-mix(). We derive the ramp in JS by parsing
|
|
24
|
+
// the accent seed and adjusting lightness. This mirrors what tokens.css does
|
|
25
|
+
// via color-mix, keeping canvas rendering in sync with CSS theming.
|
|
26
|
+
/** Parse a hex color string to [r, g, b] (0–255). Falls back to brass. */
|
|
27
|
+
function hexToRgb(hex) {
|
|
28
|
+
const h = hex.trim().replace('#', '');
|
|
29
|
+
if (h.length === 3) {
|
|
30
|
+
return [
|
|
31
|
+
parseInt(h[0] + h[0], 16),
|
|
32
|
+
parseInt(h[1] + h[1], 16),
|
|
33
|
+
parseInt(h[2] + h[2], 16),
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
if (h.length === 6) {
|
|
37
|
+
return [parseInt(h.slice(0, 2), 16), parseInt(h.slice(2, 4), 16), parseInt(h.slice(4, 6), 16)];
|
|
38
|
+
}
|
|
39
|
+
return [184, 115, 51]; // brass fallback
|
|
40
|
+
}
|
|
41
|
+
/** Linear-interpolate a channel toward white (positive t) or black (negative t). */
|
|
42
|
+
function tint(c, t) {
|
|
43
|
+
return Math.round(t > 0 ? c + (255 - c) * t : c + c * t);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Build an AccentRamp from an RGB triplet.
|
|
47
|
+
* hi ≈ color-mix(in oklab, seed, #fff 16%)
|
|
48
|
+
* lo ≈ color-mix(in oklab, seed, #000 22%)
|
|
49
|
+
*/
|
|
50
|
+
function buildRamp(r, g, b) {
|
|
51
|
+
const hiR = tint(r, 0.16), hiG = tint(g, 0.16), hiB = tint(b, 0.16);
|
|
52
|
+
const loR = tint(r, -0.22), loG = tint(g, -0.22), loB = tint(b, -0.22);
|
|
53
|
+
return {
|
|
54
|
+
solid: `rgb(${r} ${g} ${b})`,
|
|
55
|
+
hi: `rgb(${hiR} ${hiG} ${hiB})`,
|
|
56
|
+
lo: `rgb(${loR} ${loG} ${loB})`,
|
|
57
|
+
alpha: (a) => `rgba(${r},${g},${b},${a})`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the accent seed and return a canvas-ready AccentRamp.
|
|
62
|
+
* Reads --accent-primary from the target element's computed styles.
|
|
63
|
+
* Call once per frame (or on theme change) and cache the result.
|
|
64
|
+
*/
|
|
65
|
+
export function resolveAccentRamp(el = document.documentElement) {
|
|
66
|
+
if (typeof document === 'undefined')
|
|
67
|
+
return buildRamp(184, 115, 51);
|
|
68
|
+
const seed = getComputedStyle(el).getPropertyValue('--accent-primary').trim() || '#b87333';
|
|
69
|
+
const [r, g, b] = hexToRgb(seed);
|
|
70
|
+
return buildRamp(r, g, b);
|
|
20
71
|
}
|
|
21
72
|
/**
|
|
22
73
|
* Get the current canvas theme by reading CSS custom properties.
|
|
23
74
|
* This enables runtime theming for all canvas-based components.
|
|
75
|
+
* Pass a container element to resolve tokens scoped to a ThemeProvider.
|
|
24
76
|
*/
|
|
25
|
-
export function getCanvasTheme() {
|
|
77
|
+
export function getCanvasTheme(el = document.documentElement) {
|
|
78
|
+
const ramp = resolveAccentRamp(el);
|
|
79
|
+
const rv = (name, fb) => resolveCssVar(name, fb, el);
|
|
26
80
|
return {
|
|
27
|
-
bg:
|
|
28
|
-
node:
|
|
29
|
-
nodeBorder:
|
|
30
|
-
nodeHover:
|
|
31
|
-
nodeText:
|
|
32
|
-
edgeLine:
|
|
33
|
-
edgeFade:
|
|
34
|
-
focus:
|
|
81
|
+
bg: rv('--color-bg-canvas', '#121518'),
|
|
82
|
+
node: rv('--color-bg-panel', '#181c20'),
|
|
83
|
+
nodeBorder: ramp.solid,
|
|
84
|
+
nodeHover: rv('--color-bg-panel-elevated', '#20252a'),
|
|
85
|
+
nodeText: rv('--color-text-primary', '#e7e9eb'),
|
|
86
|
+
edgeLine: ramp.solid,
|
|
87
|
+
edgeFade: ramp.alpha(0.3),
|
|
88
|
+
focus: rv('--color-warning', '#d8a23c'),
|
|
89
|
+
severity: {
|
|
90
|
+
critical: rv('--color-error', '#cf4e4e'),
|
|
91
|
+
major: rv('--color-warning', '#d8a23c'),
|
|
92
|
+
minor: rv('--color-text-tertiary', '#646b72'),
|
|
93
|
+
},
|
|
94
|
+
quaternion: {
|
|
95
|
+
i: ramp.hi,
|
|
96
|
+
j: rv('--color-success', '#3fae9f'),
|
|
97
|
+
k: rv('--color-warning', '#d8a23c'),
|
|
98
|
+
},
|
|
99
|
+
accentRamp: ramp,
|
|
35
100
|
};
|
|
36
101
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/debug.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,KAAK;mBACD,OAAO,EAAE;oBACR,OAAO,EAAE;qBACR,OAAO,EAAE;CAC3B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const DEBUG = (() => {
|
|
2
|
+
try {
|
|
3
|
+
if (typeof localStorage !== 'undefined' && localStorage.getItem('ds-debug') === 'true')
|
|
4
|
+
return true;
|
|
5
|
+
const g = globalThis;
|
|
6
|
+
if (typeof g.process === 'object' && g.process?.env?.DS_DEBUG === 'true')
|
|
7
|
+
return true;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
})();
|
|
14
|
+
export const debug = {
|
|
15
|
+
log: (...args) => { if (DEBUG)
|
|
16
|
+
console.log('[ds]', ...args); },
|
|
17
|
+
warn: (...args) => { if (DEBUG)
|
|
18
|
+
console.warn('[ds]', ...args); },
|
|
19
|
+
error: (...args) => { if (DEBUG)
|
|
20
|
+
console.error('[ds]', ...args); },
|
|
21
|
+
};
|
|
@@ -2,7 +2,8 @@ export * from './types/index';
|
|
|
2
2
|
export * from './utils/index';
|
|
3
3
|
export { getCanvasTheme } from './canvas-theme';
|
|
4
4
|
export { default as ThemeProvider } from './ThemeProvider.svelte';
|
|
5
|
+
export { provideThemeStore, THEME_STORE_KEY } from './theme-context';
|
|
6
|
+
export type { ThemeName, ThemeStoreLike } from './theme-context';
|
|
5
7
|
export type { ThemeMode, ThemeConfig } from './ThemeProvider.svelte';
|
|
6
8
|
export { createTheme, defaultLightTheme, defaultDarkTheme, brassAccentTheme } from './theme';
|
|
7
|
-
export type { ThemeName } from '../s0-state/ThemeStore.svelte';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -6,4 +6,5 @@ export * from './utils/index';
|
|
|
6
6
|
export { getCanvasTheme } from './canvas-theme';
|
|
7
7
|
// Theme system
|
|
8
8
|
export { default as ThemeProvider } from './ThemeProvider.svelte';
|
|
9
|
+
export { provideThemeStore, THEME_STORE_KEY } from './theme-context';
|
|
9
10
|
export { createTheme, defaultLightTheme, defaultDarkTheme, brassAccentTheme } from './theme';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ThemeName = 'dark' | 'light' | 'control-room';
|
|
2
|
+
export interface ThemeStoreLike {
|
|
3
|
+
theme: ThemeName;
|
|
4
|
+
setTheme(t: ThemeName): void;
|
|
5
|
+
}
|
|
6
|
+
export declare const THEME_STORE_KEY: unique symbol;
|
|
7
|
+
export declare function provideThemeStore(store: ThemeStoreLike): void;
|
|
8
|
+
export declare function getThemeStore(): ThemeStoreLike;
|
|
9
|
+
//# sourceMappingURL=theme-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-context.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/theme-context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,wBAAgB,aAAa,IAAI,cAAc,CAE9C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getContext, setContext } from 'svelte';
|
|
2
|
+
export const THEME_STORE_KEY = Symbol('kos-theme-store');
|
|
3
|
+
export function provideThemeStore(store) {
|
|
4
|
+
setContext(THEME_STORE_KEY, store);
|
|
5
|
+
}
|
|
6
|
+
export function getThemeStore() {
|
|
7
|
+
return getContext(THEME_STORE_KEY);
|
|
8
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,WAAW,CAKb;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/p0-primitives/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,WAAW,CAKb;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAiC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WA+B/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WA0B9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAE7B,CAAC;AAEH;;GAEG;AAIH,eAAO,MAAM,iBAAiB,EAAE,WAE9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAO9B,CAAC"}
|