@stephen-netu/design-system 0.2.2 → 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.
Files changed (229) hide show
  1. package/dist/d0-data-viz/BarChart.test.js +53 -0
  2. package/dist/d0-data-viz/CheckpointBar.test.js +83 -0
  3. package/dist/d0-data-viz/CheckpointPill.svelte +1 -1
  4. package/dist/d0-data-viz/CheckpointPill.test.js +78 -0
  5. package/dist/d0-data-viz/ConnectionHealth.test.js +70 -0
  6. package/dist/d0-data-viz/MetricCard.test.js +57 -0
  7. package/dist/d0-data-viz/SparkLine.test.js +47 -0
  8. package/dist/d0-data-viz/StorageMap.test.js +63 -0
  9. package/dist/d0-data-viz/Timeline.test.js +62 -0
  10. package/dist/d0-data-viz/WorldLineTimeline.test.js +99 -0
  11. package/dist/d0-data-viz/checkpoint-types.js +1 -1
  12. package/dist/d0-data-viz/storage-map-types.d.ts.map +1 -1
  13. package/dist/d0-data-viz/storage-map-types.js +6 -3
  14. package/dist/d0-data-viz/theme-integration.js +1 -1
  15. package/dist/demos/AmbientPrimitivesDemo.svelte +103 -0
  16. package/dist/demos/AmbientPrimitivesDemo.svelte.d.ts +5 -0
  17. package/dist/demos/AmbientPrimitivesDemo.svelte.d.ts.map +1 -0
  18. package/dist/demos/NodepadBlocksShowcase.svelte +2 -1
  19. package/dist/demos/NodepadBlocksShowcase.svelte.d.ts.map +1 -1
  20. package/dist/demos/index.d.ts +1 -0
  21. package/dist/demos/index.d.ts.map +1 -1
  22. package/dist/demos/index.js +1 -0
  23. package/dist/editor/CodeEditor.svelte +83 -26
  24. package/dist/editor/CodeEditor.svelte.d.ts +0 -1
  25. package/dist/editor/CodeEditor.svelte.d.ts.map +1 -1
  26. package/dist/editor/ExternalChangeDialog.svelte +117 -0
  27. package/dist/editor/ExternalChangeDialog.svelte.d.ts +13 -0
  28. package/dist/editor/ExternalChangeDialog.svelte.d.ts.map +1 -0
  29. package/dist/editor/MarkdownEditor.svelte +104 -617
  30. package/dist/editor/MarkdownEditor.svelte.d.ts +1 -1
  31. package/dist/editor/MarkdownEditor.svelte.d.ts.map +1 -1
  32. package/dist/editor/codemirror-config.d.ts +36 -0
  33. package/dist/editor/codemirror-config.d.ts.map +1 -0
  34. package/dist/editor/codemirror-config.js +87 -0
  35. package/dist/editor/components/CorrectionTooltip.svelte +180 -159
  36. package/dist/editor/components/CorrectionTooltip.svelte.d.ts +7 -23
  37. package/dist/editor/components/CorrectionTooltip.svelte.d.ts.map +1 -1
  38. package/dist/editor/extensions/autocomplete.d.ts +2 -2
  39. package/dist/editor/extensions/autocomplete.d.ts.map +1 -1
  40. package/dist/editor/extensions/autocomplete.test.js +121 -0
  41. package/dist/editor/extensions/spellcheck.d.ts +21 -3
  42. package/dist/editor/extensions/spellcheck.d.ts.map +1 -1
  43. package/dist/editor/extensions/spellcheck.js +51 -9
  44. package/dist/editor/extensions/spellcheck.test.js +168 -0
  45. package/dist/editor/extensions/types.d.ts +2 -1
  46. package/dist/editor/extensions/types.d.ts.map +1 -1
  47. package/dist/editor/index.d.ts +2 -1
  48. package/dist/editor/index.d.ts.map +1 -1
  49. package/dist/editor/index.js +1 -0
  50. package/dist/editor/markdown-preview.d.ts +9 -0
  51. package/dist/editor/markdown-preview.d.ts.map +1 -0
  52. package/dist/editor/markdown-preview.js +19 -0
  53. package/dist/editor/markdown-preview.test.js +38 -0
  54. package/dist/editor/useCodeMirror.d.ts +23 -0
  55. package/dist/editor/useCodeMirror.d.ts.map +1 -0
  56. package/dist/editor/useCodeMirror.js +40 -0
  57. package/dist/editor/useFilePersistence.d.ts +32 -0
  58. package/dist/editor/useFilePersistence.d.ts.map +1 -0
  59. package/dist/editor/useFilePersistence.js +117 -0
  60. package/dist/fabric/ai/ChatPanel.svelte +61 -62
  61. package/dist/fabric/ai/ChatPanel.svelte.d.ts.map +1 -1
  62. package/dist/fabric/ai/ResearchPanel.svelte +31 -24
  63. package/dist/fabric/data/FileTree.svelte +195 -0
  64. package/dist/fabric/data/FileTree.svelte.d.ts +19 -0
  65. package/dist/fabric/data/FileTree.svelte.d.ts.map +1 -0
  66. package/dist/fabric/data/FileTree.test.js +127 -0
  67. package/dist/fabric/data/index.d.ts +5 -9
  68. package/dist/fabric/data/index.d.ts.map +1 -1
  69. package/dist/fabric/data/index.js +4 -1
  70. package/dist/fabric/index.d.ts +1 -0
  71. package/dist/fabric/index.d.ts.map +1 -1
  72. package/dist/fabric/index.js +2 -0
  73. package/dist/fabric/input/KeyboardShortcuts.svelte +23 -21
  74. package/dist/fabric/layout/CollapsiblePanel.svelte +8 -10
  75. package/dist/fabric/navigation/ActivityRail.svelte +3 -5
  76. package/dist/fabric/navigation/ActivityRail.svelte.d.ts.map +1 -1
  77. package/dist/g0-generative/components/Text.svelte +38 -0
  78. package/dist/g0-generative/components/Text.svelte.d.ts +9 -0
  79. package/dist/g0-generative/components/Text.svelte.d.ts.map +1 -0
  80. package/dist/g0-generative/index.d.ts +1 -0
  81. package/dist/g0-generative/index.d.ts.map +1 -1
  82. package/dist/g0-generative/index.js +1 -0
  83. package/dist/g0-generative/library/ComponentLibrary.d.ts +4 -0
  84. package/dist/g0-generative/library/ComponentLibrary.d.ts.map +1 -1
  85. package/dist/g0-generative/library/ComponentLibrary.js +10 -0
  86. package/dist/g0-generative/library/ComponentLibrary.test.js +135 -0
  87. package/dist/g0-generative/renderer/OpenUIRenderer.svelte +16 -56
  88. package/dist/g0-generative/renderer/OpenUIRenderer.svelte.d.ts.map +1 -1
  89. package/dist/g0-generative/renderer/OpenUIRenderer.test.js +143 -0
  90. package/dist/g0-geo/SovereignMap.svelte +13 -13
  91. package/dist/g0-geo/SovereignMap.svelte.d.ts.map +1 -1
  92. package/dist/index.d.ts +0 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +3 -1
  95. package/dist/l0-layout/block-writer/BlockContent.svelte +23 -22
  96. package/dist/l0-layout/block-writer/BlockContent.svelte.d.ts.map +1 -1
  97. package/dist/l0-layout/block-writer/BlockContent.test.js +47 -0
  98. package/dist/l0-layout/block-writer/markdown.js +11 -11
  99. package/dist/l0-layout/block-writer/markdown.test.js +81 -0
  100. package/dist/l0-layout/card/StackedCard.svelte +87 -0
  101. package/dist/l0-layout/card/StackedCard.svelte.d.ts +9 -0
  102. package/dist/l0-layout/card/StackedCard.svelte.d.ts.map +1 -0
  103. package/dist/l0-layout/card/StackedCard.test.js +29 -0
  104. package/dist/l0-layout/index.d.ts +1 -0
  105. package/dist/l0-layout/index.d.ts.map +1 -1
  106. package/dist/l0-layout/index.js +1 -0
  107. package/dist/l0-layout/kanban/KanbanBoard.svelte +1 -1
  108. package/dist/l0-layout/kanban/KanbanColumn.svelte +1 -1
  109. package/dist/n1-flow-canvas/FlowCanvas.svelte +50 -6
  110. package/dist/n1-flow-canvas/FlowCanvas.svelte.d.ts.map +1 -1
  111. package/dist/n1-flow-canvas/index.d.ts +2 -0
  112. package/dist/n1-flow-canvas/index.d.ts.map +1 -1
  113. package/dist/n1-flow-canvas/index.js +1 -0
  114. package/dist/n1-flow-canvas/pipeline-adapter.d.ts +37 -0
  115. package/dist/n1-flow-canvas/pipeline-adapter.d.ts.map +1 -0
  116. package/dist/n1-flow-canvas/pipeline-adapter.js +160 -0
  117. package/dist/n2-manifold-disk/ManifoldDisk.svelte +62 -35
  118. package/dist/n2-manifold-disk/ManifoldDisk.svelte.d.ts.map +1 -1
  119. package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte +23 -19
  120. package/dist/n4-adaptive-manifold/AdaptiveManifold.svelte.d.ts.map +1 -1
  121. package/dist/n4-adaptive-manifold/types.d.ts +3 -0
  122. package/dist/n4-adaptive-manifold/types.d.ts.map +1 -1
  123. package/dist/p0-primitives/ThemeProvider.svelte +28 -7
  124. package/dist/p0-primitives/ThemeProvider.svelte.d.ts +5 -0
  125. package/dist/p0-primitives/ThemeProvider.svelte.d.ts.map +1 -1
  126. package/dist/p0-primitives/canvas-theme.d.ts +21 -1
  127. package/dist/p0-primitives/canvas-theme.d.ts.map +1 -1
  128. package/dist/p0-primitives/canvas-theme.js +78 -23
  129. package/dist/p0-primitives/debug.d.ts +6 -0
  130. package/dist/p0-primitives/debug.d.ts.map +1 -0
  131. package/dist/p0-primitives/debug.js +21 -0
  132. package/dist/p0-primitives/theme.d.ts.map +1 -1
  133. package/dist/p0-primitives/theme.js +11 -31
  134. package/dist/p0-primitives/tokens/ambient.css +76 -0
  135. package/dist/p0-primitives/tokens/tokens.css +124 -29
  136. package/dist/p0-primitives/utils/index.d.ts +2 -0
  137. package/dist/p0-primitives/utils/index.d.ts.map +1 -1
  138. package/dist/p0-primitives/utils/index.js +1 -0
  139. package/dist/p0-primitives/utils/reveal.d.ts +15 -0
  140. package/dist/p0-primitives/utils/reveal.d.ts.map +1 -0
  141. package/dist/p0-primitives/utils/reveal.js +29 -0
  142. package/dist/p0-primitives/utils/reveal.test.js +95 -0
  143. package/dist/s0-state/SyncStatus.svelte +1 -1
  144. package/dist/s0-state/index.d.ts +2 -1
  145. package/dist/s0-state/index.d.ts.map +1 -1
  146. package/dist/s0-state/index.js +2 -0
  147. package/dist/s0-state/modal-stack-store.svelte.d.ts +3 -3
  148. package/dist/s0-state/modal-stack-store.svelte.js +2 -2
  149. package/dist/spatial/ForceSimulation.svelte.js +1 -1
  150. package/dist/spatial/ParticleAssembleMark.svelte +285 -0
  151. package/dist/spatial/ParticleAssembleMark.svelte.d.ts +24 -0
  152. package/dist/spatial/ParticleAssembleMark.svelte.d.ts.map +1 -0
  153. package/dist/spatial/ZoneTiler.test.js +90 -0
  154. package/dist/spatial/index.js +1 -0
  155. package/dist/spatial/particle-assemble-math.d.ts +22 -0
  156. package/dist/spatial/particle-assemble-math.d.ts.map +1 -0
  157. package/dist/spatial/particle-assemble-math.js +26 -0
  158. package/dist/spatial/particle-assemble-math.test.js +56 -0
  159. package/dist/t0-transport/substrate.svelte.d.ts.map +1 -1
  160. package/dist/t0-transport/substrate.svelte.js +10 -4
  161. package/dist/u0-primitives/LockIndicator.svelte +16 -14
  162. package/dist/u0-primitives/VerticalToolbar.svelte +24 -21
  163. package/dist/u0-primitives/accordion/Accordion.svelte +8 -7
  164. package/dist/u0-primitives/animated-icon/AnimatedIcon.svelte +3 -3
  165. package/dist/u0-primitives/animated-icon/AnimatedIcon.test.js +82 -0
  166. package/dist/u0-primitives/avatar/Avatar.svelte +14 -14
  167. package/dist/u0-primitives/avatar/Avatar.test.js +81 -0
  168. package/dist/u0-primitives/badge/Badge.svelte +6 -4
  169. package/dist/u0-primitives/badge/ValidityBadge.svelte +4 -27
  170. package/dist/u0-primitives/button/Button.svelte +15 -12
  171. package/dist/u0-primitives/card/Card.svelte +37 -15
  172. package/dist/u0-primitives/card/Card.test.js +86 -0
  173. package/dist/u0-primitives/command-palette/CommandPalette.svelte +48 -43
  174. package/dist/u0-primitives/command-palette/CommandPalette.test.js +202 -0
  175. package/dist/u0-primitives/dropdown/Dropdown.svelte +20 -25
  176. package/dist/u0-primitives/grant-badge/GrantStatusBadge.svelte +2 -2
  177. package/dist/u0-primitives/index.d.ts +6 -0
  178. package/dist/u0-primitives/index.d.ts.map +1 -1
  179. package/dist/u0-primitives/index.js +8 -0
  180. package/dist/u0-primitives/input/Input.svelte +77 -24
  181. package/dist/u0-primitives/input/Input.svelte.d.ts +2 -10
  182. package/dist/u0-primitives/input/Input.svelte.d.ts.map +1 -1
  183. package/dist/u0-primitives/input/Input.test.js +81 -1
  184. package/dist/u0-primitives/live-dot/LiveDot.svelte +56 -0
  185. package/dist/u0-primitives/live-dot/LiveDot.svelte.d.ts +11 -0
  186. package/dist/u0-primitives/live-dot/LiveDot.svelte.d.ts.map +1 -0
  187. package/dist/u0-primitives/live-dot/LiveDot.test.js +41 -0
  188. package/dist/u0-primitives/live-dot/index.d.ts +3 -0
  189. package/dist/u0-primitives/live-dot/index.d.ts.map +1 -0
  190. package/dist/u0-primitives/live-dot/index.js +1 -0
  191. package/dist/u0-primitives/modal/Modal.svelte +22 -19
  192. package/dist/u0-primitives/modal/Modal.test.js +1 -1
  193. package/dist/u0-primitives/spinner/Spinner.svelte +11 -79
  194. package/dist/u0-primitives/spinner/Spinner.svelte.d.ts.map +1 -1
  195. package/dist/u0-primitives/steps/Steps.svelte +18 -19
  196. package/dist/u0-primitives/surface-state/SurfaceState.svelte +7 -7
  197. package/dist/u0-primitives/tabs/Tabs.svelte +13 -11
  198. package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte +94 -0
  199. package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte.d.ts +16 -0
  200. package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.svelte.d.ts.map +1 -0
  201. package/dist/u0-primitives/theme-swatch-group/ThemeSwatchGroup.test.js +48 -0
  202. package/dist/u0-primitives/theme-swatch-group/index.d.ts +3 -0
  203. package/dist/u0-primitives/theme-swatch-group/index.d.ts.map +1 -0
  204. package/dist/u0-primitives/theme-swatch-group/index.js +1 -0
  205. package/dist/u0-primitives/toggle/Toggle.svelte +10 -11
  206. package/dist/u0-primitives/tooltip/Tooltip.svelte +9 -9
  207. package/dist/u0-primitives/web-components/button-component.d.ts +5 -1
  208. package/dist/u0-primitives/web-components/button-component.d.ts.map +1 -1
  209. package/dist/u0-primitives/web-components/button-component.js +72 -33
  210. package/dist/u0-primitives/web-components/index.d.ts +3 -0
  211. package/dist/u0-primitives/web-components/index.d.ts.map +1 -0
  212. package/dist/u0-primitives/web-components/index.js +2 -0
  213. package/dist/u0-primitives/web-components/input-component.d.ts +5 -1
  214. package/dist/u0-primitives/web-components/input-component.d.ts.map +1 -1
  215. package/dist/u0-primitives/web-components/input-component.js +56 -39
  216. package/dist/u0-primitives/web-components/web-components.test.js +96 -0
  217. package/dist/u0-primitives/window-frame/WindowFrame.svelte +87 -0
  218. package/dist/u0-primitives/window-frame/WindowFrame.svelte.d.ts +10 -0
  219. package/dist/u0-primitives/window-frame/WindowFrame.svelte.d.ts.map +1 -0
  220. package/dist/u0-primitives/window-frame/WindowFrame.test.js +31 -0
  221. package/dist/u0-primitives/window-frame/index.d.ts +3 -0
  222. package/dist/u0-primitives/window-frame/index.d.ts.map +1 -0
  223. package/dist/u0-primitives/window-frame/index.js +1 -0
  224. package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte +11 -2
  225. package/dist/x0-enchanted-blocks/components/NodepadBlock.svelte.d.ts.map +1 -1
  226. package/package.json +44 -28
  227. package/src/p0-primitives/tokens/ambient.css +76 -0
  228. package/src/p0-primitives/tokens/tokens.css +124 -29
  229. package/src/p0-primitives/tokens/tokens.json +42 -24
