@motion-proto/live-tokens 0.1.1 → 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.
- package/README.md +160 -21
- package/dist-plugin/index.cjs +823 -336
- package/dist-plugin/index.d.cts +9 -7
- package/dist-plugin/index.d.ts +9 -7
- package/dist-plugin/index.js +822 -335
- package/package.json +46 -20
- package/src/assets/newspaper.webp +0 -0
- package/src/assets/offering.webp +0 -0
- package/src/component-editor/BadgeEditor.svelte +170 -0
- package/src/component-editor/CalloutEditor.svelte +103 -0
- package/src/component-editor/CardEditor.svelte +184 -0
- package/src/component-editor/CollapsibleSectionEditor.svelte +167 -0
- package/src/component-editor/CornerBadgeEditor.svelte +207 -0
- package/src/component-editor/DialogEditor.svelte +172 -0
- package/src/component-editor/ImageEditor.svelte +72 -0
- package/src/component-editor/InlineEditActionsEditor.svelte +83 -0
- package/src/component-editor/NotificationEditor.svelte +160 -0
- package/src/component-editor/ProgressBarEditor.svelte +124 -0
- package/src/component-editor/RadioButtonEditor.svelte +140 -0
- package/src/component-editor/SectionDividerEditor.svelte +263 -0
- package/src/component-editor/SegmentedControlEditor.svelte +154 -0
- package/src/component-editor/StandardButtonsEditor.svelte +178 -0
- package/src/component-editor/TabBarEditor.svelte +137 -0
- package/src/component-editor/TableEditor.svelte +128 -0
- package/src/component-editor/TooltipEditor.svelte +122 -0
- package/src/component-editor/editorTokens.test.ts +93 -0
- package/src/component-editor/groupKeySlots.test.ts +67 -0
- package/src/component-editor/groupKeySnapshot.test.ts +52 -0
- package/src/component-editor/index.ts +5 -0
- package/src/component-editor/registry.ts +246 -0
- package/src/component-editor/scaffolding/AngleDial.svelte +185 -0
- package/src/component-editor/scaffolding/ComponentEditorBase.svelte +96 -0
- package/src/component-editor/scaffolding/ComponentFileManager.svelte +682 -0
- package/src/component-editor/scaffolding/ComponentFileMenu.svelte +312 -0
- package/src/component-editor/scaffolding/ComponentsTab.svelte +69 -0
- package/src/component-editor/scaffolding/CopyFromMenu.svelte +246 -0
- package/src/component-editor/scaffolding/DemoHeader.svelte +21 -0
- package/src/component-editor/scaffolding/DividerEditor.svelte +81 -0
- package/src/component-editor/scaffolding/FieldsetWrapper.svelte +46 -0
- package/src/component-editor/scaffolding/GradientCard.svelte +291 -0
- package/src/component-editor/scaffolding/LinkageChart.svelte +297 -0
- package/src/component-editor/scaffolding/LinkedBlock.svelte +418 -0
- package/src/component-editor/scaffolding/NonStylableConfig.svelte +57 -0
- package/src/component-editor/scaffolding/SaveAsDialog.svelte +177 -0
- package/src/component-editor/scaffolding/ShadowBackdrop.svelte +25 -0
- package/src/component-editor/scaffolding/ShadowBackdropControls.svelte +56 -0
- package/src/component-editor/scaffolding/StateBlock.svelte +115 -0
- package/src/component-editor/scaffolding/TokenLayout.svelte +511 -0
- package/src/component-editor/scaffolding/TypeEditor.svelte +82 -0
- package/src/component-editor/scaffolding/VariantGroup.svelte +277 -0
- package/src/component-editor/scaffolding/buildTypeGroupTokens.ts +97 -0
- package/src/component-editor/scaffolding/componentSectionType.ts +8 -0
- package/src/component-editor/scaffolding/componentSources.ts +9 -0
- package/src/component-editor/scaffolding/defaultSections.ts +16 -0
- package/src/component-editor/scaffolding/editorContext.ts +44 -0
- package/src/component-editor/scaffolding/linkedBlock.ts +226 -0
- package/src/component-editor/scaffolding/siblings.ts +33 -0
- package/src/component-editor/scaffolding/types.ts +39 -0
- package/src/components/Badge.svelte +231 -42
- package/src/components/Button.svelte +324 -124
- package/src/components/Callout.svelte +145 -0
- package/src/components/Card.svelte +123 -25
- package/src/components/CollapsibleSection.svelte +213 -35
- package/src/components/CornerBadge.svelte +224 -0
- package/src/components/Dialog.svelte +137 -114
- package/src/components/Image.svelte +43 -0
- package/src/components/InlineEditActions.svelte +74 -14
- package/src/components/Notification.svelte +184 -163
- package/src/components/ProgressBar.svelte +216 -22
- package/src/components/RadioButton.svelte +110 -40
- package/src/components/SectionDivider.svelte +428 -74
- package/src/components/SegmentedControl.svelte +203 -0
- package/src/components/TabBar.svelte +146 -21
- package/src/components/Table.svelte +102 -0
- package/src/components/Tooltip.svelte +45 -19
- package/src/components/types.ts +51 -0
- package/src/data/google-fonts.json +75 -0
- package/src/lib/ColumnsOverlay.svelte +20 -7
- package/src/lib/LiveEditorOverlay.svelte +257 -78
- package/src/lib/columnsOverlay.ts +21 -17
- package/src/lib/componentConfig.test.ts +204 -0
- package/src/lib/componentConfigKeys.ts +19 -0
- package/src/lib/componentConfigService.ts +88 -0
- package/src/lib/copyPopover.ts +30 -0
- package/src/lib/cssVarSync.ts +59 -7
- package/src/lib/editorConfigStore.ts +0 -10
- package/src/lib/editorCore.ts +402 -0
- package/src/lib/editorKeybindings.ts +52 -0
- package/src/lib/editorPersistence.ts +106 -0
- package/src/lib/editorRenderer.ts +74 -0
- package/src/lib/editorStore.test.ts +328 -0
- package/src/lib/editorStore.ts +412 -0
- package/src/lib/editorTypes.ts +100 -0
- package/src/lib/editorViewStore.ts +55 -0
- package/src/lib/files/versionedFileResource.ts +140 -0
- package/src/lib/fontLoader.ts +130 -0
- package/src/lib/fontMigration.ts +140 -0
- package/src/lib/fontParse.ts +168 -0
- package/src/lib/index.ts +48 -30
- package/src/lib/lazyConfig.test.ts +54 -0
- package/src/lib/migrations/2026-04-24-component-prefix-and-suffix-renames.ts +64 -0
- package/src/lib/migrations/2026-04-24-legacy-keys-and-bg-to-canvas.ts +71 -0
- package/src/lib/migrations/2026-04-27-segmentedcontrol-disabled-flatten.ts +43 -0
- package/src/lib/migrations/2026-05-08-collapsiblesection-frame-and-cleanup.ts +68 -0
- package/src/lib/migrations/2026-05-08-collapsiblesection-variant-namespace.ts +35 -0
- package/src/lib/migrations/2026-05-10-sectiondivider-gradient-stops.ts +50 -0
- package/src/lib/migrations/2026-05-13-primary-to-brand.ts +90 -0
- package/src/lib/migrations/index.ts +93 -0
- package/src/lib/migrations/migrations.test.ts +341 -0
- package/src/lib/navLinkTypes.ts +1 -0
- package/src/lib/overlayState.ts +3 -0
- package/src/lib/paletteDerivation.ts +300 -0
- package/src/lib/parentRouteStore.ts +42 -0
- package/src/lib/parsers/globalRootBlock.ts +32 -0
- package/src/lib/presetService.ts +94 -0
- package/src/lib/router.ts +42 -10
- package/src/lib/scrollSection.ts +45 -0
- package/src/lib/slices/columns.ts +59 -0
- package/src/lib/slices/components.ts +362 -0
- package/src/lib/slices/domainVars.ts +15 -0
- package/src/lib/slices/fonts.ts +30 -0
- package/src/lib/slices/gradients.ts +153 -0
- package/src/lib/slices/overlays.ts +132 -0
- package/src/lib/slices/palettes.ts +26 -0
- package/src/lib/slices/shadows.ts +123 -0
- package/src/lib/storage.ts +88 -0
- package/src/lib/themeInit.ts +74 -0
- package/src/lib/themeService.ts +101 -0
- package/src/lib/themeTypes.ts +146 -0
- package/src/lib/tokenRegistry.ts +148 -0
- package/src/pages/ComponentEditorPage.svelte +384 -0
- package/src/pages/ComponentEditorPage.svelte.d.ts +2 -0
- package/src/pages/Editor.svelte +98 -0
- package/src/pages/Editor.svelte.d.ts +2 -0
- package/src/pages/EditorShell.svelte +348 -0
- package/src/styles/_padding.scss +34 -0
- package/src/styles/fonts/Fraunces/Fraunces-italic-latin-ext.woff2 +0 -0
- package/src/styles/fonts/Fraunces/Fraunces-italic-latin.woff2 +0 -0
- package/src/styles/fonts/Fraunces/Fraunces-roman-latin-ext.woff2 +0 -0
- package/src/styles/fonts/Fraunces/Fraunces-roman-latin.woff2 +0 -0
- package/src/styles/fonts/Manrope/Manrope-latin-ext.woff2 +0 -0
- package/src/styles/fonts/Manrope/Manrope-latin.woff2 +0 -0
- package/src/styles/fonts.css +22 -10
- package/src/styles/form-controls.css +14 -16
- package/src/styles/tokens.css +1322 -0
- package/src/styles/ui-editor.css +126 -0
- package/src/{showcase → ui}/BezierCurveEditor.svelte +14 -14
- package/src/{showcase → ui}/ColorEditPanel.svelte +42 -36
- package/src/ui/EditorViewSwitcher.svelte +180 -0
- package/src/ui/FontStackEditor.svelte +360 -0
- package/src/ui/GradientEditor.svelte +461 -0
- package/src/ui/GradientStopPicker.svelte +74 -0
- package/src/ui/PaletteEditor.svelte +1590 -0
- package/src/ui/PaletteEditor.test.ts +108 -0
- package/src/ui/PresetFileManager.svelte +567 -0
- package/src/ui/ProjectFontsSection.svelte +645 -0
- package/src/{showcase → ui}/SurfacesTab.svelte +39 -39
- package/src/{showcase → ui}/TextTab.svelte +27 -27
- package/src/{showcase/TokenFileManager.svelte → ui/ThemeFileManager.svelte} +196 -112
- package/src/ui/Toggle.svelte +108 -0
- package/src/ui/UICopyPopover.svelte +78 -0
- package/src/{showcase/EditorDialog.svelte → ui/UIDialog.svelte} +66 -25
- package/src/ui/UIFontFamilySelector.svelte +309 -0
- package/src/ui/UIFontSizeSelector.svelte +165 -0
- package/src/ui/UIFontWeightSelector.svelte +52 -0
- package/src/ui/UILineHeightSelector.svelte +47 -0
- package/src/ui/UILinkToggle.svelte +60 -0
- package/src/ui/UIOptionItem.svelte +74 -0
- package/src/ui/UIOptionList.svelte +27 -0
- package/src/ui/UIPaddingSelector.svelte +661 -0
- package/src/ui/UIPaletteSelector.svelte +1084 -0
- package/src/ui/UIRadio.svelte +72 -0
- package/src/ui/UIRadioGroup.svelte +59 -0
- package/src/ui/UIRelinkConfirmPopover.svelte +235 -0
- package/src/ui/UITokenSelector.svelte +509 -0
- package/src/ui/UIVariantSelector.svelte +145 -0
- package/src/ui/VariablesTab.svelte +252 -0
- package/src/ui/index.ts +31 -0
- package/src/ui/keepInViewport.ts +84 -0
- package/src/ui/palette/GradientStopEditor.svelte +482 -0
- package/src/ui/palette/OverridesPanel.svelte +526 -0
- package/src/ui/palette/PaletteBase.svelte +165 -0
- package/src/ui/palette/ScaleCurveEditor.svelte +38 -0
- package/src/ui/palette/paletteEditorState.ts +89 -0
- package/src/ui/sections/ColumnsSection.svelte +273 -0
- package/src/ui/sections/GradientsSection.svelte +147 -0
- package/src/ui/sections/OverlaysSection.svelte +670 -0
- package/src/ui/sections/ShadowsSection.svelte +1250 -0
- package/src/ui/sections/TokenScaleTable.svelte +332 -0
- package/src/ui/sections/tokenScales.ts +81 -0
- package/src/ui/variantScales.ts +108 -0
- package/src/components/DetailNav.svelte +0 -78
- package/src/components/Toggle.svelte +0 -86
- package/src/lib/tokenInit.ts +0 -29
- package/src/lib/tokenService.ts +0 -144
- package/src/lib/tokenTypes.ts +0 -45
- package/src/pages/Admin.svelte +0 -100
- package/src/pages/ShowcasePage.svelte +0 -144
- package/src/showcase/BackupBrowser.svelte +0 -617
- package/src/showcase/ComponentsTab.svelte +0 -105
- package/src/showcase/PaletteEditor.svelte +0 -2579
- package/src/showcase/PaletteSelector.svelte +0 -627
- package/src/showcase/TokenMap.svelte +0 -54
- package/src/showcase/VariablesTab.svelte +0 -2655
- package/src/showcase/VisualsTab.svelte +0 -231
- package/src/showcase/demos/BadgeDemo.svelte +0 -56
- package/src/showcase/demos/CardDemo.svelte +0 -50
- package/src/showcase/demos/ChoiceButtonsDemo.svelte +0 -192
- package/src/showcase/demos/CollapsibleSectionDemo.svelte +0 -54
- package/src/showcase/demos/DialogDemo.svelte +0 -42
- package/src/showcase/demos/InlineEditActionsDemo.svelte +0 -25
- package/src/showcase/demos/NotificationDemo.svelte +0 -147
- package/src/showcase/demos/ProgressBarDemo.svelte +0 -54
- package/src/showcase/demos/RadioButtonDemo.svelte +0 -56
- package/src/showcase/demos/SectionDividerDemo.svelte +0 -77
- package/src/showcase/demos/StandardButtonsDemo.svelte +0 -455
- package/src/showcase/demos/TabBarDemo.svelte +0 -58
- package/src/showcase/demos/TooltipDemo.svelte +0 -52
- package/src/showcase/editor.css +0 -93
- package/src/showcase/index.ts +0 -17
- package/src/styles/fonts/Domine/Domine-VariableFont_wght.ttf +0 -0
- package/src/styles/fonts/Domine/OFL.txt +0 -97
- package/src/styles/fonts/Domine/README.txt +0 -66
- /package/src/{showcase → ui}/curveEngine.ts +0 -0
package/README.md
CHANGED
|
@@ -1,40 +1,179 @@
|
|
|
1
1
|
# Live Tokens
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A Svelte + Vite design-token system with an in-browser editor. It ships two ways:
|
|
4
|
+
|
|
5
|
+
1. **Starter.** Clone the repo, replace `Home.svelte` with your app, edit tokens live.
|
|
6
|
+
2. **Library.** `npm install @motion-proto/live-tokens` into an existing Svelte app and import the overlay plus the editor.
|
|
7
|
+
|
|
8
|
+
Both modes are supported and maintained together.
|
|
4
9
|
|
|
5
10
|
## What you get
|
|
6
11
|
|
|
7
|
-
- **Design-token
|
|
8
|
-
- **Live editor overlay** pinned to the top-right
|
|
9
|
-
- **Page Source
|
|
10
|
-
- **Component library** at `/components`: Button, Card, Dialog, Badge, Tabs, Tooltip, Toggle, and more.
|
|
11
|
-
- **
|
|
12
|
+
- **Design-token editor** at `/editor` (dev-only). Edit colors, typography, spacing, radii, shadows, and motion; the whole site updates live.
|
|
13
|
+
- **Live editor overlay** pinned to the top-right in dev. Opens the editor in a side panel or a floating window without leaving the page you're styling.
|
|
14
|
+
- **Page Source button.** Jumps straight to the current page's Svelte file in VS Code (`vscode://` link).
|
|
15
|
+
- **Component library** at `/components`: Button, Card, Dialog, Badge, Tabs, Tooltip, Toggle, and more. Extendable with your own sections.
|
|
16
|
+
- **Theme persistence.** Each saved palette is a JSON file in `themes/`. The active palette syncs into `src/styles/tokens.css` on save, so production builds ship pure CSS. No editor code, no JSON lookups in the prod bundle.
|
|
12
17
|
|
|
13
|
-
##
|
|
18
|
+
## Use as a starter
|
|
14
19
|
|
|
15
20
|
```bash
|
|
21
|
+
npx degit motionproto/live-tokens my-app
|
|
22
|
+
cd my-app
|
|
16
23
|
npm install
|
|
17
24
|
npm run dev
|
|
18
25
|
```
|
|
19
26
|
|
|
20
|
-
Open http://localhost:5173.
|
|
27
|
+
Open http://localhost:5173. Replace `src/pages/Home.svelte` with your own landing page. Keep or delete `src/pages/Demo.svelte` (the `/demo` route) depending on whether you want the demo around as a reference.
|
|
28
|
+
|
|
29
|
+
### Starter layout
|
|
30
|
+
|
|
31
|
+
- `src/pages/Home.svelte`. Your app's `/` route. **Replace this with your content.**
|
|
32
|
+
- `src/pages/Demo.svelte`. `/demo` route. Marketing/demo page for the kit itself. Safe to delete once you don't need it.
|
|
33
|
+
- `src/pages/Editor.svelte`. `/editor` route. Design-system editor.
|
|
34
|
+
- `src/pages/ComponentEditorPage.svelte`. `/components` route. Component editor.
|
|
35
|
+
- `src/App.svelte`. Top-level router and overlay wiring.
|
|
36
|
+
- `src/components/`. Reusable components.
|
|
37
|
+
- `src/component-editor/`. Per-component editors plus shared scaffolding.
|
|
38
|
+
- `src/ui/`. Neutral editor UI primitives and the design-system editor surfaces.
|
|
39
|
+
- `src/lib/`. Overlay, router, token persistence, color helpers.
|
|
40
|
+
- `src/styles/tokens.css`. The generated CSS variables (source of truth at runtime).
|
|
41
|
+
- `themes/`. Persisted theme files. `_active.json` is the theme loaded on dev. `_production.json` is the theme synced to CSS on "promote."
|
|
42
|
+
|
|
43
|
+
### How the editor ships changes to prod (starter)
|
|
44
|
+
|
|
45
|
+
1. Edit in `/editor`. The overlay writes to the active theme file in `themes/`.
|
|
46
|
+
2. Promote a theme to "production." Its variables are written into `src/styles/tokens.css` and backed up under `src/styles/_backups/`.
|
|
47
|
+
3. `npm run build` bundles that CSS file as-is.
|
|
48
|
+
|
|
49
|
+
## Use as a library
|
|
50
|
+
|
|
51
|
+
Install into an existing Svelte 4 + Vite project:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install @motion-proto/live-tokens
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Wire it into your Vite config
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
// vite.config.ts
|
|
61
|
+
import { defineConfig } from 'vite';
|
|
62
|
+
import { svelte } from '@sveltejs/vite-plugin-svelte';
|
|
63
|
+
import { themeFileApi } from '@motion-proto/live-tokens/vite-plugin';
|
|
64
|
+
|
|
65
|
+
export default defineConfig({
|
|
66
|
+
plugins: [
|
|
67
|
+
svelte(),
|
|
68
|
+
themeFileApi({
|
|
69
|
+
themesDir: 'themes',
|
|
70
|
+
tokensCssPath: 'src/styles/tokens.css',
|
|
71
|
+
}),
|
|
72
|
+
],
|
|
73
|
+
optimizeDeps: {
|
|
74
|
+
exclude: ['@motion-proto/live-tokens'],
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The `themeFileApi` plugin:
|
|
80
|
+
- Seeds `themes/` with a default theme on first dev-server start.
|
|
81
|
+
- Hosts the `/api/*` routes the editor uses to save and load themes.
|
|
82
|
+
- Auto-injects `__PROJECT_ROOT__` so the overlay's "Page Source" link can open files in VS Code. You don't need a `define` entry for this.
|
|
83
|
+
|
|
84
|
+
### Bootstrap in `main.ts`
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
import { configureEditor, initializeTheme } from '@motion-proto/live-tokens';
|
|
88
|
+
import App from './App.svelte';
|
|
89
|
+
|
|
90
|
+
configureEditor({ storagePrefix: 'my-app-' });
|
|
91
|
+
|
|
92
|
+
async function boot() {
|
|
93
|
+
if (import.meta.env.DEV) {
|
|
94
|
+
await initializeTheme();
|
|
95
|
+
}
|
|
96
|
+
new App({ target: document.getElementById('app')! });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
boot();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Mount the overlay + editor route
|
|
103
|
+
|
|
104
|
+
```svelte
|
|
105
|
+
<!-- App.svelte -->
|
|
106
|
+
<script lang="ts">
|
|
107
|
+
import { LiveEditorOverlay, ColumnsOverlay } from '@motion-proto/live-tokens';
|
|
108
|
+
import Editor from '@motion-proto/live-tokens/editor';
|
|
109
|
+
import { route } from './router';
|
|
110
|
+
</script>
|
|
111
|
+
|
|
112
|
+
<LiveEditorOverlay
|
|
113
|
+
navLinks={[
|
|
114
|
+
{ path: '/', label: 'Home', icon: 'fa-home' },
|
|
115
|
+
{ path: '/components', label: 'Components', icon: 'fa-puzzle-piece' },
|
|
116
|
+
]}
|
|
117
|
+
pageSources={{
|
|
118
|
+
'/': 'src/pages/Home.svelte',
|
|
119
|
+
'/components': 'src/pages/ComponentsPage.svelte',
|
|
120
|
+
}}
|
|
121
|
+
/>
|
|
122
|
+
<ColumnsOverlay />
|
|
123
|
+
|
|
124
|
+
{#if $route === '/editor'}
|
|
125
|
+
<Editor />
|
|
126
|
+
{:else}
|
|
127
|
+
<!-- your routes -->
|
|
128
|
+
{/if}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`<LiveEditorOverlay />` self-gates: it only renders in dev, never inside an iframe, and never when the user is on `editorPath` (defaults to `/editor`). You don't need to wrap it in `{#if import.meta.env.DEV}` guards.
|
|
132
|
+
|
|
133
|
+
### Styles
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
// main.ts — or wherever you import global styles
|
|
137
|
+
import '@motion-proto/live-tokens/styles/ui-editor.css';
|
|
138
|
+
import '@motion-proto/live-tokens/styles/form-controls.css';
|
|
139
|
+
import '@motion-proto/live-tokens/styles/fonts.css';
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Add your own components to the editor
|
|
143
|
+
|
|
144
|
+
```svelte
|
|
145
|
+
<!-- src/pages/ComponentsPage.svelte -->
|
|
146
|
+
<script lang="ts">
|
|
147
|
+
import { ComponentsTab, defaultSections, type ComponentSection } from '@motion-proto/live-tokens/component-editor';
|
|
148
|
+
import '@motion-proto/live-tokens/styles/ui-editor.css';
|
|
149
|
+
import MyWidgetEditor from '../components/MyWidgetEditor.svelte';
|
|
150
|
+
|
|
151
|
+
const mySections: ComponentSection[] = [
|
|
152
|
+
{ id: 'myWidget', label: 'My Widget', component: MyWidgetEditor },
|
|
153
|
+
];
|
|
154
|
+
const allSections = [...defaultSections, ...mySections];
|
|
155
|
+
</script>
|
|
156
|
+
|
|
157
|
+
<ComponentsTab sections={allSections} />
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Publishing
|
|
161
|
+
|
|
162
|
+
The package is published to npm as `@motion-proto/live-tokens`.
|
|
21
163
|
|
|
22
|
-
|
|
164
|
+
1. Bump the version in `package.json`.
|
|
165
|
+
2. Verify the tarball contents: `npm pack --dry-run`.
|
|
166
|
+
3. `npm publish --access public`. `prepublishOnly` rebuilds `dist-plugin/`.
|
|
167
|
+
4. Tag and push: `git tag v0.2.0 && git push origin main --tags`.
|
|
23
168
|
|
|
24
|
-
|
|
25
|
-
- `src/pages/Admin.svelte` — design-system editor
|
|
26
|
-
- `src/pages/ShowcasePage.svelte` — component showcase
|
|
27
|
-
- `src/components/` — the reusable components
|
|
28
|
-
- `src/showcase/` — the editor UI (tabs, palette editors, curve editor, backup browser)
|
|
29
|
-
- `src/lib/` — the overlay, router glue, token persistence, and color helpers
|
|
30
|
-
- `src/styles/variables.css` — the generated CSS variables (this is the source of truth at runtime)
|
|
31
|
-
- `tokens/` — persisted palette files; `_active.json` selects the palette loaded on dev, `_production.json` selects the palette synced to CSS
|
|
169
|
+
**What ships:**
|
|
32
170
|
|
|
33
|
-
|
|
171
|
+
- `src/lib/`, `src/ui/`, `src/component-editor/`, `src/components/`
|
|
172
|
+
- `src/pages/Editor.svelte` + `Editor.svelte.d.ts`
|
|
173
|
+
- `src/styles/ui-editor.css`, `src/styles/form-controls.css`, `src/styles/fonts.css`, `src/styles/fonts/`
|
|
174
|
+
- `dist-plugin/`. Compiled Vite plugin.
|
|
34
175
|
|
|
35
|
-
|
|
36
|
-
2. When you promote a palette to "production", its variables are written into `src/styles/variables.css` and backed up under `src/styles/_backups/`.
|
|
37
|
-
3. `npm run build` bundles that CSS file as-is. No token-editor code or JSON lookups in the prod bundle.
|
|
176
|
+
**What doesn't ship** (starter-only): `src/App.svelte`, `src/main.ts`, `src/pages/Home.svelte`, `src/pages/Demo.svelte`, `src/pages/ComponentEditorPage.svelte`, `index.html`, `themes/`.
|
|
38
177
|
|
|
39
178
|
## License
|
|
40
179
|
|