@skhema/embed 0.1.9 → 0.1.11

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 (52) hide show
  1. package/README.md +55 -0
  2. package/dist/components/SkhemaComponent.d.ts +0 -1
  3. package/dist/components/SkhemaComponent.d.ts.map +1 -1
  4. package/dist/components/SkhemaElement.d.ts.map +1 -1
  5. package/dist/components/types.d.ts +1 -1
  6. package/dist/components/types.d.ts.map +1 -1
  7. package/dist/embed.min.js +1 -1
  8. package/dist/embed.min.js.map +1 -1
  9. package/dist/index-B8ZF3snD.cjs +215 -0
  10. package/dist/index-B8ZF3snD.cjs.map +1 -0
  11. package/dist/index-nkGvTyQR.js +216 -0
  12. package/dist/index-nkGvTyQR.js.map +1 -0
  13. package/dist/index.cjs +113 -474
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.es.js +88 -449
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/method-schema.d.ts +244 -0
  18. package/dist/method-schema.d.ts.map +1 -0
  19. package/dist/render/index.d.ts +55 -0
  20. package/dist/render/index.d.ts.map +1 -0
  21. package/dist/render.cjs +7 -0
  22. package/dist/render.cjs.map +1 -0
  23. package/dist/render.d.ts +2 -0
  24. package/dist/render.es.js +7 -0
  25. package/dist/render.es.js.map +1 -0
  26. package/dist/styles/design-tokens.d.ts +32 -4
  27. package/dist/styles/design-tokens.d.ts.map +1 -1
  28. package/dist/tokens-BQf5zJ3j.js +333 -0
  29. package/dist/tokens-BQf5zJ3j.js.map +1 -0
  30. package/dist/tokens-BxpYMhDq.cjs +332 -0
  31. package/dist/tokens-BxpYMhDq.cjs.map +1 -0
  32. package/dist/tokens.cjs +13 -13
  33. package/dist/tokens.d.ts +1 -1
  34. package/dist/tokens.d.ts.map +1 -1
  35. package/dist/tokens.es.js +8 -8
  36. package/dist/utils/color.d.ts +25 -0
  37. package/dist/utils/color.d.ts.map +1 -0
  38. package/dist/utils/component-validation.d.ts +1 -1
  39. package/dist/utils/component-validation.d.ts.map +1 -1
  40. package/dist/utils/sanitization.d.ts +7 -1
  41. package/dist/utils/sanitization.d.ts.map +1 -1
  42. package/dist/utils/seo.d.ts +1 -1
  43. package/dist/utils/seo.d.ts.map +1 -1
  44. package/dist/utils/validation.d.ts +1 -1
  45. package/dist/utils/validation.d.ts.map +1 -1
  46. package/package.json +11 -7
  47. package/dist/utils/author-attribution.d.ts +0 -16
  48. package/dist/utils/author-attribution.d.ts.map +0 -1
  49. package/dist/validation-CNWaQfh_.cjs +0 -231
  50. package/dist/validation-CNWaQfh_.cjs.map +0 -1
  51. package/dist/validation-MSiRF5Wt.js +0 -232
  52. package/dist/validation-MSiRF5Wt.js.map +0 -1