package/package.json CHANGED
@@ -1,12 +1,32 @@
1
1
  {
2
2
  "name": "@stephen-netu/design-system",
3
- "version": "0.2.2",
3
+ "version": "0.5.1",
4
4
  "description": "KOS LEAP Design System — Neo-brutalist industrial UI with brass accent",
5
5
  "type": "module",
6
6
  "publishConfig": {
7
7
  "access": "public",
8
8
  "registry": "https://registry.npmjs.org/"
9
9
  },
10
+ "scripts": {
11
+ "tokens:generate": "tsx scripts/generate-tokens-json.ts",
12
+ "prebuild": "pnpm tokens:generate",
13
+ "build": "svelte-package -i src -o dist",
14
+ "postbuild": "pnpm tokens:generate",
15
+ "changeset": "changeset",
16
+ "version": "changeset version",
17
+ "release": "pnpm build && changeset publish",
18
+ "docs:dev": "vitepress dev docs",
19
+ "docs:build": "vitepress build docs",
20
+ "docs:preview": "vitepress preview docs",
21
+ "test": "vitest run",
22
+ "test:e2e": "playwright test",
23
+ "check": "svelte-check --tsconfig ./tsconfig.json",
24
+ "check:layers": "node scripts/checks/import-graph.mjs",
25
+ "check:tokens": "node scripts/checks/token-audit.mjs",
26
+ "check:exports": "node scripts/checks/check-exports.mjs",
27
+ "check:all": "pnpm check && pnpm check:layers && pnpm check:tokens && pnpm check:vite-pin",
28
+ "check:vite-pin": "node -e \"const v=require('./package.json').devDependencies.vite;if(v!=='5.4.21'){console.error('vite pin violated: found '+v+', must stay at 5.4.21 (LEAP workspace standard — see LEAP/pnpm-workspace.yaml before bumping)');process.exit(1)}\""
29
+ },
10
30
  "files": [
11
31
  "dist/**/*.svelte",
12
32
  "dist/**/*.svelte.js",
@@ -37,6 +57,19 @@
37
57
  "svelte": "./dist/u0-primitives/index.js",
38
58
  "default": "./dist/u0-primitives/index.js"
39
59
  },
60
+ "./u0-primitives/web-components": {
61
+ "types": "./dist/u0-primitives/web-components/index.d.ts",
62
+ "default": "./dist/u0-primitives/web-components/index.js"
63
+ },
64
+ "./u0-primitives/web-components/button-component": {
65
+ "types": "./dist/u0-primitives/web-components/button-component.d.ts",
66
+ "default": "./dist/u0-primitives/web-components/button-component.js"
67
+ },
68
+ "./u0-primitives/web-components/input-component": {
69
+ "types": "./dist/u0-primitives/web-components/input-component.d.ts",
70
+ "default": "./dist/u0-primitives/web-components/input-component.js"
71
+ },
72
+ "./u0-primitives/input/Input.svelte": "./dist/u0-primitives/input/Input.svelte",
40
73
  "./u0-primitives/surface-state/SurfaceState.svelte": "./dist/u0-primitives/surface-state/SurfaceState.svelte",
41
74
  "./u0-primitives/badge/ValidityBadge.svelte": "./dist/u0-primitives/badge/ValidityBadge.svelte",
42
75
  "./u0-primitives/badge/validity-utils": "./dist/u0-primitives/badge/validity-utils.js",
@@ -58,6 +91,7 @@
58
91
  "./spatial/LodRenderer.svelte": "./dist/spatial/LodRenderer.svelte",
59
92
  "./spatial/SnapZoomCamera.svelte": "./dist/spatial/SnapZoomCamera.svelte",
60
93
  "./spatial/BspTilingCanvas.svelte": "./dist/spatial/BspTilingCanvas.svelte",
94
+ "./spatial/ParticleAssembleMark.svelte": "./dist/spatial/ParticleAssembleMark.svelte",
61
95
  "./s0-lifecycle": "./dist/s0-lifecycle/index.js",
62
96
  "./s0-state": "./dist/s0-state/index.js",
63
97
  "./t0-transport": "./dist/t0-transport/index.js",
@@ -82,7 +116,9 @@
82
116
  "./g0-generative": "./dist/g0-generative/index.js",
83
117
  "./entity-graph-view": "./dist/entity-graph-view/index.js",
84
118
  "./tokens.css": "./dist/p0-primitives/tokens/tokens.css",
119
+ "./tokens/validity-tokens.css": "./dist/p0-primitives/tokens/validity-tokens.css",
85
120
  "./tokens/control-room.css": "./dist/p0-primitives/tokens/control-room.css",
121
+ "./tokens/ambient.css": "./dist/p0-primitives/tokens/ambient.css",
86
122
  "./d0-tokens.css": "./dist/d0-data-viz/d0-tokens.css",
87
123
  "./n0-tokens.css": "./dist/n0-node-graph/n0-tokens.css",
88
124
  "./base.css": "./dist/base.css",
@@ -92,11 +128,8 @@
92
128
  "./x0-enchanted-blocks": "./dist/x0-enchanted-blocks/index.js",
93
129
  "./editor": "./dist/editor/index.js",
94
130
  "./editor/MarkdownEditor.svelte": "./dist/editor/MarkdownEditor.svelte",
95
- "./demos": "./dist/demos/index.js",
96
- "./demos/BspZoneDemo.svelte": "./dist/demos/BspZoneDemo.svelte",
97
- "./demos/NodepadBlocksShowcase.svelte": "./dist/demos/NodepadBlocksShowcase.svelte",
98
- "./demos/BspSizingInfographic.svelte": "./dist/demos/BspSizingInfographic.svelte",
99
- "./demos/ControlRoomDemo.svelte": "./dist/demos/ControlRoomDemo.svelte",
131
+ "./editor/CorrectionTooltip.svelte": "./dist/editor/components/CorrectionTooltip.svelte",
132
+ "./editor/extensions/autocomplete": "./dist/editor/extensions/autocomplete.js",
100
133
  "./fabric": "./dist/fabric/index.js",
101
134
  "./fabric/layout": "./dist/fabric/layout/index.js",
102
135
  "./fabric/layout/GlassBox.svelte": "./dist/fabric/layout/GlassBox.svelte",
@@ -106,6 +139,7 @@
106
139
  "./fabric/navigation": "./dist/fabric/navigation/index.js",
107
140
  "./fabric/navigation/ActivityRail.svelte": "./dist/fabric/navigation/ActivityRail.svelte",
108
141
  "./fabric/data": "./dist/fabric/data/index.js",
142
+ "./fabric/data/FileTree.svelte": "./dist/fabric/data/FileTree.svelte",
109
143
  "./fabric/input": "./dist/fabric/input/index.js",
110
144
  "./fabric/input/AppHeaderBar.svelte": "./dist/fabric/input/AppHeaderBar.svelte",
111
145
  "./fabric/input/KeyboardShortcuts.svelte": "./dist/fabric/input/KeyboardShortcuts.svelte",
@@ -143,7 +177,7 @@
143
177
  "@codemirror/lint": "^6.8.0",
144
178
  "@codemirror/search": "^6.6.0",
145
179
  "@codemirror/state": "6.6.0",
146
- "@codemirror/view": "^6.43.0",
180
+ "@codemirror/view": "^6.43.1",
147
181
  "codemirror": "^6.0.1",
148
182
  "d3-force": "^3.0.0",
149
183
  "elkjs": "^0.9.3",
@@ -154,6 +188,7 @@
154
188
  "markmap-lib": "^0.18.0",
155
189
  "markmap-view": "^0.18.0",
156
190
  "mermaid": "^11.0.0",
191
+ "dompurify": "^3.4.9",
157
192
  "perfect-arrows": "^0.3.7",
158
193
  "svelte-canvas": "^2.1.0"
159
194
  },
