@ponchia/ui 0.11.0 → 0.13.0

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 (76) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/MIGRATIONS.json +24 -0
  3. package/README.md +5 -5
  4. package/behaviors/forms.d.ts +1 -1
  5. package/behaviors/internal.d.ts +1 -1
  6. package/classes/classes.json +3 -1
  7. package/classes/index.d.ts +2 -0
  8. package/classes/index.js +3 -1
  9. package/classes/vscode.css-custom-data.json +64 -0
  10. package/css/base.css +2 -2
  11. package/css/blocknote.css +61 -0
  12. package/css/clamp.css +2 -2
  13. package/css/content.css +126 -0
  14. package/css/dataviz.css +117 -64
  15. package/css/disclosure.css +10 -10
  16. package/css/forms.css +8 -8
  17. package/css/legend.css +1 -2
  18. package/css/primitives.css +5 -6
  19. package/css/row.css +2 -2
  20. package/css/term.css +2 -2
  21. package/css/textref.css +2 -2
  22. package/css/toc.css +2 -2
  23. package/css/tokens.css +43 -0
  24. package/css/workbench.css +2 -2
  25. package/dist/bronto.css +1 -1
  26. package/dist/css/analytical.css +1 -1
  27. package/dist/css/base.css +1 -1
  28. package/dist/css/blocknote.css +1 -0
  29. package/dist/css/clamp.css +1 -1
  30. package/dist/css/content.css +1 -1
  31. package/dist/css/dataviz.css +1 -1
  32. package/dist/css/disclosure.css +1 -1
  33. package/dist/css/forms.css +1 -1
  34. package/dist/css/legend.css +1 -1
  35. package/dist/css/report-kit.css +1 -1
  36. package/dist/css/row.css +1 -1
  37. package/dist/css/term.css +1 -1
  38. package/dist/css/textref.css +1 -1
  39. package/dist/css/toc.css +1 -1
  40. package/dist/css/tokens.css +1 -1
  41. package/dist/css/workbench.css +1 -1
  42. package/docs/adr/0001-color-system.md +29 -0
  43. package/docs/architecture.md +1 -1
  44. package/docs/compositions.md +2 -2
  45. package/docs/contrast.md +24 -24
  46. package/docs/frontier-primitives.md +5 -0
  47. package/docs/interop/blocknote.md +60 -0
  48. package/docs/mermaid.md +1 -1
  49. package/docs/migrations/0.11-to-0.12.md +47 -0
  50. package/docs/package-contract.md +12 -2
  51. package/docs/reference.md +18 -1
  52. package/docs/renderer.md +100 -0
  53. package/docs/reporting.md +9 -9
  54. package/docs/stability.md +4 -2
  55. package/docs/theming.md +77 -20
  56. package/docs/usage.md +12 -8
  57. package/docs/vega.md +24 -23
  58. package/llms.txt +8 -4
  59. package/package.json +24 -12
  60. package/renderer/index.d.ts +203 -0
  61. package/renderer/index.d.ts.map +1 -0
  62. package/renderer/index.js +650 -0
  63. package/tokens/charts.d.ts +16 -10
  64. package/tokens/charts.js +65 -49
  65. package/tokens/charts.json +77 -29
  66. package/tokens/figma.variables.json +240 -0
  67. package/tokens/index.d.ts +2 -2
  68. package/tokens/index.js +30 -2
  69. package/tokens/index.json +32 -0
  70. package/tokens/mermaid.js +56 -56
  71. package/tokens/mermaid.json +56 -56
  72. package/tokens/resolved.json +17 -1
  73. package/tokens/tokens.dtcg.json +190 -0
  74. package/tokens/vega.d.ts +3 -3
  75. package/tokens/vega.js +111 -72
  76. package/tokens/vega.json +198 -126
@@ -1,19 +1,22 @@
1
1
  /** @ponchia/ui — GENERATED from tokens/charts.js by scripts/gen-charts.mjs.
2
2
  * Do not edit by hand; run `npm run charts:build`. Drift-checked in CI. */
3
3
 
4
- /** A theme's data-viz palette. Values are CSS colour strings (OKLCH for the
5
- * authored series; `var(--accent)` for series 1). For resolved sRGB **hex**
6
- * (canvas/SVG/charting libs), import `@ponchia/ui/charts.json` instead. */
4
+ /** A theme's categorical + data-viz palette, as authored. Values are CSS
5
+ * colour strings (sRGB hex for the measured categorical and sequential sets,
6
+ * OKLCH for the diverging ramp). For resolved sRGB **hex** of every set,
7
+ * including the derived tints and inks, import `@ponchia/ui/charts.json`;
8
+ * for values that follow a live page (skins, OLED, contrast) use
9
+ * `@ponchia/ui/renderer`. */
7
10
  export interface ChartTheme {
8
- /** 8 distinct series colours (index 0 = `var(--accent)`, the brand). */
11
+ /** 8 categorical hues in fixed order: blue, orange, aqua, yellow, magenta, green, violet, red. */
9
12
  categorical: string[];
10
- /** Single-hue sequential ramp (light→dark), for heatmaps/intensity. */
13
+ /** Single-hue sequential ramp; step 1 sits nearest the theme surface. */
11
14
  sequential: string[];
12
15
  /** Diverging ramp (− … neutral … +), for gains/losses. */
13
16
  diverging: string[];
14
17
  }
