@nationaldesignstudio/react 0.0.7 → 0.0.9

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/README.md +0 -4
  2. package/dist/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
  3. package/dist/assets/react.svg +1 -0
  4. package/dist/components/atoms/accordion/accordion.d.ts +50 -0
  5. package/dist/components/{button → atoms/button}/button.d.ts +5 -4
  6. package/dist/components/{button → atoms/button}/icon-button.d.ts +20 -0
  7. package/dist/components/atoms/pager-control/pager-control.d.ts +62 -0
  8. package/dist/components/{card → organisms/card}/card.d.ts +6 -2
  9. package/dist/components/{navbar → organisms/navbar}/navbar.d.ts +28 -1
  10. package/dist/components/sections/banner/banner.d.ts +64 -0
  11. package/dist/components/sections/card-grid/card-grid.d.ts +53 -0
  12. package/dist/components/sections/faq-section/faq-section.d.ts +44 -0
  13. package/dist/components/sections/hero/hero.d.ts +73 -0
  14. package/dist/components/sections/river/river.d.ts +63 -0
  15. package/dist/components/sections/tout/tout.d.ts +73 -0
  16. package/dist/components/sections/two-column-section/two-column-section.d.ts +58 -0
  17. package/dist/index.d.ts +28 -12
  18. package/dist/index.js +6108 -953
  19. package/dist/index.js.map +1 -1
  20. package/dist/tailwind.css +23 -0
  21. package/dist/tokens.css +2009 -103
  22. package/package.json +23 -5
  23. package/src/App.css +0 -0
  24. package/src/App.tsx +7 -0
  25. package/src/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
  26. package/src/assets/react.svg +1 -0
  27. package/src/components/atoms/accordion/accordion.stories.tsx +228 -0
  28. package/src/components/atoms/accordion/accordion.tsx +137 -0
  29. package/src/components/atoms/accordion/index.ts +6 -0
  30. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-darwin.png +0 -0
  31. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-linux.png +0 -0
  32. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-darwin.png +0 -0
  33. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-linux.png +0 -0
  34. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-darwin.png +0 -0
  35. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-linux.png +0 -0
  36. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-darwin.png +0 -0
  37. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-linux.png +0 -0
  38. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-darwin.png +0 -0
  39. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-linux.png +0 -0
  40. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-darwin.png +0 -0
  41. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-linux.png +0 -0
  42. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-darwin.png +0 -0
  43. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-linux.png +0 -0
  44. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-darwin.png +0 -0
  45. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-linux.png +0 -0
  46. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-darwin.png +0 -0
  47. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-linux.png +0 -0
  48. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-darwin.png +0 -0
  49. package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-linux.png +0 -0
  50. package/src/components/atoms/button/button.stories.tsx +84 -0
  51. package/src/components/atoms/button/button.test.tsx +141 -0
  52. package/src/components/atoms/button/button.tsx +95 -0
  53. package/src/components/atoms/button/button.visual.test.tsx +102 -0
  54. package/src/components/atoms/button/icon-button.stories.tsx +166 -0
  55. package/src/components/atoms/button/icon-button.tsx +125 -0
  56. package/src/components/atoms/button/index.ts +6 -0
  57. package/src/components/atoms/pager-control/index.ts +5 -0
  58. package/src/components/atoms/pager-control/pager-control.stories.tsx +209 -0
  59. package/src/components/atoms/pager-control/pager-control.test.tsx +149 -0
  60. package/src/components/atoms/pager-control/pager-control.tsx +328 -0
  61. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-darwin.png +0 -0
  62. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-linux.png +0 -0
  63. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-darwin.png +0 -0
  64. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-linux.png +0 -0
  65. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-darwin.png +0 -0
  66. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-linux.png +0 -0
  67. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-darwin.png +0 -0
  68. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-linux.png +0 -0
  69. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-darwin.png +0 -0
  70. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-linux.png +0 -0
  71. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-darwin.png +0 -0
  72. package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-linux.png +0 -0
  73. package/src/components/organisms/card/card.stories.tsx +293 -0
  74. package/src/components/organisms/card/card.test.tsx +245 -0
  75. package/src/components/organisms/card/card.tsx +227 -0
  76. package/src/components/organisms/card/card.visual.test.tsx +197 -0
  77. package/src/components/organisms/card/index.ts +19 -0
  78. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-darwin.png +0 -0
  79. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-linux.png +0 -0
  80. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-darwin.png +0 -0
  81. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-linux.png +0 -0
  82. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-darwin.png +0 -0
  83. package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-linux.png +0 -0
  84. package/src/components/organisms/navbar/index.ts +18 -0
  85. package/src/components/organisms/navbar/navbar.stories.tsx +313 -0
  86. package/src/components/organisms/navbar/navbar.test.tsx +190 -0
  87. package/src/components/organisms/navbar/navbar.tsx +317 -0
  88. package/src/components/organisms/navbar/navbar.visual.test.tsx +85 -0
  89. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-darwin.png +0 -0
  90. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-linux.png +0 -0
  91. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-darwin.png +0 -0
  92. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-linux.png +0 -0
  93. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-darwin.png +0 -0
  94. package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-linux.png +0 -0
  95. package/src/components/organisms/us-gov-banner/index.ts +1 -0
  96. package/src/components/organisms/us-gov-banner/us-gov-banner.stories.tsx +35 -0
  97. package/src/components/organisms/us-gov-banner/us-gov-banner.test.tsx +107 -0
  98. package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +73 -0
  99. package/src/components/organisms/us-gov-banner/us-gov-banner.visual.test.tsx +46 -0
  100. package/src/components/sections/banner/banner.stories.tsx +150 -0
  101. package/src/components/sections/banner/banner.test.tsx +185 -0
  102. package/src/components/sections/banner/banner.tsx +130 -0
  103. package/src/components/sections/banner/index.ts +2 -0
  104. package/src/components/sections/card-grid/card-grid.stories.tsx +351 -0
  105. package/src/components/sections/card-grid/card-grid.tsx +118 -0
  106. package/src/components/sections/card-grid/index.ts +1 -0
  107. package/src/components/sections/faq-section/faq-section.tsx +77 -0
  108. package/src/components/sections/faq-section/index.ts +2 -0
  109. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-darwin.png +0 -0
  110. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-linux.png +0 -0
  111. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-darwin.png +0 -0
  112. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-linux.png +0 -0
  113. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-darwin.png +0 -0
  114. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-linux.png +0 -0
  115. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-darwin.png +0 -0
  116. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-linux.png +0 -0
  117. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-darwin.png +0 -0
  118. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-linux.png +0 -0
  119. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-darwin.png +0 -0
  120. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-linux.png +0 -0
  121. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-darwin.png +0 -0
  122. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-linux.png +0 -0
  123. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-darwin.png +0 -0
  124. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-linux.png +0 -0
  125. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-darwin.png +0 -0
  126. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-linux.png +0 -0
  127. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-darwin.png +0 -0
  128. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-linux.png +0 -0
  129. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-default-chromium-linux.png +0 -0
  130. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-darwin.png +0 -0
  131. package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-linux.png +0 -0
  132. package/src/components/sections/hero/hero.stories.tsx +145 -0
  133. package/src/components/sections/hero/hero.test.tsx +135 -0
  134. package/src/components/sections/hero/hero.tsx +191 -0
  135. package/src/components/sections/hero/hero.visual.test.tsx +140 -0
  136. package/src/components/sections/hero/index.ts +1 -0
  137. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-darwin.png +0 -0
  138. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-linux.png +0 -0
  139. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-darwin.png +0 -0
  140. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-linux.png +0 -0
  141. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-darwin.png +0 -0
  142. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-linux.png +0 -0
  143. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-darwin.png +0 -0
  144. package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-linux.png +0 -0
  145. package/src/components/sections/prose/index.ts +6 -0
  146. package/src/components/sections/prose/prose.stories.tsx +144 -0
  147. package/src/components/sections/prose/prose.test.tsx +178 -0
  148. package/src/components/sections/prose/prose.tsx +88 -0
  149. package/src/components/sections/prose/prose.visual.test.tsx +105 -0
  150. package/src/components/sections/river/index.ts +1 -0
  151. package/src/components/sections/river/river.stories.tsx +237 -0
  152. package/src/components/sections/river/river.test.tsx +268 -0
  153. package/src/components/sections/river/river.tsx +175 -0
  154. package/src/components/sections/tout/index.ts +1 -0
  155. package/src/components/sections/tout/tout.stories.tsx +154 -0
  156. package/src/components/sections/tout/tout.test.tsx +242 -0
  157. package/src/components/sections/tout/tout.tsx +206 -0
  158. package/src/components/sections/two-column-section/index.ts +5 -0
  159. package/src/components/sections/two-column-section/two-column-section.stories.tsx +285 -0
  160. package/src/components/sections/two-column-section/two-column-section.tsx +152 -0
  161. package/src/index.ts +98 -0
  162. package/src/lib/utils.ts +6 -0
  163. package/src/main.tsx +13 -0
  164. package/src/stories/Introduction.mdx +114 -0
  165. package/src/stories/TokenShowcase.stories.tsx +92 -0
  166. package/src/stories/TokenShowcase.tsx +1352 -0
  167. package/src/styles.css +11 -0
  168. package/dist/components/hero/hero.d.ts +0 -17
  169. /package/dist/components/{us-gov-banner → organisms/us-gov-banner}/us-gov-banner.d.ts +0 -0
  170. /package/dist/components/{prose → sections/prose}/prose.d.ts +0 -0