@@ -194,24 +229,5 @@
194
229
  ],
195
230
  "author": "Stephen Netu",
196
231
  "license": "MIT",
197
- "scripts": {
198
- "tokens:generate": "tsx scripts/generate-tokens-json.ts",
199
- "prebuild": "pnpm tokens:generate",
200
- "build": "svelte-package -i src -o dist",
201
- "postbuild": "pnpm tokens:generate",
202
- "changeset": "changeset",
203
- "version": "changeset version",
204
- "release": "pnpm build && changeset publish",
205
- "docs:dev": "vitepress dev docs",
206
- "docs:build": "vitepress build docs",
207
- "docs:preview": "vitepress preview docs",
208
- "test": "vitest run",
209
- "test:e2e": "playwright test",
210
- "check": "svelte-check --tsconfig ./tsconfig.json",
211
- "check:layers": "node scripts/checks/import-graph.mjs",
212
- "check:tokens": "node scripts/checks/token-audit.mjs",
213
- "check:exports": "node scripts/checks/check-exports.mjs",
214
- "check:all": "pnpm check && pnpm check:layers && pnpm check:tokens && pnpm check:vite-pin",
215
- "check:vite-pin": "node -e \"const v=require('./package.json').devDependencies.vite;if(v!=='5.4.21'){console.error('vite pin violated: found '+v+', must stay at 5.4.21 (LEAP workspace standard — see LEAP/pnpm-workspace.yaml before bumping)');process.exit(1)}\""
216
- }
217
- }
232
+ "packageManager": "pnpm@11.5.2"
233
+ }
@@ -0,0 +1,76 @@
1
+ /* @kos/design-system — Ambient Layer
2
+ Opt-in decorative tokens for marketing/docs/onboarding surfaces —
3
+ NOT auto-imported (see src/index.ts). Import explicitly:
4
+ import '@stephen-netu/design-system/tokens/ambient.css';
5
+
6
+ Everything here derives from the existing single-seed accent engine
7
+ (--accent-primary → color-mix()) already defined in tokens.css. No
8
+ hardcoded hues are introduced — swapping --accent-primary re-themes
9
+ every gradient/glow defined here for free. Do not add hardcoded
10
+ parallel palettes; that reintroduces the "brass leak" anti-pattern
11
+ tokens.css's own comments warn against. */
12
+
13
+ :root {
14
+ /* --- Gradient --- */
15
+ --gradient-accent: linear-gradient(135deg, var(--accent-primary) 0%, var(--color-accent-secondary) 100%);
16
+
17
+ /* --- Ambient glow layers — low-opacity radial fields for hero/empty-state backgrounds --- */
18
+ --glow-ambient-1: color-mix(in srgb, var(--accent-primary) 7%, transparent);
19
+ --glow-ambient-2: color-mix(in srgb, var(--color-accent-secondary) 5%, transparent);
20
+ --glow-ambient-3: color-mix(in srgb, var(--accent-primary) 3%, transparent);
21
+ }
22
+
23
+ /* --- Gradient text --- */
24
+ .text-gradient-accent {
25
+ background: var(--gradient-accent);
26
+ -webkit-background-clip: text;
27
+ background-clip: text;
28
+ color: transparent;
29
+ }
30
+
31
+ /* --- Ambient background glow ---
32
+ Apply to a positioned container; renders a fixed-feel radial glow trio
33
+ behind its content. Marketing/docs surfaces only — do not use on
34
+ console/product chrome. */
35
+ .bg-ambient-glow {
36
+ position: relative;
37
+ }
38
+ .bg-ambient-glow::before {
39
+ content: '';
40
+ position: absolute;
41
+ inset: 0;
42
+ z-index: 0;
43
+ pointer-events: none;
44
+ background:
45
+ radial-gradient(900px 600px at 10% -10%, var(--glow-ambient-1), transparent 65%),
46
+ radial-gradient(700px 500px at 92% 8%, var(--glow-ambient-2), transparent 60%),
47
+ radial-gradient(1000px 800px at 50% 140%, var(--glow-ambient-3), transparent 70%);
48
+ }
49
+ .bg-ambient-glow > * {
50
+ position: relative;
51
+ z-index: 1;
52
+ }
53
+
54
+ /* --- Scroll reveal (see p0-primitives/utils/reveal.ts) ---
55
+ Marketing/docs surfaces only — never wire into console/product chrome. */
56
+ @keyframes ds-reveal-fade-up {
57
+ from { opacity: 0; transform: translateY(20px); }
58
+ to { opacity: 1; transform: translateY(0); }
59
+ }
60
+
61
+ .ds-reveal {
62
+ opacity: 0;
63
+ }
64
+
65
+ .ds-reveal.ds-reveal-in {
66
+ animation: ds-reveal-fade-up 0.7s cubic-bezier(0.16, 0.8, 0.3, 1) both;
67
+ animation-delay: var(--ds-reveal-delay, 0ms);
68
+ }
69
+
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .ds-reveal,
72
+ .ds-reveal.ds-reveal-in {
73
+ opacity: 1;
74
+ animation: none;
75
+ }
76
+ }
@@ -28,14 +28,25 @@
28
28
  --color-card-text-secondary: #a8a08c;