@@ -0,0 +1,244 @@
1
+ /**
2
+ * Vendored from @skhema/types (src/schema/{elements,components,mapping}.ts).
3
+ *
4
+ * @skhema/types is a restricted npm package; @skhema/embed is public, so it
5
+ * must not depend on it at install time. This is the public method vocabulary
6
+ * (it renders verbatim in public embeds) — keep it in sync with @skhema/types
7
+ * when the method schema changes (same pattern as
8
+ * skhema-cli/src/lib/contribute/method-schema.ts).
9
+ */
10
+ export declare const ELEMENT_TYPES: {
11
+ readonly KEY_CHALLENGE: {
12
+ readonly value: "key_challenge";
13
+ readonly label: "Key Challenge";
14
+ readonly acronym: "CHL";
15
+ };
16
+ readonly SUPPORTING_FACT: {
17
+ readonly value: "supporting_fact";
18
+ readonly label: "Supporting Fact";
19
+ readonly acronym: "FCT";
20
+ };
21
+ readonly IMPACT: {
22
+ readonly value: "impact";
23
+ readonly label: "Impact";
24
+ readonly acronym: "IMP";
25
+ };
26
+ readonly GUIDING_POLICY: {
27
+ readonly value: "guiding_policy";
28
+ readonly label: "Guiding Policy";
29
+ readonly acronym: "POL";
30
+ };
31
+ readonly COMPETITOR_MOVE: {
32
+ readonly value: "competitor_move";
33
+ readonly label: "Competitor Move";
34
+ readonly acronym: "CMV";
35
+ };
36
+ readonly SCOPE: {
37
+ readonly value: "scope";
38
+ readonly label: "Scope";
39
+ readonly acronym: "SCP";
40
+ };
41
+ readonly CONSTRAINT: {
42
+ readonly value: "constraint";
43
+ readonly label: "Constraint";
44
+ readonly acronym: "CST";
45
+ };
46
+ readonly SOLUTION: {
47
+ readonly value: "solution";
48
+ readonly label: "Solution";
49
+ readonly acronym: "SOL";
50
+ };
51
+ readonly ASSUMPTION_HYPOTHESIS: {
52
+ readonly value: "assumption_hypothesis";
53
+ readonly label: "Assumption Hypothesis";
54
+ readonly acronym: "HYP";
55
+ };
56
+ readonly EXPERIMENT: {
57
+ readonly value: "experiment";
58
+ readonly label: "Experiment";
59
+ readonly acronym: "EXP";
60
+ };
61
+ readonly ACTION: {
62
+ readonly value: "action";
63
+ readonly label: "Action";
64
+ readonly acronym: "ACT";
65
+ };
66
+ readonly INVESTMENT: {
67
+ readonly value: "investment";
68
+ readonly label: "Investment";
69
+ readonly acronym: "INV";
70
+ };
71
+ readonly ESTIMATE: {
72
+ readonly value: "estimate";
73
+ readonly label: "Estimate";
74
+ readonly acronym: "EST";
75
+ };
76
+ readonly BASELINE: {
77
+ readonly value: "baseline";
78
+ readonly label: "Baseline";
79
+ readonly acronym: "BSL";
80
+ };
81
+ readonly OUTCOME: {
82
+ readonly value: "outcome";
83
+ readonly label: "Outcome";
84
+ readonly acronym: "OCM";
85
+ };
86
+ readonly PERFORMANCE_VARIABLE: {
87
+ readonly value: "performance_variable";
88
+ readonly label: "Performance Variable";
89
+ readonly acronym: "VAR";
90
+ };
91
+ readonly CAPABILITY: {
92
+ readonly value: "capability";
93
+ readonly label: "Capability";
94
+ readonly acronym: "CAP";
95
+ };
96
+ readonly SYSTEM: {
97
+ readonly value: "system";
98
+ readonly label: "System";
99
+ readonly acronym: "SYS";
100
+ };
101
+ readonly PRINCIPLE: {
102
+ readonly value: "principle";
103
+ readonly label: "Principle";
104
+ readonly acronym: "PRN";
105
+ };
106
+ };
107
+ export declare const COMPONENT_TYPES: {
108
+ readonly DIAGNOSIS: {
109
+ readonly value: "diagnosis";
110
+ readonly label: "Diagnosis";
111
+ readonly acronym: "BD";
112
+ };
113
+ readonly METHOD: {
114
+ readonly value: "method";
115
+ readonly label: "Method & Positioning";
116
+ readonly acronym: "MP";
117
+ };
118
+ readonly INITIATIVES: {
119
+ readonly value: "initiatives";
120
+ readonly label: "Portfolio of Initiatives";
121
+ readonly acronym: "PI";
122
+ };
123
+ readonly MEASURES: {
124
+ readonly value: "measures";
125
+ readonly label: "Measures";
126
+ readonly acronym: "M";
127
+ };
128
+ readonly SUPPORT: {
129
+ readonly value: "support";
130
+ readonly label: "Support Structures";
131
+ readonly acronym: "SS";
132
+ };
133
+ };
134
+ export declare const SKHEMA_MAPPING: {
135
+ readonly componentFlow: readonly [{
136
+ readonly value: "diagnosis";
137
+ readonly label: "Diagnosis";
138
+ readonly acronym: "BD";
139
+ }, {
140
+ readonly value: "method";
141
+ readonly label: "Method & Positioning";
142
+ readonly acronym: "MP";
143
+ }, {
144
+ readonly value: "initiatives";
145
+ readonly label: "Portfolio of Initiatives";
146
+ readonly acronym: "PI";
147
+ }, {
148
+ readonly value: "measures";
149
+ readonly label: "Measures";
150
+ readonly acronym: "M";
151
+ }, {
152
+ readonly value: "support";
153
+ readonly label: "Support Structures";
154
+ readonly acronym: "SS";
155
+ }];
156
+ readonly elementFlow: {
157
+ readonly diagnosis: readonly [{
158
+ readonly value: "key_challenge";
159
+ readonly label: "Key Challenge";
160
+ readonly acronym: "CHL";
161
+ }, {
162
+ readonly value: "supporting_fact";
163
+ readonly label: "Supporting Fact";
164
+ readonly acronym: "FCT";
165
+ }, {
166
+ readonly value: "impact";
167
+ readonly label: "Impact";
168
+ readonly acronym: "IMP";
169
+ }];
170
+ readonly method: readonly [{
171
+ readonly value: "guiding_policy";
172
+ readonly label: "Guiding Policy";
173
+ readonly acronym: "POL";
174
+ }, {
175
+ readonly value: "competitor_move";
176
+ readonly label: "Competitor Move";
177
+ readonly acronym: "CMV";
178
+ }, {
179
+ readonly value: "scope";
180
+ readonly label: "Scope";
181
+ readonly acronym: "SCP";
182
+ }, {
183
+ readonly value: "constraint";
184
+ readonly label: "Constraint";
185
+ readonly acronym: "CST";
186
+ }];
187
+ readonly initiatives: readonly [{
188
+ readonly value: "solution";
189
+ readonly label: "Solution";
190
+ readonly acronym: "SOL";
191
+ }, {
192
+ readonly value: "assumption_hypothesis";
193
+ readonly label: "Assumption Hypothesis";
194
+ readonly acronym: "HYP";
195
+ }, {
196
+ readonly value: "experiment";
197
+ readonly label: "Experiment";
198
+ readonly acronym: "EXP";
199
+ }, {
200
+ readonly value: "action";
201
+ readonly label: "Action";
202
+ readonly acronym: "ACT";
203
+ }, {
204
+ readonly value: "estimate";
205
+ readonly label: "Estimate";
206
+ readonly acronym: "EST";
207
+ }, {
208
+ readonly value: "investment";
209
+ readonly label: "Investment";
210
+ readonly acronym: "INV";
211
+ }];
212
+ readonly measures: readonly [{
213
+ readonly value: "baseline";
214
+ readonly label: "Baseline";
215
+ readonly acronym: "BSL";
216
+ }, {
217
+ readonly value: "outcome";
218
+ readonly label: "Outcome";
219
+ readonly acronym: "OCM";
220
+ }, {
221
+ readonly value: "performance_variable";
222
+ readonly label: "Performance Variable";
223
+ readonly acronym: "VAR";
224
+ }];
225
+ readonly support: readonly [{
226
+ readonly value: "capability";
227
+ readonly label: "Capability";
228
+ readonly acronym: "CAP";
229
+ }, {
230
+ readonly value: "system";
231
+ readonly label: "System";
232
+ readonly acronym: "SYS";
233
+ }, {
234
+ readonly value: "principle";
235
+ readonly label: "Principle";
236
+ readonly acronym: "PRN";
237
+ }];
238
+ };
239
+ };
240
+ export type ElementType = (typeof ELEMENT_TYPES)[keyof typeof ELEMENT_TYPES];
241
+ export type ElementValue = ElementType['value'];
242
+ export type ComponentType = (typeof COMPONENT_TYPES)[keyof typeof COMPONENT_TYPES];
243
+ export type ComponentValue = ComponentType['value'];
244
+ //# sourceMappingURL=method-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-schema.d.ts","sourceRoot":"","sources":["../src/method-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGhB,CAAA;AAEV,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BlB,CAAA;AAEV,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCjB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAC5E,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAC/C,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AACxD,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { CardTheme } from '../styles/design-tokens.js';
2
+ /** Card theme. Email is always `'light'`; the browser embed passes the
3
+ * detected page theme. Defaults to `'light'` when omitted. */
4
+ export type { CardTheme };
5
+ /** Author attribution shared by both card kinds. */
6
+ interface AuthorFields {
7
+ /** Display name. When omitted, falls back to a humanised `contributorId`. */
8
+ authorName?: string | null;
9
+ /** Public contributor slug — when present, the name links to the profile. */
10
+ authorSlug?: string | null;
11
+ /** Contributor id, used only for the name fallback when `authorName` is unset. */
12
+ contributorId?: string | null;
13
+ }
14
+ /** Input for {@link renderElementCardHtml}. */
15
+ export interface ElementCardData extends AuthorFields {
16
+ /** Skhema element type value, e.g. `"key_challenge"`. */
17
+ elementType: string;
18
+ /** The element content / premise (plain text; sanitised + escaped here). */
19
+ content: string;
20
+ /** Pre-built handoff URL for the "Save to Skhema" button. */
21
+ saveUrl: string;
22
+ /** Card theme (default `'light'`). */
23
+ theme?: CardTheme;
24
+ }
25
+ /** A single element row inside a component card. */
26
+ export interface ComponentCardElement {
27
+ elementType: string;
28
+ content: string;
29
+ }
30
+ /** Input for {@link renderComponentCardHtml}. */
31
+ export interface ComponentCardData extends AuthorFields {
32
+ /** Skhema component type value, e.g. `"diagnosis"`. */
33
+ componentType: string;
34
+ /** Optional component title shown after a "—" separator in the header. */
35
+ title?: string | null;
36
+ /** The component's elements, in display order. */
37
+ elements: ComponentCardElement[];
38
+ /** Pre-built handoff URL for the "Save to Skhema" button. */
39
+ saveUrl: string;
40
+ /** Card theme (default `'light'`). */
41
+ theme?: CardTheme;
42
+ }
43
+ /**
44
+ * Render the official Skhema **element** card as email-safe HTML.
45
+ * The badge acronym + palette resolve from the element's owning component type,
46
+ * exactly like the live `<skhema-element>` embed.
47
+ */
48
+ export declare function renderElementCardHtml(data: ElementCardData): string;
49
+ /**
50
+ * Render the official Skhema **component** card as email-safe HTML — a coloured
51
+ * top bar, header (badge + type label + optional title), per-element-type
52
+ * groups, and the shared footer.
53
+ */
54
+ export declare function renderComponentCardHtml(data: ComponentCardData): string;
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAA;AAcnC;8DAC8D;AAC9D,YAAY,EAAE,SAAS,EAAE,CAAA;AAEzB,oDAAoD;AACpD,UAAU,YAAY;IACpB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAA;IACnB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,kDAAkD;IAClD,QAAQ,EAAE,oBAAoB,EAAE,CAAA;IAChC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AA+ID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAmBnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA4CvE"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("./tokens-BxpYMhDq.cjs");
4
+ const render = require("./index-B8ZF3snD.cjs");
5
+ exports.renderComponentCardHtml = render.renderComponentCardHtml;
6
+ exports.renderElementCardHtml = render.renderElementCardHtml;
7
+ //# sourceMappingURL=render.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './render/index'
2
+ export {}
@@ -0,0 +1,7 @@
1
+ import "./tokens-BQf5zJ3j.js";
2
+ import { r, a } from "./index-nkGvTyQR.js";
3
+ export {
4
+ r as renderComponentCardHtml,
5
+ a as renderElementCardHtml
6
+ };
7
+ //# sourceMappingURL=render.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -31,6 +31,38 @@ export declare const COMPONENT_COLORS: {
31
31
  };