package/README.md CHANGED
@@ -200,7 +200,3 @@ bun run build
200
200
  # Type check
201
201
  bun run type:check
202
202
  ```
203
-
204
- ## License
205
-
206
- MIT
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
@@ -0,0 +1,50 @@
1
+ import * as React from "react";
2
+ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Allow multiple items to be expanded at once
5
+ * @default false
6
+ */
7
+ allowMultiple?: boolean;
8
+ /**
9
+ * The ID(s) of items that should be expanded by default
10
+ */
11
+ defaultExpanded?: string | string[];
12
+ children: React.ReactNode;
13
+ }
14
+ /**
15
+ * Accordion component for expandable/collapsible content sections.
16
+ * Built on Base UI's Accordion primitive.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <Accordion defaultExpanded="item-1">
21
+ * <AccordionItem id="item-1" title="Question 1">
22
+ * Answer to question 1
23
+ * </AccordionItem>
24
+ * <AccordionItem id="item-2" title="Question 2">
25
+ * Answer to question 2
26
+ * </AccordionItem>
27
+ * </Accordion>
28
+ * ```
29
+ */
30
+ declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
31
+ export interface AccordionItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
32
+ /**
33
+ * Unique identifier for this item
34
+ */
35
+ id: string;
36
+ /**
37
+ * The question/title displayed in the header
38
+ */
39
+ title: string;
40
+ /**
41
+ * The answer/content revealed when expanded
42
+ */
43
+ children: React.ReactNode;
44
+ }
45
+ /**
46
+ * Individual accordion item with collapsible content.
47
+ * Must be used within an Accordion component.
48
+ */
49
+ declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
50
+ export { Accordion, AccordionItem };
@@ -1,3 +1,4 @@
1
+ import { ButtonProps as BaseButtonProps } from '@base-ui-components/react/button';
1
2
  import { VariantProps } from 'class-variance-authority';