29
29
  --color-card-text-tertiary: #6b6558;
30
30
 
31
- /* --- Accent (default: brass, user-controllable via --accent-*) --- */
31
+ /* --- Accent SINGLE-SEED ENGINE ----------------------------------------
32
+ A consumer sets ONE value, --accent-primary (the in-app accent dropdown),
33
+ and the whole accent system recomputes via color-mix. No value below is
34
+ pinned to a hue, so any user color stays coherent across light/dark.
35
+ (Was: 7 hand-picked brass values + brass rgba ramps that ignored the
36
+ user's choice — the "brass leak".) --accent-* remain consumer override
37
+ hooks (token-audit ACCENT_HOOKS); components consume --color-accent* only.
38
+
39
+ Browser support: color-mix() requires Chrome 111+, Safari 16.2+, Firefox
40
+ 113+. Fallbacks below use var(--accent-primary) directly (no hue shift),
41
+ which is acceptable on legacy browsers — the seed itself is still
42
+ controllable. */
32
43
  --accent-primary: #b87333;
33
- --accent-hover: #d4892f;
34
- --accent-active: #8a5526;
35
- --accent-glow: rgba(184, 115, 51, 0.28);
36
- --accent-muted: rgba(184, 115, 51, 0.16);
37
- --accent-subtle: rgba(184, 115, 51, 0.08);
38
- --accent-faint: rgba(184, 115, 51, 0.04);
44
+ --accent-hover: var(--accent-primary);
45
+ --accent-active: var(--accent-primary);
46
+ --accent-glow: var(--accent-primary);
47
+ --accent-muted: var(--accent-primary);
48
+ --accent-subtle: var(--accent-primary);
49
+ --accent-faint: var(--accent-primary);
39
50
  --color-accent: var(--accent-primary);
