@common-origin/design-system 2.21.0 → 2.23.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 (79) hide show
  1. package/dist/client.js +261 -208
  2. package/dist/client.js.map +1 -1
  3. package/dist/components/atoms/Badge/Badge.d.mts +16 -4
  4. package/dist/components/atoms/Badge/Badge.d.ts +16 -4
  5. package/dist/components/atoms/Badge/Badge.mjs +4 -5
  6. package/dist/components/atoms/Badge/index.d.mts +1 -1
  7. package/dist/components/atoms/Badge/index.d.ts +1 -1
  8. package/dist/components/atoms/Box/Box.d.mts +25 -1
  9. package/dist/components/atoms/Box/Box.d.ts +25 -1
  10. package/dist/components/atoms/Box/Box.mjs +5 -2
  11. package/dist/components/atoms/Button/Button.mjs +1 -1
  12. package/dist/components/atoms/CategoryLabel/CategoryLabel.d.mts +23 -8
  13. package/dist/components/atoms/CategoryLabel/CategoryLabel.d.ts +23 -8
  14. package/dist/components/atoms/CategoryLabel/CategoryLabel.mjs +31 -18
  15. package/dist/components/atoms/CategoryLabel/index.d.mts +1 -1
  16. package/dist/components/atoms/CategoryLabel/index.d.ts +1 -1
  17. package/dist/components/atoms/Chip/SuggestionChip.mjs +1 -1
  18. package/dist/components/atoms/Chip/shared/utils.mjs +1 -1
  19. package/dist/components/atoms/Chip/shared/utils.mjs.map +1 -1
  20. package/dist/components/atoms/Icon/Icon.mjs +1 -1
  21. package/dist/components/atoms/MoneyDisplay/MoneyDisplay.mjs +14 -60
  22. package/dist/components/atoms/StatusBadge/StatusBadge.d.mts +3 -2
  23. package/dist/components/atoms/StatusBadge/StatusBadge.d.ts +3 -2
  24. package/dist/components/atoms/StatusBadge/StatusBadge.mjs +1 -1
  25. package/dist/components/atoms/StatusBadge/StatusBadge.mjs.map +1 -1
  26. package/dist/components/atoms/StatusLabel/StatusLabel.d.mts +5 -2
  27. package/dist/components/atoms/StatusLabel/StatusLabel.d.ts +5 -2
  28. package/dist/components/atoms/StatusLabel/StatusLabel.mjs +5 -2
  29. package/dist/components/atoms/StatusLabel/StatusLabel.mjs.map +1 -1
  30. package/dist/components/atoms/StatusLabel/StatusLabelBase.d.mts +2 -2
  31. package/dist/components/atoms/StatusLabel/StatusLabelBase.d.ts +2 -2
  32. package/dist/components/atoms/StatusLabel/StatusLabelBase.mjs +19 -13
  33. package/dist/components/atoms/StatusLabel/StatusShape.d.mts +4 -0
  34. package/dist/components/atoms/StatusLabel/StatusShape.d.ts +4 -0
  35. package/dist/components/atoms/StatusLabel/StatusShape.mjs +31 -0
  36. package/dist/components/atoms/StatusLabel/StatusShape.mjs.map +1 -0
  37. package/dist/components/atoms/Typography/Typography.mjs +2 -2
  38. package/dist/components/molecules/AccountCard/AccountCard.mjs +22 -14
  39. package/dist/components/molecules/Alert/Alert.d.mts +4 -4
  40. package/dist/components/molecules/Alert/Alert.d.ts +4 -4
  41. package/dist/components/molecules/Alert/Alert.mjs +5 -4
  42. package/dist/components/molecules/CodeBlock/CodeBlock.mjs +1 -1
  43. package/dist/components/molecules/Dropdown/Dropdown.mjs +2 -2
  44. package/dist/components/molecules/InlineAlert/InlineAlert.mjs +15 -5
  45. package/dist/components/molecules/TabBar/TabBar.mjs +3 -3
  46. package/dist/components/molecules/TransactionListItem/TransactionListItem.d.mts +1 -1
  47. package/dist/components/molecules/TransactionListItem/TransactionListItem.d.ts +1 -1
  48. package/dist/components/molecules/TransactionListItem/TransactionListItem.mjs +15 -31
  49. package/dist/data.js +514 -303
  50. package/dist/data.js.map +1 -1
  51. package/dist/lib/statusShapes.d.mts +2 -0
  52. package/dist/lib/statusShapes.d.ts +2 -0
  53. package/dist/lib/statusShapes.mjs +16 -0
  54. package/dist/lib/statusShapes.mjs.map +1 -0
  55. package/dist/lib/styleUtils.mjs +2 -2
  56. package/dist/lib/styleUtils.mjs.map +1 -1
  57. package/dist/lib/tokenAliases.d.mts +9 -0
  58. package/dist/lib/tokenAliases.d.ts +9 -0
  59. package/dist/lib/tokenAliases.mjs +50 -11
  60. package/dist/lib/tokenAliases.mjs.map +1 -1
  61. package/dist/styles/icons.json +141 -0
  62. package/dist/styles/icons.json.mjs +153 -2
  63. package/dist/styles/icons.json.mjs.map +1 -1
  64. package/dist/styles/tokens.d.mts +721 -123
  65. package/dist/styles/tokens.d.ts +721 -123
  66. package/dist/styles/tokens.json +362 -302
  67. package/dist/styles/tokens.json.mjs +362 -302
  68. package/dist/styles/tokens.json.mjs.map +1 -1
  69. package/dist/tokens/index.js +362 -302
  70. package/dist/tokens/index.js.map +1 -1
  71. package/dist/tokens/index.mjs +362 -302
  72. package/dist/tokens/index.mjs.map +1 -1
  73. package/dist/tokens/styles/tokens.d.mts +721 -123
  74. package/dist/tokens/styles/tokens.d.ts +721 -123
  75. package/dist/tokens.css +363 -317
  76. package/dist/types/icons.d.mts +1 -1
  77. package/dist/types/icons.d.ts +1 -1
  78. package/dist/types/icons.mjs.map +1 -1
  79. package/package.json +1 -1
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":["../src/types/tokens.ts","../src/types/icons.ts"],"sourcesContent":["import tokensJson from '../styles/tokens.json'\nimport type { Tokens } from '../styles/tokens'\n\n// The published types come from the generated `src/styles/tokens.ts`, which carries each token's\n// description as JSDoc and `@deprecated` on deprecated tokens (decision 0033, #199). Declaring the\n// constant with that type also keeps emitted .d.ts files free of JSON imports, which consumers can\n// only resolve with `resolveJsonModule`.\nexport const tokens: Tokens = tokensJson\n\nexport type { Tokens }\nexport type TokensBase = Tokens['base']\nexport type TokensSemantic = Tokens['semantic']\nexport type TokensComponent = Tokens['component']\n","// Icon type definitions for external consumption\n// This is a self-contained type that doesn't depend on JSON imports\n// to ensure it works correctly in consuming projects\n\nimport iconsJson from '../styles/icons.json'\n\nexport type IconName =\n | 'add'\n | 'ai'\n | 'addRing'\n | 'arrowDown'\n | 'arrowLeft'\n | 'arrowRight'\n | 'arrowUp'\n | 'back'\n | 'bell'\n | 'cancel'\n | 'caret'\n | 'caretDown'\n | 'caretUp'\n | 'check'\n | 'checkRing'\n | 'close'\n | 'copy'\n | 'creditCard'\n | 'crossCircle'\n | 'directionRight'\n | 'directionUp'\n | 'edit'\n | 'export'\n | 'fileDocSearch'\n | 'filter'\n | 'info'\n | 'kebab'\n | 'lamp'\n | 'lineOut'\n | 'link'\n | 'meatballs'\n | 'menu'\n | 'message'\n | 'move'\n | 'mic'\n | 'order'\n | 'paper'\n | 'pause'\n | 'play'\n | 'playBack'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'star'\n | 'starFilled'\n | 'stop'\n | 'table'\n | 'trash'\n | 'userBox'\n | 'view'\n | 'viewHide'\n | 'wallet'\n\n/** Semantic category for grouping icons by purpose */\nexport type IconCategory =\n | 'action'\n | 'communication'\n | 'content'\n | 'feedback'\n | 'media'\n | 'navigation'\n | 'object'\n | 'status'\n | 'user'\n\n/** Enriched metadata for each icon entry in icons.json */\nexport interface IconMetadata {\n /** SVG path data */\n path: string\n /** Display name of the icon */\n name: string\n /** What the icon visually depicts */\n description: string\n /** Semantic category for grouping */\n category: IconCategory\n /** Alternative names and search terms */\n aliases: string[]\n /** When and why to use this icon */\n intent: string\n /** Whether the icon is typically decorative (true) or informative (false) */\n decorativeDefault: boolean\n /** Suggested accessible label when the icon conveys meaning */\n ariaLabelDefault: string\n}\n\n/** The full icon registry keyed by IconName */\nexport type IconRegistry = Record<IconName, IconMetadata>\n\n// Typed as IconRegistry so emitted .d.ts files don't import JSON (needs `resolveJsonModule` in consumers).\nexport const iconsData = iconsJson as IconRegistry\n"],"names":["tokens","tokensJson","iconsData","iconsJson"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACO,IAAMA,MAAM,GAAWC;;ACP9B;AACA;AACA;AA6FA;AACO,IAAMC,SAAS,GAAGC;;;;;;;"}
1
+ {"version":3,"file":"data.js","sources":["../src/types/tokens.ts","../src/types/icons.ts"],"sourcesContent":["import tokensJson from '../styles/tokens.json'\nimport type { Tokens } from '../styles/tokens'\n\n// The published types come from the generated `src/styles/tokens.ts`, which carries each token's\n// description as JSDoc and `@deprecated` on deprecated tokens (decision 0033, #199). Declaring the\n// constant with that type also keeps emitted .d.ts files free of JSON imports, which consumers can\n// only resolve with `resolveJsonModule`.\nexport const tokens: Tokens = tokensJson\n\nexport type { Tokens }\nexport type TokensBase = Tokens['base']\nexport type TokensSemantic = Tokens['semantic']\nexport type TokensComponent = Tokens['component']\n","// Icon type definitions for external consumption\n// This is a self-contained type that doesn't depend on JSON imports\n// to ensure it works correctly in consuming projects\n\nimport iconsJson from '../styles/icons.json'\n\nexport type IconName =\n | 'add'\n | 'ai'\n | 'addRing'\n | 'arrowDown'\n | 'arrowLeft'\n | 'arrowRight'\n | 'arrowUp'\n | 'back'\n | 'bell'\n | 'cancel'\n | 'caret'\n | 'caretDown'\n | 'caretUp'\n | 'check'\n | 'checkRing'\n | 'close'\n | 'copy'\n | 'creditCard'\n | 'crossCircle'\n | 'directionRight'\n | 'directionUp'\n | 'edit'\n | 'export'\n | 'fileDocSearch'\n | 'filter'\n | 'info'\n | 'kebab'\n | 'lamp'\n | 'lineOut'\n | 'link'\n | 'meatballs'\n | 'menu'\n | 'message'\n | 'move'\n | 'mic'\n | 'order'\n | 'paper'\n | 'pause'\n | 'play'\n | 'playBack'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'star'\n | 'starFilled'\n | 'statusCancelled'\n | 'statusError'\n | 'statusInProgress'\n | 'statusInfo'\n | 'statusNotStarted'\n | 'statusPending'\n | 'statusScheduled'\n | 'statusSerious'\n | 'statusSuccess'\n | 'statusWarning'\n | 'stop'\n | 'table'\n | 'trash'\n | 'userBox'\n | 'view'\n | 'viewHide'\n | 'wallet'\n\n/** Semantic category for grouping icons by purpose */\nexport type IconCategory =\n | 'action'\n | 'communication'\n | 'content'\n | 'feedback'\n | 'media'\n | 'navigation'\n | 'object'\n | 'status'\n | 'user'\n\n/** Enriched metadata for each icon entry in icons.json */\nexport interface IconMetadata {\n /** SVG path data */\n path: string\n /** Display name of the icon */\n name: string\n /** What the icon visually depicts */\n description: string\n /** Semantic category for grouping */\n category: IconCategory\n /** Alternative names and search terms */\n aliases: string[]\n /** When and why to use this icon */\n intent: string\n /** Whether the icon is typically decorative (true) or informative (false) */\n decorativeDefault: boolean\n /** Suggested accessible label when the icon conveys meaning */\n ariaLabelDefault: string\n}\n\n/** The full icon registry keyed by IconName */\nexport type IconRegistry = Record<IconName, IconMetadata>\n\n// Typed as IconRegistry so emitted .d.ts files don't import JSON (needs `resolveJsonModule` in consumers).\nexport const iconsData = iconsJson as IconRegistry\n"],"names":["tokens","tokensJson","iconsData","iconsJson"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACO,IAAMA,MAAM,GAAWC;;ACP9B;AACA;AACA;AAuGA;AACO,IAAMC,SAAS,GAAGC;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export type StatusShape = 'error' | 'serious' | 'warning' | 'success' | 'info' | 'inProgress';
2
+ export declare const statusShapes: Record<StatusShape, string>;
@@ -0,0 +1,2 @@
1
+ export type StatusShape = 'error' | 'serious' | 'warning' | 'success' | 'info' | 'inProgress';
2
+ export declare const statusShapes: Record<StatusShape, string>;
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ // Shape indicators for the six coloured statuses (decision 0045): filled silhouettes on the
3
+ // 24px grid, each the same outline as its status icon. Internal: they aren't public icons, so a
4
+ // bare shape can't be shown without its label. The shape indicator (#264) and the small
5
+ // StatusLabel and InlineAlert sizes render them at 12px or more, with a darker edge.
6
+ var statusShapes = {
7
+ error: 'M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067Z',
8
+ serious: 'M12 2L22 12L12 22L2 12Z',
9
+ warning: 'M12 2.5L22 20.5L2 20.5Z',
10
+ success: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2Z',
11
+ info: 'M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2Z',
12
+ inProgress: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z'
13
+ };
14
+
15
+ export { statusShapes };
16
+ //# sourceMappingURL=statusShapes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusShapes.mjs","sources":["../../src/lib/statusShapes.ts"],"sourcesContent":["// Shape indicators for the six coloured statuses (decision 0045): filled silhouettes on the\n// 24px grid, each the same outline as its status icon. Internal: they aren't public icons, so a\n// bare shape can't be shown without its label. The shape indicator (#264) and the small\n// StatusLabel and InlineAlert sizes render them at 12px or more, with a darker edge.\n\nexport type StatusShape = 'error' | 'serious' | 'warning' | 'success' | 'info' | 'inProgress'\n\nexport const statusShapes: Record<StatusShape, string> = {\n error: 'M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067Z',\n serious: 'M12 2L22 12L12 22L2 12Z',\n warning: 'M12 2.5L22 20.5L2 20.5Z',\n success: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2Z',\n info: 'M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2Z',\n inProgress: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z',\n}\n"],"names":["statusShapes","error","serious","warning","success","info","inProgress"],"mappings":";AAAA;AACA;AACA;AACA;AAIO,IAAMA,YAAY,GAAgC;AACvDC,EAAAA,KAAK,EAAE,sEAAsE;AAC7EC,EAAAA,OAAO,EAAE,yBAAyB;AAClCC,EAAAA,OAAO,EAAE,yBAAyB;AAClCC,EAAAA,OAAO,EAAE,2CAA2C;AACpDC,EAAAA,IAAI,EAAE,6EAA6E;AACnFC,EAAAA,UAAU,EAAE,sGAAA;;;;;"}
@@ -88,11 +88,11 @@ var rowStates = {
88
88
  },
89
89
  hover: {
90
90
  background: rowFill['accent-muted-hover'],
91
- text: rowText['accent-hover']
91
+ text: rowText.accent
92
92
  },
93
93
  pressed: {
94
94
  background: rowFill['accent-muted-pressed'],
95
- text: rowText['accent-pressed']
95
+ text: rowText.accent
96
96
  }
97
97
  }
98
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"styleUtils.mjs","sources":["../../src/lib/styleUtils.ts"],"sourcesContent":["import { css, keyframes } from 'styled-components'\nimport tokens from './cssTokens'\n\n// Breakpoints from the semantic tokens (decision 0014)\nexport const breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nexport const media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Windows Contrast Themes and other forced-colours modes (decision 0038). The browser swaps in\n// the user's system colours, drops background colours and box-shadows, and keeps borders and\n// outlines. Inside this query, give a control that shows its edge with a fill alone a border,\n// and draw selected and checked states with system colours: ButtonText for control edges,\n// Highlight and HighlightText for selected and checked, GrayText for disabled, CanvasText for\n// content. Use forced-color-adjust: none only on a fill that carries state.\nexport const forcedColors = '@media (forced-colors: active)'\n\n/** A control's edge in forced colours, for a control that shows its edge with a fill alone. The\n * border follows the text colour the browser picks: ButtonText, LinkText, or GrayText when disabled. */\nexport const forcedColorsEdge = `${forcedColors} {\n border: ${tokens.semantic.border.width.thin} solid currentColor;\n}`\n\n// Wrap fallbacks for people who ask for less motion (decision 0005): movement becomes\n// an instant change or a simple fade. Colour and opacity transitions need no fallback.\nexport const reducedMotion = '@media (prefers-reduced-motion: reduce)'\n\n// No `from` keyframe: the fade starts from the element's current opacity, including a\n// still-running entrance, so closing mid-entrance doesn't jump back to fully visible.\nconst fadeOut = keyframes`\n to { opacity: 0; }\n`\n\n// Exit for overlays that unmount (use with usePresence). Append `exitAnimation` to each of\n// the element's `animation` declarations while it exits: the entrance stays in the list,\n// so it isn't restarted, and the fade runs on top of it. A fade is already the\n// reduced-motion form, so it needs no fallback of its own. While it fades, the backdrop\n// still catches clicks (so they can't reach the page behind it) and the panel is inert.\n// Exits accelerate: things leaving speed up as they go (decision 0037).\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.accelerate} forwards`\n\n// Content for screen readers only. The 1px size and -1px margin are part of the standard\n// visually-hidden technique, not design values, so they aren't tokens.\nexport const visuallyHidden = css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\n// One interaction pattern for rows and items: list items, menu and listbox options, sidebars\n// (decision 0030). Unselected rows follow the naked Button's ladder; selected rows follow the\n// light-blue selected ladder, with the text darkening with its fill (decision 0016). Unselected\n// rows leave their text colour to the component, so a destructive row can stay red.\nconst { fill: rowFill, text: rowText } = tokens.semantic.color\n\nexport interface RowState {\n background: string\n text?: string\n}\n\nexport const rowStates: Record<'unselected' | 'selected', Record<'rest' | 'hover' | 'pressed', RowState>> = {\n unselected: {\n rest: { background: 'transparent' },\n hover: { background: rowFill.muted },\n pressed: { background: rowFill.default },\n },\n selected: {\n rest: { background: rowFill['accent-muted'], text: rowText.accent },\n hover: { background: rowFill['accent-muted-hover'], text: rowText['accent-hover'] },\n pressed: { background: rowFill['accent-muted-pressed'], text: rowText['accent-pressed'] },\n },\n}\n\nconst rowDeclarations = ({ background, text }: RowState, textSelector?: string) => {\n if (!text) return `background-color: ${background};`\n return textSelector\n ? `background-color: ${background};\\n ${textSelector} { color: ${text}; }`\n : `background-color: ${background};\\n color: ${text};`\n}\n\n/**\n * The background (and, when selected, text) of an interactive row in every state.\n * - `focused`: keyboard focus that isn't DOM focus, such as a listbox option under\n * aria-activedescendant. It shows the hover state.\n * - `disabled`: shows the resting state, with no hover or press.\n * - `textSelector`: a descendant to colour when the row's text isn't the row itself, for example\n * text set by Typography. Pass it without `&`.\n */\nexport const interactiveRow = ({\n selected = false,\n focused = false,\n disabled = false,\n textSelector,\n}: {\n selected?: boolean\n focused?: boolean\n disabled?: boolean\n textSelector?: string\n} = {}) => {\n const states = selected ? rowStates.selected : rowStates.unselected\n if (disabled) return `${rowDeclarations(states.rest, textSelector)}\\n${rowForcedColors({ selected, focused, disabled, textSelector })}`\n return `\n ${rowDeclarations(focused ? states.hover : states.rest, textSelector)}\n\n &:hover {\n ${rowDeclarations(states.hover, textSelector)}\n }\n\n &:active {\n ${rowDeclarations(states.pressed, textSelector)}\n }\n\n ${rowForcedColors({ selected, focused, disabled, textSelector })}\n`\n}\n\n// Rows in forced colours (decision 0038): fills are dropped, so a selected row takes the system\n// selection colours, and a hovered or keyboard-active row is outlined in Highlight.\nconst rowForcedColors = ({\n selected,\n focused,\n disabled,\n textSelector,\n}: {\n selected: boolean\n focused: boolean\n disabled: boolean\n textSelector?: string\n}) => {\n const text = (color: string) => (textSelector ? `color: ${color};\\n ${textSelector} { color: ${color}; }` : `color: ${color};`)\n const hover = `outline: ${tokens.semantic.border.width.thin} solid Highlight;\\n outline-offset: calc(-1 * ${tokens.semantic.border.width.thin});`\n // A row that doesn't respond (disabled, or not interactive at all) keeps its selection but has\n // no hover outline. Disabled text is the component's to colour: callers also pass this for\n // static rows, which must stay CanvasText.\n // A selected row keeps forced-color-adjust: auto: the browser keeps system colours an author\n // sets, so the row stays Highlight with HighlightText. Its descendants' own colours would be\n // forced to CanvasText, so they inherit HighlightText, and anything drawn with a fill inside\n // (a chip or tag as the row's badge) drops it and keeps its edge. The doubled class outranks\n // the descendants' own rules.\n return `${forcedColors} {\n ${selected ? `background-color: Highlight;\\n ${text('HighlightText')}\\n && * {\\n color: inherit;\\n background-color: transparent;\\n }` : ''}\n ${!disabled && focused ? hover : ''}\n ${disabled ? '' : `&:hover {\\n ${hover}\\n }`}\n }`\n}\n"],"names":["breakpoints","xs","tokens","semantic","breakpoint","sm","md","lg","xl","media","concat","forcedColors","forcedColorsEdge","border","width","thin","reducedMotion","fadeOut","keyframes","templateObject_1","__makeTemplateObject","exitAnimation","css","templateObject_2","motion","duration","fast","easing","accelerate","visuallyHidden","_a","color","rowFill","fill","rowText","text","rowStates","unselected","rest","background","hover","muted","pressed","selected","accent","rowDeclarations","textSelector","interactiveRow","_b","_c","_d","focused","_e","disabled","states","rowForcedColors"],"mappings":"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"}
1
+ {"version":3,"file":"styleUtils.mjs","sources":["../../src/lib/styleUtils.ts"],"sourcesContent":["import { css, keyframes } from 'styled-components'\nimport tokens from './cssTokens'\n\n// Breakpoints from the semantic tokens (decision 0014)\nexport const breakpoints = {\n xs: tokens.semantic.breakpoint.xs,\n sm: tokens.semantic.breakpoint.sm,\n md: tokens.semantic.breakpoint.md,\n lg: tokens.semantic.breakpoint.lg,\n xl: tokens.semantic.breakpoint.xl,\n '2xl': tokens.semantic.breakpoint['2xl'],\n}\n\n// Media query helpers\nexport const media = {\n xs: `@media (min-width: ${breakpoints.xs})`,\n sm: `@media (min-width: ${breakpoints.sm})`,\n md: `@media (min-width: ${breakpoints.md})`,\n lg: `@media (min-width: ${breakpoints.lg})`,\n xl: `@media (min-width: ${breakpoints.xl})`,\n '2xl': `@media (min-width: ${breakpoints['2xl']})`,\n}\n\n// Windows Contrast Themes and other forced-colours modes (decision 0038). The browser swaps in\n// the user's system colours, drops background colours and box-shadows, and keeps borders and\n// outlines. Inside this query, give a control that shows its edge with a fill alone a border,\n// and draw selected and checked states with system colours: ButtonText for control edges,\n// Highlight and HighlightText for selected and checked, GrayText for disabled, CanvasText for\n// content. Use forced-color-adjust: none only on a fill that carries state.\nexport const forcedColors = '@media (forced-colors: active)'\n\n/** A control's edge in forced colours, for a control that shows its edge with a fill alone. The\n * border follows the text colour the browser picks: ButtonText, LinkText, or GrayText when disabled. */\nexport const forcedColorsEdge = `${forcedColors} {\n border: ${tokens.semantic.border.width.thin} solid currentColor;\n}`\n\n// Wrap fallbacks for people who ask for less motion (decision 0005): movement becomes\n// an instant change or a simple fade. Colour and opacity transitions need no fallback.\nexport const reducedMotion = '@media (prefers-reduced-motion: reduce)'\n\n// No `from` keyframe: the fade starts from the element's current opacity, including a\n// still-running entrance, so closing mid-entrance doesn't jump back to fully visible.\nconst fadeOut = keyframes`\n to { opacity: 0; }\n`\n\n// Exit for overlays that unmount (use with usePresence). Append `exitAnimation` to each of\n// the element's `animation` declarations while it exits: the entrance stays in the list,\n// so it isn't restarted, and the fade runs on top of it. A fade is already the\n// reduced-motion form, so it needs no fallback of its own. While it fades, the backdrop\n// still catches clicks (so they can't reach the page behind it) and the panel is inert.\n// Exits accelerate: things leaving speed up as they go (decision 0037).\nexport const exitAnimation = css`, ${fadeOut} ${tokens.semantic.motion.duration.fast} ${tokens.semantic.motion.easing.accelerate} forwards`\n\n// Content for screen readers only. The 1px size and -1px margin are part of the standard\n// visually-hidden technique, not design values, so they aren't tokens.\nexport const visuallyHidden = css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`\n\n// One interaction pattern for rows and items: list items, menu and listbox options, sidebars\n// (decision 0030). Unselected rows follow the naked Button's ladder; selected rows follow the\n// light-blue selected ladder, with the text darkening with its fill (decision 0016). Unselected\n// rows leave their text colour to the component, so a destructive row can stay red.\nconst { fill: rowFill, text: rowText } = tokens.semantic.color\n\nexport interface RowState {\n background: string\n text?: string\n}\n\nexport const rowStates: Record<'unselected' | 'selected', Record<'rest' | 'hover' | 'pressed', RowState>> = {\n unselected: {\n rest: { background: 'transparent' },\n hover: { background: rowFill.muted },\n pressed: { background: rowFill.default },\n },\n selected: {\n rest: { background: rowFill['accent-muted'], text: rowText.accent },\n hover: { background: rowFill['accent-muted-hover'], text: rowText.accent },\n pressed: { background: rowFill['accent-muted-pressed'], text: rowText.accent },\n },\n}\n\nconst rowDeclarations = ({ background, text }: RowState, textSelector?: string) => {\n if (!text) return `background-color: ${background};`\n return textSelector\n ? `background-color: ${background};\\n ${textSelector} { color: ${text}; }`\n : `background-color: ${background};\\n color: ${text};`\n}\n\n/**\n * The background (and, when selected, text) of an interactive row in every state.\n * - `focused`: keyboard focus that isn't DOM focus, such as a listbox option under\n * aria-activedescendant. It shows the hover state.\n * - `disabled`: shows the resting state, with no hover or press.\n * - `textSelector`: a descendant to colour when the row's text isn't the row itself, for example\n * text set by Typography. Pass it without `&`.\n */\nexport const interactiveRow = ({\n selected = false,\n focused = false,\n disabled = false,\n textSelector,\n}: {\n selected?: boolean\n focused?: boolean\n disabled?: boolean\n textSelector?: string\n} = {}) => {\n const states = selected ? rowStates.selected : rowStates.unselected\n if (disabled) return `${rowDeclarations(states.rest, textSelector)}\\n${rowForcedColors({ selected, focused, disabled, textSelector })}`\n return `\n ${rowDeclarations(focused ? states.hover : states.rest, textSelector)}\n\n &:hover {\n ${rowDeclarations(states.hover, textSelector)}\n }\n\n &:active {\n ${rowDeclarations(states.pressed, textSelector)}\n }\n\n ${rowForcedColors({ selected, focused, disabled, textSelector })}\n`\n}\n\n// Rows in forced colours (decision 0038): fills are dropped, so a selected row takes the system\n// selection colours, and a hovered or keyboard-active row is outlined in Highlight.\nconst rowForcedColors = ({\n selected,\n focused,\n disabled,\n textSelector,\n}: {\n selected: boolean\n focused: boolean\n disabled: boolean\n textSelector?: string\n}) => {\n const text = (color: string) => (textSelector ? `color: ${color};\\n ${textSelector} { color: ${color}; }` : `color: ${color};`)\n const hover = `outline: ${tokens.semantic.border.width.thin} solid Highlight;\\n outline-offset: calc(-1 * ${tokens.semantic.border.width.thin});`\n // A row that doesn't respond (disabled, or not interactive at all) keeps its selection but has\n // no hover outline. Disabled text is the component's to colour: callers also pass this for\n // static rows, which must stay CanvasText.\n // A selected row keeps forced-color-adjust: auto: the browser keeps system colours an author\n // sets, so the row stays Highlight with HighlightText. Its descendants' own colours would be\n // forced to CanvasText, so they inherit HighlightText, and anything drawn with a fill inside\n // (a chip or tag as the row's badge) drops it and keeps its edge. The doubled class outranks\n // the descendants' own rules.\n return `${forcedColors} {\n ${selected ? `background-color: Highlight;\\n ${text('HighlightText')}\\n && * {\\n color: inherit;\\n background-color: transparent;\\n }` : ''}\n ${!disabled && focused ? hover : ''}\n ${disabled ? '' : `&:hover {\\n ${hover}\\n }`}\n }`\n}\n"],"names":["breakpoints","xs","tokens","semantic","breakpoint","sm","md","lg","xl","media","concat","forcedColors","forcedColorsEdge","border","width","thin","reducedMotion","fadeOut","keyframes","templateObject_1","__makeTemplateObject","exitAnimation","css","templateObject_2","motion","duration","fast","easing","accelerate","visuallyHidden","_a","color","rowFill","fill","rowText","text","rowStates","unselected","rest","background","hover","muted","pressed","selected","accent","rowDeclarations","textSelector","interactiveRow","_b","_c","_d","focused","_e","disabled","states","rowForcedColors"],"mappings":"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"}
@@ -4,6 +4,15 @@ type Semantic = Tokens['semantic'];
4
4
  export declare const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], string>;