15
18
 
16
- /** The categorical CSS custom-property names (1-based; `--chart-1` = the accent). */
19
+ /** The categorical series custom-property names (1-based). */
17
20
  export type ChartTokenName =
18
21
  | '--chart-1'
19
22
  | '--chart-2'
@@ -24,11 +27,14 @@ export type ChartTokenName =
24
27
  | '--chart-7'
25
28
  | '--chart-8';
26
29
 
27
- /** The opt-in data-viz palette source, per theme (CSS colour strings). */
28
- export declare const charts: { light: ChartTheme; dark: ChartTheme };
30
+ /** A categorical slot's hue name. */
31
+ export type CategoricalHue = 'blue' | 'orange' | 'aqua' | 'yellow' | 'magenta' | 'green' | 'violet' | 'red';
32
+
33
+ /** The hue each categorical slot carries, in slot order. */
34
+ export declare const CATEGORICAL_HUES: readonly ['blue', 'orange', 'aqua', 'yellow', 'magenta', 'green', 'violet', 'red'];
29
35
 
30
- /** Series 1 sentinel — the live brand accent. */
31
- export declare const ACCENT: 'var(--accent)';
36
+ /** The opt-in categorical + data-viz palette source, per theme. */
37
+ export declare const charts: { light: ChartTheme; dark: ChartTheme };
32
38
 
33
39
  export declare const CHART_CATEGORICAL: 8;
34
40
  export declare const CHART_PATTERN_COUNT: 8;
package/tokens/charts.js CHANGED
@@ -1,58 +1,71 @@
1
1
  /**
2
- * @ponchia/ui — Tier-4 data-viz colour module (ADR-0001 step 7).
2
+ * @ponchia/ui — Tier-4 categorical + data-viz colour module (ADR-0001 step 7,
3
+ * amended in 0.12).
3
4
  *
4
- * The single source for the opt-in chart palette (`@ponchia/ui/css/dataviz.css`
5
- * + `tokens/charts.json`). **Charts only, never UI chrome** — `check-color-policy`
6
- * forbids `var(--chart-*)` in core component CSS. Opt-in: a separate entrypoint,
7
- * never in the default bundle.
5
+ * The single source for the opt-in categorical palette (`@ponchia/ui/css/dataviz.css`
6
+ * + `tokens/charts.json`). Two namespaces carry the same eight hues:
8
7
  *
9
- * Hybrid accent-led: **series 1 is the live `var(--accent)`** (the brand stays
10
- * series 1, so it re-themes/-skins for free); series 2–8 are an Okabe-Ito-derived
11
- * colourblind-safe set, authored in OKLCH per-theme (darker in light, brighter
12
- * in dark) and **gated for pairwise distinguishability under normal + simulated
13
- * protan/deutan/tritan vision** (scripts/check-charts.mjs). Series 8 is a neutral
14
- * grey (on-brand, and a useful "other"/baseline series).
8
+ * --cat-N categorical IDENTITY — a tag, a participant, a user-chosen tint.
9
+ * Each slot also has a `-tint` wash (over --panel) and an `-ink`
10
+ * text colour that holds 4.5:1 on the panel and on its own tint.
11
+ * --chart-N the same hue as a data-viz SERIES, with --chart-seq-*
12
+ * (sequential) and --chart-div-* (diverging) ramps.
13
+ *
14
+ * Neither is UI chrome: `check-color-policy` forbids both in core component CSS.
15
+ * Opt-in: a separate entrypoint, never in the default bundle.
16
+ *
17
+ * WHY THESE VALUES (0.12). Until 0.11 series 1 was the live accent and series
18
+ * 2–8 were Okabe-Ito verbatim. That set failed the measurable palette checks on
19
+ * the package's own surfaces — yellow and slate fell outside the lightness band,
20
+ * slate read as grey under the chroma floor — and spending slot 1 on the alert
21
+ * red made an ordinary first series look like an error. A consumer (a canvas
22
+ * workspace that draws charts, timelines, graph colours and presence from one
23
+ * palette) shipped validated values instead and recorded the divergence; these
24
+ * are those values. Order is fixed: blue, orange, aqua, yellow, magenta, green,
25
+ * violet, red — so adjacent series, the ones a legend and a stacked mark put
26
+ * side by side, are the pairs held furthest apart.
27
+ *
28
+ * Authored as sRGB hex on purpose: the values are measured, and a round-trip
29
+ * through another space would move what was measured. `scripts/check-charts.mjs`
30
+ * gates them per theme against every surface they draw on (panel, page, OLED):
31
+ * OKLCH lightness band, chroma floor, adjacent-pair separation under simulated
32
+ * protanopia/deuteranopia, a normal-vision floor, and contrast (reported below
33
+ * 3:1; relief is the pattern fill or a direct label, per WCAG 1.4.1).
15
34
  *
16
35
  * Colour is never the sole signal: `--chart-pattern-1..8` ship a matching
17
- * dot-matrix pattern per series (WCAG 1.4.1). Use colour N WITH pattern N.
36
+ * dot-matrix pattern per series. Use colour N WITH pattern N.
18
37
  *
19
38
  * Generated → drift-checked: css/dataviz.css, tokens/charts.json (resolved hex
20
39
  * for JS/canvas/SVG/charting libs), tokens/charts.d.ts.
21
40
  */
