@nationaldesignstudio/react 0.0.9 → 0.0.11

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 (170) hide show
  1. package/dist/component-registry.md +2405 -0
  2. package/dist/components/atoms/accordion/accordion.d.ts +44 -3
  3. package/dist/components/atoms/button/button.d.ts +155 -11
  4. package/dist/components/atoms/button/icon-button.d.ts +114 -5
  5. package/dist/components/atoms/ndstudio-footer/ndstudio-footer.d.ts +30 -0
  6. package/dist/components/atoms/pager-control/pager-control.d.ts +116 -9
  7. package/dist/components/dev-tools/dev-toolbar/dev-toolbar.d.ts +4 -0
  8. package/dist/components/dev-tools/grid-overlay/grid-overlay.d.ts +6 -0
  9. package/dist/components/organisms/card/card.d.ts +40 -4
  10. package/dist/components/sections/banner/banner.d.ts +39 -6
  11. package/dist/components/sections/card-grid/card-grid.d.ts +37 -4
  12. package/dist/components/sections/faq-section/faq-section.d.ts +2 -2
  13. package/dist/components/sections/hero/hero.d.ts +167 -16
  14. package/dist/components/sections/river/river.d.ts +37 -4
  15. package/dist/components/sections/tout/tout.d.ts +86 -6
  16. package/dist/components/sections/two-column-section/two-column-section.d.ts +80 -6
  17. package/dist/hooks/index.d.ts +1 -0
  18. package/dist/hooks/use-event-listener.d.ts +24 -0
  19. package/dist/index.d.ts +9 -2
  20. package/dist/index.js +12034 -5934
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/theme.d.ts +330 -0
  23. package/dist/tailwind.css +1 -15
  24. package/dist/tokens.css +13057 -6852
  25. package/package.json +12 -23
  26. package/src/App.css +0 -0
  27. package/src/App.tsx +0 -7
  28. package/src/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
  29. package/src/assets/react.svg +0 -1
  30. package/src/components/atoms/accordion/accordion.stories.tsx +0 -228
  31. package/src/components/atoms/accordion/accordion.tsx +0 -137
  32. package/src/components/atoms/accordion/index.ts +0 -6
  33. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-darwin.png +0 -0
  34. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-linux.png +0 -0
  35. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-darwin.png +0 -0
  36. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-linux.png +0 -0
  37. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-darwin.png +0 -0
  38. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-linux.png +0 -0
  39. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-darwin.png +0 -0
  40. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-linux.png +0 -0
  41. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-darwin.png +0 -0
  42. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-linux.png +0 -0
  43. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-darwin.png +0 -0
  44. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-linux.png +0 -0
  45. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-darwin.png +0 -0
  46. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-linux.png +0 -0
  47. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-darwin.png +0 -0
  48. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-linux.png +0 -0
  49. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-darwin.png +0 -0
  50. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-linux.png +0 -0
  51. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-darwin.png +0 -0
  52. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-linux.png +0 -0
  53. package/src/components/atoms/button/button.stories.tsx +0 -84
  54. package/src/components/atoms/button/button.test.tsx +0 -141
  55. package/src/components/atoms/button/button.tsx +0 -95
  56. package/src/components/atoms/button/button.visual.test.tsx +0 -102
  57. package/src/components/atoms/button/icon-button.stories.tsx +0 -166
  58. package/src/components/atoms/button/icon-button.tsx +0 -125
  59. package/src/components/atoms/button/index.ts +0 -6
  60. package/src/components/atoms/pager-control/index.ts +0 -5
  61. package/src/components/atoms/pager-control/pager-control.stories.tsx +0 -209
  62. package/src/components/atoms/pager-control/pager-control.test.tsx +0 -149
  63. package/src/components/atoms/pager-control/pager-control.tsx +0 -328
  64. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-darwin.png +0 -0
  65. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-linux.png +0 -0
  66. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-darwin.png +0 -0
  67. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-linux.png +0 -0
  68. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-darwin.png +0 -0
  69. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-linux.png +0 -0
  70. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-darwin.png +0 -0
  71. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-linux.png +0 -0
  72. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-darwin.png +0 -0
  73. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-linux.png +0 -0
  74. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-darwin.png +0 -0
  75. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-linux.png +0 -0
  76. package/src/components/organisms/card/card.stories.tsx +0 -293
  77. package/src/components/organisms/card/card.test.tsx +0 -245
  78. package/src/components/organisms/card/card.tsx +0 -227
  79. package/src/components/organisms/card/card.visual.test.tsx +0 -197
  80. package/src/components/organisms/card/index.ts +0 -19
  81. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-darwin.png +0 -0
  82. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-linux.png +0 -0
  83. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-darwin.png +0 -0
  84. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-linux.png +0 -0
  85. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-darwin.png +0 -0
  86. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-linux.png +0 -0
  87. package/src/components/organisms/navbar/index.ts +0 -18
  88. package/src/components/organisms/navbar/navbar.stories.tsx +0 -313
  89. package/src/components/organisms/navbar/navbar.test.tsx +0 -190
  90. package/src/components/organisms/navbar/navbar.tsx +0 -317
  91. package/src/components/organisms/navbar/navbar.visual.test.tsx +0 -85
  92. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-darwin.png +0 -0
  93. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-linux.png +0 -0
  94. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-darwin.png +0 -0
  95. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-linux.png +0 -0
  96. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-darwin.png +0 -0
  97. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-linux.png +0 -0
  98. package/src/components/organisms/us-gov-banner/index.ts +0 -1
  99. package/src/components/organisms/us-gov-banner/us-gov-banner.stories.tsx +0 -35
  100. package/src/components/organisms/us-gov-banner/us-gov-banner.test.tsx +0 -107
  101. package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +0 -73
  102. package/src/components/organisms/us-gov-banner/us-gov-banner.visual.test.tsx +0 -46
  103. package/src/components/sections/banner/banner.stories.tsx +0 -150
  104. package/src/components/sections/banner/banner.test.tsx +0 -185
  105. package/src/components/sections/banner/banner.tsx +0 -130
  106. package/src/components/sections/banner/index.ts +0 -2
  107. package/src/components/sections/card-grid/card-grid.stories.tsx +0 -351
  108. package/src/components/sections/card-grid/card-grid.tsx +0 -118
  109. package/src/components/sections/card-grid/index.ts +0 -1
  110. package/src/components/sections/faq-section/faq-section.tsx +0 -77
  111. package/src/components/sections/faq-section/index.ts +0 -2
  112. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-darwin.png +0 -0
  113. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-linux.png +0 -0
  114. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-darwin.png +0 -0
  115. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-linux.png +0 -0
  116. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-darwin.png +0 -0
  117. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-linux.png +0 -0
  118. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-darwin.png +0 -0
  119. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-linux.png +0 -0
  120. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-darwin.png +0 -0
  121. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-linux.png +0 -0
  122. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-darwin.png +0 -0
  123. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-linux.png +0 -0
  124. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-darwin.png +0 -0
  125. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-linux.png +0 -0
  126. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-darwin.png +0 -0
  127. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-linux.png +0 -0
  128. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-darwin.png +0 -0
  129. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-linux.png +0 -0
  130. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-darwin.png +0 -0
  131. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-linux.png +0 -0
  132. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-default-chromium-linux.png +0 -0
  133. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-darwin.png +0 -0
  134. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-linux.png +0 -0
  135. package/src/components/sections/hero/hero.stories.tsx +0 -145
  136. package/src/components/sections/hero/hero.test.tsx +0 -135
  137. package/src/components/sections/hero/hero.tsx +0 -191
  138. package/src/components/sections/hero/hero.visual.test.tsx +0 -140
  139. package/src/components/sections/hero/index.ts +0 -1
  140. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-darwin.png +0 -0
  141. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-linux.png +0 -0
  142. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-darwin.png +0 -0
  143. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-linux.png +0 -0
  144. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-darwin.png +0 -0
  145. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-linux.png +0 -0
  146. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-darwin.png +0 -0
  147. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-linux.png +0 -0
  148. package/src/components/sections/prose/index.ts +0 -6
  149. package/src/components/sections/prose/prose.stories.tsx +0 -144
  150. package/src/components/sections/prose/prose.test.tsx +0 -178
  151. package/src/components/sections/prose/prose.tsx +0 -88
  152. package/src/components/sections/prose/prose.visual.test.tsx +0 -105
  153. package/src/components/sections/river/index.ts +0 -1
  154. package/src/components/sections/river/river.stories.tsx +0 -237
  155. package/src/components/sections/river/river.test.tsx +0 -268
  156. package/src/components/sections/river/river.tsx +0 -175
  157. package/src/components/sections/tout/index.ts +0 -1
  158. package/src/components/sections/tout/tout.stories.tsx +0 -154
  159. package/src/components/sections/tout/tout.test.tsx +0 -242
  160. package/src/components/sections/tout/tout.tsx +0 -206
  161. package/src/components/sections/two-column-section/index.ts +0 -5
  162. package/src/components/sections/two-column-section/two-column-section.stories.tsx +0 -285
  163. package/src/components/sections/two-column-section/two-column-section.tsx +0 -152
  164. package/src/index.ts +0 -98
  165. package/src/lib/utils.ts +0 -6
  166. package/src/main.tsx +0 -13
  167. package/src/stories/Introduction.mdx +0 -114
  168. package/src/stories/TokenShowcase.stories.tsx +0 -92
  169. package/src/stories/TokenShowcase.tsx +0 -1352
  170. package/src/styles.css +0 -11
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Component-level theming interface
3
+ *
4
+ * This interface defines all the customizable design tokens that can be
5
+ * overridden at the component level. Components accepting a `theme` prop
6
+ * will apply these values as CSS custom properties, allowing fine-grained
7
+ * control over appearance without creating new variants.
8
+ *
9
+ * All values use primitive token names (e.g., "gray-100", "spacing-40")
10
+ * which are converted to CSS variable references internally.
11
+ */
12
+ /**
13
+ * Color token names - maps to `--color-{name}` CSS variables
14
+ * @example "gray-100", "ember-v300", "alpha-black-10"
15
+ */
16
+ export type ColorToken = "gray-50" | "gray-100" | "gray-200" | "gray-300" | "gray-400" | "gray-500" | "gray-600" | "gray-700" | "gray-800" | "gray-900" | "gray-1000" | "gray-1100" | "gray-1200" | "steel-50" | "steel-100" | "steel-200" | "steel-300" | "steel-400" | "steel-500" | "steel-600" | "steel-700" | "steel-800" | "steel-900" | "steel-1000" | "steel-1100" | "steel-1200" | "brown-50" | "brown-100" | "brown-200" | "brown-300" | "brown-400" | "brown-500" | "brown-600" | "brown-700" | "brown-800" | "brown-900" | "brown-1000" | "brown-1100" | "brown-1200" | "ember-50" | "ember-100" | "ember-200" | "ember-300" | "ember-400" | "ember-500" | "ember-600" | "ember-700" | "ember-800" | "ember-900" | "ember-v100" | "ember-v200" | "ember-v300" | "ember-v400" | "orange-50" | "orange-100" | "orange-200" | "orange-300" | "orange-400" | "orange-500" | "orange-600" | "orange-700" | "orange-800" | "orange-900" | "orange-v100" | "orange-v200" | "orange-v300" | "orange-v400" | "amber-50" | "amber-100" | "amber-200" | "amber-300" | "amber-400" | "amber-500" | "amber-600" | "amber-700" | "amber-800" | "amber-900" | "amber-v100" | "amber-v200" | "amber-v300" | "amber-v400" | "yellow-50" | "yellow-100" | "yellow-200" | "yellow-300" | "yellow-400" | "yellow-500" | "yellow-600" | "yellow-700" | "yellow-800" | "yellow-900" | "yellow-v100" | "yellow-v200" | "yellow-v300" | "yellow-v400" | "lime-50" | "lime-100" | "lime-200" | "lime-300" | "lime-400" | "lime-500" | "lime-600" | "lime-700" | "lime-800" | "lime-900" | "lime-v100" | "lime-v200" | "lime-v300" | "lime-v400" | "green-50" | "green-100" | "green-200" | "green-300" | "green-400" | "green-500" | "green-600" | "green-700" | "green-800" | "green-900" | "green-v100" | "green-v200" | "green-v300" | "green-v400" | "sage-50" | "sage-100" | "sage-200" | "sage-300" | "sage-400" | "sage-500" | "sage-600" | "sage-700" | "sage-800" | "sage-900" | "sage-v100" | "sage-v200" | "sage-v300" | "sage-v400" | "teal-50" | "teal-100" | "teal-200" | "teal-300" | "teal-400" | "teal-500" | "teal-600" | "teal-700" | "teal-800" | "teal-900" | "teal-v100" | "teal-v200" | "teal-v300" | "teal-v400" | "cyan-50" | "cyan-100" | "cyan-200" | "cyan-300" | "cyan-400" | "cyan-500" | "cyan-600" | "cyan-700" | "cyan-800" | "cyan-900" | "cyan-v100" | "cyan-v200" | "cyan-v300" | "cyan-v400" | "ice-50" | "ice-100" | "ice-200" | "ice-300" | "ice-400" | "ice-500" | "ice-600" | "ice-700" | "ice-800" | "ice-900" | "ice-v100" | "ice-v200" | "ice-v300" | "ice-v400" | "blue-50" | "blue-100" | "blue-200" | "blue-300" | "blue-400" | "blue-500" | "blue-600" | "blue-700" | "blue-800" | "blue-900" | "blue-v100" | "blue-v200" | "blue-v300" | "blue-v400" | "indigo-50" | "indigo-100" | "indigo-200" | "indigo-300" | "indigo-400" | "indigo-500" | "indigo-600" | "indigo-700" | "indigo-800" | "indigo-900" | "indigo-v100" | "indigo-v200" | "indigo-v300" | "indigo-v400" | "iris-50" | "iris-100" | "iris-200" | "iris-300" | "iris-400" | "iris-500" | "iris-600" | "iris-700" | "iris-800" | "iris-900" | "iris-v100" | "iris-v200" | "iris-v300" | "iris-v400" | "purple-50" | "purple-100" | "purple-200" | "purple-300" | "purple-400" | "purple-500" | "purple-600" | "purple-700" | "purple-800" | "purple-900" | "purple-v100" | "purple-v200" | "purple-v300" | "purple-v400" | "pink-50" | "pink-100" | "pink-200" | "pink-300" | "pink-400" | "pink-500" | "pink-600" | "pink-700" | "pink-800" | "pink-900" | "pink-v100" | "pink-v200" | "pink-v300" | "pink-v400" | "red-50" | "red-100" | "red-200" | "red-300" | "red-400" | "red-500" | "red-600" | "red-700" | "red-800" | "red-900" | "red-v100" | "red-v200" | "red-v300" | "red-v400" | "alpha-black-5" | "alpha-black-10" | "alpha-black-20" | "alpha-black-30" | "alpha-black-40" | "alpha-black-50" | "alpha-black-60" | "alpha-black-70" | "alpha-black-80" | "alpha-black-90" | "alpha-black-95" | "alpha-white-5" | "alpha-white-10" | "alpha-white-20" | "alpha-white-30" | "alpha-white-40" | "alpha-white-50" | "alpha-white-60" | "alpha-white-70" | "alpha-white-80" | "alpha-white-90" | "alpha-white-95" | "white" | "black";
17
+ /**
18
+ * Spacing token names - maps to `--spacing-{name}` CSS variables
19
+ * @example "spacing-40", "spacing-72"
20
+ */
21
+ export type SpacingToken = "spacing-0" | "spacing-2" | "spacing-4" | "spacing-6" | "spacing-8" | "spacing-10" | "spacing-11" | "spacing-12" | "spacing-16" | "spacing-20" | "spacing-24" | "spacing-28" | "spacing-32" | "spacing-36" | "spacing-40" | "spacing-48" | "spacing-56" | "spacing-64" | "spacing-72" | "spacing-80" | "spacing-96" | "spacing-112" | "spacing-128" | "spacing-144" | "spacing-160" | "spacing-176" | "spacing-192" | "spacing-208" | "spacing-224" | "spacing-240" | "spacing-256" | "spacing-288" | "spacing-320" | "spacing-352" | "spacing-384" | "spacing-400";
22
+ /**
23
+ * Radius token names - maps to `--radii-{name}` CSS variables
24
+ * @example "radii-4", "radii-6"
25
+ */
26
+ export type RadiusToken = "radii-0" | "radii-2" | "radii-4" | "radii-6" | "radii-8" | "radii-10" | "radii-11" | "radii-12" | "radii-16" | "radii-20" | "radii-24" | "radii-28" | "radii-32" | "radii-36" | "radii-40" | "radii-48" | "radii-56" | "radii-64" | "radii-72" | "radii-80" | "radii-96" | "radii-112" | "radii-128" | "radii-144" | "radii-160" | "radii-176" | "radii-192" | "radii-208" | "radii-224" | "radii-240" | "radii-256" | "radii-288" | "radii-320" | "radii-352" | "radii-384" | "radii-400";
27
+ /**
28
+ * Font size token values - primitive font sizes available in the design system
29
+ * These correspond to Tailwind classes like `text-64`, `text-128`, etc.
30
+ * @example 64, 128, 192
31
+ */
32
+ export type FontSizeToken = 9 | 11 | 12 | 14 | 16 | 18 | 21 | 24 | 28 | 32 | 36 | 42 | 48 | 56 | 64 | 72 | 84 | 88 | 96 | 112 | 128 | 148 | 168 | 192 | 224 | 256 | 280;
33
+ /**
34
+ * Array of all available font sizes for use in UI selectors/dropdowns
35
+ */
36
+ export declare const FONT_SIZES: FontSizeToken[];
37
+ /**
38
+ * Helper to generate typography class string from font size
39
+ * @example fontSizeToClass(128) => "text-128 leading-128 tracking-128"
40
+ */
41
+ export declare function fontSizeToClass(size: FontSizeToken): string;
42
+ /**
43
+ * Helper to generate responsive typography class string
44
+ * @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"
45
+ */
46
+ export declare function responsiveTypographyClass(mobile: FontSizeToken, tablet: FontSizeToken, desktop: FontSizeToken): string;
47
+ export interface ComponentThemeColors {
48
+ /**
49
+ * Background color for sections
50
+ * @example "gray-100"
51
+ */
52
+ bgSection?: ColorToken;
53
+ /**
54
+ * Background color for cards
55
+ * @example "white"
56
+ */
57
+ cardBackground?: ColorToken;
58
+ /**
59
+ * Muted background color
60
+ * @example "gray-50"
61
+ */
62
+ bgMuted?: ColorToken;
63
+ /**
64
+ * Primary text color
65
+ * @example "gray-1100"
66
+ */
67
+ textPrimary?: ColorToken;
68
+ /**
69
+ * Secondary text color
70
+ * @example "gray-800"
71
+ */
72
+ textSecondary?: ColorToken;
73
+ /**
74
+ * Muted text color
75
+ * @example "gray-600"
76
+ */
77
+ textMuted?: ColorToken;
78
+ /**
79
+ * Inverted text color (for dark backgrounds)
80
+ * @example "gray-100"
81
+ */
82
+ textInverted?: ColorToken;
83
+ /**
84
+ * Link text color
85
+ * @example "gray-1100"
86
+ */
87
+ textLink?: ColorToken;
88
+ /**
89
+ * Link hover text color
90
+ * @example "gray-700"
91
+ */
92
+ textLinkHover?: ColorToken;
93
+ /**
94
+ * Brand accent color
95
+ * @example "ember-v300"
96
+ */
97
+ accentBrand?: ColorToken;
98
+ /**
99
+ * Soft brand accent color
100
+ * @example "ember-100"
101
+ */
102
+ accentBrandSoft?: ColorToken;
103
+ /**
104
+ * Subtle border color
105
+ * @example "alpha-black-10"
106
+ */
107
+ borderSubtle?: ColorToken;
108
+ /**
109
+ * Strong border color
110
+ * @example "alpha-black-20"
111
+ */
112
+ borderStrong?: ColorToken;
113
+ /**
114
+ * Focus border color (uses accentBrand by default)
115
+ * @example "ember-v300"
116
+ */
117
+ borderFocus?: ColorToken;
118
+ /**
119
+ * Divider border color
120
+ * @example "alpha-black-10"
121
+ */
122
+ borderDivider?: ColorToken;
123
+ /**
124
+ * Primary button background color
125
+ * @example "gray-1100"
126
+ */
127
+ buttonPrimaryBg?: ColorToken;
128
+ /**
129
+ * Primary button hover background color
130
+ * @example "gray-600"
131
+ */
132
+ buttonPrimaryBgHover?: ColorToken;
133
+ /**
134
+ * Secondary button background color
135
+ * @example "white"
136
+ */
137
+ buttonSecondaryBg?: ColorToken;
138
+ /**
139
+ * Secondary button hover background color
140
+ * @example "gray-100"
141
+ */
142
+ buttonSecondaryBgHover?: ColorToken;
143
+ }
144
+ export interface ComponentThemeSpatial {
145
+ /**
146
+ * Grid margin for large breakpoint
147
+ * @example "spacing-72"
148
+ */
149
+ gridLargeMargin?: SpacingToken;
150
+ /**
151
+ * Grid gutter for large breakpoint
152
+ * @example "spacing-24"
153
+ */
154
+ gridLargeGutter?: SpacingToken;
155
+ /**
156
+ * Number of grid columns for large breakpoint
157
+ */
158
+ gridLargeColumns?: number;
159
+ /**
160
+ * Grid margin for medium breakpoint
161
+ * @example "spacing-56"
162
+ */
163
+ gridMediumMargin?: SpacingToken;
164
+ /**
165
+ * Grid gutter for medium breakpoint
166
+ * @example "spacing-20"
167
+ */
168
+ gridMediumGutter?: SpacingToken;
169
+ /**
170
+ * Number of grid columns for medium breakpoint
171
+ */
172
+ gridMediumColumns?: number;
173
+ /**
174
+ * Grid margin for small breakpoint
175
+ * @example "spacing-24"
176
+ */
177
+ gridSmallMargin?: SpacingToken;
178
+ /**
179
+ * Grid gutter for small breakpoint
180
+ * @example "spacing-12"
181
+ */
182
+ gridSmallGutter?: SpacingToken;
183
+ /**
184
+ * Number of grid columns for small breakpoint
185
+ */
186
+ gridSmallColumns?: number;
187
+ /**
188
+ * Section gap for large breakpoint
189
+ * @example "spacing-64"
190
+ */
191
+ sectionLargeGap?: SpacingToken;
192
+ /**
193
+ * Section padding for large breakpoint
194
+ * @example "spacing-128"
195
+ */
196
+ sectionLargePadding?: SpacingToken;
197
+ /**
198
+ * Section gap for medium breakpoint
199
+ * @example "spacing-56"
200
+ */
201
+ sectionMediumGap?: SpacingToken;
202
+ /**
203
+ * Section padding for medium breakpoint
204
+ * @example "spacing-96"
205
+ */
206
+ sectionMediumPadding?: SpacingToken;
207
+ /**
208
+ * Section gap for small breakpoint
209
+ * @example "spacing-32"
210
+ */
211
+ sectionSmallGap?: SpacingToken;
212
+ /**
213
+ * Section padding for small breakpoint
214
+ * @example "spacing-64"
215
+ */
216
+ sectionSmallPadding?: SpacingToken;
217
+ /**
218
+ * Card gap for large size
219
+ * @example "spacing-10"
220
+ */
221
+ cardLargeGap?: SpacingToken;
222
+ /**
223
+ * Card padding for large size
224
+ * @example "spacing-24"
225
+ */
226
+ cardLargePadding?: SpacingToken;
227
+ /**
228
+ * Card gap for small size
229
+ * @example "spacing-12"
230
+ */
231
+ cardSmallGap?: SpacingToken;
232
+ /**
233
+ * Card padding for small size
234
+ * @example "spacing-16"
235
+ */
236
+ cardSmallPadding?: SpacingToken;
237
+ }
238
+ export interface ComponentThemeSurface {
239
+ /**
240
+ * Card border radius
241
+ * @example "radii-4"
242
+ */
243
+ cardRadius?: RadiusToken;
244
+ /**
245
+ * Card stroke/border width in pixels
246
+ * @example 1
247
+ */
248
+ cardStroke?: number;
249
+ /**
250
+ * Button border radius
251
+ * @example "radii-6"
252
+ */
253
+ buttonRadius?: RadiusToken;
254
+ /**
255
+ * Button stroke/border weight in pixels
256
+ * @example 1
257
+ */
258
+ buttonStrokeWeight?: number;
259
+ }
260
+ /**
261
+ * Complete component theme interface combining colors, spatial, and surface tokens.
262
+ *
263
+ * @example
264
+ * ```tsx
265
+ * const customTheme: ComponentTheme = {
266
+ * colors: {
267
+ * textPrimary: "gray-100",
268
+ * accentBrand: "ember-500",
269
+ * },
270
+ * spatial: {
271
+ * sectionLargePadding: "spacing-96",
272
+ * },
273
+ * surface: {
274
+ * cardRadius: "radii-8",
275
+ * },
276
+ * };
277
+ *
278
+ * <Tout theme={customTheme} ... />
279
+ * ```
280
+ */
281
+ export interface ComponentTheme {
282
+ colors?: ComponentThemeColors;
283
+ spatial?: ComponentThemeSpatial;
284
+ surface?: ComponentThemeSurface;
285
+ }
286
+ /**
287
+ * Button-specific theme interface for customizing individual button appearance.
288
+ *
289
+ * @example
290
+ * ```tsx
291
+ * const buttonTheme: ButtonTheme = {
292
+ * bg: "ember-500",
293
+ * bgHover: "ember-600",
294
+ * text: "white",
295
+ * radius: "radii-8",
296
+ * };
297
+ *
298
+ * <Button theme={buttonTheme}>Themed Button</Button>
299
+ * ```
300
+ */
301
+ export interface ButtonTheme {
302
+ /** Background color */
303
+ bg?: ColorToken;
304
+ /** Background color on hover */
305
+ bgHover?: ColorToken;
306
+ /** Background color on active/press */
307
+ bgActive?: ColorToken;
308
+ /** Text color */
309
+ text?: ColorToken;
310
+ /** Border color (if using border) */
311
+ borderColor?: ColorToken;
312
+ /** Border width in pixels (0 for no border) */
313
+ borderWidth?: number;
314
+ /** Border radius */
315
+ radius?: RadiusToken;
316
+ }
317
+ /**
318
+ * Converts a ComponentTheme object to CSS custom properties (inline style object)
319
+ *
320
+ * @param theme - The theme object to convert
321
+ * @returns An object suitable for use as React inline styles
322
+ */
323
+ export declare function themeToStyleVars(theme: ComponentTheme | undefined): React.CSSProperties;
324
+ /**
325
+ * Converts a ButtonTheme object to CSS custom properties (inline style object)
326
+ *
327
+ * @param theme - The button theme object to convert
328
+ * @returns An object suitable for use as React inline styles
329
+ */
330
+ export declare function buttonThemeToStyleVars(theme: ButtonTheme | undefined): React.CSSProperties;
package/dist/tailwind.css CHANGED
@@ -1,23 +1,9 @@
1
1
  /**
2
2
  * Tailwind CSS entry point for @nationaldesignstudio/react
3
+ * This file re-exports tokens.css for backwards compatibility.
3
4
  *
4
5
  * Usage in your app's CSS:
5
6
  * @import "tailwindcss";
6
7
  * @import "@nationaldesignstudio/react/tailwind.css";
7
8
  */
8
-
9
- /* Scan component source files for Tailwind class usage */
10
- @source "../src/components/**/*.tsx";
11
-
12
- /* Import design tokens (@theme and @utility definitions) */
13
9
  @import "./tokens.css";
14
-
15
- /* Custom font */
16
- @font-face {
17
- font-family: "PP Neue Montreal";
18
- src: url("./assets/fonts/PPNeueMontreal-Variable.woff2")
19
- format("woff2-variations");
20
- font-weight: 100 900;
21
- font-style: normal;
22
- font-display: swap;
23
- }