5
5
  /** Box's `borderRadius` prop: the old radius keys, read from `radius`. */
6
6
  export declare const radiusByKey: Record<keyof Semantic['border']['radius'], string>;
7
+ /** Fills with no value of their own: a strong fill's states mix in an overlay (decision 0048). */
8
+ type StateMixedFill = 'emphasis-hover' | 'emphasis-pressed';
9
+ /**
10
+ * Box's `bg` values in the semantic grammar (decision 0031, #304): the token's path below
11
+ * `semantic`, such as `surface.raised` or `color.fill.muted`.
12
+ */
13
+ export type BackgroundPath = `surface.${keyof Semantic['surface']}` | `color.fill.${Exclude<keyof Semantic['color']['fill'], StateMixedFill>}`;
14
+ /** Box's `bg` prop: the grammar's token paths, read from the token at that path. */
15
+ export declare const backgroundByPath: Record<BackgroundPath, string>;
7
16
  /** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */
8
17
  export declare const backgroundByKey: Record<keyof Semantic['color']['background'], string>;
9
18
  /** Box's `color` prop: text colours, old and new keys. */
@@ -4,6 +4,15 @@ type Semantic = Tokens['semantic'];
4
4
  export declare const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], string>;
5
5
  /** Box's `borderRadius` prop: the old radius keys, read from `radius`. */