32
32
  };
33
33
  export type ComponentColorKey = keyof typeof COMPONENT_COLORS;
34
+ /**
35
+ * Email-safe flat hex palette for the card surface, per theme. These mirror the
36
+ * Tailwind slate values behind the `CARD_VARS` HSL tokens, pre-resolved to hex
37
+ * because email clients ignore `<style>` / CSS vars. The card renderer
38
+ * (`@skhema/embed/render`) inlines these so the live browser embed and email
39
+ * share one colour system (see the "converge on hex" decision).
40
+ */
41
+ export declare const CARD_PALETTE: {
42
+ readonly light: {
43
+ readonly cardBg: "#ffffff";
44
+ readonly border: "#e2e8f0";
45
+ readonly text: "#020817";
46
+ readonly textMuted: "#64748b";
47
+ };
48
+ readonly dark: {
49
+ readonly cardBg: "#020817";
50
+ readonly border: "#1e293b";
51
+ readonly text: "#f8fafc";
52
+ readonly textMuted: "#94a3b8";
53
+ };
54
+ };
55
+ export type CardTheme = keyof typeof CARD_PALETTE;
56
+ /** Save-button brand colours (hex) — match the `--skhema-primary*` HSL tokens. */
57
+ export declare const PRIMARY_HEX = "#cd476a";
58
+ export declare const PRIMARY_HOVER_HEX = "#b53d5e";
59
+ export declare const PRIMARY_PRESSED_HEX = "#9d3552";
60
+ /** Card geometry / typography shared by the renderer and the browser embed. */
61
+ export declare const CARD_RADIUS = "4px";
62
+ export declare const CARD_SHADOW = "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)";
63
+ export declare const CARD_SHADOW_LG = "0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)";
64
+ export declare const FONT_STACK = "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Inter', sans-serif";
65
+ export declare const MONO_STACK = "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace";
34
66
  /**
35
67
  * Shared base card CSS variables for light and dark modes.
36
68
  */