22
41
 
23
- /** Series 1 is the live accent (a CSS var, not a fixed hue). Resolved to the
24
- * theme accent for the JSON/gate. */
25
- export const ACCENT = 'var(--accent)';
26
-
27
- /** Series 2–8 — the Okabe-Ito colourblind-safe set, used **verbatim** (the same
28
- * hues both themes). Authored as sRGB hex on purpose: Okabe-Ito is a published,
29
- * CVD-proven *set*, and round-tripping through OKLCH (or re-spacing per theme)
30
- * breaks the careful lightness relationships that make it colourblind-safe —
31
- * which the CVD gate caught. Series 1 (the accent, per-theme) replaces
32
- * Okabe-Ito's vermillion; a dark slate-grey is the 8th (a CVD-distinct "other"
33
- * / baseline, far enough in lightness from the reddish-purple to clear deutan).
34
- * The sequential/diverging ramps below ARE authored in OKLCH (new work). */
35
- const FILLS = [
36
- '#e69f00', // 2 orange
37
- '#56b4e9', // 3 sky blue
38
- '#009e73', // 4 bluish green
39
- '#f0e442', // 5 yellow
40
- '#0072b2', // 6 blue
41
- '#cc79a7', // 7 reddish purple
42
- '#4d5358', // 8 dark slate (CVD-distinct neutral)
43
- ];
42
+ /** The hue each categorical slot carries, in slot order — a name for a swatch
43
+ * picker or a legend, never a semantic (slot 8 is red, not "danger"). */
44
+ export const CATEGORICAL_HUES = Object.freeze([
45
+ 'blue',
46
+ 'orange',
47
+ 'aqua',
48
+ 'yellow',
49
+ 'magenta',
50
+ 'green',
51
+ 'violet',
52
+ 'red',
53
+ ]);
44
54
 
