@motion-proto/live-tokens 0.1.0 → 0.3.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 (225) hide show
  1. package/README.md +160 -21
  2. package/dist-plugin/index.cjs +823 -336
  3. package/dist-plugin/index.d.cts +9 -7
  4. package/dist-plugin/index.d.ts +9 -7
  5. package/dist-plugin/index.js +822 -335
  6. package/package.json +51 -23
  7. package/src/assets/newspaper.webp +0 -0
  8. package/src/assets/offering.webp +0 -0
  9. package/src/component-editor/BadgeEditor.svelte +170 -0
  10. package/src/component-editor/CalloutEditor.svelte +103 -0
  11. package/src/component-editor/CardEditor.svelte +184 -0
  12. package/src/component-editor/CollapsibleSectionEditor.svelte +167 -0
  13. package/src/component-editor/CornerBadgeEditor.svelte +207 -0
  14. package/src/component-editor/DialogEditor.svelte +172 -0
  15. package/src/component-editor/ImageEditor.svelte +72 -0
  16. package/src/component-editor/InlineEditActionsEditor.svelte +83 -0
  17. package/src/component-editor/NotificationEditor.svelte +160 -0
  18. package/src/component-editor/ProgressBarEditor.svelte +124 -0
  19. package/src/component-editor/RadioButtonEditor.svelte +140 -0
  20. package/src/component-editor/SectionDividerEditor.svelte +263 -0
  21. package/src/component-editor/SegmentedControlEditor.svelte +154 -0
  22. package/src/component-editor/StandardButtonsEditor.svelte +178 -0
  23. package/src/component-editor/TabBarEditor.svelte +137 -0
  24. package/src/component-editor/TableEditor.svelte +128 -0
  25. package/src/component-editor/TooltipEditor.svelte +122 -0
  26. package/src/component-editor/editorTokens.test.ts +93 -0
  27. package/src/component-editor/groupKeySlots.test.ts +67 -0
  28. package/src/component-editor/groupKeySnapshot.test.ts +52 -0
  29. package/src/component-editor/index.ts +5 -0
  30. package/src/component-editor/registry.ts +246 -0
  31. package/src/component-editor/scaffolding/AngleDial.svelte +185 -0
  32. package/src/component-editor/scaffolding/ComponentEditorBase.svelte +96 -0
  33. package/src/component-editor/scaffolding/ComponentFileManager.svelte +682 -0
  34. package/src/component-editor/scaffolding/ComponentFileMenu.svelte +312 -0
  35. package/src/component-editor/scaffolding/ComponentsTab.svelte +69 -0
  36. package/src/component-editor/scaffolding/CopyFromMenu.svelte +246 -0
  37. package/src/component-editor/scaffolding/DemoHeader.svelte +21 -0
  38. package/src/component-editor/scaffolding/DividerEditor.svelte +81 -0
  39. package/src/component-editor/scaffolding/FieldsetWrapper.svelte +46 -0
  40. package/src/component-editor/scaffolding/GradientCard.svelte +291 -0
  41. package/src/component-editor/scaffolding/LinkageChart.svelte +297 -0
  42. package/src/component-editor/scaffolding/LinkedBlock.svelte +418 -0
  43. package/src/component-editor/scaffolding/NonStylableConfig.svelte +57 -0
  44. package/src/component-editor/scaffolding/SaveAsDialog.svelte +177 -0
  45. package/src/component-editor/scaffolding/ShadowBackdrop.svelte +25 -0
  46. package/src/component-editor/scaffolding/ShadowBackdropControls.svelte +56 -0
  47. package/src/component-editor/scaffolding/StateBlock.svelte +115 -0
  48. package/src/component-editor/scaffolding/TokenLayout.svelte +511 -0
  49. package/src/component-editor/scaffolding/TypeEditor.svelte +82 -0
  50. package/src/component-editor/scaffolding/VariantGroup.svelte +277 -0
  51. package/src/component-editor/scaffolding/buildTypeGroupTokens.ts +97 -0
  52. package/src/component-editor/scaffolding/componentSectionType.ts +8 -0
  53. package/src/component-editor/scaffolding/componentSources.ts +9 -0
  54. package/src/component-editor/scaffolding/defaultSections.ts +16 -0
  55. package/src/component-editor/scaffolding/editorContext.ts +44 -0
  56. package/src/component-editor/scaffolding/linkedBlock.ts +226 -0
  57. package/src/component-editor/scaffolding/siblings.ts +33 -0
  58. package/src/component-editor/scaffolding/types.ts +39 -0
  59. package/src/components/Badge.svelte +231 -42
  60. package/src/components/Button.svelte +324 -124
  61. package/src/components/Callout.svelte +145 -0
  62. package/src/components/Card.svelte +123 -25
  63. package/src/components/CollapsibleSection.svelte +213 -35
  64. package/src/components/CornerBadge.svelte +224 -0
  65. package/src/components/Dialog.svelte +137 -114
  66. package/src/components/Image.svelte +43 -0
  67. package/src/components/InlineEditActions.svelte +74 -14
  68. package/src/components/Notification.svelte +184 -163
  69. package/src/components/ProgressBar.svelte +216 -22
  70. package/src/components/RadioButton.svelte +110 -40
  71. package/src/components/SectionDivider.svelte +428 -74
  72. package/src/components/SegmentedControl.svelte +203 -0
  73. package/src/components/TabBar.svelte +146 -21
  74. package/src/components/Table.svelte +102 -0
  75. package/src/components/Tooltip.svelte +45 -19
  76. package/src/components/types.ts +51 -0
  77. package/src/data/google-fonts.json +75 -0
  78. package/src/lib/ColumnsOverlay.svelte +20 -7
  79. package/src/lib/LiveEditorOverlay.svelte +265 -82
  80. package/src/lib/columnsOverlay.ts +21 -17
  81. package/src/lib/componentConfig.test.ts +204 -0
  82. package/src/lib/componentConfigKeys.ts +19 -0
  83. package/src/lib/componentConfigService.ts +88 -0
  84. package/src/lib/copyPopover.ts +30 -0
  85. package/src/lib/cssVarSync.ts +59 -7
  86. package/src/lib/editorConfigStore.ts +0 -10
  87. package/src/lib/editorCore.ts +402 -0
  88. package/src/lib/editorKeybindings.ts +52 -0
  89. package/src/lib/editorPersistence.ts +106 -0
  90. package/src/lib/editorRenderer.ts +74 -0
  91. package/src/lib/editorStore.test.ts +328 -0
  92. package/src/lib/editorStore.ts +412 -0
  93. package/src/lib/editorTypes.ts +100 -0
  94. package/src/lib/editorViewStore.ts +55 -0
  95. package/src/lib/files/versionedFileResource.ts +140 -0
  96. package/src/lib/fontLoader.ts +130 -0
  97. package/src/lib/fontMigration.ts +140 -0
  98. package/src/lib/fontParse.ts +168 -0
  99. package/src/lib/index.ts +48 -31
  100. package/src/lib/lazyConfig.test.ts +54 -0
  101. package/src/lib/migrations/2026-04-24-component-prefix-and-suffix-renames.ts +64 -0
  102. package/src/lib/migrations/2026-04-24-legacy-keys-and-bg-to-canvas.ts +71 -0
  103. package/src/lib/migrations/2026-04-27-segmentedcontrol-disabled-flatten.ts +43 -0
  104. package/src/lib/migrations/2026-05-08-collapsiblesection-frame-and-cleanup.ts +68 -0
  105. package/src/lib/migrations/2026-05-08-collapsiblesection-variant-namespace.ts +35 -0
  106. package/src/lib/migrations/2026-05-10-sectiondivider-gradient-stops.ts +50 -0
  107. package/src/lib/migrations/2026-05-13-primary-to-brand.ts +90 -0
  108. package/src/lib/migrations/index.ts +93 -0
  109. package/src/lib/migrations/migrations.test.ts +341 -0
  110. package/src/lib/navLinkTypes.ts +1 -0
  111. package/src/lib/overlayState.ts +3 -0
  112. package/src/lib/paletteDerivation.ts +300 -0
  113. package/src/lib/parentRouteStore.ts +42 -0
  114. package/src/lib/parsers/globalRootBlock.ts +32 -0
  115. package/src/lib/presetService.ts +94 -0
  116. package/src/lib/router.ts +49 -0
  117. package/src/lib/scrollSection.ts +45 -0
  118. package/src/lib/slices/columns.ts +59 -0
  119. package/src/lib/slices/components.ts +362 -0
  120. package/src/lib/slices/domainVars.ts +15 -0
  121. package/src/lib/slices/fonts.ts +30 -0
  122. package/src/lib/slices/gradients.ts +153 -0
  123. package/src/lib/slices/overlays.ts +132 -0
  124. package/src/lib/slices/palettes.ts +26 -0
  125. package/src/lib/slices/shadows.ts +123 -0
  126. package/src/lib/storage.ts +88 -0
  127. package/src/lib/themeInit.ts +74 -0
  128. package/src/lib/themeService.ts +101 -0
  129. package/src/lib/themeTypes.ts +146 -0
  130. package/src/lib/tokenRegistry.ts +148 -0
  131. package/src/pages/ComponentEditorPage.svelte +384 -0
  132. package/src/pages/ComponentEditorPage.svelte.d.ts +2 -0
  133. package/src/pages/Editor.svelte +98 -0
  134. package/src/pages/Editor.svelte.d.ts +2 -0
  135. package/src/pages/EditorShell.svelte +348 -0
  136. package/src/styles/_padding.scss +34 -0
  137. package/src/styles/fonts/Fraunces/Fraunces-italic-latin-ext.woff2 +0 -0
  138. package/src/styles/fonts/Fraunces/Fraunces-italic-latin.woff2 +0 -0
  139. package/src/styles/fonts/Fraunces/Fraunces-roman-latin-ext.woff2 +0 -0
  140. package/src/styles/fonts/Fraunces/Fraunces-roman-latin.woff2 +0 -0
  141. package/src/styles/fonts/Manrope/Manrope-latin-ext.woff2 +0 -0
  142. package/src/styles/fonts/Manrope/Manrope-latin.woff2 +0 -0
  143. package/src/styles/fonts.css +22 -10
  144. package/src/styles/form-controls.css +14 -16
  145. package/src/styles/tokens.css +1322 -0
  146. package/src/styles/ui-editor.css +126 -0
  147. package/src/{showcase → ui}/BezierCurveEditor.svelte +14 -14
  148. package/src/{showcase → ui}/ColorEditPanel.svelte +42 -36
  149. package/src/ui/EditorViewSwitcher.svelte +180 -0
  150. package/src/ui/FontStackEditor.svelte +360 -0
  151. package/src/ui/GradientEditor.svelte +461 -0
  152. package/src/ui/GradientStopPicker.svelte +74 -0
  153. package/src/ui/PaletteEditor.svelte +1590 -0
  154. package/src/ui/PaletteEditor.test.ts +108 -0
  155. package/src/ui/PresetFileManager.svelte +567 -0
  156. package/src/ui/ProjectFontsSection.svelte +645 -0
  157. package/src/{showcase → ui}/SurfacesTab.svelte +39 -41
  158. package/src/{showcase → ui}/TextTab.svelte +27 -29
  159. package/src/{showcase/TokenFileManager.svelte → ui/ThemeFileManager.svelte} +196 -112
  160. package/src/ui/Toggle.svelte +108 -0
  161. package/src/ui/UICopyPopover.svelte +78 -0
  162. package/src/{showcase/EditorDialog.svelte → ui/UIDialog.svelte} +66 -25
  163. package/src/ui/UIFontFamilySelector.svelte +309 -0
  164. package/src/ui/UIFontSizeSelector.svelte +165 -0
  165. package/src/ui/UIFontWeightSelector.svelte +52 -0
  166. package/src/ui/UILineHeightSelector.svelte +47 -0
  167. package/src/ui/UILinkToggle.svelte +60 -0
  168. package/src/ui/UIOptionItem.svelte +74 -0
  169. package/src/ui/UIOptionList.svelte +27 -0
  170. package/src/ui/UIPaddingSelector.svelte +661 -0
  171. package/src/ui/UIPaletteSelector.svelte +1084 -0
  172. package/src/ui/UIRadio.svelte +72 -0
  173. package/src/ui/UIRadioGroup.svelte +59 -0
  174. package/src/ui/UIRelinkConfirmPopover.svelte +235 -0
  175. package/src/ui/UITokenSelector.svelte +509 -0
  176. package/src/ui/UIVariantSelector.svelte +145 -0
  177. package/src/ui/VariablesTab.svelte +252 -0
  178. package/src/ui/index.ts +31 -0
  179. package/src/ui/keepInViewport.ts +84 -0
  180. package/src/ui/palette/GradientStopEditor.svelte +482 -0
  181. package/src/ui/palette/OverridesPanel.svelte +526 -0
  182. package/src/ui/palette/PaletteBase.svelte +165 -0
  183. package/src/ui/palette/ScaleCurveEditor.svelte +38 -0
  184. package/src/ui/palette/paletteEditorState.ts +89 -0
  185. package/src/ui/sections/ColumnsSection.svelte +273 -0
  186. package/src/ui/sections/GradientsSection.svelte +147 -0
  187. package/src/ui/sections/OverlaysSection.svelte +670 -0
  188. package/src/ui/sections/ShadowsSection.svelte +1250 -0
  189. package/src/ui/sections/TokenScaleTable.svelte +332 -0
  190. package/src/ui/sections/tokenScales.ts +81 -0
  191. package/src/ui/variantScales.ts +108 -0
  192. package/src/components/DetailNav.svelte +0 -78
  193. package/src/components/Toggle.svelte +0 -86
  194. package/src/lib/pageSource.ts +0 -6
  195. package/src/lib/tokenInit.ts +0 -29
  196. package/src/lib/tokenService.ts +0 -144
  197. package/src/lib/tokenTypes.ts +0 -45
  198. package/src/pages/Admin.svelte +0 -100
  199. package/src/pages/ShowcasePage.svelte +0 -146
  200. package/src/showcase/BackupBrowser.svelte +0 -617
  201. package/src/showcase/ComponentsTab.svelte +0 -107
  202. package/src/showcase/PaletteEditor.svelte +0 -2579
  203. package/src/showcase/PaletteSelector.svelte +0 -627
  204. package/src/showcase/TokenMap.svelte +0 -54
  205. package/src/showcase/VariablesTab.svelte +0 -2657
  206. package/src/showcase/VisualsTab.svelte +0 -233
  207. package/src/showcase/demos/BadgeDemo.svelte +0 -58
  208. package/src/showcase/demos/CardDemo.svelte +0 -52
  209. package/src/showcase/demos/ChoiceButtonsDemo.svelte +0 -194
  210. package/src/showcase/demos/CollapsibleSectionDemo.svelte +0 -56
  211. package/src/showcase/demos/DialogDemo.svelte +0 -42
  212. package/src/showcase/demos/InlineEditActionsDemo.svelte +0 -27
  213. package/src/showcase/demos/NotificationDemo.svelte +0 -149
  214. package/src/showcase/demos/ProgressBarDemo.svelte +0 -56
  215. package/src/showcase/demos/RadioButtonDemo.svelte +0 -58
  216. package/src/showcase/demos/SectionDividerDemo.svelte +0 -79
  217. package/src/showcase/demos/StandardButtonsDemo.svelte +0 -457
  218. package/src/showcase/demos/TabBarDemo.svelte +0 -60
  219. package/src/showcase/demos/TooltipDemo.svelte +0 -54
  220. package/src/showcase/editor.css +0 -93
  221. package/src/showcase/index.ts +0 -17
  222. package/src/styles/fonts/Domine/Domine-VariableFont_wght.ttf +0 -0
  223. package/src/styles/fonts/Domine/OFL.txt +0 -97
  224. package/src/styles/fonts/Domine/README.txt +0 -66
  225. /package/src/{showcase → ui}/curveEngine.ts +0 -0
