@epilot/volt-ui-experimental-griffel 0.2.3 → 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 (79) hide show
  1. package/ADOPTING.md +416 -0
  2. package/README.md +32 -31
  3. package/dist/components/alert-dialog/alert-dialog.js +61 -59
  4. package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
  5. package/dist/components/avatar/avatar.js +6 -6
  6. package/dist/components/avatar/avatar.js.map +1 -1
  7. package/dist/components/badge/badge.js +47 -39
  8. package/dist/components/badge/badge.js.map +1 -1
  9. package/dist/components/button/button.js +71 -68
  10. package/dist/components/button/button.js.map +1 -1
  11. package/dist/components/checkbox/checkbox.js +23 -20
  12. package/dist/components/checkbox/checkbox.js.map +1 -1
  13. package/dist/components/command/command.js +50 -35
  14. package/dist/components/command/command.js.map +1 -1
  15. package/dist/components/data-table/data-table.js +89 -88
  16. package/dist/components/data-table/data-table.js.map +1 -1
  17. package/dist/components/density-provider/density-provider.js +28 -0
  18. package/dist/components/density-provider/density-provider.js.map +1 -0
  19. package/dist/components/dialog/dialog.js +122 -100
  20. package/dist/components/dialog/dialog.js.map +1 -1
  21. package/dist/components/drawer/drawer.js +61 -59
  22. package/dist/components/drawer/drawer.js.map +1 -1
  23. package/dist/components/dropdown-menu/dropdown-menu.js +88 -85
  24. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  25. package/dist/components/field/field-combobox.js +121 -106
  26. package/dist/components/field/field-combobox.js.map +1 -1
  27. package/dist/components/field/field.js +105 -104
  28. package/dist/components/field/field.js.map +1 -1
  29. package/dist/components/list/list.js +282 -308
  30. package/dist/components/list/list.js.map +1 -1
  31. package/dist/components/pill/pill.js +58 -56
  32. package/dist/components/pill/pill.js.map +1 -1
  33. package/dist/components/popover/popover.js +47 -38
  34. package/dist/components/popover/popover.js.map +1 -1
  35. package/dist/components/radio/radio.js +21 -18
  36. package/dist/components/radio/radio.js.map +1 -1
  37. package/dist/components/select/select.js +185 -156
  38. package/dist/components/select/select.js.map +1 -1
  39. package/dist/components/skeleton/skeleton.js +2 -2
  40. package/dist/components/skeleton/skeleton.js.map +1 -1
  41. package/dist/components/switch/switch.js +34 -29
  42. package/dist/components/switch/switch.js.map +1 -1
  43. package/dist/components/table/table-pagination.js +92 -90
  44. package/dist/components/table/table-pagination.js.map +1 -1
  45. package/dist/components/table/table.js +109 -121
  46. package/dist/components/table/table.js.map +1 -1
  47. package/dist/components/toggle/toggle.js +29 -29
  48. package/dist/components/toggle/toggle.js.map +1 -1
  49. package/dist/components/tooltip/tooltip.js +36 -34
  50. package/dist/components/tooltip/tooltip.js.map +1 -1
  51. package/dist/index.d.ts +600 -427
  52. package/dist/index.js +215 -212
  53. package/dist/index.js.map +1 -1
  54. package/dist/packages/volt-runtime/dist/sheet.js +27 -10
  55. package/dist/packages/volt-runtime/dist/sheet.js.map +1 -1
  56. package/dist/packages/volt-runtime/dist/styles/recipe.js +76 -0
  57. package/dist/packages/volt-runtime/dist/styles/recipe.js.map +1 -0
  58. package/dist/styles/document-context.js +12 -0
  59. package/dist/styles/document-context.js.map +1 -0
  60. package/dist/styles/make-styles.js +18 -10
  61. package/dist/styles/make-styles.js.map +1 -1
  62. package/dist/tokens/core.generated.js +1238 -1166
  63. package/dist/tokens/core.generated.js.map +1 -1
  64. package/dist/tokens/index.d.ts +442 -415
  65. package/dist/tokens/index.js +1105 -1078
  66. package/dist/tokens/index.js.map +1 -1
  67. package/dist/tokens/install.js +9 -5
  68. package/dist/tokens/install.js.map +1 -1
  69. package/dist/tokens/use-palette-tokens.js +20 -0
  70. package/dist/tokens/use-palette-tokens.js.map +1 -0
  71. package/dist/tokens.json +83 -2
  72. package/package.json +13 -5
  73. package/scripts/migration-diagnostics-core.mjs +859 -0
  74. package/scripts/migration-diagnostics.mjs +353 -0
  75. package/scripts/migration-sweep.mjs +179 -0
  76. package/AGENTS.md +0 -153
  77. package/AUTHORING.md +0 -292
  78. package/dist/packages/volt-runtime/dist/styles/make-styles.js +0 -22
  79. package/dist/packages/volt-runtime/dist/styles/make-styles.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sources":["../../src/tokens/install.ts"],"sourcesContent":["import { ensureSheet, __resetInstalledSheets } from \"@epilot/volt-ui-runtime\"\nimport { CSS as CORE_CSS, SHEET_HASH as CORE_HASH } from \"./core.generated\"\nimport {\n CSS as PALETTE_CSS,\n SHEET_HASH as PALETTE_HASH,\n} from \"./palette.generated\"\n\n/**\n * Token sheet delivery.\n *\n * Each sheet is keyed by the hash of its own CONTENT, so N copies of the same version insert it\n * once, and two builds with different token values coexist as two sheets. Crucially, the values\n * cannot fight: property NAMES carry a value-derived namespace segment, so different values mean\n * different names. That is what lets both sheets sit on `:root` — the PoC originally salted only\n * the CLASS namespace and measured exactly this defect, with two divergent builds rendering the\n * same colour and the winner decided by MFE load order.\n *\n * Two sheets rather than one, per DECISIONS.md D5. Core carries the semantic layer for the intent\n * families plus the owned scale; palette carries the decorative families, which are reachable only\n * through a consumer-facing `color` prop. `ensurePalette()` is called by the components that expose\n * one, so a consumer using only Dialog, Field and Tooltip never ships or inserts it.\n *\n * The PoC also modelled a `host` delivery variant — root-config ships the sheet, like today's\n * singleton `style.css` link. Not carried: it reintroduces the failure this architecture exists to\n * remove (a missing or stale host sheet unstyles every v2 MFE at once) and it requires a breaking\n * host change deployed ahead of the package.\n *\n * Note what did NOT move when the engine did. `ensureSheet` is the runtime's, because placement is\n * anchor-relative and the anchor is shared. The CSS below is this package's, because it is exactly\n * the thing that must differ between two co-resident versions. That is the same line the `host`\n * variant above got wrong, drawn one level further in.\n */\n\n/** Test-only: forget what this module thinks it has installed. */\nexport function __resetTokensForTests(): void {\n __resetInstalledSheets()\n}\n\nexport function ensureCoreTokens(doc: Document = document): boolean {\n return ensureSheet(doc, CORE_HASH, CORE_CSS)\n}\n\n/**\n * Called by components that accept a `color` prop, since a decorative family can arrive from a\n * runtime expression the build cannot see — `getColorForEntityLabel(label)` and\n * `WCAG_BADGE_MAP[level].color` both exist in consumer code today.\n */\nexport function ensurePaletteTokens(doc: Document = document): boolean {\n return ensureSheet(doc, PALETTE_HASH, PALETTE_CSS)\n}\n\n/**\n * The families the CORE sheet declares. Everything else is decorative and lives in the palette\n * sheet. `core-families.test.ts` asserts this list against the generated sheets in both directions, so a\n * family moving between them cannot silently invalidate the check below.\n */\nconst CORE_FAMILIES = new Set([\n \"accent\",\n \"gray\",\n \"error\",\n \"info\",\n \"success\",\n \"warning\",\n])\n\n/**\n * Install the palette sheet only if this family actually needs it.\n *\n * The unconditional call was measured as the single most expensive thing a `color`-prop component\n * does: the palette sheet is 63,689 B of CSS, and a differential build put `Pill`'s marginal cost at\n * 69,087 B raw against `Button`'s 6,330 B. The flows pilot separately measured 69,787 B of runtime\n * token CSS in the document for a two-component consumer, 18× the 3,814 B of actual atoms.\n *\n * Passing the resolved family keeps the correctness the unconditional call was protecting. The\n * hazard it guarded against is a family arriving from an expression the BUILD cannot see; by render\n * time the value is in hand, so a dynamic `getColorForEntityLabel(label)` that returns `teal` still\n * installs the sheet before paint. What goes away is installing it for `accent` or `gray`.\n *\n * This does NOT reduce bundle size. `ensurePaletteTokens` stays referenced, so the sheet is still\n * emitted into any chunk that contains one of these components — cutting that needs build-time\n * knowledge of which families a consumer uses, which the package cannot have. See DECISIONS D14.\n */\nexport function ensurePaletteTokensFor(\n family: string,\n doc: Document = document\n): boolean {\n if (CORE_FAMILIES.has(family)) return false\n\n return ensurePaletteTokens(doc)\n}\n\nexport const TOKEN_SHEET_HASHES = {\n core: CORE_HASH,\n palette: PALETTE_HASH,\n} as const\n"],"names":["ensureCoreTokens","doc","ensureSheet","CORE_HASH","CORE_CSS","ensurePaletteTokens","PALETTE_HASH","PALETTE_CSS","CORE_FAMILIES","ensurePaletteTokensFor","family"],"mappings":";;;AAsCO,SAASA,EAAiBC,IAAgB,UAAmB;AAClE,SAAOC,EAAYD,GAAKE,GAAWC,CAAQ;AAC7C;AAOO,SAASC,EAAoBJ,IAAgB,UAAmB;AACrE,SAAOC,EAAYD,GAAKK,GAAcC,CAAW;AACnD;AAOA,MAAMC,wBAAoB,IAAI;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAmBM,SAASC,EACdC,GACAT,IAAgB,UACP;AACT,SAAIO,EAAc,IAAIE,CAAM,IAAU,KAE/BL,EAAoBJ,CAAG;AAChC;"}