45
55
  export const charts = {
46
56
  light: {
47
- categorical: [ACCENT, ...FILLS],
48
- sequential: [
49
- 'oklch(94% 0.03 25deg)',
50
- 'oklch(85% 0.07 25deg)',
51
- 'oklch(74% 0.12 25deg)',
52
- 'oklch(62% 0.16 25deg)',
53
- 'oklch(50% 0.16 25deg)',
54
- 'oklch(38% 0.13 25deg)',
57
+ categorical: [
58
+ '#2a78d6', // 1 blue
59
+ '#eb6834', // 2 orange
60
+ '#1baf7a', // 3 aqua
61
+ '#eda100', // 4 yellow
62
+ '#e87ba4', // 5 magenta
63
+ '#008300', // 6 green
64
+ '#4a3aa7', // 7 violet
65
+ '#e34948', // 8 red
55
66
  ],
67
+ // One blue hue; step 1 sits nearest the (light) surface.
68
+ sequential: ['#80b0e8', '#5598e7', '#2a78d6', '#1c5cab', '#104281'],
56
69
  diverging: [
57
70
  'oklch(45% 0.14 255deg)', // − strong blue
58
71
  'oklch(62% 0.1 250deg)',
@@ -64,15 +77,18 @@ export const charts = {
64
77
  ],
65
78
  },
66
79
  dark: {
67
- categorical: [ACCENT, ...FILLS],
68
- sequential: [
69
- 'oklch(30% 0.1 25deg)',
70
- 'oklch(42% 0.15 25deg)',
71
- 'oklch(55% 0.17 25deg)',
72
- 'oklch(68% 0.15 25deg)',
73
- 'oklch(80% 0.1 25deg)',
74
- 'oklch(90% 0.05 25deg)',
80
+ categorical: [
81
+ '#3987e5', // 1 blue
82
+ '#d95926', // 2 orange
83
+ '#199e70', // 3 aqua
84
+ '#c98500', // 4 yellow
85
+ '#d55181', // 5 magenta
86
+ '#008300', // 6 green
87
+ '#9085e9', // 7 violet
88
+ '#e66767', // 8 red
75
89
  ],
90
+ // One blue hue; step 1 sits nearest the (dark) surface.
91
+ sequential: ['#1b5298', '#256abf', '#3987e5', '#6da7ec', '#9ec5f4'],
76
92
  diverging: [
77
93
  'oklch(70% 0.13 250deg)', // − blue
78
94
  'oklch(60% 0.12 252deg)',
@@ -1,23 +1,52 @@
1
1
  {
2
- "$comment": "@ponchia/ui data-viz palette resolved to static hex per theme, for non-CSS render targets (canvas/SVG/charting libs). Series 1 = the resolved brand accent. Generated from tokens/charts.js — do not edit by hand; run `npm run charts:build`. Drift-checked in CI.",
2
+ "$comment": "@ponchia/ui categorical + data-viz palette resolved to static hex per theme, for non-CSS render targets (canvas/SVG/charting libs). `tint` is resolved over the theme --panel; a page that re-points --panel (a skin, OLED) should read the live --cat-N-tint instead, or use @ponchia/ui/renderer. Generated from tokens/charts.js — do not edit by hand; run `npm run charts:build`. Drift-checked in CI.",
3
+ "hues": [
4
+ "blue",
5
+ "orange",
6
+ "aqua",
7
+ "yellow",
8
+ "magenta",
9
+ "green",
10
+ "violet",
11
+ "red"
12
+ ],
3
13
  "light": {
4
14
  "categorical": [
5
- "#d71921",
6
- "#e69f00",
7
- "#56b4e9",
8
- "#009e73",
9
- "#f0e442",
10
- "#0072b2",
11
- "#cc79a7",
12
- "#4d5358"
15
+ "#2a78d6",
16
+ "#eb6834",
17
+ "#1baf7a",
18
+ "#eda100",
19
+ "#e87ba4",
20
+ "#008300",
21
+ "#4a3aa7",
22
+ "#e34948"
23
+ ],
24
+ "tint": [
25
+ "#ddeafa",
26
+ "#ffe8e0",
27
+ "#e1f3e9",
28
+ "#fdf1e0",
29
+ "#feeaf0",
30
+ "#dcebda",
31
+ "#dedff3",
32
+ "#ffe4e1"
33
+ ],
34
+ "ink": [
35
+ "#1467c3",
36
+ "#bf3f00",
37
+ "#007d4c",
38
+ "#a45d00",
39
+ "#b04972",
40
+ "#007800",
41
+ "#4a3aa7",
42
+ "#c62b30"
13
43
  ],
14
44
  "sequential": [
15
- "#ffe4e1",
16
- "#f9bdb7",
17
- "#ed8c84",
18
- "#d55753",
19
- "#ac3031",
20
- "#79191b"
45
+ "#80b0e8",
46
+ "#5598e7",
47
+ "#2a78d6",
48
+ "#1c5cab",
49
+ "#104281"
21
50
  ],
22
51
  "diverging": [
23
52
  "#0c54a0",
@@ -31,22 +60,41 @@
31
60
  },
32
61
  "dark": {
33
62
  "categorical": [
34
- "#ff3b41",
35
- "#e69f00",
36
- "#56b4e9",
37
- "#009e73",
38
- "#f0e442",
39
- "#0072b2",
40
- "#cc79a7",
41
- "#4d5358"
63
+ "#3987e5",
64
+ "#d95926",
65
+ "#199e70",
66
+ "#c98500",
67
+ "#d55181",
68
+ "#008300",
69
+ "#9085e9",
70
+ "#e66767"
71
+ ],
72
+ "tint": [
73
+ "#232c38",
74
+ "#372721",
75
+ "#222f28",
76
+ "#342c21",
77
+ "#37262a",
78
+ "#1f2b1e",
79
+ "#2c2c38",
80
+ "#392827"
81
+ ],
82
+ "ink": [
83
+ "#4694f3",
84
+ "#e86f42",
85
+ "#27a677",
86
+ "#cb8705",
87
+ "#e46792",
88
+ "#38a433",
89
+ "#9187eb",
90
+ "#eb6c6c"
42
91
  ],
43
92
  "sequential": [
44
- "#551112",
45
- "#8d1a1e",
46
- "#c13c3b",
47
- "#e66e68",
48
- "#f8a49d",
49
- "#fed2cd"
93
+ "#1b5298",
94
+ "#256abf",
95
+ "#3987e5",
96
+ "#6da7ec",
97
+ "#9ec5f4"
50
98
  ],
51
99
  "diverging": [
52
100
  "#5aa3ec",
@@ -1817,6 +1817,51 @@
1817
1817
  }
1818
1818
  }
1819
1819
  },
1820
+ {
1821
+ "name": "focus/ring/offset",
1822
+ "type": "FLOAT",
1823
+ "sourceCssVariable": "--focus-ring-offset",
1824
+ "valuesByMode": {
1825
+ "global": 2
1826
+ },
1827
+ "$extensions": {
1828
+ "com.ponchia.css": {
1829
+ "variable": "--focus-ring-offset",
1830
+ "value": "2px"
1831
+ }
1832
+ },
1833
+ "unit": "px"
1834
+ },
1835
+ {
1836
+ "name": "focus/ring/width",
1837
+ "type": "FLOAT",
1838
+ "sourceCssVariable": "--focus-ring-width",
1839
+ "valuesByMode": {
1840
+ "global": 2
1841
+ },
1842
+ "$extensions": {
1843
+ "com.ponchia.css": {
1844
+ "variable": "--focus-ring-width",
1845
+ "value": "2px"
1846
+ }
1847
+ },
1848
+ "unit": "px"
1849
+ },
1850
+ {
1851
+ "name": "hairline",
1852
+ "type": "FLOAT",
1853
+ "sourceCssVariable": "--hairline",
1854
+ "valuesByMode": {
1855
+ "global": 1
1856
+ },
1857
+ "$extensions": {
1858
+ "com.ponchia.css": {
1859
+ "variable": "--hairline",
1860
+ "value": "1px"
1861
+ }
1862
+ },
1863
+ "unit": "px"
1864
+ },
1820
1865
  {
1821
1866
  "name": "mono",
1822
1867
  "type": "STRING",
@@ -1976,6 +2021,66 @@
1976
2021
  }
1977
2022
  }
1978
2023
  },
2024
+ {
2025
+ "name": "space/0/5",
2026
+ "type": "FLOAT",
2027
+ "sourceCssVariable": "--space-0-5",
2028
+ "valuesByMode": {
2029
+ "global": 0.125
2030
+ },
2031
+ "$extensions": {
2032
+ "com.ponchia.css": {
2033
+ "variable": "--space-0-5",
2034
+ "value": "0.125rem"
2035
+ }
2036
+ },
2037
+ "unit": "rem"
2038
+ },
2039
+ {
2040
+ "name": "space/0/75",
2041
+ "type": "FLOAT",
2042
+ "sourceCssVariable": "--space-0-75",
2043
+ "valuesByMode": {
2044
+ "global": 0.1875
2045
+ },
2046
+ "$extensions": {
2047
+ "com.ponchia.css": {
2048
+ "variable": "--space-0-75",
2049
+ "value": "0.1875rem"
2050
+ }
2051
+ },
2052
+ "unit": "rem"
2053
+ },
2054
+ {
2055
+ "name": "space/1/5",
2056
+ "type": "FLOAT",
2057
+ "sourceCssVariable": "--space-1-5",
2058
+ "valuesByMode": {
2059
+ "global": 0.375
2060
+ },
2061
+ "$extensions": {
2062
+ "com.ponchia.css": {
2063
+ "variable": "--space-1-5",
2064
+ "value": "0.375rem"
2065
+ }
2066
+ },
2067
+ "unit": "rem"
2068
+ },
2069
+ {
2070
+ "name": "space/2/5",
2071
+ "type": "FLOAT",
2072
+ "sourceCssVariable": "--space-2-5",
2073
+ "valuesByMode": {
2074
+ "global": 0.625
2075
+ },
2076
+ "$extensions": {
2077
+ "com.ponchia.css": {
2078
+ "variable": "--space-2-5",
2079
+ "value": "0.625rem"
2080
+ }
2081
+ },
2082
+ "unit": "rem"
2083
+ },
1979
2084
  {
1980
2085
  "name": "space/2xl",
1981
2086
  "type": "FLOAT",
@@ -2229,6 +2334,36 @@
2229
2334
  },
2230
2335
  "unit": "em"
2231
2336
  },
2337
+ {
2338
+ "name": "ui/px",
2339
+ "type": "FLOAT",
2340
+ "sourceCssVariable": "--ui-px",
2341
+ "valuesByMode": {
2342
+ "global": 1
2343
+ },
2344
+ "$extensions": {
2345
+ "com.ponchia.css": {
2346
+ "variable": "--ui-px",
2347
+ "value": "1px"
2348
+ }
2349
+ },
2350
+ "unit": "px"
2351
+ },
2352
+ {
2353
+ "name": "ui/zoom",
2354
+ "type": "FLOAT",
2355
+ "sourceCssVariable": "--ui-zoom",
2356
+ "valuesByMode": {
2357
+ "global": 1
2358
+ },
2359
+ "$extensions": {
2360
+ "com.ponchia.css": {
2361
+ "variable": "--ui-zoom",
2362
+ "value": "1"
2363
+ }
2364
+ },
2365
+ "unit": "number"
2366
+ },
2232
2367
  {
2233
2368
  "name": "z/base",
2234
2369
  "type": "FLOAT",
@@ -2244,6 +2379,81 @@
2244
2379
  },
2245
2380
  "unit": "number"
2246
2381
  },
2382
+ {
2383
+ "name": "z/canvas",
2384
+ "type": "FLOAT",
2385
+ "sourceCssVariable": "--z-canvas",
2386
+ "valuesByMode": {
2387
+ "global": 0
2388
+ },
2389
+ "$extensions": {
2390
+ "com.ponchia.css": {
2391
+ "variable": "--z-canvas",
2392
+ "value": "0"
2393
+ }
2394
+ },
2395
+ "unit": "number"
2396
+ },
2397
+ {
2398
+ "name": "z/chrome",
2399
+ "type": "FLOAT",
2400
+ "sourceCssVariable": "--z-chrome",
2401
+ "valuesByMode": {
2402
+ "global": 20
2403
+ },
2404
+ "$extensions": {
2405
+ "com.ponchia.css": {
2406
+ "variable": "--z-chrome",
2407
+ "value": "20"
2408
+ }
2409
+ },
2410
+ "unit": "number"
2411
+ },
2412
+ {
2413
+ "name": "z/menu",
2414
+ "type": "FLOAT",
2415
+ "sourceCssVariable": "--z-menu",
2416
+ "valuesByMode": {
2417
+ "global": 50
2418
+ },
2419
+ "$extensions": {
2420
+ "com.ponchia.css": {
2421
+ "variable": "--z-menu",
2422
+ "value": "50"
2423
+ }
2424
+ },
2425
+ "unit": "number"
2426
+ },
2427
+ {
2428
+ "name": "z/modal",
2429
+ "type": "FLOAT",
2430
+ "sourceCssVariable": "--z-modal",
2431
+ "valuesByMode": {
2432
+ "global": 30
2433
+ },
2434
+ "$extensions": {
2435
+ "com.ponchia.css": {
2436
+ "variable": "--z-modal",
2437
+ "value": "30"
2438
+ }
2439
+ },
2440
+ "unit": "number"
2441
+ },
2442
+ {
2443
+ "name": "z/navigation",
2444
+ "type": "FLOAT",
2445
+ "sourceCssVariable": "--z-navigation",
2446
+ "valuesByMode": {
2447
+ "global": 80
2448
+ },
2449
+ "$extensions": {
2450
+ "com.ponchia.css": {
2451
+ "variable": "--z-navigation",
2452
+ "value": "80"
2453
+ }
2454
+ },
2455
+ "unit": "number"
2456
+ },
2247
2457
  {
2248
2458
  "name": "z/overlay",
2249
2459
  "type": "FLOAT",
@@ -2259,6 +2469,21 @@
2259
2469
  },
2260
2470
  "unit": "number"
2261
2471
  },
2472
+ {
2473
+ "name": "z/panel",
2474
+ "type": "FLOAT",
2475
+ "sourceCssVariable": "--z-panel",
2476
+ "valuesByMode": {
2477
+ "global": 25
2478
+ },
2479
+ "$extensions": {
2480
+ "com.ponchia.css": {
2481
+ "variable": "--z-panel",
2482
+ "value": "25"
2483
+ }
2484
+ },
2485
+ "unit": "number"
2486
+ },
2262
2487
  {
2263
2488
  "name": "z/popover",
2264
2489
  "type": "FLOAT",
@@ -2318,6 +2543,21 @@
2318
2543
  }
2319
2544
  },
2320
2545
  "unit": "number"
2546
+ },
2547
+ {
2548
+ "name": "z/tooltip",
2549
+ "type": "FLOAT",
2550
+ "sourceCssVariable": "--z-tooltip",
2551
+ "valuesByMode": {
2552
+ "global": 70
2553
+ },
2554
+ "$extensions": {
2555
+ "com.ponchia.css": {
2556
+ "variable": "--z-tooltip",
2557
+ "value": "70"
2558
+ }
2559
+ },
2560
+ "unit": "number"
2321
2561
  }