@@ -1,149 +0,0 @@
1
- <script lang="ts">
2
- import Notification from '../../components/Notification.svelte';
3
- import TokenMap from '../TokenMap.svelte';
4
- </script>
5
-
6
- <div class="demo-block">
7
- <h2 class="component-title">Notification Components</h2>
8
- <p class="demo-description">
9
- Contextual feedback notifications with multiple variants. Import from <code>components/Notification.svelte</code>
10
- </p>
11
-
12
- <div class="demo-section">
13
- <h3 class="demo-subtitle">Variants</h3>
14
- <div class="notification-showcase">
15
- <Notification
16
- variant="info"
17
- title="Information"
18
- description="This is an informational message to keep you updated."
19
- />
20
-
21
- <Notification
22
- variant="success"
23
- title="Success"
24
- description="Your action was completed successfully."
25
- />
26
-
27
- <Notification
28
- variant="warning"
29
- title="Warning"
30
- description="Caution: This action may have unintended consequences."
31
- />
32
-
33
- <Notification
34
- variant="danger"
35
- title="Danger"
36
- description="Critical error: Please address this issue immediately."
37
- />
38
- </div>
39
- </div>
40
-
41
- <div class="demo-section">
42
- <h3 class="demo-subtitle">With Impact Text</h3>
43
- <div class="notification-showcase">
44
- <Notification
45
- variant="warning"
46
- title="Food Shortage"
47
- description="Your kingdom is running low on food supplies."
48
- impact="-2 to Economy until resolved"
49
- />
50
- </div>
51
- </div>
52
-
53
- <div class="demo-section">
54
- <h3 class="demo-subtitle">With Action Button</h3>
55
- <div class="notification-showcase">
56
- <Notification
57
- variant="info"
58
- title="Settlement Unmapped"
59
- description="This settlement has not been placed on the map yet."
60
- actionText="Place on Map"
61
- actionIcon="fas fa-map-marker-alt"
62
- onAction={() => {}}
63
- />
64
-
65
- <Notification
66
- variant="success"
67
- title="Trade Agreement Available"
68
- description="A neighboring faction has offered a trade deal."
69
- actionText="View Details"
70
- actionIcon="fas fa-handshake"
71
- onAction={() => {}}
72
- actionInline={true}
73
- />
74
- </div>
75
- </div>
76
-
77
- <div class="demo-section">
78
- <h3 class="demo-subtitle">Compact Size & Emphasis</h3>
79
- <div class="notification-showcase">
80
- <Notification
81
- variant="info"
82
- title="Compact Notification"
83
- description="A smaller notification for tighter spaces."
84
- size="compact"
85
- />
86
-
87
- <Notification
88
- variant="danger"
89
- title="Emphasized Alert"
90
- description="Important notifications can have emphasis styling."
91
- emphasis={true}
92
- />
93
- </div>
94
- </div>
95
-
96
- <div class="demo-section">
97
- <h3 class="demo-subtitle">Dismissible</h3>
98
- <div class="notification-showcase">
99
- <Notification
100
- variant="success"
101
- title="Dismissible Notification"
102
- description="Click the X to dismiss this notification."
103
- dismissible={true}
104
- />
105
- </div>
106
- </div>
107
-
108
- <div class="demo-section">
109
- <h3 class="demo-subtitle">Tokens</h3>
110
- <div class="token-sections">
111
- <TokenMap title="info" tokens={[
112
- { label: 'Header BG', variable: '--surface-info-low' },
113
- { label: 'Border', variable: '--border-info' },
114
- { label: 'Icon', variable: '--text-info' },
115
- ]} />
116
- <TokenMap title="success" tokens={[
117
- { label: 'Header BG', variable: '--surface-success' },
118
- { label: 'Border', variable: '--border-success' },
119
- { label: 'Icon', variable: '--text-success' },
120
- ]} />
121
- <TokenMap title="warning" tokens={[
122
- { label: 'Header BG', variable: '--surface-warning' },
123
- { label: 'Border', variable: '--border-warning' },
124
- { label: 'Icon', variable: '--text-warning' },
125
- ]} />
126
- <TokenMap title="danger" tokens={[
127
- { label: 'Header BG', variable: '--surface-primary' },
128
- { label: 'Border', variable: '--border-danger' },
129
- { label: 'Icon', variable: '--text-danger' },
130
- ]} />
131
- </div>
132
- </div>
133
- </div>
134
-
135
- <style>
136
- @import '../../styles/variables.css';
137
-
138
- .notification-showcase {
139
- display: flex;
140
- flex-direction: column;
141
- gap: var(--space-16);
142
- }
143
-
144
- .token-sections {
145
- display: flex;
146
- flex-direction: column;
147
- gap: var(--space-16);
148
- }
149
- </style>
@@ -1,56 +0,0 @@
1
- <script lang="ts">
2
- import ProgressBar from '../../components/ProgressBar.svelte';
3
- import TokenMap from '../TokenMap.svelte';
4
- </script>
5
-
6
- <div class="demo-block">
7
- <h2 class="component-title">Progress Bar Component</h2>
8
- <p class="demo-description">
9
- Animated progress bar with variants. Import from <code>components/ProgressBar.svelte</code>
10
- </p>
11
-
12
- <div class="demo-section">
13
- <div class="progress-demo-stack">
14
- <ProgressBar value={25} label="Getting Started" variant="primary" />
15
- <ProgressBar value={50} label="Halfway There" variant="info" />
16
- <ProgressBar value={75} label="Almost Done" variant="warning" />
17
- <ProgressBar value={100} label="Complete" variant="success" />
18
- <ProgressBar value={33} label="Danger Zone" variant="danger" />
19
- <ProgressBar value={60} variant="primary" size="compact" />
20
- </div>
21
- </div>
22
-
23
- <div class="demo-section">
24
- <h3 class="demo-subtitle">Tokens</h3>
25
- <div class="token-sections">
26
- <TokenMap title="track" tokens={[
27
- { label: 'Background', variable: '--surface-neutral-low' },
28
- { label: 'Border', variable: '--border-neutral-faint' },
29
- { label: 'Label', variable: '--text-secondary' },
30
- ]} />
31
- <TokenMap title="fill colors" tokens={[
32
- { label: 'Success', variable: '--border-success' },
33
- { label: 'Warning', variable: '--border-warning' },
34
- { label: 'Danger', variable: '--border-danger' },
35
- { label: 'Info', variable: '--border-info' },
36
- ]} />
37
- </div>
38
- </div>
39
- </div>
40
-
41
- <style>
42
- @import '../../styles/variables.css';
43
-
44
- .progress-demo-stack {
45
- display: flex;
46
- flex-direction: column;
47
- gap: var(--space-16);
48
- max-width: 400px;
49
- }
50
-
51
- .token-sections {
52
- display: flex;
53
- flex-direction: column;
54
- gap: var(--space-16);
55
- }
56
- </style>
@@ -1,58 +0,0 @@
1
- <script lang="ts">
2
- import RadioButton from '../../components/RadioButton.svelte';
3
- import TokenMap from '../TokenMap.svelte';
4
-
5
- let selectedRadio = 'option-b';
6
- </script>
7
-
8
- <div class="demo-block">
9
- <h2 class="component-title">Radio Button Component</h2>
10
- <p class="demo-description">
11
- Styled radio buttons with icon and color support. Import from <code>components/RadioButton.svelte</code>
12
- </p>
13
-
14
- <div class="demo-section">
15
- <div class="radio-demo-row">
16
- <RadioButton
17
- icon="fas fa-shield-alt"
18
- label="Defense"
19
- color="var(--text-info)"
20
- active={selectedRadio === 'option-a'}
21
- on:click={() => selectedRadio = 'option-a'}
22
- />
23
- <RadioButton
24
- icon="fas fa-coins"
25
- label="Economy"
26
- color="var(--text-accent)"
27
- active={selectedRadio === 'option-b'}
28
- on:click={() => selectedRadio = 'option-b'}
29
- />
30
- <RadioButton
31
- icon="fas fa-users"
32
- label="Loyalty"
33
- color="var(--text-success)"
34
- active={selectedRadio === 'option-c'}
35
- on:click={() => selectedRadio = 'option-c'}
36
- />
37
- </div>
38
- </div>
39
-
40
- <div class="demo-section">
41
- <h3 class="demo-subtitle">Tokens</h3>
42
- <TokenMap tokens={[
43
- { label: 'Dot Border', variable: '--border-neutral-default' },
44
- { label: 'Label', variable: '--text-primary' },
45
- { label: 'Surface', variable: '--surface-neutral-lowest' },
46
- ]} />
47
- </div>
48
- </div>
49
-
50
- <style>
51
- @import '../../styles/variables.css';
52
-
53
- .radio-demo-row {
54
- display: flex;
55
- gap: var(--space-16);
56
- flex-wrap: wrap;
57
- }
58
- </style>
@@ -1,79 +0,0 @@
1
- <script lang="ts">
2
- import SectionDivider from '../../components/SectionDivider.svelte';
3
- import TokenMap from '../TokenMap.svelte';
4
-
5
- const dividerVariants: { variant: 'bg' | 'neutral' | 'alternate' | 'primary' | 'accent' | 'special'; label: string }[] = [
6
- { variant: 'bg', label: 'Background' },
7
- { variant: 'neutral', label: 'Neutral' },
8
- { variant: 'alternate', label: 'Alternate' },
9
- { variant: 'primary', label: 'Primary' },
10
- { variant: 'accent', label: 'Accent' },
11
- { variant: 'special', label: 'Special' },
12
- ];
13
- </script>
14
-
15
- <div class="demo-block">
16
- <h2 class="component-title">Section Divider Component</h2>
17
- <p class="demo-description">
18
- Full-width section banner with display font and palette variants. Import from <code>components/SectionDivider.svelte</code>
19
- </p>
20
-
21
- <div class="demo-section">
22
- <h3 class="demo-subtitle">Variants</h3>
23
- <div class="divider-showcase">
24
- {#each dividerVariants as item}
25
- <div class="divider-showcase-item">
26
- <SectionDivider title={item.label} variant={item.variant} />
27
- <span class="variant-label">variant="{item.variant}" &nbsp; surface-{item.variant}-highest → surface-{item.variant}</span>
28
- </div>
29
- {/each}
30
- </div>
31
- </div>
32
-
33
- <div class="demo-section">
34
- <h3 class="demo-subtitle">With Description</h3>
35
- <div class="divider-showcase">
36
- <SectionDivider
37
- title="Community Modules"
38
- variant="bg"
39
- description="These modules were created by other authors and are no longer actively maintained."
40
- />
41
- </div>
42
- </div>
43
-
44
- <div class="demo-section">
45
- <h3 class="demo-subtitle">Tokens (bg variant)</h3>
46
- <TokenMap tokens={[
47
- { label: 'Gradient High', variable: '--surface-bg-highest' },
48
- { label: 'Gradient Mid', variable: '--surface-bg-higher' },
49
- { label: 'Gradient Low', variable: '--surface-bg-high' },
50
- { label: 'Gradient Base', variable: '--surface-bg' },
51
- { label: 'Text Stroke', variable: '--surface-bg-lowest' },
52
- ]} />
53
- </div>
54
- </div>
55
-
56
- <style>
57
- @import '../../styles/variables.css';
58
-
59
- .divider-showcase {
60
- display: flex;
61
- flex-direction: column;
62
- }
63
-
64
- .divider-showcase-item {
65
- display: flex;
66
- flex-direction: column;
67
- align-items: flex-start;
68
- width: 100%;
69
- }
70
-
71
- .variant-label {
72
- font-size: var(--font-xs);
73
- color: var(--ui-text-tertiary);
74
- font-family: var(--ui-font-mono);
75
- background: var(--ui-surface-lowest);
76
- padding: var(--space-2) var(--space-6);
77
- border-radius: var(--radius-sm);
78
- }
79
- </style>