@nationaldesignstudio/react 0.5.1 → 0.5.2

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 (601) hide show
  1. package/dist/index.d.ts +3617 -51
  2. package/dist/index.js +7285 -161
  3. package/dist/index.js.map +1 -1
  4. package/dist/tailwind.css +0 -10
  5. package/package.json +3 -86
  6. package/src/components/atoms/popover/popover.tsx +1 -1
  7. package/src/components/atoms/tooltip/tooltip.tsx +1 -1
  8. package/dist/_virtual/index.js +0 -6
  9. package/dist/_virtual/index.js.map +0 -1
  10. package/dist/_virtual/index2.js +0 -5
  11. package/dist/_virtual/index2.js.map +0 -1
  12. package/dist/_virtual/use-sync-external-store-shim.development.js +0 -5
  13. package/dist/_virtual/use-sync-external-store-shim.development.js.map +0 -1
  14. package/dist/_virtual/use-sync-external-store-shim.production.js +0 -5
  15. package/dist/_virtual/use-sync-external-store-shim.production.js.map +0 -1
  16. package/dist/_virtual/with-selector.development.js +0 -5
  17. package/dist/_virtual/with-selector.development.js.map +0 -1
  18. package/dist/_virtual/with-selector.js +0 -6
  19. package/dist/_virtual/with-selector.js.map +0 -1
  20. package/dist/_virtual/with-selector.production.js +0 -5
  21. package/dist/_virtual/with-selector.production.js.map +0 -1
  22. package/dist/_virtual/with-selector2.js +0 -5
  23. package/dist/_virtual/with-selector2.js.map +0 -1
  24. package/dist/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
  25. package/dist/assets/react.svg +0 -1
  26. package/dist/components/atoms/accordion/accordion.d.ts +0 -91
  27. package/dist/components/atoms/accordion/accordion.js +0 -136
  28. package/dist/components/atoms/accordion/accordion.js.map +0 -1
  29. package/dist/components/atoms/background/background.d.ts +0 -144
  30. package/dist/components/atoms/background/background.js +0 -190
  31. package/dist/components/atoms/background/background.js.map +0 -1
  32. package/dist/components/atoms/button/button.d.ts +0 -148
  33. package/dist/components/atoms/button/button.figma.d.ts +0 -1
  34. package/dist/components/atoms/button/button.js +0 -68
  35. package/dist/components/atoms/button/button.js.map +0 -1
  36. package/dist/components/atoms/button/icon-button.d.ts +0 -172
  37. package/dist/components/atoms/button/icon-button.js +0 -69
  38. package/dist/components/atoms/button/icon-button.js.map +0 -1
  39. package/dist/components/atoms/input/input-group.d.ts +0 -278
  40. package/dist/components/atoms/input/input-group.js +0 -221
  41. package/dist/components/atoms/input/input-group.js.map +0 -1
  42. package/dist/components/atoms/input/input.d.ts +0 -121
  43. package/dist/components/atoms/input/input.js +0 -45
  44. package/dist/components/atoms/input/input.js.map +0 -1
  45. package/dist/components/atoms/ndstudio-footer/ndstudio-footer.d.ts +0 -30
  46. package/dist/components/atoms/ndstudio-footer/ndstudio-footer.js +0 -27
  47. package/dist/components/atoms/ndstudio-footer/ndstudio-footer.js.map +0 -1
  48. package/dist/components/atoms/pager-control/pager-control.d.ts +0 -169
  49. package/dist/components/atoms/pager-control/pager-control.js +0 -165
  50. package/dist/components/atoms/pager-control/pager-control.js.map +0 -1
  51. package/dist/components/atoms/popover/popover.d.ts +0 -195
  52. package/dist/components/atoms/popover/popover.js +0 -230
  53. package/dist/components/atoms/popover/popover.js.map +0 -1
  54. package/dist/components/atoms/select/select.d.ts +0 -131
  55. package/dist/components/atoms/select/select.js +0 -192
  56. package/dist/components/atoms/select/select.js.map +0 -1
  57. package/dist/components/atoms/tooltip/tooltip.d.ts +0 -161
  58. package/dist/components/atoms/tooltip/tooltip.js +0 -139
  59. package/dist/components/atoms/tooltip/tooltip.js.map +0 -1
  60. package/dist/components/dev-tools/dev-toolbar/dev-toolbar.d.ts +0 -4
  61. package/dist/components/dev-tools/dev-toolbar/dev-toolbar.js +0 -134
  62. package/dist/components/dev-tools/dev-toolbar/dev-toolbar.js.map +0 -1
  63. package/dist/components/dev-tools/grid-overlay/grid-overlay.d.ts +0 -6
  64. package/dist/components/dev-tools/grid-overlay/grid-overlay.js +0 -36
  65. package/dist/components/dev-tools/grid-overlay/grid-overlay.js.map +0 -1
  66. package/dist/components/organisms/card/card.d.ts +0 -235
  67. package/dist/components/organisms/card/card.js +0 -163
  68. package/dist/components/organisms/card/card.js.map +0 -1
  69. package/dist/components/organisms/navbar/navbar.d.ts +0 -66
  70. package/dist/components/organisms/navbar/navbar.js +0 -204
  71. package/dist/components/organisms/navbar/navbar.js.map +0 -1
  72. package/dist/components/organisms/us-gov-banner/us-gov-banner.d.ts +0 -137
  73. package/dist/components/organisms/us-gov-banner/us-gov-banner.js +0 -97
  74. package/dist/components/organisms/us-gov-banner/us-gov-banner.js.map +0 -1
  75. package/dist/components/sections/banner/banner.d.ts +0 -97
  76. package/dist/components/sections/banner/banner.js +0 -73
  77. package/dist/components/sections/banner/banner.js.map +0 -1
  78. package/dist/components/sections/card-grid/card-grid.d.ts +0 -86
  79. package/dist/components/sections/card-grid/card-grid.js +0 -66
  80. package/dist/components/sections/card-grid/card-grid.js.map +0 -1
  81. package/dist/components/sections/faq-section/faq-section.d.ts +0 -44
  82. package/dist/components/sections/faq-section/faq-section.js +0 -37
  83. package/dist/components/sections/faq-section/faq-section.js.map +0 -1
  84. package/dist/components/sections/hero/hero.d.ts +0 -337
  85. package/dist/components/sections/hero/hero.js +0 -159
  86. package/dist/components/sections/hero/hero.js.map +0 -1
  87. package/dist/components/sections/prose/prose.d.ts +0 -37
  88. package/dist/components/sections/prose/prose.js +0 -48
  89. package/dist/components/sections/prose/prose.js.map +0 -1
  90. package/dist/components/sections/quote-block/quote-block.d.ts +0 -152
  91. package/dist/components/sections/quote-block/quote-block.js +0 -130
  92. package/dist/components/sections/quote-block/quote-block.js.map +0 -1
  93. package/dist/components/sections/river/river.d.ts +0 -96
  94. package/dist/components/sections/river/river.js +0 -100
  95. package/dist/components/sections/river/river.js.map +0 -1
  96. package/dist/components/sections/tout/tout.d.ts +0 -153
  97. package/dist/components/sections/tout/tout.js +0 -178
  98. package/dist/components/sections/tout/tout.js.map +0 -1
  99. package/dist/components/sections/two-column-section/two-column-section.d.ts +0 -118
  100. package/dist/components/sections/two-column-section/two-column-section.js +0 -113
  101. package/dist/components/sections/two-column-section/two-column-section.js.map +0 -1
  102. package/dist/components/shared/floating-arrow.d.ts +0 -34
  103. package/dist/components/shared/floating-arrow.js +0 -51
  104. package/dist/components/shared/floating-arrow.js.map +0 -1
  105. package/dist/hooks/index.d.ts +0 -1
  106. package/dist/hooks/use-event-listener.d.ts +0 -24
  107. package/dist/lib/form-control.d.ts +0 -106
  108. package/dist/lib/form-control.js +0 -43
  109. package/dist/lib/form-control.js.map +0 -1
  110. package/dist/lib/theme.d.ts +0 -330
  111. package/dist/lib/theme.js +0 -100
  112. package/dist/lib/theme.js.map +0 -1
  113. package/dist/lib/utils.d.ts +0 -1
  114. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/header/AccordionHeader.js +0 -24
  115. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/header/AccordionHeader.js.map +0 -1
  116. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItem.js +0 -79
  117. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItem.js.map +0 -1
  118. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItemContext.js +0 -15
  119. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItemContext.js.map +0 -1
  120. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItemDataAttributes.js +0 -7
  121. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/AccordionItemDataAttributes.js.map +0 -1
  122. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/stateAttributesMapping.js +0 -15
  123. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/item/stateAttributesMapping.js.map +0 -1
  124. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/panel/AccordionPanel.js +0 -113
  125. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/panel/AccordionPanel.js.map +0 -1
  126. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/panel/AccordionPanelCssVars.js +0 -7
  127. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/panel/AccordionPanelCssVars.js.map +0 -1
  128. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRoot.js +0 -97
  129. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRoot.js.map +0 -1
  130. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRootContext.js +0 -15
  131. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRootContext.js.map +0 -1
  132. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRootDataAttributes.js +0 -7
  133. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/root/AccordionRootDataAttributes.js.map +0 -1
  134. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/trigger/AccordionTrigger.js +0 -112
  135. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/accordion/trigger/AccordionTrigger.js.map +0 -1
  136. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/button/Button.js +0 -32
  137. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/button/Button.js.map +0 -1
  138. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/panel/CollapsiblePanelDataAttributes.js +0 -8
  139. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/panel/CollapsiblePanelDataAttributes.js.map +0 -1
  140. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/panel/useCollapsiblePanel.js +0 -168
  141. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/panel/useCollapsiblePanel.js.map +0 -1
  142. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/root/CollapsibleRootContext.js +0 -15
  143. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/root/CollapsibleRootContext.js.map +0 -1
  144. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/root/useCollapsibleRoot.js +0 -67
  145. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/root/useCollapsibleRoot.js.map +0 -1
  146. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/trigger/CollapsibleTriggerDataAttributes.js +0 -7
  147. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/collapsible/trigger/CollapsibleTriggerDataAttributes.js.map +0 -1
  148. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/composite.js +0 -16
  149. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/composite.js.map +0 -1
  150. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/CompositeList.js +0 -82
  151. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/CompositeList.js.map +0 -1
  152. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/CompositeListContext.js +0 -24
  153. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/CompositeListContext.js.map +0 -1
  154. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/useCompositeListItem.js +0 -56
  155. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/list/useCompositeListItem.js.map +0 -1
  156. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/root/CompositeRootContext.js +0 -15
  157. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/composite/root/CompositeRootContext.js.map +0 -1
  158. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopup.js +0 -80
  159. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopup.js.map +0 -1
  160. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopupCssVars.js +0 -7
  161. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopupCssVars.js.map +0 -1
  162. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopupDataAttributes.js +0 -8
  163. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/popup/DialogPopupDataAttributes.js.map +0 -1
  164. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/portal/DialogPortal.js +0 -31
  165. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/portal/DialogPortal.js.map +0 -1
  166. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/portal/DialogPortalContext.js +0 -15
  167. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/portal/DialogPortalContext.js.map +0 -1
  168. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/DialogRoot.js +0 -51
  169. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/DialogRoot.js.map +0 -1
  170. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/DialogRootContext.js +0 -15
  171. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/DialogRootContext.js.map +0 -1
  172. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/useDialogRoot.js +0 -90
  173. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/root/useDialogRoot.js.map +0 -1
  174. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/store/DialogStore.js +0 -66
  175. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/store/DialogStore.js.map +0 -1
  176. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/title/DialogTitle.js +0 -25
  177. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/dialog/title/DialogTitle.js.map +0 -1
  178. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/direction-provider/DirectionContext.js +0 -11
  179. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/direction-provider/DirectionContext.js.map +0 -1
  180. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/control/FieldControlDataAttributes.js +0 -7
  181. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/control/FieldControlDataAttributes.js.map +0 -1
  182. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/root/FieldRootContext.js +0 -61
  183. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/root/FieldRootContext.js.map +0 -1
  184. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/useField.js +0 -52
  185. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/useField.js.map +0 -1
  186. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/utils/constants.js +0 -27
  187. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/utils/constants.js.map +0 -1
  188. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/utils/getCombinedFieldValidityData.js +0 -13
  189. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/field/utils/getCombinedFieldValidityData.js.map +0 -1
  190. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingDelayGroup.js +0 -94
  191. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingDelayGroup.js.map +0 -1
  192. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingFocusManager.js +0 -299
  193. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingFocusManager.js.map +0 -1
  194. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingPortal.js +0 -128
  195. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingPortal.js.map +0 -1
  196. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingRootStore.js +0 -61
  197. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingRootStore.js.map +0 -1
  198. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingTree.js +0 -59
  199. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingTree.js.map +0 -1
  200. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingTreeStore.js +0 -18
  201. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/components/FloatingTreeStore.js.map +0 -1
  202. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useClick.js +0 -67
  203. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useClick.js.map +0 -1
  204. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useClientPoint.js +0 -93
  205. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useClientPoint.js.map +0 -1
  206. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useDismiss.js +0 -234
  207. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useDismiss.js.map +0 -1
  208. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloating.js +0 -79
  209. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloating.js.map +0 -1
  210. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloatingRootContext.js +0 -39
  211. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFloatingRootContext.js.map +0 -1
  212. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFocus.js +0 -79
  213. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useFocus.js.map +0 -1
  214. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHover.js +0 -17
  215. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHover.js.map +0 -1
  216. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +0 -91
  217. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js.map +0 -1
  218. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +0 -33
  219. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js.map +0 -1
  220. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +0 -159
  221. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js.map +0 -1
  222. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useInteractions.js +0 -49
  223. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useInteractions.js.map +0 -1
  224. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useListNavigation.js +0 -287
  225. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useListNavigation.js.map +0 -1
  226. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useRole.js +0 -78
  227. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useRole.js.map +0 -1
  228. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +0 -36
  229. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js.map +0 -1
  230. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useTypeahead.js +0 -57
  231. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/hooks/useTypeahead.js.map +0 -1
  232. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/middleware/arrow.js +0 -48
  233. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/middleware/arrow.js.map +0 -1
  234. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/safePolygon.js +0 -117
  235. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/safePolygon.js.map +0 -1
  236. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/composite.js +0 -210
  237. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/composite.js.map +0 -1
  238. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/constants.js +0 -12
  239. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/constants.js.map +0 -1
  240. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createAttribute.js +0 -7
  241. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createAttribute.js.map +0 -1
  242. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createEventEmitter.js +0 -18
  243. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/createEventEmitter.js.map +0 -1
  244. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/element.js +0 -73
  245. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/element.js.map +0 -1
  246. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/enqueueFocus.js +0 -17
  247. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/enqueueFocus.js.map +0 -1
  248. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/event.js +0 -31
  249. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/event.js.map +0 -1
  250. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/getEmptyRootContext.js +0 -18
  251. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/getEmptyRootContext.js.map +0 -1
  252. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/markOthers.js +0 -51
  253. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/markOthers.js.map +0 -1
  254. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/nodes.js +0 -16
  255. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/nodes.js.map +0 -1
  256. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/tabbable.js +0 -68
  257. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/floating-ui-react/utils/tabbable.js.map +0 -1
  258. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/form/FormContext.js +0 -24
  259. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/form/FormContext.js.map +0 -1
  260. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/labelable-provider/LabelableContext.js +0 -20
  261. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/labelable-provider/LabelableContext.js.map +0 -1
  262. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/labelable-provider/useLabelableId.js +0 -30
  263. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/labelable-provider/useLabelableId.js.map +0 -1
  264. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/merge-props/mergeProps.js +0 -83
  265. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/merge-props/mergeProps.js.map +0 -1
  266. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/arrow/PopoverArrow.js +0 -39
  267. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/arrow/PopoverArrow.js.map +0 -1
  268. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/backdrop/PopoverBackdrop.js +0 -40
  269. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/backdrop/PopoverBackdrop.js.map +0 -1
  270. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/close/PopoverClose.js +0 -37
  271. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/close/PopoverClose.js.map +0 -1
  272. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/description/PopoverDescription.js +0 -27
  273. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/description/PopoverDescription.js.map +0 -1
  274. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/popup/PopoverPopup.js +0 -106
  275. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/popup/PopoverPopup.js.map +0 -1
  276. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/portal/PopoverPortal.js +0 -26
  277. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/portal/PopoverPortal.js.map +0 -1
  278. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/portal/PopoverPortalContext.js +0 -15
  279. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/portal/PopoverPortalContext.js.map +0 -1
  280. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/positioner/PopoverPositioner.js +0 -111
  281. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/positioner/PopoverPositioner.js.map +0 -1
  282. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/positioner/PopoverPositionerContext.js +0 -15
  283. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/positioner/PopoverPositionerContext.js.map +0 -1
  284. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/root/PopoverRoot.js +0 -111
  285. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/root/PopoverRoot.js.map +0 -1
  286. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/root/PopoverRootContext.js +0 -15
  287. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/root/PopoverRootContext.js.map +0 -1
  288. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/store/PopoverStore.js +0 -93
  289. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/store/PopoverStore.js.map +0 -1
  290. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/title/PopoverTitle.js +0 -27
  291. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/title/PopoverTitle.js.map +0 -1
  292. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/trigger/PopoverTrigger.js +0 -121
  293. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/trigger/PopoverTrigger.js.map +0 -1
  294. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/utils/constants.js +0 -5
  295. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/popover/utils/constants.js.map +0 -1
  296. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group/SelectGroup.js +0 -29
  297. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group/SelectGroup.js.map +0 -1
  298. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group/SelectGroupContext.js +0 -15
  299. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group/SelectGroupContext.js.map +0 -1
  300. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group-label/SelectGroupLabel.js +0 -28
  301. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/group-label/SelectGroupLabel.js.map +0 -1
  302. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/icon/SelectIcon.js +0 -31
  303. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/icon/SelectIcon.js.map +0 -1
  304. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item/SelectItem.js +0 -148
  305. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item/SelectItem.js.map +0 -1
  306. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item/SelectItemContext.js +0 -15
  307. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item/SelectItemContext.js.map +0 -1
  308. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item-indicator/SelectItemIndicator.js +0 -53
  309. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item-indicator/SelectItemIndicator.js.map +0 -1
  310. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item-text/SelectItemText.js +0 -32
  311. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/item-text/SelectItemText.js.map +0 -1
  312. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/popup/SelectPopup.js +0 -200
  313. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/popup/SelectPopup.js.map +0 -1
  314. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/popup/utils.js +0 -14
  315. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/popup/utils.js.map +0 -1
  316. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/portal/SelectPortal.js +0 -24
  317. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/portal/SelectPortal.js.map +0 -1
  318. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/portal/SelectPortalContext.js +0 -7
  319. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/portal/SelectPortalContext.js.map +0 -1
  320. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/positioner/SelectPositioner.js +0 -143
  321. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/positioner/SelectPositioner.js.map +0 -1
  322. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/positioner/SelectPositionerContext.js +0 -15
  323. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/positioner/SelectPositionerContext.js.map +0 -1
  324. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/root/SelectRoot.js +0 -314
  325. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/root/SelectRoot.js.map +0 -1
  326. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/root/SelectRootContext.js +0 -25
  327. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/root/SelectRootContext.js.map +0 -1
  328. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/store.js +0 -46
  329. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/store.js.map +0 -1
  330. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/trigger/SelectTrigger.js +0 -142
  331. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/trigger/SelectTrigger.js.map +0 -1
  332. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/value/SelectValue.js +0 -35
  333. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/select/value/SelectValue.js.map +0 -1
  334. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/toolbar/root/ToolbarRootContext.js +0 -11
  335. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/toolbar/root/ToolbarRootContext.js.map +0 -1
  336. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/arrow/TooltipArrow.js +0 -39
  337. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/arrow/TooltipArrow.js.map +0 -1
  338. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/popup/TooltipPopup.js +0 -74
  339. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/popup/TooltipPopup.js.map +0 -1
  340. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/portal/TooltipPortal.js +0 -23
  341. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/portal/TooltipPortal.js.map +0 -1
  342. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/portal/TooltipPortalContext.js +0 -15
  343. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/portal/TooltipPortalContext.js.map +0 -1
  344. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/positioner/TooltipPositioner.js +0 -82
  345. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/positioner/TooltipPositioner.js.map +0 -1
  346. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/positioner/TooltipPositionerContext.js +0 -15
  347. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/positioner/TooltipPositionerContext.js.map +0 -1
  348. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/provider/TooltipProvider.js +0 -30
  349. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/provider/TooltipProvider.js.map +0 -1
  350. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/provider/TooltipProviderContext.js +0 -11
  351. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/provider/TooltipProviderContext.js.map +0 -1
  352. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/root/TooltipRoot.js +0 -91
  353. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/root/TooltipRoot.js.map +0 -1
  354. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/root/TooltipRootContext.js +0 -15
  355. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/root/TooltipRootContext.js.map +0 -1
  356. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/store/TooltipStore.js +0 -72
  357. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/store/TooltipStore.js.map +0 -1
  358. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/trigger/TooltipTrigger.js +0 -76
  359. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/trigger/TooltipTrigger.js.map +0 -1
  360. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/utils/constants.js +0 -5
  361. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/tooltip/utils/constants.js.map +0 -1
  362. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/use-button/useButton.js +0 -92
  363. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/use-button/useButton.js.map +0 -1
  364. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/use-render/useRender.js +0 -8
  365. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/use-render/useRender.js.map +0 -1
  366. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/FloatingPortalLite.js +0 -29
  367. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/FloatingPortalLite.js.map +0 -1
  368. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/FocusGuard.js +0 -27
  369. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/FocusGuard.js.map +0 -1
  370. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/InternalBackdrop.js +0 -42
  371. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/InternalBackdrop.js.map +0 -1
  372. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/adaptiveOriginMiddleware.js +0 -64
  373. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/adaptiveOriginMiddleware.js.map +0 -1
  374. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/collapsibleOpenStateMapping.js +0 -22
  375. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/collapsibleOpenStateMapping.js.map +0 -1
  376. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/constants.js +0 -23
  377. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/constants.js.map +0 -1
  378. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/createBaseUIEventDetails.js +0 -27
  379. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/createBaseUIEventDetails.js.map +0 -1
  380. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getCssDimensions.js +0 -15
  381. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getCssDimensions.js.map +0 -1
  382. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getDisabledMountTransitionStyles.js +0 -9
  383. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getDisabledMountTransitionStyles.js.map +0 -1
  384. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getPseudoElementBounds.js +0 -19
  385. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getPseudoElementBounds.js.map +0 -1
  386. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getStateAttributesProps.js +0 -17
  387. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/getStateAttributesProps.js.map +0 -1
  388. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/hideMiddleware.js +0 -21
  389. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/hideMiddleware.js.map +0 -1
  390. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/itemEquality.js +0 -21
  391. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/itemEquality.js.map +0 -1
  392. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popupStateMapping.js +0 -41
  393. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popupStateMapping.js.map +0 -1
  394. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/popupStoreUtils.js +0 -84
  395. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/popupStoreUtils.js.map +0 -1
  396. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/popupTriggerMap.js +0 -51
  397. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/popupTriggerMap.js.map +0 -1
  398. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/store.js +0 -51
  399. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/popups/store.js.map +0 -1
  400. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/reason-parts.js +0 -18
  401. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/reason-parts.js.map +0 -1
  402. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveClassName.js +0 -7
  403. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveClassName.js.map +0 -1
  404. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveRef.js +0 -7
  405. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveRef.js.map +0 -1
  406. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveStyle.js +0 -7
  407. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveStyle.js.map +0 -1
  408. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveValueLabel.js +0 -54
  409. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/resolveValueLabel.js.map +0 -1
  410. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/serializeValue.js +0 -15
  411. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/serializeValue.js.map +0 -1
  412. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/stateAttributesMapping.js +0 -17
  413. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/stateAttributesMapping.js.map +0 -1
  414. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/styles.js +0 -13
  415. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/styles.js.map +0 -1
  416. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useAnchorPositioning.js +0 -266
  417. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useAnchorPositioning.js.map +0 -1
  418. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useAnimationsFinished.js +0 -29
  419. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useAnimationsFinished.js.map +0 -1
  420. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useBaseUiId.js +0 -8
  421. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useBaseUiId.js.map +0 -1
  422. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useFocusableWhenDisabled.js +0 -25
  423. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useFocusableWhenDisabled.js.map +0 -1
  424. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useOpenChangeComplete.js +0 -21
  425. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useOpenChangeComplete.js.map +0 -1
  426. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useOpenInteractionType.js +0 -25
  427. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useOpenInteractionType.js.map +0 -1
  428. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/usePopupAutoResize.js +0 -76
  429. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/usePopupAutoResize.js.map +0 -1
  430. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useRenderElement.js +0 -58
  431. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useRenderElement.js.map +0 -1
  432. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useTransitionStatus.js +0 -46
  433. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useTransitionStatus.js.map +0 -1
  434. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useValueChanged.js +0 -15
  435. package/dist/node_modules/.bun/@base-ui-components_react@1.0.0-rc.0_6526322f93af6249/node_modules/@base-ui-components/react/esm/utils/useValueChanged.js.map +0 -1
  436. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/detectBrowser.js +0 -43
  437. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/detectBrowser.js.map +0 -1
  438. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/empty.js +0 -9
  439. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/empty.js.map +0 -1
  440. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/error.js +0 -12
  441. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/error.js.map +0 -1
  442. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/formatErrorMessage.js +0 -8
  443. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/formatErrorMessage.js.map +0 -1
  444. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/getReactElementRef.js +0 -12
  445. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/getReactElementRef.js.map +0 -1
  446. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/inertValue.js +0 -8
  447. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/inertValue.js.map +0 -1
  448. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/isElementDisabled.js +0 -7
  449. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/isElementDisabled.js.map +0 -1
  450. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/isMouseWithinBounds.js +0 -8
  451. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/isMouseWithinBounds.js.map +0 -1
  452. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/mergeObjects.js +0 -15
  453. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/mergeObjects.js.map +0 -1
  454. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/owner.js +0 -7
  455. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/owner.js.map +0 -1
  456. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/reactVersion.js +0 -9
  457. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/reactVersion.js.map +0 -1
  458. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/safeReact.js +0 -8
  459. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/safeReact.js.map +0 -1
  460. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/ReactStore.js +0 -203
  461. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/ReactStore.js.map +0 -1
  462. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/Store.js +0 -83
  463. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/Store.js.map +0 -1
  464. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/createSelector.js +0 -23
  465. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/createSelector.js.map +0 -1
  466. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/useStore.js +0 -19
  467. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/store/useStore.js.map +0 -1
  468. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useAnimationFrame.js +0 -69
  469. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useAnimationFrame.js.map +0 -1
  470. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useControlled.js +0 -32
  471. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useControlled.js.map +0 -1
  472. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useEnhancedClickHandler.js +0 -20
  473. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useEnhancedClickHandler.js.map +0 -1
  474. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useId.js +0 -21
  475. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useId.js.map +0 -1
  476. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useIsoLayoutEffect.js +0 -7
  477. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useIsoLayoutEffect.js.map +0 -1
  478. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useMergedRefs.js +0 -70
  479. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useMergedRefs.js.map +0 -1
  480. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useOnFirstRender.js +0 -9
  481. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useOnFirstRender.js.map +0 -1
  482. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useOnMount.js +0 -9
  483. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useOnMount.js.map +0 -1
  484. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useRefWithInit.js +0 -10
  485. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useRefWithInit.js.map +0 -1
  486. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useScrollLock.js +0 -107
  487. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useScrollLock.js.map +0 -1
  488. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useStableCallback.js +0 -30
  489. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useStableCallback.js.map +0 -1
  490. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useTimeout.js +0 -33
  491. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useTimeout.js.map +0 -1
  492. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useValueAsRef.js +0 -20
  493. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/useValueAsRef.js.map +0 -1
  494. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/visuallyHidden.js +0 -17
  495. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/visuallyHidden.js.map +0 -1
  496. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/warn.js +0 -12
  497. package/dist/node_modules/.bun/@base-ui-components_utils@0.2.2_6526322f93af6249/node_modules/@base-ui-components/utils/esm/warn.js.map +0 -1
  498. package/dist/node_modules/.bun/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +0 -490
  499. package/dist/node_modules/.bun/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +0 -1
  500. package/dist/node_modules/.bun/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +0 -402
  501. package/dist/node_modules/.bun/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +0 -1
  502. package/dist/node_modules/.bun/@floating-ui_react-dom@2.1.6_67f6792bdf102c28/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +0 -184
  503. package/dist/node_modules/.bun/@floating-ui_react-dom@2.1.6_67f6792bdf102c28/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +0 -1
  504. package/dist/node_modules/.bun/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -137
  505. package/dist/node_modules/.bun/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +0 -1
  506. package/dist/node_modules/.bun/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +0 -131
  507. package/dist/node_modules/.bun/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +0 -1
  508. package/dist/node_modules/.bun/@radix-ui_react-compose-refs@1.1.2_09a4a3ac15cb54ba/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -26
  509. package/dist/node_modules/.bun/@radix-ui_react-compose-refs@1.1.2_09a4a3ac15cb54ba/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -1
  510. package/dist/node_modules/.bun/@radix-ui_react-slot@1.2.4_09a4a3ac15cb54ba/node_modules/@radix-ui/react-slot/dist/index.js +0 -62
  511. package/dist/node_modules/.bun/@radix-ui_react-slot@1.2.4_09a4a3ac15cb54ba/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  512. package/dist/node_modules/.bun/reselect@5.1.1/node_modules/reselect/dist/reselect.js +0 -325
  513. package/dist/node_modules/.bun/reselect@5.1.1/node_modules/reselect/dist/reselect.js.map +0 -1
  514. package/dist/node_modules/.bun/tabbable@6.3.0/node_modules/tabbable/dist/index.esm.js +0 -212
  515. package/dist/node_modules/.bun/tabbable@6.3.0/node_modules/tabbable/dist/index.esm.js.map +0 -1
  516. package/dist/node_modules/.bun/tailwind-merge@2.5.4/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2294
  517. package/dist/node_modules/.bun/tailwind-merge@2.5.4/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  518. package/dist/node_modules/.bun/tailwind-variants@0.3.1_b0c4767bcd570450/node_modules/tailwind-variants/dist/chunk-I2QGXAA3.js +0 -29
  519. package/dist/node_modules/.bun/tailwind-variants@0.3.1_b0c4767bcd570450/node_modules/tailwind-variants/dist/chunk-I2QGXAA3.js.map +0 -1
  520. package/dist/node_modules/.bun/tailwind-variants@0.3.1_b0c4767bcd570450/node_modules/tailwind-variants/dist/index.js +0 -127
  521. package/dist/node_modules/.bun/tailwind-variants@0.3.1_b0c4767bcd570450/node_modules/tailwind-variants/dist/index.js.map +0 -1
  522. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -59
  523. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  524. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +0 -58
  525. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +0 -1
  526. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -59
  527. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -1
  528. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +0 -47
  529. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +0 -1
  530. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/shim/index.js +0 -11
  531. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/shim/index.js.map +0 -1
  532. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/shim/with-selector.js +0 -11
  533. package/dist/node_modules/.bun/use-sync-external-store@1.6.0_83d5fd7b249dbeef/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  534. package/dist/packages/design-tokens-format/dist/definitions/tokenTypes.js +0 -20
  535. package/dist/packages/design-tokens-format/dist/definitions/tokenTypes.js.map +0 -1
  536. package/dist/packages/design-tokens-format/dist/utils/colorConversions.js +0 -29
  537. package/dist/packages/design-tokens-format/dist/utils/colorConversions.js.map +0 -1
  538. package/dist/packages/tokens/dist/collections/types.js +0 -17
  539. package/dist/packages/tokens/dist/collections/types.js.map +0 -1
  540. package/dist/packages/tokens/dist/merge.js +0 -21
  541. package/dist/packages/tokens/dist/merge.js.map +0 -1
  542. package/dist/packages/tokens/dist/primitives/animation.js +0 -107
  543. package/dist/packages/tokens/dist/primitives/animation.js.map +0 -1
  544. package/dist/packages/tokens/dist/primitives/breakpoints.js +0 -32
  545. package/dist/packages/tokens/dist/primitives/breakpoints.js.map +0 -1
  546. package/dist/packages/tokens/dist/primitives/colors.js +0 -354
  547. package/dist/packages/tokens/dist/primitives/colors.js.map +0 -1
  548. package/dist/packages/tokens/dist/primitives/opacity.js +0 -22
  549. package/dist/packages/tokens/dist/primitives/opacity.js.map +0 -1
  550. package/dist/packages/tokens/dist/primitives/radii.js +0 -37
  551. package/dist/packages/tokens/dist/primitives/radii.js.map +0 -1
  552. package/dist/packages/tokens/dist/primitives/shadow.js +0 -66
  553. package/dist/packages/tokens/dist/primitives/shadow.js.map +0 -1
  554. package/dist/packages/tokens/dist/primitives/spacing.js +0 -56
  555. package/dist/packages/tokens/dist/primitives/spacing.js.map +0 -1
  556. package/dist/packages/tokens/dist/primitives/typography.js +0 -162
  557. package/dist/packages/tokens/dist/primitives/typography.js.map +0 -1
  558. package/dist/packages/tokens/dist/semantic/color/base.js +0 -242
  559. package/dist/packages/tokens/dist/semantic/color/base.js.map +0 -1
  560. package/dist/packages/tokens/dist/semantic/color/bop.js +0 -47
  561. package/dist/packages/tokens/dist/semantic/color/bop.js.map +0 -1
  562. package/dist/packages/tokens/dist/semantic/color/civic.js +0 -50
  563. package/dist/packages/tokens/dist/semantic/color/civic.js.map +0 -1
  564. package/dist/packages/tokens/dist/semantic/color/dark.js +0 -146
  565. package/dist/packages/tokens/dist/semantic/color/dark.js.map +0 -1
  566. package/dist/packages/tokens/dist/semantic/color/darktech.js +0 -149
  567. package/dist/packages/tokens/dist/semantic/color/darktech.js.map +0 -1
  568. package/dist/packages/tokens/dist/semantic/color/institution.js +0 -67
  569. package/dist/packages/tokens/dist/semantic/color/institution.js.map +0 -1
  570. package/dist/packages/tokens/dist/semantic/color/oceana.js +0 -155
  571. package/dist/packages/tokens/dist/semantic/color/oceana.js.map +0 -1
  572. package/dist/packages/tokens/dist/semantic/color/recreation.js +0 -155
  573. package/dist/packages/tokens/dist/semantic/color/recreation.js.map +0 -1
  574. package/dist/packages/tokens/dist/semantic/spatial/base.js +0 -651
  575. package/dist/packages/tokens/dist/semantic/spatial/base.js.map +0 -1
  576. package/dist/packages/tokens/dist/semantic/surface/base.js +0 -93
  577. package/dist/packages/tokens/dist/semantic/surface/base.js.map +0 -1
  578. package/dist/packages/tokens/dist/semantic/surface/framed.js +0 -39
  579. package/dist/packages/tokens/dist/semantic/surface/framed.js.map +0 -1
  580. package/dist/packages/tokens/dist/semantic/surface/sharp.js +0 -39
  581. package/dist/packages/tokens/dist/semantic/surface/sharp.js.map +0 -1
  582. package/dist/packages/tokens/dist/semantic/surface/soft.js +0 -39
  583. package/dist/packages/tokens/dist/semantic/surface/soft.js.map +0 -1
  584. package/dist/packages/tokens/dist/semantic/typography/base.js +0 -858
  585. package/dist/packages/tokens/dist/semantic/typography/base.js.map +0 -1
  586. package/dist/packages/tokens/dist/theme-registry.js +0 -32
  587. package/dist/packages/tokens/dist/theme-registry.js.map +0 -1
  588. package/dist/packages/tokens/dist/themes/resolver.js +0 -44
  589. package/dist/packages/tokens/dist/themes/resolver.js.map +0 -1
  590. package/dist/packages/tokens/dist/tokens.js +0 -33
  591. package/dist/packages/tokens/dist/tokens.js.map +0 -1
  592. package/dist/packages/tokens/dist/types.js +0 -7
  593. package/dist/packages/tokens/dist/types.js.map +0 -1
  594. package/dist/packages/tokens/dist/utils.js +0 -70
  595. package/dist/packages/tokens/dist/utils.js.map +0 -1
  596. package/dist/theme/hooks.js +0 -22
  597. package/dist/theme/hooks.js.map +0 -1
  598. package/dist/theme/theme-provider.js +0 -96
  599. package/dist/theme/theme-provider.js.map +0 -1
  600. package/dist/theme/utils.js +0 -44
  601. package/dist/theme/utils.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"sources":["../src/components/atoms/accordion/accordion.tsx","../src/components/atoms/background/background.tsx","../src/lib/theme.ts","../src/components/atoms/button/button.tsx","../src/components/atoms/button/icon-button.tsx","../src/lib/form-control.ts","../src/components/atoms/input/input.tsx","../src/components/atoms/input/input-group.tsx","../src/components/atoms/ndstudio-footer/ndstudio-footer.tsx","../src/components/atoms/pager-control/pager-control.tsx","../src/components/shared/floating-arrow.tsx","../src/components/atoms/popover/popover.tsx","../src/components/atoms/select/select.tsx","../src/components/atoms/tooltip/tooltip.tsx","../src/components/dev-tools/grid-overlay/grid-overlay.tsx","../src/components/dev-tools/dev-toolbar/dev-toolbar.tsx","../src/components/organisms/card/card.tsx","../src/components/organisms/navbar/navbar.tsx","../src/components/organisms/us-gov-banner/us-gov-banner.tsx","../src/components/sections/banner/banner.tsx","../src/components/sections/card-grid/card-grid.tsx","../src/components/sections/two-column-section/two-column-section.tsx","../src/components/sections/faq-section/faq-section.tsx","../src/components/sections/hero/hero.tsx","../src/components/sections/prose/prose.tsx","../src/components/sections/quote-block/quote-block.tsx","../src/components/sections/river/river.tsx","../src/components/sections/tout/tout.tsx","../../tokens/src/collections/types.ts","../../tokens/src/merge.ts","../../tokens/src/semantic/color/base.ts","../../design-tokens-format/src/definitions/tokenTypes.ts","../../design-tokens-format/src/utils/colorConversions.ts","../../tokens/src/utils.ts","../../tokens/src/semantic/color/bop.ts","../../tokens/src/semantic/color/civic.ts","../../tokens/src/semantic/color/dark.ts","../../tokens/src/semantic/color/darktech.ts","../../tokens/src/semantic/color/institution.ts","../../tokens/src/semantic/color/oceana.ts","../../tokens/src/semantic/color/recreation.ts","../../tokens/src/semantic/surface/base.ts","../../tokens/src/semantic/surface/framed.ts","../../tokens/src/semantic/surface/sharp.ts","../../tokens/src/semantic/surface/soft.ts","../../tokens/src/semantic/typography/base.ts","../../tokens/src/semantic/spatial/base.ts","../../tokens/src/theme-registry.ts","../../tokens/src/themes/resolver.ts","../../tokens/src/primitives/animation.ts","../../tokens/src/primitives/breakpoints.ts","../../tokens/src/primitives/colors.ts","../../tokens/src/primitives/opacity.ts","../../tokens/src/primitives/radii.ts","../../tokens/src/primitives/shadow.ts","../../tokens/src/primitives/spacing.ts","../../tokens/src/primitives/typography.ts","../../tokens/src/types.ts","../../tokens/src/tokens.ts","../src/theme/theme-provider.tsx","../src/theme/hooks.ts","../src/theme/utils.ts"],"names":["React","BaseAccordion","tv","React2","jsx","React3","BaseButton","useRender","React4","React5","jsxs","React6","duration","BasePopover","React7","BaseSelect","React8","BaseTooltip","React9","useState","useRef","useCallback","useEffect","React10","React12","React13","React14","React15","React16","React17","React18","React19","React20","Fragment","React21","createContext","deepMerge","tokens","useMemo","useContext"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\";\n\nimport { Accordion as BaseAccordion } from \"@base-ui-components/react/accordion\";\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n// =============================================================================\n// Accordion Variants\n// =============================================================================\n\nconst accordionVariants = tv({\n\tbase: \"flex flex-col\",\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"\",\n\t\t\tlight: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t},\n});\n\nconst accordionItemVariants = tv({\n\tbase: \"border-b overflow-hidden\",\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"border-gray-300\",\n\t\t\tlight: \"border-gray-500\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t},\n});\n\nconst accordionTriggerVariants = tv({\n\tbase: [\n\t\t// Uses primitive spacing tokens\n\t\t\"flex w-full items-center justify-between py-24 text-left\",\n\t\t\"typography-body-large transition-colors cursor-pointer\",\n\t],\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"text-gray-100 data-[open]:text-white\",\n\t\t\tlight: \"text-gray-800 data-[open]:text-gray-900\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t},\n});\n\nconst accordionPanelVariants = tv({\n\t// Uses primitive spacing tokens\n\tbase: \"typography-body-large pb-24\",\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"text-gray-100\",\n\t\t\tlight: \"text-gray-800\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t},\n});\n\n// =============================================================================\n// Accordion Context\n// =============================================================================\n\nconst AccordionContext = React.createContext<{\n\tcolorScheme: \"dark\" | \"light\";\n}>({\n\tcolorScheme: \"light\",\n});\n\n// =============================================================================\n// Accordion\n// =============================================================================\n\nexport interface AccordionProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof accordionVariants> {\n\t/**\n\t * Allow multiple items to be expanded at once\n\t * @default false\n\t */\n\tallowMultiple?: boolean;\n\t/**\n\t * The ID(s) of items that should be expanded by default\n\t */\n\tdefaultExpanded?: string | string[];\n\tchildren: React.ReactNode;\n}\n\n/**\n * Accordion component for expandable/collapsible content sections.\n * Built on Base UI's Accordion primitive.\n *\n * Variants:\n * - light: Light theme styling (default)\n * - dark: Dark theme styling\n *\n * @example\n * ```tsx\n * <Accordion defaultExpanded=\"item-1\" variant=\"dark\">\n * <AccordionItem id=\"item-1\" title=\"Question 1\">\n * Answer to question 1\n * </AccordionItem>\n * <AccordionItem id=\"item-2\" title=\"Question 2\">\n * Answer to question 2\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nconst Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tallowMultiple = false,\n\t\t\tdefaultExpanded,\n\t\t\tcolorScheme = \"light\",\n\t\t\tchildren,\n\t\t},\n\t\tref,\n\t) => {\n\t\t// Normalize defaultExpanded to array format for Base UI\n\t\tconst defaultValue = React.useMemo((): string[] | undefined => {\n\t\t\tif (!defaultExpanded) return undefined;\n\t\t\tif (Array.isArray(defaultExpanded)) return defaultExpanded;\n\t\t\treturn [defaultExpanded];\n\t\t}, [defaultExpanded]);\n\n\t\treturn (\n\t\t\t<AccordionContext.Provider value={{ colorScheme }}>\n\t\t\t\t<BaseAccordion.Root\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={accordionVariants({ colorScheme, class: className })}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tmultiple={allowMultiple}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</BaseAccordion.Root>\n\t\t\t</AccordionContext.Provider>\n\t\t);\n\t},\n);\nAccordion.displayName = \"Accordion\";\n\n// =============================================================================\n// AccordionItem\n// =============================================================================\n\nexport interface AccordionItemProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n\t/**\n\t * Unique identifier for this item\n\t */\n\tid: string;\n\t/**\n\t * The question/title displayed in the header\n\t */\n\ttitle: string;\n\t/**\n\t * The answer/content revealed when expanded\n\t */\n\tchildren: React.ReactNode;\n}\n\n/**\n * Individual accordion item with collapsible content.\n * Must be used within an Accordion component.\n */\nconst AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n\t({ className, id, title, children }, ref) => {\n\t\tconst { colorScheme } = React.useContext(AccordionContext);\n\n\t\treturn (\n\t\t\t<BaseAccordion.Item\n\t\t\t\tref={ref}\n\t\t\t\tvalue={id}\n\t\t\t\tclassName={accordionItemVariants({ colorScheme, class: className })}\n\t\t\t>\n\t\t\t\t{/* Header - always visible */}\n\t\t\t\t<BaseAccordion.Header>\n\t\t\t\t\t<BaseAccordion.Trigger\n\t\t\t\t\t\tclassName={accordionTriggerVariants({ colorScheme })}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>{title}</span>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"text-base transition-transform duration-200\",\n\t\t\t\t\t\t\t\t\"[[data-open]_&]:rotate-45\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</BaseAccordion.Trigger>\n\t\t\t\t</BaseAccordion.Header>\n\n\t\t\t\t{/* Content - collapsible */}\n\t\t\t\t<BaseAccordion.Panel\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"h-[var(--accordion-panel-height)] overflow-hidden\",\n\t\t\t\t\t\t\"transition-[height] duration-300 ease-out\",\n\t\t\t\t\t\t\"[&[data-starting-style]]:h-0 [&[data-ending-style]]:h-0\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<div className={accordionPanelVariants({ colorScheme })}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</BaseAccordion.Panel>\n\t\t\t</BaseAccordion.Item>\n\t\t);\n\t},\n);\nAccordionItem.displayName = \"AccordionItem\";\n\nexport { Accordion, AccordionItem, accordionVariants };\n","\"use client\";\n\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\n// =============================================================================\n// Background Atomic Component\n// =============================================================================\n\nconst backgroundVariants = tv({\n\tbase: \"absolute inset-0\",\n});\n\n/**\n * Base container for background composition.\n * Use as a wrapper to compose multiple background layers (image, video, overlay, gradient).\n *\n * @example\n * ```tsx\n * <Background>\n * <Background.Image src=\"/hero.jpg\" />\n * <Background.Overlay opacity={0.4} />\n * <Background.Gradient direction=\"to-t\" from=\"black\" to=\"transparent\" />\n * </Background>\n * ```\n */\nexport interface BackgroundProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Background = React.forwardRef<HTMLDivElement, BackgroundProps>(\n\t({ className, children, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={backgroundVariants({ class: className })}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t),\n);\nBackground.displayName = \"Background\";\n\n// =============================================================================\n// Background.Image\n// =============================================================================\n\nconst backgroundImageVariants = tv({\n\tbase: \"absolute inset-0 size-full object-cover\",\n});\n\nexport interface BackgroundImageProps\n\textends useRender.ComponentProps<\"img\">,\n\t\tOmit<React.ImgHTMLAttributes<HTMLImageElement>, \"src\" | \"render\"> {\n\t/**\n\t * URL for the background image\n\t */\n\tsrc: string;\n\t/**\n\t * Object position (default: \"center\")\n\t */\n\tposition?: string;\n}\n\n/**\n * Background image layer using an actual img element with object-cover.\n * Supports native lazy loading, srcset, and better accessibility.\n * Supports render prop for element composition.\n */\nfunction BackgroundImage(props: BackgroundImageProps) {\n\tconst {\n\t\tclassName,\n\t\tsrc,\n\t\tposition = \"center\",\n\t\talt = \"\",\n\t\tstyle,\n\t\trender,\n\t\t...otherProps\n\t} = props;\n\n\tconst imgClassName = backgroundImageVariants({ class: className });\n\tconst imgStyle = { objectPosition: position, ...style };\n\n\treturn useRender({\n\t\trender,\n\t\tprops: {\n\t\t\tsrc,\n\t\t\talt,\n\t\t\tclassName: imgClassName,\n\t\t\tstyle: imgStyle,\n\t\t\t...otherProps,\n\t\t},\n\t\tdefaultTagName: \"img\",\n\t});\n}\nBackgroundImage.displayName = \"Background.Image\";\n\n// =============================================================================\n// Background.Video\n// =============================================================================\n\nconst backgroundVideoVariants = tv({\n\tbase: \"absolute inset-0 size-full object-cover\",\n});\n\nexport interface BackgroundVideoProps\n\textends useRender.ComponentProps<\"video\">,\n\t\tOmit<\n\t\t\tReact.VideoHTMLAttributes<HTMLVideoElement>,\n\t\t\t\"children\" | \"render\" | \"src\"\n\t\t> {\n\t/**\n\t * URL for the video source\n\t */\n\tsrc: string;\n\t/**\n\t * Video MIME type (default: auto-detected from src)\n\t */\n\ttype?: string;\n\t/**\n\t * Poster image URL shown before video loads\n\t */\n\tposter?: string;\n}\n\n/**\n * Background video layer using HTML5 video element.\n * Supports render prop for element composition.\n */\nfunction BackgroundVideo(props: BackgroundVideoProps) {\n\tconst {\n\t\tclassName,\n\t\tsrc,\n\t\ttype,\n\t\tposter,\n\t\tautoPlay = true,\n\t\tloop = true,\n\t\tmuted = true,\n\t\tplaysInline = true,\n\t\trender,\n\t\tchildren,\n\t\t...otherProps\n\t} = props;\n\n\tconst videoClassName = backgroundVideoVariants({ class: className });\n\n\t// useRender must be called unconditionally\n\tconst rendered = useRender({\n\t\trender,\n\t\tprops: {\n\t\t\tautoPlay,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tplaysInline,\n\t\t\tposter,\n\t\t\tclassName: videoClassName,\n\t\t\t...otherProps,\n\t\t},\n\t\tdefaultTagName: \"video\",\n\t});\n\n\t// If no render prop, return video with source child\n\tif (!render) {\n\t\treturn (\n\t\t\t<video\n\t\t\t\tautoPlay={autoPlay}\n\t\t\t\tloop={loop}\n\t\t\t\tmuted={muted}\n\t\t\t\tplaysInline={playsInline}\n\t\t\t\tposter={poster}\n\t\t\t\tclassName={videoClassName}\n\t\t\t\t{...otherProps}\n\t\t\t>\n\t\t\t\t<source src={src} type={type} />\n\t\t\t</video>\n\t\t);\n\t}\n\n\treturn rendered;\n}\nBackgroundVideo.displayName = \"Background.Video\";\n\n// =============================================================================\n// Background.Stream\n// =============================================================================\n\nconst backgroundStreamVariants = tv({\n\tbase: \"absolute inset-0 size-full border-0 scale-[1.5] object-cover\",\n});\n\nexport interface BackgroundStreamProps\n\textends React.IframeHTMLAttributes<HTMLIFrameElement> {\n\t/**\n\t * Cloudflare Stream video ID\n\t */\n\tvideoId: string;\n\t/**\n\t * Poster image URL (Cloudflare Stream thumbnail or custom)\n\t */\n\tposter?: string;\n\t/**\n\t * Whether the video should autoplay (default: true)\n\t */\n\tautoplay?: boolean;\n\t/**\n\t * Whether the video should loop (default: true)\n\t */\n\tloop?: boolean;\n\t/**\n\t * Whether the video should be muted (default: true)\n\t */\n\tmuted?: boolean;\n\t/**\n\t * Whether to show playback controls (default: false)\n\t */\n\tcontrols?: boolean;\n\t/**\n\t * Custom Cloudflare customer subdomain (if using custom domains)\n\t */\n\tcustomerSubdomain?: string;\n}\n\n/**\n * Background video layer using Cloudflare Stream.\n */\nconst BackgroundStream = React.forwardRef<\n\tHTMLIFrameElement,\n\tBackgroundStreamProps\n>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tvideoId,\n\t\t\tposter,\n\t\t\tautoplay = true,\n\t\t\tloop = true,\n\t\t\tmuted = true,\n\t\t\tcontrols = false,\n\t\t\tcustomerSubdomain,\n\t\t\ttitle = \"Background video\",\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst baseUrl = customerSubdomain\n\t\t\t? `https://${customerSubdomain}.cloudflarestream.com`\n\t\t\t: \"https://iframe.videodelivery.net\";\n\n\t\tconst params = new URLSearchParams();\n\t\tif (autoplay) params.set(\"autoplay\", \"true\");\n\t\tif (loop) params.set(\"loop\", \"true\");\n\t\tif (muted) params.set(\"muted\", \"true\");\n\t\tif (!controls) params.set(\"controls\", \"false\");\n\t\tif (poster) params.set(\"poster\", poster);\n\t\tparams.set(\"preload\", \"auto\");\n\n\t\tconst streamUrl = `${baseUrl}/${videoId}?${params.toString()}`;\n\n\t\treturn (\n\t\t\t<iframe\n\t\t\t\tref={ref}\n\t\t\t\tsrc={streamUrl}\n\t\t\t\ttitle={title}\n\t\t\t\tallow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n\t\t\t\tallowFullScreen\n\t\t\t\tclassName={backgroundStreamVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nBackgroundStream.displayName = \"Background.Stream\";\n\n// =============================================================================\n// Background.Overlay\n// =============================================================================\n\nconst backgroundOverlayVariants = tv({\n\tbase: \"absolute inset-0 bg-bg-overlay\",\n});\n\nexport interface BackgroundOverlayProps\n\textends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Overlay opacity (0-1)\n\t */\n\topacity?: number;\n}\n\n/**\n * Solid color overlay layer. Uses semantic bg-overlay token by default.\n * Override with className for different colors.\n */\nconst BackgroundOverlay = React.forwardRef<\n\tHTMLDivElement,\n\tBackgroundOverlayProps\n>(({ className, opacity = 0.4, style, ...props }, ref) => (\n\t<div\n\t\tref={ref}\n\t\taria-hidden=\"true\"\n\t\tclassName={backgroundOverlayVariants({ class: className })}\n\t\tstyle={{\n\t\t\topacity,\n\t\t\t...style,\n\t\t}}\n\t\t{...props}\n\t/>\n));\nBackgroundOverlay.displayName = \"Background.Overlay\";\n\n// =============================================================================\n// Background.Gradient\n// =============================================================================\n\nconst backgroundGradientVariants = tv({\n\tbase: \"absolute inset-0\",\n});\n\nexport interface BackgroundGradientProps\n\textends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Gradient direction (Tailwind convention: to-t, to-b, to-l, to-r, etc.)\n\t * Or CSS gradient direction (to top, to bottom, 45deg, etc.)\n\t */\n\tdirection?: string;\n\t/**\n\t * Starting color (from)\n\t */\n\tfrom?: string;\n\t/**\n\t * Optional middle color (via)\n\t */\n\tvia?: string;\n\t/**\n\t * Ending color (to)\n\t */\n\tto?: string;\n\t/**\n\t * Full custom gradient string (overrides from/via/to)\n\t */\n\tgradient?: string;\n}\n\n/**\n * Gradient overlay layer. Use for fading backgrounds or creating depth.\n */\nconst BackgroundGradient = React.forwardRef<\n\tHTMLDivElement,\n\tBackgroundGradientProps\n>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tdirection = \"to-b\",\n\t\t\tfrom = \"transparent\",\n\t\t\tvia,\n\t\t\tto = \"black\",\n\t\t\tgradient,\n\t\t\tstyle,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\t// Convert Tailwind-style direction to CSS\n\t\tconst cssDirection = direction.startsWith(\"to-\")\n\t\t\t? direction.replace(\"to-\", \"to \")\n\t\t\t: direction;\n\n\t\tconst gradientValue =\n\t\t\tgradient ||\n\t\t\t(via\n\t\t\t\t? `linear-gradient(${cssDirection}, ${from}, ${via}, ${to})`\n\t\t\t\t: `linear-gradient(${cssDirection}, ${from}, ${to})`);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={backgroundGradientVariants({ class: className })}\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundImage: gradientValue,\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nBackgroundGradient.displayName = \"Background.Gradient\";\n\n// =============================================================================\n// Compound Export\n// =============================================================================\n\nconst BackgroundCompound = Object.assign(Background, {\n\tImage: BackgroundImage,\n\tVideo: BackgroundVideo,\n\tStream: BackgroundStream,\n\tOverlay: BackgroundOverlay,\n\tGradient: BackgroundGradient,\n});\n\nexport {\n\tBackgroundCompound as Background,\n\tBackgroundImage,\n\tBackgroundVideo,\n\tBackgroundStream,\n\tBackgroundOverlay,\n\tBackgroundGradient,\n\tbackgroundVariants,\n\tbackgroundImageVariants,\n\tbackgroundVideoVariants,\n\tbackgroundStreamVariants,\n\tbackgroundOverlayVariants,\n\tbackgroundGradientVariants,\n};\n","/**\n * Component-level theming interface\n *\n * This interface defines all the customizable design tokens that can be\n * overridden at the component level. Components accepting a `theme` prop\n * will apply these values as CSS custom properties, allowing fine-grained\n * control over appearance without creating new variants.\n *\n * All values use primitive token names (e.g., \"gray-100\", \"spacing-40\")\n * which are converted to CSS variable references internally.\n */\n\n// =============================================================================\n// Token Name Types\n// =============================================================================\n\n/**\n * Color token names - maps to `--color-{name}` CSS variables\n * @example \"gray-100\", \"ember-v300\", \"alpha-black-10\"\n */\nexport type ColorToken =\n\t// Grayscale\n\t| \"gray-50\"\n\t| \"gray-100\"\n\t| \"gray-200\"\n\t| \"gray-300\"\n\t| \"gray-400\"\n\t| \"gray-500\"\n\t| \"gray-600\"\n\t| \"gray-700\"\n\t| \"gray-800\"\n\t| \"gray-900\"\n\t| \"gray-1000\"\n\t| \"gray-1100\"\n\t| \"gray-1200\"\n\t// Steel\n\t| \"steel-50\"\n\t| \"steel-100\"\n\t| \"steel-200\"\n\t| \"steel-300\"\n\t| \"steel-400\"\n\t| \"steel-500\"\n\t| \"steel-600\"\n\t| \"steel-700\"\n\t| \"steel-800\"\n\t| \"steel-900\"\n\t| \"steel-1000\"\n\t| \"steel-1100\"\n\t| \"steel-1200\"\n\t// Brown\n\t| \"brown-50\"\n\t| \"brown-100\"\n\t| \"brown-200\"\n\t| \"brown-300\"\n\t| \"brown-400\"\n\t| \"brown-500\"\n\t| \"brown-600\"\n\t| \"brown-700\"\n\t| \"brown-800\"\n\t| \"brown-900\"\n\t| \"brown-1000\"\n\t| \"brown-1100\"\n\t| \"brown-1200\"\n\t// Ember\n\t| \"ember-50\"\n\t| \"ember-100\"\n\t| \"ember-200\"\n\t| \"ember-300\"\n\t| \"ember-400\"\n\t| \"ember-500\"\n\t| \"ember-600\"\n\t| \"ember-700\"\n\t| \"ember-800\"\n\t| \"ember-900\"\n\t| \"ember-v100\"\n\t| \"ember-v200\"\n\t| \"ember-v300\"\n\t| \"ember-v400\"\n\t// Orange\n\t| \"orange-50\"\n\t| \"orange-100\"\n\t| \"orange-200\"\n\t| \"orange-300\"\n\t| \"orange-400\"\n\t| \"orange-500\"\n\t| \"orange-600\"\n\t| \"orange-700\"\n\t| \"orange-800\"\n\t| \"orange-900\"\n\t| \"orange-v100\"\n\t| \"orange-v200\"\n\t| \"orange-v300\"\n\t| \"orange-v400\"\n\t// Amber\n\t| \"amber-50\"\n\t| \"amber-100\"\n\t| \"amber-200\"\n\t| \"amber-300\"\n\t| \"amber-400\"\n\t| \"amber-500\"\n\t| \"amber-600\"\n\t| \"amber-700\"\n\t| \"amber-800\"\n\t| \"amber-900\"\n\t| \"amber-v100\"\n\t| \"amber-v200\"\n\t| \"amber-v300\"\n\t| \"amber-v400\"\n\t// Yellow\n\t| \"yellow-50\"\n\t| \"yellow-100\"\n\t| \"yellow-200\"\n\t| \"yellow-300\"\n\t| \"yellow-400\"\n\t| \"yellow-500\"\n\t| \"yellow-600\"\n\t| \"yellow-700\"\n\t| \"yellow-800\"\n\t| \"yellow-900\"\n\t| \"yellow-v100\"\n\t| \"yellow-v200\"\n\t| \"yellow-v300\"\n\t| \"yellow-v400\"\n\t// Lime\n\t| \"lime-50\"\n\t| \"lime-100\"\n\t| \"lime-200\"\n\t| \"lime-300\"\n\t| \"lime-400\"\n\t| \"lime-500\"\n\t| \"lime-600\"\n\t| \"lime-700\"\n\t| \"lime-800\"\n\t| \"lime-900\"\n\t| \"lime-v100\"\n\t| \"lime-v200\"\n\t| \"lime-v300\"\n\t| \"lime-v400\"\n\t// Green\n\t| \"green-50\"\n\t| \"green-100\"\n\t| \"green-200\"\n\t| \"green-300\"\n\t| \"green-400\"\n\t| \"green-500\"\n\t| \"green-600\"\n\t| \"green-700\"\n\t| \"green-800\"\n\t| \"green-900\"\n\t| \"green-v100\"\n\t| \"green-v200\"\n\t| \"green-v300\"\n\t| \"green-v400\"\n\t// Sage\n\t| \"sage-50\"\n\t| \"sage-100\"\n\t| \"sage-200\"\n\t| \"sage-300\"\n\t| \"sage-400\"\n\t| \"sage-500\"\n\t| \"sage-600\"\n\t| \"sage-700\"\n\t| \"sage-800\"\n\t| \"sage-900\"\n\t| \"sage-v100\"\n\t| \"sage-v200\"\n\t| \"sage-v300\"\n\t| \"sage-v400\"\n\t// Teal\n\t| \"teal-50\"\n\t| \"teal-100\"\n\t| \"teal-200\"\n\t| \"teal-300\"\n\t| \"teal-400\"\n\t| \"teal-500\"\n\t| \"teal-600\"\n\t| \"teal-700\"\n\t| \"teal-800\"\n\t| \"teal-900\"\n\t| \"teal-v100\"\n\t| \"teal-v200\"\n\t| \"teal-v300\"\n\t| \"teal-v400\"\n\t// Cyan\n\t| \"cyan-50\"\n\t| \"cyan-100\"\n\t| \"cyan-200\"\n\t| \"cyan-300\"\n\t| \"cyan-400\"\n\t| \"cyan-500\"\n\t| \"cyan-600\"\n\t| \"cyan-700\"\n\t| \"cyan-800\"\n\t| \"cyan-900\"\n\t| \"cyan-v100\"\n\t| \"cyan-v200\"\n\t| \"cyan-v300\"\n\t| \"cyan-v400\"\n\t// Ice\n\t| \"ice-50\"\n\t| \"ice-100\"\n\t| \"ice-200\"\n\t| \"ice-300\"\n\t| \"ice-400\"\n\t| \"ice-500\"\n\t| \"ice-600\"\n\t| \"ice-700\"\n\t| \"ice-800\"\n\t| \"ice-900\"\n\t| \"ice-v100\"\n\t| \"ice-v200\"\n\t| \"ice-v300\"\n\t| \"ice-v400\"\n\t// Blue\n\t| \"blue-50\"\n\t| \"blue-100\"\n\t| \"blue-200\"\n\t| \"blue-300\"\n\t| \"blue-400\"\n\t| \"blue-500\"\n\t| \"blue-600\"\n\t| \"blue-700\"\n\t| \"blue-800\"\n\t| \"blue-900\"\n\t| \"blue-v100\"\n\t| \"blue-v200\"\n\t| \"blue-v300\"\n\t| \"blue-v400\"\n\t// Indigo\n\t| \"indigo-50\"\n\t| \"indigo-100\"\n\t| \"indigo-200\"\n\t| \"indigo-300\"\n\t| \"indigo-400\"\n\t| \"indigo-500\"\n\t| \"indigo-600\"\n\t| \"indigo-700\"\n\t| \"indigo-800\"\n\t| \"indigo-900\"\n\t| \"indigo-v100\"\n\t| \"indigo-v200\"\n\t| \"indigo-v300\"\n\t| \"indigo-v400\"\n\t// Iris\n\t| \"iris-50\"\n\t| \"iris-100\"\n\t| \"iris-200\"\n\t| \"iris-300\"\n\t| \"iris-400\"\n\t| \"iris-500\"\n\t| \"iris-600\"\n\t| \"iris-700\"\n\t| \"iris-800\"\n\t| \"iris-900\"\n\t| \"iris-v100\"\n\t| \"iris-v200\"\n\t| \"iris-v300\"\n\t| \"iris-v400\"\n\t// Purple\n\t| \"purple-50\"\n\t| \"purple-100\"\n\t| \"purple-200\"\n\t| \"purple-300\"\n\t| \"purple-400\"\n\t| \"purple-500\"\n\t| \"purple-600\"\n\t| \"purple-700\"\n\t| \"purple-800\"\n\t| \"purple-900\"\n\t| \"purple-v100\"\n\t| \"purple-v200\"\n\t| \"purple-v300\"\n\t| \"purple-v400\"\n\t// Pink\n\t| \"pink-50\"\n\t| \"pink-100\"\n\t| \"pink-200\"\n\t| \"pink-300\"\n\t| \"pink-400\"\n\t| \"pink-500\"\n\t| \"pink-600\"\n\t| \"pink-700\"\n\t| \"pink-800\"\n\t| \"pink-900\"\n\t| \"pink-v100\"\n\t| \"pink-v200\"\n\t| \"pink-v300\"\n\t| \"pink-v400\"\n\t// Red\n\t| \"red-50\"\n\t| \"red-100\"\n\t| \"red-200\"\n\t| \"red-300\"\n\t| \"red-400\"\n\t| \"red-500\"\n\t| \"red-600\"\n\t| \"red-700\"\n\t| \"red-800\"\n\t| \"red-900\"\n\t| \"red-v100\"\n\t| \"red-v200\"\n\t| \"red-v300\"\n\t| \"red-v400\"\n\t// Alpha\n\t| \"alpha-black-5\"\n\t| \"alpha-black-10\"\n\t| \"alpha-black-20\"\n\t| \"alpha-black-30\"\n\t| \"alpha-black-40\"\n\t| \"alpha-black-50\"\n\t| \"alpha-black-60\"\n\t| \"alpha-black-70\"\n\t| \"alpha-black-80\"\n\t| \"alpha-black-90\"\n\t| \"alpha-black-95\"\n\t| \"alpha-white-5\"\n\t| \"alpha-white-10\"\n\t| \"alpha-white-20\"\n\t| \"alpha-white-30\"\n\t| \"alpha-white-40\"\n\t| \"alpha-white-50\"\n\t| \"alpha-white-60\"\n\t| \"alpha-white-70\"\n\t| \"alpha-white-80\"\n\t| \"alpha-white-90\"\n\t| \"alpha-white-95\"\n\t// Special\n\t| \"white\"\n\t| \"black\";\n\n/**\n * Spacing token names - maps to `--spacing-{name}` CSS variables\n * @example \"spacing-40\", \"spacing-72\"\n */\nexport type SpacingToken =\n\t| \"spacing-0\"\n\t| \"spacing-2\"\n\t| \"spacing-4\"\n\t| \"spacing-6\"\n\t| \"spacing-8\"\n\t| \"spacing-10\"\n\t| \"spacing-11\"\n\t| \"spacing-12\"\n\t| \"spacing-16\"\n\t| \"spacing-20\"\n\t| \"spacing-24\"\n\t| \"spacing-28\"\n\t| \"spacing-32\"\n\t| \"spacing-36\"\n\t| \"spacing-40\"\n\t| \"spacing-48\"\n\t| \"spacing-56\"\n\t| \"spacing-64\"\n\t| \"spacing-72\"\n\t| \"spacing-80\"\n\t| \"spacing-96\"\n\t| \"spacing-112\"\n\t| \"spacing-128\"\n\t| \"spacing-144\"\n\t| \"spacing-160\"\n\t| \"spacing-176\"\n\t| \"spacing-192\"\n\t| \"spacing-208\"\n\t| \"spacing-224\"\n\t| \"spacing-240\"\n\t| \"spacing-256\"\n\t| \"spacing-288\"\n\t| \"spacing-320\"\n\t| \"spacing-352\"\n\t| \"spacing-384\"\n\t| \"spacing-400\";\n\n/**\n * Radius token names - maps to `--radii-{name}` CSS variables\n * @example \"radii-4\", \"radii-6\"\n */\nexport type RadiusToken =\n\t| \"radii-0\"\n\t| \"radii-2\"\n\t| \"radii-4\"\n\t| \"radii-6\"\n\t| \"radii-8\"\n\t| \"radii-10\"\n\t| \"radii-11\"\n\t| \"radii-12\"\n\t| \"radii-16\"\n\t| \"radii-20\"\n\t| \"radii-24\"\n\t| \"radii-28\"\n\t| \"radii-32\"\n\t| \"radii-36\"\n\t| \"radii-40\"\n\t| \"radii-48\"\n\t| \"radii-56\"\n\t| \"radii-64\"\n\t| \"radii-72\"\n\t| \"radii-80\"\n\t| \"radii-96\"\n\t| \"radii-112\"\n\t| \"radii-128\"\n\t| \"radii-144\"\n\t| \"radii-160\"\n\t| \"radii-176\"\n\t| \"radii-192\"\n\t| \"radii-208\"\n\t| \"radii-224\"\n\t| \"radii-240\"\n\t| \"radii-256\"\n\t| \"radii-288\"\n\t| \"radii-320\"\n\t| \"radii-352\"\n\t| \"radii-384\"\n\t| \"radii-400\";\n\n/**\n * Font size token values - primitive font sizes available in the design system\n * These correspond to Tailwind classes like `text-64`, `text-128`, etc.\n * @example 64, 128, 192\n */\nexport type FontSizeToken =\n\t| 9\n\t| 11\n\t| 12\n\t| 14\n\t| 16\n\t| 18\n\t| 21\n\t| 24\n\t| 28\n\t| 32\n\t| 36\n\t| 42\n\t| 48\n\t| 56\n\t| 64\n\t| 72\n\t| 84\n\t| 88\n\t| 96\n\t| 112\n\t| 128\n\t| 148\n\t| 168\n\t| 192\n\t| 224\n\t| 256\n\t| 280;\n\n/**\n * Array of all available font sizes for use in UI selectors/dropdowns\n */\nexport const FONT_SIZES: FontSizeToken[] = [\n\t9, 11, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 64, 72, 84, 88, 96,\n\t112, 128, 148, 168, 192, 224, 256, 280,\n];\n\n/**\n * Helper to generate typography class string from font size\n * @example fontSizeToClass(128) => \"text-128 leading-128 tracking-128\"\n */\nexport function fontSizeToClass(size: FontSizeToken): string {\n\treturn `text-${size} leading-${size} tracking-${size}`;\n}\n\n/**\n * Helper to generate responsive typography class string\n * @example responsiveTypographyClass(64, 128, 192) => \"text-64 leading-64 tracking-64 md:text-128 md:leading-128 md:tracking-128 xl:text-192 xl:leading-192 xl:tracking-192\"\n */\nexport function responsiveTypographyClass(\n\tmobile: FontSizeToken,\n\ttablet: FontSizeToken,\n\tdesktop: FontSizeToken,\n): string {\n\treturn [\n\t\tfontSizeToClass(mobile),\n\t\t`md:${fontSizeToClass(tablet).split(\" \").join(\" md:\")}`,\n\t\t`xl:${fontSizeToClass(desktop).split(\" \").join(\" xl:\")}`,\n\t].join(\" \");\n}\n\n// =============================================================================\n// Color Tokens\n// =============================================================================\n\nexport interface ComponentThemeColors {\n\t/**\n\t * Background color for sections\n\t * @example \"gray-100\"\n\t */\n\tbgSection?: ColorToken;\n\n\t/**\n\t * Background color for cards\n\t * @example \"white\"\n\t */\n\tcardBackground?: ColorToken;\n\n\t/**\n\t * Muted background color\n\t * @example \"gray-50\"\n\t */\n\tbgMuted?: ColorToken;\n\n\t/**\n\t * Primary text color\n\t * @example \"gray-1100\"\n\t */\n\ttextPrimary?: ColorToken;\n\n\t/**\n\t * Secondary text color\n\t * @example \"gray-800\"\n\t */\n\ttextSecondary?: ColorToken;\n\n\t/**\n\t * Muted text color\n\t * @example \"gray-600\"\n\t */\n\ttextMuted?: ColorToken;\n\n\t/**\n\t * Inverted text color (for dark backgrounds)\n\t * @example \"gray-100\"\n\t */\n\ttextInverted?: ColorToken;\n\n\t/**\n\t * Link text color\n\t * @example \"gray-1100\"\n\t */\n\ttextLink?: ColorToken;\n\n\t/**\n\t * Link hover text color\n\t * @example \"gray-700\"\n\t */\n\ttextLinkHover?: ColorToken;\n\n\t/**\n\t * Brand accent color\n\t * @example \"ember-v300\"\n\t */\n\taccentBrand?: ColorToken;\n\n\t/**\n\t * Soft brand accent color\n\t * @example \"ember-100\"\n\t */\n\taccentBrandSoft?: ColorToken;\n\n\t/**\n\t * Subtle border color\n\t * @example \"alpha-black-10\"\n\t */\n\tborderSubtle?: ColorToken;\n\n\t/**\n\t * Strong border color\n\t * @example \"alpha-black-20\"\n\t */\n\tborderStrong?: ColorToken;\n\n\t/**\n\t * Focus border color (uses accentBrand by default)\n\t * @example \"ember-v300\"\n\t */\n\tborderFocus?: ColorToken;\n\n\t/**\n\t * Divider border color\n\t * @example \"alpha-black-10\"\n\t */\n\tborderDivider?: ColorToken;\n\n\t/**\n\t * Primary button background color\n\t * @example \"gray-1100\"\n\t */\n\tbuttonPrimaryBg?: ColorToken;\n\n\t/**\n\t * Primary button hover background color\n\t * @example \"gray-600\"\n\t */\n\tbuttonPrimaryBgHover?: ColorToken;\n\n\t/**\n\t * Secondary button background color\n\t * @example \"white\"\n\t */\n\tbuttonSecondaryBg?: ColorToken;\n\n\t/**\n\t * Secondary button hover background color\n\t * @example \"gray-100\"\n\t */\n\tbuttonSecondaryBgHover?: ColorToken;\n}\n\n// =============================================================================\n// Spatial Tokens\n// =============================================================================\n\nexport interface ComponentThemeSpatial {\n\t/**\n\t * Grid margin for large breakpoint\n\t * @example \"spacing-72\"\n\t */\n\tgridLargeMargin?: SpacingToken;\n\n\t/**\n\t * Grid gutter for large breakpoint\n\t * @example \"spacing-24\"\n\t */\n\tgridLargeGutter?: SpacingToken;\n\n\t/**\n\t * Number of grid columns for large breakpoint\n\t */\n\tgridLargeColumns?: number;\n\n\t/**\n\t * Grid margin for medium breakpoint\n\t * @example \"spacing-56\"\n\t */\n\tgridMediumMargin?: SpacingToken;\n\n\t/**\n\t * Grid gutter for medium breakpoint\n\t * @example \"spacing-20\"\n\t */\n\tgridMediumGutter?: SpacingToken;\n\n\t/**\n\t * Number of grid columns for medium breakpoint\n\t */\n\tgridMediumColumns?: number;\n\n\t/**\n\t * Grid margin for small breakpoint\n\t * @example \"spacing-24\"\n\t */\n\tgridSmallMargin?: SpacingToken;\n\n\t/**\n\t * Grid gutter for small breakpoint\n\t * @example \"spacing-12\"\n\t */\n\tgridSmallGutter?: SpacingToken;\n\n\t/**\n\t * Number of grid columns for small breakpoint\n\t */\n\tgridSmallColumns?: number;\n\n\t/**\n\t * Section gap for large breakpoint\n\t * @example \"spacing-64\"\n\t */\n\tsectionLargeGap?: SpacingToken;\n\n\t/**\n\t * Section padding for large breakpoint\n\t * @example \"spacing-128\"\n\t */\n\tsectionLargePadding?: SpacingToken;\n\n\t/**\n\t * Section gap for medium breakpoint\n\t * @example \"spacing-56\"\n\t */\n\tsectionMediumGap?: SpacingToken;\n\n\t/**\n\t * Section padding for medium breakpoint\n\t * @example \"spacing-96\"\n\t */\n\tsectionMediumPadding?: SpacingToken;\n\n\t/**\n\t * Section gap for small breakpoint\n\t * @example \"spacing-32\"\n\t */\n\tsectionSmallGap?: SpacingToken;\n\n\t/**\n\t * Section padding for small breakpoint\n\t * @example \"spacing-64\"\n\t */\n\tsectionSmallPadding?: SpacingToken;\n\n\t/**\n\t * Card gap for large size\n\t * @example \"spacing-10\"\n\t */\n\tcardLargeGap?: SpacingToken;\n\n\t/**\n\t * Card padding for large size\n\t * @example \"spacing-24\"\n\t */\n\tcardLargePadding?: SpacingToken;\n\n\t/**\n\t * Card gap for small size\n\t * @example \"spacing-12\"\n\t */\n\tcardSmallGap?: SpacingToken;\n\n\t/**\n\t * Card padding for small size\n\t * @example \"spacing-16\"\n\t */\n\tcardSmallPadding?: SpacingToken;\n}\n\n// =============================================================================\n// Surface Tokens\n// =============================================================================\n\nexport interface ComponentThemeSurface {\n\t/**\n\t * Card border radius\n\t * @example \"radii-4\"\n\t */\n\tcardRadius?: RadiusToken;\n\n\t/**\n\t * Card stroke/border width in pixels\n\t * @example 1\n\t */\n\tcardStroke?: number;\n\n\t/**\n\t * Button border radius\n\t * @example \"radii-6\"\n\t */\n\tbuttonRadius?: RadiusToken;\n\n\t/**\n\t * Button stroke/border weight in pixels\n\t * @example 1\n\t */\n\tbuttonStrokeWeight?: number;\n}\n\n// =============================================================================\n// Combined Theme Interface\n// =============================================================================\n\n/**\n * Complete component theme interface combining colors, spatial, and surface tokens.\n *\n * @example\n * ```tsx\n * const customTheme: ComponentTheme = {\n * colors: {\n * textPrimary: \"gray-100\",\n * accentBrand: \"ember-500\",\n * },\n * spatial: {\n * sectionLargePadding: \"spacing-96\",\n * },\n * surface: {\n * cardRadius: \"radii-8\",\n * },\n * };\n *\n * <Tout theme={customTheme} ... />\n * ```\n */\nexport interface ComponentTheme {\n\tcolors?: ComponentThemeColors;\n\tspatial?: ComponentThemeSpatial;\n\tsurface?: ComponentThemeSurface;\n}\n\n// =============================================================================\n// Button Theme Interface\n// =============================================================================\n\n/**\n * Button-specific theme interface for customizing individual button appearance.\n *\n * @example\n * ```tsx\n * const buttonTheme: ButtonTheme = {\n * bg: \"ember-500\",\n * bgHover: \"ember-600\",\n * text: \"white\",\n * radius: \"radii-8\",\n * };\n *\n * <Button theme={buttonTheme}>Themed Button</Button>\n * ```\n */\nexport interface ButtonTheme {\n\t/** Background color */\n\tbg?: ColorToken;\n\t/** Background color on hover */\n\tbgHover?: ColorToken;\n\t/** Background color on active/press */\n\tbgActive?: ColorToken;\n\t/** Text color */\n\ttext?: ColorToken;\n\t/** Border color (if using border) */\n\tborderColor?: ColorToken;\n\t/** Border width in pixels (0 for no border) */\n\tborderWidth?: number;\n\t/** Border radius */\n\tradius?: RadiusToken;\n}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Converts a color token name to a CSS variable reference\n */\nfunction colorToVar(token: ColorToken): string {\n\treturn `var(--color-${token})`;\n}\n\n/**\n * Converts a spacing token name to a CSS variable reference\n */\nfunction spacingToVar(token: SpacingToken): string {\n\treturn `var(--${token})`;\n}\n\n/**\n * Converts a radius token name to a CSS variable reference\n */\nfunction radiusToVar(token: RadiusToken): string {\n\treturn `var(--${token})`;\n}\n\n/**\n * Converts a ComponentTheme object to CSS custom properties (inline style object)\n *\n * @param theme - The theme object to convert\n * @returns An object suitable for use as React inline styles\n */\nexport function themeToStyleVars(\n\ttheme: ComponentTheme | undefined,\n): React.CSSProperties {\n\tif (!theme) return {};\n\n\tconst vars: Record<string, string> = {};\n\n\t// Colors\n\tif (theme.colors) {\n\t\tconst { colors } = theme;\n\t\tif (colors.bgSection)\n\t\t\tvars[\"--theme-bg-section\"] = colorToVar(colors.bgSection);\n\t\tif (colors.cardBackground)\n\t\t\tvars[\"--theme-card-background\"] = colorToVar(colors.cardBackground);\n\t\tif (colors.bgMuted) vars[\"--theme-bg-muted\"] = colorToVar(colors.bgMuted);\n\t\tif (colors.textPrimary)\n\t\t\tvars[\"--theme-text-primary\"] = colorToVar(colors.textPrimary);\n\t\tif (colors.textSecondary)\n\t\t\tvars[\"--theme-text-secondary\"] = colorToVar(colors.textSecondary);\n\t\tif (colors.textMuted)\n\t\t\tvars[\"--theme-text-muted\"] = colorToVar(colors.textMuted);\n\t\tif (colors.textInverted)\n\t\t\tvars[\"--theme-text-inverted\"] = colorToVar(colors.textInverted);\n\t\tif (colors.textLink)\n\t\t\tvars[\"--theme-text-link\"] = colorToVar(colors.textLink);\n\t\tif (colors.textLinkHover)\n\t\t\tvars[\"--theme-text-link-hover\"] = colorToVar(colors.textLinkHover);\n\t\tif (colors.accentBrand)\n\t\t\tvars[\"--theme-accent-brand\"] = colorToVar(colors.accentBrand);\n\t\tif (colors.accentBrandSoft)\n\t\t\tvars[\"--theme-accent-brand-soft\"] = colorToVar(colors.accentBrandSoft);\n\t\tif (colors.borderSubtle)\n\t\t\tvars[\"--theme-border-subtle\"] = colorToVar(colors.borderSubtle);\n\t\tif (colors.borderStrong)\n\t\t\tvars[\"--theme-border-strong\"] = colorToVar(colors.borderStrong);\n\t\tif (colors.borderFocus)\n\t\t\tvars[\"--theme-border-focus\"] = colorToVar(colors.borderFocus);\n\t\tif (colors.borderDivider)\n\t\t\tvars[\"--theme-border-divider\"] = colorToVar(colors.borderDivider);\n\t\tif (colors.buttonPrimaryBg)\n\t\t\tvars[\"--theme-button-primary-bg\"] = colorToVar(colors.buttonPrimaryBg);\n\t\tif (colors.buttonPrimaryBgHover)\n\t\t\tvars[\"--theme-button-primary-bg-hover\"] = colorToVar(\n\t\t\t\tcolors.buttonPrimaryBgHover,\n\t\t\t);\n\t\tif (colors.buttonSecondaryBg)\n\t\t\tvars[\"--theme-button-secondary-bg\"] = colorToVar(\n\t\t\t\tcolors.buttonSecondaryBg,\n\t\t\t);\n\t\tif (colors.buttonSecondaryBgHover)\n\t\t\tvars[\"--theme-button-secondary-bg-hover\"] = colorToVar(\n\t\t\t\tcolors.buttonSecondaryBgHover,\n\t\t\t);\n\t}\n\n\t// Spatial\n\tif (theme.spatial) {\n\t\tconst { spatial } = theme;\n\t\tif (spatial.gridLargeMargin)\n\t\t\tvars[\"--theme-grid-large-margin\"] = spacingToVar(spatial.gridLargeMargin);\n\t\tif (spatial.gridLargeGutter)\n\t\t\tvars[\"--theme-grid-large-gutter\"] = spacingToVar(spatial.gridLargeGutter);\n\t\tif (spatial.gridLargeColumns)\n\t\t\tvars[\"--theme-grid-large-columns\"] = String(spatial.gridLargeColumns);\n\t\tif (spatial.gridMediumMargin)\n\t\t\tvars[\"--theme-grid-medium-margin\"] = spacingToVar(\n\t\t\t\tspatial.gridMediumMargin,\n\t\t\t);\n\t\tif (spatial.gridMediumGutter)\n\t\t\tvars[\"--theme-grid-medium-gutter\"] = spacingToVar(\n\t\t\t\tspatial.gridMediumGutter,\n\t\t\t);\n\t\tif (spatial.gridMediumColumns)\n\t\t\tvars[\"--theme-grid-medium-columns\"] = String(spatial.gridMediumColumns);\n\t\tif (spatial.gridSmallMargin)\n\t\t\tvars[\"--theme-grid-small-margin\"] = spacingToVar(spatial.gridSmallMargin);\n\t\tif (spatial.gridSmallGutter)\n\t\t\tvars[\"--theme-grid-small-gutter\"] = spacingToVar(spatial.gridSmallGutter);\n\t\tif (spatial.gridSmallColumns)\n\t\t\tvars[\"--theme-grid-small-columns\"] = String(spatial.gridSmallColumns);\n\t\tif (spatial.sectionLargeGap)\n\t\t\tvars[\"--theme-section-large-gap\"] = spacingToVar(spatial.sectionLargeGap);\n\t\tif (spatial.sectionLargePadding)\n\t\t\tvars[\"--theme-section-large-padding\"] = spacingToVar(\n\t\t\t\tspatial.sectionLargePadding,\n\t\t\t);\n\t\tif (spatial.sectionMediumGap)\n\t\t\tvars[\"--theme-section-medium-gap\"] = spacingToVar(\n\t\t\t\tspatial.sectionMediumGap,\n\t\t\t);\n\t\tif (spatial.sectionMediumPadding)\n\t\t\tvars[\"--theme-section-medium-padding\"] = spacingToVar(\n\t\t\t\tspatial.sectionMediumPadding,\n\t\t\t);\n\t\tif (spatial.sectionSmallGap)\n\t\t\tvars[\"--theme-section-small-gap\"] = spacingToVar(spatial.sectionSmallGap);\n\t\tif (spatial.sectionSmallPadding)\n\t\t\tvars[\"--theme-section-small-padding\"] = spacingToVar(\n\t\t\t\tspatial.sectionSmallPadding,\n\t\t\t);\n\t\tif (spatial.cardLargeGap)\n\t\t\tvars[\"--theme-card-large-gap\"] = spacingToVar(spatial.cardLargeGap);\n\t\tif (spatial.cardLargePadding)\n\t\t\tvars[\"--theme-card-large-padding\"] = spacingToVar(\n\t\t\t\tspatial.cardLargePadding,\n\t\t\t);\n\t\tif (spatial.cardSmallGap)\n\t\t\tvars[\"--theme-card-small-gap\"] = spacingToVar(spatial.cardSmallGap);\n\t\tif (spatial.cardSmallPadding)\n\t\t\tvars[\"--theme-card-small-padding\"] = spacingToVar(\n\t\t\t\tspatial.cardSmallPadding,\n\t\t\t);\n\t}\n\n\t// Surface\n\tif (theme.surface) {\n\t\tconst { surface } = theme;\n\t\tif (surface.cardRadius)\n\t\t\tvars[\"--theme-card-radius\"] = radiusToVar(surface.cardRadius);\n\t\tif (surface.cardStroke)\n\t\t\tvars[\"--theme-card-stroke\"] = `${surface.cardStroke}px`;\n\t\tif (surface.buttonRadius)\n\t\t\tvars[\"--theme-button-radius\"] = radiusToVar(surface.buttonRadius);\n\t\tif (surface.buttonStrokeWeight)\n\t\t\tvars[\"--theme-button-stroke-weight\"] = `${surface.buttonStrokeWeight}px`;\n\t}\n\n\treturn vars as React.CSSProperties;\n}\n\n/**\n * Converts a ButtonTheme object to CSS custom properties (inline style object)\n *\n * @param theme - The button theme object to convert\n * @returns An object suitable for use as React inline styles\n */\nexport function buttonThemeToStyleVars(\n\ttheme: ButtonTheme | undefined,\n): React.CSSProperties {\n\tif (!theme) return {};\n\n\tconst vars: Record<string, string> = {};\n\n\tif (theme.bg) vars[\"--btn-bg\"] = colorToVar(theme.bg);\n\tif (theme.bgHover) vars[\"--btn-bg-hover\"] = colorToVar(theme.bgHover);\n\tif (theme.bgActive) vars[\"--btn-bg-active\"] = colorToVar(theme.bgActive);\n\tif (theme.text) vars[\"--btn-text\"] = colorToVar(theme.text);\n\tif (theme.borderColor)\n\t\tvars[\"--btn-border-color\"] = colorToVar(theme.borderColor);\n\tif (theme.borderWidth !== undefined)\n\t\tvars[\"--btn-border-width\"] = `${theme.borderWidth}px`;\n\tif (theme.radius) vars[\"--btn-radius\"] = radiusToVar(theme.radius);\n\n\treturn vars as React.CSSProperties;\n}\n","\"use client\";\n\nimport {\n\tButton as BaseButton,\n\ttype ButtonProps as BaseButtonProps,\n} from \"@base-ui-components/react/button\";\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { type ButtonTheme, buttonThemeToStyleVars } from \"../../../lib/theme\";\n\n/**\n * Button component based on Figma Button component\n *\n * Variants (matches Figma):\n * - primary: Blue filled button for primary actions\n * - default: Dark filled button for secondary prominence\n * - secondary: Light gray filled button with subtle border\n * - destructive: Red filled button for destructive actions\n * - outline: Bordered button with transparent background\n * - ghost: Transparent button with subtle hover\n * - link: Text-only button with underline on hover\n *\n * Sizes (matches Figma):\n * - sm: Small buttons (32px height)\n * - default: Default buttons (36px height)\n * - lg: Large buttons (40px height)\n *\n * For icon-only buttons, use the IconButton component instead.\n *\n * Theme Support:\n * Pass a `theme` prop to override default colors via CSS custom properties.\n */\nconst buttonVariants = tv({\n\tbase: \"inline-flex items-center justify-center gap-spatial-ui-button-gap-icon-text whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tvariant: {\n\t\t\t// Primary - blue filled button\n\t\t\tprimary:\n\t\t\t\t\"bg-button-primary-bg text-button-primary-text hover:bg-button-primary-bg-hover active:bg-button-primary-bg-active border-transparent\",\n\t\t\t// Default - dark filled button\n\t\t\tdefault:\n\t\t\t\t\"bg-button-default-bg text-button-default-text hover:bg-button-default-bg-hover active:bg-button-default-bg-active border-transparent\",\n\t\t\t// Secondary - light gray filled with subtle border\n\t\t\tsecondary:\n\t\t\t\t\"bg-button-secondary-bg text-button-secondary-text hover:bg-button-secondary-bg-hover active:bg-button-secondary-bg-active border border-button-secondary-border\",\n\t\t\t// Destructive - red filled button\n\t\t\tdestructive:\n\t\t\t\t\"bg-button-destructive-bg text-button-destructive-text hover:bg-button-destructive-bg-hover active:bg-button-destructive-bg-active border-transparent\",\n\t\t\t// Outline - bordered with transparent background\n\t\t\toutline:\n\t\t\t\t\"bg-button-outline-bg text-button-outline-text hover:bg-button-outline-bg-hover active:bg-button-outline-bg-active border border-button-outline-border hover:border-button-outline-border-hover\",\n\t\t\t// Ghost - transparent with subtle hover\n\t\t\tghost:\n\t\t\t\t\"bg-button-ghost-bg text-button-ghost-text hover:bg-button-ghost-bg-hover active:bg-button-ghost-bg-active border-transparent\",\n\t\t\t// Link - text only with underline on hover\n\t\t\tlink: \"bg-transparent text-button-link-text hover:text-button-link-text-hover hover:underline active:text-button-link-text-hover border-transparent underline-offset-4\",\n\t\t\t// Themed - uses CSS custom properties for styling\n\t\t\tthemed:\n\t\t\t\t\"[background:var(--btn-bg)] [color:var(--btn-text)] [border-color:var(--btn-border-color,transparent)] hover:[background:var(--btn-bg-hover,var(--btn-bg))] active:[background:var(--btn-bg-active,var(--btn-bg-hover,var(--btn-bg)))]\",\n\t\t},\n\t\tsize: {\n\t\t\tsm: \"typography-ui-text-xs h-spatial-ui-button-height-small px-spatial-ui-button-padding-x-small py-spatial-ui-button-padding-y-small rounded-surface-button-small\",\n\t\t\tdefault:\n\t\t\t\t\"typography-ui-text-sm h-spatial-ui-button-height-medium px-spatial-ui-button-padding-x-medium py-spatial-ui-button-padding-y-medium rounded-surface-button-medium\",\n\t\t\tlg: \"typography-ui-text-md h-spatial-ui-button-height-large px-spatial-ui-button-padding-x-large py-spatial-ui-button-padding-y-large rounded-surface-button-large\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\",\n\t},\n});\n\nexport type HTMLButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\nexport type ButtonProps = BaseButtonProps &\n\tVariantProps<typeof buttonVariants> &\n\tHTMLButtonProps & {\n\t\t/**\n\t\t * Theme overrides for button styling via CSS custom properties\n\t\t */\n\t\ttheme?: ButtonTheme;\n\t};\n\n/**\n * Check if a ButtonTheme has any actual values set\n */\nfunction hasThemeValues(theme: ButtonTheme | undefined): boolean {\n\tif (!theme) return false;\n\treturn Object.values(theme).some((v) => v !== undefined && v !== null);\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t(\n\t\t{ className, variant, size, render, nativeButton, theme, style, ...props },\n\t\tref,\n\t) => {\n\t\t// When render prop is provided, default nativeButton to false to suppress warnings\n\t\tconst isNativeButton = nativeButton ?? render === undefined;\n\n\t\t// If theme has actual values, use \"themed\" variant to enable CSS custom property styling\n\t\tconst hasTheme = hasThemeValues(theme);\n\t\tconst effectiveVariant = hasTheme ? \"themed\" : variant;\n\t\tconst themeStyles = buttonThemeToStyleVars(theme);\n\t\tconst combinedStyles = hasTheme ? { ...themeStyles, ...style } : style;\n\n\t\t// Resolve actual values for data attributes\n\t\tconst resolvedVariant = effectiveVariant ?? \"default\";\n\t\tconst resolvedSize = size ?? \"default\";\n\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\tclassName={buttonVariants({\n\t\t\t\t\tvariant: effectiveVariant,\n\t\t\t\t\tsize,\n\t\t\t\t\tclass: className,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t\trender={render}\n\t\t\t\tnativeButton={isNativeButton}\n\t\t\t\tstyle={combinedStyles}\n\t\t\t\tdata-variant={resolvedVariant}\n\t\t\t\tdata-size={resolvedSize}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\n/**\n * IconButton component based on Figma Button component (icon-only variant)\n *\n * **IMPORTANT: Accessibility Requirement**\n * Icon-only buttons MUST have an accessible label. Provide one of:\n * - `aria-label`: A text description of the button's action (recommended)\n * - `aria-labelledby`: Reference to an element containing the label\n * - `title`: Tooltip text (less preferred, but provides a label)\n *\n * @example\n * ```tsx\n * // Correct usage with aria-label\n * <IconButton aria-label=\"Close menu\">\n * <CloseIcon />\n * </IconButton>\n * ```\n *\n * Variants (matches Figma):\n * - primary: Filled brand button (indigo background)\n * - primary-outline: Outlined brand button (indigo border/text)\n * - secondary: Filled neutral button (white background, for dark backgrounds)\n * - secondary-outline: Outlined neutral button (white border/text, for dark backgrounds)\n * - ghost: Transparent button with subtle hover (for light backgrounds)\n * - ghost-inverse: Transparent button with subtle hover (for dark backgrounds)\n *\n * Sizes:\n * - sm: Small (28x28)\n * - md: Medium (40x40) - default\n * - lg: Large (56x56)\n *\n * Rounded:\n * - default: Standard border radius (matches size)\n * - full: Fully circular\n */\nconst iconButtonVariants = tv({\n\tbase: \"inline-flex items-center justify-center whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tvariant: {\n\t\t\t// Primary - filled brand button\n\t\t\tprimary:\n\t\t\t\t\"bg-button-primary-bg text-button-primary-text hover:bg-button-primary-bg-hover hover:text-button-primary-text-hover border-transparent focus-visible:ring-button-primary-bg\",\n\t\t\t// Primary Outline - outlined brand button\n\t\t\t\"primary-outline\":\n\t\t\t\t\"bg-button-primary-outline-bg text-button-primary-outline-text border border-button-primary-outline-border hover:bg-button-primary-outline-bg-hover hover:text-button-primary-outline-text-hover hover:border-button-primary-outline-border-hover focus-visible:ring-button-primary-outline-border\",\n\t\t\t// Secondary - filled neutral button (for dark backgrounds)\n\t\t\tsecondary:\n\t\t\t\t\"bg-button-secondary-bg text-button-secondary-text hover:bg-button-secondary-bg-hover hover:text-button-secondary-text-hover border-transparent focus-visible:ring-button-secondary-bg focus-visible:ring-offset-gray-1000\",\n\t\t\t// Secondary Outline - outlined neutral button (for dark backgrounds)\n\t\t\t\"secondary-outline\":\n\t\t\t\t\"bg-button-secondary-outline-bg text-button-secondary-outline-text border border-button-secondary-outline-border hover:bg-button-secondary-outline-bg-hover hover:text-button-secondary-outline-text-hover hover:border-button-secondary-outline-border-hover focus-visible:ring-button-secondary-outline-border focus-visible:ring-offset-gray-1000\",\n\t\t\t// Ghost - transparent button (for light backgrounds)\n\t\t\tghost:\n\t\t\t\t\"bg-button-ghost-bg text-button-ghost-text hover:bg-button-ghost-bg-hover hover:text-button-ghost-text-hover border-transparent focus-visible:ring-gray-1000\",\n\t\t\t// Ghost Inverse - transparent button (for dark backgrounds)\n\t\t\t\"ghost-inverse\":\n\t\t\t\t\"bg-button-ghost-inverse-bg text-button-ghost-inverse-text hover:bg-button-ghost-inverse-bg-hover hover:text-button-ghost-inverse-text-hover border-transparent focus-visible:ring-gray-50 focus-visible:ring-offset-gray-1000\",\n\t\t},\n\t\tsize: {\n\t\t\tsm: \"size-28 rounded-surface-button-small\",\n\t\t\tmd: \"size-40 rounded-surface-button-medium\",\n\t\t\tlg: \"size-56 rounded-surface-button-large\",\n\t\t},\n\t\trounded: {\n\t\t\tdefault: \"\",\n\t\t\tfull: \"rounded-full\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"primary\",\n\t\tsize: \"md\",\n\t\trounded: \"default\",\n\t},\n});\n\ninterface IconButtonState extends Record<string, unknown> {\n\tvariant:\n\t\t| \"primary\"\n\t\t| \"primary-outline\"\n\t\t| \"secondary\"\n\t\t| \"secondary-outline\"\n\t\t| \"ghost\"\n\t\t| \"ghost-inverse\";\n\tsize: \"sm\" | \"md\" | \"lg\";\n\trounded: \"default\" | \"full\";\n}\n\nexport interface IconButtonProps\n\textends useRender.ComponentProps<\"button\", IconButtonState>,\n\t\tVariantProps<typeof iconButtonVariants> {}\n\nfunction IconButton(props: IconButtonProps) {\n\tconst {\n\t\tclassName,\n\t\tvariant = \"primary\",\n\t\tsize = \"md\",\n\t\trounded = \"default\",\n\t\trender,\n\t\t...otherProps\n\t} = props;\n\n\tconst state: IconButtonState = {\n\t\tvariant,\n\t\tsize,\n\t\trounded,\n\t};\n\n\tconst buttonClassName = iconButtonVariants({\n\t\tvariant,\n\t\tsize,\n\t\trounded,\n\t\tclass: className,\n\t});\n\n\treturn useRender<IconButtonState, HTMLButtonElement>({\n\t\trender,\n\t\tstate,\n\t\tprops: {\n\t\t\ttype: \"button\",\n\t\t\tclassName: buttonClassName,\n\t\t\t...otherProps,\n\t\t},\n\t\tdefaultTagName: \"button\",\n\t});\n}\n\nexport { IconButton, iconButtonVariants };\n","import { tv } from \"tailwind-variants\";\n\n/**\n * Shared form control styles for Input, Select, and similar components.\n *\n * These base styles ensure consistent appearance across all form controls:\n * - Consistent height and padding\n * - Unified focus ring and border treatment\n * - Shared hover/disabled states\n *\n * Based on Figma BaseKit / Interface / Input & Dropdown designs.\n */\n\n/**\n * Base styles shared by all form controls (input, select, etc.)\n */\nexport const formControlBase = [\n\t// Layout\n\t\"flex w-full items-center\",\n\t// Typography\n\t\"text-16 font-medium leading-14\",\n\t// Border and radius - uses surface ui radius for theming support\n\t\"border border-solid border-ui-color-border rounded-surface-ui-medium\",\n\t// Background\n\t\"bg-ui-control-background\",\n\t// Transitions\n\t\"transition-[background-color,border-color,box-shadow] duration-150\",\n\t// Focus state\n\t\"outline-none focus-visible:border-border-focus focus-visible:ring-4 focus-visible:ring-ui-color-focus\",\n\t// Hover state (when not focused or disabled)\n\t\"hover:bg-ui-control-background-hover hover:focus-visible:bg-ui-control-background\",\n\t// Disabled state\n\t\"disabled:bg-ui-control-background-disabled disabled:cursor-not-allowed disabled:opacity-50\",\n];\n\n/**\n * Size variants shared by form controls\n * Uses spatial tokens for consistent sizing across form controls\n */\nexport const formControlSizes = {\n\tsm: \"h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14\",\n\tdefault:\n\t\t\"h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium\",\n\tlg: \"h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18\",\n} as const;\n\n/**\n * Error state styles shared by form controls\n */\nexport const formControlError = {\n\ttrue: \"border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color\",\n\tfalse: \"\",\n} as const;\n\n/**\n * Form control variants using tailwind-variants\n * Can be composed with other variants for specific components\n */\nexport const formControlVariants = tv({\n\tbase: formControlBase,\n\tvariants: {\n\t\tsize: formControlSizes,\n\t\terror: formControlError,\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t\terror: false,\n\t},\n});\n\nexport type FormControlSize = keyof typeof formControlSizes;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { formControlBase, formControlError } from \"@/lib/form-control\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Input-specific size variants using semantic input tokens.\n * These tokens allow input sizing to be customized independently from other controls.\n */\nconst inputSizes = {\n\tsm: \"h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md\",\n\tdefault:\n\t\t\"h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md\",\n\tlg: \"h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg\",\n} as const;\n\n/**\n * Input variants for styling based on Figma BaseKit / Interface / Input\n *\n * States (handled via CSS pseudo-classes and props):\n * - Default: White background, subtle border\n * - Hover: Light gray background (via :hover)\n * - Focus: Accent border with focus ring (via :focus-visible)\n * - Error: Error border color (via error prop)\n * - Disabled: Disabled background (via :disabled)\n *\n * Sizes:\n * - sm: Smaller height and padding (36px)\n * - default: Standard height (48px)\n * - lg: Larger height and padding (56px)\n */\nconst inputVariants = tv({\n\tbase: [\n\t\t...formControlBase,\n\t\t// Input-specific: Placeholder styling\n\t\t\"placeholder:text-text-muted\",\n\t],\n\tvariants: {\n\t\tsize: inputSizes,\n\t\terror: {\n\t\t\t...formControlError,\n\t\t\ttrue: `${formControlError.true} placeholder:text-ui-error-color/60`,\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t\terror: false,\n\t},\n});\n\nexport interface InputProps\n\textends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n\t\tVariantProps<typeof inputVariants> {\n\t/**\n\t * Whether the input is in an error state\n\t */\n\terror?: boolean;\n}\n\n/**\n * Input component based on Figma BaseKit / Interface / Input\n *\n * A styled text input with support for various states:\n * - Default, hover, focus, error, and disabled states\n * - Three size variants: sm, default, lg\n *\n * Uses semantic UI tokens for theming support.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Input placeholder=\"Enter your email\" />\n *\n * // With error state\n * <Input error placeholder=\"Invalid input\" />\n *\n * // Different sizes\n * <Input size=\"sm\" placeholder=\"Small\" />\n * <Input size=\"lg\" placeholder=\"Large\" />\n *\n * // Disabled\n * <Input disabled placeholder=\"Disabled input\" />\n * ```\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n\t({ className, size, error, type = \"text\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<input\n\t\t\t\tref={ref}\n\t\t\t\ttype={type}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\tclassName={cn(inputVariants({ size, error, class: className }))}\n\t\t\t\tdata-size={size ?? \"default\"}\n\t\t\t\tdata-error={error ?? false}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };\n","\"use client\";\n\nimport type * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { formControlBase } from \"@/lib/form-control\";\nimport { cn } from \"@/lib/utils\";\nimport { Button, type ButtonProps } from \"../button\";\n\n// =============================================================================\n// InputGroup Variants\n// =============================================================================\n\nconst inputGroupVariants = tv({\n\tbase: [\n\t\t...formControlBase,\n\t\t// InputGroup-specific: Container layout and styling\n\t\t\"group/input-group relative flex w-full items-center justify-start\",\n\t\t\"shadow-xs\",\n\t\t// Override focus state to work with child focus detection\n\t\t\"focus-visible:border-ui-color-border focus-visible:ring-0\",\n\t\t// Override hover to work with InputGroup structure\n\t\t\"hover:bg-ui-control-background\",\n\t\t// Height and layout (overridden by size variants)\n\t\t\"min-w-0\",\n\t\t\"has-[>textarea]:h-auto\",\n\t\t\"has-[>[data-align=inline-start]]:[&>input]:pl-6\",\n\t\t\"has-[>[data-align=inline-end]]:[&>input]:pr-6\",\n\t\t\"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pt-spatial-ui-input-group-gap-block has-[>[data-align=block-start]]:[&>input]:pb-spatial-ui-input-group-padding-y-medium\",\n\t\t\"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pb-spatial-ui-input-group-gap-block\",\n\t\t// Focus state detection on child input (overrides formControlBase focus)\n\t\t\"has-[[data-slot=input-group-control]:focus-visible]:border-ui-accent-base has-[[data-slot=input-group-control]:focus-visible]:ring-4 has-[[data-slot=input-group-control]:focus-visible]:ring-ui-color-focus\",\n\t\t// Error state detection on child elements\n\t\t\"has-[[data-slot][aria-invalid=true]]:border-ui-error-color has-[[data-slot][aria-invalid=true]]:ring-ui-error-color/20\",\n\t\t// Disabled state (overrides formControlBase disabled)\n\t\t\"data-[disabled=true]:bg-ui-control-background-disabled data-[disabled=true]:opacity-50 data-[disabled=true]:cursor-not-allowed\",\n\t],\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-spatial-ui-input-group-height-small\",\n\t\t\tdefault: \"h-spatial-ui-input-group-height-medium\",\n\t\t\tlg: \"h-spatial-ui-input-group-height-large\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t},\n});\n\n// =============================================================================\n// InputGroupAddon Variants\n// =============================================================================\n\nconst inputGroupAddonVariants = tv({\n\tbase: [\n\t\t\"flex items-center justify-center gap-6\",\n\t\t\"typography-ui-text-sm text-text-muted\",\n\t\t\"select-none cursor-text\",\n\t\t\"[&>svg:not([class*='size-'])]:size-16\",\n\t\t\"[&_button]:text-[unset] [&_button]:cursor-pointer\",\n\t\t\"group-data-[disabled=true]/input-group:opacity-50\",\n\t],\n\tvariants: {\n\t\talign: {\n\t\t\t\"inline-start\": [\n\t\t\t\t\"order-first h-full\",\n\t\t\t\t\"pl-spatial-ui-input-group-padding-x-medium\",\n\t\t\t\t\"has-[>button]:ml-[-6px]\",\n\t\t\t],\n\t\t\t\"inline-end\": [\n\t\t\t\t\"order-last h-full\",\n\t\t\t\t\"pr-spatial-ui-input-group-padding-x-medium\",\n\t\t\t\t\"has-[>button]:mr-[-6px]\",\n\t\t\t],\n\t\t\t\"block-start\": [\n\t\t\t\t\"order-first h-auto w-full justify-start\",\n\t\t\t\t\"px-spatial-ui-input-group-padding-x-medium pt-spatial-ui-input-group-padding-y-medium\",\n\t\t\t\t\"[.border-b]:pb-spatial-ui-input-group-padding-y-medium\",\n\t\t\t\t// Use shared text style for block addons (12px, Regular weight per Figma)\n\t\t\t\t\"typography-ui-text-xs\",\n\t\t\t],\n\t\t\t\"block-end\": [\n\t\t\t\t\"order-last h-auto w-full justify-start\",\n\t\t\t\t\"px-spatial-ui-input-group-padding-x-medium pb-spatial-ui-input-group-padding-y-medium\",\n\t\t\t\t\"[.border-t]:pt-spatial-ui-input-group-padding-y-medium\",\n\t\t\t\t// Use shared text style for block addons (12px, Regular weight per Figma)\n\t\t\t\t\"typography-ui-text-xs\",\n\t\t\t],\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\talign: \"inline-start\",\n\t},\n});\n\n// =============================================================================\n// InputGroup Component\n// =============================================================================\n\nexport interface InputGroupProps\n\textends React.FieldsetHTMLAttributes<HTMLFieldSetElement>,\n\t\tVariantProps<typeof inputGroupVariants> {}\n\n/**\n * InputGroup component for combining inputs with addons, buttons, and text.\n *\n * A container that groups an input with prefix/suffix addons, icons, or buttons.\n * Supports inline (left/right) and block (top/bottom) addon positioning.\n *\n * Uses semantic UI tokens for theming support.\n *\n * @example\n * ```tsx\n * // With prefix icon\n * <InputGroup>\n * <InputGroupAddon>\n * <SearchIcon />\n * </InputGroupAddon>\n * <InputGroupInput placeholder=\"Search...\" />\n * </InputGroup>\n *\n * // With suffix button\n * <InputGroup>\n * <InputGroupInput placeholder=\"Enter email\" />\n * <InputGroupAddon align=\"inline-end\">\n * <InputGroupButton>Subscribe</InputGroupButton>\n * </InputGroupAddon>\n * </InputGroup>\n *\n * // With text prefix\n * <InputGroup>\n * <InputGroupAddon>\n * <InputGroupText>https://</InputGroupText>\n * </InputGroupAddon>\n * <InputGroupInput placeholder=\"example.com\" />\n * </InputGroup>\n * ```\n */\nfunction InputGroup({ className, size, disabled, ...props }: InputGroupProps) {\n\treturn (\n\t\t<fieldset\n\t\t\tdata-slot=\"input-group\"\n\t\t\tdata-disabled={disabled || undefined}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={cn(\n\t\t\t\t\"p-0 m-0 min-w-0\",\n\t\t\t\tinputGroupVariants({ size, class: className }),\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// =============================================================================\n// InputGroupAddon Component\n// =============================================================================\n\nexport interface InputGroupAddonProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof inputGroupAddonVariants> {}\n\n/**\n * InputGroupAddon component for positioning addons within an InputGroup.\n *\n * Can contain icons, text, or buttons. Clicking the addon focuses the input.\n *\n * @example\n * ```tsx\n * // Inline start (default - left side)\n * <InputGroupAddon>\n * <SearchIcon />\n * </InputGroupAddon>\n *\n * // Inline end (right side)\n * <InputGroupAddon align=\"inline-end\">\n * <InputGroupButton>Submit</InputGroupButton>\n * </InputGroupAddon>\n *\n * // Block positions (top/bottom)\n * <InputGroupAddon align=\"block-start\">\n * <label>Email Address</label>\n * </InputGroupAddon>\n * ```\n */\nfunction InputGroupAddon({\n\tclassName,\n\talign = \"inline-start\",\n\tonClick,\n\tonKeyDown,\n\t...props\n}: InputGroupAddonProps) {\n\tconst focusInput = (element: HTMLElement) => {\n\t\telement.parentElement?.querySelector(\"input\")?.focus();\n\t};\n\n\tconst handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\t// Don't focus input if clicking a button inside the addon\n\t\tif ((e.target as HTMLElement).closest(\"button\")) {\n\t\t\tonClick?.(e);\n\t\t\treturn;\n\t\t}\n\t\t// Focus the input when clicking the addon\n\t\tfocusInput(e.currentTarget);\n\t\tonClick?.(e);\n\t};\n\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t// Focus input on Enter or Space (unless inside a button)\n\t\tif (\n\t\t\t(e.key === \"Enter\" || e.key === \" \") &&\n\t\t\t!(e.target as HTMLElement).closest(\"button\")\n\t\t) {\n\t\t\tfocusInput(e.currentTarget);\n\t\t}\n\t\tonKeyDown?.(e);\n\t};\n\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Click-to-focus is a convenience UX pattern; primary interaction is via the input itself\n\t\t<div\n\t\t\tdata-slot=\"input-group-addon\"\n\t\t\tdata-align={align}\n\t\t\tclassName={cn(inputGroupAddonVariants({ align, class: className }))}\n\t\t\tonClick={handleClick}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// =============================================================================\n// InputGroupButton Component\n// =============================================================================\n\nconst inputGroupButtonVariants = tv({\n\tbase: [\n\t\t\"typography-ui-button-small shadow-none flex gap-6 items-center\",\n\t\t\"focus-visible:ring-1 focus-visible:ring-offset-0 focus-visible:ring-ui-color-border\",\n\t\t\"transition-opacity duration-150\",\n\t],\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"!h-24 gap-4 px-8 rounded-surface-ui-small [&>svg:not([class*='size-'])]:size-16 has-[>svg]:px-6\",\n\t\t\tsm: \"!h-28 px-10 gap-6 rounded-surface-ui-medium has-[>svg]:px-8\",\n\t\t\t\"icon-xs\":\n\t\t\t\t\"!size-24 rounded-surface-ui-small p-0 [&>svg:not([class*='size-'])]:size-16 has-[>svg]:p-0\",\n\t\t\t\"icon-sm\":\n\t\t\t\t\"!size-28 rounded-surface-ui-medium p-0 [&>svg:not([class*='size-'])]:size-16 has-[>svg]:p-0\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"xs\",\n\t},\n});\n\nexport interface InputGroupButtonProps\n\textends Omit<ButtonProps, \"size\">,\n\t\tVariantProps<typeof inputGroupButtonVariants> {}\n\n/**\n * InputGroupButton component for inline buttons within an InputGroup.\n *\n * A small button variant designed to fit inside input groups.\n *\n * @example\n * ```tsx\n * <InputGroupAddon align=\"inline-end\">\n * <InputGroupButton>Submit</InputGroupButton>\n * </InputGroupAddon>\n *\n * // Icon button\n * <InputGroupAddon align=\"inline-end\">\n * <InputGroupButton size=\"icon-xs\">\n * <ClearIcon />\n * </InputGroupButton>\n * </InputGroupAddon>\n * ```\n */\nfunction InputGroupButton({\n\tclassName,\n\ttype = \"button\",\n\tvariant = \"ghost\",\n\tsize = \"xs\",\n\t...props\n}: InputGroupButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\ttype={type}\n\t\t\tdata-size={size}\n\t\t\tvariant={variant}\n\t\t\tclassName={cn(inputGroupButtonVariants({ size, class: className }))}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// =============================================================================\n// InputGroupText Component\n// =============================================================================\n\nexport interface InputGroupTextProps\n\textends React.HTMLAttributes<HTMLSpanElement> {}\n\n/**\n * InputGroupText component for static text within an InputGroup.\n *\n * Use for prefixes like \"https://\" or suffixes like \".com\"\n *\n * @example\n * ```tsx\n * <InputGroupAddon>\n * <InputGroupText>https://</InputGroupText>\n * </InputGroupAddon>\n * ```\n */\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"flex items-center gap-6 typography-ui-text-sm text-text-muted\",\n\t\t\t\t\"[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-16\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// =============================================================================\n// InputGroupInput Component\n// =============================================================================\n\nexport interface InputGroupInputProps\n\textends React.InputHTMLAttributes<HTMLInputElement> {}\n\n/**\n * InputGroupInput component - the input element within an InputGroup.\n *\n * Styled to integrate seamlessly with the InputGroup container.\n *\n * @example\n * ```tsx\n * <InputGroup>\n * <InputGroupInput placeholder=\"Enter text...\" />\n * </InputGroup>\n * ```\n */\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n\treturn (\n\t\t<input\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex-1 min-w-0 h-full w-full\",\n\t\t\t\t\"border-0 bg-transparent shadow-none outline-none\",\n\t\t\t\t\"typography-ui-text-sm text-left placeholder:text-text-muted\",\n\t\t\t\t\"px-spatial-ui-input-group-padding-x-medium\",\n\t\t\t\t\"focus-visible:ring-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// =============================================================================\n// InputGroupTextarea Component\n// =============================================================================\n\nexport interface InputGroupTextareaProps\n\textends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\n/**\n * InputGroupTextarea component - a textarea element within an InputGroup.\n *\n * Styled to integrate seamlessly with the InputGroup container.\n *\n * @example\n * ```tsx\n * <InputGroup>\n * <InputGroupTextarea placeholder=\"Enter long text...\" rows={4} />\n * </InputGroup>\n * ```\n */\nfunction InputGroupTextarea({ className, ...props }: InputGroupTextareaProps) {\n\treturn (\n\t\t<textarea\n\t\t\tdata-slot=\"input-group-control\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex-1 min-w-0 w-full resize-none\",\n\t\t\t\t\"border-0 bg-transparent shadow-none outline-none\",\n\t\t\t\t\"typography-ui-text-sm text-left placeholder:text-text-muted\",\n\t\t\t\t\"px-spatial-ui-input-group-padding-x-medium py-spatial-ui-input-group-padding-y-medium\",\n\t\t\t\t\"focus-visible:ring-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tInputGroup,\n\tInputGroupAddon,\n\tInputGroupButton,\n\tInputGroupText,\n\tInputGroupInput,\n\tInputGroupTextarea,\n\tinputGroupVariants,\n\tinputGroupAddonVariants,\n};\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface NdstudioFooterProps\n\textends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * The URL to link to\n\t * @default \"https://ndstudio.gov\"\n\t */\n\thref?: string;\n}\n\n/**\n * NdstudioFooter component displays a \"Designed and Engineered in DC by National Design Studio\" footer link.\n *\n * This component is designed to be used as a footer within other components like Tout,\n * but can also be used standalone.\n *\n * @example\n * ```tsx\n * // Used within a Tout component via footer slot\n * <Tout\n * headline=\"Feature Headline\"\n * primaryAction={<Button>Primary</Button>}\n * backgroundMedia={<img src=\"/bg.jpg\" alt=\"\" />}\n * footer={<NdstudioFooter />}\n * />\n *\n * // Standalone usage\n * <NdstudioFooter className=\"my-custom-class\" />\n * ```\n */\nconst NdstudioFooter = React.forwardRef<HTMLDivElement, NdstudioFooterProps>(\n\t({ className, href = \"https://ndstudio.gov\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={cn(\"text-center\", className)} {...props}>\n\t\t\t\t<p className=\"typography-label-large uppercase text-ivory-alpha-75\">\n\t\t\t\t\tDesigned and Engineered in DC by{\" \"}\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={href}\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\tclassName=\"hover:underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tNational Design Studio\n\t\t\t\t\t\t<span className=\"sr-only\"> (opens in new tab)</span>\n\t\t\t\t\t</a>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t);\n\t},\n);\nNdstudioFooter.displayName = \"NdstudioFooter\";\n\nexport { NdstudioFooter };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\nconst pagerControlVariants = tv({\n\tbase: \"flex items-center\",\n\tvariants: {\n\t\tsize: {\n\t\t\t// Uses primitive spacing tokens\n\t\t\tsm: \"gap-2\",\n\t\t\tdefault: \"gap-2\",\n\t\t\tlg: \"gap-4\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t},\n});\n\nconst dotBaseVariants = tv({\n\tbase: \"cursor-pointer rounded-full transition-all duration-500 ease-[cubic-bezier(0.23,1,0.32,1)]\",\n\tvariants: {\n\t\tsize: {\n\t\t\t// Uses primitive spacing tokens\n\t\t\tsm: \"h-6\",\n\t\t\tdefault: \"h-10\",\n\t\t\tlg: \"h-16\",\n\t\t},\n\t\tvariant: {\n\t\t\tcharcoal: \"\",\n\t\t\tivory: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t\tvariant: \"charcoal\",\n\t},\n});\n\nexport interface PagerControlProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n\t\tVariantProps<typeof pagerControlVariants>,\n\t\tVariantProps<typeof dotBaseVariants> {\n\t/**\n\t * Total number of pages/items\n\t */\n\tcount: number;\n\t/**\n\t * Current active page index (0-based)\n\t */\n\tactiveIndex?: number;\n\t/**\n\t * Duration in milliseconds for each page before auto-advancing\n\t * Set to 0 to disable auto-advance\n\t * @default 5000\n\t */\n\tduration?: number;\n\t/**\n\t * Whether the pager should auto-advance\n\t * @default true\n\t */\n\tautoPlay?: boolean;\n\t/**\n\t * Callback when the active page changes\n\t */\n\tonChange?: (index: number) => void;\n\t/**\n\t * Whether to pause auto-advance on hover\n\t * @default true\n\t */\n\tpauseOnHover?: boolean;\n\t/**\n\t * Whether to loop back to the first page after the last\n\t * @default true\n\t */\n\tloop?: boolean;\n}\n\n/**\n * PagerControl component for indicating progress through a series of pages/slides.\n *\n * Features smooth width transitions when switching between dots and an animated\n * progress fill on the active dot that shows time remaining before auto-advancing\n * (similar to Apple's carousel indicators).\n *\n * Variants:\n * - charcoal: Dark dots (for light backgrounds)\n * - ivory: Light dots (for dark backgrounds)\n *\n * Sizes:\n * - sm: Small dots (6px height)\n * - default: Medium dots (10px height)\n * - lg: Large dots (16px height)\n */\nconst PagerControl = React.forwardRef<HTMLDivElement, PagerControlProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tsize,\n\t\t\tvariant,\n\t\t\tcount,\n\t\t\tactiveIndex: controlledIndex,\n\t\t\tduration = 5000,\n\t\t\tautoPlay = true,\n\t\t\tonChange,\n\t\t\tpauseOnHover = true,\n\t\t\tloop = true,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [internalIndex, setInternalIndex] = React.useState(0);\n\t\tconst [isPaused, setIsPaused] = React.useState(false);\n\t\tconst [progress, setProgress] = React.useState(0);\n\n\t\t// Use controlled index if provided, otherwise use internal state\n\t\tconst activeIndex =\n\t\t\tcontrolledIndex !== undefined ? controlledIndex : internalIndex;\n\t\tconst isControlled = controlledIndex !== undefined;\n\n\t\t// Development warnings for common issues\n\t\tReact.useEffect(() => {\n\t\t\tif (import.meta.env?.DEV) {\n\t\t\t\tif (count < 1) {\n\t\t\t\t\tconsole.warn(\"PagerControl: count must be at least 1\");\n\t\t\t\t}\n\t\t\t\tif (controlledIndex !== undefined && controlledIndex >= count) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`PagerControl: activeIndex (${controlledIndex}) is out of bounds. Must be less than count (${count}).`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (controlledIndex !== undefined && controlledIndex < 0) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`PagerControl: activeIndex (${controlledIndex}) cannot be negative.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (isControlled && onChange === undefined) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\"PagerControl: controlled mode (activeIndex provided) requires an onChange handler.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}, [count, controlledIndex, isControlled, onChange]);\n\n\t\t// Clamp activeIndex to valid bounds\n\t\tconst safeActiveIndex = Math.max(0, Math.min(activeIndex, count - 1));\n\n\t\tconst animationFrameRef = React.useRef<number | null>(null);\n\t\tconst startTimeRef = React.useRef<number | null>(null);\n\t\tconst pausedProgressRef = React.useRef<number>(0);\n\n\t\tconst goToNext = React.useCallback(() => {\n\t\t\tconst nextIndex = safeActiveIndex + 1;\n\t\t\tif (nextIndex >= count) {\n\t\t\t\tif (loop) {\n\t\t\t\t\tif (!isControlled) setInternalIndex(0);\n\t\t\t\t\tonChange?.(0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) setInternalIndex(nextIndex);\n\t\t\t\tonChange?.(nextIndex);\n\t\t\t}\n\t\t}, [safeActiveIndex, count, loop, isControlled, onChange]);\n\n\t\tconst goToIndex = React.useCallback(\n\t\t\t(index: number) => {\n\t\t\t\tif (!isControlled) setInternalIndex(index);\n\t\t\t\tonChange?.(index);\n\t\t\t\t// Reset progress when manually changing\n\t\t\t\tsetProgress(0);\n\t\t\t\tpausedProgressRef.current = 0;\n\t\t\t\tstartTimeRef.current = null;\n\t\t\t},\n\t\t\t[isControlled, onChange],\n\t\t);\n\n\t\t// Animation loop for smooth progress fill\n\t\tReact.useEffect(() => {\n\t\t\tif (!autoPlay || duration <= 0 || isPaused) {\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t\tanimationFrameRef.current = null;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst animate = (timestamp: number) => {\n\t\t\t\tif (startTimeRef.current === null) {\n\t\t\t\t\tstartTimeRef.current =\n\t\t\t\t\t\ttimestamp - (pausedProgressRef.current / 100) * duration;\n\t\t\t\t}\n\n\t\t\t\tconst elapsed = timestamp - startTimeRef.current;\n\t\t\t\tconst newProgress = Math.min((elapsed / duration) * 100, 100);\n\t\t\t\tsetProgress(newProgress);\n\n\t\t\t\tif (newProgress >= 100) {\n\t\t\t\t\tgoToNext();\n\t\t\t\t\t// Reset for next cycle\n\t\t\t\t\tsetProgress(0);\n\t\t\t\t\tpausedProgressRef.current = 0;\n\t\t\t\t\tstartTimeRef.current = null;\n\t\t\t\t} else {\n\t\t\t\t\tanimationFrameRef.current = requestAnimationFrame(animate);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tanimationFrameRef.current = requestAnimationFrame(animate);\n\n\t\t\treturn () => {\n\t\t\t\tif (animationFrameRef.current) {\n\t\t\t\t\tcancelAnimationFrame(animationFrameRef.current);\n\t\t\t\t}\n\t\t\t};\n\t\t}, [autoPlay, duration, isPaused, goToNext]);\n\n\t\t// Handle pause/resume\n\t\tconst handleMouseEnter = React.useCallback(() => {\n\t\t\tif (pauseOnHover) {\n\t\t\t\tpausedProgressRef.current = progress;\n\t\t\t\tstartTimeRef.current = null;\n\t\t\t\tsetIsPaused(true);\n\t\t\t}\n\t\t}, [pauseOnHover, progress]);\n\n\t\tconst handleMouseLeave = React.useCallback(() => {\n\t\t\tif (pauseOnHover) {\n\t\t\t\tsetIsPaused(false);\n\t\t\t}\n\t\t}, [pauseOnHover]);\n\n\t\t// Reset progress when activeIndex changes externally (controlled mode)\n\t\tReact.useEffect(() => {\n\t\t\tif (isControlled) {\n\t\t\t\tsetProgress(0);\n\t\t\t\tpausedProgressRef.current = 0;\n\t\t\t\tstartTimeRef.current = null;\n\t\t\t}\n\t\t}, [isControlled]);\n\n\t\t// Get dot dimensions based on size - uses primitive spacing tokens\n\t\tconst getDotWidth = (isActive: boolean) => {\n\t\t\tif (isActive) {\n\t\t\t\tswitch (size) {\n\t\t\t\t\tcase \"sm\":\n\t\t\t\t\t\treturn \"w-16\";\n\t\t\t\t\tcase \"lg\":\n\t\t\t\t\t\treturn \"w-36\";\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn \"w-28\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tswitch (size) {\n\t\t\t\tcase \"sm\":\n\t\t\t\t\treturn \"w-6\";\n\t\t\t\tcase \"lg\":\n\t\t\t\t\treturn \"w-16\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"w-10\";\n\t\t\t}\n\t\t};\n\n\t\t// Get background classes for inactive dots\n\t\tconst getInactiveClasses = () => {\n\t\t\tif (variant === \"ivory\") {\n\t\t\t\treturn \"bg-alpha-white-30 hover:bg-alpha-white-60\";\n\t\t\t}\n\t\t\treturn \"bg-alpha-black-30 hover:bg-alpha-black-60\";\n\t\t};\n\n\t\t// Get background class for active dot (the track/background)\n\t\tconst getActiveTrackClass = () => {\n\t\t\tif (variant === \"ivory\") {\n\t\t\t\treturn \"bg-alpha-white-30\";\n\t\t\t}\n\t\t\treturn \"bg-alpha-black-30\";\n\t\t};\n\n\t\t// Get fill color for the progress indicator\n\t\tconst getProgressFillClass = () => {\n\t\t\tif (variant === \"ivory\") {\n\t\t\t\treturn \"bg-gray-50\";\n\t\t\t}\n\t\t\treturn \"bg-gray-1200\";\n\t\t};\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\trole=\"tablist\"\n\t\t\t\taria-label=\"Page indicators\"\n\t\t\t\tclassName={pagerControlVariants({ size, class: className })}\n\t\t\t\tonMouseEnter={handleMouseEnter}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{Array.from({ length: count }, (_, index) => {\n\t\t\t\t\tconst isActive = index === safeActiveIndex;\n\n\t\t\t\t\tif (isActive) {\n\t\t\t\t\t\t// Active dot with progress fill\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: Pagination dots have fixed order based on count\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\taria-selected={true}\n\t\t\t\t\t\t\t\taria-label={`Page ${index + 1} of ${count}, current`}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"relative cursor-pointer overflow-hidden rounded-full transition-all duration-500 ease-[cubic-bezier(0.23,1,0.32,1)]\",\n\t\t\t\t\t\t\t\t\tdotBaseVariants({ size, variant }),\n\t\t\t\t\t\t\t\t\tgetDotWidth(true),\n\t\t\t\t\t\t\t\t\tgetActiveTrackClass(),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={() => goToIndex(index)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Progress fill */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\"absolute top-0 bottom-0 left-0 h-full rounded-full\",\n\t\t\t\t\t\t\t\t\t\tgetProgressFillClass(),\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: autoPlay && duration > 0 ? `${progress}%` : \"100%\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Inactive dot\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: Pagination dots have fixed order based on count\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected={false}\n\t\t\t\t\t\t\taria-label={`Go to page ${index + 1} of ${count}`}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tdotBaseVariants({ size, variant }),\n\t\t\t\t\t\t\t\tgetDotWidth(false),\n\t\t\t\t\t\t\t\tgetInactiveClasses(),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={() => goToIndex(index)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t);\n\t},\n);\nPagerControl.displayName = \"PagerControl\";\n\nexport { PagerControl, pagerControlVariants };\n","import { tv } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Shared arrow variants for floating UI components\n *\n * Used by Tooltip, Popover, and other floating components.\n * Handles positioning based on the side attribute.\n */\nexport const floatingArrowVariants = tv({\n\tbase: [\n\t\t// Display flex to properly size the arrow container\n\t\t\"flex\",\n\t\t// Positioning based on floating side (uses spacing tokens since --spacing: 1px)\n\t\t\"data-[side=bottom]:-top-7\",\n\t\t\"data-[side=left]:-right-12 data-[side=left]:rotate-90\",\n\t\t\"data-[side=right]:-left-12 data-[side=right]:-rotate-90\",\n\t\t\"data-[side=top]:-bottom-7 data-[side=top]:rotate-180\",\n\t\t// Animation - follows popup\n\t\t\"data-[starting-style]:opacity-0\",\n\t\t\"data-[ending-style]:opacity-0\",\n\t],\n});\n\nexport interface FloatingArrowSvgProps {\n\t/** CSS class for the main fill color (e.g., \"fill-tooltip-bg\" or \"fill-overlay-background\") */\n\tfillClassName: string;\n\t/** CSS class for the border color using fill-* (e.g., \"fill-overlay-border\") - renders as outline behind main fill */\n\tborderClassName?: string;\n\t/** Additional className for the SVG element */\n\tclassName?: string;\n}\n\n/**\n * FloatingArrowSvg\n *\n * A shared arrow SVG component for floating UI elements.\n * Use with Tooltip, Popover, Dropdown, and other floating components.\n *\n * @example\n * ```tsx\n * // For dark tooltip (no border)\n * <FloatingArrowSvg fillClassName=\"fill-tooltip-bg\" />\n *\n * // For light popover with border\n * <FloatingArrowSvg\n * fillClassName=\"fill-overlay-background\"\n * borderClassName=\"fill-overlay-border\"\n * />\n * ```\n */\nexport const FloatingArrowSvg = ({\n\tfillClassName,\n\tborderClassName,\n\tclassName,\n}: FloatingArrowSvgProps) => (\n\t<svg\n\t\twidth=\"20\"\n\t\theight=\"10\"\n\t\tviewBox=\"0 0 20 10\"\n\t\tfill=\"none\"\n\t\tclassName={cn(\"block\", className)}\n\t\taria-hidden=\"true\"\n\t>\n\t\t{/* Main fill shape */}\n\t\t<path\n\t\t\td=\"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\"\n\t\t\tclassName={fillClassName}\n\t\t/>\n\t\t{/* Border stroke (rendered on top for outline effect) */}\n\t\t{borderClassName && (\n\t\t\t<path\n\t\t\t\td=\"M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z\"\n\t\t\t\tclassName={borderClassName}\n\t\t\t/>\n\t\t)}\n\t</svg>\n);\n","\"use client\";\n\nimport { Popover as BasePopover } from \"@base-ui-components/react/popover\";\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\nimport {\n\tFloatingArrowSvg,\n\tfloatingArrowVariants,\n} from \"../../shared/floating-arrow\";\n\n/**\n * Popover popup variants\n *\n * Uses semantic overlay tokens for themeable styling:\n * - color.overlay.background - Light background\n * - color.overlay.border - Subtle border\n * - color.overlay.text - Primary text\n * - surface.overlay.radius - Rounded corners\n * - spatial.component.overlay.padding/gap - Consistent spacing\n */\nconst popoverPopupVariants = tv({\n\tbase: [\n\t\t// Layout - uses component overlay tokens\n\t\t\"p-spatial-component-overlay-padding\",\n\t\t// Background - uses overlay background token\n\t\t\"bg-overlay-background\",\n\t\t// Border - uses overlay border token\n\t\t\"border border-overlay-border\",\n\t\t// Text - uses overlay text token\n\t\t\"text-overlay-text\",\n\t\t// Border radius - uses surface overlay token\n\t\t\"rounded-surface-overlay\",\n\t\t// Shadow for elevation\n\t\t\"shadow-lg\",\n\t\t// Allow arrow to extend outside popup bounds\n\t\t\"overflow-visible\",\n\t\t// Animation\n\t\t\"origin-[var(--transform-origin)]\",\n\t\t\"transition-[transform,scale,opacity] duration-150\",\n\t\t\"data-[starting-style]:scale-95 data-[starting-style]:opacity-0\",\n\t\t\"data-[ending-style]:scale-95 data-[ending-style]:opacity-0\",\n\t\t// Ensure it's above other content (higher than backdrop z-40)\n\t\t\"z-50\",\n\t\t// Max width for reasonable content display\n\t\t\"max-w-[320px]\",\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"\",\n\t\t\t// Future variants can be added here\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\n/**\n * Popover arrow variants - uses shared floating arrow variants\n */\nconst popoverArrowVariants = floatingArrowVariants;\n\n// ============================================================================\n// Popover Root\n// ============================================================================\n\nexport interface PopoverRootProps extends BasePopover.Root.Props {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Popover Root\n *\n * Groups all popover parts. Does not render an element.\n */\nconst PopoverRoot = ({ children, ...props }: PopoverRootProps) => {\n\treturn <BasePopover.Root {...props}>{children}</BasePopover.Root>;\n};\n\n// ============================================================================\n// Popover Trigger\n// ============================================================================\n\nexport interface PopoverTriggerProps\n\textends React.ComponentProps<typeof BasePopover.Trigger> {\n\tclassName?: string;\n}\n\n/**\n * Popover Trigger\n *\n * The element that triggers the popover on click.\n * Renders as the child element with popover behavior attached.\n * When children is a single React element, uses `render` prop to avoid wrapper element.\n */\nconst PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n\t({ className, children, ...props }, ref) => {\n\t\t// If children is a single React element, use render prop to avoid wrapper\n\t\tconst isSingleElement = React.isValidElement(children);\n\n\t\tif (isSingleElement) {\n\t\t\treturn (\n\t\t\t\t<BasePopover.Trigger\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\trender={children as React.ReactElement<Record<string, unknown>>}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BasePopover.Trigger ref={ref} className={className} {...props}>\n\t\t\t\t{children}\n\t\t\t</BasePopover.Trigger>\n\t\t);\n\t},\n);\nPopoverTrigger.displayName = \"PopoverTrigger\";\n\n// ============================================================================\n// Popover Portal\n// ============================================================================\n\nexport interface PopoverPortalProps extends BasePopover.Portal.Props {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Popover Portal\n *\n * Renders the popover popup in a portal outside the DOM hierarchy.\n */\nconst PopoverPortal = ({ children, ...props }: PopoverPortalProps) => {\n\treturn <BasePopover.Portal {...props}>{children}</BasePopover.Portal>;\n};\n\n// ============================================================================\n// Popover Backdrop\n// ============================================================================\n\nexport interface PopoverBackdropProps\n\textends Omit<React.ComponentProps<typeof BasePopover.Backdrop>, \"className\"> {\n\tclassName?: string;\n}\n\n/**\n * Popover Backdrop\n *\n * Optional backdrop element that can be used to close the popover on click.\n */\nconst PopoverBackdrop = React.forwardRef<HTMLDivElement, PopoverBackdropProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BasePopover.Backdrop\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\"fixed inset-0 z-40\", className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nPopoverBackdrop.displayName = \"PopoverBackdrop\";\n\n// ============================================================================\n// Popover Positioner\n// ============================================================================\n\nexport interface PopoverPositionerProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof BasePopover.Positioner>,\n\t\t\"className\"\n\t> {\n\tclassName?: string;\n}\n\n/**\n * Popover Positioner\n *\n * Positions the popover popup relative to the trigger.\n */\nconst PopoverPositioner = React.forwardRef<\n\tHTMLDivElement,\n\tPopoverPositionerProps\n>(({ className, side = \"bottom\", sideOffset = 8, ...props }, ref) => {\n\treturn (\n\t\t<BasePopover.Positioner\n\t\t\tref={ref}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={cn(\"z-50\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nPopoverPositioner.displayName = \"PopoverPositioner\";\n\n// ============================================================================\n// Popover Popup\n// ============================================================================\n\nexport interface PopoverPopupProps\n\textends Omit<React.ComponentProps<typeof BasePopover.Popup>, \"className\">,\n\t\tVariantProps<typeof popoverPopupVariants> {\n\tclassName?: string;\n}\n\n/**\n * Popover Popup\n *\n * The popover content container with styled appearance.\n */\nconst PopoverPopup = React.forwardRef<HTMLDivElement, PopoverPopupProps>(\n\t({ className, variant, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BasePopover.Popup\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(popoverPopupVariants({ variant }), className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nPopoverPopup.displayName = \"PopoverPopup\";\n\n// ============================================================================\n// Popover Arrow\n// ============================================================================\n\nexport interface PopoverArrowProps\n\textends Omit<React.ComponentProps<typeof BasePopover.Arrow>, \"className\"> {\n\tclassName?: string;\n}\n\n/**\n * Popover Arrow\n *\n * Visual pointer element for the popover.\n * Uses shared FloatingArrowSvg with overlay color tokens for fill and border.\n */\nconst PopoverArrow = React.forwardRef<HTMLDivElement, PopoverArrowProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BasePopover.Arrow\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(popoverArrowVariants(), className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<FloatingArrowSvg\n\t\t\t\t\tfillClassName=\"fill-overlay-background\"\n\t\t\t\t\tborderClassName=\"fill-overlay-border\"\n\t\t\t\t/>\n\t\t\t</BasePopover.Arrow>\n\t\t);\n\t},\n);\nPopoverArrow.displayName = \"PopoverArrow\";\n\n// ============================================================================\n// Popover Title\n// ============================================================================\n\nexport interface PopoverTitleProps\n\textends Omit<React.ComponentProps<typeof BasePopover.Title>, \"className\"> {\n\tclassName?: string;\n}\n\n/**\n * Popover Title\n *\n * Title element for the popover content.\n */\nconst PopoverTitle = React.forwardRef<HTMLHeadingElement, PopoverTitleProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BasePopover.Title\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\"typography-body-md-md font-semibold\", className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nPopoverTitle.displayName = \"PopoverTitle\";\n\n// ============================================================================\n// Popover Description\n// ============================================================================\n\nexport interface PopoverDescriptionProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof BasePopover.Description>,\n\t\t\"className\"\n\t> {\n\tclassName?: string;\n}\n\n/**\n * Popover Description\n *\n * Description element for the popover content.\n */\nconst PopoverDescription = React.forwardRef<\n\tHTMLParagraphElement,\n\tPopoverDescriptionProps\n>(({ className, ...props }, ref) => {\n\treturn (\n\t\t<BasePopover.Description\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"typography-body-sm-md text-overlay-text-muted mt-8\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nPopoverDescription.displayName = \"PopoverDescription\";\n\n// ============================================================================\n// Popover Close\n// ============================================================================\n\nexport interface PopoverCloseProps\n\textends Omit<React.ComponentProps<typeof BasePopover.Close>, \"className\"> {\n\tclassName?: string;\n}\n\n/**\n * Popover Close\n *\n * Close button for the popover.\n */\nconst PopoverClose = React.forwardRef<HTMLButtonElement, PopoverCloseProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BasePopover.Close\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"absolute right-8 top-8 rounded-surface-ui-small p-4\",\n\t\t\t\t\t\"text-overlay-text-muted hover:text-overlay-text\",\n\t\t\t\t\t\"hover:bg-bg-section focus:outline-none focus-visible:ring-2 focus-visible:ring-border-focus\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nPopoverClose.displayName = \"PopoverClose\";\n\n// ============================================================================\n// Simple Popover Component\n// ============================================================================\n\nexport interface PopoverProps {\n\t/** The content to show in the popover */\n\tchildren: React.ReactNode;\n\t/** The element that triggers the popover */\n\ttrigger: React.ReactNode;\n\t/** Title for the popover (optional) */\n\ttitle?: React.ReactNode;\n\t/** Side of the trigger to show the popover */\n\tside?: \"top\" | \"bottom\" | \"left\" | \"right\";\n\t/** Offset from the trigger */\n\tsideOffset?: number;\n\t/** Alignment along the side */\n\talign?: \"start\" | \"center\" | \"end\";\n\t/** Whether to show an arrow */\n\tshowArrow?: boolean;\n\t/** Whether to show a close button */\n\tshowClose?: boolean;\n\t/** Controlled open state */\n\topen?: boolean;\n\t/** Default open state */\n\tdefaultOpen?: boolean;\n\t/** Callback when open state changes */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Additional className for the popup */\n\tclassName?: string;\n}\n\n/**\n * Popover\n *\n * A simple, pre-composed popover component for common use cases.\n * For more complex needs, use the compound components directly.\n *\n * @example\n * ```tsx\n * <Popover\n * trigger={<Button>Click me</Button>}\n * title=\"Popover Title\"\n * >\n * <p>This is the popover content.</p>\n * </Popover>\n * ```\n */\nconst Popover = ({\n\tchildren,\n\ttrigger,\n\ttitle,\n\tside = \"bottom\",\n\tsideOffset = 8,\n\talign = \"center\",\n\tshowArrow = true,\n\tshowClose = false,\n\topen,\n\tdefaultOpen,\n\tonOpenChange,\n\tclassName,\n}: PopoverProps) => {\n\treturn (\n\t\t<PopoverRoot\n\t\t\topen={open}\n\t\t\tdefaultOpen={defaultOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t>\n\t\t\t<PopoverTrigger>{trigger}</PopoverTrigger>\n\t\t\t<PopoverPortal>\n\t\t\t\t<PopoverPositioner side={side} sideOffset={sideOffset} align={align}>\n\t\t\t\t\t<PopoverPopup className={className}>\n\t\t\t\t\t\t{showArrow && <PopoverArrow />}\n\t\t\t\t\t\t{showClose && (\n\t\t\t\t\t\t\t<PopoverClose>\n\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\twidth=\"12\"\n\t\t\t\t\t\t\t\t\theight=\"12\"\n\t\t\t\t\t\t\t\t\tviewBox=\"0 0 12 12\"\n\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\td=\"M1.5 1.5L10.5 10.5M1.5 10.5L10.5 1.5\"\n\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\tstrokeWidth=\"1.5\"\n\t\t\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t\t\t</PopoverClose>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{title && <PopoverTitle>{title}</PopoverTitle>}\n\t\t\t\t\t\t{title ? (\n\t\t\t\t\t\t\t<PopoverDescription>{children}</PopoverDescription>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tchildren\n\t\t\t\t\t\t)}\n\t\t\t\t\t</PopoverPopup>\n\t\t\t\t</PopoverPositioner>\n\t\t\t</PopoverPortal>\n\t\t</PopoverRoot>\n\t);\n};\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nexport const PopoverParts = Object.assign(PopoverRoot, {\n\tRoot: PopoverRoot,\n\tTrigger: PopoverTrigger,\n\tPortal: PopoverPortal,\n\tBackdrop: PopoverBackdrop,\n\tPositioner: PopoverPositioner,\n\tPopup: PopoverPopup,\n\tArrow: PopoverArrow,\n\tTitle: PopoverTitle,\n\tDescription: PopoverDescription,\n\tClose: PopoverClose,\n});\n\nexport {\n\tPopover,\n\tPopoverRoot,\n\tPopoverTrigger,\n\tPopoverPortal,\n\tPopoverBackdrop,\n\tPopoverPositioner,\n\tPopoverPopup,\n\tPopoverArrow,\n\tPopoverTitle,\n\tPopoverDescription,\n\tPopoverClose,\n\tpopoverPopupVariants,\n\tpopoverArrowVariants,\n};\n","\"use client\";\n\nimport { Select as BaseSelect } from \"@base-ui-components/react/select\";\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport {\n\tformControlBase,\n\tformControlError,\n\tformControlSizes,\n} from \"@/lib/form-control\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Select trigger variants based on Figma BaseKit / Interface / Dropdown\n *\n * States:\n * - Default: White background, subtle border\n * - Hover: Light gray background\n * - Focus/Open: Accent border with focus ring\n * - Selected: Has a value selected (darker text)\n * - Disabled: Reduced opacity, not interactive\n */\nconst selectTriggerVariants = tv({\n\tbase: [\n\t\t...formControlBase,\n\t\t// Select-specific styles\n\t\t\"justify-between cursor-pointer\",\n\t\t// Override disabled to use data attribute (Base UI pattern)\n\t\t\"data-[disabled]:bg-ui-control-background-disabled data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n\t\t// Open state styling\n\t\t\"data-[popup-open]:border-ui-accent-base data-[popup-open]:ring-4 data-[popup-open]:ring-ui-color-focus data-[popup-open]:bg-ui-control-background\",\n\t],\n\tvariants: {\n\t\tsize: formControlSizes,\n\t\terror: formControlError,\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t\terror: false,\n\t},\n});\n\n/**\n * Select popup/menu variants\n */\nconst selectPopupVariants = tv({\n\tbase: [\n\t\t// Layout - match trigger width using CSS custom property from Base UI\n\t\t\"flex flex-col gap-2 p-10\",\n\t\t\"w-[var(--anchor-width)]\",\n\t\t// Background and border - uses surface ui radius for theming support\n\t\t\"bg-ui-control-background border border-solid border-ui-color-border-active rounded-surface-ui-medium\",\n\t\t// Focus ring shadow (ui-focus-state from Figma)\n\t\t\"ring-4 ring-ui-color-focus\",\n\t\t// Animation\n\t\t\"origin-[var(--transform-origin)]\",\n\t\t\"transition-[transform,scale,opacity] duration-150\",\n\t\t\"data-[starting-style]:scale-95 data-[starting-style]:opacity-0\",\n\t\t\"data-[ending-style]:scale-95 data-[ending-style]:opacity-0\",\n\t\t// Ensure it's above other content\n\t\t\"z-50\",\n\t],\n});\n\n/**\n * Select option/item variants based on Figma Menu Items\n *\n * States:\n * - Default: White background\n * - Hover/Highlighted: Light indigo tint background\n * - Selected: Stronger indigo tint with blue text and checkmark\n * - Disabled: Reduced opacity\n */\nconst selectOptionVariants = tv({\n\tbase: [\n\t\t// Layout\n\t\t\"flex items-center justify-between px-12 py-8 h-36\",\n\t\t// Typography - use semantic tokens\n\t\t\"typography-body-md-md font-medium text-ui-menu-item-text\",\n\t\t// Background - default\n\t\t\"bg-ui-menu-item-bg\",\n\t\t// Border radius - uses surface ui radius for theming support\n\t\t\"rounded-surface-ui-medium\",\n\t\t// Cursor\n\t\t\"cursor-pointer outline-none\",\n\t\t// Transitions\n\t\t\"transition-colors duration-150\",\n\t\t// Hover/highlighted state - use semantic token\n\t\t\"data-[highlighted]:bg-ui-menu-item-bg-hover\",\n\t\t// Selected state - use semantic tokens\n\t\t\"data-[selected]:bg-ui-menu-item-bg-selected data-[selected]:text-ui-menu-item-text-selected\",\n\t\t// Disabled state\n\t\t\"data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed\",\n\t],\n});\n\n/**\n * Chevron icon for the select trigger\n */\nconst SelectChevronIcon = ({ className }: { className?: string }) => (\n\t<svg\n\t\tclassName={cn(\"size-16 text-gray-500 shrink-0\", className)}\n\t\tviewBox=\"0 0 16 16\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\taria-hidden=\"true\"\n\t>\n\t\t<path\n\t\t\td=\"M4 6L8 10L12 6\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t/>\n\t</svg>\n);\n\n/**\n * Checkmark icon for selected options\n */\nconst CheckIcon = ({ className }: { className?: string }) => (\n\t<svg\n\t\tclassName={cn(\"size-14 shrink-0\", className)}\n\t\tviewBox=\"0 0 14 14\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\taria-hidden=\"true\"\n\t>\n\t\t<path\n\t\t\td=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t/>\n\t</svg>\n);\n\n// ============================================================================\n// Select Root\n// ============================================================================\n\nexport interface SelectProps<Value = string>\n\textends BaseSelect.Root.Props<Value> {\n\tchildren: React.ReactNode;\n}\n\nconst SelectRoot = <Value = string>({\n\tchildren,\n\t...props\n}: SelectProps<Value>) => {\n\treturn <BaseSelect.Root {...props}>{children}</BaseSelect.Root>;\n};\n\n// ============================================================================\n// Select Trigger\n// ============================================================================\n\nexport interface SelectTriggerProps\n\textends Omit<React.ComponentProps<typeof BaseSelect.Trigger>, \"className\">,\n\t\tVariantProps<typeof selectTriggerVariants> {\n\tclassName?: string;\n\tplaceholder?: string;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n\t(\n\t\t{ className, size, error, placeholder = \"Select option...\", ...props },\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t<BaseSelect.Trigger\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(selectTriggerVariants({ size, error }), className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<BaseSelect.Value>\n\t\t\t\t\t{(value) =>\n\t\t\t\t\t\tvalue ? (\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"text-text-muted\">{placeholder}</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</BaseSelect.Value>\n\t\t\t\t<BaseSelect.Icon>\n\t\t\t\t\t<SelectChevronIcon />\n\t\t\t\t</BaseSelect.Icon>\n\t\t\t</BaseSelect.Trigger>\n\t\t);\n\t},\n);\nSelectTrigger.displayName = \"SelectTrigger\";\n\n// ============================================================================\n// Select Portal & Popup\n// ============================================================================\n\nexport interface SelectPopupProps\n\textends Omit<React.ComponentProps<typeof BaseSelect.Popup>, \"className\"> {\n\tclassName?: string;\n}\n\nconst SelectPopup = React.forwardRef<HTMLDivElement, SelectPopupProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseSelect.Portal>\n\t\t\t\t<BaseSelect.Positioner side=\"bottom\" sideOffset={4} align=\"start\">\n\t\t\t\t\t<BaseSelect.Popup\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tclassName={cn(selectPopupVariants(), className)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</BaseSelect.Popup>\n\t\t\t\t</BaseSelect.Positioner>\n\t\t\t</BaseSelect.Portal>\n\t\t);\n\t},\n);\nSelectPopup.displayName = \"SelectPopup\";\n\n// ============================================================================\n// Select Option (wraps Base UI's Select.Item)\n// ============================================================================\n\nexport interface SelectOptionProps\n\textends Omit<React.ComponentProps<typeof BaseSelect.Item>, \"className\"> {\n\tclassName?: string;\n}\n\nconst SelectOption = React.forwardRef<HTMLDivElement, SelectOptionProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseSelect.Item\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(selectOptionVariants(), className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<BaseSelect.ItemText>{children}</BaseSelect.ItemText>\n\t\t\t\t<BaseSelect.ItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</BaseSelect.ItemIndicator>\n\t\t\t</BaseSelect.Item>\n\t\t);\n\t},\n);\nSelectOption.displayName = \"SelectOption\";\n\n// ============================================================================\n// Select Group\n// ============================================================================\n\nexport interface SelectGroupProps\n\textends Omit<React.ComponentProps<typeof BaseSelect.Group>, \"className\"> {\n\tclassName?: string;\n}\n\nconst SelectGroup = React.forwardRef<HTMLDivElement, SelectGroupProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseSelect.Group ref={ref} className={className} {...props}>\n\t\t\t\t{children}\n\t\t\t</BaseSelect.Group>\n\t\t);\n\t},\n);\nSelectGroup.displayName = \"SelectGroup\";\n\n// ============================================================================\n// Select Group Label\n// ============================================================================\n\nexport interface SelectGroupLabelProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof BaseSelect.GroupLabel>,\n\t\t\"className\"\n\t> {\n\tclassName?: string;\n}\n\nconst SelectGroupLabel = React.forwardRef<\n\tHTMLDivElement,\n\tSelectGroupLabelProps\n>(({ className, children, ...props }, ref) => {\n\treturn (\n\t\t<BaseSelect.GroupLabel\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"px-12 py-6 typography-body-sm-sm font-medium text-text-muted uppercase tracking-wide\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</BaseSelect.GroupLabel>\n\t);\n});\nSelectGroupLabel.displayName = \"SelectGroupLabel\";\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nexport const Select = Object.assign(SelectRoot, {\n\tTrigger: SelectTrigger,\n\tPopup: SelectPopup,\n\tOption: SelectOption,\n\tGroup: SelectGroup,\n\tGroupLabel: SelectGroupLabel,\n});\n\n// Also export individual components for flexibility\nexport {\n\tSelectRoot,\n\tSelectTrigger,\n\tSelectPopup,\n\tSelectOption,\n\tSelectGroup,\n\tSelectGroupLabel,\n\tselectTriggerVariants,\n\tselectPopupVariants,\n\tselectOptionVariants,\n};\n","\"use client\";\n\nimport { Tooltip as BaseTooltip } from \"@base-ui-components/react/tooltip\";\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\nimport {\n\tFloatingArrowSvg,\n\tfloatingArrowVariants,\n} from \"../../shared/floating-arrow\";\n\n/**\n * Tooltip popup variants\n *\n * Uses semantic tokens for themeable styling:\n * - color.tooltip.bg - Dark background\n * - color.tooltip.text - Light text\n * - surface.tooltip.radius - Small border radius\n * - spatial.component.tooltip.padding-x/y - Consistent padding\n */\nconst tooltipPopupVariants = tv({\n\tbase: [\n\t\t// Layout - uses component tooltip tokens\n\t\t\"px-spatial-component-tooltip-padding-x py-spatial-component-tooltip-padding-y\",\n\t\t// Background and text - uses tooltip color tokens\n\t\t\"bg-tooltip-bg text-tooltip-text\",\n\t\t// Border radius - uses surface tooltip token\n\t\t\"rounded-surface-tooltip\",\n\t\t// Typography - uses semantic body text composite\n\t\t\"typography-body-sm-md font-medium\",\n\t\t// Shadow for elevation\n\t\t\"shadow-md\",\n\t\t// Allow arrow to extend outside popup bounds\n\t\t\"overflow-visible\",\n\t\t// Animation\n\t\t\"origin-[var(--transform-origin)]\",\n\t\t\"transition-[transform,scale,opacity] duration-150\",\n\t\t\"data-[starting-style]:scale-95 data-[starting-style]:opacity-0\",\n\t\t\"data-[ending-style]:scale-95 data-[ending-style]:opacity-0\",\n\t\t// Ensure it's above other content\n\t\t\"z-50\",\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"\",\n\t\t\t// Future variants can be added here (e.g., light, primary)\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\n/**\n * Tooltip arrow variants - uses shared floating arrow variants\n */\nconst tooltipArrowVariants = floatingArrowVariants;\n\n// ============================================================================\n// Tooltip Provider\n// ============================================================================\n\nexport interface TooltipProviderProps extends BaseTooltip.Provider.Props {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Tooltip Provider\n *\n * Manages shared delays across multiple tooltips.\n * Wrap your app or a section with this to enable tooltip delay grouping.\n */\nconst TooltipProvider = ({ children, ...props }: TooltipProviderProps) => {\n\treturn <BaseTooltip.Provider {...props}>{children}</BaseTooltip.Provider>;\n};\n\n// ============================================================================\n// Tooltip Root\n// ============================================================================\n\nexport interface TooltipRootProps extends BaseTooltip.Root.Props {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Tooltip Root\n *\n * Groups all tooltip parts. Does not render an element.\n */\nconst TooltipRoot = ({ children, ...props }: TooltipRootProps) => {\n\treturn <BaseTooltip.Root {...props}>{children}</BaseTooltip.Root>;\n};\n\n// ============================================================================\n// Tooltip Trigger\n// ============================================================================\n\nexport interface TooltipTriggerProps\n\textends React.ComponentProps<typeof BaseTooltip.Trigger> {\n\tclassName?: string;\n}\n\n/**\n * Tooltip Trigger\n *\n * The element that triggers the tooltip on hover/focus.\n * Renders as the child element with tooltip behavior attached.\n * When children is a single React element, uses `render` prop to avoid wrapper element.\n */\nconst TooltipTrigger = React.forwardRef<HTMLButtonElement, TooltipTriggerProps>(\n\t({ className, children, ...props }, ref) => {\n\t\t// If children is a single React element, use render prop to avoid wrapper\n\t\tconst isSingleElement = React.isValidElement(children);\n\n\t\tif (isSingleElement) {\n\t\t\treturn (\n\t\t\t\t<BaseTooltip.Trigger\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\trender={children as React.ReactElement<Record<string, unknown>>}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseTooltip.Trigger ref={ref} className={className} {...props}>\n\t\t\t\t{children}\n\t\t\t</BaseTooltip.Trigger>\n\t\t);\n\t},\n);\nTooltipTrigger.displayName = \"TooltipTrigger\";\n\n// ============================================================================\n// Tooltip Portal\n// ============================================================================\n\nexport interface TooltipPortalProps extends BaseTooltip.Portal.Props {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Tooltip Portal\n *\n * Renders the tooltip popup in a portal outside the DOM hierarchy.\n */\nconst TooltipPortal = ({ children, ...props }: TooltipPortalProps) => {\n\treturn <BaseTooltip.Portal {...props}>{children}</BaseTooltip.Portal>;\n};\n\n// ============================================================================\n// Tooltip Positioner\n// ============================================================================\n\nexport interface TooltipPositionerProps\n\textends Omit<\n\t\tReact.ComponentProps<typeof BaseTooltip.Positioner>,\n\t\t\"className\"\n\t> {\n\tclassName?: string;\n}\n\n/**\n * Tooltip Positioner\n *\n * Positions the tooltip popup relative to the trigger.\n */\nconst TooltipPositioner = React.forwardRef<\n\tHTMLDivElement,\n\tTooltipPositionerProps\n>(({ className, side = \"top\", sideOffset = 8, ...props }, ref) => {\n\treturn (\n\t\t<BaseTooltip.Positioner\n\t\t\tref={ref}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={className}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nTooltipPositioner.displayName = \"TooltipPositioner\";\n\n// ============================================================================\n// Tooltip Popup\n// ============================================================================\n\nexport interface TooltipPopupProps\n\textends Omit<React.ComponentProps<typeof BaseTooltip.Popup>, \"className\">,\n\t\tVariantProps<typeof tooltipPopupVariants> {\n\tclassName?: string;\n}\n\n/**\n * Tooltip Popup\n *\n * The tooltip content container with styled appearance.\n */\nconst TooltipPopup = React.forwardRef<HTMLDivElement, TooltipPopupProps>(\n\t({ className, variant, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseTooltip.Popup\n\t\t\t\tref={ref}\n\t\t\t\trole=\"tooltip\"\n\t\t\t\tclassName={cn(tooltipPopupVariants({ variant }), className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nTooltipPopup.displayName = \"TooltipPopup\";\n\n// ============================================================================\n// Tooltip Arrow\n// ============================================================================\n\nexport interface TooltipArrowProps\n\textends Omit<React.ComponentProps<typeof BaseTooltip.Arrow>, \"className\"> {\n\tclassName?: string;\n}\n\n/**\n * Tooltip Arrow\n *\n * Visual pointer element for the tooltip.\n * Uses shared FloatingArrowSvg with tooltip-bg color token.\n */\nconst TooltipArrow = React.forwardRef<HTMLDivElement, TooltipArrowProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseTooltip.Arrow\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(tooltipArrowVariants(), className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<FloatingArrowSvg fillClassName=\"fill-tooltip-bg\" />\n\t\t\t</BaseTooltip.Arrow>\n\t\t);\n\t},\n);\nTooltipArrow.displayName = \"TooltipArrow\";\n\n// ============================================================================\n// Simple Tooltip Component\n// ============================================================================\n\nexport interface TooltipProps {\n\t/** The content to show in the tooltip */\n\tcontent: React.ReactNode;\n\t/** The element that triggers the tooltip */\n\tchildren: React.ReactNode;\n\t/** Side of the trigger to show the tooltip */\n\tside?: \"top\" | \"bottom\" | \"left\" | \"right\";\n\t/** Offset from the trigger */\n\tsideOffset?: number;\n\t/** Alignment along the side */\n\talign?: \"start\" | \"center\" | \"end\";\n\t/** Delay before showing the tooltip (ms) */\n\tdelay?: number;\n\t/** Delay before hiding the tooltip (ms) */\n\tcloseDelay?: number;\n\t/** Whether to show an arrow */\n\tshowArrow?: boolean;\n\t/** Controlled open state */\n\topen?: boolean;\n\t/** Default open state */\n\tdefaultOpen?: boolean;\n\t/** Callback when open state changes */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Additional className for the popup */\n\tclassName?: string;\n}\n\n/**\n * Tooltip\n *\n * A simple, pre-composed tooltip component for common use cases.\n *\n * @example\n * ```tsx\n * <Tooltip content=\"Save your changes\">\n * <Button>Save</Button>\n * </Tooltip>\n * ```\n */\nconst Tooltip = ({\n\tcontent,\n\tchildren,\n\tside = \"top\",\n\tsideOffset = 8,\n\talign = \"center\",\n\tdelay,\n\tcloseDelay,\n\tshowArrow = true,\n\topen,\n\tdefaultOpen,\n\tonOpenChange,\n\tclassName,\n}: TooltipProps) => {\n\treturn (\n\t\t<TooltipRoot\n\t\t\topen={open}\n\t\t\tdefaultOpen={defaultOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t>\n\t\t\t<TooltipTrigger delay={delay} closeDelay={closeDelay}>\n\t\t\t\t{children}\n\t\t\t</TooltipTrigger>\n\t\t\t<TooltipPortal>\n\t\t\t\t<TooltipPositioner side={side} sideOffset={sideOffset} align={align}>\n\t\t\t\t\t<TooltipPopup className={className}>\n\t\t\t\t\t\t{showArrow && <TooltipArrow />}\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</TooltipPopup>\n\t\t\t\t</TooltipPositioner>\n\t\t\t</TooltipPortal>\n\t\t</TooltipRoot>\n\t);\n};\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nexport const TooltipParts = Object.assign(TooltipRoot, {\n\tProvider: TooltipProvider,\n\tRoot: TooltipRoot,\n\tTrigger: TooltipTrigger,\n\tPortal: TooltipPortal,\n\tPositioner: TooltipPositioner,\n\tPopup: TooltipPopup,\n\tArrow: TooltipArrow,\n});\n\nexport {\n\tTooltip,\n\tTooltipProvider,\n\tTooltipRoot,\n\tTooltipTrigger,\n\tTooltipPortal,\n\tTooltipPositioner,\n\tTooltipPopup,\n\tTooltipArrow,\n\ttooltipPopupVariants,\n\ttooltipArrowVariants,\n};\n","export interface GridOverlayProps {\n\tcolumnOpacity?: number;\n\tborderOpacity?: number;\n\tvisible?: boolean;\n}\n\nexport function GridOverlay({\n\tcolumnOpacity = 0.15,\n\tborderOpacity = 0.3,\n\tvisible = true,\n}: GridOverlayProps) {\n\tconst columns = Array.from({ length: 24 }, (_, i) => i);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`\n\t\t\t\tfixed inset-0 z-[9998] pointer-events-none overflow-hidden\n\t\t\t\ttransition-opacity duration-300 ease-out\n\t\t\t\t${visible ? \"opacity-100\" : \"opacity-0\"}\n\t\t\t`}\n\t\t\taria-hidden=\"true\"\n\t\t\tdata-testid=\"grid-overlay\"\n\t\t>\n\t\t\t<div className=\"h-full w-full max-w-[90rem] mx-auto px-[var(--spatial-grid-small-margin)] md:px-[var(--spatial-grid-medium-margin)] lg:px-[var(--spatial-grid-large-margin)]\">\n\t\t\t\t<div className=\"h-full grid grid-cols-4 md:grid-cols-12 lg:grid-cols-24 gap-[var(--spatial-grid-small-gutter)] md:gap-[var(--spatial-grid-medium-gutter)] lg:gap-[var(--spatial-grid-large-gutter)]\">\n\t\t\t\t\t{columns.map((index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tclassName=\"h-full border border-red-500\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `rgb(239 68 68 / ${columnOpacity})`,\n\t\t\t\t\t\t\t\tborderColor: `rgb(239 68 68 / ${borderOpacity})`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-column={index + 1}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { GridOverlay } from \"../grid-overlay\";\n\nfunction GridIcon({ active }: { active?: boolean }) {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"20\"\n\t\t\theight=\"20\"\n\t\t\tviewBox=\"0 0 20 20\"\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={active ? \"2\" : \"1.5\"}\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<rect x=\"2\" y=\"2\" width=\"16\" height=\"16\" rx=\"2\" />\n\t\t\t<line x1=\"7\" y1=\"2\" x2=\"7\" y2=\"18\" />\n\t\t\t<line x1=\"13\" y1=\"2\" x2=\"13\" y2=\"18\" />\n\t\t</svg>\n\t);\n}\n\nexport interface DevToolbarProps {\n\tdefaultExpanded?: boolean;\n}\n\nconst DRAG_THRESHOLD = 3;\n\nexport function DevToolbar({ defaultExpanded = false }: DevToolbarProps) {\n\tconst [isExpanded, setIsExpanded] = useState(defaultExpanded);\n\tconst [showGrid, setShowGrid] = useState(false);\n\tconst [position, setPosition] = useState({ x: 0, y: 0 });\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst hasDraggedRef = useRef(false);\n\tconst dragRef = useRef<{\n\t\tstartX: number;\n\t\tstartY: number;\n\t\tstartPosX: number;\n\t\tstartPosY: number;\n\t} | null>(null);\n\tconst toolbarRef = useRef<HTMLDivElement>(null);\n\n\tconst toggleGrid = useCallback(() => setShowGrid((prev) => !prev), []);\n\tconst toggleExpanded = useCallback(() => setIsExpanded((prev) => !prev), []);\n\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tif ((e.ctrlKey || e.metaKey) && e.key === \"g\") {\n\t\t\t\te.preventDefault();\n\t\t\t\ttoggleGrid();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleGrid]);\n\n\tconst handleDragStart = useCallback(\n\t\t(clientX: number, clientY: number) => {\n\t\t\tsetIsDragging(true);\n\t\t\thasDraggedRef.current = false;\n\t\t\tdragRef.current = {\n\t\t\t\tstartX: clientX,\n\t\t\t\tstartY: clientY,\n\t\t\t\tstartPosX: position.x,\n\t\t\t\tstartPosY: position.y,\n\t\t\t};\n\t\t},\n\t\t[position],\n\t);\n\n\tconst handleDragMove = useCallback(\n\t\t(clientX: number, clientY: number) => {\n\t\t\tif (!isDragging || !dragRef.current) return;\n\n\t\t\tconst deltaX = clientX - dragRef.current.startX;\n\t\t\tconst deltaY = clientY - dragRef.current.startY;\n\n\t\t\tif (\n\t\t\t\tMath.abs(deltaX) > DRAG_THRESHOLD ||\n\t\t\t\tMath.abs(deltaY) > DRAG_THRESHOLD\n\t\t\t) {\n\t\t\t\thasDraggedRef.current = true;\n\t\t\t}\n\n\t\t\tsetPosition({\n\t\t\t\tx: dragRef.current.startPosX + deltaX,\n\t\t\t\ty: dragRef.current.startPosY - deltaY,\n\t\t\t});\n\t\t},\n\t\t[isDragging],\n\t);\n\n\tconst handleDragEnd = useCallback(() => {\n\t\tsetIsDragging(false);\n\t\tdragRef.current = null;\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!isDragging) return;\n\n\t\tconst handleMouseMove = (e: MouseEvent) =>\n\t\t\thandleDragMove(e.clientX, e.clientY);\n\t\tconst handleTouchMove = (e: TouchEvent) => {\n\t\t\tif (e.touches[0])\n\t\t\t\thandleDragMove(e.touches[0].clientX, e.touches[0].clientY);\n\t\t};\n\t\tconst handleEnd = () => handleDragEnd();\n\n\t\twindow.addEventListener(\"mousemove\", handleMouseMove);\n\t\twindow.addEventListener(\"mouseup\", handleEnd);\n\t\twindow.addEventListener(\"touchmove\", handleTouchMove);\n\t\twindow.addEventListener(\"touchend\", handleEnd);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"mousemove\", handleMouseMove);\n\t\t\twindow.removeEventListener(\"mouseup\", handleEnd);\n\t\t\twindow.removeEventListener(\"touchmove\", handleTouchMove);\n\t\t\twindow.removeEventListener(\"touchend\", handleEnd);\n\t\t};\n\t}, [isDragging, handleDragMove, handleDragEnd]);\n\n\tconst handleBarMouseDown = (e: React.MouseEvent) => {\n\t\te.preventDefault();\n\t\thandleDragStart(e.clientX, e.clientY);\n\t};\n\n\tconst handleBarTouchStart = (e: React.TouchEvent) => {\n\t\tif (e.touches[0]) {\n\t\t\thandleDragStart(e.touches[0].clientX, e.touches[0].clientY);\n\t\t}\n\t};\n\n\tconst handleBarClick = () => {\n\t\tif (!hasDraggedRef.current) {\n\t\t\ttoggleExpanded();\n\t\t}\n\t\thasDraggedRef.current = false;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{showGrid && <GridOverlay />}\n\n\t\t\t<div\n\t\t\t\tref={toolbarRef}\n\t\t\t\tclassName=\"fixed bottom-4 left-1/2 z-[9999]\"\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(calc(-50% + ${position.x}px), ${-position.y}px)`,\n\t\t\t\t}}\n\t\t\t\tdata-testid=\"dev-toolbar\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`bg-gray-1100 rounded-radius-16 shadow-lg flex flex-col items-center overflow-hidden px-12 py-8 ${isExpanded ? \"gap-4\" : \"\"}`}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\tgrid transition-all duration-300 ease-out\n\t\t\t\t\t\t\t${isExpanded ? \"grid-rows-[1fr] opacity-100\" : \"grid-rows-[0fr] opacity-0\"}\n\t\t\t\t\t\t`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"overflow-hidden\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tonClick={toggleGrid}\n\t\t\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\t\t\tsize-40 rounded-full flex items-center justify-center transition-colors\n\t\t\t\t\t\t\t\t\t${\n\t\t\t\t\t\t\t\t\t\tshowGrid\n\t\t\t\t\t\t\t\t\t\t\t? \"text-gray-50\"\n\t\t\t\t\t\t\t\t\t\t\t: \"text-gray-400 hover:text-gray-50 hover:bg-alpha-white-10\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\ttitle=\"Toggle Grid (⌘G)\"\n\t\t\t\t\t\t\t\taria-label=\"Toggle grid overlay\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<GridIcon active={showGrid} />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonMouseDown={handleBarMouseDown}\n\t\t\t\t\t\tonTouchStart={handleBarTouchStart}\n\t\t\t\t\t\tonClick={handleBarClick}\n\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\tw-32 h-4 bg-gray-50 rounded-full transition-opacity\n\t\t\t\t\t\t\t${isDragging ? \"opacity-100 cursor-grabbing\" : \"opacity-60 hover:opacity-100 cursor-grab\"}\n\t\t\t\t\t\t`}\n\t\t\t\t\t\taria-label={isExpanded ? \"Close dev tools\" : \"Open dev tools\"}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nconst cardVariants = tv({\n\tbase: \"relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid\",\n\tvariants: {\n\t\tlayout: {\n\t\t\tvertical: \"w-full flex-col\",\n\t\t\thorizontal: \"w-full flex-row\",\n\t\t\t/**\n\t\t\t * Overlay layout - content sits on top of full-bleed background.\n\t\t\t * Use with Background components for images/gradients.\n\t\t\t */\n\t\t\toverlay: \"w-full flex-col\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tlayout: \"vertical\",\n\t},\n});\n\nexport interface CardProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof cardVariants> {}\n\n/**\n * Card component for displaying content in a contained, scannable format.\n *\n * Layouts:\n * - vertical: Image on top, content below (default)\n * - horizontal: Image on left, content on right\n * - overlay: Full-bleed background with content on top\n *\n * Use with CardImage, CardContent, CardEyebrow, CardTitle, CardDescription, and CardActions.\n * For overlay layout, use Background components for full-bleed backgrounds.\n */\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n\t({ className, layout, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardVariants({ layout, class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCard.displayName = \"Card\";\n\nconst cardImageVariants = tv({\n\tbase: [\n\t\t\"relative shrink-0 bg-bg-muted\",\n\t\t// Vertical: full width with aspect ratio\n\t\t\"aspect-video w-full\",\n\t\t// When in horizontal card (parent has flex-row), override\n\t\t\"[.flex-row>&]:aspect-auto [.flex-row>&]:w-2/5 [.flex-row>&]:self-stretch\",\n\t],\n});\n\nexport interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * The image source URL\n\t */\n\tsrc?: string;\n\t/**\n\t * Alt text for the image\n\t */\n\talt?: string;\n}\n\n/**\n * Card image area. For vertical layout, displays with 16:9 aspect ratio.\n * For horizontal layout, takes up ~40% width and stretches to content height.\n */\nconst CardImage = React.forwardRef<HTMLDivElement, CardImageProps>(\n\t({ className, src, alt = \"\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardImageVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{src && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={src}\n\t\t\t\t\t\talt={alt}\n\t\t\t\t\t\tclassName=\"absolute inset-0 size-full object-cover\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\nCardImage.displayName = \"CardImage\";\n\nconst cardContentVariants = tv({\n\tbase: \"flex w-full flex-1 flex-col gap-spatial-card-large-gap p-spatial-card-large-padding\",\n\tvariants: {\n\t\t/**\n\t\t * Vertical alignment of content within the card.\n\t\t * Useful for overlay layouts to position content at top/center/bottom.\n\t\t */\n\t\tjustify: {\n\t\t\tstart: \"justify-start\",\n\t\t\tcenter: \"justify-center\",\n\t\t\tend: \"justify-end\",\n\t\t},\n\t},\n});\n\nexport interface CardContentProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof cardContentVariants> {}\n\n/**\n * Card content container with proper padding and spacing.\n * Uses spatial card tokens for consistent sizing.\n * For overlay layout, add `relative z-10` to ensure content sits above background.\n *\n * @example\n * ```tsx\n * // Content at bottom of overlay card\n * <Card layout=\"overlay\">\n * <Background.Image src=\"/hero.jpg\" />\n * <CardContent justify=\"end\" className=\"relative z-10\">\n * <CardTitle>Title</CardTitle>\n * </CardContent>\n * </Card>\n * ```\n */\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n\t({ className, justify, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardContentVariants({ justify, class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCardContent.displayName = \"CardContent\";\n\nconst cardEyebrowVariants = tv({\n\tbase: \"typography-overline text-text-muted uppercase tracking-wider\",\n});\n\nexport interface CardEyebrowProps\n\textends React.HTMLAttributes<HTMLParagraphElement> {}\n\n/**\n * Optional eyebrow text above the card title.\n */\nconst CardEyebrow = React.forwardRef<HTMLParagraphElement, CardEyebrowProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<p\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardEyebrowVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCardEyebrow.displayName = \"CardEyebrow\";\n\nconst cardTitleVariants = tv({\n\tbase: \"typography-h5 text-text-primary\",\n});\n\nexport interface CardTitleProps\n\textends React.HTMLAttributes<HTMLHeadingElement> {\n\t/**\n\t * The heading level to render (h1-h6). Defaults to h3.\n\t */\n\tas?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\n/**\n * Card title/heading. Use the `as` prop to change the heading level.\n */\nconst CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(\n\t({ className, as: Component = \"h3\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<Component\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardTitleVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCardTitle.displayName = \"CardTitle\";\n\nconst cardDescriptionVariants = tv({\n\tbase: \"typography-body-small text-text-secondary\",\n});\n\nexport interface CardDescriptionProps\n\textends React.HTMLAttributes<HTMLParagraphElement> {}\n\n/**\n * Card body/description text.\n */\nconst CardDescription = React.forwardRef<\n\tHTMLParagraphElement,\n\tCardDescriptionProps\n>(({ className, ...props }, ref) => {\n\treturn (\n\t\t<p\n\t\t\tref={ref}\n\t\t\tclassName={cardDescriptionVariants({ class: className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nCardDescription.displayName = \"CardDescription\";\n\nconst cardBodyVariants = tv({\n\tbase: \"flex w-full flex-col gap-spatial-card-small-gap\",\n});\n\nexport interface CardBodyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for card text content (eyebrow, title, description).\n * Uses spatial card tokens for consistent sizing.\n */\nconst CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardBodyVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCardBody.displayName = \"CardBody\";\n\nconst cardActionsVariants = tv({\n\tbase: \"flex gap-12\",\n});\n\nexport interface CardActionsProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for card action buttons.\n * Uses primitive spacing tokens.\n */\nconst CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardActionsVariants({ class: className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCardActions.displayName = \"CardActions\";\n\nexport {\n\tCard,\n\tcardVariants,\n\tCardImage,\n\tcardImageVariants,\n\tCardContent,\n\tcardContentVariants,\n\tCardEyebrow,\n\tcardEyebrowVariants,\n\tCardTitle,\n\tcardTitleVariants,\n\tCardDescription,\n\tcardDescriptionVariants,\n\tCardBody,\n\tcardBodyVariants,\n\tCardActions,\n\tcardActionsVariants,\n};\n","\"use client\";\n\nimport { Dialog } from \"@base-ui-components/react/dialog\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// Context for mobile menu state\nconst NavbarContext = React.createContext<{\n\tisMobileMenuOpen: boolean;\n\tsetIsMobileMenuOpen: (open: boolean) => void;\n}>({\n\tisMobileMenuOpen: false,\n\tsetIsMobileMenuOpen: () => {},\n});\n\nexport interface NavbarProps extends React.HTMLAttributes<HTMLElement> {}\n\n/**\n * Main navigation bar container.\n * Provides responsive layout for brand, links, and actions.\n */\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false);\n\t\tconst navRef = React.useRef<HTMLElement>(null);\n\n\t\t// Set navbar height CSS variable for mobile menu positioning\n\t\tReact.useEffect(() => {\n\t\t\tconst updateHeight = () => {\n\t\t\t\tif (navRef.current) {\n\t\t\t\t\tconst height = navRef.current.offsetHeight;\n\t\t\t\t\tdocument.documentElement.style.setProperty(\n\t\t\t\t\t\t\"--navbar-height\",\n\t\t\t\t\t\t`${height}px`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tupdateHeight();\n\t\t\twindow.addEventListener(\"resize\", updateHeight);\n\t\t\treturn () => window.removeEventListener(\"resize\", updateHeight);\n\t\t}, []);\n\n\t\t// Merge refs\n\t\tconst mergedRef = React.useCallback(\n\t\t\t(node: HTMLElement | null) => {\n\t\t\t\t(navRef as React.MutableRefObject<HTMLElement | null>).current = node;\n\t\t\t\tif (typeof ref === \"function\") {\n\t\t\t\t\tref(node);\n\t\t\t\t} else if (ref) {\n\t\t\t\t\tref.current = node;\n\t\t\t\t}\n\t\t\t},\n\t\t\t[ref],\n\t\t);\n\n\t\treturn (\n\t\t\t<NavbarContext.Provider value={{ isMobileMenuOpen, setIsMobileMenuOpen }}>\n\t\t\t\t<nav\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tclassName={cn(\"relative z-50 w-full bg-gray-50\", className)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex w-full items-center justify-between\",\n\t\t\t\t\t\t\t// Mobile\n\t\t\t\t\t\t\t\"px-spacing-component-navbar-padding-x-mobile py-spacing-component-navbar-padding-y-mobile\",\n\t\t\t\t\t\t\t// Tablet\n\t\t\t\t\t\t\t\"md:px-spacing-component-navbar-padding-x-tablet md:py-spacing-component-navbar-padding-y-tablet\",\n\t\t\t\t\t\t\t// Desktop\n\t\t\t\t\t\t\t\"xl:px-spacing-component-navbar-padding-x-desktop xl:py-spacing-component-navbar-padding-y-desktop\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</nav>\n\t\t\t</NavbarContext.Provider>\n\t\t);\n\t},\n);\nNavbar.displayName = \"Navbar\";\n\nexport interface NavbarBrandProps extends React.HTMLAttributes<HTMLDivElement> {\n\tasChild?: boolean;\n}\n\n/**\n * Brand/logo area of the navbar.\n * Use asChild to render as a link.\n */\nconst NavbarBrand = React.forwardRef<HTMLDivElement, NavbarBrandProps>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"div\";\n\t\treturn <Comp ref={ref} className={cn(\"shrink-0\", className)} {...props} />;\n\t},\n);\nNavbarBrand.displayName = \"NavbarBrand\";\n\nexport interface NavbarLinksProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for navigation links.\n * Centers links on desktop, hidden on mobile (use NavbarMobileMenu instead).\n */\nconst NavbarLinks = React.forwardRef<HTMLDivElement, NavbarLinksProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"hidden items-center gap-spacing-component-navbar-gap-links md:flex\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nNavbarLinks.displayName = \"NavbarLinks\";\n\nexport interface NavbarLinkProps\n\textends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n\tasChild?: boolean;\n\tactive?: boolean;\n}\n\n/**\n * Individual navigation link.\n * Use asChild to render with a router Link component.\n */\nconst NavbarLink = React.forwardRef<HTMLAnchorElement, NavbarLinkProps>(\n\t({ className, asChild = false, active, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"a\";\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"typography-body-small font-medium text-gray-900 transition-colors hover:text-gray-700\",\n\t\t\t\t\tactive && \"text-gray-1100\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nNavbarLink.displayName = \"NavbarLink\";\n\nexport interface NavbarActionsProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for navbar action items (search, menu button, etc).\n */\nconst NavbarActions = React.forwardRef<HTMLDivElement, NavbarActionsProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex items-center gap-spacing-component-navbar-gap-actions\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nNavbarActions.displayName = \"NavbarActions\";\n\nexport interface NavbarMobileMenuProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Mobile menu container that displays navigation links on mobile devices.\n * Hidden on desktop (md and above). Should be used with NavbarMobileMenuButton.\n * Built on Base UI Dialog for accessibility (focus trap, escape key, click-outside).\n */\nconst NavbarMobileMenu = React.forwardRef<\n\tHTMLDivElement,\n\tNavbarMobileMenuProps\n>(({ className, children, ...props }, ref) => {\n\tconst { isMobileMenuOpen, setIsMobileMenuOpen } =\n\t\tReact.useContext(NavbarContext);\n\n\treturn (\n\t\t<Dialog.Root open={isMobileMenuOpen} onOpenChange={setIsMobileMenuOpen}>\n\t\t\t<Dialog.Portal>\n\t\t\t\t<Dialog.Popup\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"fixed inset-0 z-50 bg-gray-50 md:hidden\",\n\t\t\t\t\t\t// Position below navbar\n\t\t\t\t\t\t\"pt-[calc(var(--navbar-height,60px)+1px)]\",\n\t\t\t\t\t\t// Smooth transition\n\t\t\t\t\t\t\"transition-opacity duration-200\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<Dialog.Title className=\"sr-only\">Navigation menu</Dialog.Title>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex flex-col\",\n\t\t\t\t\t\t\t// Padding matching navbar\n\t\t\t\t\t\t\t\"px-spacing-component-navbar-padding-x-mobile py-spacing-component-navbar-padding-y-tablet\",\n\t\t\t\t\t\t\t// Gap between links\n\t\t\t\t\t\t\t\"gap-spacing-component-navbar-gap-mobile-menu\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</Dialog.Popup>\n\t\t\t</Dialog.Portal>\n\t\t</Dialog.Root>\n\t);\n});\nNavbarMobileMenu.displayName = \"NavbarMobileMenu\";\n\nexport interface NavbarMobileMenuButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement> {\n\tasChild?: boolean;\n}\n\n/**\n * Button to toggle the mobile menu.\n * Should be placed in NavbarActions on mobile.\n * Use asChild to render as a custom button component (e.g., IconButton).\n */\nconst NavbarMobileMenuButton = React.forwardRef<\n\tHTMLButtonElement,\n\tNavbarMobileMenuButtonProps\n>(({ className, asChild = false, children, ...props }, ref) => {\n\tconst { isMobileMenuOpen, setIsMobileMenuOpen } =\n\t\tReact.useContext(NavbarContext);\n\n\tconst handleClick = () => {\n\t\tsetIsMobileMenuOpen(!isMobileMenuOpen);\n\t};\n\n\tif (asChild) {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\tref={ref}\n\t\t\t\taria-label=\"Toggle navigation menu\"\n\t\t\t\taria-expanded={isMobileMenuOpen}\n\t\t\t\taria-controls=\"navbar-mobile-menu\"\n\t\t\t\tonClick={handleClick}\n\t\t\t\tclassName={className}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Slot>\n\t\t);\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\ttype=\"button\"\n\t\t\taria-label=\"Toggle navigation menu\"\n\t\t\taria-expanded={isMobileMenuOpen}\n\t\t\taria-controls=\"navbar-mobile-menu\"\n\t\t\tonClick={handleClick}\n\t\t\tclassName={cn(\"transition-colors\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n});\nNavbarMobileMenuButton.displayName = \"NavbarMobileMenuButton\";\n\nexport interface NavbarMobileMenuLinkProps\n\textends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n\tasChild?: boolean;\n\tactive?: boolean;\n}\n\n/**\n * Navigation link for the mobile menu.\n * Automatically closes the mobile menu when clicked.\n * Use asChild to render with a router Link component.\n */\nconst NavbarMobileMenuLink = React.forwardRef<\n\tHTMLAnchorElement,\n\tNavbarMobileMenuLinkProps\n>(({ className, asChild = false, active, onClick, ...props }, ref) => {\n\tconst { setIsMobileMenuOpen } = React.useContext(NavbarContext);\n\tconst Comp = asChild ? Slot : \"a\";\n\n\tconst handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n\t\tsetIsMobileMenuOpen(false);\n\t\tonClick?.(event);\n\t};\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"typography-body-medium font-medium text-gray-900 transition-colors hover:text-gray-700\",\n\t\t\t\t\"py-spacing-component-navbar-padding-y-mobile\",\n\t\t\t\tactive && \"text-gray-1100\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nNavbarMobileMenuLink.displayName = \"NavbarMobileMenuLink\";\n\nexport {\n\tNavbar,\n\tNavbarBrand,\n\tNavbarLinks,\n\tNavbarLink,\n\tNavbarActions,\n\tNavbarMobileMenu,\n\tNavbarMobileMenuButton,\n\tNavbarMobileMenuLink,\n};\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nconst usGovBannerVariants = tv({\n\tslots: {\n\t\troot: \"flex w-full items-center justify-center py-12\",\n\t\tcontent: \"flex items-center gap-8\",\n\t\ttext: \"text-[11px] leading-[13px] tracking-[0.17px]\",\n\t},\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: {\n\t\t\t\troot: \"bg-gray-50\",\n\t\t\t\tcontent: \"opacity-70\",\n\t\t\t\ttext: \"text-gray-900\",\n\t\t\t},\n\t\t\tinverted: {\n\t\t\t\troot: \"bg-transparent\",\n\t\t\t\tcontent: \"opacity-70\",\n\t\t\t\ttext: \"text-text-inverted\",\n\t\t\t},\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\nexport interface USGovBannerProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof usGovBannerVariants> {\n\t/**\n\t * Custom flag icon element. Defaults to a US flag SVG.\n\t */\n\tflagIcon?: React.ReactNode;\n\t/**\n\t * Banner text content\n\t * @default \"An official website of the United States government\"\n\t */\n\ttext?: string;\n}\n\n/**\n * US Government official website banner.\n * Displays the official government website notice with flag icon.\n * Commonly placed at the very top of government websites.\n *\n * Variants:\n * - default: Light background with dark text (for light pages)\n * - inverted: Transparent background with white text/flag (for dark backgrounds/heroes)\n *\n * @example\n * ```tsx\n * // Default (light)\n * <USGovBanner />\n *\n * // Inverted (for dark backgrounds)\n * <USGovBanner variant=\"inverted\" />\n * ```\n */\nconst USGovBanner = React.forwardRef<HTMLDivElement, USGovBannerProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tvariant,\n\t\t\tflagIcon,\n\t\t\ttext = \"An official website of the United States government\",\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst styles = usGovBannerVariants({ variant });\n\t\tconst isInverted = variant === \"inverted\";\n\n\t\treturn (\n\t\t\t<div ref={ref} className={styles.root({ class: className })} {...props}>\n\t\t\t\t<div className={styles.content()}>\n\t\t\t\t\t{flagIcon ?? (isInverted ? <WhiteUSFlag /> : <DefaultUSFlag />)}\n\t\t\t\t\t<p className={styles.text()}>{text}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n);\nUSGovBanner.displayName = \"USGovBanner\";\n\nfunction DefaultUSFlag() {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"16\"\n\t\t\theight=\"12\"\n\t\t\tviewBox=\"0 0 16 12\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path d=\"M0 0H16V12H0V0Z\" fill=\"#212121\" fillOpacity=\"0.1\" />\n\t\t\t<path\n\t\t\t\td=\"M0 0H16V0.923077H0V0ZM0 1.84615H16V2.76923H0V1.84615ZM0 3.69231H16V4.61538H0V3.69231ZM0 5.53846H16V6.46154H0V5.53846ZM0 7.38462H16V8.30769H0V7.38462ZM0 9.23077H16V10.1538H0V9.23077ZM0 11.0769H16V12H0V11.0769Z\"\n\t\t\t\tfill=\"#BF0A30\"\n\t\t\t\tfillOpacity=\"0.8\"\n\t\t\t/>\n\t\t\t<path d=\"M0 0H8V6.46154H0V0Z\" fill=\"#002868\" fillOpacity=\"0.8\" />\n\t\t</svg>\n\t);\n}\n\nfunction WhiteUSFlag() {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"16\"\n\t\t\theight=\"12\"\n\t\t\tviewBox=\"0 0 16 12\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path d=\"M0 0H16V12H0V0Z\" fill=\"white\" fillOpacity=\"0.1\" />\n\t\t\t<path\n\t\t\t\td=\"M0 0H16V0.923077H0V0ZM0 1.84615H16V2.76923H0V1.84615ZM0 3.69231H16V4.61538H0V3.69231ZM0 5.53846H16V6.46154H0V5.53846ZM0 7.38462H16V8.30769H0V7.38462ZM0 9.23077H16V10.1538H0V9.23077ZM0 11.0769H16V12H0V11.0769Z\"\n\t\t\t\tfill=\"white\"\n\t\t\t\tfillOpacity=\"0.8\"\n\t\t\t/>\n\t\t\t<path d=\"M0 0H8V6.46154H0V0Z\" fill=\"white\" fillOpacity=\"0.6\" />\n\t\t</svg>\n\t);\n}\n\nexport { USGovBanner, usGovBannerVariants };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Banner component based on Figma BaseKit / Banners\n *\n * Used to surface short, important updates or a single key action\n * without disrupting the main page content.\n *\n * Responsive behavior using 24-column grid:\n * - Mobile (sm): Stacked layout, 20px horizontal / 32px vertical padding\n * - Tablet (md): Horizontal layout, 56px padding\n * - Desktop (lg): Horizontal layout, 72px padding\n *\n * Must be placed inside a `grid-container`. Uses `col-full` to span all columns.\n */\nconst bannerVariants = tv({\n\tbase: [\n\t\t// Grid alignment - full width\n\t\t\"col-full\",\n\t\t// Responsive padding: mobile -> tablet -> desktop\n\t\t// Uses primitive spacing tokens\n\t\t\"px-20 py-32\",\n\t\t\"md:p-56\",\n\t\t\"lg:px-72 lg:pb-72 lg:pt-0\",\n\t],\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tlight: \"bg-gray-50\",\n\t\t\tdark: \"bg-gray-1200\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t},\n});\n\nexport interface BannerProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof bannerVariants> {\n\t/**\n\t * The heading text displayed in the banner\n\t */\n\theading: string;\n\t/**\n\t * The description text displayed below the heading\n\t */\n\tdescription: string;\n\t/**\n\t * Optional action element (typically a Button component)\n\t */\n\taction?: React.ReactNode;\n}\n\n/**\n * Banner component for surfacing important updates or CTAs.\n *\n * Uses the 24-column grid system - must be placed inside a `grid-container`.\n * Spans full width with `col-full`.\n *\n * Responsive across breakpoints:\n * - Mobile: Stacked layout with smaller padding\n * - Tablet: Horizontal layout with medium padding\n * - Desktop: Horizontal layout with larger padding\n *\n * @example\n * ```tsx\n * <div className=\"grid-container\">\n * <Banner\n * heading=\"Important Update\"\n * description=\"Check out our new features.\"\n * action={<Button>Learn More</Button>}\n * />\n * </div>\n *\n * // Dark colorScheme\n * <Banner\n * colorScheme=\"dark\"\n * heading=\"Still Have Questions?\"\n * description=\"Contact us at support@example.com\"\n * action={<Button variant=\"secondary\">Email Us</Button>}\n * />\n * ```\n */\nconst Banner = React.forwardRef<HTMLElement, BannerProps>(\n\t({ className, colorScheme, heading, description, action, ...props }, ref) => {\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={bannerVariants({ colorScheme, class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Inner container with border-top for dark colorScheme */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t// Uses primitive spacing tokens\n\t\t\t\t\t\t\"flex flex-col md:flex-row gap-20 items-start md:items-center md:justify-between\",\n\t\t\t\t\t\tcolorScheme === \"dark\" && \"border-t border-gray-700 py-36\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{/* Copy section */}\n\t\t\t\t\t<div className=\"flex flex-col gap-6 items-start\">\n\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"typography-subheading-small\",\n\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{heading}\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"typography-body-small\",\n\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-500\" : \"text-gray-800\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* Action slot */}\n\t\t\t\t\t{action}\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nBanner.displayName = \"Banner\";\n\nexport { Banner, bannerVariants };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * CardGrid component for displaying cards in a responsive grid layout\n *\n * Variants:\n * - A: 3 columns on desktop, 2 on tablet, 1 on mobile\n * - B: 2 columns on desktop/tablet, 1 on mobile\n *\n * Uses the 24-column grid system with grid-container as root.\n */\nconst cardGridVariants = tv({\n\t// Base styles - grid-container for proper grid context - uses primitive spacing tokens\n\tbase: [\n\t\t\"grid-container\",\n\t\t// Small (mobile): 72px y padding\n\t\t\"py-72\",\n\t\t// Large (desktop): 128px y padding\n\t\t\"lg:py-128\",\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tA: \"\",\n\t\t\tB: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"A\",\n\t},\n});\n\nexport interface CardGridProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof cardGridVariants> {\n\t/**\n\t * The title text displayed above the cards\n\t */\n\ttitle: string;\n\t/**\n\t * The card elements to display in the grid\n\t */\n\tcards: React.ReactNode[];\n}\n\n/**\n * CardGrid component for displaying cards in a responsive grid layout.\n *\n * Uses the 24-column grid system with grid-container as root.\n *\n * Layout (Variant A):\n * - Mobile (sm): Single column, py-72\n * - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards\n * - Desktop (lg+): 3 columns, py-128, gap-64 between title and cards, gap-y-20 between cards\n *\n * Layout (Variant B):\n * - Mobile (sm): Single column, py-72\n * - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards\n * - Desktop (lg+): 2 columns, py-128, gap-64 between title and cards, gap-y-20 between cards\n *\n * @example\n * ```tsx\n * <CardGrid\n * variant=\"A\"\n * title=\"Featured Cards\"\n * cards={[\n * <Card key=\"1\">...</Card>,\n * <Card key=\"2\">...</Card>,\n * ]}\n * />\n * ```\n */\nconst CardGrid = React.forwardRef<HTMLElement, CardGridProps>(\n\t({ className, variant, title, cards, ...props }, ref) => {\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cardGridVariants({ variant, class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Title - col-full within grid - uses primitive spacing tokens */}\n\t\t\t\t<h2\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"col-full\",\n\t\t\t\t\t\t\"typography-h4 text-gray-900\",\n\t\t\t\t\t\t// Gap after title: mobile default, md: 56px, lg: 64px\n\t\t\t\t\t\t\"mb-36 md:mb-56 lg:mb-64\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</h2>\n\n\t\t\t\t{/* Inner grid for cards - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"col-full\",\n\t\t\t\t\t\t// Mobile: single column\n\t\t\t\t\t\t\"grid grid-cols-1 gap-20\",\n\t\t\t\t\t\t// Tablet: 2 columns\n\t\t\t\t\t\t\"md:grid-cols-2\",\n\t\t\t\t\t\t// Desktop: 3 columns for variant A, 2 columns for variant B\n\t\t\t\t\t\tvariant === \"A\" && \"lg:grid-cols-3\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{React.Children.toArray(cards).map((card) => (\n\t\t\t\t\t\t<div key={(card as React.ReactElement).key}>{card}</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nCardGrid.displayName = \"CardGrid\";\n\nexport { CardGrid, cardGridVariants };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * TwoColumnSection component for text-heavy content sections\n *\n * Layout:\n * - Desktop (lg+): Title left, content right with border-top divider\n * - Mobile/Tablet: Stacked vertically\n *\n * Uses the 24-column grid system.\n */\nconst twoColumnSectionVariants = tv({\n\t// Base styles - responsive padding using primitive spacing tokens\n\tbase: [\n\t\t\"w-full\",\n\t\t// Small (mobile): 20px x, 56px top, 20px bottom\n\t\t\"px-20 pt-56 pb-20\",\n\t\t// Medium (tablet): 56px x, 56px y\n\t\t\"md:px-56 md:py-56\",\n\t\t// Large (desktop): 72px x, 72px top, 112px bottom\n\t\t\"lg:px-72 lg:pt-72 lg:pb-112\",\n\t],\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"bg-gray-1200\",\n\t\t\tlight: \"bg-white\",\n\t\t},\n\t\tlayout: {\n\t\t\tasymmetric: \"\",\n\t\t\tequal: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"dark\",\n\t\tlayout: \"asymmetric\",\n\t},\n});\n\nexport interface TwoColumnSectionProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof twoColumnSectionVariants> {\n\t/**\n\t * The title text displayed in the left column\n\t */\n\ttitle: string;\n\t/**\n\t * Lead content - prominently styled (brighter text)\n\t * Can be a string or ReactNode for rich content\n\t */\n\tlead?: React.ReactNode;\n\t/**\n\t * Body content - secondary styled (muted text)\n\t * Can be a string or ReactNode for rich content\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * Layout style for the columns\n\t * - \"asymmetric\" (default): Uses 24-column grid with ~40/60 split (title: 9, content: 15)\n\t * - \"equal\": Simple 2-column equal-width layout at md+ breakpoints\n\t */\n\tlayout?: \"asymmetric\" | \"equal\";\n}\n\n/**\n * TwoColumnSection component for text-heavy content with title/content split.\n *\n * Layout:\n * - Mobile/Tablet: Stacked (title above content)\n * - Desktop (lg+): Title left (~40%), Content right (~60%)\n *\n * @example\n * ```tsx\n * <TwoColumnSection\n * title=\"US Tech Force\"\n * lead=\"The US Tech Force is recruiting an elite corps of engineers...\"\n * variant=\"dark\"\n * >\n * <p>Through a two-year program, participants will work...</p>\n * <p>Upon completing the program, engineers can seek...</p>\n * </TwoColumnSection>\n * ```\n */\nconst TwoColumnSection = React.forwardRef<HTMLElement, TwoColumnSectionProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcolorScheme = \"dark\",\n\t\t\tlayout,\n\t\t\ttitle,\n\t\t\tlead,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={twoColumnSectionVariants({\n\t\t\t\t\tcolorScheme,\n\t\t\t\t\tlayout,\n\t\t\t\t\tclass: className,\n\t\t\t\t})}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Inner container with border-top - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"border-t pt-36\",\n\t\t\t\t\t\tcolorScheme === \"dark\" ? \"border-gray-700\" : \"border-gray-300\",\n\t\t\t\t\t\t// Grid layout - uses primitive spacing tokens\n\t\t\t\t\t\t\"grid grid-cols-1 gap-56\",\n\t\t\t\t\t\tlayout === \"equal\" ? \"md:grid-cols-2\" : \"lg:grid-cols-24 lg:gap-56\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{/* Title column */}\n\t\t\t\t\t<h2\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"typography-subheading-medium\",\n\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t// Column span based on layout\n\t\t\t\t\t\t\tlayout !== \"equal\" && \"lg:col-span-9\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h2>\n\n\t\t\t\t\t{/* Content column - uses primitive spacing tokens */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex flex-col gap-56\",\n\t\t\t\t\t\t\tlayout !== \"equal\" && \"lg:col-span-15\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Lead content - brighter/prominent */}\n\t\t\t\t\t\t{lead && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"typography-body-large\",\n\t\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{typeof lead === \"string\" ? <p>{lead}</p> : lead}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Body content - muted */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"typography-body-medium flex flex-col gap-[1em]\",\n\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-400\" : \"text-gray-600\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nTwoColumnSection.displayName = \"TwoColumnSection\";\n\nexport { TwoColumnSection, twoColumnSectionVariants };\n","import * as React from \"react\";\nimport type { VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\nimport { TwoColumnSection } from \"../two-column-section\";\nimport type { twoColumnSectionVariants } from \"../two-column-section/two-column-section\";\n\nexport interface FaqSectionProps\n\textends Omit<React.HTMLAttributes<HTMLElement>, \"title\">,\n\t\tVariantProps<typeof twoColumnSectionVariants> {\n\t/**\n\t * The title text displayed in the left column\n\t * @default \"Frequently Asked Questions\"\n\t */\n\ttitle?: string;\n\t/**\n\t * The FAQ content - typically an Accordion with AccordionItems\n\t */\n\tchildren: React.ReactNode;\n}\n\n/**\n * FaqSection component for displaying FAQ content in a two-column layout.\n *\n * Wraps TwoColumnSection with FAQ-specific defaults and typography.\n *\n * Layout:\n * - Mobile/Tablet: Stacked (title above content)\n * - Desktop (lg+): Title left (~40%), FAQ content right (~60%)\n *\n * @example\n * ```tsx\n * <FaqSection>\n * <Accordion defaultExpanded=\"faq-1\">\n * <AccordionItem id=\"faq-1\" title=\"What is the US Tech Force?\">\n * Tech Force will be an elite group of technology specialists...\n * </AccordionItem>\n * <AccordionItem id=\"faq-2\" title=\"What skills are required?\">\n * We're looking for expertise in software engineering...\n * </AccordionItem>\n * </Accordion>\n * </FaqSection>\n *\n * // With custom title\n * <FaqSection title=\"Common Questions\" colorScheme=\"light\">\n * ...\n * </FaqSection>\n * ```\n */\nconst FaqSection = React.forwardRef<HTMLElement, FaqSectionProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcolorScheme = \"light\",\n\t\t\ttitle = \"Frequently Asked Questions\",\n\t\t\tchildren,\n\t\t\tlayout,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t<TwoColumnSection\n\t\t\t\tref={ref}\n\t\t\t\tcolorScheme={colorScheme}\n\t\t\t\tlayout={layout ?? undefined}\n\t\t\t\ttitle={title}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// Override title typography to be larger\n\t\t\t\t\t\"[&_h2]:typography-h4\",\n\t\t\t\t\t// Accordion typography overrides\n\t\t\t\t\t\"[&_button]:typography-body-large [&_button]:md:typography-h5\",\n\t\t\t\t\t\"[&_[data-accordion-panel]]:typography-body-medium [&_[data-accordion-panel]]:md:typography-body-large\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</TwoColumnSection>\n\t\t);\n\t},\n);\nFaqSection.displayName = \"FaqSection\";\n\nexport { FaqSection };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { BackgroundOverlay } from \"@/components/atoms/background\";\nimport { type ComponentTheme, themeToStyleVars } from \"@/lib/theme\";\n\n// Re-export Background components for convenience as HeroBackground\nexport {\n\tBackground as HeroBackground,\n\tBackgroundGradient as HeroGradient,\n\ttype BackgroundGradientProps as HeroGradientProps,\n\tBackgroundImage as HeroBackgroundImage,\n\ttype BackgroundImageProps as HeroBackgroundImageProps,\n\tBackgroundOverlay as HeroOverlay,\n\ttype BackgroundOverlayProps as HeroOverlayProps,\n\tBackgroundStream as HeroBackgroundStream,\n\ttype BackgroundStreamProps as HeroBackgroundStreamProps,\n\tBackgroundVideo as HeroBackgroundVideo,\n\ttype BackgroundVideoProps as HeroBackgroundVideoProps,\n} from \"@/components/atoms/background\";\n\nconst DEFAULT_TITLE_TYPOGRAPHY = \"typography-h1-display\";\n\nconst heroVariants = tv({\n\tslots: {\n\t\troot: \"relative flex w-full flex-col overflow-hidden\",\n\t\ttop: \"relative z-10 w-full\",\n\t\tcontent: [\n\t\t\t\"relative z-10 mx-auto flex w-full max-w-screen-xl flex-1 flex-col\",\n\t\t\t\"p-20\",\n\t\t\t\"md:p-56\",\n\t\t],\n\t\ttitle: DEFAULT_TITLE_TYPOGRAPHY,\n\t},\n\tvariants: {\n\t\tvariant: {\n\t\t\tA1: {\n\t\t\t\troot: \"min-h-[80vh]\",\n\t\t\t\tcontent: [\"justify-end\", \"lg:p-72\"],\n\t\t\t},\n\t\t\tA2: {\n\t\t\t\troot: \"min-h-[80vh]\",\n\t\t\t\tcontent: [\"justify-start\", \"lg:p-64\"],\n\t\t\t},\n\t\t\tA3: {\n\t\t\t\troot: \"min-h-[80vh]\",\n\t\t\t\tcontent: [\"items-center justify-center\", \"lg:p-64\"],\n\t\t\t},\n\t\t},\n\t\tcolorScheme: {\n\t\t\tdark: {\n\t\t\t\troot: \"bg-bg-page\",\n\t\t\t\ttitle: \"text-text-primary\",\n\t\t\t},\n\t\t\tlight: {\n\t\t\t\troot: \"bg-gray-900\",\n\t\t\t\ttitle: \"text-text-inverted\",\n\t\t\t},\n\t\t},\n\t\thasBackground: {\n\t\t\ttrue: {\n\t\t\t\troot: \"bg-transparent\",\n\t\t\t},\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"A1\",\n\t\tcolorScheme: \"dark\",\n\t},\n});\n\n// =============================================================================\n// Standalone variants for sub-components (for external use)\n// =============================================================================\n\nconst heroHeaderVariants = tv({\n\tbase: \"relative z-10 w-full\",\n});\n\nconst heroContentVariants = tv({\n\tbase: [\n\t\t\"relative z-10 mx-auto flex w-full max-w-screen-xl flex-1 flex-col\",\n\t\t\"p-20\",\n\t\t\"md:p-56\",\n\t\t\"lg:p-72\",\n\t],\n});\n\nexport interface HeroHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Header slot for Hero - used for navigation, gov banners, etc.\n * Full-width with no padding, sits at the top of the hero.\n */\nconst HeroHeader = React.forwardRef<HTMLDivElement, HeroHeaderProps>(\n\t({ className, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={heroHeaderVariants({ class: className })}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nHeroHeader.displayName = \"Hero.Header\";\n\nexport interface HeroContentProps\n\textends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Content container for Hero - use for main content.\n * Has padding and sits above backgrounds with z-10.\n */\nconst HeroContent = React.forwardRef<HTMLDivElement, HeroContentProps>(\n\t({ className, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={heroContentVariants({ class: className })}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nHeroContent.displayName = \"Hero.Content\";\n\n// =============================================================================\n// Hero Component\n// =============================================================================\n\nexport interface HeroProps\n\textends Omit<React.HTMLAttributes<HTMLElement>, \"title\">,\n\t\tVariantProps<typeof heroVariants> {\n\t/**\n\t * The title text displayed in the hero.\n\t * If provided, renders an h1 with default typography.\n\t * Omit to use children for custom content composition.\n\t */\n\ttitle?: string;\n\t/**\n\t * Custom typography class for the title using primitive tokens.\n\t * Default: \"typography-h1-display\"\n\t */\n\ttitleClassName?: string;\n\t/**\n\t * Color scheme for text content.\n\t * - dark: Dark text for use on light backgrounds (default)\n\t * - light: Light text for use on dark backgrounds\n\t */\n\tcolorScheme?: \"dark\" | \"light\";\n\t/**\n\t * Content for the top slot (full-width, no padding).\n\t * Use for USGovBanner, Navigation, etc.\n\t */\n\ttop?: React.ReactNode;\n\t/**\n\t * Background for the hero. Can be:\n\t * - A color string (hex, rgb, etc.) for solid backgrounds\n\t * - A ReactNode (use HeroBackground.Image, HeroBackground.Video, or HeroBackground.Stream)\n\t */\n\tbackground?: React.ReactNode | string;\n\t/**\n\t * Opacity of the overlay (0-1, default: 0)\n\t * Only applies when using a background slot\n\t */\n\toverlayOpacity?: number;\n\t/**\n\t * Color of the overlay (default: \"black\")\n\t */\n\toverlayColor?: string;\n\t/**\n\t * Border radius for the hero container\n\t * Useful for designs with rounded bottom corners\n\t */\n\tborderRadius?: string;\n\t/**\n\t * Theme overrides for component styling via CSS custom properties\n\t */\n\ttheme?: ComponentTheme;\n}\n\n/**\n * Checks if the background prop is a color string\n */\nfunction isColorString(\n\tbackground: React.ReactNode | string | undefined,\n): background is string {\n\treturn (\n\t\ttypeof background === \"string\" &&\n\t\t(background.startsWith(\"#\") ||\n\t\t\tbackground.startsWith(\"rgb\") ||\n\t\t\tbackground.startsWith(\"hsl\") ||\n\t\t\t/^(var\\(|[a-z]+$)/i.test(background))\n\t);\n}\n\n/**\n * Hero component for page headers with large display typography.\n *\n * Slots:\n * - `top`: Full-width slot at top for USGovBanner, Navigation (no padding)\n * - `children`: Main content slot with padding and alignment\n *\n * The `title` prop is a convenience for simple heroes - it renders an h1 with\n * responsive typography. Children are always rendered, so you can use both\n * or just children for full control.\n *\n * Variants:\n * - A1: Content at bottom (default)\n * - A2: Content at top\n * - A3: Content centered\n *\n * @example\n * ```tsx\n * // Simple - just title and background\n * <Hero title=\"Welcome\" background=\"#1a1a1a\" />\n *\n * // With top slot for banner/nav\n * <Hero\n * variant=\"A1\"\n * background={<HeroBackground.Image src=\"/hero.jpg\" />}\n * top={\n * <>\n * <USGovBanner variant=\"inverted\" />\n * <Navigation />\n * </>\n * }\n * >\n * <h1>Board of Peace</h1>\n * <p>Subtitle goes here</p>\n * </Hero>\n * ```\n */\nconst Hero = React.forwardRef<HTMLElement, HeroProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t\ttitle,\n\t\t\ttitleClassName,\n\t\t\tcolorScheme = \"dark\",\n\t\t\ttop,\n\t\t\tvariant,\n\t\t\tbackground,\n\t\t\toverlayOpacity = 0,\n\t\t\toverlayColor = \"black\",\n\t\t\tborderRadius,\n\t\t\ttheme,\n\t\t\tstyle,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst isColor = isColorString(background);\n\t\tconst hasMediaBackground = background && !isColor;\n\t\tconst styles = heroVariants({\n\t\t\tvariant,\n\t\t\tcolorScheme,\n\t\t\thasBackground: !!background,\n\t\t});\n\t\tconst themeStyles = themeToStyleVars(theme);\n\t\tconst combinedStyles = {\n\t\t\t...themeStyles,\n\t\t\t...(isColor ? { backgroundColor: background } : {}),\n\t\t\t...(borderRadius ? { borderRadius } : {}),\n\t\t\t...style,\n\t\t};\n\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles.root({ class: className })}\n\t\t\t\tstyle={\n\t\t\t\t\tObject.keys(combinedStyles).length > 0 ? combinedStyles : undefined\n\t\t\t\t}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{hasMediaBackground && background}\n\n\t\t\t\t{hasMediaBackground && overlayOpacity > 0 && (\n\t\t\t\t\t<BackgroundOverlay\n\t\t\t\t\t\topacity={overlayOpacity}\n\t\t\t\t\t\tclassName={overlayColor !== \"black\" ? undefined : \"bg-black\"}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\toverlayColor !== \"black\"\n\t\t\t\t\t\t\t\t? { backgroundColor: overlayColor }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{top && <div className={styles.top()}>{top}</div>}\n\n\t\t\t\t<div className={styles.content()}>\n\t\t\t\t\t{title && (\n\t\t\t\t\t\t<h1 className={styles.title({ class: titleClassName })}>{title}</h1>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Children - always render if provided */}\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n) as React.ForwardRefExoticComponent<\n\tHeroProps & React.RefAttributes<HTMLElement>\n> & {\n\tHeader: typeof HeroHeader;\n\tContent: typeof HeroContent;\n};\nHero.displayName = \"Hero\";\n\n// Attach sub-components\nHero.Header = HeroHeader;\nHero.Content = HeroContent;\n\nexport {\n\tHero,\n\theroVariants,\n\theroContentVariants,\n\theroHeaderVariants,\n\tDEFAULT_TITLE_TYPOGRAPHY,\n\tHeroHeader,\n\tHeroContent,\n};\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProseProps extends React.HTMLAttributes<HTMLDivElement> {\n\tchildren: React.ReactNode;\n}\n\n/**\n * Prose container for long-form content with proper typography and spacing.\n *\n * Provides responsive spacing between content blocks:\n * - Desktop (1440px+): 96px gap\n * - Tablet (768px+): 72px gap\n * - Mobile: 56px gap\n *\n * Use with ProseSection components for proper content structure.\n */\nconst Prose = React.forwardRef<HTMLDivElement, ProseProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex w-full max-w-[700px] flex-col overflow-hidden\",\n\t\t\t\t\t// Responsive gap between sections\n\t\t\t\t\t\"gap-56 md:gap-72 xl:gap-96\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\nProse.displayName = \"Prose\";\n\nexport interface ProseSectionProps extends React.HTMLAttributes<HTMLElement> {\n\t/**\n\t * The heading text for this section\n\t */\n\theading: string;\n\t/**\n\t * The heading level to render (h2 or h3)\n\t * @default \"h2\"\n\t */\n\tas?: \"h2\" | \"h3\";\n\tchildren: React.ReactNode;\n}\n\n/**\n * A section within Prose content, containing a heading and body text.\n *\n * Responsive typography:\n * - h2: Uses typography-h3\n * - h3: Uses typography-h4\n * - Body: Uses typography-body-medium\n */\nconst ProseSection = React.forwardRef<HTMLElement, ProseSectionProps>(\n\t({ className, heading, as = \"h2\", children, ...props }, ref) => {\n\t\tconst Heading = as;\n\t\tconst headingClass = as === \"h2\" ? \"typography-h3\" : \"typography-h4\";\n\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex w-full flex-col\",\n\t\t\t\t\t// Responsive gap between heading and body\n\t\t\t\t\t\"gap-24 md:gap-40\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<Heading className={cn(headingClass, \"text-gray-900\")}>\n\t\t\t\t\t{heading}\n\t\t\t\t</Heading>\n\t\t\t\t<div className=\"typography-body-medium flex flex-col gap-[1em] text-gray-800 break-words\">\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nProseSection.displayName = \"ProseSection\";\n\nexport { Prose, ProseSection };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { BackgroundOverlay } from \"@/components/atoms/background\";\n\n// =============================================================================\n// QuoteBlock Variants\n// =============================================================================\n\nconst quoteBlockVariants = tv({\n\tslots: {\n\t\troot: \"relative flex min-h-[500px] w-full flex-col overflow-hidden rounded-radius-8\",\n\t\tcontent: [\n\t\t\t\"relative z-10 flex max-w-[1440px] flex-1 flex-col items-start justify-end\",\n\t\t\t\"p-40\",\n\t\t\t\"md:p-80\",\n\t\t\t\"lg:p-112\",\n\t\t],\n\t\tquoteWrapper: \"relative flex flex-col gap-40 md:gap-48\",\n\t\tquote: [\n\t\t\t\"relative text-text-inverted\",\n\t\t\t\"typography-small-headline-small\",\n\t\t\t\"md:typography-medium-headline-small\",\n\t\t\t\"lg:typography-large-headline-small\",\n\t\t\t\"font-serif md:font-serif lg:font-serif\",\n\t\t],\n\t\topenQuote: [\n\t\t\t\"absolute text-text-inverted\",\n\t\t\t\"typography-small-headline-small\",\n\t\t\t\"md:typography-medium-headline-small\",\n\t\t\t\"lg:typography-large-headline-small\",\n\t\t\t\"font-serif md:font-serif lg:font-serif\",\n\t\t\t\"-left-[0.5em] -top-[0.1em]\",\n\t\t],\n\t\tattribution: \"flex flex-col items-start gap-4\",\n\t\tsignature: \"h-auto w-[120px] md:w-[153px]\",\n\t\tbyline: \"flex flex-col text-text-inverted\",\n\t\tbylineName: \"typography-body-medium text-text-inverted\",\n\t\tbylineTitle: \"typography-body-medium text-text-inverted opacity-80\",\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tdefault: {\n\t\t\t\troot: \"\",\n\t\t\t},\n\t\t\tcompact: {\n\t\t\t\troot: \"min-h-[400px] lg:min-h-[600px]\",\n\t\t\t},\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"default\",\n\t},\n});\n\n// =============================================================================\n// QuoteBlock Component\n// =============================================================================\n\nexport interface QuoteBlockProps\n\textends Omit<React.HTMLAttributes<HTMLElement>, \"children\">,\n\t\tVariantProps<typeof quoteBlockVariants> {\n\t/**\n\t * The quote text to display\n\t */\n\tquote: string;\n\t/**\n\t * Whether to show decorative quote marks\n\t * @default true\n\t */\n\tshowQuoteMarks?: boolean;\n\t/**\n\t * Signature image URL (optional)\n\t */\n\tsignatureImage?: string;\n\t/**\n\t * Alt text for signature image\n\t */\n\tsignatureAlt?: string;\n\t/**\n\t * Attribution name (e.g., \"Donald J. Trump\")\n\t */\n\tattributionName?: string;\n\t/**\n\t * Attribution title (e.g., \"45 & 47 President of the United States\")\n\t */\n\tattributionTitle?: string;\n\t/**\n\t * Background element - use BackgroundImage or similar\n\t */\n\tbackground?: React.ReactNode;\n\t/**\n\t * Overlay opacity (0-1)\n\t */\n\toverlayOpacity?: number;\n\t/**\n\t * Overlay color\n\t */\n\toverlayColor?: string;\n\t/**\n\t * Custom class for the quote text\n\t */\n\tquoteClassName?: string;\n\t/**\n\t * Custom class for the byline name\n\t */\n\tbylineNameClassName?: string;\n\t/**\n\t * Custom class for the byline title\n\t */\n\tbylineTitleClassName?: string;\n}\n\nconst QuoteBlock = React.forwardRef<HTMLElement, QuoteBlockProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tquote,\n\t\t\tshowQuoteMarks = true,\n\t\t\tsignatureImage,\n\t\t\tsignatureAlt = \"Signature\",\n\t\t\tattributionName,\n\t\t\tattributionTitle,\n\t\t\tbackground,\n\t\t\toverlayOpacity = 0,\n\t\t\toverlayColor = \"black\",\n\t\t\tquoteClassName,\n\t\t\tbylineNameClassName,\n\t\t\tbylineTitleClassName,\n\t\t\tsize,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst styles = quoteBlockVariants({ size });\n\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles.root({ class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Background */}\n\t\t\t\t{background}\n\n\t\t\t\t{/* Overlay */}\n\t\t\t\t{overlayOpacity > 0 && (\n\t\t\t\t\t<BackgroundOverlay\n\t\t\t\t\t\topacity={overlayOpacity}\n\t\t\t\t\t\tclassName={overlayColor !== \"black\" ? undefined : \"bg-black\"}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\toverlayColor !== \"black\"\n\t\t\t\t\t\t\t\t? { backgroundColor: overlayColor }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{/* Content */}\n\t\t\t\t<div className={styles.content()}>\n\t\t\t\t\t<div className={styles.quoteWrapper()}>\n\t\t\t\t\t\t{/* Quote */}\n\t\t\t\t\t\t<blockquote className={styles.quote({ class: quoteClassName })}>\n\t\t\t\t\t\t\t{showQuoteMarks && (\n\t\t\t\t\t\t\t\t<span className={styles.openQuote()} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<span className=\"relative\">\n\t\t\t\t\t\t\t\t{showQuoteMarks ? `${quote}\"` : quote}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</blockquote>\n\n\t\t\t\t\t\t{/* Attribution */}\n\t\t\t\t\t\t{(signatureImage || attributionName || attributionTitle) && (\n\t\t\t\t\t\t\t<div className={styles.attribution()}>\n\t\t\t\t\t\t\t\t{signatureImage && (\n\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\tsrc={signatureImage}\n\t\t\t\t\t\t\t\t\t\talt={signatureAlt}\n\t\t\t\t\t\t\t\t\t\tclassName={styles.signature()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{(attributionName || attributionTitle) && (\n\t\t\t\t\t\t\t\t\t<div className={styles.byline()}>\n\t\t\t\t\t\t\t\t\t\t{attributionName && (\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={styles.bylineName({\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass: bylineNameClassName,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{attributionName}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{attributionTitle && (\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={styles.bylineTitle({\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass: bylineTitleClassName,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{attributionTitle}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\n\nQuoteBlock.displayName = \"QuoteBlock\";\n\nexport { QuoteBlock, quoteBlockVariants };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * River component for content sections with text and media\n *\n * Variants:\n * - A: Text on left (9 cols), media on right (15 cols) on desktop\n * - B: Media on left (15 cols), text on right (9 cols) on desktop\n *\n * Uses the 24-column grid system. Must be placed inside a `grid-container`.\n */\nconst riverVariants = tv({\n\t// Base styles - col-full within parent grid, responsive padding using primitive spacing tokens\n\tbase: [\n\t\t\"col-full\",\n\t\t// Small (mobile): 20px x, 72px top, 20px bottom\n\t\t\"px-20 pt-72 pb-20\",\n\t\t// Medium (tablet): 56px x, 96px y\n\t\t\"md:px-56 md:py-96\",\n\t\t// Large (desktop): 72px x, 128px y\n\t\t\"lg:px-72 lg:py-128\",\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tA: \"\",\n\t\t\tB: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"A\",\n\t},\n});\n\nexport interface RiverProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof riverVariants> {\n\t/**\n\t * The headline text\n\t */\n\theadline: string;\n\t/**\n\t * The body text\n\t */\n\tbody: string;\n\t/**\n\t * Primary action button (required)\n\t */\n\tprimaryAction: React.ReactNode;\n\t/**\n\t * Secondary action button (optional)\n\t */\n\tsecondaryAction?: React.ReactNode;\n\t/**\n\t * Media content (image, video, etc.)\n\t */\n\tmedia: React.ReactNode;\n}\n\n/**\n * River component for content sections with text and media.\n *\n * Uses the 24-column grid system - must be placed inside a `grid-container`.\n *\n * Layout:\n * - Mobile/Tablet: Stacked (text above media)\n * - Desktop (lg+):\n * - Variant A: Text (9 cols) | Media (15 cols)\n * - Variant B: Media (15 cols) | Text (9 cols)\n *\n * @example\n * ```tsx\n * <div className=\"grid-container\">\n * <River\n * variant=\"A\"\n * headline=\"Feature Headline\"\n * body=\"Description of the feature...\"\n * primaryAction={<Button>Primary</Button>}\n * secondaryAction={<Button variant=\"outline\">Secondary</Button>}\n * media={<img src=\"...\" alt=\"Feature\" />}\n * />\n * </div>\n * ```\n */\nconst River = React.forwardRef<HTMLElement, RiverProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tvariant,\n\t\t\theadline,\n\t\t\tbody,\n\t\t\tprimaryAction,\n\t\t\tsecondaryAction,\n\t\t\tmedia,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst contentColumn = (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex flex-col\",\n\t\t\t\t\t// Full width on mobile/tablet, 9 cols on desktop\n\t\t\t\t\t\"lg:col-span-9\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Text content with 16px gap - uses primitive spacing tokens */}\n\t\t\t\t<div className=\"flex flex-col gap-16\">\n\t\t\t\t\t<h2 className=\"typography-h4 text-gray-900\">{headline}</h2>\n\t\t\t\t\t<p className=\"typography-body-small text-gray-800\">{body}</p>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Buttons with 36px gap from text, responsive sizes - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\"flex flex-row gap-16 mt-36\", \"[&>*]:flex-shrink-0\")}\n\t\t\t\t>\n\t\t\t\t\t{primaryAction}\n\t\t\t\t\t{secondaryAction}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\n\t\tconst mediaColumn = (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// Full width on mobile/tablet, 15 cols on desktop\n\t\t\t\t\t\"lg:col-span-15\",\n\t\t\t\t\t// Ensure media fills the container\n\t\t\t\t\t\"[&>*]:w-full [&>*]:h-auto\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{media}\n\t\t\t</div>\n\t\t);\n\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={riverVariants({ variant, class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Inner grid container for 24-col layout - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\"grid grid-cols-1 gap-36\", \"lg:grid-cols-24 lg:gap-36\")}\n\t\t\t\t>\n\t\t\t\t\t{variant === \"B\" ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{mediaColumn}\n\t\t\t\t\t\t\t{contentColumn}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{contentColumn}\n\t\t\t\t\t\t\t{mediaColumn}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nRiver.displayName = \"River\";\n\nexport { River, riverVariants };\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { type ComponentTheme, themeToStyleVars } from \"@/lib/theme\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Tout variants for background and content styling\n */\nconst toutVariants = tv({\n\tbase: [\n\t\t// Full width\n\t\t\"w-full\",\n\t\t// Positioning context for background\n\t\t\"relative overflow-hidden\",\n\t\t// Responsive height: 600px mobile, 750px tablet, 900px desktop\n\t\t\"h-[600px] md:h-[750px] lg:h-[900px]\",\n\t],\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tlight: \"\",\n\t\t\tdark: \"\",\n\t\t},\n\t\talign: {\n\t\t\tleft: \"\",\n\t\t\tcenter: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"light\",\n\t\talign: \"left\",\n\t},\n});\n\n/**\n * Tout component based on Figma BaseKit / Touts\n *\n * A full-bleed section with a background image and overlaid content.\n * Content can be positioned on the left side or centered.\n *\n * Color schemes:\n * - light: Light text styling (default)\n * - dark: Dark text styling\n *\n * Alignment:\n * - left: Content aligned to the left (default)\n * - center: Content centered\n *\n * Responsive behavior:\n * - Mobile (sm): 600px height, 4 columns with gap-20, content spans all 4 cols\n * - Tablet (md): 750px height, 12 columns with gap-20, content spans 9 cols (left) or centered\n * - Desktop (lg): 900px height, 24 columns with gap-20, content spans 9 cols (left) or centered\n *\n * This component is self-contained - do NOT wrap in a grid-container.\n */\nexport interface ToutProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof toutVariants> {\n\t/**\n\t * The headline displayed in the tout\n\t */\n\theadline: React.ReactNode;\n\t/**\n\t * The body text displayed below the headline (optional)\n\t */\n\tbody?: string;\n\t/**\n\t * Primary action button (required)\n\t */\n\tprimaryAction: React.ReactNode;\n\t/**\n\t * Secondary action button (optional)\n\t */\n\tsecondaryAction?: React.ReactNode;\n\t/**\n\t * Background media (image or video element)\n\t * Should be a full-bleed element that covers the entire section\n\t */\n\tbackgroundMedia: React.ReactNode;\n\t/**\n\t * Optional footer content to display at the bottom of the section.\n\t * Use with NdstudioFooter component for the branded footer.\n\t */\n\tfooter?: React.ReactNode;\n\t/**\n\t * Component-level theme overrides.\n\t * Allows customization of colors, spacing, and surface properties.\n\t */\n\ttheme?: ComponentTheme;\n}\n\n/**\n * Tout component for hero-like sections with background media and overlaid content.\n *\n * This component is self-contained with its own grid.\n * Grid setup:\n * - Desktop (lg): 24 columns, gap-20, content spans 9 cols\n * - Tablet (md): 12 columns, gap-20, content spans 9 cols\n * - Mobile: 4 columns, gap-20, content spans all 4 cols\n *\n * @example\n * ```tsx\n * <Tout\n * headline=\"Feature Headline\"\n * body=\"Description of the feature...\"\n * primaryAction={<Button>Primary</Button>}\n * secondaryAction={<Button variant=\"outline\" colorScheme=\"light\">Secondary</Button>}\n * backgroundMedia={\n * <img\n * src=\"/background.jpg\"\n * alt=\"\"\n * className=\"absolute inset-0 w-full h-full object-cover\"\n * />\n * }\n * footer={<NdstudioFooter />}\n * />\n * ```\n */\nconst Tout = React.forwardRef<HTMLElement, ToutProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcolorScheme = \"light\",\n\t\t\talign = \"left\",\n\t\t\theadline,\n\t\t\tbody,\n\t\t\tprimaryAction,\n\t\t\tsecondaryAction,\n\t\t\tbackgroundMedia,\n\t\t\tfooter,\n\t\t\ttheme,\n\t\t\tstyle,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst isCentered = align === \"center\";\n\t\tconst isDark = colorScheme === \"dark\";\n\t\tconst themeStyles = themeToStyleVars(theme);\n\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={toutVariants({ colorScheme, align, class: className })}\n\t\t\t\tstyle={{ ...themeStyles, ...style }}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Background layer - full bleed */}\n\t\t\t\t<div\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName=\"absolute inset-0 pointer-events-none\"\n\t\t\t\t>\n\t\t\t\t\t{/* Fallback background color */}\n\t\t\t\t\t<div className=\"absolute inset-0 bg-gray-500\" />\n\t\t\t\t\t{/* Background media */}\n\t\t\t\t\t{backgroundMedia}\n\t\t\t\t</div>\n\n\t\t\t\t{/* Inner grid for content alignment - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t// Position above background\n\t\t\t\t\t\t\"relative z-10\",\n\t\t\t\t\t\t// Grid setup with responsive columns\n\t\t\t\t\t\t\"grid w-full h-full\",\n\t\t\t\t\t\t// Mobile: 4 columns with gap-20\n\t\t\t\t\t\t\"grid-cols-4 gap-20\",\n\t\t\t\t\t\t// Tablet (md): 12 columns\n\t\t\t\t\t\t\"md:grid-cols-12\",\n\t\t\t\t\t\t// Desktop (lg): 24 columns\n\t\t\t\t\t\t\"lg:grid-cols-24\",\n\t\t\t\t\t\t// Max width and centering like grid-container\n\t\t\t\t\t\t\"max-w-[var(--breakpoint-lg)] mx-auto\",\n\t\t\t\t\t\t// Responsive margins matching grid-container - uses primitive spacing tokens\n\t\t\t\t\t\t\"px-20 md:px-56 lg:px-72\",\n\t\t\t\t\t\t// Vertical padding to position content at bottom - uses primitive spacing tokens\n\t\t\t\t\t\t\"py-36 md:py-56 lg:py-72\",\n\t\t\t\t\t)}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t// Grid spacing theme overrides\n\t\t\t\t\t\t...(theme?.spatial?.gridSmallMargin && {\n\t\t\t\t\t\t\tpaddingLeft: \"var(--theme-grid-small-margin)\",\n\t\t\t\t\t\t\tpaddingRight: \"var(--theme-grid-small-margin)\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...(theme?.spatial?.gridSmallGutter && {\n\t\t\t\t\t\t\tgap: \"var(--theme-grid-small-gutter)\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{/* Content column - aligned to grid */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t// Flex container for content\n\t\t\t\t\t\t\t\"flex flex-col\",\n\t\t\t\t\t\t\tisCentered ? \"justify-start items-center\" : \"justify-end\",\n\t\t\t\t\t\t\t// Responsive gap between text and buttons - uses primitive spacing tokens\n\t\t\t\t\t\t\t\"gap-28 md:gap-36\",\n\t\t\t\t\t\t\t// Mobile: all 4 cols\n\t\t\t\t\t\t\t\"col-span-4\",\n\t\t\t\t\t\t\t// Tablet & Desktop: 9 cols left-aligned, full width centered\n\t\t\t\t\t\t\tisCentered ? \"md:col-span-12 lg:col-span-24\" : \"md:col-span-9\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Text content stack - uses primitive spacing tokens */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"flex flex-col gap-16\",\n\t\t\t\t\t\t\t\tisCentered && \"items-center text-center\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"typography-h4\",\n\t\t\t\t\t\t\t\t\tisDark ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: theme?.colors?.textPrimary\n\t\t\t\t\t\t\t\t\t\t? \"var(--theme-text-primary)\"\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{headline}\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t{body && (\n\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\"typography-body-small\",\n\t\t\t\t\t\t\t\t\t\tisDark ? \"text-gray-400\" : \"text-gray-800\",\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: theme?.colors?.textSecondary\n\t\t\t\t\t\t\t\t\t\t\t? \"var(--theme-text-secondary)\"\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{body}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* CTA buttons - uses primitive spacing tokens */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"flex flex-row\",\n\t\t\t\t\t\t\t\tisCentered ? \"justify-center\" : \"items-start\",\n\t\t\t\t\t\t\t\t// Responsive gap between buttons\n\t\t\t\t\t\t\t\t\"gap-8 md:gap-12\",\n\t\t\t\t\t\t\t\t\"[&>*]:flex-shrink-0\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{primaryAction}\n\t\t\t\t\t\t\t{secondaryAction}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Footer slot */}\n\t\t\t\t{footer && (\n\t\t\t\t\t<div className=\"absolute bottom-6 md:bottom-8 left-0 right-0 z-10\">\n\t\t\t\t\t\t{footer}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</section>\n\t\t);\n\t},\n);\nTout.displayName = \"Tout\";\n\nexport { Tout, toutVariants };\n","/**\n * Collection Types\n *\n * Types for representing Figma variable collections in TypeScript.\n * Collections are the organizational units for design tokens in Figma.\n * Aligned with the token-server API schema.\n */\n\nimport type { TokenTypeName } from \"../types\";\n\n/**\n * Token category - determines which axis of theming this collection affects\n */\nexport type TokenCategory = \"color\" | \"spacing\" | \"typography\" | \"brand\";\n\n/**\n * Collection type - whether this is a base collection or extends another\n */\nexport type CollectionType = \"base\" | \"extended\";\n\n/**\n * A reference to another token using the {token-name} syntax\n */\nexport type TokenReference = `{${string}}`;\n\n/**\n * Color value in DTCG format (from Figma)\n */\nexport interface ColorValue {\n\tcolorSpace: \"srgb\" | \"display-p3\" | \"rec2020\";\n\tcomponents: [number, number, number];\n\talpha: number;\n\thex: string;\n}\n\n/**\n * Dimension value in DTCG format\n */\nexport interface DimensionValue {\n\tvalue: number;\n\tunit: \"px\" | \"rem\" | \"em\" | \"%\";\n}\n\n/**\n * Typography composite value\n */\nexport interface TypographyValue {\n\tfontFamily: string | string[];\n\tfontSize: DimensionValue | string;\n\tfontWeight: number | string;\n\tlineHeight: number | string;\n\tletterSpacing?: DimensionValue | string;\n}\n\n/**\n * Resolved token value - can be any of the supported value types\n */\nexport type ResolvedTokenValue =\n\t| string\n\t| number\n\t| boolean\n\t| ColorValue\n\t| DimensionValue\n\t| TypographyValue\n\t| Record<string, unknown>;\n\n/**\n * A token value can either be a resolved value or a reference to another token\n */\nexport interface CollectionTokenValue {\n\t$type: TokenTypeName | string;\n\t$value: ResolvedTokenValue | TokenReference;\n\t$description?: string;\n}\n\n/**\n * Token set within a collection - wrapper around flat tokens\n * Collections store tokens as: { tokens: { \"token-name\": { $type, $value } } }\n */\nexport type TokenSet = Record<string, CollectionTokenValue>;\n\n/**\n * Collection from the token-server API\n * Matches the database schema in apps/token-server/src/db/schema.ts\n */\nexport interface APICollection {\n\tid: string;\n\tname: string;\n\tdescription: string | null;\n\ttype: CollectionType | null;\n\tbaseCollectionId: string | null;\n\tfigmaCollectionId: string | null;\n\tusesBreakpoints: boolean;\n\ttokens: Record<string, TokenSet | CollectionTokenValue>;\n\tpublishedVersionId: string | null;\n\tcreatedBy: string | null;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\n/**\n * Collection definition - internal representation for theme composition\n *\n * A collection can be either:\n * - A \"base\" collection that defines the foundational tokens\n * - An \"extended\" collection that overrides specific tokens from a base\n */\nexport interface CollectionDefinition {\n\t/** Collection ID (UUID from API) */\n\tid: string;\n\t/** Collection name (e.g., \"Color\", \"Color - Dark\", \"Test Theme\") */\n\tname: string;\n\t/** Whether this is a base collection or extends another */\n\ttype: CollectionType;\n\t/** For extended collections, the ID of the base collection this extends */\n\tbaseCollectionId?: string;\n\t/** Optional description */\n\tdescription?: string;\n\t/** The tokens in this collection - can be nested or flat */\n\ttokens: Record<string, TokenSet | CollectionTokenValue>;\n}\n\n/**\n * Collection metadata without tokens - useful for listings and selection UI\n */\nexport interface CollectionMetadata {\n\tid: string;\n\tname: string;\n\ttype: CollectionType;\n\tbaseCollectionId?: string;\n\tdescription?: string;\n}\n\n/**\n * Convert API collection to internal definition\n */\nexport function apiCollectionToDefinition(\n\tapi: APICollection,\n): CollectionDefinition {\n\treturn {\n\t\tid: api.id,\n\t\tname: api.name,\n\t\ttype: api.baseCollectionId ? \"extended\" : (api.type ?? \"base\"),\n\t\tbaseCollectionId: api.baseCollectionId ?? undefined,\n\t\tdescription: api.description ?? undefined,\n\t\ttokens: api.tokens,\n\t};\n}\n\n/**\n * A registry of all available collections, organized by category\n */\nexport interface CollectionRegistry {\n\tcolor: {\n\t\tbase: CollectionDefinition | null;\n\t\textensions: CollectionDefinition[];\n\t};\n\tspacing: {\n\t\tbase: CollectionDefinition | null;\n\t\textensions: CollectionDefinition[];\n\t};\n\ttypography: {\n\t\tbase: CollectionDefinition | null;\n\t\textensions: CollectionDefinition[];\n\t};\n\tbrand: {\n\t\tbase: CollectionDefinition | null;\n\t\textensions: CollectionDefinition[];\n\t};\n}\n\n/**\n * Type guard to check if a value is a token reference\n */\nexport function isTokenReference(value: unknown): value is TokenReference {\n\treturn (\n\t\ttypeof value === \"string\" && value.startsWith(\"{\") && value.endsWith(\"}\")\n\t);\n}\n\n/**\n * Extract the token name from a reference\n */\nexport function parseTokenReference(ref: TokenReference): string {\n\treturn ref.slice(1, -1);\n}\n\n/**\n * Create a token reference from a token name\n */\nexport function createTokenReference(tokenName: string): TokenReference {\n\treturn `{${tokenName}}` as TokenReference;\n}\n\n/**\n * Type guard to check if a value is a color value object\n */\nexport function isColorValue(value: unknown): value is ColorValue {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\treturn (\n\t\t\"colorSpace\" in obj &&\n\t\t\"components\" in obj &&\n\t\tArray.isArray(obj.components) &&\n\t\tobj.components.length === 3\n\t);\n}\n\n/**\n * Type guard to check if a value is a dimension value object\n */\nexport function isDimensionValue(value: unknown): value is DimensionValue {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\treturn \"value\" in obj && \"unit\" in obj && typeof obj.value === \"number\";\n}\n","import type { JSONTokenTree } from \"@nds-design-system/design-tokens-format\";\n\n/**\n * Deep merge multiple token trees into a single tree\n */\nexport function mergeTokenTrees(...trees: JSONTokenTree[]): JSONTokenTree {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (const tree of trees) {\n\t\tdeepMerge(result, tree as Record<string, unknown>);\n\t}\n\n\treturn result as JSONTokenTree;\n}\n\n/**\n * Deep merge two objects, with source overwriting target\n */\nfunction deepMerge(\n\ttarget: Record<string, unknown>,\n\tsource: Record<string, unknown>,\n): void {\n\tfor (const [key, value] of Object.entries(source)) {\n\t\tif (key in target) {\n\t\t\tconst targetValue = target[key];\n\n\t\t\t// If both are objects (and not null), merge recursively\n\t\t\tif (isPlainObject(targetValue) && isPlainObject(value)) {\n\t\t\t\tdeepMerge(\n\t\t\t\t\ttargetValue as Record<string, unknown>,\n\t\t\t\t\tvalue as Record<string, unknown>,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// Otherwise, source overwrites target\n\t\t\t\ttarget[key] = value;\n\t\t\t}\n\t\t} else {\n\t\t\t// Key doesn't exist in target, add it\n\t\t\ttarget[key] = value;\n\t\t}\n\t}\n}\n\n/**\n * Check if value is a plain object (not array, null, etc.)\n */\nfunction isPlainObject(value: unknown): boolean {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\t!Array.isArray(value) &&\n\t\tObject.prototype.toString.call(value) === \"[object Object]\"\n\t);\n}\n\n/**\n * Flatten a nested token tree into a flat map of paths to tokens\n */\nexport function flattenTokenTree(\n\ttree: JSONTokenTree,\n\tprefix: string[] = [],\n): Map<string, unknown> {\n\tconst result = new Map<string, unknown>();\n\n\tfunction traverse(obj: unknown, path: string[]): void {\n\t\tif (typeof obj !== \"object\" || obj === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst record = obj as Record<string, unknown>;\n\n\t\t// Check if this is a token (has $value)\n\t\tif (\"$value\" in record) {\n\t\t\tresult.set(path.join(\".\"), obj);\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, traverse children\n\t\tfor (const [key, value] of Object.entries(record)) {\n\t\t\tif (!key.startsWith(\"$\")) {\n\t\t\t\ttraverse(value, [...path, key]);\n\t\t\t}\n\t\t}\n\t}\n\n\ttraverse(tree, prefix);\n\treturn result;\n}\n\n/**\n * Sort token tree keys alphabetically for consistent output\n */\nexport function sortTokenTree(tree: JSONTokenTree): JSONTokenTree {\n\tfunction sortObject(obj: unknown): unknown {\n\t\tif (typeof obj !== \"object\" || obj === null) {\n\t\t\treturn obj;\n\t\t}\n\n\t\tif (Array.isArray(obj)) {\n\t\t\treturn obj.map(sortObject);\n\t\t}\n\n\t\tconst record = obj as Record<string, unknown>;\n\t\tconst sorted: Record<string, unknown> = {};\n\n\t\t// Sort keys, but keep $ prefixed keys first\n\t\tconst keys = Object.keys(record).sort((a, b) => {\n\t\t\tconst aHasPrefix = a.startsWith(\"$\");\n\t\t\tconst bHasPrefix = b.startsWith(\"$\");\n\n\t\t\tif (aHasPrefix && !bHasPrefix) return -1;\n\t\t\tif (!aHasPrefix && bHasPrefix) return 1;\n\n\t\t\treturn a.localeCompare(b);\n\t\t});\n\n\t\tfor (const key of keys) {\n\t\t\tsorted[key] = sortObject(record[key]);\n\t\t}\n\n\t\treturn sorted;\n\t}\n\n\treturn sortObject(tree) as JSONTokenTree;\n}\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Base Semantic Color Tokens\n *\n * Matches Figma \"Color\" collection - Default mode.\n * Theme variants (dark, civic, institution, etc.) extend these with partial overrides.\n */\nexport const baseColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tcollectionName: \"Color\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t// Background tokens (color-bg-*)\n\t\t\tbg: {\n\t\t\t\tpage: { $type: \"color\", $value: \"{primitive.color.gray.50}\" },\n\t\t\t\tsection: { $type: \"color\", $value: \"{primitive.color.gray.100}\" },\n\t\t\t\t\"section-secondary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.200}\",\n\t\t\t\t},\n\t\t\t\t\"section-tertiary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t\tmuted: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t},\n\t\t\t// Card token (color-card-*)\n\t\t\tcard: {\n\t\t\t\tbackground: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t},\n\t\t\t// Text tokens (color-text-*)\n\t\t\ttext: {\n\t\t\t\tprimary: { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\tsecondary: { $type: \"color\", $value: \"{primitive.color.gray.800}\" },\n\t\t\t\tmuted: { $type: \"color\", $value: \"{primitive.color.gray.600}\" },\n\t\t\t\tinverted: { $type: \"color\", $value: \"{primitive.color.gray.100}\" },\n\t\t\t\tlink: { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\t\"link-hover\": { $type: \"color\", $value: \"{primitive.color.gray.700}\" },\n\t\t\t},\n\t\t\t// Accent tokens (color-accent-*)\n\t\t\taccent: {\n\t\t\t\tbrand: { $type: \"color\", $value: \"{primitive.color.indigo.v400}\" },\n\t\t\t\t\"brand-soft\": { $type: \"color\", $value: \"{primitive.color.ember.100}\" },\n\t\t\t},\n\t\t\t// Border tokens (color-border-*)\n\t\t\tborder: {\n\t\t\t\tsubtle: { $type: \"color\", $value: \"{primitive.color.alpha-black.10}\" },\n\t\t\t\tstrong: { $type: \"color\", $value: \"{primitive.color.alpha-black.20}\" },\n\t\t\t\tfocus: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.40}\",\n\t\t\t\t},\n\t\t\t\tdivider: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t// Button tokens (color-button-*)\n\t\t\t// Matches Figma Button component variants\n\t\t\tbutton: {\n\t\t\t\t// Primary button (blue filled) - Figma: #4186de\n\t\t\t\tprimary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.blue.500}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.blue.600}\" },\n\t\t\t\t\t\"bg-active\": { $type: \"color\", $value: \"{primitive.color.blue.700}\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t},\n\t\t\t\t// Default button (dark filled) - Figma: #141414\n\t\t\t\tdefault: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.gray.1200}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\t\t\"bg-active\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t\t},\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.50}\" },\n\t\t\t\t},\n\t\t\t\t// Secondary button (light gray filled) - Figma: #f5f5f5\n\t\t\t\tsecondary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.gray.100}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\t\"bg-active\": { $type: \"color\", $value: \"{primitive.color.gray.300}\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.1200}\" },\n\t\t\t\t\tborder: {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Destructive button (red filled) - Figma: #e53935\n\t\t\t\tdestructive: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.red.500}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.red.600}\" },\n\t\t\t\t\t\"bg-active\": { $type: \"color\", $value: \"{primitive.color.red.700}\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t},\n\t\t\t\t// Outline button (bordered, transparent)\n\t\t\t\toutline: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"transparent\" },\n\t\t\t\t\t\"bg-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-black.5}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"bg-active\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t\t},\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.1200}\" },\n\t\t\t\t\tborder: { $type: \"color\", $value: \"{primitive.color.gray.300}\" },\n\t\t\t\t\t\"border-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.gray.400}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Ghost button (transparent, subtle hover)\n\t\t\t\tghost: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"transparent\" },\n\t\t\t\t\t\"bg-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-black.5}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"bg-active\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t\t},\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.1200}\" },\n\t\t\t\t},\n\t\t\t\t// Link button (text only, underline on hover)\n\t\t\t\tlink: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"transparent\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"transparent\" },\n\t\t\t\t\t\"bg-active\": { $type: \"color\", $value: \"transparent\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.1200}\" },\n\t\t\t\t\t\"text-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.gray.700}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t// Tooltip tokens (color-tooltip-*)\n\t\t\t// Inverted color scheme for tooltip overlays\n\t\t\ttooltip: {\n\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.gray.1000}\" },\n\t\t\t\ttext: { $type: \"color\", $value: \"{semantic.color.text.inverted}\" },\n\t\t\t},\n\t\t\t// Overlay tokens (color-overlay-*)\n\t\t\t// Shared by popover, modal, dropdown, menu (light background, spacious)\n\t\t\toverlay: {\n\t\t\t\tbackground: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.card.background}\",\n\t\t\t\t\t$description: \"Overlay background color (light)\",\n\t\t\t\t},\n\t\t\t\tborder: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.border.subtle}\",\n\t\t\t\t\t$description: \"Overlay border color\",\n\t\t\t\t},\n\t\t\t\ttext: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.text.primary}\",\n\t\t\t\t\t$description: \"Overlay primary text color\",\n\t\t\t\t},\n\t\t\t\t\"text-muted\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.text.muted}\",\n\t\t\t\t\t$description: \"Overlay muted text color\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t// UI tokens (color-ui-*)\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.v400}\",\n\t\t\t\t},\n\t\t\t\t\"control-background\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.100}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-disabled\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.200}\",\n\t\t\t\t},\n\t\t\t\t\"color-focus\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\t\"color-border\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\t\"color-border-active\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.1000}\",\n\t\t\t\t},\n\t\t\t\t\"error-color\": { $type: \"color\", $value: \"{primitive.color.red.300}\" },\n\t\t\t\t\"accent-base\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.v300}\",\n\t\t\t\t},\n\t\t\t\t\"accent-base-2\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.v200}\",\n\t\t\t\t},\n\t\t\t\t\"accent-base-3\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.v300}\",\n\t\t\t\t},\n\t\t\t\t// Menu/dropdown item tokens\n\t\t\t\t\"menu-item-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"menu-item-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.25}\",\n\t\t\t\t},\n\t\t\t\t\"menu-item-bg-selected\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.35}\",\n\t\t\t\t},\n\t\t\t\t\"menu-item-text\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t\t\"menu-item-text-selected\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.v250}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { WithAliasValue } from \"./Alias\";\nimport type { TokenSignature } from \"./TokenSignature\";\n\n// Type declaration following the https://tr.designtokens.org/format specification\n\n// 8.1 Color, following the https://tr.designtokens.org/color specification\nconst colorTypeName = \"color\";\nexport const colorSpaceValues = [\n\t\"srgb\",\n\t\"srgb-linear\",\n\t\"hsl\",\n\t\"hwb\",\n\t\"lab\",\n\t\"lch\",\n\t\"oklab\",\n\t\"oklch\",\n\t\"display-p3\",\n\t\"a98-rgb\",\n\t\"prophoto-rgb\",\n\t\"rec2020\",\n\t\"xyz-d65\",\n\t\"xyz-d50\",\n] as const;\nexport namespace Color {\n\texport type TypeName = typeof colorTypeName;\n\n\texport type RawValue = {\n\t\tcolorSpace: (typeof colorSpaceValues)[number];\n\t\tcomponents: [number | \"none\", number | \"none\", number | \"none\"];\n\t\talpha?: number;\n\t\thex?: `#${string}`;\n\t};\n\texport type Value = WithAliasValue<Color.RawValue>;\n\texport type Token = TokenSignature<Color.TypeName, Color.Value>;\n}\n\n// 8.2 Dimension\nconst dimensionTypeName = \"dimension\";\nexport namespace Dimension {\n\texport type TypeName = typeof dimensionTypeName;\n\texport type RawValue = { value: number; unit: \"px\" | \"rem\" };\n\texport type Value = WithAliasValue<Dimension.RawValue>;\n\texport type Token = TokenSignature<Dimension.TypeName, Dimension.Value>;\n}\n\n// 8.3 Font Family\nconst fontFamilyTypeName = \"fontFamily\";\nexport namespace FontFamily {\n\texport type TypeName = typeof fontFamilyTypeName;\n\texport type RawValue = string | Array<string>;\n\texport type Value = WithAliasValue<FontFamily.RawValue>;\n\texport type Token = TokenSignature<FontFamily.TypeName, FontFamily.Value>;\n}\n\n// 8.4 Font Weight\nconst fontWeightTypeName = \"fontWeight\";\nexport const fontWeightValues = [\n\t\"thin\",\n\t\"hairline\",\n\t\"extra-light\",\n\t\"ultra-light\",\n\t\"light\",\n\t\"normal\",\n\t\"regular\",\n\t\"book\",\n\t\"medium\",\n\t\"semi-bold\",\n\t\"demi-bold\",\n\t\"bold\",\n\t\"extra-bold\",\n\t\"ultra-bold\",\n\t\"black\",\n\t\"heavy\",\n\t\"extra-black\",\n\t\"ultra-black\",\n] as const;\nexport namespace FontWeight {\n\texport type TypeName = typeof fontWeightTypeName;\n\texport type RawValue = (typeof fontWeightValues)[number] | number;\n\texport type Value = WithAliasValue<FontWeight.RawValue>;\n\texport type Token = TokenSignature<FontWeight.TypeName, FontWeight.Value>;\n}\n\n// 8.5 Duration\nconst durationTypeName = \"duration\";\nexport namespace Duration {\n\texport type TypeName = typeof durationTypeName;\n\texport type RawValue = { value: number; unit: \"ms\" | \"s\" };\n\texport type Value = WithAliasValue<Duration.RawValue>;\n\texport type Token = TokenSignature<Duration.TypeName, Duration.Value>;\n}\n\n// 8.6 Cubic Bezier\nconst cubicBezierTypeName = \"cubicBezier\";\nexport namespace CubicBezier {\n\texport type TypeName = typeof cubicBezierTypeName;\n\texport type RawValue = [number, number, number, number];\n\texport type Value = WithAliasValue<CubicBezier.RawValue>;\n\texport type Token = TokenSignature<CubicBezier.TypeName, CubicBezier.Value>;\n}\n\n// 8.7 Number\nconst numberTypeName = \"number\";\nexport namespace NumberNs {\n\texport type TypeName = typeof numberTypeName;\n\texport type RawValue = number;\n\texport type Value = WithAliasValue<NumberNs.RawValue>;\n\texport type Token = TokenSignature<NumberNs.TypeName, NumberNs.Value>;\n}\n\n/*\n 9. Composite Types\n https://tr.designtokens.org/format/#composite-types\n*/\n// 9.2 Stroke Style\nconst strokeStyleTypeName = \"strokeStyle\";\nexport const strokeStyleStringValues = [\n\t\"solid\",\n\t\"dashed\",\n\t\"dotted\",\n\t\"double\",\n\t\"groove\",\n\t\"ridge\",\n\t\"outset\",\n\t\"inset\",\n] as const;\nexport const strokeStyleLineCapValues = [\"round\", \"butt\", \"square\"] as const;\nexport namespace StrokeStyle {\n\texport type TypeName = typeof strokeStyleTypeName;\n\texport type RawValue =\n\t\t| (typeof strokeStyleStringValues)[number]\n\t\t| {\n\t\t\t\tdashArray: Dimension.Value[];\n\t\t\t\tlineCap: (typeof strokeStyleLineCapValues)[number];\n\t\t };\n\texport type Value = WithAliasValue<StrokeStyle.RawValue>;\n\texport type Token = TokenSignature<StrokeStyle.TypeName, StrokeStyle.Value>;\n}\n\n// 9.3 Border\nconst borderTypeName = \"border\";\nexport namespace Border {\n\texport type TypeName = typeof borderTypeName;\n\texport type RawValue = {\n\t\tcolor: Color.Value;\n\t\twidth: Dimension.Value;\n\t\tstyle: StrokeStyle.Value;\n\t};\n\texport type Value = WithAliasValue<Border.RawValue>;\n\texport type Token = TokenSignature<Border.TypeName, Border.Value>;\n}\n\n// 9.4 Transition\nconst transitionTypeName = \"transition\";\nexport namespace Transition {\n\texport type TypeName = typeof transitionTypeName;\n\texport type RawValue = {\n\t\tduration: Duration.Value;\n\t\tdelay: Duration.Value;\n\t\ttimingFunction: CubicBezier.Value;\n\t};\n\texport type Value = WithAliasValue<Transition.RawValue>;\n\texport type Token = TokenSignature<Transition.TypeName, Transition.Value>;\n}\n\n// 9.5 Shadow\nconst shadowTypeName = \"shadow\";\nexport namespace Shadow {\n\texport type TypeName = typeof shadowTypeName;\n\texport type RawValue =\n\t\t| Array<{\n\t\t\t\tcolor: Color.Value;\n\t\t\t\toffsetX: Dimension.Value;\n\t\t\t\toffsetY: Dimension.Value;\n\t\t\t\tblur: Dimension.Value;\n\t\t\t\tspread: Dimension.Value;\n\t\t\t\tinset?: boolean;\n\t\t }>\n\t\t| {\n\t\t\t\tcolor: Color.Value;\n\t\t\t\toffsetX: Dimension.Value;\n\t\t\t\toffsetY: Dimension.Value;\n\t\t\t\tblur: Dimension.Value;\n\t\t\t\tspread: Dimension.Value;\n\t\t\t\tinset?: boolean;\n\t\t };\n\texport type Value = WithAliasValue<Shadow.RawValue>;\n\texport type Token = TokenSignature<Shadow.TypeName, Shadow.Value>;\n}\n\n// 9.6 Gradient\nconst gradientTypeName = \"gradient\";\nexport namespace Gradient {\n\texport type TypeName = typeof gradientTypeName;\n\texport type RawValue = Array<{\n\t\tcolor: Color.Value;\n\t\tposition: NumberNs.Value;\n\t}>;\n\texport type Value = WithAliasValue<Gradient.RawValue>;\n\texport type Token = TokenSignature<Gradient.TypeName, Gradient.Value>;\n}\n\n// 9.7 Typography\nconst typographyTypeName = \"typography\";\nexport namespace Typography {\n\texport type TypeName = typeof typographyTypeName;\n\texport type RawValue = {\n\t\tfontFamily: FontFamily.Value;\n\t\tfontSize: Dimension.Value;\n\t\tfontWeight: FontWeight.Value;\n\t\tletterSpacing: Dimension.Value;\n\t\tlineHeight: NumberNs.Value;\n\t};\n\texport type Value = WithAliasValue<Typography.RawValue>;\n\texport type Token = TokenSignature<Typography.TypeName, Typography.Value>;\n}\n\n/* ------------------------------------------\n Mapping Exports\n--------------------------------------------- */\nexport const tokenTypeNames = [\n\tcolorTypeName,\n\tdimensionTypeName,\n\tfontFamilyTypeName,\n\tfontWeightTypeName,\n\tdurationTypeName,\n\tcubicBezierTypeName,\n\tnumberTypeName,\n\tstrokeStyleTypeName,\n\tborderTypeName,\n\ttransitionTypeName,\n\tshadowTypeName,\n\tgradientTypeName,\n\ttypographyTypeName,\n] as const;\n\ntype TokenTypeNamesArray = typeof tokenTypeNames;\ntype TokenTypeNameFromArray = TokenTypeNamesArray[number];\n\nexport const tokenTypeNamesMapping = tokenTypeNames.reduce<\n\tRecord<TokenTypeNameFromArray, TokenTypeNameFromArray>\n>(\n\t(acc, t) => {\n\t\tacc[t] = t;\n\t\treturn acc;\n\t},\n\t{} as Record<TokenTypeNameFromArray, TokenTypeNameFromArray>,\n);\n\nexport type TokenTypeName =\n\t| Color.TypeName\n\t| Dimension.TypeName\n\t| FontFamily.TypeName\n\t| FontWeight.TypeName\n\t| Duration.TypeName\n\t| CubicBezier.TypeName\n\t| NumberNs.TypeName\n\t| StrokeStyle.TypeName\n\t| Border.TypeName\n\t| Transition.TypeName\n\t| Shadow.TypeName\n\t| Gradient.TypeName\n\t| Typography.TypeName;\n\nexport type DesignToken =\n\t| Color.Token\n\t| Dimension.Token\n\t| FontFamily.Token\n\t| FontWeight.Token\n\t| Duration.Token\n\t| CubicBezier.Token\n\t| NumberNs.Token\n\t| StrokeStyle.Token\n\t| Border.Token\n\t| Transition.Token\n\t| Shadow.Token\n\t| Gradient.Token\n\t| Typography.Token;\n\nexport type PickTokenByType<T extends TokenTypeName> = {\n\tcolor: Color.Token;\n\tdimension: Dimension.Token;\n\tfontFamily: FontFamily.Token;\n\tfontWeight: FontWeight.Token;\n\tduration: Duration.Token;\n\tcubicBezier: CubicBezier.Token;\n\tnumber: NumberNs.Token;\n\tstrokeStyle: StrokeStyle.Token;\n\tborder: Border.Token;\n\ttransition: Transition.Token;\n\tshadow: Shadow.Token;\n\tgradient: Gradient.Token;\n\ttypography: Typography.Token;\n}[T];\n","/**\n * Color conversion utilities for design tokens\n */\n\n/**\n * RGB color components normalized to 0-1 range\n */\nexport interface RGBComponents {\n\tr: number;\n\tg: number;\n\tb: number;\n}\n\n/**\n * RGBA color with optional alpha\n */\nexport interface RGBAColor extends RGBComponents {\n\ta?: number;\n}\n\n/**\n * Converts a hex color string to RGB components normalized to 0-1 range\n * Supports: #RGB, #RRGGBB, #RRGGBBAA\n *\n * @example\n * hexToRgb(\"#FF0000\") // { r: 1, g: 0, b: 0 }\n * hexToRgb(\"#F00\") // { r: 1, g: 0, b: 0 }\n */\nexport function hexToRgb(hex: string): RGBComponents {\n\tconst cleanHex = hex.replace(/^#/, \"\");\n\n\tlet r: number;\n\tlet g: number;\n\tlet b: number;\n\n\tif (cleanHex.length === 3) {\n\t\t// Short format: #RGB\n\t\tconst c0 = cleanHex[0] ?? \"0\";\n\t\tconst c1 = cleanHex[1] ?? \"0\";\n\t\tconst c2 = cleanHex[2] ?? \"0\";\n\t\tr = Number.parseInt(c0 + c0, 16);\n\t\tg = Number.parseInt(c1 + c1, 16);\n\t\tb = Number.parseInt(c2 + c2, 16);\n\t} else if (cleanHex.length === 6 || cleanHex.length === 8) {\n\t\t// Standard format: #RRGGBB or #RRGGBBAA\n\t\tr = Number.parseInt(cleanHex.slice(0, 2), 16);\n\t\tg = Number.parseInt(cleanHex.slice(2, 4), 16);\n\t\tb = Number.parseInt(cleanHex.slice(4, 6), 16);\n\t} else {\n\t\tthrow new Error(`Invalid hex color format: ${hex}`);\n\t}\n\n\treturn {\n\t\tr: r / 255,\n\t\tg: g / 255,\n\t\tb: b / 255,\n\t};\n}\n\n/**\n * Converts a hex color string to RGBA\n * Supports: #RGB, #RRGGBB, #RRGGBBAA\n *\n * @example\n * hexToRgba(\"#FF0000\") // { r: 1, g: 0, b: 0, a: 1 }\n * hexToRgba(\"#FF000080\") // { r: 1, g: 0, b: 0, a: 0.502 }\n */\nexport function hexToRgba(hex: string): RGBAColor {\n\tconst cleanHex = hex.replace(/^#/, \"\");\n\tconst rgb = hexToRgb(hex);\n\n\tlet a = 1;\n\tif (cleanHex.length === 8) {\n\t\ta = Number.parseInt(cleanHex.slice(6, 8), 16) / 255;\n\t}\n\n\treturn { ...rgb, a };\n}\n\n/**\n * Converts a hex color to an array of RGB components [r, g, b]\n * Components are normalized to 0-1 range with 4 decimal precision\n *\n * @example\n * hexToComponents(\"#FF0000\") // [1, 0, 0]\n */\nexport function hexToComponents(hex: string): [number, number, number] {\n\tconst { r, g, b } = hexToRgb(hex);\n\treturn [\n\t\tMath.round(r * 10000) / 10000,\n\t\tMath.round(g * 10000) / 10000,\n\t\tMath.round(b * 10000) / 10000,\n\t];\n}\n","import type {\n\tColor,\n\tCubicBezier,\n\tDimension,\n\tDuration,\n\tFontFamily,\n\tFontWeight,\n\tShadow,\n} from \"@nds-design-system/design-tokens-format\";\nimport { hexToComponents } from \"@nds-design-system/design-tokens-format\";\n\n/**\n * Creates a DTCG-compliant dimension token\n *\n * @example\n * dimension(16) // 16px\n * dimension(1.5, \"rem\") // 1.5rem\n */\nexport function dimension(\n\tvalue: number,\n\tunit: \"px\" | \"rem\" = \"px\",\n): Dimension.Token {\n\treturn {\n\t\t$type: \"dimension\",\n\t\t$value: { value, unit },\n\t};\n}\n\n/**\n * Creates a DTCG-compliant font family token\n *\n * @example\n * fontFamily(\"PP Neue Montreal\") // Single font\n * fontFamily([\"PP Neue Montreal\", \"sans-serif\"]) // Font stack\n */\nexport function fontFamily(value: string | string[]): FontFamily.Token {\n\treturn {\n\t\t$type: \"fontFamily\",\n\t\t$value: Array.isArray(value) ? value : [value],\n\t};\n}\n\n/**\n * Creates a DTCG-compliant font weight token\n *\n * @example\n * fontWeight(400) // Regular\n * fontWeight(600) // Semi-bold\n * fontWeight(\"bold\") // Named weight\n */\nexport function fontWeight(\n\tvalue: number | FontWeight.RawValue,\n): FontWeight.Token {\n\treturn {\n\t\t$type: \"fontWeight\",\n\t\t$value: value,\n\t};\n}\n\n/**\n * Creates a DTCG-compliant sRGB color token from a hex value\n *\n * @example\n * srgb(\"#FF0000\") // Red color token\n * srgb(\"#FF0000\", 0.5) // Red with 50% alpha\n */\nexport function srgb(hex: `#${string}`, alpha = 1): Color.Token {\n\treturn {\n\t\t$type: \"color\",\n\t\t$value: {\n\t\t\tcolorSpace: \"srgb\",\n\t\t\tcomponents: hexToComponents(hex),\n\t\t\talpha,\n\t\t\thex,\n\t\t},\n\t};\n}\n\n/**\n * Creates a DTCG-compliant duration token\n *\n * @example\n * duration(150) // 150ms\n * duration(0.3, \"s\") // 0.3s\n */\nexport function duration(\n\tvalue: number,\n\tunit: \"ms\" | \"s\" = \"ms\",\n): Duration.Token {\n\treturn {\n\t\t$type: \"duration\",\n\t\t$value: { value, unit },\n\t};\n}\n\n/**\n * Creates a DTCG-compliant cubic-bezier easing token\n *\n * @example\n * cubicBezier(0.4, 0, 0.2, 1) // ease-out\n * cubicBezier(0.23, 1, 0.32, 1) // custom easing\n */\nexport function cubicBezier(\n\tx1: number,\n\ty1: number,\n\tx2: number,\n\ty2: number,\n): CubicBezier.Token {\n\treturn {\n\t\t$type: \"cubicBezier\",\n\t\t$value: [x1, y1, x2, y2],\n\t};\n}\n\n/**\n * Shadow layer configuration\n */\nexport interface ShadowLayer {\n\toffsetX: number;\n\toffsetY: number;\n\tblur: number;\n\tspread: number;\n\t/** Color as hex string or alias reference */\n\tcolor: `#${string}` | `{${string}}`;\n\t/** Alpha/opacity for the color (0-1, default: 1) */\n\talpha?: number;\n\tinset?: boolean;\n}\n\n/**\n * Creates a DTCG-compliant shadow token\n *\n * @example\n * shadow([{ offsetX: 0, offsetY: 1, blur: 3, spread: 0, color: \"#000000\", alpha: 0.1 }])\n * shadow([{ offsetX: 0, offsetY: 4, blur: 6, spread: -1, color: \"{primitive.color.black}\", alpha: 0.1 }])\n */\nexport function shadow(layers: ShadowLayer[]): Shadow.Token {\n\treturn {\n\t\t$type: \"shadow\",\n\t\t$value: layers.map((l) => ({\n\t\t\tcolor: l.color.startsWith(\"{\")\n\t\t\t\t? (l.color as `{${string}}`)\n\t\t\t\t: {\n\t\t\t\t\t\tcolorSpace: \"srgb\" as const,\n\t\t\t\t\t\tcomponents: hexToComponents(l.color as `#${string}`),\n\t\t\t\t\t\talpha: l.alpha ?? 1,\n\t\t\t\t\t},\n\t\t\toffsetX: { value: l.offsetX, unit: \"px\" as const },\n\t\t\toffsetY: { value: l.offsetY, unit: \"px\" as const },\n\t\t\tblur: { value: l.blur, unit: \"px\" as const },\n\t\t\tspread: { value: l.spread, unit: \"px\" as const },\n\t\t\t...(l.inset ? { inset: true } : {}),\n\t\t})),\n\t};\n}\n","import type { ThemeExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\nimport { srgb } from \"../../utils\";\n\n/**\n * Board of Peace (BoP) Theme Color Tokens\n *\n * A refined, institutional theme with warm ivory backgrounds,\n * deep navy text, and polished gold accents.\n *\n * NOTE: This theme uses inline hex values intentionally. These are brand-specific\n * colors from the BoP design system that don't map to our standard primitive palette.\n * The unique ivory, gold, and navy tones are central to the BoP brand identity.\n *\n * Design colors from Figma:\n * - Ivory: #FEFDF9 (page background)\n * - Sand: #F5F4EF (section background)\n * - Port: #111326 (primary text)\n * - Polished Gold: #A68B5E (accent/muted text)\n */\nexport const bopColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"bop\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t} satisfies ThemeExtension,\n\t\t\tbg: {\n\t\t\t\tpage: srgb(\"#FEFDF9\"),\n\t\t\t\tsection: srgb(\"#F5F4EF\"),\n\t\t\t\tmuted: srgb(\"#FEFDF9\"),\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tbackground: srgb(\"#8A6F42\"),\n\t\t\t},\n\t\t\ttext: {\n\t\t\t\tprimary: srgb(\"#111326\"),\n\t\t\t\tsecondary: srgb(\"#111326\"),\n\t\t\t\tmuted: srgb(\"#A68B5E\"),\n\t\t\t\tinverted: srgb(\"#FEFDF9\"),\n\t\t\t},\n\t\t\taccent: {\n\t\t\t\tbrand: srgb(\"#A68B5E\"),\n\t\t\t\t\"brand-soft\": srgb(\"#C4A870\"),\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tsubtle: srgb(\"#26284B\", 0.1),\n\t\t\t\tstrong: srgb(\"#26284B\", 0.2),\n\t\t\t\tdivider: srgb(\"#26284B\", 0.1),\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\t\"primary-bg-hover\": srgb(\"#26284B\"),\n\t\t\t},\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": srgb(\"#111326\"),\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Civic Theme Color Overrides\n *\n * Matches Figma \"Civic\" collection - extends Color.\n * Civic theme with red accents for government/public sector applications.\n * Only tokens that differ from base are defined.\n */\nexport const civicColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"civic\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"29f4d62156d027717b2f2a80e95002ed749bdd38\",\n\t\t\t\t\tcollectionName: \"Civic\",\n\t\t\t\t\textendsCollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\tbg: {\n\t\t\t\tpage: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t},\n\t\t\taccent: {\n\t\t\t\tbrand: { $type: \"color\", $value: \"{primitive.color.red.900}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tprimary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.red.900}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.red.800}\" },\n\t\t\t\t},\n\t\t\t\t\"primary-outline\": {\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.red.900}\" },\n\t\t\t\t\t\"text-hover\": { $type: \"color\", $value: \"{primitive.color.red.800}\" },\n\t\t\t\t\tborder: { $type: \"color\", $value: \"{primitive.color.red.900}\" },\n\t\t\t\t\t\"border-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.red.800}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.red.900}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Dark Theme Color Overrides\n *\n * Matches Figma \"Color\" collection - Dark Mode.\n * Partial overrides for dark mode. Only tokens that differ from base are defined.\n * These get deep-merged with base tokens at runtime.\n */\nexport const darkColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"dark\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tcollectionName: \"Color\",\n\t\t\t\t\tmodeMapping: { modeName: \"Dark Mode\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t// Background tokens\n\t\t\tbg: {\n\t\t\t\tpage: { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\tsection: { $type: \"color\", $value: \"{primitive.color.gray.1000}\" },\n\t\t\t\t\"section-secondary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.900}\",\n\t\t\t\t},\n\t\t\t\t\"section-tertiary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.100}\",\n\t\t\t\t},\n\t\t\t\tmuted: { $type: \"color\", $value: \"{primitive.color.gray.900}\" },\n\t\t\t},\n\t\t\t// Card token\n\t\t\tcard: {\n\t\t\t\tbackground: { $type: \"color\", $value: \"{primitive.color.gray.800}\" },\n\t\t\t},\n\t\t\t// Text tokens\n\t\t\ttext: {\n\t\t\t\tprimary: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\tsecondary: { $type: \"color\", $value: \"{primitive.color.gray.400}\" },\n\t\t\t\tmuted: { $type: \"color\", $value: \"{primitive.color.gray.500}\" },\n\t\t\t\tinverted: { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\tlink: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\"link-hover\": { $type: \"color\", $value: \"{primitive.color.gray.400}\" },\n\t\t\t},\n\t\t\t// Border tokens\n\t\t\tborder: {\n\t\t\t\tsubtle: { $type: \"color\", $value: \"{primitive.color.alpha-white.20}\" },\n\t\t\t\tstrong: { $type: \"color\", $value: \"{primitive.color.alpha-white.30}\" },\n\t\t\t\tfocus: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.accent.brand}\",\n\t\t\t\t},\n\t\t\t\tdivider: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.20}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tprimary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.gray.400}\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.1100}\" },\n\t\t\t\t\t\"text-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.gray.1100}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"primary-outline\": {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.alpha-white.5}\" },\n\t\t\t\t\t\"bg-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-white.10}\",\n\t\t\t\t\t},\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\t\"text-hover\": { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t\tborder: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\t\"border-hover\": { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t},\n\t\t\t\tsecondary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.gray.800}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.gray.700}\" },\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.200}\" },\n\t\t\t\t\t\"text-hover\": { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t},\n\t\t\t\tghost: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.alpha-white.5}\" },\n\t\t\t\t\t\"bg-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.alpha-white.10}\",\n\t\t\t\t\t},\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.gray.300}\" },\n\t\t\t\t\t\"text-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.gray.100}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t// UI tokens\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.200}\",\n\t\t\t\t},\n\t\t\t\t\"control-background\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.900}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.800}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-disabled\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t\t\"color-focus\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.20}\",\n\t\t\t\t},\n\t\t\t\t\"color-border\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.30}\",\n\t\t\t\t},\n\t\t\t\t\"color-border-active\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"error-color\": { $type: \"color\", $value: \"{primitive.color.red.200}\" },\n\t\t\t\t\"accent-base\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.300}\",\n\t\t\t\t},\n\t\t\t\t\"accent-base-2\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.300}\",\n\t\t\t\t},\n\t\t\t\t\"accent-base-3\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.indigo.300}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Darktech Theme Color Overrides\n *\n * Dark backgrounds with cyan/tech accents.\n * Optimized for technical and dark-mode interfaces.\n *\n * References primitive color tokens for consistency.\n */\nexport const darktechColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"darktech\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t} satisfies ThemeExtension,\n\n\t\t\t// Dark backgrounds\n\t\t\tbg: {\n\t\t\t\tpage: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1100}\",\n\t\t\t\t},\n\t\t\t\tsection: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t\t\"section-secondary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.900}\",\n\t\t\t\t},\n\t\t\t\t\"section-tertiary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1200}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tbackground: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Light text for dark backgrounds\n\t\t\ttext: {\n\t\t\t\tprimary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.200}\",\n\t\t\t\t},\n\t\t\t\tsecondary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.400}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.500}\",\n\t\t\t\t},\n\t\t\t\tinverted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1100}\",\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.v300}\",\n\t\t\t\t},\n\t\t\t\t\"link-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.v200}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Cyan/tech accent colors\n\t\t\taccent: {\n\t\t\t\tbrand: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.v300}\",\n\t\t\t\t},\n\t\t\t\t\"brand-soft\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.teal.900}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Borders for dark mode\n\t\t\tborder: {\n\t\t\t\tsubtle: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.10}\",\n\t\t\t\t},\n\t\t\t\tstrong: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.20}\",\n\t\t\t\t},\n\t\t\t\tfocus: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.accent.brand}\",\n\t\t\t\t},\n\t\t\t\tdivider: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.10}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Button colors for dark mode\n\t\t\tbutton: {\n\t\t\t\t\"primary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.600}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.900}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.800}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// UI colors for dark mode\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.v300}\",\n\t\t\t\t},\n\t\t\t\t\"control-background\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.900}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.800}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-disabled\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.gray.1000}\",\n\t\t\t\t},\n\t\t\t\t\"color-focus\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.10}\",\n\t\t\t\t},\n\t\t\t\t\"color-border\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-white.20}\",\n\t\t\t\t},\n\t\t\t\t\"color-border-active\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.v300}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Institution Theme Color Overrides\n *\n * Matches Figma \"Institution\" collection - extends Color.\n * Warm institutional theme with brown and green accents.\n * Only tokens that differ from base are defined.\n */\nexport const institutionColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"institution\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"307b920325965d277d6cbfe0c1573b413f86baf4\",\n\t\t\t\t\tcollectionName: \"Institution\",\n\t\t\t\t\textendsCollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\tbg: {\n\t\t\t\tpage: { $type: \"color\", $value: \"{primitive.color.brown.50}\" },\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tbackground: { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t},\n\t\t\ttext: {\n\t\t\t\tprimary: { $type: \"color\", $value: \"{primitive.color.gray.1000}\" },\n\t\t\t\tsecondary: { $type: \"color\", $value: \"{primitive.color.brown.600}\" },\n\t\t\t},\n\t\t\taccent: {\n\t\t\t\tbrand: { $type: \"color\", $value: \"{primitive.color.green.v400}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tprimary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.green.v400}\" },\n\t\t\t\t\t\"bg-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.green.v300}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"primary-outline\": {\n\t\t\t\t\ttext: { $type: \"color\", $value: \"{primitive.color.green.v400}\" },\n\t\t\t\t\t\"text-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.green.v300}\",\n\t\t\t\t\t},\n\t\t\t\t\tborder: { $type: \"color\", $value: \"{primitive.color.green.v400}\" },\n\t\t\t\t\t\"border-hover\": {\n\t\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t\t$value: \"{primitive.color.green.v300}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsecondary: {\n\t\t\t\t\tbg: { $type: \"color\", $value: \"{primitive.color.brown.50}\" },\n\t\t\t\t\t\"bg-hover\": { $type: \"color\", $value: \"{primitive.color.white}\" },\n\t\t\t\t},\n\t\t\t},\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.600}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Oceana Theme Color Overrides\n *\n * Ocean-inspired cool blue palette.\n * Fresh, clean aesthetic for water/coastal content.\n *\n * References primitive color tokens for consistency.\n */\nexport const oceanaColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"oceana\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"79e46a4d616f3e2d07556a58f4253ed909bca3b7\",\n\t\t\t\t\tcollectionName: \"Oceana\",\n\t\t\t\t\textendsCollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\n\t\t\t// Cool blue-tinted backgrounds\n\t\t\tbg: {\n\t\t\t\tpage: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.50}\",\n\t\t\t\t},\n\t\t\t\tsection: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.100}\",\n\t\t\t\t},\n\t\t\t\t\"section-secondary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.200}\",\n\t\t\t\t},\n\t\t\t\t\"section-tertiary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.900}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tbackground: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Text colors with cool tint\n\t\t\ttext: {\n\t\t\t\tprimary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.steel.1100}\",\n\t\t\t\t},\n\t\t\t\tsecondary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.steel.700}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.steel.500}\",\n\t\t\t\t},\n\t\t\t\tinverted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.50}\",\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.600}\",\n\t\t\t\t},\n\t\t\t\t\"link-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.800}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Ocean blue accents\n\t\t\taccent: {\n\t\t\t\tbrand: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.600}\",\n\t\t\t\t},\n\t\t\t\t\"brand-soft\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.cyan.50}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Borders\n\t\t\tborder: {\n\t\t\t\tsubtle: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\tstrong: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.20}\",\n\t\t\t\t},\n\t\t\t\tfocus: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.accent.brand}\",\n\t\t\t\t},\n\t\t\t\tdivider: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Button colors\n\t\t\tbutton: {\n\t\t\t\t\"primary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.800}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.100}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// UI colors\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.600}\",\n\t\t\t\t},\n\t\t\t\t\"control-background\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.100}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-disabled\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.ice.200}\",\n\t\t\t\t},\n\t\t\t\t\"color-focus\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\t\"color-border\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.20}\",\n\t\t\t\t},\n\t\t\t\t\"color-border-active\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.blue.600}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Recreation Theme Color Overrides\n *\n * Warm brown/beige palette with earthy tones.\n * Inviting aesthetic for recreational and lifestyle content.\n *\n * References primitive color tokens for consistency.\n */\nexport const recreationColorTokens = {\n\tsemantic: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"color\",\n\t\t\t\t\tname: \"recreation\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"cf9e75990b12bf4551bf2b165ec51e5ce594fecf\",\n\t\t\t\t\tcollectionName: \"Recreation\",\n\t\t\t\t\textendsCollectionKey: \"92aacd2e50c6b60494d54a525fd64c6727d58905\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\n\t\t\t// Warm beige backgrounds\n\t\t\tbg: {\n\t\t\t\tpage: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.50}\",\n\t\t\t\t},\n\t\t\t\tsection: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.100}\",\n\t\t\t\t},\n\t\t\t\t\"section-secondary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.200}\",\n\t\t\t\t},\n\t\t\t\t\"section-tertiary\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.900}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tbackground: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Text colors with warm tint\n\t\t\ttext: {\n\t\t\t\tprimary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.1100}\",\n\t\t\t\t},\n\t\t\t\tsecondary: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.700}\",\n\t\t\t\t},\n\t\t\t\tmuted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.500}\",\n\t\t\t\t},\n\t\t\t\tinverted: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.50}\",\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.600}\",\n\t\t\t\t},\n\t\t\t\t\"link-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.800}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Earthy brown accents\n\t\t\taccent: {\n\t\t\t\tbrand: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.600}\",\n\t\t\t\t},\n\t\t\t\t\"brand-soft\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.100}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Borders\n\t\t\tborder: {\n\t\t\t\tsubtle: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\tstrong: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.20}\",\n\t\t\t\t},\n\t\t\t\tfocus: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{semantic.color.accent.brand}\",\n\t\t\t\t},\n\t\t\t\tdivider: {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Button colors\n\t\t\tbutton: {\n\t\t\t\t\"primary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.700}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"secondary-bg-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.100}\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// UI colors\n\t\t\tui: {\n\t\t\t\t\"button-primary-bg\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.600}\",\n\t\t\t\t},\n\t\t\t\t\"control-background\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.white}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-hover\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.100}\",\n\t\t\t\t},\n\t\t\t\t\"control-background-disabled\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.200}\",\n\t\t\t\t},\n\t\t\t\t\"color-focus\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.10}\",\n\t\t\t\t},\n\t\t\t\t\"color-border\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.alpha-black.20}\",\n\t\t\t\t},\n\t\t\t\t\"color-border-active\": {\n\t\t\t\t\t$type: \"color\",\n\t\t\t\t\t$value: \"{primitive.color.brown.600}\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Base Surface Tokens\n *\n * Defines surface styling properties like border radius and stroke width.\n */\nexport const baseSurfaceTokens = {\n\tsemantic: {\n\t\tsurface: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"surface\",\n\t\t\t\t\tname: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"4f6dd00a848af32a4163fde4d543eb933824813e\",\n\t\t\t\t\tcollectionName: \"Surface\",\n\t\t\t\t\tmodeMapping: { modeName: \"Mode 1\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t/**\n\t\t\t * UI Radius Tokens\n\t\t\t *\n\t\t\t * Base radius values for UI components. Individual components (button, card, input)\n\t\t\t * extend from these values, allowing theme variants to override once and affect all.\n\t\t\t */\n\t\t\tui: {\n\t\t\t\tradius: {\n\t\t\t\t\tsmall: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.radii.4}\",\n\t\t\t\t\t\t$description: \"Small UI radius (4px) - tight corners\",\n\t\t\t\t\t},\n\t\t\t\t\tmedium: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.radii.6}\",\n\t\t\t\t\t\t$description: \"Medium UI radius (6px) - default corners\",\n\t\t\t\t\t},\n\t\t\t\t\tlarge: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.radii.8}\",\n\t\t\t\t\t\t$description: \"Large UI radius (8px) - rounded corners\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tradius: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{semantic.surface.ui.radius.medium}\",\n\t\t\t\t\t$description: \"Card border radius - extends from ui.radius.medium\",\n\t\t\t\t},\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tradius: {\n\t\t\t\t\tsmall: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{semantic.surface.ui.radius.small}\",\n\t\t\t\t\t\t$description: \"Button radius for small size\",\n\t\t\t\t\t},\n\t\t\t\t\tmedium: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{semantic.surface.ui.radius.medium}\",\n\t\t\t\t\t\t$description: \"Button radius for medium size\",\n\t\t\t\t\t},\n\t\t\t\t\tlarge: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{semantic.surface.ui.radius.large}\",\n\t\t\t\t\t\t$description: \"Button radius for large size\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t\ttooltip: {\n\t\t\t\tradius: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{semantic.surface.ui.radius.small}\",\n\t\t\t\t\t$description:\n\t\t\t\t\t\t\"Tooltip border radius - uses small UI radius for tight corners\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t/**\n\t\t\t * Overlay Surface Tokens\n\t\t\t *\n\t\t\t * Surface properties for floating UI components (popover, modal, dropdown, menu).\n\t\t\t */\n\t\t\toverlay: {\n\t\t\t\tradius: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{semantic.surface.ui.radius.large}\",\n\t\t\t\t\t$description: \"Overlay border radius - uses large UI radius (8px)\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Framed Surface Tokens\n *\n * A framed surface theme with heavier card borders and no button radius.\n */\nexport const framedSurfaceTokens = {\n\tsemantic: {\n\t\tsurface: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"surface\",\n\t\t\t\t\tname: \"framed\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"8d2f720d2f15a79f6caf1c9e1332295eae600152\",\n\t\t\t\t\tcollectionName: \"Framed\",\n\t\t\t\t\textendsCollectionKey: \"4f6dd00a848af32a4163fde4d543eb933824813e\",\n\t\t\t\t\tmodeMapping: { modeName: \"Mode 1\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t/**\n\t\t\t * Framed UI Radius - no radius (0px) for crisp, framed appearance\n\t\t\t */\n\t\t\tui: {\n\t\t\t\tradius: {\n\t\t\t\t\tsmall: { $type: \"dimension\", $value: \"{primitive.radii.0}\" },\n\t\t\t\t\tmedium: { $type: \"dimension\", $value: \"{primitive.radii.0}\" },\n\t\t\t\t\tlarge: { $type: \"dimension\", $value: \"{primitive.radii.0}\" },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.2}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Sharp Surface Tokens\n *\n * A sharper surface theme with minimal border radius.\n */\nexport const sharpSurfaceTokens = {\n\tsemantic: {\n\t\tsurface: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"surface\",\n\t\t\t\t\tname: \"sharp\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"89b2727e714b609da1a6da3fb39a02fece2c5c87\",\n\t\t\t\t\tcollectionName: \"Sharp\",\n\t\t\t\t\textendsCollectionKey: \"4f6dd00a848af32a4163fde4d543eb933824813e\",\n\t\t\t\t\tmodeMapping: { modeName: \"Mode 1\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t/**\n\t\t\t * Sharp UI Radius - minimal corners (2px)\n\t\t\t */\n\t\t\tui: {\n\t\t\t\tradius: {\n\t\t\t\t\tsmall: { $type: \"dimension\", $value: \"{primitive.radii.2}\" },\n\t\t\t\t\tmedium: { $type: \"dimension\", $value: \"{primitive.radii.2}\" },\n\t\t\t\t\tlarge: { $type: \"dimension\", $value: \"{primitive.radii.2}\" },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { ThemeFigmaSyncExtension } from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Soft Surface Tokens\n *\n * A soft surface theme with large rounded corners and minimal strokes.\n */\nexport const softSurfaceTokens = {\n\tsemantic: {\n\t\tsurface: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"surface\",\n\t\t\t\t\tname: \"soft\",\n\t\t\t\t\textends: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"e8c7bcd55a82a80373e500114ab1c648eaee98e0\",\n\t\t\t\t\tcollectionName: \"Soft\",\n\t\t\t\t\textendsCollectionKey: \"4f6dd00a848af32a4163fde4d543eb933824813e\",\n\t\t\t\t\tmodeMapping: { modeName: \"Mode 1\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeFigmaSyncExtension,\n\t\t\t/**\n\t\t\t * Soft UI Radius - all corners are heavily rounded (20px)\n\t\t\t */\n\t\t\tui: {\n\t\t\t\tradius: {\n\t\t\t\t\tsmall: { $type: \"dimension\", $value: \"{primitive.radii.20}\" },\n\t\t\t\t\tmedium: { $type: \"dimension\", $value: \"{primitive.radii.20}\" },\n\t\t\t\t\tlarge: { $type: \"dimension\", $value: \"{primitive.radii.20}\" },\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.0}\" },\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\tstroke: { $type: \"dimension\", $value: \"{primitive.spacing.1}\" },\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type {\n\tFigmaSyncExtension,\n\tThemeExtension,\n\tUtilityExtension,\n} from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Base Typography Tokens\n *\n * Property-based typography tokens organized into Heading, Text, and UI groups.\n * Theme variants (nds-brand, darktech, recreation) extend these with overrides.\n *\n * Each group uses $extensions[\"nds.utility\"] to mark it for CSS utility generation.\n * The generator composes inherited properties (font, weight) with local properties\n * (size, line-height, tracking) to create complete typography utilities.\n *\n * Responsive utilities are enabled via `responsive: true` which uses nested groups\n * (lg, md, sm) to generate breakpoint-specific variants.\n *\n * Structure based on Figma \"Typography\" collection with nested breakpoint groups.\n */\nexport const baseTypographyTokens = {\n\tsemantic: {\n\t\ttypography: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"typography\",\n\t\t\t\t\tname: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"96f5387fdb03cd6bbd3a7de7ead150f46afac330\",\n\t\t\t\t\tcollectionName: \"Typography\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeExtension & FigmaSyncExtension,\n\n\t\t\t// =====================================================================\n\t\t\t// HEADING GROUP\n\t\t\t// Shared font properties for all headings\n\t\t\t// =====================================================================\n\t\t\theading: {\n\t\t\t\tfont: {\n\t\t\t\t\t$type: \"fontFamily\",\n\t\t\t\t\t$value: \"{primitive.font-family.inter-tight}\",\n\t\t\t\t\t$description: \"Headline font family - shared across all headings\",\n\t\t\t\t},\n\t\t\t\tweight: {\n\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t$value: \"{primitive.font-weight.semibold}\",\n\t\t\t\t\t$description: \"Headline weight (600) - shared across all headings\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// H1 Display (XL) - Large hero typography\n\t\t\th1: {\n\t\t\t\tdisplay: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\tname: \"typography-h1-display\",\n\t\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\tlg: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.128}\",\n\t\t\t\t\t\t\t$description: \"H1 display font size (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.128}\",\n\t\t\t\t\t\t\t$description: \"H1 display line height (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.128}\",\n\t\t\t\t\t\t\t$description: \"H1 display letter spacing (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.96}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.96}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.96}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.64}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.64}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.64}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Regular H1 - flattened breakpoint structure\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-h1\",\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tlg: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.96}\",\n\t\t\t\t\t\t$description: \"H1 font size (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.96}\",\n\t\t\t\t\t\t$description: \"H1 line height (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.96}\",\n\t\t\t\t\t\t$description: \"H1 letter spacing (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmd: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.72}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.72}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.72}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsm: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.48}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.48}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.48}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// H2\n\t\t\th2: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-h2\",\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tlg: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.72}\",\n\t\t\t\t\t\t$description: \"H2 font size (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.72}\",\n\t\t\t\t\t\t$description: \"H2 line height (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.72}\",\n\t\t\t\t\t\t$description: \"H2 letter spacing (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmd: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.64}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.64}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.64}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsm: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.48}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.48}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.48}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// H3\n\t\t\th3: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-h3\",\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tlg: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.64}\",\n\t\t\t\t\t\t$description: \"H3 font size (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.64}\",\n\t\t\t\t\t\t$description: \"H3 line height (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.64}\",\n\t\t\t\t\t\t$description: \"H3 letter spacing (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmd: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.48}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.48}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.48}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsm: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.32}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.32}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.32}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// H4\n\t\t\th4: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-h4\",\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tlg: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.48}\",\n\t\t\t\t\t\t$description: \"H4 font size (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.48}\",\n\t\t\t\t\t\t$description: \"H4 line height (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.48}\",\n\t\t\t\t\t\t$description: \"H4 letter spacing (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmd: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.32}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.32}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.32}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsm: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.24}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.24}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.24}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// H5\n\t\t\th5: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-h5\",\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"heading.font\",\n\t\t\t\t\t\t\tfontWeight: \"heading.weight\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tlg: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.32}\",\n\t\t\t\t\t\t$description: \"H5 font size (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.32}\",\n\t\t\t\t\t\t$description: \"H5 line height (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.32}\",\n\t\t\t\t\t\t$description: \"H5 letter spacing (lg breakpoint)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmd: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.24}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.24}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.24}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsm: {\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.21}\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.21}\",\n\t\t\t\t\t},\n\t\t\t\t\ttracking: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.letter-spacing.21}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// =====================================================================\n\t\t\t// TEXT GROUP\n\t\t\t// Body text, overline, and caption\n\t\t\t// =====================================================================\n\t\t\tbody: {\n\t\t\t\tfont: {\n\t\t\t\t\t$type: \"fontFamily\",\n\t\t\t\t\t$value: \"{primitive.font-family.inter}\",\n\t\t\t\t\t$description: \"Body font family\",\n\t\t\t\t},\n\t\t\t\tweight: {\n\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t$value: \"{primitive.font-weight.regular}\",\n\t\t\t\t\t$description: \"Body font weight\",\n\t\t\t\t},\n\t\t\t\t// Body Large - responsive typography\n\t\t\t\tlg: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\tname: \"typography-body-lg\",\n\t\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\tfontFamily: \"body.font\",\n\t\t\t\t\t\t\t\tfontWeight: \"body.weight\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\tlg: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.21}\",\n\t\t\t\t\t\t\t$description: \"Body lg font size (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.21}\",\n\t\t\t\t\t\t\t$description: \"Body lg line height (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.21}\",\n\t\t\t\t\t\t\t$description: \"Body lg letter spacing (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.18}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.18}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.18}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Body Medium - responsive typography\n\t\t\t\tmd: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\tname: \"typography-body-md\",\n\t\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\tfontFamily: \"body.font\",\n\t\t\t\t\t\t\t\tfontWeight: \"body.weight\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\tlg: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.18}\",\n\t\t\t\t\t\t\t$description: \"Body md font size (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.18}\",\n\t\t\t\t\t\t\t$description: \"Body md line height (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.18}\",\n\t\t\t\t\t\t\t$description: \"Body md letter spacing (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.16}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Body Small - responsive typography\n\t\t\t\tsm: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\tname: \"typography-body-sm\",\n\t\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\tfontFamily: \"body.font\",\n\t\t\t\t\t\t\t\tfontWeight: \"body.weight\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\tlg: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t\t$description: \"Body sm font size (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t\t$description: \"Body sm line height (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.14}\",\n\t\t\t\t\t\t\t$description: \"Body sm letter spacing (lg breakpoint)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.14}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.12}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.12}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.12}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Overline - Small caps/label text\n\t\t\toverline: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-overline\",\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"body.font\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tsize: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t$description: \"Overline font size\",\n\t\t\t\t},\n\t\t\t\t\"line-height\": {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.line-height.24}\",\n\t\t\t\t\t$description: \"Overline line height\",\n\t\t\t\t},\n\t\t\t\ttracking: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.letter-spacing.14}\",\n\t\t\t\t\t$description: \"Overline letter spacing\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Caption - Small supplementary text\n\t\t\tcaption: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\tname: \"typography-caption\",\n\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\tfontFamily: \"body.font\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\tsize: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.font-size.11}\",\n\t\t\t\t\t$description: \"Caption font size\",\n\t\t\t\t},\n\t\t\t\t\"line-height\": {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.line-height.11}\",\n\t\t\t\t\t$description: \"Caption line height\",\n\t\t\t\t},\n\t\t\t\ttracking: {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.letter-spacing.11}\",\n\t\t\t\t\t$description: \"Caption letter spacing\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// =====================================================================\n\t\t\t// UI GROUP\n\t\t\t// Button, link, and interactive element typography\n\t\t\t// =====================================================================\n\t\t\tui: {\n\t\t\t\tbutton: {\n\t\t\t\t\tfont: {\n\t\t\t\t\t\t$type: \"fontFamily\",\n\t\t\t\t\t\t$value: \"{primitive.font-family.inter}\",\n\t\t\t\t\t\t$description: \"Button font family\",\n\t\t\t\t\t},\n\t\t\t\t\tweight: {\n\t\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t\t$value: \"{primitive.font-weight.medium}\",\n\t\t\t\t\t\t$description: \"Button font weight\",\n\t\t\t\t\t},\n\t\t\t\t\tlg: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-button-lg\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.button.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.button.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.18}\",\n\t\t\t\t\t\t\t$description: \"lg button font size\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.18}\",\n\t\t\t\t\t\t\t$description: \"lg button line height\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.button}\",\n\t\t\t\t\t\t\t$description: \"lg button letter spacing\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-button-md\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.button.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.button.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.16}\",\n\t\t\t\t\t\t\t$description: \"md button font size\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.16}\",\n\t\t\t\t\t\t\t$description: \"md button line height\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.button}\",\n\t\t\t\t\t\t\t$description: \"md button letter spacing\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-button-sm\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.button.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.button.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t\t$description: \"sm button font size\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t\t$description: \"sm button line height\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttracking: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.letter-spacing.button}\",\n\t\t\t\t\t\t\t$description: \"sm button letter spacing\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\tweight: {\n\t\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t\t$value: \"{primitive.font-weight.medium}\",\n\t\t\t\t\t\t$description: \"Link font weight\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabel: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\tname: \"typography-ui-label\",\n\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\tfontFamily: \"ui.label.font\",\n\t\t\t\t\t\t\t\tfontWeight: \"ui.label.weight\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\tfont: {\n\t\t\t\t\t\t$type: \"fontFamily\",\n\t\t\t\t\t\t$value: \"{primitive.font-family.inter}\",\n\t\t\t\t\t\t$description: \"Label font family\",\n\t\t\t\t\t},\n\t\t\t\t\tweight: {\n\t\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t\t$value: \"{primitive.font-weight.medium}\",\n\t\t\t\t\t\t$description: \"Label font weight\",\n\t\t\t\t\t},\n\t\t\t\t\tsize: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t$description: \"Label font size\",\n\t\t\t\t\t},\n\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t$description: \"Label line height\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// Text - General UI text ramp for buttons, captions, and other UI elements\n\t\t\t\ttext: {\n\t\t\t\t\tfont: {\n\t\t\t\t\t\t$type: \"fontFamily\",\n\t\t\t\t\t\t$value: \"{primitive.font-family.inter}\",\n\t\t\t\t\t\t$description: \"UI text font family\",\n\t\t\t\t\t},\n\t\t\t\t\tweight: {\n\t\t\t\t\t\t$type: \"fontWeight\",\n\t\t\t\t\t\t$value: \"{primitive.font-weight.medium}\",\n\t\t\t\t\t\t$description: \"UI text font weight\",\n\t\t\t\t\t},\n\t\t\t\t\txs: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-text-xs\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.text.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.text.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.12}\",\n\t\t\t\t\t\t\t$description:\n\t\t\t\t\t\t\t\t\"Extra small UI text font size (12px) - for small buttons, captions\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.12}\",\n\t\t\t\t\t\t\t$description: \"Extra small UI text line height (16px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tsm: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-text-sm\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.text.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.text.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.14}\",\n\t\t\t\t\t\t\t$description:\n\t\t\t\t\t\t\t\t\"Small UI text font size (14px) - for default buttons\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.14}\",\n\t\t\t\t\t\t\t$description: \"Small UI text line height (20px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmd: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-text-md\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.text.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.text.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.16}\",\n\t\t\t\t\t\t\t$description:\n\t\t\t\t\t\t\t\t\"Medium UI text font size (16px) - for large buttons\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.16}\",\n\t\t\t\t\t\t\t$description: \"Medium UI text line height (24px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlg: {\n\t\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\t\"nds.utility\": {\n\t\t\t\t\t\t\t\tname: \"typography-ui-text-lg\",\n\t\t\t\t\t\t\t\tinherit: {\n\t\t\t\t\t\t\t\t\tfontFamily: \"ui.text.font\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"ui.text.weight\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies UtilityExtension,\n\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.font-size.18}\",\n\t\t\t\t\t\t\t$description:\n\t\t\t\t\t\t\t\t\"Large UI text font size (18px) - optional larger size\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"line-height\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.line-height.28}\",\n\t\t\t\t\t\t\t$description: \"Large UI text line height (28px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type {\n\tBreakpointExtension,\n\tFigmaSyncExtension,\n\tGridExtension,\n\tThemeExtension,\n} from \"../../extensions\";\nimport type { TokenModule } from \"../../types\";\n\n/**\n * Base Spatial Tokens\n *\n * Layout and spacing tokens for grid systems, sections, and cards.\n * These provide the foundational spatial structure for responsive layouts.\n * Other spatial themes (airy, balanced, compact, etc.) extend from this base.\n *\n * Breakpoint sizes:\n * - large: Desktop (1440px+)\n * - medium: Tablet (768px - 1439px)\n * - small: Mobile (< 768px)\n */\nexport const baseSpatialTokens = {\n\tsemantic: {\n\t\tspatial: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.theme\": {\n\t\t\t\t\tcategory: \"spatial\",\n\t\t\t\t\tname: \"base\",\n\t\t\t\t},\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"145a1dde6a2edbd03b4e1fe9bbc9269e90bfe5f1\",\n\t\t\t\t\tcollectionName: \"Spatial\",\n\t\t\t\t\tmodeMapping: { modeName: \"Default\" },\n\t\t\t\t},\n\t\t\t} satisfies ThemeExtension & FigmaSyncExtension,\n\t\t\tgrid: {\n\t\t\t\t$extensions: {\n\t\t\t\t\t\"nds.grid\": {\n\t\t\t\t\t\tgenerateUtilities: true,\n\t\t\t\t\t},\n\t\t\t\t} satisfies GridExtension,\n\t\t\t\tlarge: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.breakpoint\": {\n\t\t\t\t\t\t\tname: \"lg\",\n\t\t\t\t\t\t\tminWidth: \"{primitive.breakpoint.lg}\",\n\t\t\t\t\t\t\tdescription: \"Desktop (1440px+)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies BreakpointExtension,\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.72}\",\n\t\t\t\t\t\t$description: \"Outer margin for large breakpoint grid\",\n\t\t\t\t\t},\n\t\t\t\t\tgutter: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Gap between columns for large breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t\tcolumns: {\n\t\t\t\t\t\t$type: \"number\",\n\t\t\t\t\t\t$value: 24,\n\t\t\t\t\t\t$description: \"Number of columns for large breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmedium: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.breakpoint\": {\n\t\t\t\t\t\t\tname: \"md\",\n\t\t\t\t\t\t\tminWidth: \"{primitive.breakpoint.md}\",\n\t\t\t\t\t\t\tdescription: \"Tablet (768px - 1439px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies BreakpointExtension,\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.56}\",\n\t\t\t\t\t\t$description: \"Outer margin for medium breakpoint grid\",\n\t\t\t\t\t},\n\t\t\t\t\tgutter: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.20}\",\n\t\t\t\t\t\t$description: \"Gap between columns for medium breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t\tcolumns: {\n\t\t\t\t\t\t$type: \"number\",\n\t\t\t\t\t\t$value: 12,\n\t\t\t\t\t\t$description: \"Number of columns for medium breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsmall: {\n\t\t\t\t\t$extensions: {\n\t\t\t\t\t\t\"nds.breakpoint\": {\n\t\t\t\t\t\t\tname: \"sm\",\n\t\t\t\t\t\t\tminWidth: \"{primitive.breakpoint.sm}\",\n\t\t\t\t\t\t\tdescription: \"Mobile (< 768px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t} satisfies BreakpointExtension,\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Outer margin for small breakpoint grid\",\n\t\t\t\t\t},\n\t\t\t\t\tgutter: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t$description: \"Gap between columns for small breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t\tcolumns: {\n\t\t\t\t\t\t$type: \"number\",\n\t\t\t\t\t\t$value: 4,\n\t\t\t\t\t\t$description: \"Number of columns for small breakpoint\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tsection: {\n\t\t\t\tlarge: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.64}\",\n\t\t\t\t\t\t$description: \"Gap between elements in large sections\",\n\t\t\t\t\t},\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.128}\",\n\t\t\t\t\t\t$description: \"Vertical padding for large sections\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmedium: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.56}\",\n\t\t\t\t\t\t$description: \"Gap between elements in medium sections\",\n\t\t\t\t\t},\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.96}\",\n\t\t\t\t\t\t$description: \"Vertical padding for medium sections\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsmall: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t$description: \"Gap between elements in small sections\",\n\t\t\t\t\t},\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.64}\",\n\t\t\t\t\t\t$description: \"Vertical padding for small sections\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tcard: {\n\t\t\t\tlarge: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.10}\",\n\t\t\t\t\t\t$description: \"Internal gap for large cards\",\n\t\t\t\t\t},\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Internal padding for large cards\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsmall: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t$description: \"Internal gap for small cards\",\n\t\t\t\t\t},\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t$description: \"Internal padding for small cards\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t/**\n\t\t\t * UI Control Tokens\n\t\t\t *\n\t\t\t * Spacing for form controls and UI elements.\n\t\t\t */\n\t\t\tui: {\n\t\t\t\tcontrol: {\n\t\t\t\t\t\"vertical-padding\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.10}\",\n\t\t\t\t\t\t$description: \"Vertical padding for form controls\",\n\t\t\t\t\t},\n\t\t\t\t\t\"horizontal-padding\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t$description: \"Horizontal padding for form controls\",\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t$description: \"Gap between control elements\",\n\t\t\t\t\t},\n\t\t\t\t\theight: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.36}\",\n\t\t\t\t\t\t\t$description: \"Height for small form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.48}\",\n\t\t\t\t\t\t\t$description: \"Height for medium form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.56}\",\n\t\t\t\t\t\t\t$description: \"Height for large form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for small form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for medium form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.20}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for large form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for small form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.10}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for medium form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for large form controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbutton: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t\"icon-text\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.6}\",\n\t\t\t\t\t\t\t$description: \"Gap between button icon and text\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"button-group\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t\t$description: \"Gap between buttons in a group\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t// Figma Button sizes: sm=32px, default=36px, lg=40px\n\t\t\t\t\theight: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t\t$description: \"Height for small buttons (32px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.36}\",\n\t\t\t\t\t\t\t$description: \"Height for medium/default buttons (36px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.40}\",\n\t\t\t\t\t\t\t$description: \"Height for large buttons (40px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.12}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for small buttons (12px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for medium buttons (16px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for large buttons (24px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for small buttons (8px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for medium buttons (8px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.10}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for large buttons (10px)\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tinput: {\n\t\t\t\t\theight: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.height.small}\",\n\t\t\t\t\t\t\t$description: \"Height for small input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.height.medium}\",\n\t\t\t\t\t\t\t$description: \"Height for medium input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.height.large}\",\n\t\t\t\t\t\t\t$description: \"Height for large input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-x.small}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for small input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-x.medium}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for medium input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-x.large}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for large input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-y.small}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for small input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-y.medium}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for medium input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.padding-y.large}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for large input controls\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"input-group\": {\n\t\t\t\t\theight: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.height.small}\",\n\t\t\t\t\t\t\t$description: \"Height for small input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.height.medium}\",\n\t\t\t\t\t\t\t$description: \"Height for medium input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.height.large}\",\n\t\t\t\t\t\t\t$description: \"Height for large input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-x.small}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for small input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-x.medium}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for medium input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-x.large}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for large input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-y.small}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for small input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-y.medium}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for medium input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.input.padding-y.large}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for large input groups\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\tblock: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{semantic.spatial.ui.control.gap}\",\n\t\t\t\t\t\t\t$description: \"Gap between block addon and input in input group\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t/**\n\t\t\t * Component Spacing Tokens\n\t\t\t *\n\t\t\t * Spacing for specific components (padding, gap).\n\t\t\t */\n\t\t\tcomponent: {\n\t\t\t\tcard: {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t\t$description: \"Padding for small cards\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t\t$description: \"Padding for medium cards\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.40}\",\n\t\t\t\t\t\t\t$description: \"Padding for large cards\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Internal gap for cards\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tfeature: {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\tsmall: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t\t$description: \"Padding for small features\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmedium: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.40}\",\n\t\t\t\t\t\t\t$description: \"Padding for medium features\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlarge: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.48}\",\n\t\t\t\t\t\t\t$description: \"Padding for large features\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Gap between icon and content in features\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttestimonial: {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.40}\",\n\t\t\t\t\t\t$description: \"Padding for testimonials\",\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t$description: \"Gap between quote and attribution\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tform: {\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t\"field-field\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.20}\",\n\t\t\t\t\t\t\t$description: \"Gap between form fields\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"label-field\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Gap between label and field\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"field-button\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t\t$description: \"Gap between field and submit button\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taccordion: {\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.28}\",\n\t\t\t\t\t\t$description: \"Vertical padding for accordion items\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttooltip: {\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.10}\",\n\t\t\t\t\t\t$description: \"Horizontal padding for tooltip content\",\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.6}\",\n\t\t\t\t\t\t$description: \"Vertical padding for tooltip content\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * Overlay Spacing Tokens\n\t\t\t\t *\n\t\t\t\t * Spacing for floating UI components (popover, modal, dropdown, menu).\n\t\t\t\t */\n\t\t\t\toverlay: {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t$description: \"Padding for overlay containers (16px)\",\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t$description: \"Gap between overlay content elements (16px)\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnavbar: {\n\t\t\t\t\t\"padding-x\": {\n\t\t\t\t\t\tmobile: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.20}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for mobile navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttablet: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for tablet navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdesktop: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.32}\",\n\t\t\t\t\t\t\t$description: \"Horizontal padding for desktop navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"padding-y\": {\n\t\t\t\t\t\tmobile: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for mobile navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttablet: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.16}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for tablet navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdesktop: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.24}\",\n\t\t\t\t\t\t\t$description: \"Vertical padding for desktop navbar\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tgap: {\n\t\t\t\t\t\tlinks: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.40}\",\n\t\t\t\t\t\t\t$description: \"Gap between navbar links\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tactions: {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Gap between navbar actions\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"mobile-menu\": {\n\t\t\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t\t\t$value: \"{primitive.spacing.8}\",\n\t\t\t\t\t\t\t$description: \"Gap in mobile menu items\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t/**\n\t\t\t * Prose Tokens\n\t\t\t *\n\t\t\t * Spacing for prose/content blocks.\n\t\t\t */\n\t\t\tprose: {\n\t\t\t\t\"heading-gap\": {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.spacing.36}\",\n\t\t\t\t\t$description: \"Gap before headings in prose\",\n\t\t\t\t},\n\t\t\t\t\"block-gap\": {\n\t\t\t\t\t$type: \"dimension\",\n\t\t\t\t\t$value: \"{primitive.spacing.96}\",\n\t\t\t\t\t$description: \"Gap between prose blocks\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t/**\n\t\t\t * Content Layout Tokens\n\t\t\t *\n\t\t\t * Responsive content width patterns for the 12-column grid.\n\t\t\t * Generates utilities: grid-content-narrow, grid-content-medium, grid-content-wide\n\t\t\t */\n\t\t\tlayout: {\n\t\t\t\tnarrow: {\n\t\t\t\t\t$description: \"Narrow centered content (reading/mission statements)\",\n\t\t\t\t\tlarge: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 8 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 3 },\n\t\t\t\t\t},\n\t\t\t\t\tmedium: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 8 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 3 },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmedium: {\n\t\t\t\t\t$description: \"Medium centered content (forms/general)\",\n\t\t\t\t\tlarge: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 8 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 3 },\n\t\t\t\t\t},\n\t\t\t\t\tmedium: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 10 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 2 },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\twide: {\n\t\t\t\t\t$description: \"Wide content (dashboards/tables)\",\n\t\t\t\t\tlarge: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 10 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 2 },\n\t\t\t\t\t},\n\t\t\t\t\tmedium: {\n\t\t\t\t\t\tspan: { $type: \"number\", $value: 12 },\n\t\t\t\t\t\tstart: { $type: \"number\", $value: 1 },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","/**\n * Theme Registry\n *\n * Maps theme names to token modules for type-safe theme selection.\n */\n\n// Import color themes\nimport { baseColorTokens } from \"./semantic/color/base\";\nimport { bopColorTokens } from \"./semantic/color/bop\";\nimport { civicColorTokens } from \"./semantic/color/civic\";\nimport { darkColorTokens } from \"./semantic/color/dark\";\nimport { darktechColorTokens } from \"./semantic/color/darktech\";\nimport { institutionColorTokens } from \"./semantic/color/institution\";\nimport { oceanaColorTokens } from \"./semantic/color/oceana\";\nimport { recreationColorTokens } from \"./semantic/color/recreation\";\nimport { airySpatialTokens } from \"./semantic/spatial/airy\";\nimport { balancedSpatialTokens } from \"./semantic/spatial/balanced\";\n// Import spatial themes\nimport { baseSpatialTokens } from \"./semantic/spatial/base\";\nimport { bopSpatialTokens } from \"./semantic/spatial/bop\";\nimport { compactSpatialTokens } from \"./semantic/spatial/compact\";\nimport { customSpatialTokens } from \"./semantic/spatial/custom\";\n// Import surface themes\nimport { baseSurfaceTokens } from \"./semantic/surface/base\";\nimport { framedSurfaceTokens } from \"./semantic/surface/framed\";\nimport { sharpSurfaceTokens } from \"./semantic/surface/sharp\";\nimport { softSurfaceTokens } from \"./semantic/surface/soft\";\n// Import typography themes\nimport {\n\tbaseTypographyTokens,\n\tdarktechTypographyTokens,\n\tndsBrandTypographyTokens,\n\trecreationTypographyTokens,\n} from \"./semantic/typography\";\nimport type { TokenModule } from \"./types\";\n\n/**\n * Color theme registry - maps names to token modules\n */\nexport const colorThemes = {\n\tbase: baseColorTokens,\n\tbop: bopColorTokens,\n\tcivic: civicColorTokens,\n\tdark: darkColorTokens,\n\tdarktech: darktechColorTokens,\n\tinstitution: institutionColorTokens,\n\toceana: oceanaColorTokens,\n\trecreation: recreationColorTokens,\n} as const satisfies Record<string, TokenModule>;\n\n/**\n * Surface theme registry - maps names to token modules\n */\nexport const surfaceThemes = {\n\tbase: baseSurfaceTokens,\n\tsharp: sharpSurfaceTokens,\n\tframed: framedSurfaceTokens,\n\tsoft: softSurfaceTokens,\n} as const satisfies Record<string, TokenModule>;\n\n/**\n * Typography theme registry - maps names to token modules\n * Property-based typography tokens with theme overrides\n */\nexport const typographyThemes = {\n\tbase: baseTypographyTokens,\n\t\"nds-brand\": ndsBrandTypographyTokens,\n\tdarktech: darktechTypographyTokens,\n\trecreation: recreationTypographyTokens,\n} as const satisfies Record<string, TokenModule>;\n\n/**\n * Spatial theme registry - maps names to token modules\n */\nexport const spatialThemes = {\n\tbase: baseSpatialTokens,\n\tairy: airySpatialTokens,\n\tbalanced: balancedSpatialTokens,\n\tbop: bopSpatialTokens,\n\tcompact: compactSpatialTokens,\n\tcustom: customSpatialTokens,\n} as const satisfies Record<string, TokenModule>;\n\n/**\n * Valid color theme names\n */\nexport type ColorThemeName = keyof typeof colorThemes;\n\n/**\n * Valid surface theme names\n */\nexport type SurfaceThemeName = keyof typeof surfaceThemes;\n\n/**\n * Valid typography theme names\n */\nexport type TypographyThemeName = keyof typeof typographyThemes;\n\n/**\n * Valid spatial theme names\n */\nexport type SpatialThemeName = keyof typeof spatialThemes;\n\n/**\n * All available color theme names\n */\nexport const colorThemeNames = Object.keys(colorThemes) as ColorThemeName[];\n\n/**\n * All available surface theme names\n */\nexport const surfaceThemeNames = Object.keys(\n\tsurfaceThemes,\n) as SurfaceThemeName[];\n\n/**\n * All available typography theme names\n */\nexport const typographyThemeNames = Object.keys(\n\ttypographyThemes,\n) as TypographyThemeName[];\n\n/**\n * All available spatial theme names\n */\nexport const spatialThemeNames = Object.keys(\n\tspatialThemes,\n) as SpatialThemeName[];\n\n/**\n * Get color token module by name\n */\nexport function getColorTheme(name: ColorThemeName): TokenModule {\n\treturn colorThemes[name];\n}\n\n/**\n * Get surface token module by name\n */\nexport function getSurfaceTheme(name: SurfaceThemeName): TokenModule {\n\treturn surfaceThemes[name];\n}\n\n/**\n * Get spatial token module by name\n */\nexport function getSpatialTheme(name: SpatialThemeName): TokenModule {\n\treturn spatialThemes[name];\n}\n\n/**\n * Get typography token module by name\n */\nexport function getTypographyTheme(name: TypographyThemeName): TokenModule {\n\treturn typographyThemes[name];\n}\n","/**\n * Theme Resolver\n *\n * Resolves token references and merges extended collections with their bases.\n * Works with the token-server API collection format.\n */\n\nimport type {\n\tAPICollection,\n\tCollectionDefinition,\n\tCollectionTokenValue,\n\tColorValue,\n\tResolvedTokenValue,\n\tTokenReference,\n\tTokenSet,\n} from \"../collections/types\";\nimport {\n\tapiCollectionToDefinition,\n\tisColorValue,\n\tisDimensionValue,\n\tisTokenReference,\n\tparseTokenReference,\n} from \"../collections/types\";\nimport type { NestedStringRecord } from \"./types\";\n\n/**\n * Resolved collection - all references resolved to CSS values\n */\nexport interface ResolvedCollection {\n\tid: string;\n\tname: string;\n\t/** Flat token map: \"color-bg-page\" -> \"color(srgb ...)\" */\n\tflatTokens: Record<string, string>;\n\t/** Nested token structure: { color: { bg: { page: \"color(srgb ...)\" } } } */\n\tnestedTokens: NestedStringRecord;\n}\n\n/**\n * Check if a value is a token value object (has $type and $value)\n */\nfunction isTokenValue(value: unknown): value is CollectionTokenValue {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\treturn \"$type\" in obj && \"$value\" in obj;\n}\n\n/**\n * Flatten nested token structure to flat key-value pairs\n * e.g., { tokens: { \"color-bg-page\": { $type, $value } } } -> { \"color-bg-page\": { $type, $value } }\n */\nexport function flattenCollectionTokens(\n\ttokens: Record<string, TokenSet | CollectionTokenValue>,\n): Record<string, CollectionTokenValue> {\n\tconst flat: Record<string, CollectionTokenValue> = {};\n\n\tfunction traverse(obj: Record<string, unknown>, prefix = \"\"): void {\n\t\tfor (const [key, value] of Object.entries(obj)) {\n\t\t\t// Skip $type at group level\n\t\t\tif (key === \"$type\" && typeof value === \"string\") continue;\n\n\t\t\tconst fullKey = prefix ? `${prefix}-${key}` : key;\n\n\t\t\tif (isTokenValue(value)) {\n\t\t\t\tflat[fullKey] = value;\n\t\t\t} else if (typeof value === \"object\" && value !== null) {\n\t\t\t\ttraverse(value as Record<string, unknown>, fullKey);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Handle wrapper like { tokens: { ... } }\n\tif (\"tokens\" in tokens && typeof tokens.tokens === \"object\") {\n\t\ttraverse(tokens.tokens as Record<string, unknown>);\n\t} else {\n\t\ttraverse(tokens);\n\t}\n\n\treturn flat;\n}\n\n/**\n * Resolve all token references in a collection\n */\nexport function resolveCollectionReferences(\n\tcollection: CollectionDefinition,\n\tallTokens: Map<string, CollectionTokenValue>,\n): ResolvedCollection {\n\tconst flatTokens: Record<string, string> = {};\n\tconst collectionTokens = flattenCollectionTokens(collection.tokens);\n\n\tfor (const [name, token] of Object.entries(collectionTokens)) {\n\t\tconst resolvedValue = resolveTokenValue(token.$value, allTokens, new Set());\n\t\tflatTokens[name] = formatValueToCSS(resolvedValue, token.$type);\n\t}\n\n\treturn {\n\t\tid: collection.id,\n\t\tname: collection.name,\n\t\tflatTokens,\n\t\tnestedTokens: flatToNested(flatTokens),\n\t};\n}\n\n/**\n * Convert a token reference name to a CSS variable reference\n * e.g., \"primitive.color.gray.50\" -> \"var(--color-gray-50)\"\n * Strips the \"primitive.\" prefix since CSS vars don't include it\n */\nfunction tokenRefToCSSVar(refName: string): string {\n\t// Strip \"primitive.\" prefix if present - CSS vars don't include it\n\tconst cleanName = refName.replace(/^primitive\\./, \"\");\n\tconst cssVarName = cleanName.replace(/\\./g, \"-\");\n\treturn `var(--${cssVarName})`;\n}\n\n/**\n * Resolve a token value, following references as needed\n * When a reference can't be found in the token map, it's converted to a CSS variable reference\n */\nfunction resolveTokenValue(\n\tvalue: ResolvedTokenValue | TokenReference,\n\tallTokens: Map<string, CollectionTokenValue>,\n\tvisited: Set<string>,\n): ResolvedTokenValue {\n\t// If it's a reference, resolve it\n\tif (isTokenReference(value)) {\n\t\tconst refName = parseTokenReference(value);\n\n\t\t// Circular reference check\n\t\tif (visited.has(refName)) {\n\t\t\tconsole.warn(`Circular reference detected: ${refName}`);\n\t\t\treturn tokenRefToCSSVar(refName);\n\t\t}\n\n\t\tconst referencedToken = allTokens.get(refName);\n\t\tif (!referencedToken) {\n\t\t\t// Reference not found in token map - assume it's a primitive that exists as a CSS variable\n\t\t\treturn tokenRefToCSSVar(refName);\n\t\t}\n\n\t\tvisited.add(refName);\n\t\treturn resolveTokenValue(referencedToken.$value, allTokens, visited);\n\t}\n\n\treturn value;\n}\n\n/**\n * Format a resolved value to a CSS-compatible string\n */\nfunction formatValueToCSS(value: ResolvedTokenValue, type: string): string {\n\t// Handle color values\n\tif (type === \"color\" && isColorValue(value)) {\n\t\treturn colorValueToCSS(value);\n\t}\n\n\t// Handle dimension values\n\tif (type === \"dimension\" && isDimensionValue(value)) {\n\t\treturn `${value.value}${value.unit}`;\n\t}\n\n\t// Handle string/number directly\n\tif (typeof value === \"string\") {\n\t\t// Check if it's a hex color\n\t\tif (value.startsWith(\"#\")) {\n\t\t\treturn hexToSRGB(value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tif (typeof value === \"number\") {\n\t\treturn String(value);\n\t}\n\n\t// Handle objects - try to stringify meaningfully\n\tif (typeof value === \"object\" && value !== null) {\n\t\t// Check for color-like objects\n\t\tif (\"hex\" in value && typeof (value as ColorValue).hex === \"string\") {\n\t\t\treturn colorValueToCSS(value as ColorValue);\n\t\t}\n\t}\n\n\treturn String(value);\n}\n\n/**\n * Convert a hex color to sRGB CSS format\n */\nfunction hexToSRGB(hex: string): string {\n\tconst cleanHex = hex.replace(\"#\", \"\");\n\tconst r = Number.parseInt(cleanHex.slice(0, 2), 16) / 255;\n\tconst g = Number.parseInt(cleanHex.slice(2, 4), 16) / 255;\n\tconst b = Number.parseInt(cleanHex.slice(4, 6), 16) / 255;\n\treturn `color(srgb ${r} ${g} ${b})`;\n}\n\n/**\n * Convert a color value object to CSS string\n */\nfunction colorValueToCSS(color: ColorValue): string {\n\tconst [r, g, b] = color.components;\n\tconst alpha = color.alpha ?? 1;\n\n\tif (alpha < 1) {\n\t\treturn `color(srgb ${r} ${g} ${b} / ${alpha})`;\n\t}\n\treturn `color(srgb ${r} ${g} ${b})`;\n}\n\n/**\n * Merge an extended collection with its base collection\n * Extended tokens override base tokens with the same name\n */\nexport function mergeCollections(\n\tbase: CollectionDefinition,\n\textension: CollectionDefinition,\n): CollectionDefinition {\n\tconst baseFlat = flattenCollectionTokens(base.tokens);\n\tconst extFlat = flattenCollectionTokens(extension.tokens);\n\n\t// Merge flat tokens back into nested structure\n\tconst mergedFlat = { ...baseFlat, ...extFlat };\n\n\treturn {\n\t\tid: extension.id,\n\t\tname: extension.name,\n\t\ttype: \"extended\",\n\t\tbaseCollectionId: base.id,\n\t\tdescription: extension.description,\n\t\ttokens: { tokens: mergedFlat },\n\t};\n}\n\n/**\n * Build a map of all tokens from multiple collections\n * Later collections override earlier ones\n */\nexport function buildTokenMap(\n\tcollections: CollectionDefinition[],\n): Map<string, CollectionTokenValue> {\n\tconst tokenMap = new Map<string, CollectionTokenValue>();\n\n\tfor (const collection of collections) {\n\t\tconst flat = flattenCollectionTokens(collection.tokens);\n\t\tfor (const [name, token] of Object.entries(flat)) {\n\t\t\ttokenMap.set(name, token);\n\t\t}\n\t}\n\n\treturn tokenMap;\n}\n\n/**\n * Convert a flat token map to a nested structure based on token naming\n * e.g., \"color-bg-page\" -> { color: { bg: { page: value } } }\n */\nexport function flatToNested(\n\tflatTokens: Record<string, string>,\n): NestedStringRecord {\n\tconst nested: NestedStringRecord = {};\n\n\tfor (const [key, value] of Object.entries(flatTokens)) {\n\t\tconst parts = key.split(\"-\");\n\t\tlet current = nested;\n\n\t\tfor (let i = 0; i < parts.length - 1; i++) {\n\t\t\tconst part = parts[i];\n\t\t\tif (!part) continue;\n\n\t\t\tif (!(part in current)) {\n\t\t\t\tcurrent[part] = {};\n\t\t\t}\n\n\t\t\tconst next = current[part];\n\t\t\tif (typeof next === \"string\") {\n\t\t\t\t// If we hit a string value, we can't nest further\n\t\t\t\t// This means there's a naming conflict\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`Token naming conflict at ${parts.slice(0, i + 1).join(\"-\")}`,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (next === undefined) {\n\t\t\t\t// Should not happen since we just set it above, but satisfy TypeScript\n\t\t\t\tcurrent[part] = {};\n\t\t\t\tcurrent = current[part] as NestedStringRecord;\n\t\t\t} else {\n\t\t\t\tcurrent = next;\n\t\t\t}\n\t\t}\n\n\t\tconst lastPart = parts[parts.length - 1];\n\t\tif (lastPart && typeof current === \"object\") {\n\t\t\tcurrent[lastPart] = value;\n\t\t}\n\t}\n\n\treturn nested;\n}\n\n/**\n * Convert a flat token map directly to CSS variables\n * e.g., { \"color-bg-page\": \"#fff\" } -> { \"--color-bg-page\": \"#fff\" }\n * This is more efficient than flatToNested + nestedToCSSVars\n */\nexport function flatToCSSVars(\n\tflatTokens: Record<string, string>,\n): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(flatTokens)) {\n\t\tresult[`--${key}`] = value;\n\t}\n\treturn result;\n}\n\n/**\n * Convert a nested structure back to flat CSS variable names\n * e.g., { color: { bg: { page: '#fff' } } } -> { '--color-bg-page': '#fff' }\n */\nexport function nestedToCSSVars(\n\tnested: NestedStringRecord,\n\tprefix = \"\",\n): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\n\tfunction traverse(obj: NestedStringRecord, currentPrefix: string): void {\n\t\tfor (const [key, value] of Object.entries(obj)) {\n\t\t\tconst newPrefix = currentPrefix ? `${currentPrefix}-${key}` : key;\n\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tresult[`--${newPrefix}`] = value;\n\t\t\t} else {\n\t\t\t\ttraverse(value, newPrefix);\n\t\t\t}\n\t\t}\n\t}\n\n\ttraverse(nested, prefix);\n\treturn result;\n}\n\n/**\n * Deep merge two nested token structures\n * Values from source override values in target\n */\nexport function deepMergeTokens(\n\ttarget: NestedStringRecord,\n\tsource: NestedStringRecord,\n): NestedStringRecord {\n\tconst result: NestedStringRecord = { ...target };\n\n\tfor (const [key, value] of Object.entries(source)) {\n\t\tif (typeof value === \"string\") {\n\t\t\tresult[key] = value;\n\t\t} else {\n\t\t\tconst targetValue = result[key];\n\t\t\tif (typeof targetValue === \"object\" && targetValue !== null) {\n\t\t\t\tresult[key] = deepMergeTokens(targetValue as NestedStringRecord, value);\n\t\t\t} else {\n\t\t\t\tresult[key] = { ...value };\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Resolve a collection with its full inheritance chain from the API\n */\nexport async function resolveCollectionFromAPI(\n\tcollectionId: string,\n\tfetchCollection: (id: string) => Promise<APICollection | null>,\n): Promise<ResolvedCollection | null> {\n\tconst collection = await fetchCollection(collectionId);\n\tif (!collection) return null;\n\n\tconst definition = apiCollectionToDefinition(collection);\n\n\t// If this extends another collection, resolve the base first\n\tif (definition.baseCollectionId) {\n\t\tconst baseResolved = await resolveCollectionFromAPI(\n\t\t\tdefinition.baseCollectionId,\n\t\t\tfetchCollection,\n\t\t);\n\n\t\tif (baseResolved) {\n\t\t\t// Merge base tokens with this collection's tokens\n\t\t\tconst baseCollection = await fetchCollection(definition.baseCollectionId);\n\t\t\tif (baseCollection) {\n\t\t\t\tconst baseDef = apiCollectionToDefinition(baseCollection);\n\t\t\t\tconst merged = mergeCollections(baseDef, definition);\n\t\t\t\tconst tokenMap = buildTokenMap([merged]);\n\t\t\t\treturn resolveCollectionReferences(merged, tokenMap);\n\t\t\t}\n\t\t}\n\t}\n\n\t// No inheritance, just resolve this collection\n\tconst tokenMap = buildTokenMap([definition]);\n\treturn resolveCollectionReferences(definition, tokenMap);\n}\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { cubicBezier, duration } from \"../utils\";\n\n/**\n * Primitive animation tokens\n * Defines duration and easing values for consistent motion design\n */\nexport const primitiveAnimation = {\n\tprimitive: {\n\t\tduration: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"duration\",\n\t\t\t$description: \"Animation duration values\",\n\t\t\t/**\n\t\t\t * Instant - for immediate feedback (e.g., button press)\n\t\t\t */\n\t\t\t\"0\": duration(0),\n\t\t\t/**\n\t\t\t * Extra fast - for micro-interactions (e.g., hover states)\n\t\t\t */\n\t\t\t\"75\": duration(75),\n\t\t\t/**\n\t\t\t * Fast - for quick transitions (e.g., fade in/out, color changes)\n\t\t\t */\n\t\t\t\"150\": duration(150),\n\t\t\t/**\n\t\t\t * Normal - for standard UI transitions (e.g., menu open, modal appear)\n\t\t\t */\n\t\t\t\"200\": duration(200),\n\t\t\t/**\n\t\t\t * Medium - for moderate animations (e.g., accordion expand)\n\t\t\t */\n\t\t\t\"300\": duration(300),\n\t\t\t/**\n\t\t\t * Slow - for deliberate animations (e.g., page transitions)\n\t\t\t */\n\t\t\t\"500\": duration(500),\n\t\t\t/**\n\t\t\t * Extra slow - for dramatic effect (e.g., hero animations)\n\t\t\t */\n\t\t\t\"700\": duration(700),\n\t\t\t/**\n\t\t\t * Very slow - for long-running animations (e.g., progress indicators)\n\t\t\t */\n\t\t\t\"1000\": duration(1000),\n\t\t},\n\t\teasing: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t\tskip: true,\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"cubicBezier\",\n\t\t\t$description: \"Easing curves for animations\",\n\t\t\t/**\n\t\t\t * Linear - constant speed, no acceleration\n\t\t\t */\n\t\t\tlinear: cubicBezier(0, 0, 1, 1),\n\t\t\t/**\n\t\t\t * Ease - subtle acceleration and deceleration (CSS default)\n\t\t\t */\n\t\t\tease: cubicBezier(0.25, 0.1, 0.25, 1),\n\t\t\t/**\n\t\t\t * Ease In - starts slow, accelerates\n\t\t\t * Use for elements exiting the screen\n\t\t\t */\n\t\t\t\"ease-in\": cubicBezier(0.42, 0, 1, 1),\n\t\t\t/**\n\t\t\t * Ease Out - starts fast, decelerates\n\t\t\t * Use for elements entering the screen\n\t\t\t */\n\t\t\t\"ease-out\": cubicBezier(0, 0, 0.58, 1),\n\t\t\t/**\n\t\t\t * Ease In Out - slow start and end\n\t\t\t * Use for elements that stay on screen\n\t\t\t */\n\t\t\t\"ease-in-out\": cubicBezier(0.42, 0, 0.58, 1),\n\t\t\t/**\n\t\t\t * Emphasized - dramatic ease out with overshoot feel\n\t\t\t * Based on Material Design's emphasized easing\n\t\t\t */\n\t\t\temphasized: cubicBezier(0.2, 0, 0, 1),\n\t\t\t/**\n\t\t\t * Smooth - Apple-style smooth easing\n\t\t\t * Great for accordion, height transitions\n\t\t\t */\n\t\t\tsmooth: cubicBezier(0.23, 1, 0.32, 1),\n\t\t\t/**\n\t\t\t * Bounce - slight overshoot at the end\n\t\t\t * Use sparingly for playful interactions\n\t\t\t */\n\t\t\tbounce: cubicBezier(0.34, 1.56, 0.64, 1),\n\t\t\t/**\n\t\t\t * Snappy - quick response, smooth finish\n\t\t\t * Good for hover states and quick feedback\n\t\t\t */\n\t\t\tsnappy: cubicBezier(0.4, 0, 0.2, 1),\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { dimension } from \"../utils\";\n\n/**\n * Primitive breakpoint tokens\n * Defines responsive breakpoints for the design system\n *\n * - sm: Mobile (320px+)\n * - md: Tablet (768px+)\n * - lg: Desktop (1440px+)\n *\n * NOTE: These are display-only in Figma and not synced as variables\n * because breakpoints are implementation details, not design variables.\n *\n * The maxWidthAlias extension generates max-w-* utility classes in Tailwind.\n */\nexport const primitiveBreakpoints = {\n\tprimitive: {\n\t\tbreakpoint: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"\", // Not used - skip is true\n\t\t\t\t\tskip: true, // Breakpoints are not synced to Figma\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\tsm: {\n\t\t\t\t...dimension(320),\n\t\t\t\t$extensions: { \"nds.maxWidthAlias\": \"mobile\" },\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\t...dimension(768),\n\t\t\t\t$extensions: { \"nds.maxWidthAlias\": \"tablet\" },\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\t...dimension(1440),\n\t\t\t\t$extensions: { \"nds.maxWidthAlias\": \"desktop\" },\n\t\t\t},\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { srgb } from \"../utils\";\n\nexport const primitiveColors = {\n\tprimitive: {\n\t\tcolor: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"color\",\n\t\t\tgray: {\n\t\t\t\t\"50\": srgb(\"#FAFAFA\"),\n\t\t\t\t\"100\": srgb(\"#F5F5F5\"),\n\t\t\t\t\"200\": srgb(\"#EEEEEE\"),\n\t\t\t\t\"300\": srgb(\"#E0E0E0\"),\n\t\t\t\t\"400\": srgb(\"#BDBDBD\"),\n\t\t\t\t\"500\": srgb(\"#9E9E9E\"),\n\t\t\t\t\"600\": srgb(\"#757575\"),\n\t\t\t\t\"700\": srgb(\"#616161\"),\n\t\t\t\t\"800\": srgb(\"#424242\"),\n\t\t\t\t\"900\": srgb(\"#212121\"),\n\t\t\t\t\"1000\": srgb(\"#1A1A1A\"),\n\t\t\t\t\"1100\": srgb(\"#141414\"),\n\t\t\t\t\"1200\": srgb(\"#0A0A0A\"),\n\t\t\t},\n\t\t\tbrown: {\n\t\t\t\t\"50\": srgb(\"#EEEBE9\"),\n\t\t\t\t\"100\": srgb(\"#D5CCC9\"),\n\t\t\t\t\"200\": srgb(\"#B9ABA5\"),\n\t\t\t\t\"300\": srgb(\"#9D8980\"),\n\t\t\t\t\"400\": srgb(\"#886F65\"),\n\t\t\t\t\"500\": srgb(\"#74564A\"),\n\t\t\t\t\"600\": srgb(\"#684D43\"),\n\t\t\t\t\"700\": srgb(\"#594139\"),\n\t\t\t\t\"800\": srgb(\"#4A352F\"),\n\t\t\t\t\"900\": srgb(\"#3B2824\"),\n\t\t\t\t\"1000\": srgb(\"#2F201D\"),\n\t\t\t\t\"1100\": srgb(\"#1C1312\"),\n\t\t\t\t\"1200\": srgb(\"#18100E\"),\n\t\t\t},\n\t\t\tsteel: {\n\t\t\t\t\"50\": srgb(\"#EDEFF1\"),\n\t\t\t\t\"100\": srgb(\"#D1D8DC\"),\n\t\t\t\t\"200\": srgb(\"#B3BEC4\"),\n\t\t\t\t\"300\": srgb(\"#94A3AD\"),\n\t\t\t\t\"400\": srgb(\"#7D8F9B\"),\n\t\t\t\t\"500\": srgb(\"#667C89\"),\n\t\t\t\t\"600\": srgb(\"#596D79\"),\n\t\t\t\t\"700\": srgb(\"#495963\"),\n\t\t\t\t\"800\": srgb(\"#3A474E\"),\n\t\t\t\t\"900\": srgb(\"#283237\"),\n\t\t\t\t\"1000\": srgb(\"#222B2F\"),\n\t\t\t\t\"1100\": srgb(\"#181E21\"),\n\t\t\t\t\"1200\": srgb(\"#101416\"),\n\t\t\t},\n\t\t\tred: {\n\t\t\t\t\"50\": srgb(\"#FFEBEE\"),\n\t\t\t\t\"100\": srgb(\"#FFCDD2\"),\n\t\t\t\t\"200\": srgb(\"#EF9A9A\"),\n\t\t\t\t\"300\": srgb(\"#E57373\"),\n\t\t\t\t\"400\": srgb(\"#EF5350\"),\n\t\t\t\t\"500\": srgb(\"#F44336\"),\n\t\t\t\t\"600\": srgb(\"#E53935\"),\n\t\t\t\t\"700\": srgb(\"#D32F2F\"),\n\t\t\t\t\"800\": srgb(\"#C62828\"),\n\t\t\t\t\"900\": srgb(\"#B71C1C\"),\n\t\t\t\tv100: srgb(\"#FF8A80\"),\n\t\t\t\tv200: srgb(\"#FF5252\"),\n\t\t\t\tv300: srgb(\"#FF1744\"),\n\t\t\t\tv400: srgb(\"#D50000\"),\n\t\t\t},\n\t\t\tpink: {\n\t\t\t\t\"50\": srgb(\"#F8E5EC\"),\n\t\t\t\t\"100\": srgb(\"#EFBECF\"),\n\t\t\t\t\"200\": srgb(\"#E694B0\"),\n\t\t\t\t\"300\": srgb(\"#DF6B92\"),\n\t\t\t\t\"400\": srgb(\"#DA4F7A\"),\n\t\t\t\t\"500\": srgb(\"#D63864\"),\n\t\t\t\t\"600\": srgb(\"#C63361\"),\n\t\t\t\t\"700\": srgb(\"#B22D5B\"),\n\t\t\t\t\"800\": srgb(\"#9F2757\"),\n\t\t\t\t\"900\": srgb(\"#7D1D4E\"),\n\t\t\t\tv100: srgb(\"#EF87AA\"),\n\t\t\t\tv200: srgb(\"#EB5181\"),\n\t\t\t\tv300: srgb(\"#E1305A\"),\n\t\t\t\tv400: srgb(\"#B52B62\"),\n\t\t\t},\n\t\t\tpurple: {\n\t\t\t\t\"50\": srgb(\"#F1E5F4\"),\n\t\t\t\t\"100\": srgb(\"#DBBFE4\"),\n\t\t\t\t\"200\": srgb(\"#C596D4\"),\n\t\t\t\t\"300\": srgb(\"#AF6CC3\"),\n\t\t\t\t\"400\": srgb(\"#9F4DB6\"),\n\t\t\t\t\"500\": srgb(\"#9031AA\"),\n\t\t\t\t\"600\": srgb(\"#832DA4\"),\n\t\t\t\t\"700\": srgb(\"#71279C\"),\n\t\t\t\t\"800\": srgb(\"#612294\"),\n\t\t\t\t\"900\": srgb(\"#441886\"),\n\t\t\t\tv100: srgb(\"#DC86F5\"),\n\t\t\t\tv200: srgb(\"#CF4EF3\"),\n\t\t\t\tv300: srgb(\"#C32AF0\"),\n\t\t\t\tv400: srgb(\"#9B20F6\"),\n\t\t\t},\n\t\t\tiris: {\n\t\t\t\t\"50\": srgb(\"#ECE7F5\"),\n\t\t\t\t\"100\": srgb(\"#CFC4E6\"),\n\t\t\t\t\"200\": srgb(\"#AF9ED7\"),\n\t\t\t\t\"300\": srgb(\"#9076C7\"),\n\t\t\t\t\"400\": srgb(\"#7859BC\"),\n\t\t\t\t\"500\": srgb(\"#613DB0\"),\n\t\t\t\t\"600\": srgb(\"#5837AB\"),\n\t\t\t\t\"700\": srgb(\"#4C2FA2\"),\n\t\t\t\t\"800\": srgb(\"#40299A\"),\n\t\t\t\t\"900\": srgb(\"#2D1D8C\"),\n\t\t\t\tv100: srgb(\"#DC86F5\"),\n\t\t\t\tv200: srgb(\"#CF4EF3\"),\n\t\t\t\tv300: srgb(\"#C32AF0\"),\n\t\t\t\tv400: srgb(\"#9B20F6\"),\n\t\t\t},\n\t\t\tindigo: {\n\t\t\t\t\"25\": srgb(\"#F5F7FF\"), // very light tint - menu hover\n\t\t\t\t\"35\": srgb(\"#EDF2FF\"), // light tint - menu selected\n\t\t\t\t\"50\": srgb(\"#E8EAF5\"),\n\t\t\t\t\"100\": srgb(\"#C6CAE6\"),\n\t\t\t\t\"200\": srgb(\"#A0A8D6\"),\n\t\t\t\t\"300\": srgb(\"#7B86C6\"),\n\t\t\t\t\"400\": srgb(\"#5F6BBA\"),\n\t\t\t\t\"500\": srgb(\"#4251AF\"),\n\t\t\t\t\"600\": srgb(\"#3C49A5\"),\n\t\t\t\t\"700\": srgb(\"#333F99\"),\n\t\t\t\t\"800\": srgb(\"#2A358E\"),\n\t\t\t\t\"900\": srgb(\"#1B2379\"),\n\t\t\t\tv100: srgb(\"#8F9EF8\"),\n\t\t\t\tv200: srgb(\"#586DF5\"),\n\t\t\t\tv300: srgb(\"#425AF5\"),\n\t\t\t\tv400: srgb(\"#364FF4\"),\n\t\t\t},\n\t\t\tblue: {\n\t\t\t\t\"50\": srgb(\"#E6F2FC\"),\n\t\t\t\t\"100\": srgb(\"#C2DDF8\"),\n\t\t\t\t\"200\": srgb(\"#9CC8F5\"),\n\t\t\t\t\"300\": srgb(\"#77B3F0\"),\n\t\t\t\t\"400\": srgb(\"#5DA3EF\"),\n\t\t\t\t\"500\": srgb(\"#4894EC\"),\n\t\t\t\t\"600\": srgb(\"#4186DE\"),\n\t\t\t\t\"700\": srgb(\"#3874CB\"),\n\t\t\t\t\"800\": srgb(\"#2F64BA\"),\n\t\t\t\t\"900\": srgb(\"#1F469B\"),\n\t\t\t\tv100: srgb(\"#8CB0F9\"),\n\t\t\t\tv200: srgb(\"#5589F7\"),\n\t\t\t\tv250: srgb(\"#3B85FF\"), // menu selected text\n\t\t\t\tv300: srgb(\"#4078F6\"),\n\t\t\t\tv400: srgb(\"#3761F6\"),\n\t\t\t},\n\t\t\tice: {\n\t\t\t\t\"50\": srgb(\"#E5F4FD\"),\n\t\t\t\t\"100\": srgb(\"#BDE4F9\"),\n\t\t\t\t\"200\": srgb(\"#94D2F6\"),\n\t\t\t\t\"300\": srgb(\"#6FC1F2\"),\n\t\t\t\t\"400\": srgb(\"#59B4F0\"),\n\t\t\t\t\"500\": srgb(\"#4BA7EE\"),\n\t\t\t\t\"600\": srgb(\"#4499DF\"),\n\t\t\t\t\"700\": srgb(\"#3B86CB\"),\n\t\t\t\t\"800\": srgb(\"#3275B8\"),\n\t\t\t\t\"900\": srgb(\"#235696\"),\n\t\t\t\tv100: srgb(\"#8CB0F9\"),\n\t\t\t\tv200: srgb(\"#5589F7\"),\n\t\t\t\tv300: srgb(\"#4078F6\"),\n\t\t\t\tv400: srgb(\"#3761F6\"),\n\t\t\t},\n\t\t\tcyan: {\n\t\t\t\t\"50\": srgb(\"#E4F6F9\"),\n\t\t\t\t\"100\": srgb(\"#BEE9F1\"),\n\t\t\t\t\"200\": srgb(\"#96DCE8\"),\n\t\t\t\t\"300\": srgb(\"#73CDDE\"),\n\t\t\t\t\"400\": srgb(\"#5FC3D7\"),\n\t\t\t\t\"500\": srgb(\"#54B9D1\"),\n\t\t\t\t\"600\": srgb(\"#4CA9BE\"),\n\t\t\t\t\"700\": srgb(\"#4295A5\"),\n\t\t\t\t\"800\": srgb(\"#38818D\"),\n\t\t\t\t\"900\": srgb(\"#275F63\"),\n\t\t\t\tv100: srgb(\"#A3FCFE\"),\n\t\t\t\tv200: srgb(\"#77FBFD\"),\n\t\t\t\tv300: srgb(\"#68E2FB\"),\n\t\t\t\tv400: srgb(\"#52B5D0\"),\n\t\t\t},\n\t\t\tteal: {\n\t\t\t\t\"50\": srgb(\"#E3F1F1\"),\n\t\t\t\t\"100\": srgb(\"#BBDEDB\"),\n\t\t\t\t\"200\": srgb(\"#91C9C4\"),\n\t\t\t\t\"300\": srgb(\"#6AB4AC\"),\n\t\t\t\t\"400\": srgb(\"#51A49A\"),\n\t\t\t\t\"500\": srgb(\"#429488\"),\n\t\t\t\t\"600\": srgb(\"#3B877B\"),\n\t\t\t\t\"700\": srgb(\"#34776B\"),\n\t\t\t\t\"800\": srgb(\"#2C675C\"),\n\t\t\t\t\"900\": srgb(\"#1E4C40\"),\n\t\t\t\tv100: srgb(\"#BBFDEC\"),\n\t\t\t\tv200: srgb(\"#91FCDC\"),\n\t\t\t\tv300: srgb(\"#6DE6B9\"),\n\t\t\t\tv400: srgb(\"#55BCA6\"),\n\t\t\t},\n\t\t\tgreen: {\n\t\t\t\t\"50\": srgb(\"#EAF5EA\"),\n\t\t\t\t\"100\": srgb(\"#CEE5CB\"),\n\t\t\t\t\"200\": srgb(\"#AFD5AB\"),\n\t\t\t\t\"300\": srgb(\"#91C58A\"),\n\t\t\t\t\"400\": srgb(\"#7BB972\"),\n\t\t\t\t\"500\": srgb(\"#67AD5B\"),\n\t\t\t\t\"600\": srgb(\"#5D9E52\"),\n\t\t\t\t\"700\": srgb(\"#508C46\"),\n\t\t\t\t\"800\": srgb(\"#457B3B\"),\n\t\t\t\t\"900\": srgb(\"#2F5D28\"),\n\t\t\t\tv100: srgb(\"#C6F4CD\"),\n\t\t\t\tv200: srgb(\"#8EEDB3\"),\n\t\t\t\tv300: srgb(\"#69E282\"),\n\t\t\t\tv400: srgb(\"#5AC561\"),\n\t\t\t},\n\t\t\tsage: {\n\t\t\t\t\"50\": srgb(\"#F2F8EA\"),\n\t\t\t\t\"100\": srgb(\"#DFECCB\"),\n\t\t\t\t\"200\": srgb(\"#CAE0AB\"),\n\t\t\t\t\"300\": srgb(\"#B6D48A\"),\n\t\t\t\t\"400\": srgb(\"#A6CB72\"),\n\t\t\t\t\"500\": srgb(\"#97C15C\"),\n\t\t\t\t\"600\": srgb(\"#88B153\"),\n\t\t\t\t\"700\": srgb(\"#749E47\"),\n\t\t\t\t\"800\": srgb(\"#618A3D\"),\n\t\t\t\t\"900\": srgb(\"#416829\"),\n\t\t\t\tv100: srgb(\"#D6FD9D\"),\n\t\t\t\tv200: srgb(\"#C3FD73\"),\n\t\t\t\tv300: srgb(\"#9BFC4E\"),\n\t\t\t\tv400: srgb(\"#85DA47\"),\n\t\t\t},\n\t\t\tlime: {\n\t\t\t\t\"50\": srgb(\"#F9FBE9\"),\n\t\t\t\t\"100\": srgb(\"#F1F4C8\"),\n\t\t\t\t\"200\": srgb(\"#E8EEA5\"),\n\t\t\t\t\"300\": srgb(\"#DEE784\"),\n\t\t\t\t\"400\": srgb(\"#D7E06D\"),\n\t\t\t\t\"500\": srgb(\"#D0DB59\"),\n\t\t\t\t\"600\": srgb(\"#C2CA51\"),\n\t\t\t\t\"700\": srgb(\"#B0B447\"),\n\t\t\t\t\"800\": srgb(\"#9E9D3D\"),\n\t\t\t\t\"900\": srgb(\"#80772C\"),\n\t\t\t\tv100: srgb(\"#F6FF92\"),\n\t\t\t\tv200: srgb(\"#F1FE67\"),\n\t\t\t\tv300: srgb(\"#D2FD51\"),\n\t\t\t\tv400: srgb(\"#BBE849\"),\n\t\t\t},\n\t\t\tyellow: {\n\t\t\t\t\"50\": srgb(\"#FFFDE9\"),\n\t\t\t\t\"100\": srgb(\"#FEF9CA\"),\n\t\t\t\t\"200\": srgb(\"#FDF5A8\"),\n\t\t\t\t\"300\": srgb(\"#FDF188\"),\n\t\t\t\t\"400\": srgb(\"#FCEE72\"),\n\t\t\t\t\"500\": srgb(\"#FCEC60\"),\n\t\t\t\t\"600\": srgb(\"#F7D959\"),\n\t\t\t\t\"700\": srgb(\"#F2C24F\"),\n\t\t\t\t\"800\": srgb(\"#EDAB46\"),\n\t\t\t\t\"900\": srgb(\"#E68537\"),\n\t\t\t\tv100: srgb(\"#FFFF9C\"),\n\t\t\t\tv200: srgb(\"#FFFF54\"),\n\t\t\t\tv300: srgb(\"#FCEB4E\"),\n\t\t\t\tv400: srgb(\"#F9D749\"),\n\t\t\t},\n\t\t\tamber: {\n\t\t\t\t\"50\": srgb(\"#FEF8E3\"),\n\t\t\t\t\"100\": srgb(\"#FCEDBA\"),\n\t\t\t\t\"200\": srgb(\"#FAE18F\"),\n\t\t\t\t\"300\": srgb(\"#F8D667\"),\n\t\t\t\t\"400\": srgb(\"#F7CC50\"),\n\t\t\t\t\"500\": srgb(\"#F6C344\"),\n\t\t\t\t\"600\": srgb(\"#F4B63F\"),\n\t\t\t\t\"700\": srgb(\"#F2A43A\"),\n\t\t\t\t\"800\": srgb(\"#F09436\"),\n\t\t\t\t\"900\": srgb(\"#EE782F\"),\n\t\t\t\tv100: srgb(\"#FBE68D\"),\n\t\t\t\tv200: srgb(\"#F9D85E\"),\n\t\t\t\tv300: srgb(\"#F6C644\"),\n\t\t\t\tv400: srgb(\"#F3AF3D\"),\n\t\t\t},\n\t\t\torange: {\n\t\t\t\t\"50\": srgb(\"#FDF3E2\"),\n\t\t\t\t\"100\": srgb(\"#FAE1B8\"),\n\t\t\t\t\"200\": srgb(\"#F7CE8B\"),\n\t\t\t\t\"300\": srgb(\"#F4BA61\"),\n\t\t\t\t\"400\": srgb(\"#F3AB47\"),\n\t\t\t\t\"500\": srgb(\"#F19D38\"),\n\t\t\t\t\"600\": srgb(\"#EC9135\"),\n\t\t\t\t\"700\": srgb(\"#E68231\"),\n\t\t\t\t\"800\": srgb(\"#DF742C\"),\n\t\t\t\t\"900\": srgb(\"#D55B26\"),\n\t\t\t\tv100: srgb(\"#F8D38B\"),\n\t\t\t\tv200: srgb(\"#F3AF56\"),\n\t\t\t\tv300: srgb(\"#F09637\"),\n\t\t\t\tv400: srgb(\"#EE762F\"),\n\t\t\t},\n\t\t\tember: {\n\t\t\t\t\"50\": srgb(\"#F8EAE7\"),\n\t\t\t\t\"100\": srgb(\"#F7CEBF\"),\n\t\t\t\t\"200\": srgb(\"#F3AF96\"),\n\t\t\t\t\"300\": srgb(\"#F0906D\"),\n\t\t\t\t\"400\": srgb(\"#EE7850\"),\n\t\t\t\t\"500\": srgb(\"#EC6337\"),\n\t\t\t\t\"600\": srgb(\"#E25D33\"),\n\t\t\t\t\"700\": srgb(\"#D5562E\"),\n\t\t\t\t\"800\": srgb(\"#C84E29\"),\n\t\t\t\t\"900\": srgb(\"#B04121\"),\n\t\t\t\tv100: srgb(\"#F2A286\"),\n\t\t\t\tv200: srgb(\"#EE774D\"),\n\t\t\t\tv300: srgb(\"#EB4F27\"),\n\t\t\t\tv400: srgb(\"#CB3E20\"),\n\t\t\t},\n\t\t\t\"alpha-black\": {\n\t\t\t\t\"5\": srgb(\"#000000\", 0.05),\n\t\t\t\t\"10\": srgb(\"#000000\", 0.1),\n\t\t\t\t\"20\": srgb(\"#000000\", 0.2),\n\t\t\t\t\"30\": srgb(\"#000000\", 0.3),\n\t\t\t\t\"40\": srgb(\"#000000\", 0.4),\n\t\t\t\t\"50\": srgb(\"#000000\", 0.5),\n\t\t\t\t\"60\": srgb(\"#000000\", 0.6),\n\t\t\t\t\"70\": srgb(\"#000000\", 0.7),\n\t\t\t\t\"80\": srgb(\"#000000\", 0.8),\n\t\t\t\t\"90\": srgb(\"#000000\", 0.9),\n\t\t\t\t\"95\": srgb(\"#000000\", 0.95),\n\t\t\t},\n\t\t\t\"alpha-white\": {\n\t\t\t\t\"5\": srgb(\"#FFFFFF\", 0.05),\n\t\t\t\t\"10\": srgb(\"#FFFFFF\", 0.1),\n\t\t\t\t\"20\": srgb(\"#FFFFFF\", 0.2),\n\t\t\t\t\"30\": srgb(\"#FFFFFF\", 0.3),\n\t\t\t\t\"40\": srgb(\"#FFFFFF\", 0.4),\n\t\t\t\t\"50\": srgb(\"#FFFFFF\", 0.5),\n\t\t\t\t\"60\": srgb(\"#FFFFFF\", 0.6),\n\t\t\t\t\"70\": srgb(\"#FFFFFF\", 0.7),\n\t\t\t\t\"80\": srgb(\"#FFFFFF\", 0.8),\n\t\t\t\t\"90\": srgb(\"#FFFFFF\", 0.9),\n\t\t\t\t\"95\": srgb(\"#FFFFFF\", 0.95),\n\t\t\t},\n\t\t\twhite: srgb(\"#FFFFFF\"),\n\t\t\tblack: srgb(\"#000000\"),\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\n\n/**\n * Primitive opacity tokens\n * Defines opacity scale from 0 to 1\n */\nexport const primitiveOpacity = {\n\tprimitive: {\n\t\topacity: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t\"0\": { $type: \"number\", $value: 0 },\n\t\t\t\"25\": { $type: \"number\", $value: 0.25 },\n\t\t\t\"50\": { $type: \"number\", $value: 0.5 },\n\t\t\t\"75\": { $type: \"number\", $value: 0.75 },\n\t\t\t\"100\": { $type: \"number\", $value: 1 },\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { dimension } from \"../utils\";\n\n/**\n * Primitive radii tokens\n * Defines radii scale from 2px to 34px (increments of 2)\n */\nexport const primitiveRadii = {\n\tprimitive: {\n\t\tradii: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\t\"0\": dimension(0),\n\t\t\t\"2\": dimension(2),\n\t\t\t\"4\": dimension(4),\n\t\t\t\"6\": dimension(6),\n\t\t\t\"8\": dimension(8),\n\t\t\t\"10\": dimension(10),\n\t\t\t\"12\": dimension(12),\n\t\t\t\"14\": dimension(14),\n\t\t\t\"16\": dimension(16),\n\t\t\t\"18\": dimension(18),\n\t\t\t\"20\": dimension(20),\n\t\t\t\"22\": dimension(22),\n\t\t\t\"24\": dimension(24),\n\t\t\t\"26\": dimension(26),\n\t\t\t\"28\": dimension(28),\n\t\t\t\"30\": dimension(30),\n\t\t\t\"32\": dimension(32),\n\t\t\t\"34\": dimension(34),\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { shadow } from \"../utils\";\n\n/**\n * Primitive shadow tokens\n * Based on Tailwind CSS shadow scale\n */\nexport const primitiveShadow: TokenModule = {\n\tprimitive: {\n\t\tshadow: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\", // Primitives collection\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tskip: true, // Shadows are managed as Effect Styles in Figma, not variables\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\tsm: shadow([\n\t\t\t\t{\n\t\t\t\t\toffsetX: 0,\n\t\t\t\t\toffsetY: 1,\n\t\t\t\t\tblur: 2,\n\t\t\t\t\tspread: 0,\n\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\talpha: 0.05,\n\t\t\t\t},\n\t\t\t]),\n\t\t\tmd: shadow([\n\t\t\t\t{\n\t\t\t\t\toffsetX: 0,\n\t\t\t\t\toffsetY: 4,\n\t\t\t\t\tblur: 6,\n\t\t\t\t\tspread: -1,\n\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\talpha: 0.1,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toffsetX: 0,\n\t\t\t\t\toffsetY: 2,\n\t\t\t\t\tblur: 4,\n\t\t\t\t\tspread: -2,\n\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\talpha: 0.1,\n\t\t\t\t},\n\t\t\t]),\n\t\t\tlg: shadow([\n\t\t\t\t{\n\t\t\t\t\toffsetX: 0,\n\t\t\t\t\toffsetY: 10,\n\t\t\t\t\tblur: 15,\n\t\t\t\t\tspread: -3,\n\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\talpha: 0.1,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toffsetX: 0,\n\t\t\t\t\toffsetY: 4,\n\t\t\t\t\tblur: 6,\n\t\t\t\t\tspread: -4,\n\t\t\t\t\tcolor: \"#000000\",\n\t\t\t\t\talpha: 0.1,\n\t\t\t\t},\n\t\t\t]),\n\t\t},\n\t},\n};\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { dimension } from \"../utils\";\n\n/**\n * Primitive spacing tokens\n * Defines spacing scale from 2px to 400px\n */\nexport const primitiveSpacing = {\n\tprimitive: {\n\t\tspacing: {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\t\"0\": dimension(0),\n\t\t\t\"1\": dimension(1),\n\t\t\t\"2\": dimension(2),\n\t\t\t\"4\": dimension(4),\n\t\t\t\"6\": dimension(6),\n\t\t\t\"8\": dimension(8),\n\t\t\t\"10\": dimension(10),\n\t\t\t\"11\": dimension(11),\n\t\t\t\"12\": dimension(12),\n\t\t\t\"16\": dimension(16),\n\t\t\t\"20\": dimension(20),\n\t\t\t\"24\": dimension(24),\n\t\t\t\"28\": dimension(28),\n\t\t\t\"32\": dimension(32),\n\t\t\t\"36\": dimension(36),\n\t\t\t\"40\": dimension(40),\n\t\t\t\"48\": dimension(48),\n\t\t\t\"56\": dimension(56),\n\t\t\t\"64\": dimension(64),\n\t\t\t\"72\": dimension(72),\n\t\t\t\"80\": dimension(80),\n\t\t\t\"96\": dimension(96),\n\t\t\t\"112\": dimension(112),\n\t\t\t\"128\": dimension(128),\n\t\t\t\"144\": dimension(144),\n\t\t\t\"160\": dimension(160),\n\t\t\t\"176\": dimension(176),\n\t\t\t\"192\": dimension(192),\n\t\t\t\"208\": dimension(208),\n\t\t\t\"224\": dimension(224),\n\t\t\t\"240\": dimension(240),\n\t\t\t\"256\": dimension(256),\n\t\t\t\"288\": dimension(288),\n\t\t\t\"320\": dimension(320),\n\t\t\t\"352\": dimension(352),\n\t\t\t\"384\": dimension(384),\n\t\t\t\"400\": dimension(400),\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { FigmaSyncExtension } from \"../extensions\";\nimport type { TokenModule } from \"../types\";\nimport { dimension, fontFamily, fontWeight } from \"../utils\";\n\n/**\n * Primitive typography tokens\n * Defines font sizes, line heights, letter spacing, font families, and font weights\n */\nexport const primitiveTypography = {\n\tprimitive: {\n\t\t\"font-size\": {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\t\"9\": dimension(9),\n\t\t\t\"11\": dimension(11),\n\t\t\t\"12\": dimension(12),\n\t\t\t\"14\": dimension(14),\n\t\t\t\"16\": dimension(16),\n\t\t\t\"18\": dimension(18),\n\t\t\t\"21\": dimension(21),\n\t\t\t\"24\": dimension(24),\n\t\t\t\"28\": dimension(28),\n\t\t\t\"32\": dimension(32),\n\t\t\t\"36\": dimension(36),\n\t\t\t\"42\": dimension(42),\n\t\t\t\"48\": dimension(48),\n\t\t\t\"56\": dimension(56),\n\t\t\t\"64\": dimension(64),\n\t\t\t\"72\": dimension(72),\n\t\t\t\"84\": dimension(84),\n\t\t\t\"88\": dimension(88),\n\t\t\t\"96\": dimension(96),\n\t\t\t\"112\": dimension(112),\n\t\t\t\"128\": dimension(128),\n\t\t\t\"148\": dimension(148),\n\t\t\t\"168\": dimension(168),\n\t\t\t\"192\": dimension(192),\n\t\t\t\"224\": dimension(224),\n\t\t\t\"256\": dimension(256),\n\t\t\t\"280\": dimension(280),\n\t\t},\n\t\t\"line-height\": {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\t\"9\": dimension(11),\n\t\t\t\"11\": dimension(13),\n\t\t\t\"12\": dimension(16),\n\t\t\t\"14\": dimension(20),\n\t\t\t\"16\": dimension(24),\n\t\t\t\"18\": dimension(27),\n\t\t\t\"21\": dimension(29),\n\t\t\t\"22\": dimension(22),\n\t\t\t\"24\": dimension(24),\n\t\t\t\"28\": dimension(28),\n\t\t\t\"31\": dimension(31),\n\t\t\t\"32\": dimension(32),\n\t\t\t\"36\": dimension(36),\n\t\t\t\"38\": dimension(38),\n\t\t\t\"42\": dimension(46),\n\t\t\t\"43\": dimension(43),\n\t\t\t\"46\": dimension(46),\n\t\t\t\"48\": dimension(53),\n\t\t\t\"53\": dimension(53),\n\t\t\t\"56\": dimension(62),\n\t\t\t\"62\": dimension(62),\n\t\t\t\"64\": dimension(64),\n\t\t\t\"72\": dimension(72),\n\t\t\t\"84\": dimension(84),\n\t\t\t\"88\": dimension(88),\n\t\t\t\"96\": dimension(96),\n\t\t\t\"112\": dimension(106),\n\t\t\t\"128\": dimension(122),\n\t\t\t\"148\": dimension(141),\n\t\t\t\"168\": dimension(151),\n\t\t\t\"192\": dimension(173),\n\t\t\t\"224\": dimension(202),\n\t\t\t\"256\": dimension(218),\n\t\t\t\"280\": dimension(238),\n\t\t},\n\t\t\"letter-spacing\": {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"dimension\",\n\t\t\t\"9\": dimension(0.18),\n\t\t\t\"11\": dimension(0.17),\n\t\t\t\"12\": dimension(0.12),\n\t\t\t\"14\": dimension(0.07),\n\t\t\t\"16\": dimension(0),\n\t\t\t\"18\": dimension(0),\n\t\t\t\"21\": dimension(0),\n\t\t\t\"24\": dimension(0),\n\t\t\t\"28\": dimension(-0.14),\n\t\t\t\"32\": dimension(-0.16),\n\t\t\t\"36\": dimension(-0.36),\n\t\t\t\"42\": dimension(-0.42),\n\t\t\t\"48\": dimension(-0.72),\n\t\t\t\"56\": dimension(-1.12),\n\t\t\t\"64\": dimension(-1.28),\n\t\t\t\"72\": dimension(-1.8),\n\t\t\t\"84\": dimension(-2.1),\n\t\t\t\"88\": dimension(-2.64),\n\t\t\t\"96\": dimension(-2.88),\n\t\t\t\"112\": dimension(-3.92),\n\t\t\t\"128\": dimension(-5.12),\n\t\t\t\"148\": dimension(-6.66),\n\t\t\t\"168\": dimension(-7.56),\n\t\t\t\"192\": dimension(-9.6),\n\t\t\t\"224\": dimension(-11.2),\n\t\t\t\"256\": dimension(-14.08),\n\t\t\t\"280\": dimension(-15.4),\n\t\t\tbutton: dimension(0.5),\n\t\t},\n\t\t\"font-family\": {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"fontFamily\",\n\t\t\t// Primitive font stacks\n\t\t\t\"pp-neue-montreal\": fontFamily([\"PP Neue Montreal\", \"sans-serif\"]),\n\t\t\tgloock: fontFamily([\"Gloock\", \"serif\"]),\n\t\t\tcormorant: fontFamily([\"Cormorant\", \"serif\"]),\n\t\t\tinter: fontFamily([\"Inter\", \"sans-serif\"]),\n\t\t\t\"inter-tight\": fontFamily([\"Inter Tight\", \"sans-serif\"]),\n\t\t\t\"instrument-serif\": fontFamily([\"Instrument Serif\", \"serif\"]),\n\t\t\t// Semantic aliases\n\t\t\tsans: fontFamily([\"PP Neue Montreal\", \"sans-serif\"]),\n\t\t\tserif: fontFamily([\"Gloock\", \"serif\"]),\n\t\t\t\"serif-alt\": fontFamily([\"Cormorant\", \"serif\"]),\n\t\t},\n\t\t\"font-weight\": {\n\t\t\t$extensions: {\n\t\t\t\t\"nds.figmaSync\": {\n\t\t\t\t\tcollectionKey: \"b8954b6c8ba9f47552aea2920a0ee36c5f000e64\",\n\t\t\t\t\tcollectionName: \"Primitives\",\n\t\t\t\t\tmodeMapping: { modeName: \"Value\" },\n\t\t\t\t},\n\t\t\t} satisfies FigmaSyncExtension,\n\t\t\t$type: \"fontWeight\",\n\t\t\tregular: fontWeight(400),\n\t\t\tmedium: fontWeight(500),\n\t\t\tsemibold: fontWeight(600),\n\t\t},\n\t},\n} satisfies TokenModule;\n","import type { JSONTokenTree } from \"@nds-design-system/design-tokens-format\";\nimport type { TokenExtensions } from \"./extensions\";\n\n/**\n * A token module is a partial token tree that can be merged with others.\n * It's a recursive structure where string keys map to either tokens or nested groups.\n */\nexport type TokenModule = {\n\t[key: string]: TokenValue | TokenGroup;\n};\n\n/**\n * A token group can contain nested groups or tokens\n */\nexport type TokenGroup = {\n\t$type?: string;\n\t$description?: string;\n\t/** NDS extension metadata - see extensions.ts for type definitions */\n\t$extensions?: TokenExtensions;\n\t[key: string]:\n\t\t| string\n\t\t| number\n\t\t| boolean\n\t\t| TokenValue\n\t\t| TokenGroup\n\t\t| TokenExtensions\n\t\t| string[]\n\t\t| number[]\n\t\t| undefined;\n};\n\n/**\n * Valid token type names per DTCG spec\n */\nexport type TokenTypeName =\n\t| \"color\"\n\t| \"dimension\"\n\t| \"fontFamily\"\n\t| \"fontWeight\"\n\t| \"duration\"\n\t| \"cubicBezier\"\n\t| \"number\"\n\t| \"strokeStyle\"\n\t| \"border\"\n\t| \"transition\"\n\t| \"shadow\"\n\t| \"gradient\"\n\t| \"typography\"\n\t| \"fontStyle\";\n\n/**\n * A token value has $type, $value, and potentially other properties.\n *\n * NOTE: $type is marked optional for TypeScript compatibility with design-tokens-format,\n * but runtime validation in validate.ts will error if $type is missing.\n * Each leaf token MUST have an explicit $type for proper Figma variable syncing.\n */\nexport type TokenValue = {\n\t$type?: TokenTypeName | string;\n\t$value:\n\t\t| string\n\t\t| number\n\t\t| boolean\n\t\t| string[]\n\t\t| number[]\n\t\t| Record<string, unknown>\n\t\t| Array<Record<string, unknown>>;\n\t$description?: string;\n\t[key: string]: unknown;\n};\n\n/**\n * Type guard to check if a value is a token module\n */\nexport function isTokenModule(value: unknown): value is TokenModule {\n\treturn typeof value === \"object\" && value !== null;\n}\n\n/**\n * Cast a token module to JSONTokenTree for validation\n */\nexport function toJSONTokenTree(module: TokenModule): JSONTokenTree {\n\treturn module as unknown as JSONTokenTree;\n}\n","import type { JSONTokenTree } from \"@nds-design-system/design-tokens-format\";\nimport { mergeTokenTrees } from \"./merge\";\nimport { primitiveAnimation } from \"./primitives/animation\";\nimport { primitiveBreakpoints } from \"./primitives/breakpoints\";\nimport { primitiveColors } from \"./primitives/colors\";\nimport { primitiveOpacity } from \"./primitives/opacity\";\nimport { primitiveRadii } from \"./primitives/radii\";\nimport { primitiveShadow } from \"./primitives/shadow\";\nimport { primitiveSpacing } from \"./primitives/spacing\";\nimport { primitiveTypography } from \"./primitives/typography\";\nimport { semanticColor } from \"./semantic/color/index\";\nimport { semanticSpatial } from \"./semantic/spatial/index\";\nimport { semanticSurface } from \"./semantic/surface/index\";\nimport { baseTypographyTokens } from \"./semantic/typography\";\nimport { toJSONTokenTree } from \"./types\";\n\n/**\n * Base token tree - primitives and base semantic tokens only.\n * Theme variants (dark, civic, bop, etc.) are applied at runtime via ThemeProvider.\n */\nexport const tokens: JSONTokenTree = mergeTokenTrees(\n\t// Primitives\n\ttoJSONTokenTree(primitiveColors),\n\ttoJSONTokenTree(primitiveTypography),\n\ttoJSONTokenTree(primitiveSpacing),\n\ttoJSONTokenTree(primitiveRadii),\n\ttoJSONTokenTree(primitiveBreakpoints),\n\ttoJSONTokenTree(primitiveAnimation),\n\ttoJSONTokenTree(primitiveOpacity),\n\ttoJSONTokenTree(primitiveShadow),\n\t// Typography base (property-based tokens)\n\ttoJSONTokenTree(baseTypographyTokens),\n\t// Base semantic tokens (default theme)\n\ttoJSONTokenTree(semanticColor),\n\ttoJSONTokenTree(semanticSurface),\n\ttoJSONTokenTree(semanticSpatial),\n);\n\nexport default tokens;\n","/**\n * ThemeProvider\n *\n * React context provider for applying theme tokens as CSS variables.\n * Use string theme names for type-safe selection, with \"base\" as default.\n */\n\nimport type {\n\tColorThemeName,\n\tCSSVariableMap,\n\tNestedStringRecord,\n\tSurfaceThemeName,\n\tTokenModule,\n} from \"@nds-design-system/tokens\";\nimport {\n\tcolorThemes,\n\tflatToCSSVars,\n\tflatToNested,\n\tisColorValue,\n\tisDimensionValue,\n\tsurfaceThemes,\n} from \"@nds-design-system/tokens\";\nimport { createContext, type ReactNode, useMemo } from \"react\";\n\n/**\n * Theme context value\n */\nexport interface ThemeContextValue {\n\t/** CSS variables map for inline styles */\n\tcssVars: CSSVariableMap;\n\t/** Resolved nested tokens */\n\ttokens: NestedStringRecord;\n\t/** Current color theme name */\n\tcolorTheme: ColorThemeName;\n\t/** Current surface theme name */\n\tsurfaceTheme: SurfaceThemeName;\n}\n\nexport const ThemeContext = createContext<ThemeContextValue | null>(null);\n\n/**\n * Props for ThemeProvider\n */\nexport interface ThemeProviderProps {\n\t/** Color theme name (defaults to \"base\") */\n\tcolor?: ColorThemeName;\n\t/** Surface theme name (defaults to \"base\") */\n\tsurface?: SurfaceThemeName;\n\t/** Children to render */\n\tchildren: ReactNode;\n\t/** Optional className for the wrapper div */\n\tclassName?: string;\n\t/** Whether to render a wrapper div with CSS variables applied (defaults to true) */\n\tapplyStyles?: boolean;\n}\n\n/**\n * Convert a color value to CSS string\n */\nfunction colorToCSS(color: { components: number[]; alpha: number }): string {\n\tconst [r, g, b] = color.components;\n\tif (color.alpha < 1) {\n\t\treturn `color(srgb ${r} ${g} ${b} / ${color.alpha})`;\n\t}\n\treturn `color(srgb ${r} ${g} ${b})`;\n}\n\n/**\n * Convert a token value to CSS string\n */\nfunction tokenValueToCSS(value: unknown): string {\n\tif (isColorValue(value)) {\n\t\treturn colorToCSS(value);\n\t}\n\tif (isDimensionValue(value)) {\n\t\treturn `${value.value}${value.unit}`;\n\t}\n\tif (typeof value === \"string\") {\n\t\treturn value;\n\t}\n\tif (typeof value === \"number\") {\n\t\treturn String(value);\n\t}\n\treturn String(value);\n}\n\n/**\n * Process color tokens to flat key-value pairs (without -- prefix)\n */\nfunction processColorTokens(\n\tcolorObj: Record<string, unknown>,\n\tpath: string[] = [],\n): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\n\tfor (const [key, value] of Object.entries(colorObj)) {\n\t\tif (key.startsWith(\"$\")) continue;\n\n\t\tconst currentPath = [...path, key];\n\n\t\tif (typeof value === \"object\" && value !== null) {\n\t\t\tconst record = value as Record<string, unknown>;\n\n\t\t\tif (\"$value\" in record) {\n\t\t\t\t// This is a token - key without -- prefix\n\t\t\t\tconst varName = `color-${currentPath.join(\"-\")}`;\n\t\t\t\tconst tokenValue = record.$value;\n\n\t\t\t\tif (typeof tokenValue === \"string\" && tokenValue.startsWith(\"{\")) {\n\t\t\t\t\t// Alias reference - resolve to CSS var\n\t\t\t\t\tlet refPath = tokenValue.slice(1, -1).replace(/\\./g, \"-\");\n\t\t\t\t\t// Strip prefixes that aren't used in CSS variable names\n\t\t\t\t\trefPath = refPath.replace(/^primitive-/, \"\");\n\t\t\t\t\trefPath = refPath.replace(/^semantic-color-/, \"color-\");\n\t\t\t\t\tresult[varName] = `var(--${refPath})`;\n\t\t\t\t} else {\n\t\t\t\t\tresult[varName] = tokenValueToCSS(tokenValue);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Nested object - recurse\n\t\t\t\tObject.assign(result, processColorTokens(record, currentPath));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Process surface tokens to flat key-value pairs (without -- prefix)\n */\nfunction processSurfaceTokens(\n\tsurfaceObj: Record<string, unknown>,\n\tpath: string[] = [],\n): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\n\tfor (const [key, value] of Object.entries(surfaceObj)) {\n\t\tif (key.startsWith(\"$\")) continue;\n\n\t\tconst currentPath = [...path, key];\n\n\t\tif (typeof value === \"object\" && value !== null) {\n\t\t\tconst record = value as Record<string, unknown>;\n\n\t\t\tif (\"$value\" in record) {\n\t\t\t\t// This is a token\n\t\t\t\tconst tokenValue = record.$value;\n\t\t\t\tlet varName: string;\n\t\t\t\tlet cssValue: string;\n\n\t\t\t\t// Determine variable name based on token type (without -- prefix)\n\t\t\t\tif (currentPath[currentPath.length - 1] === \"radius\") {\n\t\t\t\t\t// e.g., button.radius -> radius-surface-button\n\t\t\t\t\tconst componentName = currentPath[0];\n\t\t\t\t\tvarName = `radius-surface-${componentName}`;\n\t\t\t\t} else if (currentPath[currentPath.length - 1] === \"stroke\") {\n\t\t\t\t\t// e.g., button.stroke -> surface-button-stroke\n\t\t\t\t\tconst componentName = currentPath[0];\n\t\t\t\t\tvarName = `surface-${componentName}-stroke`;\n\t\t\t\t} else {\n\t\t\t\t\tvarName = `surface-${currentPath.join(\"-\")}`;\n\t\t\t\t}\n\n\t\t\t\t// Resolve value\n\t\t\t\tif (typeof tokenValue === \"string\" && tokenValue.startsWith(\"{\")) {\n\t\t\t\t\t// Alias reference\n\t\t\t\t\tlet refPath = tokenValue.slice(1, -1).replace(/\\./g, \"-\");\n\t\t\t\t\t// Strip prefixes that aren't used in CSS variable names\n\t\t\t\t\trefPath = refPath.replace(/^primitive-/, \"\");\n\t\t\t\t\trefPath = refPath.replace(/^radii-/, \"radius-\");\n\t\t\t\t\tcssValue = `var(--${refPath})`;\n\t\t\t\t} else {\n\t\t\t\t\tcssValue = tokenValueToCSS(tokenValue);\n\t\t\t\t}\n\n\t\t\t\tresult[varName] = cssValue;\n\t\t\t} else {\n\t\t\t\t// Nested object - recurse\n\t\t\t\tObject.assign(result, processSurfaceTokens(record, currentPath));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Deep merge two token modules\n */\nfunction mergeTokenModules(\n\tbase: TokenModule,\n\toverride: TokenModule,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = JSON.parse(JSON.stringify(base));\n\tdeepMerge(result, override as Record<string, unknown>);\n\treturn result;\n}\n\n/**\n * Deep merge objects\n */\nfunction deepMerge(\n\ttarget: Record<string, unknown>,\n\tsource: Record<string, unknown>,\n): void {\n\tfor (const [key, value] of Object.entries(source)) {\n\t\tif (\n\t\t\ttypeof value === \"object\" &&\n\t\t\tvalue !== null &&\n\t\t\t!Array.isArray(value) &&\n\t\t\ttypeof target[key] === \"object\" &&\n\t\t\ttarget[key] !== null\n\t\t) {\n\t\t\tdeepMerge(\n\t\t\t\ttarget[key] as Record<string, unknown>,\n\t\t\t\tvalue as Record<string, unknown>,\n\t\t\t);\n\t\t} else {\n\t\t\ttarget[key] = value;\n\t\t}\n\t}\n}\n\n/**\n * ThemeProvider component\n *\n * Applies theme tokens as CSS variables using type-safe theme names.\n *\n * @example\n * ```tsx\n * // Use default base themes\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n *\n * // Use specific themes by name\n * <ThemeProvider color=\"civic\" surface=\"sharp\">\n * <App />\n * </ThemeProvider>\n *\n * // Mix and match\n * <ThemeProvider color=\"institution\" surface=\"soft\">\n * <App />\n * </ThemeProvider>\n * ```\n */\nexport function ThemeProvider({\n\tcolor = \"base\",\n\tsurface = \"base\",\n\tchildren,\n\tclassName,\n\tapplyStyles = true,\n}: ThemeProviderProps) {\n\tconst { tokens, cssVars } = useMemo(() => {\n\t\tconst flatTokens: Record<string, string> = {};\n\n\t\t// Get color theme (merge with base if not base)\n\t\tconst baseColorModule = colorThemes.base;\n\t\tconst colorModule = colorThemes[color];\n\n\t\tconst mergedColor =\n\t\t\tcolor === \"base\"\n\t\t\t\t? (baseColorModule as Record<string, unknown>)\n\t\t\t\t: mergeTokenModules(baseColorModule, colorModule);\n\n\t\t// Navigate to semantic.color\n\t\tconst colorTokens =\n\t\t\t(mergedColor as { semantic?: { color?: Record<string, unknown> } })\n\t\t\t\t?.semantic?.color ?? mergedColor;\n\t\tObject.assign(flatTokens, processColorTokens(colorTokens));\n\n\t\t// Get surface theme (merge with base if not base)\n\t\tconst baseSurfaceModule = surfaceThemes.base;\n\t\tconst surfaceModule = surfaceThemes[surface];\n\n\t\tconst mergedSurface =\n\t\t\tsurface === \"base\"\n\t\t\t\t? (baseSurfaceModule as Record<string, unknown>)\n\t\t\t\t: mergeTokenModules(baseSurfaceModule, surfaceModule);\n\n\t\t// Navigate to semantic.surface\n\t\tconst surfaceTokens =\n\t\t\t(mergedSurface as { semantic?: { surface?: Record<string, unknown> } })\n\t\t\t\t?.semantic?.surface ?? mergedSurface;\n\t\tObject.assign(flatTokens, processSurfaceTokens(surfaceTokens));\n\n\t\t// Use shared utilities from tokens package\n\t\tconst nestedTokens = flatToNested(flatTokens);\n\t\tconst cssVariables = flatToCSSVars(flatTokens);\n\n\t\treturn { tokens: nestedTokens, cssVars: cssVariables };\n\t}, [color, surface]);\n\n\tconst contextValue: ThemeContextValue = {\n\t\tcssVars,\n\t\ttokens,\n\t\tcolorTheme: color,\n\t\tsurfaceTheme: surface,\n\t};\n\n\treturn (\n\t\t<ThemeContext.Provider value={contextValue}>\n\t\t\t{applyStyles ? (\n\t\t\t\t<div style={cssVars} className={className}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</ThemeContext.Provider>\n\t);\n}\n","/**\n * Theme Hooks\n *\n * React hooks for accessing theme context.\n */\n\nimport type {\n\tCSSVariableMap,\n\tNestedStringRecord,\n} from \"@nds-design-system/tokens\";\nimport { useContext } from \"react\";\nimport { ThemeContext, type ThemeContextValue } from \"./theme-provider\";\n\n/**\n * Hook to access the theme context\n * @throws Error if used outside of ThemeProvider\n */\nexport function useTheme(): ThemeContextValue {\n\tconst context = useContext(ThemeContext);\n\tif (!context) {\n\t\tthrow new Error(\"useTheme must be used within a ThemeProvider\");\n\t}\n\treturn context;\n}\n\n/**\n * Hook to get just the nested tokens\n */\nexport function useThemeTokens(): NestedStringRecord {\n\tconst { tokens } = useTheme();\n\treturn tokens;\n}\n\n/**\n * Hook to get CSS variables for inline styles\n */\nexport function useCSSVars(): CSSVariableMap {\n\tconst { cssVars } = useTheme();\n\treturn cssVars;\n}\n","/**\n * Theme Utilities\n *\n * Helper functions for working with theme tokens and CSS variables.\n */\n\nimport type {\n\tCSSVariableMap,\n\tNestedStringRecord,\n} from \"@nds-design-system/tokens\";\nimport { nestedToCSSVars } from \"@nds-design-system/tokens\";\n\n/**\n * Convert nested token object to CSS variable map\n * @example\n * toCSSVars({ color: { bg: { page: '#fff' } } })\n * // Returns: { '--color-bg-page': '#fff' }\n */\nexport function toCSSVars(tokens: NestedStringRecord): CSSVariableMap {\n\treturn nestedToCSSVars(tokens);\n}\n\n/**\n * Apply CSS variables to an element\n * @example\n * applyTheme(document.body, { '--color-bg-page': '#fff' })\n */\nexport function applyTheme(\n\telement: HTMLElement,\n\tcssVars: CSSVariableMap,\n): void {\n\tfor (const [name, value] of Object.entries(cssVars)) {\n\t\telement.style.setProperty(name, value);\n\t}\n}\n\n/**\n * Remove CSS variables from an element\n */\nexport function removeTheme(\n\telement: HTMLElement,\n\tcssVars: CSSVariableMap,\n): void {\n\tfor (const name of Object.keys(cssVars)) {\n\t\telement.style.removeProperty(name);\n\t}\n}\n\n/**\n * Get a specific token value from nested tokens using dot notation\n * @example\n * getToken({ color: { bg: { page: '#fff' } } }, 'color.bg.page')\n * // Returns: '#fff'\n */\nexport function getToken(\n\ttokens: NestedStringRecord,\n\tpath: string,\n): string | undefined {\n\tconst parts = path.split(\".\");\n\tlet current: NestedStringRecord | string = tokens;\n\n\tfor (const part of parts) {\n\t\tif (typeof current === \"string\") return undefined;\n\t\tcurrent = current[part];\n\t\tif (current === undefined) return undefined;\n\t}\n\n\treturn typeof current === \"string\" ? current : undefined;\n}\n\n/**\n * Create a style object with CSS variables for React inline styles\n * @example\n * <div style={createThemeStyle(cssVars)}>...</div>\n */\nexport function createThemeStyle(cssVars: CSSVariableMap): React.CSSProperties {\n\treturn cssVars as React.CSSProperties;\n}\n\n/**\n * Merge multiple CSS variable maps\n */\nexport function mergeCSSVars(...maps: CSSVariableMap[]): CSSVariableMap {\n\treturn Object.assign({}, ...maps);\n}\n\n/**\n * Filter CSS variables by prefix\n * @example\n * filterCSSVars(cssVars, '--color-')\n * // Returns only variables starting with --color-\n */\nexport function filterCSSVars(\n\tcssVars: CSSVariableMap,\n\tprefix: string,\n): CSSVariableMap {\n\tconst result: CSSVariableMap = {};\n\tfor (const [name, value] of Object.entries(cssVars)) {\n\t\tif (name.startsWith(prefix)) {\n\t\t\tresult[name] = value;\n\t\t}\n\t}\n\treturn result;\n}\n"]}