2322
2562
  ]
2323
2563
  }
package/tokens/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  export type ThemeName = 'light' | 'dark';
5
5
 
6
- export type GlobalTokenName = '--radius-xl' | '--radius-lg' | '--radius-md' | '--radius-sm' | '--radius-pill' | '--space-2xs' | '--space-xs' | '--space-sm' | '--space-md' | '--space-lg' | '--space-xl' | '--space-2xl' | '--tap-target' | '--tap-target-min' | '--safe-area-top' | '--safe-area-right' | '--safe-area-bottom' | '--safe-area-left' | '--mono' | '--sans' | '--dot-font' | '--display' | '--display-weight' | '--display-weight-strong' | '--text-2xs' | '--text-xs' | '--text-sm' | '--text-base' | '--text-lg' | '--text-xl' | '--tracking-wide' | '--tracking-wider' | '--ease-standard' | '--ease-spring' | '--ease-out' | '--duration-fast' | '--duration-base' | '--duration-slow' | '--dot-size' | '--dot-gap' | '--z-base' | '--z-raised' | '--z-sticky' | '--z-overlay' | '--z-popover' | '--z-toast' | '--accent-1' | '--accent-2' | '--accent-3' | '--accent-4' | '--accent-5' | '--accent-6' | '--surface-1' | '--surface-2' | '--surface-3' | '--surface-4' | '--surface-5' | '--surface-6' | '--bronto-color-bg' | '--bronto-color-surface' | '--bronto-color-surface-raised' | '--bronto-color-border' | '--bronto-color-border-strong' | '--bronto-color-text' | '--bronto-color-text-muted' | '--bronto-color-action' | '--bronto-color-on-action' | '--bronto-color-focus' | '--bronto-color-success' | '--bronto-color-warning' | '--bronto-color-danger' | '--bronto-color-info' | '--surface' | '--surface-raised' | '--surface-muted' | '--border' | '--border-strong';
6
+ export type GlobalTokenName = '--radius-xl' | '--radius-lg' | '--radius-md' | '--radius-sm' | '--radius-pill' | '--space-2xs' | '--space-xs' | '--space-sm' | '--space-md' | '--space-lg' | '--space-xl' | '--space-2xl' | '--space-0-5' | '--space-0-75' | '--space-1-5' | '--space-2-5' | '--tap-target' | '--tap-target-min' | '--safe-area-top' | '--safe-area-right' | '--safe-area-bottom' | '--safe-area-left' | '--mono' | '--sans' | '--dot-font' | '--display' | '--display-weight' | '--display-weight-strong' | '--text-2xs' | '--text-xs' | '--text-sm' | '--text-base' | '--text-lg' | '--text-xl' | '--tracking-wide' | '--tracking-wider' | '--ease-standard' | '--ease-spring' | '--ease-out' | '--duration-fast' | '--duration-base' | '--duration-slow' | '--dot-size' | '--dot-gap' | '--z-base' | '--z-raised' | '--z-sticky' | '--z-overlay' | '--z-popover' | '--z-toast' | '--z-canvas' | '--z-chrome' | '--z-panel' | '--z-modal' | '--z-menu' | '--z-tooltip' | '--z-navigation' | '--ui-zoom' | '--ui-px' | '--hairline' | '--focus-ring-width' | '--focus-ring-offset' | '--accent-1' | '--accent-2' | '--accent-3' | '--accent-4' | '--accent-5' | '--accent-6' | '--surface-1' | '--surface-2' | '--surface-3' | '--surface-4' | '--surface-5' | '--surface-6' | '--bronto-color-bg' | '--bronto-color-surface' | '--bronto-color-surface-raised' | '--bronto-color-border' | '--bronto-color-border-strong' | '--bronto-color-text' | '--bronto-color-text-muted' | '--bronto-color-action' | '--bronto-color-on-action' | '--bronto-color-focus' | '--bronto-color-success' | '--bronto-color-warning' | '--bronto-color-danger' | '--bronto-color-info' | '--surface' | '--surface-raised' | '--surface-muted' | '--border' | '--border-strong';
7
7
  export type LightTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-ramp-end' | '--accent-strong' | '--accent-text' | '--on-accent' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--danger' | '--danger-soft' | '--info' | '--info-soft' | '--code-bg' | '--button-text' | '--field-dot' | '--field-dot-hot' | '--field-dot-accent' | '--focus-ring' | '--shadow' | '--shadow-raised';