@@ -54,10 +86,6 @@ export declare const CARD_VARS: {
54
86
  readonly '--skhema-surface-subtle': "hsl(217.2 32.6% 12%)";
55
87
  };
56
88
  };
57
- /**
58
- * Shared card structure styles (used by both SkhemaElement and SkhemaComponent).
59
- */
60
- export declare const SHARED_CARD_STYLES = "\n/* Monospace acronym badge */\n.skhema-acronym-badge {\n display: inline-flex;\n align-items: center;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 2px;\n letter-spacing: 0.02em;\n flex-shrink: 0;\n}\n\n/* Footer attribution tagline */\n.skhema-footer-attribution {\n font-size: 11px;\n color: var(--skhema-text-muted);\n line-height: 1.4;\n}\n\n.skhema-footer-attribution a {\n color: var(--skhema-text-muted);\n text-decoration: underline;\n text-decoration-color: var(--skhema-border);\n text-underline-offset: 2px;\n}\n\n.skhema-footer-attribution a:hover {\n color: var(--skhema-text);\n}\n\n/* Contributor line in footer */\n.skhema-contributor-line {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--skhema-text-muted);\n}\n\n.skhema-contributor-line svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n}\n\n.skhema-author-link {\n color: inherit;\n text-decoration: none;\n}\n\n.skhema-author-link:hover {\n color: var(--skhema-text);\n text-decoration: underline;\n}\n\n/* Save button \u2014 primary brand color */\n.skhema-save-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n background: var(--skhema-primary);\n color: white;\n border: none;\n padding: 6px 14px;\n border-radius: calc(var(--skhema-radius) + 2px);\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n cursor: pointer;\n transition: background 0.15s ease;\n white-space: nowrap;\n}\n\n.skhema-save-btn:hover {\n background: var(--skhema-primary-hover);\n}\n\n.skhema-save-btn:active {\n background: var(--skhema-primary-pressed);\n}\n\n.skhema-save-btn:focus {\n outline: 2px solid var(--skhema-primary);\n outline-offset: 2px;\n}\n\n.skhema-save-btn::after {\n content: '\\2192';\n font-size: 13px;\n}\n";
61
89
  /**
62
90
  * User SVG icon (inline, no external deps).
63
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"design-tokens.d.ts","sourceRoot":"","sources":["../../src/styles/design-tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAmBZ,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,kBAAkB,m4DA4F9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,kRAA4P,CAAA"}
1
+ {"version":3,"file":"design-tokens.d.ts","sourceRoot":"","sources":["../../src/styles/design-tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAE7D;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaf,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,YAAY,CAAA;AAEjD,kFAAkF;AAClF,eAAO,MAAM,WAAW,YAAY,CAAA;AACpC,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAC1C,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,+EAA+E;AAC/E,eAAO,MAAM,WAAW,QAAQ,CAAA;AAChC,eAAO,MAAM,WAAW,gEACuC,CAAA;AAC/D,eAAO,MAAM,cAAc,qEACyC,CAAA;AACpE,eAAO,MAAM,UAAU,iFACyD,CAAA;AAChF,eAAO,MAAM,UAAU,wEACgD,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAmBZ,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,aAAa,kRAA4P,CAAA"}