6
6
  export declare const radiusByKey: Record<keyof Semantic['border']['radius'], string>;
7
+ /** Fills with no value of their own: a strong fill's states mix in an overlay (decision 0048). */
8
+ type StateMixedFill = 'emphasis-hover' | 'emphasis-pressed';
9
+ /**
10
+ * Box's `bg` values in the semantic grammar (decision 0031, #304): the token's path below
11
+ * `semantic`, such as `surface.raised` or `color.fill.muted`.
12
+ */
13
+ export type BackgroundPath = `surface.${keyof Semantic['surface']}` | `color.fill.${Exclude<keyof Semantic['color']['fill'], StateMixedFill>}`;
14
+ /** Box's `bg` prop: the grammar's token paths, read from the token at that path. */
15
+ export declare const backgroundByPath: Record<BackgroundPath, string>;
7
16
  /** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */
8
17
  export declare const backgroundByKey: Record<keyof Semantic['color']['background'], string>;
9
18
  /** Box's `color` prop: text colours, old and new keys. */
@@ -8,7 +8,8 @@ var semantic = tokens.semantic;
8
8
  var color = semantic.color,
9
9
  space = semantic.space,
10
10
  radius = semantic.radius,
11
- surface = semantic.surface;
11
+ surface = semantic.surface,
12
+ opacity = semantic.opacity;
12
13
  /** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */
13
14
  var spaceByLayoutKey = {
14
15
  none: space[0],
@@ -42,6 +43,40 @@ var radiusByKey = {
42
43
  '3xl': radius['3xl'],
43
44
  circle: radius.full
44
45
  };
46
+ /** Box's `bg` prop: the grammar's token paths, read from the token at that path. */
47
+ var backgroundByPath = {
48
+ 'surface.base': surface.base,
49
+ 'surface.raised': surface.raised,
50
+ 'surface.scrim': surface.scrim,
51
+ 'color.fill.emphasis': color.fill.emphasis,
52
+ 'color.fill.muted': color.fill.muted,
53
+ 'color.fill.inverse': color.fill.inverse,
54
+ 'color.fill.accent': color.fill.accent,
55
+ 'color.fill.accent-hover': color.fill['accent-hover'],
56
+ 'color.fill.accent-pressed': color.fill['accent-pressed'],
57
+ 'color.fill.accent-muted': color.fill['accent-muted'],
58
+ 'color.fill.accent-muted-hover': color.fill['accent-muted-hover'],
59
+ 'color.fill.accent-muted-pressed': color.fill['accent-muted-pressed'],
60
+ 'color.fill.danger': color.fill.danger,
61
+ 'color.fill.danger-hover': color.fill['danger-hover'],
62
+ 'color.fill.danger-pressed': color.fill['danger-pressed'],
63
+ 'color.fill.danger-muted': color.fill['danger-muted'],
64
+ 'color.fill.success': color.fill.success,
65
+ 'color.fill.success-muted': color.fill['success-muted'],
66
+ 'color.fill.warning': color.fill.warning,
67
+ 'color.fill.warning-muted': color.fill['warning-muted'],
68
+ 'color.fill.serious': color.fill.serious,
69
+ 'color.fill.serious-muted': color.fill['serious-muted'],
70
+ 'color.fill.ai-muted': color.fill['ai-muted'],
71
+ 'color.fill.disabled': color.fill.disabled,
72
+ 'color.fill.default': color.fill["default"],
73
+ 'color.fill.default-hover': color.fill['default-hover'],
74
+ 'color.fill.default-pressed': color.fill['default-pressed'],
75
+ 'color.fill.none': color.fill.none,
76
+ 'color.fill.none-hover': color.fill['none-hover'],
77
+ 'color.fill.none-pressed': color.fill['none-pressed'],
78
+ 'color.fill.inverse-none-hover': color.fill['inverse-none-hover']
79
+ };
45
80
  /** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */
46
81
  var backgroundByKey = {
47
82
  "default": surface.base,
@@ -49,8 +84,9 @@ var backgroundByKey = {
49
84
  subtle: surface.raised,
50
85
  overlay: surface.scrim,
51
86
  emphasis: color.fill.emphasis,
52
- 'emphasis-hover': color.fill['emphasis-hover'],
53
- 'emphasis-active': color.fill['emphasis-pressed'],
87
+ // A strong fill's states mix its content colour in at the state-layer opacity (decision 0048)
88
+ 'emphasis-hover': "color-mix(in srgb, ".concat(color.fill.emphasis, ", ").concat(color.text.inverse, " calc(").concat(opacity.state.hover, " * 100%))"),
89
+ 'emphasis-active': "color-mix(in srgb, ".concat(color.fill.emphasis, ", ").concat(color.text.inverse, " calc(").concat(opacity.state.pressed, " * 100%))"),
54
90
  surface: color.fill.muted,
55
91
  inverse: color.fill.inverse,
56
92
  interactive: color.fill.accent,
@@ -81,21 +117,22 @@ var backgroundByKey = {
81
117
  /** Box's `color` prop: text colours, old and new keys. */
82
118
  var textColorByKey = {
83
119
  "default": color.text["default"],
84
- emphasis: color.text.emphasis,
120
+ emphasis: color.text["default"],
85
121
  inverse: color.text.inverse,
86
122
  disabled: color.text.disabled,
87
123
  success: color.text.success,
88
124
  warning: color.text.warning,
89
125
  muted: color.text.muted,
90
126
  accent: color.text.accent,
91
- 'accent-hover': color.text['accent-hover'],
92
- 'accent-pressed': color.text['accent-pressed'],
127
+ 'accent-hover': color.text.accent,
128
+ 'accent-pressed': color.text.accent,
93
129
  danger: color.text.danger,
130
+ serious: color.text.serious,
94
131
  ai: color.text.ai,
95
132
  subdued: color.text.muted,
96
133
  interactive: color.text.accent,
97
- 'interactive-hover': color.text['accent-hover'],
98
- 'interactive-active': color.text['accent-pressed'],
134
+ 'interactive-hover': color.text.accent,
135
+ 'interactive-active': color.text.accent,
99
136
  error: color.text.danger
100
137
  };
101
138
  /** Box's border props: border colours, old and new keys. */
@@ -104,13 +141,15 @@ var borderColorByKey = {
104
141
  success: color.border.success,
105
142
  warning: color.border.warning,
106
143
  none: color.border.none,
107
- emphasis: color.border.emphasis,
144
+ emphasis: color.border["default"],
108
145
  input: color.border.input,
109
146
  'input-hover': color.border['input-hover'],
110
147
  focus: color.border.focus,
111
148
  accent: color.border.accent,
112
149
  danger: color.border.danger,
113
- subtle: color.border.emphasis,
150
+ serious: color.border.serious,
151
+ ai: color.border.ai,
152
+ subtle: color.border["default"],
114
153
  control: color.border.input,
115
154
  // `strong` split by use (0031); as a generic firm outline it is the hovered-input border
116
155
  strong: color.border['input-hover'],
@@ -118,5 +157,5 @@ var borderColorByKey = {
118
157
  error: color.border.danger
119
158
  };
120
159
 
121
- export { backgroundByKey, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey };
160
+ export { backgroundByKey, backgroundByPath, borderColorByKey, radiusByKey, spaceByLayoutKey, textColorByKey };
122
161
  //# sourceMappingURL=tokenAliases.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAliases.mjs","sources":["../../src/lib/tokenAliases.ts"],"sourcesContent":["import tokens from './cssTokens'\nimport type { Tokens } from '../types/tokens'\n\n// Props whose values are token keys keep their published vocabulary in 2.x (P7), but read the\n// semantic grammar's names (decision 0031, #189). Each map covers every key the prop type allows,\n// so TypeScript fails here if a key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */\nexport const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], string> = {\n none: space[0],\n xs: space[100],\n sm: space[200],\n md: space[300],\n lg: space[400],\n xl: space[500],\n '2xl': space[600],\n '3xl': space[700],\n '4xl': space[800],\n '5xl': space[900],\n '6xl': space[1000],\n '7xl': space[1200],\n '8xl': space[1400],\n '9xl': space[1600],\n '10xl': space[2000],\n '11xl': space[2400],\n // A keyword, not a step: it stays until the keyword question is settled (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` prop: the old radius keys, read from `radius`. */\nexport const radiusByKey: Record<keyof Semantic['border']['radius'], string> = {\n none: radius.none,\n xs: radius.xs,\n sm: radius.sm,\n md: radius.md,\n lg: radius.lg,\n xl: radius.xl,\n '2xl': radius['2xl'],\n '3xl': radius['3xl'],\n circle: radius.full,\n}\n\n/** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */\nexport const backgroundByKey: Record<keyof Semantic['color']['background'], string> = {\n default: surface.base,\n page: surface.base,\n subtle: surface.raised,\n overlay: surface.scrim,\n emphasis: color.fill.emphasis,\n 'emphasis-hover': color.fill['emphasis-hover'],\n 'emphasis-active': color.fill['emphasis-pressed'],\n surface: color.fill.muted,\n inverse: color.fill.inverse,\n interactive: color.fill.accent,\n 'interactive-hover': color.fill['accent-hover'],\n 'interactive-active': color.fill['accent-pressed'],\n 'interactive-subtle': color.fill['accent-muted'],\n 'interactive-subtle-hover': color.fill['accent-muted-hover'],\n 'interactive-subtle-active': color.fill['accent-muted-pressed'],\n error: color.fill.danger,\n 'error-hover': color.fill['danger-hover'],\n 'error-active': color.fill['danger-pressed'],\n 'error-subtle': color.fill['danger-muted'],\n success: color.fill.success,\n 'success-subtle': color.fill['success-muted'],\n warning: color.fill.warning,\n 'warning-subtle': color.fill['warning-muted'],\n disabled: color.fill.disabled,\n neutral: color.fill.default,\n 'neutral-hover': color.fill['default-hover'],\n 'neutral-active': color.fill['default-pressed'],\n transparent: color.fill.none,\n 'hover-overlay': color.fill['none-hover'],\n 'active-overlay': color.fill['none-pressed'],\n 'inverse-overlay': color.fill['inverse-none-hover'],\n // Moved to the component tier (decision 0031 §6)\n progressTrack: tokens.component.track.background,\n}\n\n/** Box's `color` prop: text colours, old and new keys. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = {\n default: color.text.default,\n emphasis: color.text.emphasis,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n success: color.text.success,\n warning: color.text.warning,\n muted: color.text.muted,\n accent: color.text.accent,\n 'accent-hover': color.text['accent-hover'],\n 'accent-pressed': color.text['accent-pressed'],\n danger: color.text.danger,\n ai: color.text.ai,\n subdued: color.text.muted,\n interactive: color.text.accent,\n 'interactive-hover': color.text['accent-hover'],\n 'interactive-active': color.text['accent-pressed'],\n error: color.text.danger,\n}\n\n/** Box's border props: border colours, old and new keys. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = {\n default: color.border.default,\n success: color.border.success,\n warning: color.border.warning,\n none: color.border.none,\n emphasis: color.border.emphasis,\n input: color.border.input,\n 'input-hover': color.border['input-hover'],\n focus: color.border.focus,\n accent: color.border.accent,\n danger: color.border.danger,\n subtle: color.border.emphasis,\n control: color.border.input,\n // `strong` split by use (0031); as a generic firm outline it is the hovered-input border\n strong: color.border['input-hover'],\n interactive: color.border.accent,\n error: color.border.danger,\n}\n"],"names":["semantic","tokens","color","space","radius","surface","spaceByLayoutKey","none","xs","sm","md","lg","xl","auto","spacing","layout","radiusByKey","circle","full","backgroundByKey","base","page","subtle","raised","overlay","scrim","emphasis","fill","muted","inverse","interactive","accent","error","danger","success","warning","disabled","neutral","transparent","progressTrack","component","track","background","textColorByKey","text","ai","subdued","borderColorByKey","border","input","focus","control","strong"],"mappings":";;;AAGA;AACA;AACA;AACQ,IAAAA,QAAQ,GAAKC,MAAM,CAAAD,QAAX,CAAA;AACR,IAAAE,KAAK,GAA6BF,QAAQ,MAArC;EAAEG,KAAK,GAAsBH,QAAQ,CAAAG,KAA9B;EAAEC,MAAM,GAAcJ,QAAQ,CAAtBI,MAAA;EAAEC,OAAO,GAAKL,QAAQ,QAAb,CAAA;AAIrC;AACO,IAAMM,gBAAgB,GAAwD;AACnFC,EAAAA,IAAI,EAAEJ,KAAK,CAAC,CAAC,CAAC;AACdK,EAAAA,EAAE,EAAEL,KAAK,CAAC,GAAG,CAAC;AACdM,EAAAA,EAAE,EAAEN,KAAK,CAAC,GAAG,CAAC;AACdO,EAAAA,EAAE,EAAEP,KAAK,CAAC,GAAG,CAAC;AACdQ,EAAAA,EAAE,EAAER,KAAK,CAAC,GAAG,CAAC;AACdS,EAAAA,EAAE,EAAET,KAAK,CAAC,GAAG,CAAC;AACd,EAAA,KAAK,EAAEA,KAAK,CAAC,GAAG,CAAC;AACjB,EAAA,KAAK,EAAEA,KAAK,CAAC,GAAG,CAAC;AACjB,EAAA,KAAK,EAAEA,KAAK,CAAC,GAAG,CAAC;AACjB,EAAA,KAAK,EAAEA,KAAK,CAAC,GAAG,CAAC;AACjB,EAAA,KAAK,EAAEA,KAAK,CAAC,IAAI,CAAC;AAClB,EAAA,KAAK,EAAEA,KAAK,CAAC,IAAI,CAAC;AAClB,EAAA,KAAK,EAAEA,KAAK,CAAC,IAAI,CAAC;AAClB,EAAA,KAAK,EAAEA,KAAK,CAAC,IAAI,CAAC;AAClB,EAAA,MAAM,EAAEA,KAAK,CAAC,IAAI,CAAC;AACnB,EAAA,MAAM,EAAEA,KAAK,CAAC,IAAI,CAAC;AACnB;AACAU,EAAAA,IAAI,EAAEb,QAAQ,CAACc,OAAO,CAACC,MAAM,CAACF,IAAAA;EAC/B;AAED;AACO,IAAMG,WAAW,GAAuD;EAC7ET,IAAI,EAAEH,MAAM,CAACG,IAAI;EACjBC,EAAE,EAAEJ,MAAM,CAACI,EAAE;EACbC,EAAE,EAAEL,MAAM,CAACK,EAAE;EACbC,EAAE,EAAEN,MAAM,CAACM,EAAE;EACbC,EAAE,EAAEP,MAAM,CAACO,EAAE;EACbC,EAAE,EAAER,MAAM,CAACQ,EAAE;AACb,EAAA,KAAK,EAAER,MAAM,CAAC,KAAK,CAAC;AACpB,EAAA,KAAK,EAAEA,MAAM,CAAC,KAAK,CAAC;EACpBa,MAAM,EAAEb,MAAM,CAACc,IAAAA;EAChB;AAED;AACO,IAAMC,eAAe,GAA0D;EACpF,SAASd,EAAAA,OAAO,CAACe,IAAI;EACrBC,IAAI,EAAEhB,OAAO,CAACe,IAAI;EAClBE,MAAM,EAAEjB,OAAO,CAACkB,MAAM;EACtBC,OAAO,EAAEnB,OAAO,CAACoB,KAAK;AACtBC,EAAAA,QAAQ,EAAExB,KAAK,CAACyB,IAAI,CAACD,QAAQ;AAC7B,EAAA,gBAAgB,EAAExB,KAAK,CAACyB,IAAI,CAAC,gBAAgB,CAAC;AAC9C,EAAA,iBAAiB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,kBAAkB,CAAC;AACjDtB,EAAAA,OAAO,EAAEH,KAAK,CAACyB,IAAI,CAACC,KAAK;AACzBC,EAAAA,OAAO,EAAE3B,KAAK,CAACyB,IAAI,CAACE,OAAO;AAC3BC,EAAAA,WAAW,EAAE5B,KAAK,CAACyB,IAAI,CAACI,MAAM;AAC9B,EAAA,mBAAmB,EAAE7B,KAAK,CAACyB,IAAI,CAAC,cAAc,CAAC;AAC/C,EAAA,oBAAoB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,gBAAgB,CAAC;AAClD,EAAA,oBAAoB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,cAAc,CAAC;AAChD,EAAA,0BAA0B,EAAEzB,KAAK,CAACyB,IAAI,CAAC,oBAAoB,CAAC;AAC5D,EAAA,2BAA2B,EAAEzB,KAAK,CAACyB,IAAI,CAAC,sBAAsB,CAAC;AAC/DK,EAAAA,KAAK,EAAE9B,KAAK,CAACyB,IAAI,CAACM,MAAM;AACxB,EAAA,aAAa,EAAE/B,KAAK,CAACyB,IAAI,CAAC,cAAc,CAAC;AACzC,EAAA,cAAc,EAAEzB,KAAK,CAACyB,IAAI,CAAC,gBAAgB,CAAC;AAC5C,EAAA,cAAc,EAAEzB,KAAK,CAACyB,IAAI,CAAC,cAAc,CAAC;AAC1CO,EAAAA,OAAO,EAAEhC,KAAK,CAACyB,IAAI,CAACO,OAAO;AAC3B,EAAA,gBAAgB,EAAEhC,KAAK,CAACyB,IAAI,CAAC,eAAe,CAAC;AAC7CQ,EAAAA,OAAO,EAAEjC,KAAK,CAACyB,IAAI,CAACQ,OAAO;AAC3B,EAAA,gBAAgB,EAAEjC,KAAK,CAACyB,IAAI,CAAC,eAAe,CAAC;AAC7CS,EAAAA,QAAQ,EAAElC,KAAK,CAACyB,IAAI,CAACS,QAAQ;AAC7BC,EAAAA,OAAO,EAAEnC,KAAK,CAACyB,IAAI,CAAQ,SAAA,CAAA;AAC3B,EAAA,eAAe,EAAEzB,KAAK,CAACyB,IAAI,CAAC,eAAe,CAAC;AAC5C,EAAA,gBAAgB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,iBAAiB,CAAC;AAC/CW,EAAAA,WAAW,EAAEpC,KAAK,CAACyB,IAAI,CAACpB,IAAI;AAC5B,EAAA,eAAe,EAAEL,KAAK,CAACyB,IAAI,CAAC,YAAY,CAAC;AACzC,EAAA,gBAAgB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,cAAc,CAAC;AAC5C,EAAA,iBAAiB,EAAEzB,KAAK,CAACyB,IAAI,CAAC,oBAAoB,CAAC;AACnD;AACAY,EAAAA,aAAa,EAAEtC,MAAM,CAACuC,SAAS,CAACC,KAAK,CAACC,UAAAA;EACvC;AAED;AACO,IAAMC,cAAc,GAAoD;EAC7E,SAASzC,EAAAA,KAAK,CAAC0C,IAAI,CAAQ,SAAA,CAAA;AAC3BlB,EAAAA,QAAQ,EAAExB,KAAK,CAAC0C,IAAI,CAAClB,QAAQ;AAC7BG,EAAAA,OAAO,EAAE3B,KAAK,CAAC0C,IAAI,CAACf,OAAO;AAC3BO,EAAAA,QAAQ,EAAElC,KAAK,CAAC0C,IAAI,CAACR,QAAQ;AAC7BF,EAAAA,OAAO,EAAEhC,KAAK,CAAC0C,IAAI,CAACV,OAAO;AAC3BC,EAAAA,OAAO,EAAEjC,KAAK,CAAC0C,IAAI,CAACT,OAAO;AAC3BP,EAAAA,KAAK,EAAE1B,KAAK,CAAC0C,IAAI,CAAChB,KAAK;AACvBG,EAAAA,MAAM,EAAE7B,KAAK,CAAC0C,IAAI,CAACb,MAAM;AACzB,EAAA,cAAc,EAAE7B,KAAK,CAAC0C,IAAI,CAAC,cAAc,CAAC;AAC1C,EAAA,gBAAgB,EAAE1C,KAAK,CAAC0C,IAAI,CAAC,gBAAgB,CAAC;AAC9CX,EAAAA,MAAM,EAAE/B,KAAK,CAAC0C,IAAI,CAACX,MAAM;AACzBY,EAAAA,EAAE,EAAE3C,KAAK,CAAC0C,IAAI,CAACC,EAAE;AACjBC,EAAAA,OAAO,EAAE5C,KAAK,CAAC0C,IAAI,CAAChB,KAAK;AACzBE,EAAAA,WAAW,EAAE5B,KAAK,CAAC0C,IAAI,CAACb,MAAM;AAC9B,EAAA,mBAAmB,EAAE7B,KAAK,CAAC0C,IAAI,CAAC,cAAc,CAAC;AAC/C,EAAA,oBAAoB,EAAE1C,KAAK,CAAC0C,IAAI,CAAC,gBAAgB,CAAC;AAClDZ,EAAAA,KAAK,EAAE9B,KAAK,CAAC0C,IAAI,CAACX,MAAAA;EACnB;AAED;AACO,IAAMc,gBAAgB,GAAsD;EACjF,SAAS7C,EAAAA,KAAK,CAAC8C,MAAM,CAAQ,SAAA,CAAA;AAC7Bd,EAAAA,OAAO,EAAEhC,KAAK,CAAC8C,MAAM,CAACd,OAAO;AAC7BC,EAAAA,OAAO,EAAEjC,KAAK,CAAC8C,MAAM,CAACb,OAAO;AAC7B5B,EAAAA,IAAI,EAAEL,KAAK,CAAC8C,MAAM,CAACzC,IAAI;AACvBmB,EAAAA,QAAQ,EAAExB,KAAK,CAAC8C,MAAM,CAACtB,QAAQ;AAC/BuB,EAAAA,KAAK,EAAE/C,KAAK,CAAC8C,MAAM,CAACC,KAAK;AACzB,EAAA,aAAa,EAAE/C,KAAK,CAAC8C,MAAM,CAAC,aAAa,CAAC;AAC1CE,EAAAA,KAAK,EAAEhD,KAAK,CAAC8C,MAAM,CAACE,KAAK;AACzBnB,EAAAA,MAAM,EAAE7B,KAAK,CAAC8C,MAAM,CAACjB,MAAM;AAC3BE,EAAAA,MAAM,EAAE/B,KAAK,CAAC8C,MAAM,CAACf,MAAM;AAC3BX,EAAAA,MAAM,EAAEpB,KAAK,CAAC8C,MAAM,CAACtB,QAAQ;AAC7ByB,EAAAA,OAAO,EAAEjD,KAAK,CAAC8C,MAAM,CAACC,KAAK;AAC3B;AACAG,EAAAA,MAAM,EAAElD,KAAK,CAAC8C,MAAM,CAAC,aAAa,CAAC;AACnClB,EAAAA,WAAW,EAAE5B,KAAK,CAAC8C,MAAM,CAACjB,MAAM;AAChCC,EAAAA,KAAK,EAAE9B,KAAK,CAAC8C,MAAM,CAACf,MAAAA;;;;;"}
1
+ {"version":3,"file":"tokenAliases.mjs","sources":["../../src/lib/tokenAliases.ts"],"sourcesContent":["import tokens from './cssTokens'\nimport type { Tokens } from '../types/tokens'\n\n// Props whose values are token keys keep their published vocabulary in 2.x (P7), but read the\n// semantic grammar's names (decision 0031, #189). Each map covers every key the prop type allows,\n// so TypeScript fails here if a key is added without a mapping.\nconst { semantic } = tokens\nconst { color, space, radius, surface, opacity } = semantic\n\ntype Semantic = Tokens['semantic']\n\n/** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */\nexport const spaceByLayoutKey: Record<keyof Semantic['spacing']['layout'], string> = {\n none: space[0],\n xs: space[100],\n sm: space[200],\n md: space[300],\n lg: space[400],\n xl: space[500],\n '2xl': space[600],\n '3xl': space[700],\n '4xl': space[800],\n '5xl': space[900],\n '6xl': space[1000],\n '7xl': space[1200],\n '8xl': space[1400],\n '9xl': space[1600],\n '10xl': space[2000],\n '11xl': space[2400],\n // A keyword, not a step: it stays until the keyword question is settled (0031)\n auto: semantic.spacing.layout.auto,\n}\n\n/** Box's `borderRadius` prop: the old radius keys, read from `radius`. */\nexport const radiusByKey: Record<keyof Semantic['border']['radius'], string> = {\n none: radius.none,\n xs: radius.xs,\n sm: radius.sm,\n md: radius.md,\n lg: radius.lg,\n xl: radius.xl,\n '2xl': radius['2xl'],\n '3xl': radius['3xl'],\n circle: radius.full,\n}\n\n/** Fills with no value of their own: a strong fill's states mix in an overlay (decision 0048). */\ntype StateMixedFill = 'emphasis-hover' | 'emphasis-pressed'\n\n/**\n * Box's `bg` values in the semantic grammar (decision 0031, #304): the token's path below\n * `semantic`, such as `surface.raised` or `color.fill.muted`.\n */\nexport type BackgroundPath =\n | `surface.${keyof Semantic['surface']}`\n | `color.fill.${Exclude<keyof Semantic['color']['fill'], StateMixedFill>}`\n\n/** Box's `bg` prop: the grammar's token paths, read from the token at that path. */\nexport const backgroundByPath: Record<BackgroundPath, string> = {\n 'surface.base': surface.base,\n 'surface.raised': surface.raised,\n 'surface.scrim': surface.scrim,\n 'color.fill.emphasis': color.fill.emphasis,\n 'color.fill.muted': color.fill.muted,\n 'color.fill.inverse': color.fill.inverse,\n 'color.fill.accent': color.fill.accent,\n 'color.fill.accent-hover': color.fill['accent-hover'],\n 'color.fill.accent-pressed': color.fill['accent-pressed'],\n 'color.fill.accent-muted': color.fill['accent-muted'],\n 'color.fill.accent-muted-hover': color.fill['accent-muted-hover'],\n 'color.fill.accent-muted-pressed': color.fill['accent-muted-pressed'],\n 'color.fill.danger': color.fill.danger,\n 'color.fill.danger-hover': color.fill['danger-hover'],\n 'color.fill.danger-pressed': color.fill['danger-pressed'],\n 'color.fill.danger-muted': color.fill['danger-muted'],\n 'color.fill.success': color.fill.success,\n 'color.fill.success-muted': color.fill['success-muted'],\n 'color.fill.warning': color.fill.warning,\n 'color.fill.warning-muted': color.fill['warning-muted'],\n 'color.fill.serious': color.fill.serious,\n 'color.fill.serious-muted': color.fill['serious-muted'],\n 'color.fill.ai-muted': color.fill['ai-muted'],\n 'color.fill.disabled': color.fill.disabled,\n 'color.fill.default': color.fill.default,\n 'color.fill.default-hover': color.fill['default-hover'],\n 'color.fill.default-pressed': color.fill['default-pressed'],\n 'color.fill.none': color.fill.none,\n 'color.fill.none-hover': color.fill['none-hover'],\n 'color.fill.none-pressed': color.fill['none-pressed'],\n 'color.fill.inverse-none-hover': color.fill['inverse-none-hover'],\n}\n\n/** Box's `bg` prop: the old background keys, read from `surface` and `color.fill`. */\nexport const backgroundByKey: Record<keyof Semantic['color']['background'], string> = {\n default: surface.base,\n page: surface.base,\n subtle: surface.raised,\n overlay: surface.scrim,\n emphasis: color.fill.emphasis,\n // A strong fill's states mix its content colour in at the state-layer opacity (decision 0048)\n 'emphasis-hover': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.hover} * 100%))`,\n 'emphasis-active': `color-mix(in srgb, ${color.fill.emphasis}, ${color.text.inverse} calc(${opacity.state.pressed} * 100%))`,\n surface: color.fill.muted,\n inverse: color.fill.inverse,\n interactive: color.fill.accent,\n 'interactive-hover': color.fill['accent-hover'],\n 'interactive-active': color.fill['accent-pressed'],\n 'interactive-subtle': color.fill['accent-muted'],\n 'interactive-subtle-hover': color.fill['accent-muted-hover'],\n 'interactive-subtle-active': color.fill['accent-muted-pressed'],\n error: color.fill.danger,\n 'error-hover': color.fill['danger-hover'],\n 'error-active': color.fill['danger-pressed'],\n 'error-subtle': color.fill['danger-muted'],\n success: color.fill.success,\n 'success-subtle': color.fill['success-muted'],\n warning: color.fill.warning,\n 'warning-subtle': color.fill['warning-muted'],\n disabled: color.fill.disabled,\n neutral: color.fill.default,\n 'neutral-hover': color.fill['default-hover'],\n 'neutral-active': color.fill['default-pressed'],\n transparent: color.fill.none,\n 'hover-overlay': color.fill['none-hover'],\n 'active-overlay': color.fill['none-pressed'],\n 'inverse-overlay': color.fill['inverse-none-hover'],\n // Moved to the component tier (decision 0031 §6)\n progressTrack: tokens.component.track.background,\n}\n\n/** Box's `color` prop: text colours, old and new keys. */\nexport const textColorByKey: Record<keyof Semantic['color']['text'], string> = {\n default: color.text.default,\n emphasis: color.text.default,\n inverse: color.text.inverse,\n disabled: color.text.disabled,\n success: color.text.success,\n warning: color.text.warning,\n muted: color.text.muted,\n accent: color.text.accent,\n 'accent-hover': color.text.accent,\n 'accent-pressed': color.text.accent,\n danger: color.text.danger,\n serious: color.text.serious,\n ai: color.text.ai,\n subdued: color.text.muted,\n interactive: color.text.accent,\n 'interactive-hover': color.text.accent,\n 'interactive-active': color.text.accent,\n error: color.text.danger,\n}\n\n/** Box's border props: border colours, old and new keys. */\nexport const borderColorByKey: Record<keyof Semantic['color']['border'], string> = {\n default: color.border.default,\n success: color.border.success,\n warning: color.border.warning,\n none: color.border.none,\n emphasis: color.border.default,\n input: color.border.input,\n 'input-hover': color.border['input-hover'],\n focus: color.border.focus,\n accent: color.border.accent,\n danger: color.border.danger,\n serious: color.border.serious,\n ai: color.border.ai,\n subtle: color.border.default,\n control: color.border.input,\n // `strong` split by use (0031); as a generic firm outline it is the hovered-input border\n strong: color.border['input-hover'],\n interactive: color.border.accent,\n error: color.border.danger,\n}\n"],"names":["semantic","tokens","color","space","radius","surface","opacity","spaceByLayoutKey","none","xs","sm","md","lg","xl","auto","spacing","layout","radiusByKey","circle","full","backgroundByPath","base","raised","scrim","fill","emphasis","muted","inverse","accent","danger","success","warning","serious","disabled","backgroundByKey","page","subtle","overlay","concat","text","state","hover","pressed","interactive","error","neutral","transparent","progressTrack","component","track","background","textColorByKey","ai","subdued","borderColorByKey","border","input","focus","control","strong"],"mappings":"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"}
@@ -767,5 +767,146 @@
767
767
  "intent": "Use to indicate that an element can be moved, dragged, or repositioned",
768
768
  "decorativeDefault": false,
769
769
  "ariaLabelDefault": "Move"
770
+ },
771
+ "statusError": {
772
+ "path": "M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067ZM16.0953 4.9067L7.9047 4.9067L3.8094 12L7.9047 19.0933L16.0953 19.0933L20.1906 12ZM9.2071 7.7929L16.2071 14.7929L14.7929 16.2071L7.7929 9.2071ZM16.2071 9.2071L9.2071 16.2071L7.7929 14.7929L14.7929 7.7929Z",
773
+ "name": "statusError",
774
+ "description": "X inside a hexagon with a flat top edge",
775
+ "category": "status",
776
+ "aliases": [
777
+ "error",
778
+ "failed",
779
+ "blocked",
780
+ "danger"
781
+ ],
782
+ "intent": "Use for the error status: failed or blocked, needs action now (decision 0045). Shows in the danger colour with a label",
783
+ "decorativeDefault": false,
784
+ "ariaLabelDefault": "Error"
785
+ },
786
+ "statusSerious": {
787
+ "path": "M12 2L22 12L12 22L2 12ZM4.8284 12L12 19.1716L19.1716 12L12 4.8284ZM13 7.5L13 13.75L11 13.75L11 7.5ZM12 15.25A1 1 0 1 1 12 17.25A1 1 0 1 1 12 15.25Z",
788
+ "name": "statusSerious",
789
+ "description": "Exclamation mark inside a diamond",
790
+ "category": "status",
791
+ "aliases": [
792
+ "serious",
793
+ "severe",
794
+ "critical-warning"
795
+ ],
796
+ "intent": "Use for the serious status: will fail or cause harm without action (decision 0045). Shows in the serious colour with a label",
797
+ "decorativeDefault": false,
798
+ "ariaLabelDefault": "Serious"
799
+ },
800
+ "statusWarning": {
801
+ "path": "M12 2.5L22 20.5L2 20.5ZM5.399 18.5L18.601 18.5L12 6.6183ZM13 10.5L13 14.5L11 14.5L11 10.5ZM12 16A1 1 0 1 1 12 18A1 1 0 1 1 12 16Z",
802
+ "name": "statusWarning",
803
+ "description": "Exclamation mark inside a triangle",
804
+ "category": "status",
805
+ "aliases": [
806
+ "warning",
807
+ "caution",
808
+ "attention"
809
+ ],
810
+ "intent": "Use for the warning status: needs attention, not blocking (decision 0045). Shows in the warning colour with a label",
811
+ "decorativeDefault": false,
812
+ "ariaLabelDefault": "Warning"
813
+ },
814
+ "statusSuccess": {
815
+ "path": "M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM11.0674 16.4814L7.29297 12.707L8.70703 11.293L10.9326 13.5176L15.2314 8.35937L16.7686 9.64062L11.0674 16.4814Z",
816
+ "name": "statusSuccess",
817
+ "description": "Checkmark inside a circle",
818
+ "category": "status",
819
+ "aliases": [
820
+ "success",
821
+ "completed",
822
+ "done"
823
+ ],
824
+ "intent": "Use for the success status: done as intended (decision 0045). Shows in the success colour with a label",
825
+ "decorativeDefault": false,
826
+ "ariaLabelDefault": "Success"
827
+ },
828
+ "statusInfo": {
829
+ "path": "M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2ZM7 4A3 3 0 0 0 4 7V17A3 3 0 0 0 7 20H17A3 3 0 0 0 20 17V7A3 3 0 0 0 17 4ZM13 10L13 17L11 17L11 10ZM12 6.5A1 1 0 1 1 12 8.5A1 1 0 1 1 12 6.5Z",
830
+ "name": "statusInfo",
831
+ "description": "Letter i inside a rounded square",
832
+ "category": "status",
833
+ "aliases": [
834
+ "info",
835
+ "information",
836
+ "notice"
837
+ ],
838
+ "intent": "Use for the info status: neutral information (decision 0045). Shows in the accent colour with a label",
839
+ "decorativeDefault": false,
840
+ "ariaLabelDefault": "Information"
841
+ },
842
+ "statusInProgress": {
843
+ "path": "M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z",
844
+ "name": "statusInProgress",
845
+ "description": "Circle with its right half filled",
846
+ "category": "status",
847
+ "aliases": [
848
+ "in progress",
849
+ "processing",
850
+ "running"
851
+ ],
852
+ "intent": "Use for the in-progress status: running now (decision 0045). Shows in the accent colour with a label",
853
+ "decorativeDefault": false,
854
+ "ariaLabelDefault": "In progress"
855
+ },
856
+ "statusPending": {
857
+ "path": "M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM13 6.5L13 13L11 13L11 6.5ZM11.8318 11.4531L16.1318 14.1531L15.0682 15.8469L10.7682 13.1469Z",
858
+ "name": "statusPending",
859
+ "description": "Clock face",
860
+ "category": "status",
861
+ "aliases": [
862
+ "pending",
863
+ "waiting",
864
+ "clock"
865
+ ],
866
+ "intent": "Use for the pending status: waiting on someone or something else (decision 0045). Neutral colour, with a label",
867
+ "decorativeDefault": false,
868
+ "ariaLabelDefault": "Pending"
869
+ },
870
+ "statusScheduled": {
871
+ "path": "M6 4H18A3 3 0 0 1 21 7V18A3 3 0 0 1 18 21H6A3 3 0 0 1 3 18V7A3 3 0 0 1 6 4ZM6 6A1 1 0 0 0 5 7V18A1 1 0 0 0 6 19H18A1 1 0 0 0 19 18V7A1 1 0 0 0 18 6ZM4 9L20 9L20 11L4 11ZM9 2L9 6.5L7 6.5L7 2ZM17 2L17 6.5L15 6.5L15 2Z",
872
+ "name": "statusScheduled",
873
+ "description": "Calendar page",
874
+ "category": "status",
875
+ "aliases": [
876
+ "scheduled",
877
+ "calendar",
878
+ "planned"
879
+ ],
880
+ "intent": "Use for the scheduled status: starts at a set time (decision 0045). Neutral colour, with a label",
881
+ "decorativeDefault": false,
882
+ "ariaLabelDefault": "Scheduled"
883
+ },
884
+ "statusNotStarted": {
885
+ "path": "M13.4781 2.1098A10 10 0 0 1 17.9482 3.9614L16.7586 5.5691A8 8 0 0 0 13.1825 4.0879ZM20.0386 6.0518A10 10 0 0 1 21.8902 10.5219L19.9121 10.8175A8 8 0 0 0 18.4309 7.2414ZM21.8902 13.4781A10 10 0 0 1 20.0386 17.9482L18.4309 16.7586A8 8 0 0 0 19.9121 13.1825ZM17.9482 20.0386A10 10 0 0 1 13.4781 21.8902L13.1825 19.9121A8 8 0 0 0 16.7586 18.4309ZM10.5219 21.8902A10 10 0 0 1 6.0518 20.0386L7.2414 18.4309A8 8 0 0 0 10.8175 19.9121ZM3.9614 17.9482A10 10 0 0 1 2.1098 13.4781L4.0879 13.1825A8 8 0 0 0 5.5691 16.7586ZM2.1098 10.5219A10 10 0 0 1 3.9614 6.0518L5.5691 7.2414A8 8 0 0 0 4.0879 10.8175ZM6.0518 3.9614A10 10 0 0 1 10.5219 2.1098L10.8175 4.0879A8 8 0 0 0 7.2414 5.5691Z",
886
+ "name": "statusNotStarted",
887
+ "description": "Dashed circle",
888
+ "category": "status",
889
+ "aliases": [
890
+ "not started",
891
+ "draft",
892
+ "to do"
893
+ ],
894
+ "intent": "Use for the not-started status: exists but not begun or submitted, such as a draft (decision 0045). Neutral colour, with a label",
895
+ "decorativeDefault": false,
896
+ "ariaLabelDefault": "Not started"
897
+ },
898
+ "statusCancelled": {
899
+ "path": "M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM6.3071 4.8929L19.1071 17.6929L17.6929 19.1071L4.8929 6.3071Z",
900
+ "name": "statusCancelled",
901
+ "description": "Circle with a diagonal line through it",
902
+ "category": "status",
903
+ "aliases": [
904
+ "cancelled",
905
+ "canceled",
906
+ "stopped"
907
+ ],
908
+ "intent": "Use for the cancelled status: stopped on purpose (decision 0045). Neutral colour, with a label",
909
+ "decorativeDefault": false,
910
+ "ariaLabelDefault": "Cancelled"
770
911
  }
771
912
  }