40
51
  --color-accent-hover: var(--accent-hover);
41
52
  --color-accent-active: var(--accent-active);
@@ -43,9 +54,43 @@
43
54
  --color-accent-muted: var(--accent-muted);
44
55
  --color-accent-subtle: var(--accent-subtle);
45
56
  --color-accent-faint: var(--accent-faint);
46
- --color-accent-secondary: #d4a574; /* Companion warm tone (n4 kind colors) */
57
+ --color-accent-secondary: var(--accent-primary);
58
+ }
59
+
60
+ @supports (color-mix(in srgb, red, transparent)) {
61
+ :root {
62
+ --accent-hover: color-mix(in oklab, var(--accent-primary), #fff 16%);
63
+ --accent-active: color-mix(in oklab, var(--accent-primary), #000 22%);
64
+ --accent-glow: color-mix(in srgb, var(--accent-primary) 28%, transparent);
65
+ --accent-muted: color-mix(in srgb, var(--accent-primary) 16%, transparent);
66
+ --accent-subtle: color-mix(in srgb, var(--accent-primary) 8%, transparent);
67
+ --accent-faint: color-mix(in srgb, var(--accent-primary) 4%, transparent);
68
+ --color-accent-hover: var(--accent-hover);
69
+ --color-accent-active: var(--accent-active);
70
+ --color-accent-glow: var(--accent-glow);
71
+ --color-accent-muted: var(--accent-muted);
72
+ --color-accent-subtle: var(--accent-subtle);
73
+ --color-accent-faint: var(--accent-faint);
74
+ --color-accent-secondary: color-mix(in oklab, var(--accent-primary), #fff 26%);
75
+ --overlay-accent-06: color-mix(in srgb, var(--accent-primary) 6%, transparent);
76
+ --overlay-accent-08: color-mix(in srgb, var(--accent-primary) 8%, transparent);
77
+ --overlay-accent-12: color-mix(in srgb, var(--accent-primary) 12%, transparent);
78
+ --overlay-accent-18: color-mix(in srgb, var(--accent-primary) 18%, transparent);
79
+ --overlay-accent-30: color-mix(in srgb, var(--accent-primary) 30%, transparent);
80
+ --overlay-accent-45: color-mix(in srgb, var(--accent-primary) 45%, transparent);
81
+ --overlay-accent-50: color-mix(in srgb, var(--accent-primary) 50%, transparent);
82
+ --overlay-accent-55: color-mix(in srgb, var(--accent-primary) 55%, transparent);
83
+ --grid-line: color-mix(in srgb, var(--accent-primary) 3%, transparent);
84
+ --grid-dot: color-mix(in srgb, var(--accent-primary) 6%, transparent);
85
+ --grid-major: color-mix(in srgb, var(--accent-primary) 10%, transparent);
86
+ --shadow-glow: 0 0 12px color-mix(in srgb, var(--accent-primary) 15%, transparent);
87
+ --shadow-glow-lg: 0 0 24px color-mix(in srgb, var(--accent-primary) 25%, transparent);
88
+ --shadow-accent-glow: 0 0 16px color-mix(in srgb, var(--accent-primary) 15%, transparent), 0 0 32px color-mix(in srgb, var(--accent-primary) 5%, transparent);
89
+ }
90
+ }
47
91
 
48
- /* Overlay levels — white opacity ramps for borders, backgrounds, hover states */
92
+ :root {
93
+ /* --- Overlay levels — white opacity ramps for borders, backgrounds, hover states */
49
94
  --overlay-white-02: rgba(255, 255, 255, 0.02);
50
95
  --overlay-white-03: rgba(255, 255, 255, 0.03);
51
96
  --overlay-white-04: rgba(255, 255, 255, 0.04);
@@ -57,15 +102,16 @@
57
102
  --overlay-white-22: rgba(255, 255, 255, 0.22);
58
103
  --overlay-white-25: rgba(255, 255, 255, 0.25);
59
104
 
60
- /* Overlay levels — accent color opacity ramps */
61
- --overlay-accent-06: rgba(184, 115, 51, 0.06);
62
- --overlay-accent-08: rgba(184, 115, 51, 0.08);
63
- --overlay-accent-12: rgba(184, 115, 51, 0.12);
64
- --overlay-accent-18: rgba(184, 115, 51, 0.18);
65
- --overlay-accent-30: rgba(184, 115, 51, 0.30);
66
- --overlay-accent-45: rgba(184, 115, 51, 0.45);
67
- --overlay-accent-50: rgba(184, 115, 51, 0.50);
68
- --overlay-accent-55: rgba(184, 115, 51, 0.55);
105
+ /* Overlay levels — accent color opacity ramps
106
+ (fallback: transparent for browsers without color-mix) */
107
+ --overlay-accent-06: transparent;
108
+ --overlay-accent-08: transparent;
109
+ --overlay-accent-12: transparent;
110
+ --overlay-accent-18: transparent;
111
+ --overlay-accent-30: transparent;
112
+ --overlay-accent-45: transparent;
113
+ --overlay-accent-50: transparent;
114
+ --overlay-accent-55: transparent;
69
115
 
70
116
  /* Overlay levels — status color opacity ramps */
71
117
  --overlay-success-06: rgba(79, 168, 162, 0.06);
@@ -128,7 +174,7 @@
128
174
  --border-subtle: rgba(255, 255, 255, 0.06);
129
175
  --border-default: #3a3630;
130
176
  --border-hover: #6b6558;
131
- --border-focus: #b87333;
177
+ --border-focus: var(--accent-primary);
132
178
  --border-alert: #c14a4a;
133
179
  --border-warning: #d4a04c;
134
180
  --divider-color: #181c20;
@@ -138,10 +184,10 @@
138
184
  --color-border-subtle: var(--border-subtle);
139
185
  --color-border-default: var(--border-default);
140
186
 
141
- /* --- Grid (canvas patterns) --- */
142
- --grid-line: rgba(184, 115, 51, 0.03);
143
- --grid-dot: rgba(184, 115, 51, 0.06);
144
- --grid-major: rgba(184, 115, 51, 0.1);
187
+ /* --- Grid (canvas patterns) --- */
188
+ --grid-line: transparent;
189
+ --grid-dot: transparent;
190
+ --grid-major: transparent;
145
191
 
146
192
  /* --- Typography --- */
147
193
  --font-sans: 'Outfit', system-ui, -apple-system, sans-serif;
@@ -158,6 +204,17 @@
158
204
  --text-3xl: 1.875rem;
159
205
  --text-4xl: 2.25rem;
160
206
 
207
+ /* --- Font weight (fixes phantom --font-weight-* referenced by g0 Text.svelte) --- */
208
+ --font-weight-normal: 400;
209
+ --font-weight-medium: 500;
210
+ --font-weight-semibold: 600;
211
+ --font-weight-bold: 700;
212
+
213
+ /* --- Line height (fixes phantom --line-height-* referenced by g0 Text.svelte) --- */
214
+ --line-height-tight: 1.2;
215
+ --line-height-normal: 1.5;
216
+ --line-height-relaxed: 1.7;
217
+
161
218
  /* --- Spacing --- */
162
219
  --space-05: 0.125rem;
163
220
  --space-1: 0.25rem;
@@ -194,12 +251,12 @@
194
251
  --shadow-md: none;
195
252
  --shadow-lg: none;
196
253
  --shadow-xl: none;
197
- --shadow-glow: 0 0 12px rgba(184, 115, 51, 0.15);
198
- --shadow-glow-lg: 0 0 24px rgba(184, 115, 51, 0.25);
199
- --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.4);
200
- --shadow-card: none;
201
- --shadow-card-hover: none;
202
- --shadow-accent-glow: 0 0 16px rgba(184, 115, 51, 0.15), 0 0 32px rgba(184, 115, 51, 0.05);
254
+ --shadow-glow: 0 0 12px rgba(0, 0, 0, 0.4);
255
+ --shadow-glow-lg: 0 0 24px rgba(0, 0, 0, 0.4);
256
+ --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.4);
257
+ --shadow-card: none;
258
+ --shadow-card-hover: none;
259
+ --shadow-accent-glow: 0 0 16px rgba(0, 0, 0, 0.4), 0 0 32px rgba(0, 0, 0, 0.4);
203
260
 
204
261
  /* --- Transitions --- */
205
262
  --transition-fast: 120ms ease;
@@ -255,4 +312,42 @@
255
312
  --z-tooltip: 1070;
256
313
  --z-toast: 1080;
257
314
  --z-glass-box: 9000;
315
+
316
+ /* --- Density (system default = COMPACT) ----------------------------------
317
+ A first-class density tier. Surfaces opt into a calibration with
318
+ [data-density]: comfortable (reading/writing — editor, prose, forms),
319
+ compact (default, general UI), cockpit (monitoring/data-dense — dashboards,
320
+ logs, registries, manifold panels). Same components, three calibrations.
321
+ Components consume these --ui-* tokens for sizing/type instead of raw px.
322
+ Cockpit sits at the legibility floors: data 10px, label 9px, row/target
323
+ 20px, pad 3px, leading 1.22 (note: 20px trips WCAG 2.5.8's 24px pref, so
324
+ cockpit is opt-in, never the global default). */
325
+ --ui-control-h: 24px; /* button / input / select height */
326
+ --ui-row-h: 24px; /* table / list row height (pointer target) */
327
+ --ui-pad-x: 8px;
328
+ --ui-pad-y: 5px;
329
+ --ui-gap: 1px; /* hairline grid gap — the ruled spine */
330
+ --ui-font: 13px; /* body / control text */
331
+ --ui-font-sm: 12px;
332
+ --ui-data: 11px; /* monospace data / table cells */
333
+ --ui-label: 10px; /* uppercase micro-labels */
334
+ --ui-leading: 1.35;
335
+ --ui-icon: 14px;
336
+ }
337
+
338
+ /* Density calibrations — set [data-density] on any container or surface. */
339
+ [data-density="comfortable"] {
340
+ --ui-control-h: 30px; --ui-row-h: 30px; --ui-pad-x: 12px; --ui-pad-y: 8px;
341
+ --ui-gap: 1px; --ui-font: 14px; --ui-font-sm: 13px; --ui-data: 13px;
342
+ --ui-label: 11px; --ui-leading: 1.45; --ui-icon: 16px;
343
+ }
344
+ [data-density="compact"] {
345
+ --ui-control-h: 24px; --ui-row-h: 24px; --ui-pad-x: 8px; --ui-pad-y: 5px;
346
+ --ui-gap: 1px; --ui-font: 13px; --ui-font-sm: 12px; --ui-data: 11px;
347
+ --ui-label: 10px; --ui-leading: 1.35; --ui-icon: 14px;
348
+ }
349
+ [data-density="cockpit"] {
350
+ --ui-control-h: 20px; --ui-row-h: 20px; --ui-pad-x: 6px; --ui-pad-y: 3px;
351
+ --ui-gap: 1px; --ui-font: 12px; --ui-font-sm: 11px; --ui-data: 10px;
352
+ --ui-label: 9px; --ui-leading: 1.22; --ui-icon: 13px;
258
353
  }
@@ -52,6 +52,17 @@
52
52
  "divider": "var(--divider-color)"
53
53
  }