1
+ {"version":3,"file":"install.js","sources":["../../src/tokens/install.ts"],"sourcesContent":["import { ensureSheet, __resetInstalledSheets } from \"@epilot/volt-ui-runtime\"\nimport { CSS as CORE_CSS, SHEET_HASH as CORE_HASH } from \"./core.generated\"\nimport {\n CSS as PALETTE_CSS,\n SHEET_HASH as PALETTE_HASH,\n} from \"./palette.generated\"\n\n/**\n * Token sheet delivery.\n *\n * Each sheet is keyed by the hash of its own CONTENT, so N copies of the same version insert it\n * once, and two builds with different token values coexist as two sheets. Crucially, the values\n * cannot fight: property NAMES carry a value-derived namespace segment, so different values mean\n * different names. That is what lets both sheets sit on `:root` — the PoC originally salted only\n * the CLASS namespace and measured exactly this defect, with two divergent builds rendering the\n * same colour and the winner decided by MFE load order.\n *\n * Two sheets rather than one, per DECISIONS.md D5. Core carries the semantic layer for the intent\n * families plus the owned scale; palette carries the decorative families, which are reachable only\n * through a consumer-facing `color` prop. `ensurePalette()` is called by the components that expose\n * one, so a consumer using only Dialog, Field and Tooltip never ships or inserts it.\n *\n * The PoC also modelled a `host` delivery variant — root-config ships the sheet, like today's\n * singleton `style.css` link. Not carried: it reintroduces the failure this architecture exists to\n * remove (a missing or stale host sheet unstyles every v2 MFE at once) and it requires a breaking\n * host change deployed ahead of the package.\n *\n * Note what did NOT move when the engine did. `ensureSheet` is the runtime's, because placement is\n * anchor-relative and the anchor is shared. The CSS below is this package's, because it is exactly\n * the thing that must differ between two co-resident versions. That is the same line the `host`\n * variant above got wrong, drawn one level further in.\n */\n\n/** Test-only: forget what this module thinks it has installed. */\nexport function __resetTokensForTests(): void {\n __resetInstalledSheets()\n}\n\nexport function ensureCoreTokens(doc: Document = document): boolean {\n return ensureSheet(doc, CORE_HASH, CORE_CSS)\n}\n\n/**\n * Called by components that accept a `color` prop, since a decorative family can arrive from a\n * runtime expression the build cannot see — `getColorForEntityLabel(label)` and\n * `WCAG_BADGE_MAP[level].color` both exist in consumer code today.\n */\nexport function ensurePaletteTokens(doc: Document = document): boolean {\n return ensureSheet(doc, PALETTE_HASH, PALETTE_CSS)\n}\n\n/**\n * The families the CORE sheet declares. Everything else is decorative and lives in the palette\n * sheet. `core-families.test.ts` asserts this list against the generated sheets in both directions, so a\n * family moving between them cannot silently invalidate the check below.\n */\nconst CORE_FAMILIES = new Set([\n \"accent\",\n \"gray\",\n \"error\",\n \"info\",\n \"success\",\n \"warning\",\n])\n\n/**\n * The single source of truth for \"which sheet does this family live in\", exported so a consumer's\n * OWN namespace-string interpolation (Badge, Pill) can ask the same question\n * `ensurePaletteTokensFor` answers below, instead of hand-picking a namespace and silently\n * disagreeing with it. That silent disagreement is exactly the shape of the bug this predicate\n * closes: `ensurePaletteTokensFor` correctly installed the palette sheet for a decorative family,\n * while the component's own `var(--volt2-<NS>-sem-<family>-<slot>)` string kept using the CORE\n * namespace regardless — so the sheet the family needed was present, and the property the\n * component actually referenced still didn't exist. See BADGE-NAMESPACE-TRIAGE.md.\n *\n * `CORE_FAMILIES` itself stays private — this predicate is the only way to read it, so nothing\n * outside this module can mutate the classification. Not re-exported from `src/index.ts` or the\n * generated `tokens/index.ts`: it is package-internal, imported the same way\n * `ensurePaletteTokensFor` already is (`\"../../tokens/install\"`), not part of the public API.\n */\nexport function isCoreFamily(family: string): boolean {\n return CORE_FAMILIES.has(family)\n}\n\n/**\n * Install the palette sheet only if this family actually needs it.\n *\n * The unconditional call was measured as the single most expensive thing a `color`-prop component\n * does: the palette sheet is 63,689 B of CSS, and a differential build put `Pill`'s marginal cost at\n * 69,087 B raw against `Button`'s 6,330 B. The flows pilot separately measured 69,787 B of runtime\n * token CSS in the document for a two-component consumer, 18× the 3,814 B of actual atoms.\n *\n * Passing the resolved family keeps the correctness the unconditional call was protecting. The\n * hazard it guarded against is a family arriving from an expression the BUILD cannot see; by render\n * time the value is in hand, so a dynamic `getColorForEntityLabel(label)` that returns `teal` still\n * installs the sheet before paint. What goes away is installing it for `accent` or `gray`.\n *\n * This does NOT reduce bundle size. `ensurePaletteTokens` stays referenced, so the sheet is still\n * emitted into any chunk that contains one of these components — cutting that needs build-time\n * knowledge of which families a consumer uses, which the package cannot have. See DECISIONS D14.\n */\nexport function ensurePaletteTokensFor(\n family: string,\n doc: Document = document\n): boolean {\n if (isCoreFamily(family)) return false\n\n return ensurePaletteTokens(doc)\n}\n\nexport const TOKEN_SHEET_HASHES = {\n core: CORE_HASH,\n palette: PALETTE_HASH,\n} as const\n"],"names":["ensureCoreTokens","doc","ensureSheet","CORE_HASH","CORE_CSS","ensurePaletteTokens","PALETTE_HASH","PALETTE_CSS","CORE_FAMILIES","isCoreFamily","family","ensurePaletteTokensFor"],"mappings":";;;AAsCO,SAASA,EAAiBC,IAAgB,UAAmB;AAClE,SAAOC,EAAYD,GAAKE,GAAWC,CAAQ;AAC7C;AAOO,SAASC,EAAoBJ,IAAgB,UAAmB;AACrE,SAAOC,EAAYD,GAAKK,GAAcC,CAAW;AACnD;AAOA,MAAMC,wBAAoB,IAAI;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAiBM,SAASC,EAAaC,GAAyB;AACpD,SAAOF,EAAc,IAAIE,CAAM;AACjC;AAmBO,SAASC,EACdD,GACAT,IAAgB,UACP;AACT,SAAIQ,EAAaC,CAAM,IAAU,KAE1BL,EAAoBJ,CAAG;AAChC;"}
@@ -0,0 +1,20 @@
1
+ import * as o from "react";
2
+ import { ensurePaletteTokensFor as r, ensurePaletteTokens as s } from "./install.js";
3
+ import { useVoltTargetDocument as n } from "../styles/document-context.js";
4
+ function c(t) {
5
+ const e = n();
6
+ o.useInsertionEffect(() => {
7
+ e && r(t, e);
8
+ });
9
+ }
10
+ function i(t) {
11
+ const e = n();
12
+ o.useInsertionEffect(() => {
13
+ !e || !t || s(e);
14
+ });
15
+ }
16
+ export {
17
+ c as useVoltPaletteTokensFor,
18
+ i as useVoltPaletteTokensWhen
19
+ };
20
+ //# sourceMappingURL=use-palette-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-palette-tokens.js","sources":["../../src/tokens/use-palette-tokens.ts"],"sourcesContent":["import * as React from \"react\"\n\nimport { ensurePaletteTokensFor, ensurePaletteTokens } from \"./install\"\nimport { useVoltTargetDocument } from \"../styles/document-context\"\n\n/**\n * Commit-phase replacement for a bare `ensurePaletteTokensFor(family)` call in a component's render\n * body (Avatar/Badge/Pill). The hook itself is called unconditionally, every render, preserving\n * hook order; `family` — the RESOLVED value, computed during render exactly as before — is closed\n * over by the effect. There is deliberately NO dependency array (not `[doc, family]`): the effect\n * runs after every commit regardless of whether `doc`/`family` changed since the last one, matching\n * the pre-WP2B2 render-phase behavior of calling this fresh on every render.\n *\n * Running on every commit, rather than being gated to fire only when something changed, is what\n * lets the PALETTE token sheet specifically get restored on the next commit if removed externally,\n * with unchanged props — the WP2A restoration guarantee, extended here to the palette sheet. This\n * does not extend to an arbitrary Griffel atom bucket rule removed out from under a component;\n * `ensurePaletteTokensFor` only knows how to reconcile the ONE sheet it owns.\n */\nexport function useVoltPaletteTokensFor(family: string): void {\n const doc = useVoltTargetDocument()\n React.useInsertionEffect(() => {\n if (!doc) return\n ensurePaletteTokensFor(family, doc)\n })\n}\n\n/**\n * Commit-phase replacement for Skeleton's `if (variant === \"ai\") ensurePaletteTokens()`. The hook is\n * still called unconditionally — the boolean requirement is computed during render (`variant ===\n * \"ai\"`) and the branch lives INSIDE the effect, never around the hook call itself.\n */\nexport function useVoltPaletteTokensWhen(required: boolean): void {\n const doc = useVoltTargetDocument()\n React.useInsertionEffect(() => {\n if (!doc || !required) return\n ensurePaletteTokens(doc)\n })\n}\n"],"names":["useVoltPaletteTokensFor","family","doc","useVoltTargetDocument","React","ensurePaletteTokensFor","useVoltPaletteTokensWhen","required","ensurePaletteTokens"],"mappings":";;;AAmBO,SAASA,EAAwBC,GAAsB;AAC5D,QAAMC,IAAMC,EAAA;AACZ,EAAAC,EAAM,mBAAmB,MAAM;AAC7B,IAAKF,KACLG,EAAuBJ,GAAQC,CAAG;AAAA,EACpC,CAAC;AACH;AAOO,SAASI,EAAyBC,GAAyB;AAChE,QAAML,IAAMC,EAAA;AACZ,EAAAC,EAAM,mBAAmB,MAAM;AAC7B,IAAI,CAACF,KAAO,CAACK,KACbC,EAAoBN,CAAG;AAAA,EACzB,CAAC;AACH;"}
package/dist/tokens.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "$comment": "GENERATED. Design token values for consumers that do not render this package's React components. Compile these into your own CSS under your own names at your own build time; do not reference this package's runtime custom properties, whose names are content-hashed and change with their values.",
2
+ "$comment": "GENERATED. Design token values for consumers that do not render this package's React components. Compile these into your own CSS under your own names at your own build time; do not reference this package's runtime custom properties, whose names are content-hashed and change with their values. `themes.light`/`themes.dark` are mode-resolved; `densities.compact`/`densities.normal`/`densities.comfortable` resolve the component layer's geometry tokens (WP9A-ACCEPTANCE-WP9B1) and carry no mode of their own — do not read a value out of `themes` for a key that only exists under `densities`, or the reverse. This file is copied verbatim to this package's public `tokens.json` export (`package.json`'s `build` script, `cp src/tokens/values.generated.json dist/tokens.json`).",
3
3
  "package": "@epilot/volt-ui-experimental-griffel",
