@assure-one/design-system 1.31.0 → 1.33.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.
- package/README.md +61 -6
- package/codemods/0.2.0-radix-migration.mjs +315 -0
- package/codemods/README.md +365 -0
- package/codemods/lib/css-selectors.mjs +33 -0
- package/codemods/lib/css-values.mjs +223 -0
- package/codemods/lib/ds-stylesheet.mjs +168 -0
- package/codemods/lib/environment.mjs +72 -0
- package/codemods/lib/files.mjs +100 -0
- package/codemods/lib/forms.mjs +253 -0
- package/codemods/lib/jsx.mjs +0 -0
- package/codemods/lib/ledger.mjs +84 -0
- package/codemods/lib/registry.mjs +32 -0
- package/codemods/lib/report.mjs +119 -0
- package/codemods/lib/runner.mjs +164 -0
- package/codemods/run.mjs +161 -0
- package/codemods/transforms/cm-14-hidden-mirrors.mjs +275 -0
- package/codemods/transforms/cm-15-dom-selectors.mjs +573 -0
- package/codemods/transforms/cm-16-globals-css.mjs +487 -0
- package/codemods/transforms/cm-20-select-sentinels.mjs +442 -0
- package/dist/css/base.css +60 -0
- package/dist/css/components.css +7 -0
- package/dist/css/legacy-aliases.css +665 -0
- package/dist/css/shadcn.css +155 -0
- package/dist/css/tailwind.css +296 -0
- package/dist/css/tokens.css +630 -0
- package/dist/index.d.ts +807 -27
- package/dist/index.js +2038 -683
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/system-BDU18fVg.d.ts +559 -0
- package/dist/testing/index.cjs +458 -0
- package/dist/testing/index.d.cts +253 -0
- package/dist/testing/index.d.ts +253 -0
- package/dist/testing/index.js +452 -0
- package/dist/testing/setup.cjs +123 -0
- package/dist/testing/setup.js +121 -0
- package/dist/testing/style-stub.cjs +7 -0
- package/dist/testing/style-stub.js +5 -0
- package/dist/tokens/index.d.ts +50 -439
- package/dist/tokens/index.js +557 -50
- package/dist/tokens/index.js.map +1 -1
- package/package.json +74 -5
package/dist/tokens/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tokens/reference.ts","../../src/tokens/system.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Reference tokens — raw palette.\n *\n * Programmatic access for theme switching, Figma sync, design tools, etc.\n * Components should NOT consume these directly; use system tokens (./system.ts)\n * or the CSS variables in ./tokens.css.\n */\n\nexport const colors = {\n /* Surfaces */\n bg: \"#FDFDFC\",\n bg2: \"#F7F7F5\",\n bg3: \"#F0F0ED\",\n surface: \"#FFFFFF\",\n surface2: \"#FAFAF8\",\n\n /* Foreground */\n fg: \"#0A0A0A\",\n fg2: \"#38383B\",\n fg3: \"#6B6B70\",\n fg4: \"#9A9AA0\",\n fg5: \"#C4C4C8\",\n\n /* Rules */\n rule: \"#EAEAE6\",\n ruleSoft: \"#F0F0EC\",\n ruleStrong: \"#DADAD4\",\n\n /* Accent (cyan) */\n accent: \"#0066FF\",\n accent2: \"#0052CC\",\n accentTint: \"#E8F0FF\",\n accentHover: \"#005BE6\",\n accentActive: \"#004FCC\",\n\n /* Pro (purple) */\n proBg: \"#F4F1FF\",\n proBgHover: \"#EEE9FF\",\n proBgActive: \"#E4DDFF\",\n proFg: \"#6C42F8\",\n proHover: \"#5E35F2\",\n proActive: \"#5127E8\",\n proDisabled: \"#B7A7F3\",\n proLine: \"#7B5BD8\",\n\n /* Disabled */\n fgDisabled: \"#A7A7AC\",\n bgDisabled: \"#F3F3F1\",\n\n /* Status */\n successFg: \"#1F7A3D\",\n successBg: \"#EAF6EE\",\n successLine: \"#C5E5CF\",\n warningFg: \"#B45F0A\",\n warningBg: \"#FFF3E5\",\n warningLine: \"#F5D5A8\",\n dangerFg: \"#C43838\",\n dangerBg: \"#FBEAEA\",\n dangerLine: \"#ECC5C5\",\n\n /* On-brand */\n fgOnAccent: \"#FFFFFF\",\n fgOnPro: \"#FFFFFF\",\n} as const;\n\nexport const typography = {\n family: {\n display: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n body: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n mono: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n /* Universal entrance ease — applies to every motion primitive */\n ease: \"cubic-bezier(0.2, 0.8, 0.2, 1)\",\n} as const;\n\nexport const radii = {\n btn: \"7px\",\n input: \"7px\",\n pill: \"5px\",\n card: \"12px\",\n icon: \"4px\",\n full: \"9999px\",\n} as const;\n\nexport const shadows = {\n quiet: \"0 1px 2px rgba(10,10,10,0.03)\",\n card: \"0 12px 28px -16px rgba(10,10,10,0.18), 0 1px 2px rgba(10,10,10,0.04)\",\n pop: \"0 30px 80px -30px rgba(10,10,10,0.18), 0 8px 24px -8px rgba(10,10,10,0.06)\",\n focusRing: \"0 0 0 2px rgba(0, 102, 255, 0.18)\",\n} as const;\n\nexport const overlays = {\n hover: \"rgba(10, 10, 10, 0.03)\",\n active: \"rgba(10, 10, 10, 0.05)\",\n} as const;\n\nexport const layout = {\n shellSidebarWidth: \"256px\",\n shellHeaderHeight: \"56px\",\n contentPad: \"32px\",\n} as const;\n\n/**\n * Spacing — 4px base scale. Components mostly use arbitrary values;\n * this scale is exposed for programmatic access (e.g. design-tool sync).\n */\nexport const spacing = {\n unit: \"4px\",\n 4: \"4px\",\n 8: \"8px\",\n 12: \"12px\",\n 16: \"16px\",\n 20: \"20px\",\n 24: \"24px\",\n 28: \"28px\",\n 32: \"32px\",\n 36: \"36px\",\n 40: \"40px\",\n 64: \"64px\",\n 80: \"80px\",\n 180: \"180px\",\n} as const;\n\n/**\n * Surface palette — the four canonical layers. Mirrors --color-bg / -2 /\n * --color-surface / --color-surface-2.\n */\nexport const surfaces = {\n bg: \"#FDFDFC\",\n bg2: \"#F7F7F5\",\n surface: \"#FFFFFF\",\n surface2: \"#FAFAF8\",\n} as const;\n\nexport const motion = {\n ease: {\n outQuart: \"cubic-bezier(0.2, 0.8, 0.2, 1)\",\n out: \"cubic-bezier(0.16, 1, 0.3, 1)\",\n in: \"cubic-bezier(0.7, 0, 0.84, 0)\",\n inOut: \"cubic-bezier(0.65, 0, 0.35, 1)\",\n },\n duration: {\n instant: \"100ms\",\n fast: \"150ms\",\n normal: \"250ms\",\n slow: \"400ms\",\n },\n} as const;\n\nexport const reference = {\n colors,\n typography,\n radii,\n shadows,\n overlays,\n layout,\n motion,\n spacing,\n surfaces,\n} as const;\n\nexport type ReferenceTokens = typeof reference;\nexport type ColorName = keyof typeof colors;\n","/**\n * System tokens — suite semantic mappings as CSS variable references.\n *\n * Use these from JS (e.g. inline styles, Storybook decorators, motion configs)\n * when you can't use a Tailwind utility class. Component CSS should prefer the\n * generated utilities (`bg-bg`, `text-fg-2`, `border-rule`, `bg-pro-fg`, etc.)\n * which Tailwind 4 emits from `--color-*` tokens declared in ./tokens.css.\n *\n * Themes (.dark) re-map the underlying CSS variables; these references stay valid.\n */\n\nexport const systemTokens = {\n color: {\n /* Surfaces */\n bg: \"var(--color-bg)\",\n bg2: \"var(--color-bg-2)\",\n bg3: \"var(--color-bg-3)\",\n surface: \"var(--color-surface)\",\n surface2: \"var(--color-surface-2)\",\n\n /* Foreground */\n fg: \"var(--color-fg)\",\n fg2: \"var(--color-fg-2)\",\n fg3: \"var(--color-fg-3)\",\n fg4: \"var(--color-fg-4)\",\n fg5: \"var(--color-fg-5)\",\n\n /* Rules */\n rule: \"var(--color-rule)\",\n ruleSoft: \"var(--color-rule-soft)\",\n ruleStrong: \"var(--color-rule-strong)\",\n\n /* Accent (purple) */\n accent: \"var(--color-accent)\",\n accent2: \"var(--color-accent-2)\",\n accentTint: \"var(--color-accent-tint)\",\n accentHover: \"var(--color-accent-hover)\",\n accentActive: \"var(--color-accent-active)\",\n accentRing: \"var(--color-accent-ring)\",\n\n /* Stable cross-product CTA; deliberately independent of [data-brand]. */\n suiteAction: \"var(--color-suite-action)\",\n suiteActionHover: \"var(--color-suite-action-hover)\",\n suiteActionActive: \"var(--color-suite-action-active)\",\n fgOnSuiteAction: \"var(--color-fg-on-suite-action)\",\n\n /* Brand — ambient product family; follows the active [data-brand] scope,\n defaulting to Pro. Prefer these (and the generated bg-brand / text-brand\n / border-brand-line / text-fg-on-brand utilities) for scope-aware chrome\n so the product never appears in a class name. */\n brand: \"var(--color-brand)\",\n brandHover: \"var(--color-brand-hover)\",\n brandActive: \"var(--color-brand-active)\",\n brandDisabled: \"var(--color-brand-disabled)\",\n brandBg: \"var(--color-brand-bg)\",\n brandBgHover: \"var(--color-brand-bg-hover)\",\n brandBgActive: \"var(--color-brand-bg-active)\",\n brandLine: \"var(--color-brand-line)\",\n brandRing: \"var(--color-brand-ring)\",\n fgOnBrand: \"var(--color-fg-on-brand)\",\n\n /* Pro (purple) */\n proBg: \"var(--color-pro-bg)\",\n proBgHover: \"var(--color-pro-bg-hover)\",\n proBgActive: \"var(--color-pro-bg-active)\",\n proFg: \"var(--color-pro-fg)\",\n proHover: \"var(--color-pro-hover)\",\n proActive: \"var(--color-pro-active)\",\n proDisabled: \"var(--color-pro-disabled)\",\n proLine: \"var(--color-pro-line)\",\n proRing: \"var(--color-pro-ring)\",\n auditFg: \"var(--color-audit-fg)\",\n auditHover: \"var(--color-audit-hover)\",\n auditActive: \"var(--color-audit-active)\",\n auditDisabled: \"var(--color-audit-disabled)\",\n auditBg: \"var(--color-audit-bg)\",\n auditBgHover: \"var(--color-audit-bg-hover)\",\n auditBgActive: \"var(--color-audit-bg-active)\",\n auditLine: \"var(--color-audit-line)\",\n auditRing: \"var(--color-audit-ring)\",\n booksFg: \"var(--color-books-fg)\",\n booksHover: \"var(--color-books-hover)\",\n booksActive: \"var(--color-books-active)\",\n booksDisabled: \"var(--color-books-disabled)\",\n booksBg: \"var(--color-books-bg)\",\n booksBgHover: \"var(--color-books-bg-hover)\",\n booksBgActive: \"var(--color-books-bg-active)\",\n booksLine: \"var(--color-books-line)\",\n booksRing: \"var(--color-books-ring)\",\n taxFg: \"var(--color-tax-fg)\",\n taxHover: \"var(--color-tax-hover)\",\n taxActive: \"var(--color-tax-active)\",\n taxDisabled: \"var(--color-tax-disabled)\",\n taxBg: \"var(--color-tax-bg)\",\n taxBgHover: \"var(--color-tax-bg-hover)\",\n taxBgActive: \"var(--color-tax-bg-active)\",\n taxLine: \"var(--color-tax-line)\",\n taxRing: \"var(--color-tax-ring)\",\n\n /* On-brand — text/icon color on a filled brand/product surface */\n fgOnAccent: \"var(--color-fg-on-accent)\",\n fgOnPro: \"var(--color-fg-on-pro)\",\n fgOnAudit: \"var(--color-fg-on-audit)\",\n fgOnBooks: \"var(--color-fg-on-books)\",\n fgOnTax: \"var(--color-fg-on-tax)\",\n\n /* Disabled */\n fgDisabled: \"var(--color-fg-disabled)\",\n bgDisabled: \"var(--color-bg-disabled)\",\n\n /* Overlays */\n overlayHover: \"var(--color-overlay-hover)\",\n overlayActive: \"var(--color-overlay-active)\",\n\n /* Status */\n successFg: \"var(--color-success-fg)\",\n successBg: \"var(--color-success-bg)\",\n successLine: \"var(--color-success-line)\",\n warningFg: \"var(--color-warning-fg)\",\n warningBg: \"var(--color-warning-bg)\",\n warningLine: \"var(--color-warning-line)\",\n dangerFg: \"var(--color-danger-fg)\",\n dangerBg: \"var(--color-danger-bg)\",\n dangerLine: \"var(--color-danger-line)\",\n\n /* Data-viz — chart series ramp + area gradient stops */\n chart1: \"var(--color-chart-1)\",\n chart2: \"var(--color-chart-2)\",\n chart3: \"var(--color-chart-3)\",\n chart4: \"var(--color-chart-4)\",\n chartLine: \"var(--color-chart-line)\",\n chartAreaFrom: \"var(--color-chart-area-from)\",\n chartAreaTo: \"var(--color-chart-area-to)\",\n\n /* Practice service tones — fill + track tint */\n serviceTax: \"var(--color-service-tax)\",\n serviceTaxBg: \"var(--color-service-tax-bg)\",\n serviceAudit: \"var(--color-service-audit)\",\n serviceAuditBg: \"var(--color-service-audit-bg)\",\n serviceAccounting: \"var(--color-service-accounting)\",\n serviceAccountingBg: \"var(--color-service-accounting-bg)\",\n },\n\n /** Ordered chart series ramp — index a series by position, cycle with `% 4`. */\n chart: [\n \"var(--color-chart-1)\",\n \"var(--color-chart-2)\",\n \"var(--color-chart-3)\",\n \"var(--color-chart-4)\",\n ],\n\n gradient: {\n brand: \"var(--gradient-brand)\",\n pro: \"var(--gradient-pro)\",\n audit: \"var(--gradient-audit)\",\n books: \"var(--gradient-books)\",\n tax: \"var(--gradient-tax)\",\n },\n\n shadow: {\n quiet: \"var(--shadow-quiet)\",\n card: \"var(--shadow-card)\",\n pop: \"var(--shadow-pop)\",\n focusRing: \"var(--shadow-focus-ring)\",\n xs: \"var(--shadow-xs)\",\n sm: \"var(--shadow-sm)\",\n md: \"var(--shadow-md)\",\n lg: \"var(--shadow-lg)\",\n xl: \"var(--shadow-xl)\",\n \"2xl\": \"var(--shadow-2xl)\",\n },\n\n radius: {\n btn: \"var(--radius-btn)\",\n input: \"var(--radius-input)\",\n pill: \"var(--radius-pill)\",\n card: \"var(--radius-card)\",\n icon: \"var(--radius-icon)\",\n full: \"var(--radius-full)\",\n },\n\n type: {\n family: {\n display: \"var(--font-display)\",\n body: \"var(--font-body)\",\n mono: \"var(--font-mono)\",\n },\n weight: {\n regular: \"var(--font-weight-regular)\",\n medium: \"var(--font-weight-medium)\",\n semibold: \"var(--font-weight-semibold)\",\n bold: \"var(--font-weight-bold)\",\n },\n },\n\n motion: {\n ease: {\n outQuart: \"var(--ease-out-quart)\",\n out: \"var(--ease-out)\",\n in: \"var(--ease-in)\",\n inOut: \"var(--ease-in-out)\",\n },\n duration: {\n instant: \"var(--duration-instant)\",\n fast: \"var(--duration-fast)\",\n normal: \"var(--duration-normal)\",\n slow: \"var(--duration-slow)\",\n },\n semantic: {\n duration: {\n press: \"var(--motion-duration-press)\",\n feedback: \"var(--motion-duration-feedback)\",\n overlay: \"var(--motion-duration-overlay)\",\n spatial: \"var(--motion-duration-spatial)\",\n deliberate: \"var(--motion-duration-deliberate)\",\n },\n ease: {\n enter: \"var(--motion-ease-enter)\",\n exit: \"var(--motion-ease-exit)\",\n move: \"var(--motion-ease-move)\",\n },\n },\n },\n\n layout: {\n shellSidebarWidth: \"var(--shell-sidebar-w)\",\n shellSidebarRailWidth: \"var(--shell-sidebar-w-rail)\",\n shellHeaderHeight: \"var(--shell-header-h)\",\n contentPad: \"var(--content-pad)\",\n },\n\n z: {\n base: \"var(--z-base)\",\n dropdown: \"var(--z-dropdown)\",\n sticky: \"var(--z-sticky)\",\n overlay: \"var(--z-overlay)\",\n modal: \"var(--z-modal)\",\n toast: \"var(--z-toast)\",\n tooltip: \"var(--z-tooltip)\",\n },\n} as const;\n\nexport type SystemTokens = typeof systemTokens;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tokens/reference.ts","../../src/tokens/system.ts","../../src/foundation/theme/srgb.ts","../../src/foundation/theme/brand-theme.ts"],"names":[],"mappings":"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O,KAAA;AAAA,EAC3F,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAC3F,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,KAAA;AAAA,EAC3F,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACtF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EACxF,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,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","file":"index.js","sourcesContent":["/* GENERATED FILE — do not edit.\n * Source: tokens/src (DTCG, ADR-003).\n * Generator: tokens/build/lib/generate-ts.mjs, template tokens/build/templates/reference.ts.tmpl.\n * Change the token files and run `pnpm tokens:build`; `pnpm tokens:check`\n * fails when this file is out of date. */\n/**\n * Reference tokens — raw palette.\n *\n * Programmatic access for theme switching, Figma sync, design tools, etc.\n * Components should NOT consume these directly; use system tokens (./system.ts)\n * or the CSS variables in ./tokens.css.\n */\n\nexport const colors = {\n /* Surfaces */\n bg: \"#ffffff\",\n bg2: \"#f1f3f8\",\n bg3: \"#e7eaf1\",\n surface: \"#ffffff\",\n surface2: \"#f7f8fc\",\n\n /* Foreground */\n fg: \"#0a0a0a\",\n fg2: \"#38383b\",\n fg3: \"#5f5f64\",\n fg4: \"#6b6b70\",\n fg5: \"#9a9aa0\",\n\n /* Rules */\n rule: \"#e4e7ef\",\n ruleSoft: \"#eef0f5\",\n ruleStrong: \"#d3d8e3\",\n\n /* Accent (cyan) */\n accent: \"#6c42f8\",\n accent2: \"#5127e8\",\n accentTint: \"#efeaff\",\n accentHover: \"#5e35f2\",\n accentActive: \"#5127e8\",\n\n /* Pro (purple) */\n proBg: \"#f4f1ff\",\n proBgHover: \"#eee9ff\",\n proBgActive: \"#e4ddff\",\n proFg: \"#6c42f8\",\n proHover: \"#5e35f2\",\n proActive: \"#5127e8\",\n proDisabled: \"#b7a7f3\",\n proLine: \"#7b5bd8\",\n\n /* Disabled */\n fgDisabled: \"#a7a7ac\",\n bgDisabled: \"#f3f3f1\",\n\n /* Status */\n successFg: \"#1f7a3d\",\n successBg: \"#eaf6ee\",\n successLine: \"#c5e5cf\",\n warningFg: \"#8a4606\",\n warningBg: \"#fff3e5\",\n warningLine: \"#f5d5a8\",\n dangerFg: \"#c43838\",\n dangerBg: \"#fbeaea\",\n dangerLine: \"#ecc5c5\",\n\n /* On-brand */\n fgOnAccent: \"#ffffff\",\n fgOnPro: \"#ffffff\",\n} as const;\n\nexport const typography = {\n family: {\n display: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n body: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n mono: '\"Plus Jakarta Sans\", -apple-system, system-ui, sans-serif',\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n /* Universal entrance ease — applies to every motion primitive */\n ease: \"cubic-bezier(0.2, 0.8, 0.2, 1)\",\n} as const;\n\nexport const radii = {\n btn: \"7px\",\n input: \"7px\",\n pill: \"5px\",\n card: \"12px\",\n icon: \"4px\",\n full: \"9999px\",\n} as const;\n\nexport const shadows = {\n quiet: \"0 1px 2px rgba(16, 20, 36, 0.05)\",\n card: \"0 1px 2px rgba(16, 20, 36, 0.04), 0 4px 12px -4px rgba(16, 20, 36, 0.08)\",\n pop: \"0 0 0 1px rgba(16, 20, 36, 0.03), 0 2px 4px -1px rgba(16, 20, 36, 0.06), 0 12px 28px -6px rgba(16, 20, 36, 0.14)\",\n focusRing: \"0 0 0 2px #ffffff, 0 0 0 4px #6c42f8\",\n} as const;\n\nexport const overlays = {\n hover: \"rgba(10, 10, 10, 0.03)\",\n active: \"rgba(10, 10, 10, 0.05)\",\n} as const;\n\nexport const layout = {\n shellSidebarWidth: \"200px\",\n shellHeaderHeight: \"56px\",\n contentPad: \"32px\",\n} as const;\n\n/**\n * Spacing — 4px base scale. Components mostly use arbitrary values;\n * this scale is exposed for programmatic access (e.g. design-tool sync).\n */\nexport const spacing = {\n unit: \"4px\",\n 4: \"4px\",\n 8: \"8px\",\n 12: \"12px\",\n 16: \"16px\",\n 20: \"20px\",\n 24: \"24px\",\n 28: \"28px\",\n 32: \"32px\",\n 36: \"36px\",\n 40: \"40px\",\n 64: \"64px\",\n 80: \"80px\",\n 180: \"180px\",\n} as const;\n\n/**\n * Surface palette — the four canonical layers. Mirrors --color-bg / -2 /\n * --color-surface / --color-surface-2.\n */\nexport const surfaces = {\n bg: \"#ffffff\",\n bg2: \"#f1f3f8\",\n surface: \"#ffffff\",\n surface2: \"#f7f8fc\",\n} as const;\n\nexport const motion = {\n ease: {\n outQuart: \"cubic-bezier(0.2, 0.8, 0.2, 1)\",\n out: \"cubic-bezier(0.16, 1, 0.3, 1)\",\n in: \"cubic-bezier(0.7, 0, 0.84, 0)\",\n inOut: \"cubic-bezier(0.65, 0, 0.35, 1)\",\n },\n duration: {\n instant: \"100ms\",\n fast: \"150ms\",\n normal: \"250ms\",\n slow: \"400ms\",\n },\n} as const;\n\n/**\n * Icon boxes — the four sizes of target architecture §9.3. These are the boxes\n * the library actually draws; `Icon`'s `size` prop maps onto them (W3-18).\n */\nexport const iconSizes = {\n xs: \"12px\",\n sm: \"14px\",\n md: \"16px\",\n lg: \"20px\",\n} as const;\n\n/**\n * Global stacking layers — target architecture §21. Use them only for\n * portalled surfaces and page chrome; anything else creates a local stacking\n * context and uses small local integers.\n *\n * `popover` is the layer the CSS still spells `--z-dropdown`; the legacy name\n * keeps working and resolves to the same value.\n */\nexport const zIndex = {\n base: 0,\n sticky: 100,\n overlay: 200,\n modal: 300,\n popover: 400,\n toast: 500,\n tooltip: 600,\n} as const;\n\n/**\n * Breakpoints — Tailwind's defaults, restated so a media query built in JS\n * (`useBreakpoint`, a chart's responsive config) reads the same numbers the\n * `sm:`…`2xl:` variants do.\n */\nexport const breakpoints = {\n sm: \"40rem\",\n md: \"48rem\",\n lg: \"64rem\",\n xl: \"80rem\",\n \"2xl\": \"96rem\",\n} as const;\n\nexport const reference = {\n colors,\n typography,\n radii,\n shadows,\n overlays,\n layout,\n motion,\n spacing,\n surfaces,\n iconSizes,\n zIndex,\n breakpoints,\n} as const;\n\nexport type ReferenceTokens = typeof reference;\nexport type ColorName = keyof typeof colors;\n","/* GENERATED FILE — do not edit.\n * Source: tokens/src (DTCG, ADR-003).\n * Generator: tokens/build/lib/generate-ts.mjs, template tokens/build/templates/system.ts.tmpl.\n * Change the token files and run `pnpm tokens:build`; `pnpm tokens:check`\n * fails when this file is out of date. */\n/**\n * System tokens — suite semantic mappings as CSS variable references.\n *\n * Use these from JS (e.g. inline styles, Storybook decorators, motion configs)\n * when you can't use a Tailwind utility class. Component CSS should prefer the\n * generated utilities (`bg-bg`, `text-fg-2`, `border-rule`, `bg-pro-fg`, etc.)\n * which Tailwind 4 emits from `--color-*` tokens declared in ./tokens.css.\n *\n * Themes (.dark) re-map the underlying CSS variables; these references stay valid.\n */\n\nexport const systemTokens = {\n color: {\n /* Surfaces */\n bg: \"var(--color-bg)\",\n bg2: \"var(--color-bg-2)\",\n bg3: \"var(--color-bg-3)\",\n surface: \"var(--color-surface)\",\n surface2: \"var(--color-surface-2)\",\n\n /* Foreground */\n fg: \"var(--color-fg)\",\n fg2: \"var(--color-fg-2)\",\n fg3: \"var(--color-fg-3)\",\n fg4: \"var(--color-fg-4)\",\n fg5: \"var(--color-fg-5)\",\n\n /* Rules */\n rule: \"var(--color-rule)\",\n ruleSoft: \"var(--color-rule-soft)\",\n ruleStrong: \"var(--color-rule-strong)\",\n\n /* Accent (purple) */\n accent: \"var(--color-accent)\",\n accent2: \"var(--color-accent-2)\",\n accentTint: \"var(--color-accent-tint)\",\n accentHover: \"var(--color-accent-hover)\",\n accentActive: \"var(--color-accent-active)\",\n accentRing: \"var(--color-accent-ring)\",\n\n /* Stable cross-product CTA; deliberately independent of [data-brand]. */\n suiteAction: \"var(--color-suite-action)\",\n suiteActionHover: \"var(--color-suite-action-hover)\",\n suiteActionActive: \"var(--color-suite-action-active)\",\n fgOnSuiteAction: \"var(--color-fg-on-suite-action)\",\n\n /* Brand — ambient product family; follows the active [data-brand] scope,\n defaulting to Pro. Prefer these (and the generated bg-brand / text-brand\n / border-brand-line / text-fg-on-brand utilities) for scope-aware chrome\n so the product never appears in a class name. */\n brand: \"var(--color-brand)\",\n brandHover: \"var(--color-brand-hover)\",\n brandActive: \"var(--color-brand-active)\",\n brandDisabled: \"var(--color-brand-disabled)\",\n brandBg: \"var(--color-brand-bg)\",\n brandBgHover: \"var(--color-brand-bg-hover)\",\n brandBgActive: \"var(--color-brand-bg-active)\",\n brandLine: \"var(--color-brand-line)\",\n brandRing: \"var(--color-brand-ring)\",\n fgOnBrand: \"var(--color-fg-on-brand)\",\n\n /* Pro (purple) */\n proBg: \"var(--color-pro-bg)\",\n proBgHover: \"var(--color-pro-bg-hover)\",\n proBgActive: \"var(--color-pro-bg-active)\",\n proFg: \"var(--color-pro-fg)\",\n proHover: \"var(--color-pro-hover)\",\n proActive: \"var(--color-pro-active)\",\n proDisabled: \"var(--color-pro-disabled)\",\n proLine: \"var(--color-pro-line)\",\n proRing: \"var(--color-pro-ring)\",\n auditFg: \"var(--color-audit-fg)\",\n auditHover: \"var(--color-audit-hover)\",\n auditActive: \"var(--color-audit-active)\",\n auditDisabled: \"var(--color-audit-disabled)\",\n auditBg: \"var(--color-audit-bg)\",\n auditBgHover: \"var(--color-audit-bg-hover)\",\n auditBgActive: \"var(--color-audit-bg-active)\",\n auditLine: \"var(--color-audit-line)\",\n auditRing: \"var(--color-audit-ring)\",\n booksFg: \"var(--color-books-fg)\",\n booksHover: \"var(--color-books-hover)\",\n booksActive: \"var(--color-books-active)\",\n booksDisabled: \"var(--color-books-disabled)\",\n booksBg: \"var(--color-books-bg)\",\n booksBgHover: \"var(--color-books-bg-hover)\",\n booksBgActive: \"var(--color-books-bg-active)\",\n booksLine: \"var(--color-books-line)\",\n booksRing: \"var(--color-books-ring)\",\n taxFg: \"var(--color-tax-fg)\",\n taxHover: \"var(--color-tax-hover)\",\n taxActive: \"var(--color-tax-active)\",\n taxDisabled: \"var(--color-tax-disabled)\",\n taxBg: \"var(--color-tax-bg)\",\n taxBgHover: \"var(--color-tax-bg-hover)\",\n taxBgActive: \"var(--color-tax-bg-active)\",\n taxLine: \"var(--color-tax-line)\",\n taxRing: \"var(--color-tax-ring)\",\n\n /* On-brand — text/icon color on a filled brand/product surface */\n fgOnAccent: \"var(--color-fg-on-accent)\",\n fgOnPro: \"var(--color-fg-on-pro)\",\n fgOnAudit: \"var(--color-fg-on-audit)\",\n fgOnBooks: \"var(--color-fg-on-books)\",\n fgOnTax: \"var(--color-fg-on-tax)\",\n\n /* Disabled */\n fgDisabled: \"var(--color-fg-disabled)\",\n bgDisabled: \"var(--color-bg-disabled)\",\n\n /* Overlays */\n overlayHover: \"var(--color-overlay-hover)\",\n overlayActive: \"var(--color-overlay-active)\",\n\n /* Status */\n successFg: \"var(--color-success-fg)\",\n successBg: \"var(--color-success-bg)\",\n successLine: \"var(--color-success-line)\",\n warningFg: \"var(--color-warning-fg)\",\n warningBg: \"var(--color-warning-bg)\",\n warningLine: \"var(--color-warning-line)\",\n dangerFg: \"var(--color-danger-fg)\",\n dangerBg: \"var(--color-danger-bg)\",\n dangerLine: \"var(--color-danger-line)\",\n\n /* Data-viz — chart series ramp + area gradient stops */\n chart1: \"var(--color-chart-1)\",\n chart2: \"var(--color-chart-2)\",\n chart3: \"var(--color-chart-3)\",\n chart4: \"var(--color-chart-4)\",\n chartLine: \"var(--color-chart-line)\",\n chartAreaFrom: \"var(--color-chart-area-from)\",\n chartAreaTo: \"var(--color-chart-area-to)\",\n\n /* Practice service tones — fill + track tint */\n serviceTax: \"var(--color-service-tax)\",\n serviceTaxBg: \"var(--color-service-tax-bg)\",\n serviceAudit: \"var(--color-service-audit)\",\n serviceAuditBg: \"var(--color-service-audit-bg)\",\n serviceAccounting: \"var(--color-service-accounting)\",\n serviceAccountingBg: \"var(--color-service-accounting-bg)\",\n },\n\n /** Ordered chart series ramp — index a series by position, cycle with `% 4`. */\n chart: [\n \"var(--color-chart-1)\",\n \"var(--color-chart-2)\",\n \"var(--color-chart-3)\",\n \"var(--color-chart-4)\",\n ],\n\n gradient: {\n brand: \"var(--gradient-brand)\",\n pro: \"var(--gradient-pro)\",\n audit: \"var(--gradient-audit)\",\n books: \"var(--gradient-books)\",\n tax: \"var(--gradient-tax)\",\n },\n\n shadow: {\n quiet: \"var(--shadow-quiet)\",\n card: \"var(--shadow-card)\",\n pop: \"var(--shadow-pop)\",\n focusRing: \"var(--shadow-focus-ring)\",\n xs: \"var(--shadow-xs)\",\n sm: \"var(--shadow-sm)\",\n md: \"var(--shadow-md)\",\n lg: \"var(--shadow-lg)\",\n xl: \"var(--shadow-xl)\",\n \"2xl\": \"var(--shadow-2xl)\",\n },\n\n radius: {\n btn: \"var(--radius-btn)\",\n input: \"var(--radius-input)\",\n pill: \"var(--radius-pill)\",\n card: \"var(--radius-card)\",\n icon: \"var(--radius-icon)\",\n full: \"var(--radius-full)\",\n },\n\n type: {\n family: {\n display: \"var(--font-display)\",\n body: \"var(--font-body)\",\n mono: \"var(--font-mono)\",\n },\n weight: {\n regular: \"var(--font-weight-regular)\",\n medium: \"var(--font-weight-medium)\",\n semibold: \"var(--font-weight-semibold)\",\n bold: \"var(--font-weight-bold)\",\n },\n },\n\n motion: {\n ease: {\n outQuart: \"var(--ease-out-quart)\",\n out: \"var(--ease-out)\",\n in: \"var(--ease-in)\",\n inOut: \"var(--ease-in-out)\",\n },\n duration: {\n instant: \"var(--duration-instant)\",\n fast: \"var(--duration-fast)\",\n normal: \"var(--duration-normal)\",\n slow: \"var(--duration-slow)\",\n },\n semantic: {\n duration: {\n press: \"var(--motion-duration-press)\",\n feedback: \"var(--motion-duration-feedback)\",\n overlay: \"var(--motion-duration-overlay)\",\n spatial: \"var(--motion-duration-spatial)\",\n deliberate: \"var(--motion-duration-deliberate)\",\n },\n ease: {\n enter: \"var(--motion-ease-enter)\",\n exit: \"var(--motion-ease-exit)\",\n move: \"var(--motion-ease-move)\",\n },\n },\n },\n\n /**\n * Control sizing (amendment A1, W2-03). One outer height per size name, with\n * the padding, gap, label size and glyph size derived from it.\n *\n * **Nothing reads these yet** and the numbers are gated on decision D5\n * (implementation plan §3) — what each control renders *today* is in\n * `docs/design-system/control-sizes.md`, and W2-05 is the task that unifies\n * them. Referencing the scale here is also what keeps the custom properties\n * in the published stylesheet, so `[data-ds-density=\"compact\"]` has something\n * to re-point.\n */\n control: {\n height: {\n xs: \"var(--control-height-xs)\",\n sm: \"var(--control-height-sm)\",\n md: \"var(--control-height-md)\",\n lg: \"var(--control-height-lg)\",\n xl: \"var(--control-height-xl)\",\n },\n paddingX: {\n xs: \"var(--control-padding-x-xs)\",\n sm: \"var(--control-padding-x-sm)\",\n md: \"var(--control-padding-x-md)\",\n lg: \"var(--control-padding-x-lg)\",\n xl: \"var(--control-padding-x-xl)\",\n },\n gap: {\n xs: \"var(--control-gap-xs)\",\n sm: \"var(--control-gap-sm)\",\n md: \"var(--control-gap-md)\",\n lg: \"var(--control-gap-lg)\",\n xl: \"var(--control-gap-xl)\",\n },\n fontSize: {\n xs: \"var(--control-font-size-xs)\",\n sm: \"var(--control-font-size-sm)\",\n md: \"var(--control-font-size-md)\",\n lg: \"var(--control-font-size-lg)\",\n xl: \"var(--control-font-size-xl)\",\n },\n icon: {\n xs: \"var(--control-icon-xs)\",\n sm: \"var(--control-icon-sm)\",\n md: \"var(--control-icon-md)\",\n lg: \"var(--control-icon-lg)\",\n xl: \"var(--control-icon-xl)\",\n },\n },\n\n layout: {\n shellSidebarWidth: \"var(--shell-sidebar-w)\",\n shellSidebarRailWidth: \"var(--shell-sidebar-w-rail)\",\n shellHeaderHeight: \"var(--shell-header-h)\",\n contentPad: \"var(--content-pad)\",\n },\n\n z: {\n base: \"var(--z-base)\",\n dropdown: \"var(--z-dropdown)\",\n sticky: \"var(--z-sticky)\",\n overlay: \"var(--z-overlay)\",\n modal: \"var(--z-modal)\",\n toast: \"var(--z-toast)\",\n tooltip: \"var(--z-tooltip)\",\n },\n} as const;\n\nexport type SystemTokens = typeof systemTokens;\n","/**\n * sRGB colour arithmetic for the runtime brand contract (W1-20).\n *\n * Everything here is integer or IEEE-754 arithmetic over committed constants.\n * In particular the sRGB transfer function is a **committed lookup table**\n * rather than a call to `Math.pow`: `Math.pow` is implementation-approximated,\n * so two engines may return doubles that differ in the last bit, and a\n * comparison sitting exactly on a contrast threshold could then resolve one way\n * in Node and the other way in a browser. Addition, multiplication, division\n * and `Math.round` are exactly specified, so with the table as the only source\n * of transferred values every result below is bit-identical on every conforming\n * engine (amendment A3 — SSR determinism).\n *\n * `__tests__/srgb.test.ts` checks the table against the formula, so the\n * constants stay auditable.\n */\n\n/** A colour as three integer sRGB channels, 0–255. */\nexport type Rgb = readonly [number, number, number];\n\n/**\n * The sRGB transfer function applied to each of the 256 channel bytes, scaled\n * by 1e6 and rounded to the nearest integer. Index = channel byte.\n *\n * Six decimal places is far finer than the two the WCAG contrast thresholds are\n * quoted to — the worst-case effect on a ratio is about 2e-5 — and keeps the\n * table small enough to ship on a data entry point.\n */\nconst SRGB_TO_LINEAR_1E6: readonly number[] = [\n 0, 304, 607, 911, 1214, 1518, 1821, 2125, 2428, 2732, 3035, 3347, 3677, 4025, 4391, 4777, 5182,\n 5605, 6049, 6512, 6995, 7499, 8023, 8568, 9134, 9721, 10330, 10960, 11612, 12286, 12983, 13702,\n 14444, 15209, 15996, 16807, 17642, 18500, 19382, 20289, 21219, 22174, 23153, 24158, 25187, 26241,\n 27321, 28426, 29557, 30713, 31896, 33105, 34340, 35601, 36889, 38204, 39546, 40915, 42311, 43735,\n 45186, 46665, 48172, 49707, 51269, 52861, 54480, 56128, 57805, 59511, 61246, 63010, 64803, 66626,\n 68478, 70360, 72272, 74214, 76185, 78187, 80220, 82283, 84376, 86500, 88656, 90842, 93059, 95307,\n 97587, 99899, 102242, 104616, 107023, 109462, 111932, 114435, 116971, 119538, 122139, 124772,\n 127438, 130136, 132868, 135633, 138432, 141263, 144128, 147027, 149960, 152926, 155926, 158961,\n 162029, 165132, 168269, 171441, 174647, 177888, 181164, 184475, 187821, 191202, 194618, 198069,\n 201556, 205079, 208637, 212231, 215861, 219526, 223228, 226966, 230740, 234551, 238398, 242281,\n 246201, 250158, 254152, 258183, 262251, 266356, 270498, 274677, 278894, 283149, 287441, 291771,\n 296138, 300544, 304987, 309469, 313989, 318547, 323143, 327778, 332452, 337164, 341914, 346704,\n 351533, 356400, 361307, 366253, 371238, 376262, 381326, 386429, 391572, 396755, 401978, 407240,\n 412543, 417885, 423268, 428690, 434154, 439657, 445201, 450786, 456411, 462077, 467784, 473531,\n 479320, 485150, 491021, 496933, 502886, 508881, 514918, 520996, 527115, 533276, 539479, 545724,\n 552011, 558340, 564712, 571125, 577580, 584078, 590619, 597202, 603827, 610496, 617207, 623960,\n 630757, 637597, 644480, 651406, 658375, 665387, 672443, 679542, 686685, 693872, 701102, 708376,\n 715694, 723055, 730461, 737910, 745404, 752942, 760525, 768151, 775822, 783538, 791298, 799103,\n 806952, 814847, 822786, 830770, 838799, 846873, 854993, 863157, 871367, 879622, 887923, 896269,\n 904661, 913099, 921582, 930111, 938686, 947307, 955973, 964686, 973445, 982251, 991102, 1000000,\n];\n\nconst HEX_3 = /^#[0-9a-fA-F]{3}$/;\nconst HEX_6 = /^#[0-9a-fA-F]{6}$/;\nconst HEX_DIGITS = \"0123456789abcdef\";\n\n/** `#rgb` and `#rrggbb`, in either case. Returns `null` for anything else. */\nexport function parseHexColor(value: string): Rgb | null {\n if (HEX_6.test(value)) {\n const n = Number.parseInt(value.slice(1), 16);\n return [(n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff];\n }\n if (HEX_3.test(value)) {\n const n = Number.parseInt(value.slice(1), 16);\n const r = (n >> 8) & 0xf;\n const g = (n >> 4) & 0xf;\n const b = n & 0xf;\n return [r * 17, g * 17, b * 17];\n }\n return null;\n}\n\n/** Lower-case `#rrggbb`. Built by table lookup so no locale or `toString`\n * radix behaviour can enter the output. */\nexport function formatHexColor([r, g, b]: Rgb): string {\n const byte = (v: number) => HEX_DIGITS[(v >> 4) & 0xf] + HEX_DIGITS[v & 0xf];\n return `#${byte(r)}${byte(g)}${byte(b)}`;\n}\n\n/** WCAG relative luminance, from the committed transfer table. */\nexport function relativeLuminance([r, g, b]: Rgb): number {\n const lr = SRGB_TO_LINEAR_1E6[r] / 1e6;\n const lg = SRGB_TO_LINEAR_1E6[g] / 1e6;\n const lb = SRGB_TO_LINEAR_1E6[b] / 1e6;\n return 0.2126 * lr + 0.7152 * lg + 0.0722 * lb;\n}\n\n/** WCAG 2.2 contrast ratio between two opaque colours (1–21). */\nexport function contrastRatio(a: Rgb, b: Rgb): number {\n const la = relativeLuminance(a);\n const lb = relativeLuminance(b);\n const lighter = la > lb ? la : lb;\n const darker = la > lb ? lb : la;\n return (lighter + 0.05) / (darker + 0.05);\n}\n\n/**\n * `color-mix(in srgb, <a> <percent>%, <b>)` evaluated on integer channels.\n * `percent` is an integer 0–100; sRGB mixing is a straight interpolation in the\n * gamma-encoded space, which is what the browser does for `in srgb`.\n */\nexport function mixSrgb(a: Rgb, b: Rgb, percent: number): Rgb {\n const mix = (x: number, y: number) => Math.round((x * percent + y * (100 - percent)) / 100);\n return [mix(a[0], b[0]), mix(a[1], b[1]), mix(a[2], b[2])];\n}\n\nexport const WHITE: Rgb = [255, 255, 255];\nexport const BLACK: Rgb = [0, 0, 0];\n\n/**\n * Pure black or pure white, whichever has more contrast against `fill`.\n *\n * The two endpoints cross over at a luminance of about 0.1791, where both reach\n * 4.58:1, so the winner is **always** at or above 4.58:1 — WCAG 2.2 AA for\n * normal text (4.5:1) with margin, for every possible fill. Any near-black ink\n * short of `#000000` loses that property, which is why this returns the\n * extremes rather than a token value.\n */\nexport function readableInk(fill: Rgb): Rgb {\n return contrastRatio(BLACK, fill) >= contrastRatio(WHITE, fill) ? BLACK : WHITE;\n}\n\n/**\n * The least-darkened mix of `colour` towards black that reaches `minRatio`\n * against `against`, searched over the 101 integer mix percentages from 100\n * (untouched) downwards. 0% is black, so the search terminates whenever\n * `against` is light enough for black to pass — true for every background this\n * module uses.\n */\nexport function darkenUntilContrast(colour: Rgb, against: Rgb, minRatio: number): Rgb {\n for (let percent = 100; percent >= 0; percent -= 1) {\n const candidate = mixSrgb(colour, BLACK, percent);\n if (contrastRatio(candidate, against) >= minRatio) return candidate;\n }\n return BLACK;\n}\n","/**\n * `createBrandTheme()` — the runtime brand contract (W1-20, experimental).\n *\n * A white-label host has one or two colours per tenant and needs the design\n * system's brand family to follow them. Today that is done by writing the\n * design system's *legacy* variable names from application code (Assure\n * Portal's `src/lib/brand-theme.ts` writes about thirty of them onto `<body>`),\n * which couples the application to names the design system owns and gives no\n * guarantee that the result is legible.\n *\n * This function is the supported replacement: a validated seed in, a plain\n * object of `--ds-*` custom properties out, to spread into a `style` attribute\n * on whatever element scopes the brand (target architecture §12.1 rule 6 (iv)).\n *\n * Contract:\n *\n * - **Pure.** No `document`, no `window`, no clock, no randomness, no module\n * state. The same seed always yields the same object.\n * - **SSR-deterministic** (amendment A3). Every number comes from integer\n * arithmetic over a committed transfer table (`./srgb`), so server-rendered\n * markup and the first client render agree byte for byte. Asserted in Node\n * (`__tests__/brand-theme.test.ts`) and in a real browser\n * (`tests/browser/brand-theme-ssr-determinism.test.ts`) against the same\n * committed vectors.\n * - **Legible.** The fills are clamped to at least 3:1 against the light canvas\n * (WCAG 2.2 SC 1.4.11, non-text contrast), and every foreground the function\n * emits reaches at least 4.5:1 against the fill it sits on (SC 1.4.3 AA).\n * - **Shaped like a built-in brand.** The ramp uses the same percentages as the\n * generated `[data-ds-brand]` scopes in `css/tokens.css`, and the steps that\n * depend on the colour scheme stay as `color-mix(… var(--ds-color-content))`\n * exactly as those scopes do, so a runtime brand keeps working in dark mode.\n *\n * @experimental The seed shape is gated by decision D7 (white-label scope:\n * brand, plus optional accent). It may change while D7 is open.\n */\nimport {\n BLACK,\n WHITE,\n contrastRatio,\n darkenUntilContrast,\n formatHexColor,\n mixSrgb,\n parseHexColor,\n readableInk,\n type Rgb,\n} from \"./srgb\";\n\n/**\n * The seed a host supplies per tenant.\n *\n * @experimental Gated by decision D7.\n */\nexport interface BrandThemeSeed {\n /**\n * The brand fill, as `#rgb` or `#rrggbb`. Drives the `action.brand` family,\n * the focus ring and the brand gradient.\n */\n brand: string;\n /**\n * An optional second hue for the `action.accent` family, as `#rgb` or\n * `#rrggbb`. `undefined` or `null` means \"the same as `brand`\", which is what\n * the built-in `[data-ds-brand]` scopes do.\n */\n accent?: string | null;\n}\n\n/** Every custom property `createBrandTheme()` sets, in output order. */\nexport const BRAND_THEME_PROPERTIES = [\n \"--ds-color-action-brand-bg\",\n \"--ds-color-action-brand-bg-hover\",\n \"--ds-color-action-brand-bg-active\",\n \"--ds-color-action-brand-bg-disabled\",\n \"--ds-color-action-brand-subtle-bg\",\n \"--ds-color-action-brand-subtle-bg-hover\",\n \"--ds-color-action-brand-subtle-bg-active\",\n \"--ds-color-action-brand-border\",\n \"--ds-color-action-brand-ring\",\n \"--ds-color-action-brand-fg\",\n \"--ds-color-action-accent-bg\",\n \"--ds-color-action-accent-bg-strong\",\n \"--ds-color-action-accent-bg-hover\",\n \"--ds-color-action-accent-bg-active\",\n \"--ds-color-action-accent-subtle-bg\",\n \"--ds-color-action-accent-ring\",\n \"--ds-color-action-accent-fg\",\n \"--ds-color-border-focus\",\n \"--ds-focus-ring-color\",\n \"--ds-focus-ring-border\",\n \"--ds-gradient-brand\",\n \"--ds-compat-color-brand-soft\",\n \"--ds-compat-color-brand-soft-foreground\",\n] as const;\n\n/** One of the custom properties `createBrandTheme()` sets. */\nexport type BrandThemeProperty = (typeof BRAND_THEME_PROPERTIES)[number];\n\n/**\n * The style object `createBrandTheme()` returns: every property of\n * {@link BRAND_THEME_PROPERTIES} with a CSS value.\n *\n * React types `style` as `CSSProperties`, which has no index signature for\n * custom properties, so spread it or cast it at the call site:\n * `style={{ ...createBrandTheme(seed) }}`.\n *\n * @experimental Gated by decision D7.\n */\nexport type BrandTheme = { readonly [P in BrandThemeProperty]: string };\n\n/** Minimum contrast a fill must reach against the light canvas (SC 1.4.11). */\nconst MIN_FILL_CONTRAST = 3;\n/** Minimum contrast a foreground must reach against its fill (SC 1.4.3 AA). */\nconst MIN_TEXT_CONTRAST = 4.5;\n\n/** The light canvas (`--ds-color-canvas`), the surface a fill sits on. */\nconst CANVAS: Rgb = WHITE;\n\n/**\n * Ramp percentages, copied from the generated brand scopes in\n * `tokens/build/generate-ds-css.mjs`, so a runtime brand and a built-in one are\n * the same shape.\n */\nconst RAMP = {\n hover: 88,\n active: 74,\n disabled: 42,\n subtle: 8,\n subtleHover: 13,\n subtleActive: 20,\n border: 45,\n ring: 20,\n /** The soft tint and its ink, which the app-vocabulary bridge reads. */\n soft: 12,\n softInk: 68,\n} as const;\n\n/** `color-mix(in srgb, <colour> <percent>%, var(--ds-color-content))` — the\n * scheme-aware steps, left unresolved exactly as the built-in scopes leave\n * them, so a runtime brand still darkens in light mode and lightens in dark. */\nconst towardsInk = (colour: string, percent: number) =>\n `color-mix(in srgb, ${colour} ${percent}%, var(--ds-color-content))`;\n\n/** `color-mix(in srgb, <colour> <percent>%, transparent)`. */\nconst towardsTransparent = (colour: string, percent: number) =>\n `color-mix(in srgb, ${colour} ${percent}%, transparent)`;\n\nconst ACCEPTED = '#rgb or #rrggbb, for example \"#6c42f8\"';\nconst SEED_KEYS = new Set([\"brand\", \"accent\"]);\n\nfunction describe(value: unknown): string {\n if (typeof value === \"string\") return JSON.stringify(value);\n if (value === null) return \"null\";\n if (Array.isArray(value)) return \"an array\";\n return typeof value;\n}\n\nfunction readColour(key: \"brand\" | \"accent\", value: unknown): Rgb {\n if (typeof value !== \"string\") {\n throw new TypeError(\n `createBrandTheme: \"${key}\" must be a hex colour string (${ACCEPTED}), received ${describe(value)}.`,\n );\n }\n const rgb = parseHexColor(value);\n if (!rgb) {\n throw new TypeError(\n `createBrandTheme: \"${key}\" must be a hex colour (${ACCEPTED}), received ${describe(value)}. ` +\n \"Named colours, rgb()/hsl() and eight-digit hex with alpha are not accepted — a brand seed must be opaque and unambiguous.\",\n );\n }\n return rgb;\n}\n\nfunction validateSeed(seed: BrandThemeSeed): void {\n if (seed === null || typeof seed !== \"object\" || Array.isArray(seed)) {\n throw new TypeError(\n `createBrandTheme: expected a seed object with a \"brand\" colour, received ${describe(seed)}.`,\n );\n }\n const unknown = Object.keys(seed).filter((key) => !SEED_KEYS.has(key));\n if (unknown.length) {\n throw new TypeError(\n `createBrandTheme: unknown seed ${unknown.length === 1 ? \"key\" : \"keys\"} ${unknown\n .map((key) => JSON.stringify(key))\n .join(\", \")}. The seed accepts \"brand\" and an optional \"accent\" (decision D7).`,\n );\n }\n}\n\n/**\n * Clamp a seed so it reads as a UI fill: at least 3:1 against the light canvas\n * (WCAG 2.2 SC 1.4.11). A seed that already passes is returned untouched, so\n * the common case is exact — `createBrandTheme({ brand: \"#6c42f8\" })` emits\n * `#6c42f8`. A pale seed is darkened by the smallest whole-percent mix towards\n * black that passes, which keeps the hue and gives up only lightness.\n */\nfunction clampFill(seed: Rgb): Rgb {\n if (contrastRatio(seed, CANVAS) >= MIN_FILL_CONTRAST) return seed;\n return darkenUntilContrast(seed, CANVAS, MIN_FILL_CONTRAST);\n}\n\n/**\n * Turn a tenant's colours into the design system's brand and accent tokens.\n *\n * ```tsx\n * const theme = createBrandTheme({ brand: firm.primaryColor, accent: firm.accentColor });\n * return <div style={{ ...theme }}>{children}</div>;\n * ```\n *\n * Apply it to the element that scopes the brand — `<body>` for a whole-tenant\n * theme, a wrapper for a preview. The properties are the same ones a built-in\n * `[data-ds-brand]` scope declares, so anything reading them (every design\n * system component, and any application CSS reading `--ds-*`) follows.\n *\n * @param seed - `brand`, and optionally `accent` (decision D7).\n * @returns A frozen object of custom property names to CSS values.\n * @throws TypeError when the seed is not an object, carries an unknown key, or\n * a colour is missing or not `#rgb`/`#rrggbb`.\n *\n * @experimental Gated by decision D7. The property set may grow, and the seed\n * shape may change, until D7 is resolved.\n */\nexport function createBrandTheme(seed: BrandThemeSeed): BrandTheme {\n validateSeed(seed);\n const brandSeed = readColour(\"brand\", seed.brand);\n const accentSeed =\n seed.accent === undefined || seed.accent === null\n ? brandSeed\n : readColour(\"accent\", seed.accent);\n\n const brand = clampFill(brandSeed);\n const accent = clampFill(accentSeed);\n const brandHex = formatHexColor(brand);\n const accentHex = formatHexColor(accent);\n\n const soft = mixSrgb(brand, WHITE, RAMP.soft);\n const softInk = darkenUntilContrast(mixSrgb(brand, BLACK, RAMP.softInk), soft, MIN_TEXT_CONTRAST);\n\n return Object.freeze({\n \"--ds-color-action-brand-bg\": brandHex,\n \"--ds-color-action-brand-bg-hover\": towardsInk(brandHex, RAMP.hover),\n \"--ds-color-action-brand-bg-active\": towardsInk(brandHex, RAMP.active),\n \"--ds-color-action-brand-bg-disabled\": formatHexColor(mixSrgb(brand, WHITE, RAMP.disabled)),\n \"--ds-color-action-brand-subtle-bg\": formatHexColor(mixSrgb(brand, WHITE, RAMP.subtle)),\n \"--ds-color-action-brand-subtle-bg-hover\": formatHexColor(\n mixSrgb(brand, WHITE, RAMP.subtleHover),\n ),\n \"--ds-color-action-brand-subtle-bg-active\": formatHexColor(\n mixSrgb(brand, WHITE, RAMP.subtleActive),\n ),\n \"--ds-color-action-brand-border\": formatHexColor(mixSrgb(brand, WHITE, RAMP.border)),\n \"--ds-color-action-brand-ring\": towardsTransparent(brandHex, RAMP.ring),\n \"--ds-color-action-brand-fg\": formatHexColor(readableInk(brand)),\n \"--ds-color-action-accent-bg\": accentHex,\n \"--ds-color-action-accent-bg-strong\": towardsInk(accentHex, RAMP.active),\n \"--ds-color-action-accent-bg-hover\": towardsInk(accentHex, RAMP.hover),\n \"--ds-color-action-accent-bg-active\": towardsInk(accentHex, RAMP.active),\n \"--ds-color-action-accent-subtle-bg\": formatHexColor(mixSrgb(accent, WHITE, RAMP.subtle)),\n \"--ds-color-action-accent-ring\": towardsTransparent(accentHex, RAMP.ring),\n \"--ds-color-action-accent-fg\": formatHexColor(readableInk(accent)),\n \"--ds-color-border-focus\": accentHex,\n \"--ds-focus-ring-color\": towardsTransparent(brandHex, RAMP.ring),\n \"--ds-focus-ring-border\": brandHex,\n \"--ds-gradient-brand\": `linear-gradient(135deg, ${brandHex}, ${towardsInk(brandHex, RAMP.hover)})`,\n \"--ds-compat-color-brand-soft\": formatHexColor(soft),\n \"--ds-compat-color-brand-soft-foreground\": formatHexColor(softInk),\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assure-one/design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.33.0",
|
|
4
4
|
"description": "Assure One design system — tokens, primitives, and patterns for the Assure Suite.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -17,13 +17,32 @@
|
|
|
17
17
|
"import": "./dist/index.js"
|
|
18
18
|
},
|
|
19
19
|
"./styles.css": "./dist/styles.css",
|
|
20
|
+
"./css/tokens.css": "./dist/css/tokens.css",
|
|
21
|
+
"./css/legacy-aliases.css": "./dist/css/legacy-aliases.css",
|
|
22
|
+
"./css/tailwind.css": "./dist/css/tailwind.css",
|
|
23
|
+
"./css/shadcn.css": "./dist/css/shadcn.css",
|
|
24
|
+
"./css/base.css": "./dist/css/base.css",
|
|
25
|
+
"./css/components.css": "./dist/css/components.css",
|
|
20
26
|
"./tokens": {
|
|
21
27
|
"types": "./dist/tokens/index.d.ts",
|
|
22
28
|
"import": "./dist/tokens/index.js"
|
|
23
|
-
}
|
|
29
|
+
},
|
|
30
|
+
"./testing": {
|
|
31
|
+
"import": {
|
|
32
|
+
"types": "./dist/testing/index.d.ts",
|
|
33
|
+
"default": "./dist/testing/index.js"
|
|
34
|
+
},
|
|
35
|
+
"require": {
|
|
36
|
+
"types": "./dist/testing/index.d.cts",
|
|
37
|
+
"default": "./dist/testing/index.cjs"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"./package.json": "./package.json"
|
|
24
41
|
},
|
|
25
42
|
"files": [
|
|
26
43
|
"dist",
|
|
44
|
+
"codemods",
|
|
45
|
+
"!codemods/__test__",
|
|
27
46
|
"README.md"
|
|
28
47
|
],
|
|
29
48
|
"publishConfig": {
|
|
@@ -77,12 +96,13 @@
|
|
|
77
96
|
"input-otp": "^1.4.2",
|
|
78
97
|
"react-day-picker": "^10.0.0",
|
|
79
98
|
"react-remove-scroll": "^2.7.2",
|
|
80
|
-
"tailwind-merge": "^
|
|
99
|
+
"tailwind-merge": "^3.7.0",
|
|
81
100
|
"tw-animate-css": "^1.4.0"
|
|
82
101
|
},
|
|
83
102
|
"devDependencies": {
|
|
84
103
|
"@changesets/cli": "^2.27.12",
|
|
85
104
|
"@eslint/js": "^10.0.1",
|
|
105
|
+
"@microsoft/api-extractor": "^7.59.1",
|
|
86
106
|
"@storybook/addon-a11y": "8.6.18",
|
|
87
107
|
"@storybook/addon-essentials": "^8.6.18",
|
|
88
108
|
"@storybook/addon-interactions": "^8.6.18",
|
|
@@ -99,17 +119,23 @@
|
|
|
99
119
|
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
|
100
120
|
"@typescript-eslint/parser": "^8.20.0",
|
|
101
121
|
"@vitejs/plugin-react": "^4.3.4",
|
|
122
|
+
"@vitest/browser-playwright": "^4.1.11",
|
|
102
123
|
"agentation": "^3.0.2",
|
|
103
124
|
"axe-playwright": "^2.2.2",
|
|
104
125
|
"concurrently": "^9.2.1",
|
|
126
|
+
"dependency-cruiser": "^18.3.1",
|
|
127
|
+
"esbuild": "0.27.7",
|
|
105
128
|
"eslint": "^9.18.0",
|
|
106
129
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
107
130
|
"eslint-plugin-react": "^7.37.4",
|
|
108
131
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
109
132
|
"eslint-plugin-storybook": "^0.11.2",
|
|
110
133
|
"http-server": "^14.1.1",
|
|
134
|
+
"jsdom": "^26.1.0",
|
|
111
135
|
"next": "16.1.6",
|
|
112
136
|
"playwright": "^1.59.1",
|
|
137
|
+
"postcss": "^8.5.13",
|
|
138
|
+
"postcss-selector-parser": "^7.1.6",
|
|
113
139
|
"prettier": "^3.4.2",
|
|
114
140
|
"prettier-plugin-tailwindcss": "^0.6.10",
|
|
115
141
|
"react": "^19.0.0",
|
|
@@ -119,26 +145,69 @@
|
|
|
119
145
|
"tsup": "^8.3.5",
|
|
120
146
|
"typescript": "^5.7.3",
|
|
121
147
|
"vite": "^6.0.7",
|
|
148
|
+
"vitest": "^4.1.11",
|
|
149
|
+
"vitest-browser-react": "^2.3.0",
|
|
122
150
|
"wait-on": "^9.0.6"
|
|
123
151
|
},
|
|
124
152
|
"engines": {
|
|
125
153
|
"node": ">=22"
|
|
126
154
|
},
|
|
127
155
|
"scripts": {
|
|
128
|
-
"
|
|
156
|
+
"prebuild": "pnpm tokens:build",
|
|
157
|
+
"build": "tsup && pnpm build:testing && pnpm build:css && pnpm build:css:entries",
|
|
129
158
|
"build:css": "tailwindcss -i ./src/tokens/consumer.css -o ./dist/styles.css --minify",
|
|
159
|
+
"build:css:entries": "node scripts/build-css-entries.mjs",
|
|
160
|
+
"build:testing": "tsup --config tsup.testing.config.ts",
|
|
130
161
|
"dev": "tsup --watch",
|
|
131
162
|
"dev:css": "tailwindcss -i ./src/tokens/consumer.css -o ./dist/styles.css --watch",
|
|
132
163
|
"storybook": "storybook dev -p 6006",
|
|
133
164
|
"build-storybook": "storybook build",
|
|
134
165
|
"test-storybook": "test-storybook --url http://127.0.0.1:6006",
|
|
135
166
|
"test-storybook:ci": "concurrently -k -s first -n \"sb,test\" -c \"magenta,blue\" \"http-server storybook-static -p 6006 -s\" \"wait-on tcp:127.0.0.1:6006 && test-storybook --url http://127.0.0.1:6006\"",
|
|
167
|
+
"test-storybook:a11y": "node scripts/storybook-tests/run.mjs --mode a11y",
|
|
168
|
+
"test-storybook:play": "node scripts/storybook-tests/run.mjs --mode play",
|
|
169
|
+
"a11y:ratchet": "node scripts/a11y-ratchet.mjs",
|
|
170
|
+
"a11y:report": "node scripts/a11y-ratchet.mjs --report",
|
|
171
|
+
"a11y:update": "node scripts/a11y-ratchet.mjs --update",
|
|
172
|
+
"a11y:triage": "node scripts/a11y/triage.mjs",
|
|
173
|
+
"test": "vitest run",
|
|
174
|
+
"test:browser": "vitest run --config vitest.browser.config.ts",
|
|
175
|
+
"typecheck:browser": "tsc -p tests/browser/tsconfig.json --noEmit",
|
|
136
176
|
"test:contracts": "node --test tests/design-system-contracts.test.mjs",
|
|
177
|
+
"contracts:check": "node scripts/contracts/run.mjs --check",
|
|
178
|
+
"contracts:snapshot": "node scripts/contracts/run.mjs --snapshot",
|
|
137
179
|
"typecheck": "tsc --noEmit",
|
|
180
|
+
"typecheck:stories": "tsc -p tsconfig.stories.json --noEmit",
|
|
181
|
+
"api:check": "node scripts/api/api-report.mjs --check",
|
|
182
|
+
"api:update": "node scripts/api/api-report.mjs --update",
|
|
183
|
+
"arch:report": "node scripts/architecture/report.mjs",
|
|
184
|
+
"arch:baseline": "node scripts/architecture/report.mjs --update",
|
|
185
|
+
"ratchet": "node scripts/ratchet/run.mjs",
|
|
186
|
+
"ratchet:update": "node scripts/ratchet/run.mjs --update",
|
|
187
|
+
"lint:report": "node scripts/ratchet/run.mjs --report",
|
|
188
|
+
"fixtures:host": "node scripts/host-fixtures/run.mjs",
|
|
189
|
+
"bundle:report": "node scripts/bundle-report.mjs",
|
|
190
|
+
"bundle:check": "node scripts/bundle-report.mjs --check",
|
|
191
|
+
"bundle:update": "node scripts/bundle-report.mjs --update",
|
|
192
|
+
"scan:consumers": "node scripts/scan-consumers/run.mjs",
|
|
193
|
+
"codemods": "node codemods/run.mjs",
|
|
194
|
+
"codemods:findings": "node scripts/codemods/collect-findings.mjs",
|
|
195
|
+
"dashboard": "node scripts/dashboard.mjs",
|
|
196
|
+
"dashboard:check": "node scripts/dashboard.mjs --check",
|
|
197
|
+
"canary": "node scripts/canary/run.mjs",
|
|
138
198
|
"lint": "eslint src",
|
|
139
199
|
"format": "prettier --write src",
|
|
140
200
|
"changeset": "changeset",
|
|
141
201
|
"release": "changeset publish",
|
|
142
|
-
"version": "changeset version"
|
|
202
|
+
"version": "changeset version",
|
|
203
|
+
"tokens:validate": "node tokens/build/validate.mjs",
|
|
204
|
+
"tokens:extract": "node tokens/build/extract-from-css.mjs",
|
|
205
|
+
"tokens:build": "node tokens/build/build.mjs",
|
|
206
|
+
"tokens:check": "node tokens/build/build.mjs --check",
|
|
207
|
+
"tokens:equivalence": "node tokens/build/check-build-equivalence.mjs",
|
|
208
|
+
"tokens:removals": "node tokens/build/check-removals.mjs",
|
|
209
|
+
"tokens:ds-check": "node tokens/build/check-ds-names.mjs",
|
|
210
|
+
"tokens:bridges": "node tokens/build/check-bridges.mjs",
|
|
211
|
+
"tokens:guards": "pnpm tokens:check && pnpm tokens:removals && pnpm tokens:ds-check && pnpm tokens:bridges"
|
|
143
212
|
}
|
|
144
213
|
}
|