8
8
  export type DarkTokenName = '--bg' | '--bg-elevated' | '--bg-accent' | '--panel' | '--panel-strong' | '--panel-soft' | '--line' | '--line-strong' | '--text' | '--text-soft' | '--text-dim' | '--accent' | '--accent-ramp-end' | '--accent-strong' | '--accent-text' | '--on-accent' | '--accent-soft' | '--success' | '--success-soft' | '--warning' | '--warning-soft' | '--danger' | '--danger-soft' | '--info' | '--info-soft' | '--code-bg' | '--button-text' | '--field-dot' | '--field-dot-hot' | '--field-dot-accent' | '--focus-ring' | '--shadow' | '--shadow-raised';
9
9
 
@@ -14,7 +14,7 @@ export declare const cssVars: {
14
14
  dark: Record<DarkTokenName, string>;
15
15
  };
16
16
 
17
- export type ScaleKey = 'radius-xl' | 'radius-lg' | 'radius-md' | 'radius-sm' | 'radius-pill' | 'space-2xs' | 'space-xs' | 'space-sm' | 'space-md' | 'space-lg' | 'space-xl' | 'space-2xl' | 'tap-target' | 'tap-target-min' | 'safe-area-top' | 'safe-area-right' | 'safe-area-bottom' | 'safe-area-left' | 'mono' | 'sans' | 'dot-font' | 'display' | 'display-weight' | 'display-weight-strong' | 'text-2xs' | 'text-xs' | 'text-sm' | 'text-base' | 'text-lg' | 'text-xl' | 'tracking-wide' | 'tracking-wider' | 'ease-standard' | 'ease-spring' | 'ease-out' | 'duration-fast' | 'duration-base' | 'duration-slow' | 'dot-size' | 'dot-gap' | 'z-base' | 'z-raised' | 'z-sticky' | 'z-overlay' | 'z-popover' | 'z-toast' | 'accent-1' | 'accent-2' | 'accent-3' | 'accent-4' | 'accent-5' | 'accent-6' | 'surface-1' | 'surface-2' | 'surface-3' | 'surface-4' | 'surface-5' | 'surface-6' | 'bronto-color-bg' | 'bronto-color-surface' | 'bronto-color-surface-raised' | 'bronto-color-border' | 'bronto-color-border-strong' | 'bronto-color-text' | 'bronto-color-text-muted' | 'bronto-color-action' | 'bronto-color-on-action' | 'bronto-color-focus' | 'bronto-color-success' | 'bronto-color-warning' | 'bronto-color-danger' | 'bronto-color-info' | 'surface' | 'surface-raised' | 'surface-muted' | 'border' | 'border-strong';
17
+ export type ScaleKey = 'radius-xl' | 'radius-lg' | 'radius-md' | 'radius-sm' | 'radius-pill' | 'space-2xs' | 'space-xs' | 'space-sm' | 'space-md' | 'space-lg' | 'space-xl' | 'space-2xl' | 'space-0-5' | 'space-0-75' | 'space-1-5' | 'space-2-5' | 'tap-target' | 'tap-target-min' | 'safe-area-top' | 'safe-area-right' | 'safe-area-bottom' | 'safe-area-left' | 'mono' | 'sans' | 'dot-font' | 'display' | 'display-weight' | 'display-weight-strong' | 'text-2xs' | 'text-xs' | 'text-sm' | 'text-base' | 'text-lg' | 'text-xl' | 'tracking-wide' | 'tracking-wider' | 'ease-standard' | 'ease-spring' | 'ease-out' | 'duration-fast' | 'duration-base' | 'duration-slow' | 'dot-size' | 'dot-gap' | 'z-base' | 'z-raised' | 'z-sticky' | 'z-overlay' | 'z-popover' | 'z-toast' | 'z-canvas' | 'z-chrome' | 'z-panel' | 'z-modal' | 'z-menu' | 'z-tooltip' | 'z-navigation' | 'ui-zoom' | 'ui-px' | 'hairline' | 'focus-ring-width' | 'focus-ring-offset' | 'accent-1' | 'accent-2' | 'accent-3' | 'accent-4' | 'accent-5' | 'accent-6' | 'surface-1' | 'surface-2' | 'surface-3' | 'surface-4' | 'surface-5' | 'surface-6' | 'bronto-color-bg' | 'bronto-color-surface' | 'bronto-color-surface-raised' | 'bronto-color-border' | 'bronto-color-border-strong' | 'bronto-color-text' | 'bronto-color-text-muted' | 'bronto-color-action' | 'bronto-color-on-action' | 'bronto-color-focus' | 'bronto-color-success' | 'bronto-color-warning' | 'bronto-color-danger' | 'bronto-color-info' | 'surface' | 'surface-raised' | 'surface-muted' | 'border' | 'border-strong';
18
18
  export type ColorKey = 'bg' | 'bg-elevated' | 'bg-accent' | 'panel' | 'panel-strong' | 'panel-soft' | 'line' | 'line-strong' | 'text' | 'text-soft' | 'text-dim' | 'accent' | 'accent-ramp-end' | 'accent-strong' | 'accent-text' | 'on-accent' | 'accent-soft' | 'success' | 'success-soft' | 'warning' | 'warning-soft' | 'danger' | 'danger-soft' | 'info' | 'info-soft' | 'code-bg' | 'button-text' | 'field-dot' | 'field-dot-hot' | 'field-dot-accent' | 'focus-ring' | 'shadow' | 'shadow-raised';
19
19
 
20
20
  /** Ergonomic view derived from {@link cssVars} (`--` prefix stripped). */