4
- "version": "0.2.3",
4
+ "version": "0.3.1",
5
5
  "themes": {
6
6
  "light": {
7
7
  "accent-1": "#fcfdfe",
@@ -924,13 +924,21 @@
924
924
  "sky-indicator": "#7ce2fe",
925
925
  "sky-surface": "#eef9fdcc",
926
926
  "sky-track": "#7ce2fe",
927
+ "spacing-element-0-5": "0.125rem",
927
928
  "spacing-element-1": "0.25rem",
929
+ "spacing-element-1-5": "0.375rem",
928
930
  "spacing-element-2": "0.5rem",
931
+ "spacing-element-2-5": "0.625rem",
929
932
  "spacing-element-3": "0.75rem",
930
933
  "spacing-group-1": "0.5rem",
931
934
  "spacing-group-2": "1rem",
935
+ "spacing-layout-0-5": "1.25rem",
932
936
  "spacing-layout-1": "1.5rem",
937
+ "spacing-layout-1-5": "1.75rem",
933
938
  "spacing-layout-2": "2rem",
939
+ "spacing-layout-2-5": "2.25rem",
940
+ "spacing-layout-3": "2.5rem",
941
+ "spacing-layout-4": "3rem",
934
942
  "spacing-none": "0px",
935
943
  "success-1": "#fbfefc",
936
944
  "success-10": "#2b9a66",
@@ -1999,13 +2007,21 @@
1999
2007
  "sky-indicator": "#7ce2fe",
2000
2008
  "sky-surface": "#13233b80",
2001
2009
  "sky-track": "#7ce2fe",
2010
+ "spacing-element-0-5": "0.125rem",
2002
2011
  "spacing-element-1": "0.25rem",
2012
+ "spacing-element-1-5": "0.375rem",
2003
2013
  "spacing-element-2": "0.5rem",
2014
+ "spacing-element-2-5": "0.625rem",
2004
2015
  "spacing-element-3": "0.75rem",
2005
2016
  "spacing-group-1": "0.5rem",
2006
2017
  "spacing-group-2": "1rem",
2018
+ "spacing-layout-0-5": "1.25rem",
2007
2019
  "spacing-layout-1": "1.5rem",
2020
+ "spacing-layout-1-5": "1.75rem",
2008
2021
  "spacing-layout-2": "2rem",
2022
+ "spacing-layout-2-5": "2.25rem",
2023
+ "spacing-layout-3": "2.5rem",
2024
+ "spacing-layout-4": "3rem",
2009
2025
  "spacing-none": "0px",
2010
2026
  "success-1": "#0e1512",
2011
2027
  "success-10": "#33b074",
@@ -2153,5 +2169,70 @@
2153
2169
  "yellow-surface": "#231f1380",
2154
2170
  "yellow-track": "#ffe629"
2155
2171
  }
2172
+ },
2173
+ "densities": {
2174
+ "compact": {
2175
+ "button-base-min-height": "2rem",
2176
+ "button-base-padding-inline": "0.75rem",
2177
+ "button-icon-size": "1.75rem",
2178
+ "field-input-height": "1.25rem",
2179
+ "field-padding-x": "0.5rem",
2180
+ "field-padding-y": "0.25rem",
2181
+ "field-set-gap": "1.5rem",
2182
+ "list-index-min-width": "1.5rem",
2183
+ "list-index-padding-x": "0.375rem",
2184
+ "list-item-gap": "0.5rem",
2185
+ "list-item-min-height": "2rem",
2186
+ "list-item-padding-x": "0.5rem",
2187
+ "list-item-padding-y": "0.25rem",
2188
+ "select-content-gap": "0.125rem",
2189
+ "select-content-padding": "0.25rem",
2190
+ "select-item-padding-left": "0.25rem",
2191
+ "select-item-padding-y": "0.25rem",
2192
+ "table-cell-padding-y": "0.375rem",
2193
+ "table-head-height": "2rem"
2194
+ },
2195
+ "normal": {
2196
+ "button-base-min-height": "2rem",
2197
+ "button-base-padding-inline": "1rem",
2198
+ "button-icon-size": "2rem",
2199
+ "field-input-height": "1.5rem",
2200
+ "field-padding-x": "0.75rem",
2201
+ "field-padding-y": "0.5rem",
2202
+ "field-set-gap": "2rem",
2203
+ "list-index-min-width": "1.75rem",
2204
+ "list-index-padding-x": "0.5rem",
2205
+ "list-item-gap": "0.75rem",
2206
+ "list-item-min-height": "2.5rem",
2207
+ "list-item-padding-x": "0.75rem",
2208
+ "list-item-padding-y": "0.5rem",
2209
+ "select-content-gap": "0.25rem",
2210
+ "select-content-padding": "0.5rem",
2211
+ "select-item-padding-left": "0.5rem",
2212
+ "select-item-padding-y": "0.375rem",
2213
+ "table-cell-padding-y": "0.5rem",
2214
+ "table-head-height": "2.25rem"
2215
+ },
2216
+ "comfortable": {
2217
+ "button-base-min-height": "2.5rem",
2218
+ "button-base-padding-inline": "1.25rem",
2219
+ "button-icon-size": "2.5rem",
2220
+ "field-input-height": "1.75rem",
2221
+ "field-padding-x": "1rem",
2222
+ "field-padding-y": "0.75rem",
2223
+ "field-set-gap": "2.5rem",
2224
+ "list-index-min-width": "2rem",
2225
+ "list-index-padding-x": "0.5rem",
2226
+ "list-item-gap": "1rem",
2227
+ "list-item-min-height": "3rem",
2228
+ "list-item-padding-x": "1rem",
2229
+ "list-item-padding-y": "0.75rem",
2230
+ "select-content-gap": "0.375rem",
2231
+ "select-content-padding": "0.75rem",
2232
+ "select-item-padding-left": "0.75rem",
2233
+ "select-item-padding-y": "0.625rem",
2234
+ "table-cell-padding-y": "0.75rem",
2235
+ "table-head-height": "2.5rem"
2236
+ }
2156
2237
  }