2
3
  import * as React from "react";
3
4
  /**
@@ -10,6 +11,7 @@ import * as React from "react";
10
11
  * - ivory: Light filled button (for dark backgrounds)
11
12
  * - ivoryOutline: Light outlined button (for dark backgrounds)
12
13
  * - ivoryOutlineQuiet: Subtle light outlined button (for dark backgrounds)
14
+ * - secondary: Gray filled button (for dark backgrounds)
13
15
  *
14
16
  * Sizes:
15
17
  * - lg: Large buttons (46px height)
@@ -19,11 +21,10 @@ import * as React from "react";
19
21
  * For icon-only buttons, use the IconButton component instead.
20
22
  */
21
23
  declare const buttonVariants: (props?: ({
22
- variant?: "charcoal" | "charcoalOutline" | "charcoalOutlineQuiet" | "ivory" | "ivoryOutline" | "ivoryOutlineQuiet" | null | undefined;
24
+ variant?: "charcoal" | "charcoalOutline" | "charcoalOutlineQuiet" | "ivory" | "ivoryOutline" | "ivoryOutlineQuiet" | "gray" | null | undefined;
23
25
  size?: "lg" | "default" | "sm" | null | undefined;
24
26
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
25
- export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
26
- asChild?: boolean;
27
- }
27
+ export type HTMLButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
28
+ export type ButtonProps = BaseButtonProps & VariantProps<typeof buttonVariants> & HTMLButtonProps;
28
29
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
29
30
  export { Button, buttonVariants };
@@ -3,6 +3,26 @@ import * as React from "react";
3
3
  /**
4
4
  * IconButton component based on Figma BaseKit / Interface / Icon Button
5
5
  *
6
+ * **IMPORTANT: Accessibility Requirement**
7
+ * Icon-only buttons MUST have an accessible label. Provide one of:
8
+ * - `aria-label`: A text description of the button's action (recommended)
9
+ * - `aria-labelledby`: Reference to an element containing the label
10
+ * - `title`: Tooltip text (less preferred, but provides a label)
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // Correct usage with aria-label
15
+ * <IconButton aria-label="Close menu">
16
+ * <CloseIcon />
17
+ * </IconButton>
18
+ *
19
+ * // Correct usage with aria-labelledby
20
+ * <IconButton aria-labelledby="close-label">
21
+ * <CloseIcon />
22
+ * </IconButton>
23
+ * <span id="close-label" className="sr-only">Close menu</span>
24
+ * ```
25
+ *
6
26
  * Variants:
7
27
  * - charcoal: Dark filled button (for light backgrounds)
8
28
  * - charcoalOutline: Dark outlined button (for light backgrounds)
@@ -0,0 +1,62 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const pagerControlVariants: (props?: ({
4
+ size?: "lg" | "default" | "sm" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ declare const dotBaseVariants: (props?: ({
7
+ size?: "lg" | "default" | "sm" | null | undefined;
8
+ variant?: "charcoal" | "ivory" | null | undefined;
9
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
10
+ export interface PagerControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, VariantProps<typeof pagerControlVariants>, VariantProps<typeof dotBaseVariants> {
11
+ /**
12
+ * Total number of pages/items
13
+ */
14
+ count: number;
15
+ /**
16
+ * Current active page index (0-based)
17
+ */
18
+ activeIndex?: number;
19
+ /**
20
+ * Duration in milliseconds for each page before auto-advancing
21
+ * Set to 0 to disable auto-advance
22
+ * @default 5000
23
+ */
24
+ duration?: number;
25
+ /**
26
+ * Whether the pager should auto-advance
27
+ * @default true
28
+ */
29
+ autoPlay?: boolean;
30
+ /**
31
+ * Callback when the active page changes
32
+ */
33
+ onChange?: (index: number) => void;
34
+ /**
35
+ * Whether to pause auto-advance on hover
36
+ * @default true
37
+ */
38
+ pauseOnHover?: boolean;
39
+ /**
40
+ * Whether to loop back to the first page after the last
41
+ * @default true
42
+ */
43
+ loop?: boolean;
44
+ }
45
+ /**
46
+ * PagerControl component for indicating progress through a series of pages/slides.
47
+ *
48
+ * Features smooth width transitions when switching between dots and an animated
49
+ * progress fill on the active dot that shows time remaining before auto-advancing
50
+ * (similar to Apple's carousel indicators).
51
+ *
52
+ * Variants:
53
+ * - charcoal: Dark dots (for light backgrounds)
54
+ * - ivory: Light dots (for dark backgrounds)
55
+ *
56
+ * Sizes:
57
+ * - sm: Small dots (6px height)
58
+ * - default: Medium dots (10px height)
59
+ * - lg: Large dots (14px height)
60
+ */
61
+ declare const PagerControl: React.ForwardRefExoticComponent<PagerControlProps & React.RefAttributes<HTMLDivElement>>;
62
+ export { PagerControl, pagerControlVariants };
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const cardVariants: (props?: ({
4
- layout?: "vertical" | "horizontal" | null | undefined;
4
+ layout?: "horizontal" | "vertical" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
7
7
  }
@@ -43,9 +43,13 @@ export interface CardEyebrowProps extends React.HTMLAttributes<HTMLParagraphElem
43
43
  */
44
44
  declare const CardEyebrow: React.ForwardRefExoticComponent<CardEyebrowProps & React.RefAttributes<HTMLParagraphElement>>;
45
45
  export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
46
+ /**
47
+ * The heading level to render (h1-h6). Defaults to h3.
48
+ */
49
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
46
50
  }
47
51
  /**
48
- * Card title/heading.
52
+ * Card title/heading. Use the `as` prop to change the heading level.
49
53
  */
50
54
  declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
51
55
  export interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
@@ -36,4 +36,31 @@ export interface NavbarActionsProps extends React.HTMLAttributes<HTMLDivElement>
36
36
  * Container for navbar action items (search, menu button, etc).
37
37
  */
38
38
  declare const NavbarActions: React.ForwardRefExoticComponent<NavbarActionsProps & React.RefAttributes<HTMLDivElement>>;
39
- export { Navbar, NavbarBrand, NavbarLinks, NavbarLink, NavbarActions };
39
+ export interface NavbarMobileMenuProps extends React.HTMLAttributes<HTMLDivElement> {
40
+ }
41
+ /**
42
+ * Mobile menu container that displays navigation links on mobile devices.
43
+ * Hidden on desktop (md and above). Should be used with NavbarMobileMenuButton.
44
+ * Built on Base UI Dialog for accessibility (focus trap, escape key, click-outside).
45
+ */
46
+ declare const NavbarMobileMenu: React.ForwardRefExoticComponent<NavbarMobileMenuProps & React.RefAttributes<HTMLDivElement>>;
47
+ export interface NavbarMobileMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
48
+ asChild?: boolean;
49
+ }
50
+ /**
51
+ * Button to toggle the mobile menu.
52
+ * Should be placed in NavbarActions on mobile.
53
+ * Use asChild to render as a custom button component (e.g., IconButton).
54
+ */
55
+ declare const NavbarMobileMenuButton: React.ForwardRefExoticComponent<NavbarMobileMenuButtonProps & React.RefAttributes<HTMLButtonElement>>;
56
+ export interface NavbarMobileMenuLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
57
+ asChild?: boolean;
58
+ active?: boolean;
59
+ }
60
+ /**
61
+ * Navigation link for the mobile menu.
62
+ * Automatically closes the mobile menu when clicked.
63
+ * Use asChild to render with a router Link component.
64
+ */
65
+ declare const NavbarMobileMenuLink: React.ForwardRefExoticComponent<NavbarMobileMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>;
66
+ export { Navbar, NavbarBrand, NavbarLinks, NavbarLink, NavbarActions, NavbarMobileMenu, NavbarMobileMenuButton, NavbarMobileMenuLink, };
@@ -0,0 +1,64 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ /**
4
+ * Banner component based on Figma BaseKit / Banners
5
+ *
6
+ * Used to surface short, important updates or a single key action
7
+ * without disrupting the main page content.
8
+ *
9
+ * Responsive behavior using 24-column grid:
10
+ * - Mobile (sm): Stacked layout, 20px horizontal / 32px vertical padding
11
+ * - Tablet (md): Horizontal layout, 56px padding
12
+ * - Desktop (lg): Horizontal layout, 72px padding
13
+ *
14
+ * Must be placed inside a `grid-container`. Uses `col-full` to span all columns.
15
+ */
16
+ declare const bannerVariants: (props?: ({
17
+ theme?: "light" | "dark" | null | undefined;
18
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
19
+ export interface BannerProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof bannerVariants> {
20
+ /**
21
+ * The heading text displayed in the banner
22
+ */
23
+ heading: string;
24
+ /**
25
+ * The description text displayed below the heading
26
+ */
27
+ description: string;
28
+ /**
29
+ * Optional action element (typically a Button component)
30
+ */
31
+ action?: React.ReactNode;
32
+ }
33
+ /**
34
+ * Banner component for surfacing important updates or CTAs.
35
+ *
36
+ * Uses the 24-column grid system - must be placed inside a `grid-container`.
37
+ * Spans full width with `col-full`.
38
+ *
39
+ * Responsive across breakpoints:
40
+ * - Mobile: Stacked layout with smaller padding
41
+ * - Tablet: Horizontal layout with medium padding
42
+ * - Desktop: Horizontal layout with larger padding
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * <div className="grid-container">
47
+ * <Banner
48
+ * heading="Important Update"
49
+ * description="Check out our new features."
50
+ * action={<Button>Learn More</Button>}
51
+ * />
52
+ * </div>
53
+ *
54
+ * // Dark theme
55
+ * <Banner
56
+ * theme="dark"
57
+ * heading="Still Have Questions?"
58
+ * description="Contact us at support@example.com"
59
+ * action={<Button variant="secondary">Email Us</Button>}
60
+ * />
61
+ * ```
62
+ */
63
+ declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAttributes<HTMLElement>>;
64
+ export { Banner, bannerVariants };
@@ -0,0 +1,53 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ /**
4
+ * CardGrid component for displaying cards in a responsive grid layout
5
+ *
6
+ * Variants:
7
+ * - A: 3 columns on desktop, 2 on tablet, 1 on mobile
8
+ * - B: 2 columns on desktop/tablet, 1 on mobile
9
+ *
10
+ * Uses the 24-column grid system with grid-container as root.
11
+ */
12
+ declare const cardGridVariants: (props?: ({
13
+ variant?: "A" | "B" | null | undefined;
14
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
15
+ export interface CardGridProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof cardGridVariants> {
16
+ /**
17
+ * The title text displayed above the cards
18
+ */
19
+ title: string;
20
+ /**
21
+ * The card elements to display in the grid
22
+ */
23
+ cards: React.ReactNode[];
24
+ }
25
+ /**
26
+ * CardGrid component for displaying cards in a responsive grid layout.
27
+ *
28
+ * Uses the 24-column grid system with grid-container as root.
29
+ *
30
+ * Layout (Variant A):
31
+ * - Mobile (sm): Single column, py-72
32
+ * - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
33
+ * - Desktop (lg+): 3 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
34
+ *
35
+ * Layout (Variant B):
36
+ * - Mobile (sm): Single column, py-72
37
+ * - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
38
+ * - Desktop (lg+): 2 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <CardGrid
43
+ * variant="A"
44
+ * title="Featured Cards"
45
+ * cards={[
46
+ * <Card key="1">...</Card>,
47
+ * <Card key="2">...</Card>,
48
+ * ]}
49
+ * />
50
+ * ```
51
+ */
52
+ declare const CardGrid: React.ForwardRefExoticComponent<CardGridProps & React.RefAttributes<HTMLElement>>;
53
+ export { CardGrid, cardGridVariants };
@@ -0,0 +1,44 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { twoColumnSectionVariants } from '../two-column-section/two-column-section';
3
+ import * as React from "react";
4
+ export interface FaqSectionProps extends Omit<React.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof twoColumnSectionVariants> {
5
+ /**
6
+ * The title text displayed in the left column
7
+ * @default "Frequently Asked Questions"
8
+ */
9
+ title?: string;
10
+ /**
11
+ * The FAQ content - typically an Accordion with AccordionItems
12
+ */
13
+ children: React.ReactNode;
14
+ }
15
+ /**
16
+ * FaqSection component for displaying FAQ content in a two-column layout.
17
+ *
18
+ * Wraps TwoColumnSection with FAQ-specific defaults and typography.
19
+ *
20
+ * Layout:
21
+ * - Mobile/Tablet: Stacked (title above content)
22
+ * - Desktop (lg+): Title left (~40%), FAQ content right (~60%)
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <FaqSection>
27
+ * <Accordion defaultExpanded="faq-1">
28
+ * <AccordionItem id="faq-1" title="What is the US Tech Force?">
29
+ * Tech Force will be an elite group of technology specialists...
30
+ * </AccordionItem>
31
+ * <AccordionItem id="faq-2" title="What skills are required?">
32
+ * We're looking for expertise in software engineering...
33
+ * </AccordionItem>
34
+ * </Accordion>
35
+ * </FaqSection>
36
+ *
37
+ * // With custom title
38
+ * <FaqSection title="Common Questions" theme="light">
39
+ * ...
40
+ * </FaqSection>
41
+ * ```
42
+ */
43
+ declare const FaqSection: React.ForwardRefExoticComponent<FaqSectionProps & React.RefAttributes<HTMLElement>>;
44
+ export { FaqSection };
@@ -0,0 +1,73 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ /**
4
+ * Hero variants based on Figma BaseKit / Heros
5
+ *
6
+ * Variants:
7
+ * - A1: Content aligned at bottom (default)
8
+ * - A2: Content aligned at top
9
+ * - A3: Content aligned at center
10
+ *
11
+ * Each variant is responsive across breakpoints:
12
+ * - sm (Mobile): 500px height, 20px padding
13
+ * - md (Tablet): 650px height, 56px padding
14
+ * - lg (Desktop): 700-850px height, 64-72px padding
15
+ */
16
+ declare const heroVariants: (props?: ({
17
+ variant?: "A1" | "A2" | "A3" | null | undefined;
18
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
19
+ export interface HeroProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof heroVariants> {
20
+ /**
21
+ * The title text displayed in the hero
22
+ */
23
+ title: string;
24
+ /**
25
+ * URL for the background image
26
+ */
27
+ backgroundImage?: string;
28
+ /**
29
+ * URL for a background video (takes precedence over backgroundImage)
30
+ */
31
+ backgroundVideo?: string;
32
+ /**
33
+ * Opacity of the dark overlay (0-1, default: 0)
34
+ */
35
+ overlayOpacity?: number;
36
+ /**
37
+ * Color of the overlay (default: "black")
38
+ */
39
+ overlayColor?: string;
40
+ /**
41
+ * CSS background-position value (default: "center")
42
+ */
43
+ backgroundPosition?: string;
44
+ }
45
+ /**
46
+ * Hero component for page headers with large display typography.
47
+ *
48
+ * Features responsive sizing across three variants:
49
+ * - A1: Content at bottom (default)
50
+ * - A2: Content at top
51
+ * - A3: Content centered
52
+ *
53
+ * Each variant responds to breakpoints:
54
+ * - Mobile: 500px height, 20px padding, 64px typography
55
+ * - Tablet (768px+): 650px height, 56px padding, 128-148px typography
56
+ * - Desktop (1440px+): 700-800px height, 64-72px padding, 148-192px typography
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * // Simple hero
61
+ * <Hero title="Welcome" variant="A1" />
62
+ *
63
+ * // With background image and overlay
64
+ * <Hero
65
+ * title="Welcome"
66
+ * variant="A1"
67
+ * backgroundImage="/hero.jpg"
68
+ * overlayOpacity={0.4}
69
+ * />
70
+ * ```
71
+ */
72
+ declare const Hero: React.ForwardRefExoticComponent<HeroProps & React.RefAttributes<HTMLElement>>;
73
+ export { Hero, heroVariants };
@@ -0,0 +1,63 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ /**
4
+ * River component for content sections with text and media
5
+ *
6
+ * Variants:
7
+ * - A: Text on left (9 cols), media on right (15 cols) on desktop
8
+ * - B: Media on left (15 cols), text on right (9 cols) on desktop
9
+ *
10
+ * Uses the 24-column grid system. Must be placed inside a `grid-container`.
11
+ */
12
+ declare const riverVariants: (props?: ({
13
+ variant?: "A" | "B" | null | undefined;
14
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
15
+ export interface RiverProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof riverVariants> {
16
+ /**
17
+ * The headline text
18
+ */
19
+ headline: string;
20
+ /**
21
+ * The body text
22
+ */
23
+ body: string;
24
+ /**
25
+ * Primary action button (required)
26
+ */
27
+ primaryAction: React.ReactNode;
28
+ /**
29
+ * Secondary action button (optional)
30
+ */
31
+ secondaryAction?: React.ReactNode;
32
+ /**
33
+ * Media content (image, video, etc.)
34
+ */
35
+ media: React.ReactNode;
36
+ }
37
+ /**
38
+ * River component for content sections with text and media.
39
+ *
40
+ * Uses the 24-column grid system - must be placed inside a `grid-container`.
41
+ *
42
+ * Layout:
43
+ * - Mobile/Tablet: Stacked (text above media)
44
+ * - Desktop (lg+):
45
+ * - Variant A: Text (9 cols) | Media (15 cols)
46
+ * - Variant B: Media (15 cols) | Text (9 cols)
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * <div className="grid-container">
51
+ * <River
52
+ * variant="A"
53
+ * headline="Feature Headline"
54
+ * body="Description of the feature..."
55
+ * primaryAction={<Button>Primary</Button>}
56
+ * secondaryAction={<Button variant="charcoalOutline">Secondary</Button>}
57
+ * media={<img src="..." alt="Feature" />}
58
+ * />
59
+ * </div>
60
+ * ```
61
+ */
62
+ declare const River: React.ForwardRefExoticComponent<RiverProps & React.RefAttributes<HTMLElement>>;
63
+ export { River, riverVariants };
@@ -0,0 +1,73 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Tout component based on Figma BaseKit / Touts
4
+ *
5
+ * A full-bleed section with a background image and overlaid content.
6
+ * Content can be positioned on the left side or centered.
7
+ *
8
+ * Responsive behavior:
9
+ * - Mobile (sm): 600px height, 4 columns with gap-20, content spans all 4 cols
10
+ * - Tablet (md): 750px height, 12 columns with gap-20, content spans 9 cols (left) or centered
11
+ * - Desktop (lg): 900px height, 24 columns with gap-20, content spans 9 cols (left) or centered
12
+ *
13
+ * This component is self-contained - do NOT wrap in a grid-container.
14
+ */
15
+ export interface ToutProps extends React.HTMLAttributes<HTMLElement> {
16
+ /**
17
+ * The headline displayed in the tout
18
+ */
19
+ headline: React.ReactNode;
20
+ /**
21
+ * The body text displayed below the headline (optional)
22
+ */
23
+ body?: string;
24
+ /**
25
+ * Primary action button (required)
26
+ */
27
+ primaryAction: React.ReactNode;
28
+ /**
29
+ * Secondary action button (optional)
30
+ */
31
+ secondaryAction?: React.ReactNode;
32
+ /**
33
+ * Background media (image or video element)
34
+ * Should be a full-bleed element that covers the entire section
35
+ */
36
+ backgroundMedia: React.ReactNode;
37
+ /**
38
+ * Content alignment: left (default) or center
39
+ */
40
+ align?: "left" | "center";
41
+ /**
42
+ * Show National Design Studio footer link at the bottom of the section
43
+ */
44
+ ndstudioFooter?: boolean;
45
+ }
46
+ /**
47
+ * Tout component for hero-like sections with background media and overlaid content.
48
+ *
49
+ * This component is self-contained with its own grid.
50
+ * Grid setup:
51
+ * - Desktop (lg): 24 columns, gap-spacing-20, content spans 9 cols
52
+ * - Tablet (md): 12 columns, gap-spacing-20, content spans 9 cols
53
+ * - Mobile: 4 columns, gap-spacing-20, content spans all 4 cols
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * <Tout
58
+ * headline="Feature Headline"
59
+ * body="Description of the feature..."
60
+ * primaryAction={<Button>Primary</Button>}
61
+ * secondaryAction={<Button variant="charcoalOutline">Secondary</Button>}
62
+ * backgroundMedia={
63
+ * <img
64
+ * src="/background.jpg"
65
+ * alt=""
66
+ * className="absolute inset-0 w-full h-full object-cover"
67
+ * />
68
+ * }
69
+ * />
70
+ * ```
71
+ */
72
+ declare const Tout: React.ForwardRefExoticComponent<ToutProps & React.RefAttributes<HTMLElement>>;
73
+ export { Tout };