54
54
  },
55
+ "shadows": {
56
+ "glow": "var(--shadow-glow)",
57
+ "glowLg": "var(--shadow-glow-lg)",
58
+ "sm": "var(--shadow-sm)",
59
+ "md": "var(--shadow-md)",
60
+ "lg": "var(--shadow-lg)",
61
+ "xl": "var(--shadow-xl)",
62
+ "inner": "var(--shadow-inner)",
63
+ "card": "var(--shadow-card)",
64
+ "cardHover": "var(--shadow-card-hover)"
65
+ },
55
66
  "epistemic": {
56
67
  "cleared": "var(--epistemic-cleared)",
57
68
  "clearedGlow": "var(--epistemic-cleared-glow)",
@@ -114,17 +125,6 @@
114
125
  "xl": "var(--radius-xl)",
115
126
  "full": "var(--radius-full)"
116
127
  },
117
- "shadows": {
118
- "sm": "var(--shadow-sm)",
119
- "md": "var(--shadow-md)",
120
- "lg": "var(--shadow-lg)",
121
- "xl": "var(--shadow-xl)",
122
- "glow": "var(--shadow-glow)",
123
- "glowLg": "var(--shadow-glow-lg)",
124
- "inner": "var(--shadow-inner)",
125
- "card": "var(--shadow-card)",
126
- "cardHover": "var(--shadow-card-hover)"
127
- },
128
128
  "animations": {
129
129
  "fast": "var(--transition-fast)",
130
130
  "normal": "var(--transition-normal)",
@@ -143,6 +143,18 @@
143
143
  "accent_muted": "var(--accent-muted)",
144
144
  "accent_subtle": "var(--accent-subtle)",
145
145
  "accent_faint": "var(--accent-faint)",
146
+ "overlay_accent_06": "var(--overlay-accent-06)",
147
+ "overlay_accent_08": "var(--overlay-accent-08)",
148
+ "overlay_accent_12": "var(--overlay-accent-12)",
149
+ "overlay_accent_18": "var(--overlay-accent-18)",
150
+ "overlay_accent_30": "var(--overlay-accent-30)",
151
+ "overlay_accent_45": "var(--overlay-accent-45)",
152
+ "overlay_accent_50": "var(--overlay-accent-50)",
153
+ "overlay_accent_55": "var(--overlay-accent-55)",
154
+ "grid_line": "var(--grid-line)",
155
+ "grid_dot": "var(--grid-dot)",
156
+ "grid_major": "var(--grid-major)",
157
+ "shadow_accent_glow": "var(--shadow-accent-glow)",
146
158
  "overlay_white_02": "var(--overlay-white-02)",
147
159
  "overlay_white_03": "var(--overlay-white-03)",
148
160
  "overlay_white_04": "var(--overlay-white-04)",
@@ -153,14 +165,6 @@
153
165
  "overlay_white_18": "var(--overlay-white-18)",
154
166
  "overlay_white_22": "var(--overlay-white-22)",
155
167
  "overlay_white_25": "var(--overlay-white-25)",
156
- "overlay_accent_06": "var(--overlay-accent-06)",
157
- "overlay_accent_08": "var(--overlay-accent-08)",
158
- "overlay_accent_12": "var(--overlay-accent-12)",
159
- "overlay_accent_18": "var(--overlay-accent-18)",
160
- "overlay_accent_30": "var(--overlay-accent-30)",
161
- "overlay_accent_45": "var(--overlay-accent-45)",
162
- "overlay_accent_50": "var(--overlay-accent-50)",
163
- "overlay_accent_55": "var(--overlay-accent-55)",
164
168
  "overlay_success_06": "var(--overlay-success-06)",
165
169
  "overlay_warning_06": "var(--overlay-warning-06)",
166
170
  "overlay_error_06": "var(--overlay-error-06)",
@@ -176,10 +180,14 @@
176
180
  "color_border": "var(--color-border)",
177
181
  "color_border_subtle": "var(--color-border-subtle)",
178
182
  "color_border_default": "var(--color-border-default)",
179
- "grid_line": "var(--grid-line)",
180
- "grid_dot": "var(--grid-dot)",
181
- "grid_major": "var(--grid-major)",
182
183
  "text_2xs": "var(--text-2xs)",
184
+ "font_weight_normal": "var(--font-weight-normal)",
185
+ "font_weight_medium": "var(--font-weight-medium)",
186
+ "font_weight_semibold": "var(--font-weight-semibold)",
187
+ "font_weight_bold": "var(--font-weight-bold)",
188
+ "line_height_tight": "var(--line-height-tight)",
189
+ "line_height_normal": "var(--line-height-normal)",
190
+ "line_height_relaxed": "var(--line-height-relaxed)",
183
191
  "border_width_thin": "var(--border-width-thin)",
184
192
  "border_width_default": "var(--border-width-default)",
185
193
  "border_width_heavy": "var(--border-width-heavy)",
@@ -188,7 +196,6 @@
188
196
  "blur_md": "var(--blur-md)",
189
197
  "blur_lg": "var(--blur-lg)",
190
198
  "radius_xs": "var(--radius-xs)",
191
- "shadow_accent_glow": "var(--shadow-accent-glow)",
192
199
  "color_bg_primary": "var(--color-bg-primary)",
193
200
  "color_bg_secondary": "var(--color-bg-secondary)",
194
201
  "color_bg_tertiary": "var(--color-bg-tertiary)",
@@ -224,6 +231,17 @@
224
231
  "z_popover": "var(--z-popover)",
225
232
  "z_tooltip": "var(--z-tooltip)",
226
233
  "z_toast": "var(--z-toast)",
227
- "z_glass_box": "var(--z-glass-box)"
234
+ "z_glass_box": "var(--z-glass-box)",
235
+ "ui_control_h": "var(--ui-control-h)",
236
+ "ui_row_h": "var(--ui-row-h)",
237
+ "ui_pad_x": "var(--ui-pad-x)",
238
+ "ui_pad_y": "var(--ui-pad-y)",
239
+ "ui_gap": "var(--ui-gap)",
240
+ "ui_font": "var(--ui-font)",
241
+ "ui_font_sm": "var(--ui-font-sm)",
242
+ "ui_data": "var(--ui-data)",
243
+ "ui_label": "var(--ui-label)",
244
+ "ui_leading": "var(--ui-leading)",
245
+ "ui_icon": "var(--ui-icon)"
228
246
  }
229
247
  }