2157
2238
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/volt-ui-experimental-griffel",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Experimental Volt UI rebuild: Radix primitives styled with Griffel, bundled per micro-frontend instead of shared as a singleton",
5
5
  "type": "module",
6
6
  "repository": {
@@ -30,8 +30,10 @@
30
30
  "tokens.js",
31
31
  "tokens.d.ts",
32
32
  "README.md",
33
- "AGENTS.md",
34
- "AUTHORING.md"
33
+ "ADOPTING.md",
34
+ "scripts/migration-sweep.mjs",
35
+ "scripts/migration-diagnostics.mjs",
36
+ "scripts/migration-diagnostics-core.mjs"
35
37
  ],
36
38
  "sideEffects": false,
37
39
  "publishConfig": {
@@ -48,15 +50,21 @@
48
50
  "gate:griffel-contract": "bun --filter @epilot/volt-ui-runtime test",
49
51
  "gate:isolation": "node gates/isolation.mjs",
50
52
  "gate:cascade": "node gates/cascade-conformance/build-and-run.mjs",
53
+ "gate:lifecycle-commit-phase": "node gates/lifecycle-commit-phase/build-and-run.mjs",
51
54
  "gate:vr": "bun vr/run.mjs",
52
55
  "release": "npm publish --tag experiment",
53
56
  "gate:token-value-skew": "node gates/token-value-skew/run.mjs",
54
57
  "gate:class-salt-skew": "node gates/class-salt-skew/run.mjs",
55
- "gates": "bun run gate:vr && bun run gate:isolation && bun run gate:token-value-skew && bun run gate:class-salt-skew && bun run gate:cascade && bun run gate:griffel-contract && bun run gate:dts-self-contained",
58
+ "gate:a11y": "node scripts/a11y-browser-check.mjs",
59
+ "gate:palette-namespace": "node scripts/palette-namespace-check.mjs",
60
+ "gates": "bun run gate:vr && bun run gate:isolation && bun run gate:token-value-skew && bun run gate:class-salt-skew && bun run gate:cascade && bun run gate:lifecycle-commit-phase && bun run gate:griffel-contract && bun run gate:dts-self-contained && bun run gate:a11y && bun run gate:palette-namespace",
56
61
  "measure:coresidency": "bun scripts/pilot-coresidency.mjs",
57
62
  "migration:sweep": "bun scripts/migration-sweep.mjs",
63
+ "test:migration-sweep": "bun test scripts/migration-diagnostics.test.mjs scripts/migration-diagnostics-core.test.mjs scripts/migration-sweep-packed-cli.test.mjs scripts/build-diagnostic-identity.test.mjs",
58
64
  "gate:one-bare-specifier": "node gates/one-bare-specifier.mjs",
59
- "gate:dts-self-contained": "node gates/dts-self-contained.mjs"
65
+ "gate:dts-self-contained": "node gates/dts-self-contained.mjs",
66
+ "verify:release": "bun ../../scripts/verify-release.ts",
67
+ "verify:consumer": "bun ../../scripts/verify-packed-consumer.ts"
60
68
  },
61
69
  "peerDependencies": {
62
70
  "react": ">=18",