@hashicorp/mds-react 0.9.3 → 0.9.5

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 (371) hide show
  1. package/components/accordion/index.js +9 -0
  2. package/components/accordion/index.js.map +1 -0
  3. package/components/accordion/item/button.js +44 -0
  4. package/components/accordion/item/button.js.map +1 -0
  5. package/components/accordion/item/index.js +59 -0
  6. package/components/accordion/item/index.js.map +1 -0
  7. package/components/accordion/style.module.scss.js +24 -0
  8. package/components/accordion/style.module.scss.js.map +1 -0
  9. package/components/alert/alert.module.scss.js +29 -0
  10. package/components/alert/alert.module.scss.js.map +1 -0
  11. package/components/alert/icon.js +34 -0
  12. package/components/alert/icon.js.map +1 -0
  13. package/components/alert/index.js +97 -0
  14. package/components/alert/index.js.map +1 -0
  15. package/components/badge/index.js +50 -0
  16. package/components/badge/index.js.map +1 -0
  17. package/components/badge/style.module.scss +8 -6
  18. package/components/badge/style.module.scss.js +22 -0
  19. package/components/badge/style.module.scss.js.map +1 -0
  20. package/components/badge-count/index.js +29 -0
  21. package/components/badge-count/index.js.map +1 -0
  22. package/components/badge-count/style.module.scss +7 -6
  23. package/components/badge-count/style.module.scss.js +15 -0
  24. package/components/badge-count/style.module.scss.js.map +1 -0
  25. package/components/breadcrumbs/index.js +38 -0
  26. package/components/breadcrumbs/index.js.map +1 -0
  27. package/components/breadcrumbs/item/index.js +32 -0
  28. package/components/breadcrumbs/item/index.js.map +1 -0
  29. package/components/breadcrumbs/style.module.scss.js +27 -0
  30. package/components/breadcrumbs/style.module.scss.js.map +1 -0
  31. package/components/breadcrumbs/truncation-button/index.js +25 -0
  32. package/components/breadcrumbs/truncation-button/index.js.map +1 -0
  33. package/components/button/button-primitive.d.ts +5 -0
  34. package/components/button/button-primitive.js +59 -0
  35. package/components/button/button-primitive.js.map +1 -0
  36. package/components/button/index.d.ts +4 -5
  37. package/components/button/index.js +69 -0
  38. package/components/button/index.js.map +1 -0
  39. package/components/button/styles.module.scss.js +32 -0
  40. package/components/button/styles.module.scss.js.map +1 -0
  41. package/components/card/card-thumbnail/card-thumbnail.module.css.js +8 -0
  42. package/components/card/card-thumbnail/card-thumbnail.module.css.js.map +1 -0
  43. package/components/card/card-thumbnail/index.js +23 -0
  44. package/components/card/card-thumbnail/index.js.map +1 -0
  45. package/components/card/index.d.ts +2 -1
  46. package/components/card/index.js +160 -0
  47. package/components/card/index.js.map +1 -0
  48. package/components/card/styles.module.css.js +29 -0
  49. package/components/card/styles.module.css.js.map +1 -0
  50. package/components/card/types.d.ts +1 -0
  51. package/components/code-block/code-block.module.scss.js +34 -0
  52. package/components/code-block/code-block.module.scss.js.map +1 -0
  53. package/components/code-block/code-lines/index.js +59 -0
  54. package/components/code-block/code-lines/index.js.map +1 -0
  55. package/components/code-block/code-lines/utils/split-html-into-lines.js +19 -0
  56. package/components/code-block/code-lines/utils/split-html-into-lines.js.map +1 -0
  57. package/components/code-block/code-lines/utils/split-jsx-into-lines.js +31 -0
  58. package/components/code-block/code-lines/utils/split-jsx-into-lines.js.map +1 -0
  59. package/components/code-block/hidden-copy-content/index.js +13 -0
  60. package/components/code-block/hidden-copy-content/index.js.map +1 -0
  61. package/components/code-block/index.js +88 -0
  62. package/components/code-block/index.js.map +1 -0
  63. package/components/code-block/utils/parse-highlighted-lines.js +39 -0
  64. package/components/code-block/utils/parse-highlighted-lines.js.map +1 -0
  65. package/components/code-block/utils/process-snippet.js +20 -0
  66. package/components/code-block/utils/process-snippet.js.map +1 -0
  67. package/components/code-block/utils/shellwords.js +33 -0
  68. package/components/code-block/utils/shellwords.js.map +1 -0
  69. package/components/combo-box-primitive/index.js +302 -0
  70. package/components/combo-box-primitive/index.js.map +1 -0
  71. package/components/dialog-primitive/dialog.module.scss.js +12 -0
  72. package/components/dialog-primitive/dialog.module.scss.js.map +1 -0
  73. package/components/dialog-primitive/index.js +15 -0
  74. package/components/dialog-primitive/index.js.map +1 -0
  75. package/components/disclosure-primitive/index.js +57 -0
  76. package/components/disclosure-primitive/index.js.map +1 -0
  77. package/components/disclosure-primitive/styles.module.css.js +7 -0
  78. package/components/disclosure-primitive/styles.module.css.js.map +1 -0
  79. package/components/disclosure-primitive/use-disclosure-primitive.js +17 -0
  80. package/components/disclosure-primitive/use-disclosure-primitive.js.map +1 -0
  81. package/components/dismiss-button/index.js +22 -0
  82. package/components/dismiss-button/index.js.map +1 -0
  83. package/components/dismiss-button/styles.module.scss.js +7 -0
  84. package/components/dismiss-button/styles.module.scss.js.map +1 -0
  85. package/components/dropdown/index.js +79 -0
  86. package/components/dropdown/index.js.map +1 -0
  87. package/components/dropdown/list-item/custom.js +9 -0
  88. package/components/dropdown/list-item/custom.js.map +1 -0
  89. package/components/dropdown/list-item/index.js +14 -0
  90. package/components/dropdown/list-item/index.js.map +1 -0
  91. package/components/dropdown/list-item/interactive.js +49 -0
  92. package/components/dropdown/list-item/interactive.js.map +1 -0
  93. package/components/dropdown/list-item/separator.js +17 -0
  94. package/components/dropdown/list-item/separator.js.map +1 -0
  95. package/components/dropdown/list-item/styles.module.css.js +26 -0
  96. package/components/dropdown/list-item/styles.module.css.js.map +1 -0
  97. package/components/dropdown/list-item/title.js +9 -0
  98. package/components/dropdown/list-item/title.js.map +1 -0
  99. package/components/dropdown/styles.module.css.js +24 -0
  100. package/components/dropdown/styles.module.css.js.map +1 -0
  101. package/components/dropdown/toggle-button/index.js +54 -0
  102. package/components/dropdown/toggle-button/index.js.map +1 -0
  103. package/components/dropdown/toggle-button/styles.module.scss.js +14 -0
  104. package/components/dropdown/toggle-button/styles.module.scss.js.map +1 -0
  105. package/components/flight-icon/flight-icon.module.css.js +12 -0
  106. package/components/flight-icon/flight-icon.module.css.js.map +1 -0
  107. package/components/flight-icon/index.js +58 -0
  108. package/components/flight-icon/index.js.map +1 -0
  109. package/components/form/checkbox/form-checkbox.module.css.js +8 -0
  110. package/components/form/checkbox/form-checkbox.module.css.js.map +1 -0
  111. package/components/form/checkbox/index.js +109 -0
  112. package/components/form/checkbox/index.js.map +1 -0
  113. package/components/form/error/form-error.module.css.js +14 -0
  114. package/components/form/error/form-error.module.css.js.map +1 -0
  115. package/components/form/error/index.js +22 -0
  116. package/components/form/error/index.js.map +1 -0
  117. package/components/form/field/form-field.module.css.js +17 -0
  118. package/components/form/field/form-field.module.css.js.map +1 -0
  119. package/components/form/field/index.js +46 -0
  120. package/components/form/field/index.js.map +1 -0
  121. package/components/form/fieldset/form-fieldset.module.css.js +19 -0
  122. package/components/form/fieldset/form-fieldset.module.css.js.map +1 -0
  123. package/components/form/fieldset/index.d.ts +1 -2
  124. package/components/form/fieldset/index.js +65 -0
  125. package/components/form/fieldset/index.js.map +1 -0
  126. package/components/form/file-input/form-file-input.module.scss +2 -2
  127. package/components/form/file-input/form-file-input.module.scss.js +7 -0
  128. package/components/form/file-input/form-file-input.module.scss.js.map +1 -0
  129. package/components/form/file-input/index.js +68 -0
  130. package/components/form/file-input/index.js.map +1 -0
  131. package/components/form/helper-text/form-helper-text.module.css.js +7 -0
  132. package/components/form/helper-text/form-helper-text.module.css.js.map +1 -0
  133. package/components/form/helper-text/index.js +22 -0
  134. package/components/form/helper-text/index.js.map +1 -0
  135. package/components/form/indicator/form-indicator.module.css.js +8 -0
  136. package/components/form/indicator/form-indicator.module.css.js.map +1 -0
  137. package/components/form/indicator/index.js +23 -0
  138. package/components/form/indicator/index.js.map +1 -0
  139. package/components/form/label/form-label.module.css.js +10 -0
  140. package/components/form/label/form-label.module.css.js.map +1 -0
  141. package/components/form/label/index.js +33 -0
  142. package/components/form/label/index.js.map +1 -0
  143. package/components/form/legend/form-legend.module.css.js +10 -0
  144. package/components/form/legend/form-legend.module.css.js.map +1 -0
  145. package/components/form/legend/index.js +19 -0
  146. package/components/form/legend/index.js.map +1 -0
  147. package/components/form/radio/form-radio.module.scss.js +8 -0
  148. package/components/form/radio/form-radio.module.scss.js.map +1 -0
  149. package/components/form/radio/index.d.ts +3 -5
  150. package/components/form/radio/index.js +100 -0
  151. package/components/form/radio/index.js.map +1 -0
  152. package/components/form/radio-card/RadioCardStory.css +21 -0
  153. package/components/form/radio-card/description.js +10 -0
  154. package/components/form/radio-card/description.js.map +1 -0
  155. package/components/form/radio-card/form-radio-card.module.css.js +30 -0
  156. package/components/form/radio-card/form-radio-card.module.css.js.map +1 -0
  157. package/components/form/radio-card/group.js +31 -0
  158. package/components/form/radio-card/group.js.map +1 -0
  159. package/components/form/radio-card/index.js +67 -0
  160. package/components/form/radio-card/index.js.map +1 -0
  161. package/components/form/radio-card/label.js +10 -0
  162. package/components/form/radio-card/label.js.map +1 -0
  163. package/components/form/select/form-select.module.css.js +14 -0
  164. package/components/form/select/form-select.module.css.js.map +1 -0
  165. package/components/form/select/index.js +79 -0
  166. package/components/form/select/index.js.map +1 -0
  167. package/components/form/super-select/form-super-select.module.css.js +22 -0
  168. package/components/form/super-select/form-super-select.module.css.js.map +1 -0
  169. package/components/form/super-select/index.js +170 -0
  170. package/components/form/super-select/index.js.map +1 -0
  171. package/components/form/text-input/index.js +91 -0
  172. package/components/form/text-input/index.js.map +1 -0
  173. package/components/form/text-input/styles.module.css.js +15 -0
  174. package/components/form/text-input/styles.module.css.js.map +1 -0
  175. package/components/form/textarea/form-textarea.module.css.js +14 -0
  176. package/components/form/textarea/form-textarea.module.css.js.map +1 -0
  177. package/components/form/textarea/index.js +74 -0
  178. package/components/form/textarea/index.js.map +1 -0
  179. package/components/form/toggle/form-toggle.module.scss.js +12 -0
  180. package/components/form/toggle/form-toggle.module.scss.js.map +1 -0
  181. package/components/form/toggle/index.js +102 -0
  182. package/components/form/toggle/index.js.map +1 -0
  183. package/components/hds/wrappers/tooltip.js +51 -0
  184. package/components/hds/wrappers/tooltip.js.map +1 -0
  185. package/components/icon-tile/index.js +50 -0
  186. package/components/icon-tile/index.js.map +1 -0
  187. package/components/icon-tile/style.module.scss +12 -10
  188. package/components/icon-tile/style.module.scss.js +29 -0
  189. package/components/icon-tile/style.module.scss.js.map +1 -0
  190. package/components/index.d.ts +1 -1
  191. package/components/index.js +116 -73
  192. package/components/index.js.map +1 -1
  193. package/components/inline-link/index.js +34 -0
  194. package/components/inline-link/index.js.map +1 -0
  195. package/components/inline-link/inline-link.module.css.js +11 -0
  196. package/components/inline-link/inline-link.module.css.js.map +1 -0
  197. package/components/interactive/index.js +59 -0
  198. package/components/interactive/index.js.map +1 -0
  199. package/components/legacy-button/index.js +65 -0
  200. package/components/legacy-button/index.js.map +1 -0
  201. package/components/legacy-button/utils.js +39 -0
  202. package/components/legacy-button/utils.js.map +1 -0
  203. package/components/menu-primitive/index.js +68 -0
  204. package/components/menu-primitive/index.js.map +1 -0
  205. package/components/menu-primitive/styles.module.css.js +12 -0
  206. package/components/menu-primitive/styles.module.css.js.map +1 -0
  207. package/components/menu-primitive/use-menu-primitive.js +17 -0
  208. package/components/menu-primitive/use-menu-primitive.js.map +1 -0
  209. package/components/modal/index.js +61 -0
  210. package/components/modal/index.js.map +1 -0
  211. package/components/modal/modal.module.css +5 -0
  212. package/components/modal/modal.module.css.js +8 -0
  213. package/components/modal/modal.module.css.js.map +1 -0
  214. package/components/modal/use-modal.js +17 -0
  215. package/components/modal/use-modal.js.map +1 -0
  216. package/components/separator/index.js +15 -0
  217. package/components/separator/index.js.map +1 -0
  218. package/components/separator/separator.module.css.js +10 -0
  219. package/components/separator/separator.module.css.js.map +1 -0
  220. package/components/standalone-link/index.js +54 -0
  221. package/components/standalone-link/index.js.map +1 -0
  222. package/components/standalone-link/styles.module.scss.js +17 -0
  223. package/components/standalone-link/styles.module.scss.js.map +1 -0
  224. package/components/table/index.js +52 -0
  225. package/components/table/index.js.map +1 -0
  226. package/components/table/table.module.scss.js +33 -0
  227. package/components/table/table.module.scss.js.map +1 -0
  228. package/components/table/td.js +28 -0
  229. package/components/table/td.js.map +1 -0
  230. package/components/table/th-button-tooltip.js +24 -0
  231. package/components/table/th-button-tooltip.js.map +1 -0
  232. package/components/table/th.js +43 -0
  233. package/components/table/th.js.map +1 -0
  234. package/components/table/tr.js +9 -0
  235. package/components/table/tr.js.map +1 -0
  236. package/components/table/utils.js +28 -0
  237. package/components/table/utils.js.map +1 -0
  238. package/components/tabs/index.js +115 -0
  239. package/components/tabs/index.js.map +1 -0
  240. package/components/tabs/tab-panel.js +35 -0
  241. package/components/tabs/tab-panel.js.map +1 -0
  242. package/components/tabs/tab.js +70 -0
  243. package/components/tabs/tab.js.map +1 -0
  244. package/components/tabs/tabs.module.scss.js +22 -0
  245. package/components/tabs/tabs.module.scss.js.map +1 -0
  246. package/components/tabs/use-tabs-context.js +16 -0
  247. package/components/tabs/use-tabs-context.js.map +1 -0
  248. package/components/text/index.js +112 -0
  249. package/components/text/index.js.map +1 -0
  250. package/components/text/style.module.scss.js +9 -0
  251. package/components/text/style.module.scss.js.map +1 -0
  252. package/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js +62 -0
  253. package/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js.map +1 -0
  254. package/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js +20 -0
  255. package/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js.map +1 -0
  256. package/components/visualizations/bar-chart/horizontal-chart/index.js +104 -0
  257. package/components/visualizations/bar-chart/horizontal-chart/index.js.map +1 -0
  258. package/components/visualizations/bar-chart/horizontal-chart/legend/index.js +13 -0
  259. package/components/visualizations/bar-chart/horizontal-chart/legend/index.js.map +1 -0
  260. package/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js +14 -0
  261. package/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js.map +1 -0
  262. package/components/visualizations/bar-chart/horizontal-chart/style.module.css.js +28 -0
  263. package/components/visualizations/bar-chart/horizontal-chart/style.module.css.js.map +1 -0
  264. package/components/visualizations/bar-chart/index.js +37 -0
  265. package/components/visualizations/bar-chart/index.js.map +1 -0
  266. package/components/visualizations/bar-chart/style.module.css.js +12 -0
  267. package/components/visualizations/bar-chart/style.module.css.js.map +1 -0
  268. package/components/visualizations/donut-chart/components/arc-tooltip/index.js +14 -0
  269. package/components/visualizations/donut-chart/components/arc-tooltip/index.js.map +1 -0
  270. package/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js +10 -0
  271. package/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js.map +1 -0
  272. package/components/visualizations/donut-chart/components/external-arc-label/index.js +58 -0
  273. package/components/visualizations/donut-chart/components/external-arc-label/index.js.map +1 -0
  274. package/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js +16 -0
  275. package/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js.map +1 -0
  276. package/components/visualizations/donut-chart/components/internal-arc-label/index.js +42 -0
  277. package/components/visualizations/donut-chart/components/internal-arc-label/index.js.map +1 -0
  278. package/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js +14 -0
  279. package/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js.map +1 -0
  280. package/components/visualizations/donut-chart/index.js +90 -0
  281. package/components/visualizations/donut-chart/index.js.map +1 -0
  282. package/components/visualizations/donut-chart/styles.module.css.js +20 -0
  283. package/components/visualizations/donut-chart/styles.module.css.js.map +1 -0
  284. package/hooks/use-media-query/index.js +16 -0
  285. package/hooks/use-media-query/index.js.map +1 -0
  286. package/index.js +155 -101
  287. package/index.js.map +1 -1
  288. package/package.json +1 -1
  289. package/patterns/card/newsroom-card/index.js +26 -0
  290. package/patterns/card/newsroom-card/index.js.map +1 -0
  291. package/patterns/card/newsroom-card/style.module.css.js +8 -0
  292. package/patterns/card/newsroom-card/style.module.css.js.map +1 -0
  293. package/patterns/card/partner-card/index.js +42 -0
  294. package/patterns/card/partner-card/index.js.map +1 -0
  295. package/patterns/card/partner-card/style.module.css.js +12 -0
  296. package/patterns/card/partner-card/style.module.css.js.map +1 -0
  297. package/patterns/card/person-card/index.js +54 -0
  298. package/patterns/card/person-card/index.js.map +1 -0
  299. package/patterns/card/person-card/style.module.css.js +12 -0
  300. package/patterns/card/person-card/style.module.css.js.map +1 -0
  301. package/patterns/card/primitives.js +77 -0
  302. package/patterns/card/primitives.js.map +1 -0
  303. package/patterns/card/promo-card/index.js +36 -0
  304. package/patterns/card/promo-card/index.js.map +1 -0
  305. package/patterns/card/resource-card/index.js +26 -0
  306. package/patterns/card/resource-card/index.js.map +1 -0
  307. package/patterns/card/style.module.css.js +30 -0
  308. package/patterns/card/style.module.css.js.map +1 -0
  309. package/patterns/card/thumbnails/index.js +25 -0
  310. package/patterns/card/thumbnails/index.js.map +1 -0
  311. package/patterns/card/unified-card/index.js +37 -0
  312. package/patterns/card/unified-card/index.js.map +1 -0
  313. package/patterns/copy-button/clipboard.js +78 -0
  314. package/patterns/copy-button/clipboard.js.map +1 -0
  315. package/patterns/copy-button/index.js +57 -0
  316. package/patterns/copy-button/index.js.map +1 -0
  317. package/patterns/copy-button/style.module.css.js +13 -0
  318. package/patterns/copy-button/style.module.css.js.map +1 -0
  319. package/patterns/index.js +32 -22
  320. package/patterns/index.js.map +1 -1
  321. package/patterns/layout/index.js +47 -0
  322. package/patterns/layout/index.js.map +1 -0
  323. package/patterns/layout/layout.module.css.js +20 -0
  324. package/patterns/layout/layout.module.css.js.map +1 -0
  325. package/patterns/product-badge/index.js +22 -0
  326. package/patterns/product-badge/index.js.map +1 -0
  327. package/patterns/product-badge/style.module.css.js +8 -0
  328. package/patterns/product-badge/style.module.css.js.map +1 -0
  329. package/patterns/product-logo/index.js +130 -0
  330. package/patterns/product-logo/index.js.map +1 -0
  331. package/patterns/product-logo/product-logo.module.css.js +13 -0
  332. package/patterns/product-logo/product-logo.module.css.js.map +1 -0
  333. package/patterns/related-content/index.js +65 -0
  334. package/patterns/related-content/index.js.map +1 -0
  335. package/patterns/related-content/style.module.css.js +22 -0
  336. package/patterns/related-content/style.module.css.js.map +1 -0
  337. package/style.css +1 -1
  338. package/utils/get-contrast-yiq.js +13 -0
  339. package/utils/get-contrast-yiq.js.map +1 -0
  340. package/utils/hooks/use-screen-size.js +10 -0
  341. package/utils/hooks/use-screen-size.js.map +1 -0
  342. package/utils/i18n/constants/index.js +98 -0
  343. package/utils/i18n/constants/index.js.map +1 -0
  344. package/utils/i18n/helpers/locale-provider.js +9 -0
  345. package/utils/i18n/helpers/locale-provider.js.map +1 -0
  346. package/utils/i18n/helpers/to-smart-sentence-case.js +12 -0
  347. package/utils/i18n/helpers/to-smart-sentence-case.js.map +1 -0
  348. package/utils/i18n/helpers/to-smart-title-case.js +10 -0
  349. package/utils/i18n/helpers/to-smart-title-case.js.map +1 -0
  350. package/utils/i18n/helpers/use-locale.js +14 -0
  351. package/utils/i18n/helpers/use-locale.js.map +1 -0
  352. package/utils/i18n/index.js +41 -0
  353. package/utils/i18n/index.js.map +1 -0
  354. package/utils/i18n/index2.js +33 -0
  355. package/utils/i18n/index2.js.map +1 -0
  356. package/utils/index.js +7 -7
  357. package/utils/make-normalizer/index.js +34 -0
  358. package/utils/make-normalizer/index.js.map +1 -0
  359. package/{index-DBjAbGt7.js → utils/mds-context/index.js} +20 -19
  360. package/utils/mds-context/index.js.map +1 -0
  361. package/index-B9mPJh9w.js +0 -579
  362. package/index-B9mPJh9w.js.map +0 -1
  363. package/index-BHBlMMNF.js +0 -16
  364. package/index-BHBlMMNF.js.map +0 -1
  365. package/index-C4GBbW3N.js +0 -3567
  366. package/index-C4GBbW3N.js.map +0 -1
  367. package/index-DBjAbGt7.js.map +0 -1
  368. package/index-WkGIywHj.js +0 -767
  369. package/index-WkGIywHj.js.map +0 -1
  370. package/use-screen-size-BOnkX_K-.js +0 -9
  371. package/use-screen-size-BOnkX_K-.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx as c } from "react/jsx-runtime";
3
+ import { forwardRef as f } from "react";
4
+ import { useMDSLink as l } from "../../utils/mds-context/index.js";
5
+ const p = f((r, e) => {
6
+ const t = l(), {
7
+ href: i,
8
+ className: o,
9
+ isHrefExternal: n,
10
+ onClick: s,
11
+ children: a,
12
+ locale: d,
13
+ ...u
14
+ } = r;
15
+ return i ? /* @__PURE__ */ c(
16
+ t,
17
+ {
18
+ className: o,
19
+ target: n ? "_blank" : void 0,
20
+ rel: n ? "noopener noreferrer" : void 0,
21
+ onClick: s,
22
+ ...g(i, d, n),
23
+ ...u,
24
+ ref: e,
25
+ children: a
26
+ }
27
+ ) : /* @__PURE__ */ c(
28
+ "button",
29
+ {
30
+ type: "button",
31
+ className: o,
32
+ onClick: s,
33
+ ...u,
34
+ ref: e,
35
+ children: a
36
+ }
37
+ );
38
+ });
39
+ p.displayName = "Interactive";
40
+ const g = (r, e, t) => t ? {
41
+ href: r,
42
+ hrefLang: void 0
43
+ } : ["en", "de", "es", "fr", "ja", "ko", "pt", "id"].includes(
44
+ r.substring(1, 3)
45
+ ) ? {
46
+ href: r,
47
+ hrefLang: r.substring(1, 3)
48
+ } : r.startsWith("/") && e ? {
49
+ href: `/${e}${r}`,
50
+ hrefLang: e
51
+ } : {
52
+ href: r,
53
+ hrefLang: void 0
54
+ };
55
+ export {
56
+ p as Interactive,
57
+ g as getLocalizedLinkProps
58
+ };
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/interactive/index.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, type ForwardRefExoticComponent } from 'react'\nimport type { ButtonHTMLAttributes, MouseEventHandler } from 'react'\nimport { useMDSLink } from '../../utils/mds-context'\n\ninterface InteractiveProps extends React.HTMLAttributes<HTMLElement> {\n\tisHrefExternal?: boolean\n\thref?: string\n\tonClick?: MouseEventHandler\n\ttype?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n\tprefetch?: boolean\n\tlocale?: string\n}\n\nconst Interactive = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tInteractiveProps\n>((props, ref) => {\n\tconst Link = useMDSLink()\n\tconst {\n\t\thref,\n\t\tclassName,\n\t\tisHrefExternal,\n\t\tonClick,\n\t\tchildren,\n\t\tlocale,\n\t\t...rest\n\t} = props\n\n\t// TODO: trigger link on space key up\n\tif (href) {\n\t\treturn (\n\t\t\t<Link\n\t\t\t\tclassName={className}\n\t\t\t\ttarget={isHrefExternal ? '_blank' : undefined}\n\t\t\t\trel={isHrefExternal ? 'noopener noreferrer' : undefined}\n\t\t\t\tonClick={onClick}\n\t\t\t\t{...getLocalizedLinkProps(href, locale, isHrefExternal)}\n\t\t\t\t{...rest}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLAnchorElement>}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Link>\n\t\t)\n\t} else {\n\t\treturn (\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={onClick}\n\t\t\t\t{...rest}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLButtonElement>}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</button>\n\t\t)\n\t}\n})\nInteractive.displayName = 'Interactive'\n\n/**\n * Smaller, local version of our getLocalizedLinkProps util,\n * cloned here to work around a cyclic dependency issue\n * with the main @web/utils package.\n *\n * @param url An internal URL path\n * @param locale A supported locale\n * @returns A prefixed URL if locale is defined, otherwise the URL without prefix\n */\nexport const getLocalizedLinkProps = (\n\thref: string,\n\tlocale?: string,\n\tisHrefExternal?: boolean\n): {\n\thref: string\n\threfLang: string | undefined\n\tisHrefExternal?: boolean\n} => {\n\tif (isHrefExternal) {\n\t\treturn {\n\t\t\thref: href,\n\t\t\threfLang: undefined,\n\t\t}\n\t}\n\n\tif (\n\t\t['en', 'de', 'es', 'fr', 'ja', 'ko', 'pt', 'id'].includes(\n\t\t\thref.substring(1, 3)\n\t\t)\n\t) {\n\t\t// Don't localize if the href is already localized\n\t\treturn {\n\t\t\thref: href,\n\t\t\threfLang: href.substring(1, 3),\n\t\t}\n\t}\n\n\tif (href.startsWith('/') && locale) {\n\t\treturn {\n\t\t\thref: `/${locale}${href}`,\n\t\t\threfLang: locale,\n\t\t}\n\t}\n\n\treturn {\n\t\thref: href,\n\t\threfLang: undefined,\n\t}\n}\n\nexport type { InteractiveProps }\nexport { Interactive }\n"],"names":["Interactive","forwardRef","props","ref","Link","useMDSLink","href","className","isHrefExternal","onClick","children","locale","rest","jsx","getLocalizedLinkProps"],"mappings":";;;;AAmBC,MAAAA,IAAaC,EAAW,CAAAC,GAAAC,MAAA;AACxB,QAAMC,IAAAC,EAAA,GACL;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,OACGC;AAAA,EAGJ,IAAIV;AACH,aACE,gBAAAW;AAAA,IAAAT;AAAA,IAAA;AAAA,MAEA,WAAAG;AAAA,MACA,QAAKC,IAAiB,WAAA;AAAA,MACtB,KAAAA,IAAA,wBAAA;AAAA,MACC,SAAAC;AAAA,MACA,GAAGK,EAAAR,GAAAK,GAAAH,CAAA;AAAA,MACJ,GAAAI;AAAA,MAEC,KAAAT;AAAA,MAAA,UAAAO;AAAA,IACF;AAAA,EAEF,IAEG,gBAAAG;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,MAAA;AAAA,MACA,WAAAN;AAAA,MACC,SAAAE;AAAA,MACD,GAAAG;AAAA,MAEC,KAAAT;AAAA,MAAA,UAAAO;AAAA,IACF;AAAA,EAEF;AAED,CAAA;AAWOV,EAAM,cAAA;AASZ,MAAIc,IAAgB,CAAAR,GAAAK,GAAAH,MACnBA,IACC;AAAA,EACA,MAAAF;AAAA,EACD,UAAA;AACD,WAIO,MAAU,MAAI,MAAA,MAAA,MAAA,MAAA,IAAA,EAAA;AAAA,EACpBA,EACC,UAAA,GAAA,CAAA;AAED,IACC;AAAA,EACA,MAAAA;AAAA,EACD,UAAAA,EAAA,UAAA,GAAA,CAAA;AACD,IAGCA,EAAO,WAAA,GAAA,KAAAK,IACN;AAAA,EACA,UAAUA,CAAA,GAAAL,CAAA;AAAA,EACX,UAAAK;AACD,IAGC;AAAA,EACA,MAAAL;AAAA,EACD,UAAA;AACD;"}
@@ -0,0 +1,65 @@
1
+ import { jsx as b } from "react/jsx-runtime";
2
+ import { forwardRef as S } from "react";
3
+ import { determineColor as x, LINK_TYPE_ICON_MAP as l } from "./utils.js";
4
+ import { StandaloneLink as _ } from "../standalone-link/index.js";
5
+ import { Button as D } from "../button/index.js";
6
+ const H = S(
7
+ ({
8
+ locale: t,
9
+ text: a,
10
+ title: i,
11
+ url: n,
12
+ href: d,
13
+ linkType: o,
14
+ onClick: m,
15
+ external: f,
16
+ className: u,
17
+ size: c,
18
+ icon: s,
19
+ iconPosition: e = "trailing",
20
+ label: B,
21
+ disabled: E,
22
+ type: M,
23
+ theme: r,
24
+ ...P
25
+ }, g) => x(r) === "tertiary" ? /* @__PURE__ */ b(
26
+ _,
27
+ {
28
+ text: a || i,
29
+ color: r?.background === "dark" ? "secondary-inverted" : "secondary",
30
+ href: n || d,
31
+ icon: o ? l[o] : s,
32
+ iconPosition: o ? "trailing" : e,
33
+ className: u,
34
+ onClick: m,
35
+ size: c,
36
+ isHrefExternal: o === "outbound" || f,
37
+ ref: g,
38
+ locale: t
39
+ }
40
+ ) : /* @__PURE__ */ b(
41
+ D,
42
+ {
43
+ text: a || i,
44
+ href: n || d,
45
+ isHrefExternal: o === "outbound" || f,
46
+ color: x(r),
47
+ type: M,
48
+ icon: o ? l[o] : s,
49
+ iconPosition: o ? "trailing" : e,
50
+ onClick: m,
51
+ className: u,
52
+ size: c === "small" ? "medium" : "large",
53
+ "aria-label": B,
54
+ disabled: E,
55
+ ref: g,
56
+ locale: t,
57
+ ...P
58
+ }
59
+ )
60
+ );
61
+ H.displayName = "MDSButton";
62
+ export {
63
+ H as MDSButton
64
+ };
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/legacy-button/index.tsx"],"sourcesContent":["import { type ForwardRefExoticComponent, forwardRef } from 'react'\nimport type { ButtonProps } from './types'\nimport { determineColor, LINK_TYPE_ICON_MAP } from './utils'\nimport { StandaloneLink } from '../standalone-link'\nimport { Button } from '../button'\n\n/** @deprecated Use <Button> from '@hashicorp/mds-react/button' instead. Will be removed in v1.0. */\nconst MDSButton = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tButtonProps\n>(\n\t(\n\t\t{\n\t\t\tlocale,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\turl,\n\t\t\thref,\n\t\t\tlinkType,\n\t\t\tonClick,\n\t\t\texternal,\n\t\t\tclassName,\n\t\t\tsize,\n\t\t\ticon,\n\t\t\ticonPosition = 'trailing',\n\t\t\tlabel,\n\t\t\tdisabled,\n\t\t\ttype,\n\t\t\ttheme,\n\t\t\t...rest\n\t\t},\n\t\tref\n\t) => {\n\t\tconst color = determineColor(theme)\n\n\t\tif (color === 'tertiary') {\n\t\t\t// We prefer the Standalone Link component over the tertiary\n\t\t\t// button styles.\n\t\t\treturn (\n\t\t\t\t<StandaloneLink\n\t\t\t\t\ttext={(text || title) as string}\n\t\t\t\t\tcolor={\n\t\t\t\t\t\ttheme?.background === 'dark' ? 'secondary-inverted' : 'secondary'\n\t\t\t\t\t}\n\t\t\t\t\thref={url || href}\n\t\t\t\t\ticon={linkType ? LINK_TYPE_ICON_MAP[linkType] : icon}\n\t\t\t\t\ticonPosition={linkType ? 'trailing' : iconPosition}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tonClick={onClick as () => void}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tisHrefExternal={linkType === 'outbound' || external}\n\t\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLAnchorElement>}\n\t\t\t\t\tlocale={locale}\n\t\t\t\t/>\n\t\t\t)\n\t\t}\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\ttext={text || title}\n\t\t\t\thref={url || href}\n\t\t\t\tisHrefExternal={linkType === 'outbound' || external}\n\t\t\t\tcolor={determineColor(theme)}\n\t\t\t\ttype={type}\n\t\t\t\ticon={linkType ? LINK_TYPE_ICON_MAP[linkType] : icon}\n\t\t\t\ticonPosition={linkType ? 'trailing' : iconPosition}\n\t\t\t\tonClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n\t\t\t\tclassName={className}\n\t\t\t\t// Default buttons to the large size unless we specifically request the\n\t\t\t\t// small variant\n\t\t\t\tsize={size === 'small' ? 'medium' : 'large'}\n\t\t\t\taria-label={label}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLButtonElement>}\n\t\t\t\tlocale={locale}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t)\n\t}\n)\n\nMDSButton.displayName = 'MDSButton'\n\nexport { MDSButton }\n"],"names":["MDSButton","forwardRef","locale","text","title","url","href","linkType","onClick","external","className","size","icon","iconPosition","label","disabled","type","theme","rest","ref","determineColor","jsx","StandaloneLink","LINK_TYPE_ICON_MAP","Button"],"mappings":";;;;;AAOA,MAAMA,IAAYC;AAAA,EAIjB,CACC;AAAA,IACC,QAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,KAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAEJC,MAEcC,EAAeH,CAAK,MAEpB,aAIZ,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,MAAOnB,KAAQC;AAAA,MACf,OACCa,GAAO,eAAe,SAAS,uBAAuB;AAAA,MAEvD,MAAMZ,KAAOC;AAAA,MACb,MAAMC,IAAWgB,EAAmBhB,CAAQ,IAAIK;AAAA,MAChD,cAAcL,IAAW,aAAaM;AAAA,MACtC,WAAAH;AAAA,MACA,SAAAF;AAAA,MACA,MAAAG;AAAA,MACA,gBAAgBJ,MAAa,cAAcE;AAAA,MAC3C,KAAAU;AAAA,MACA,QAAAjB;AAAA,IAAA;AAAA,EAAA,IAMF,gBAAAmB;AAAA,IAACG;AAAA,IAAA;AAAA,MACA,MAAMrB,KAAQC;AAAA,MACd,MAAMC,KAAOC;AAAA,MACb,gBAAgBC,MAAa,cAAcE;AAAA,MAC3C,OAAOW,EAAeH,CAAK;AAAA,MAC3B,MAAAD;AAAA,MACA,MAAMT,IAAWgB,EAAmBhB,CAAQ,IAAIK;AAAA,MAChD,cAAcL,IAAW,aAAaM;AAAA,MACtC,SAAAL;AAAA,MACA,WAAAE;AAAA,MAGA,MAAMC,MAAS,UAAU,WAAW;AAAA,MACpC,cAAYG;AAAA,MACZ,UAAAC;AAAA,MACA,KAAAI;AAAA,MACA,QAAAjB;AAAA,MACC,GAAGgB;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAlB,EAAU,cAAc;"}
@@ -0,0 +1,39 @@
1
+ function n(r) {
2
+ const a = r?.variant ? r.variant : "primary";
3
+ if (a === "primary")
4
+ switch (r?.brand) {
5
+ case "hashicorp":
6
+ return "primary";
7
+ case "boundary":
8
+ case "consul":
9
+ case "nomad":
10
+ case "packer":
11
+ case "terraform":
12
+ case "vagrant":
13
+ case "vault":
14
+ case "waypoint":
15
+ return r.brand;
16
+ case "neutral":
17
+ return "secondary-high-contrast";
18
+ default:
19
+ return "primary";
20
+ }
21
+ if (a === "secondary")
22
+ return "secondary";
23
+ if (a === "tertiary" || a === "tertiary-neutral" || a === "ghost")
24
+ return "tertiary";
25
+ throw new Error(
26
+ `Unable to determine HDS Button color from theme: ${JSON.stringify(r)}`
27
+ );
28
+ }
29
+ const t = {
30
+ inbound: "arrow-right",
31
+ outbound: "external-link",
32
+ download: "download",
33
+ anchor: "anchor"
34
+ };
35
+ export {
36
+ t as LINK_TYPE_ICON_MAP,
37
+ n as determineColor
38
+ };
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/legacy-button/utils.tsx"],"sourcesContent":["import type { ButtonColor, Theme, ThemeVariant } from './types'\n\nexport const COLORS = [\n\t'primary',\n\t'primary-black',\n\t'primary-white',\n\t'secondary', // deprecated; maps to secondary-white\n\t'secondary-high-contrast', // alternates between secondary-black and secondary-white based on theme\n\t'secondary-white',\n\t'secondary-black',\n\t'tertiary',\n\t'critical',\n\t'boundary',\n\t'consul',\n\t'nomad',\n\t'packer',\n\t'terraform',\n\t'vagrant',\n\t'vault',\n\t'waypoint',\n\t'hashicorp', // alias to primary\n] as const\n\nexport function determineColor(theme?: Theme): ButtonColor {\n\tconst variant: ThemeVariant = theme?.variant ? theme.variant : 'primary'\n\n\tif (variant === 'primary') {\n\t\tswitch (theme?.brand) {\n\t\t\tcase 'hashicorp':\n\t\t\t\treturn 'primary'\n\t\t\tcase 'boundary':\n\t\t\tcase 'consul':\n\t\t\tcase 'nomad':\n\t\t\tcase 'packer':\n\t\t\tcase 'terraform':\n\t\t\tcase 'vagrant':\n\t\t\tcase 'vault':\n\t\t\tcase 'waypoint':\n\t\t\t\treturn theme.brand\n\t\t\tcase 'neutral':\n\t\t\t\treturn 'secondary-high-contrast'\n\t\t\tdefault:\n\t\t\t\treturn 'primary'\n\t\t}\n\t}\n\n\tif (variant === 'secondary') {\n\t\treturn 'secondary'\n\t}\n\n\tif (\n\t\tvariant === 'tertiary' ||\n\t\tvariant === 'tertiary-neutral' ||\n\t\tvariant === 'ghost'\n\t) {\n\t\treturn 'tertiary'\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine HDS Button color from theme: ${JSON.stringify(theme)}`\n\t)\n}\n\nexport const LINK_TYPE_ICON_MAP = {\n\tinbound: 'arrow-right',\n\toutbound: 'external-link',\n\tdownload: 'download',\n\tanchor: 'anchor',\n}\n"],"names":["determineColor","theme","variant","LINK_TYPE_ICON_MAP"],"mappings":"AAuBO,SAASA,EAAeC,GAA4B;AAC1D,QAAMC,IAAwBD,GAAO,UAAUA,EAAM,UAAU;AAE/D,MAAIC,MAAY;AACf,YAAQD,GAAO,OAAA;AAAA,MACd,KAAK;AACJ,eAAO;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACJ,eAAOA,EAAM;AAAA,MACd,KAAK;AACJ,eAAO;AAAA,MACR;AACC,eAAO;AAAA,IAAA;AAIV,MAAIC,MAAY;AACf,WAAO;AAGR,MACCA,MAAY,cACZA,MAAY,sBACZA,MAAY;AAEZ,WAAO;AAGR,QAAM,IAAI;AAAA,IACT,oDAAoD,KAAK,UAAUD,CAAK,CAAC;AAAA,EAAA;AAE3E;AAEO,MAAME,IAAqB;AAAA,EACjC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACT;"}
@@ -0,0 +1,68 @@
1
+ "use client";
2
+ import { jsx as c } from "react/jsx-runtime";
3
+ import { useState as N, useRef as f, useCallback as i, useMemo as P } from "react";
4
+ import R from "classnames";
5
+ import { MenuPrimitiveContext as b, useMenuPrimitive as p } from "./use-menu-primitive.js";
6
+ import u from "./styles.module.css.js";
7
+ const E = ({
8
+ onClose: e,
9
+ isFullWidth: n,
10
+ children: d,
11
+ className: g,
12
+ ...v
13
+ }) => {
14
+ const [l, r] = N(!1), m = f(null), o = f(null), t = i(() => {
15
+ r(!1), e && e();
16
+ }, [r, e]), a = i(() => {
17
+ r((s) => !s), o?.current?.focus();
18
+ }, [o, r]), x = i(
19
+ (s) => {
20
+ m?.current?.contains(
21
+ s.relatedTarget || document.activeElement
22
+ ) || t();
23
+ },
24
+ [t]
25
+ ), O = i(
26
+ (s) => {
27
+ s.key === "Escape" && (t(), o?.current?.querySelector("button")?.focus());
28
+ },
29
+ [t]
30
+ ), M = P(
31
+ () => ({
32
+ isOpen: l,
33
+ onClickToggle: a,
34
+ toggleRef: o,
35
+ closeMenu: t
36
+ }),
37
+ [l, a, o, t]
38
+ );
39
+ return /* @__PURE__ */ c(b.Provider, { value: M, children: /* @__PURE__ */ c(
40
+ "div",
41
+ {
42
+ className: R(
43
+ u["menu-primitive"],
44
+ {
45
+ [u["width-full"]]: n
46
+ },
47
+ g
48
+ ),
49
+ onBlur: x,
50
+ onKeyUp: O,
51
+ ref: m,
52
+ ...v,
53
+ children: d
54
+ }
55
+ ) });
56
+ }, I = ({ children: e }) => {
57
+ const { toggleRef: n } = p();
58
+ return /* @__PURE__ */ c("div", { className: "hds-menu-primitive__toggle", ref: n, children: e });
59
+ }, S = ({ children: e }) => {
60
+ const { isOpen: n } = p();
61
+ return /* @__PURE__ */ c("div", { className: n ? u.isOpen : u.isClosed, tabIndex: -1, children: e });
62
+ };
63
+ export {
64
+ S as Content,
65
+ E as Provider,
66
+ I as Toggle
67
+ };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/menu-primitive/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n\ttype ReactNode,\n\ttype FocusEvent,\n\ttype KeyboardEvent,\n\ttype HTMLAttributes,\n} from 'react'\nimport classNames from 'classnames'\nimport {\n\tMenuPrimitiveContext,\n\tuseMenuPrimitive,\n\ttype MenuPrimitiveContextState,\n} from './use-menu-primitive'\nimport s from './styles.module.css'\n\ninterface MenuPrimitiveProps extends HTMLAttributes<HTMLDivElement> {\n\tonClose?: () => void\n\tisFullWidth?: boolean\n\tchildren: ReactNode\n}\n\nconst Provider = ({\n\tonClose,\n\tisFullWidth,\n\tchildren,\n\tclassName,\n\t...rest\n}: MenuPrimitiveProps) => {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst menuRef = useRef<HTMLDivElement | null>(null)\n\tconst toggleRef = useRef<HTMLDivElement | null>(null)\n\n\tconst closeMenu = useCallback(() => {\n\t\tsetIsOpen(false)\n\t\tif (onClose) {\n\t\t\tonClose()\n\t\t}\n\t}, [setIsOpen, onClose])\n\n\tconst onClickToggle = useCallback(() => {\n\t\tsetIsOpen((prevState) => !prevState)\n\t\ttoggleRef?.current?.focus()\n\t}, [toggleRef, setIsOpen])\n\n\tconst onFocusOut = useCallback(\n\t\t(event: FocusEvent) => {\n\t\t\tif (\n\t\t\t\t!menuRef?.current?.contains(\n\t\t\t\t\tevent.relatedTarget || document.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcloseMenu()\n\t\t\t}\n\t\t},\n\t\t[closeMenu]\n\t)\n\n\tconst onKeyUp = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tcloseMenu()\n\t\t\t\ttoggleRef?.current?.querySelector('button')?.focus()\n\t\t\t}\n\t\t},\n\t\t[closeMenu]\n\t)\n\n\tconst contextValue: MenuPrimitiveContextState = useMemo(\n\t\t() => ({\n\t\t\tisOpen,\n\t\t\tonClickToggle,\n\t\t\ttoggleRef,\n\t\t\tcloseMenu,\n\t\t}),\n\t\t[isOpen, onClickToggle, toggleRef, closeMenu]\n\t)\n\n\treturn (\n\t\t<MenuPrimitiveContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\n\t\t\t\t\ts['menu-primitive'],\n\t\t\t\t\t{\n\t\t\t\t\t\t[s['width-full']]: isFullWidth,\n\t\t\t\t\t},\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tonBlur={onFocusOut}\n\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\tref={menuRef}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</MenuPrimitiveContext.Provider>\n\t)\n}\n\nconst Toggle = ({ children }: { children: ReactNode }) => {\n\tconst { toggleRef } = useMenuPrimitive()\n\treturn (\n\t\t<div className=\"hds-menu-primitive__toggle\" ref={toggleRef}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nconst Content = ({ children }: { children: ReactNode }) => {\n\tconst { isOpen } = useMenuPrimitive()\n\treturn (\n\t\t<div className={isOpen ? s.isOpen : s.isClosed} tabIndex={-1}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport { Provider, Toggle, Content }\n"],"names":["Provider","onClose","isFullWidth","children","className","rest","isOpen","setIsOpen","useState","menuRef","useRef","toggleRef","closeMenu","useCallback","prevState","event","contextValue","useMemo","onClickToggle","jsx","MenuPrimitiveContext","classNames","s","onFocusOut","onKeyUp","useMenuPrimitive"],"mappings":";;;;;;AA0BkB,MACjBA,IAAA,CAAA;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACD,GAAAC;AACC,MAAA;AACA,QAAM,CAAAC,GAAAC,KAA4CC,EAAA,EAAA,GAC5CC,IAAAC,EAAY,OAEZC,IAAYD,EAAA,OACjBE,IAAeC,EAAA,MAAA;AACf,IAAAN,IAAa,QAEbN,EAAA;AAAA,EAGD,GAAA,CAAAM,GAAMN,CAAgB,CAAA,OACVY,QAAwB;AACnC,IAAAN,EAAA,CAAWO,MAAS,CAAAA,CAAM,GAC3BH,GAAI,SAAW,MAAU;AAAA,EAEzB,GAAA,CAAAA,GAAMJ,CAAa,CAAA,OACKM;AAAA,IACtB,CAAAE,MACE;AAAkB,MAClBN,GAAM;QACPM,EACC,iBAAA,SAAA;AAAA,MACD,KACDH,EAAA;AAAA,IAED;AAAA,IACD,CAAAA,CAAA;AAAA,EAEA,OAC2BC;AAAA,IACzB,CAAAE,MAAI;AACH,gBAAU,aACVH,EAAA,GACDD,GAAA,SAAA,cAAA,QAAA,GAAA,MAAA;AAAA,IAED;AAAA,IACD,CAAAC,CAAA;AAAA,EAEA,GACCI,IAAOC;AAAA,IAAA,OACN;AAAA,MACA,QAAAX;AAAA,MACA,eAAAY;AAAA,MACA,WAAAP;AAAA,MACD,WAAAC;AAAA,IACA;AAAA,IACD,CAAAN,GAAAY,GAAAP,GAAAC,CAAA;AAAA,EAEA;AAEE,SAAC,gBAAAO,EAAAC,EAAA,UAAA,EAAA,OAAAJ,GAAA,UAAA,gBAAAG;AAAA,IAAA;AAAA,IAAA;AAAA,MACW,WACRE;AAAA,QACFC,EAAA,gBAAA;AAAA,QAAA;AAAA,UAEA,CAAAA,EAAA,YAAA,CAAA,GAAApB;AAAA,QACA;AAAA,QACDE;AAAA,MACA;AAAA,MACA,QAAAmB;AAAA,MACA,SAAAC;AAAA,MACC,KAAGf;AAAA,MAEH,GAAAJ;AAAA,MAAA,UAAAF;AAAA;EAIL,EAAA,CAAA;AAEA,OACS,CAAA,EAAA,UAAAA;AACR,6BACM;AAIP,SAAA,gBAAAgB,EAAA,OAAA,EAAA,WAAA,8BAAA,KAAAR,GAAA,UAAAR,EAAA,CAAA;AAEA,OACS,CAAA,EAAO,UAAAA;AACf,QAAA,EAAA,QAAAG,EAAA,IAAAmB,EACM;AAIP,SAAA,gBAAAN,EAAA,OAAA,EAAA,WAAAb,IAAAgB,EAAA,SAAAA,EAAA,UAAA,UAAA,IAAA,UAAAnB,EAAA,CAAA;;"}
@@ -0,0 +1,12 @@
1
+ const i = "isOpen__Dbse-", s = "isClosed__HWTqi", e = {
2
+ "menu-primitive": "menu-primitive__EJFpE",
3
+ "width-full": "width-full__35Qjo",
4
+ isOpen: i,
5
+ isClosed: s
6
+ };
7
+ export {
8
+ e as default,
9
+ s as isClosed,
10
+ i as isOpen
11
+ };
12
+ //# sourceMappingURL=styles.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { createContext as i, useContext as n } from "react";
3
+ const t = i(void 0);
4
+ t.displayName = "MenuPrimitiveContext";
5
+ function r() {
6
+ const e = n(t);
7
+ if (e === void 0)
8
+ throw new Error(
9
+ "useMenuPrimitive must be used within a MenuPrimitiveContext.Provider"
10
+ );
11
+ return e;
12
+ }
13
+ export {
14
+ t as MenuPrimitiveContext,
15
+ r as useMenuPrimitive
16
+ };
17
+ //# sourceMappingURL=use-menu-primitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-menu-primitive.js","sources":["../../../src/components/menu-primitive/use-menu-primitive.ts"],"sourcesContent":["'use client'\n\nimport {\n\tcreateContext,\n\tuseContext,\n\ttype MouseEventHandler,\n\ttype RefObject,\n} from 'react'\n\nexport interface MenuPrimitiveContextState {\n\tisOpen: boolean\n\tonClickToggle: MouseEventHandler<HTMLButtonElement>\n\ttoggleRef: RefObject<HTMLDivElement>\n\tcloseMenu: () => void\n}\n\nexport const MenuPrimitiveContext = createContext<\n\tMenuPrimitiveContextState | undefined\n>(undefined)\nMenuPrimitiveContext.displayName = 'MenuPrimitiveContext'\n\nexport function useMenuPrimitive(): MenuPrimitiveContextState {\n\tconst context = useContext(MenuPrimitiveContext)\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'useMenuPrimitive must be used within a MenuPrimitiveContext.Provider'\n\t\t)\n\t}\n\treturn context\n}\n"],"names":["MenuPrimitiveContext","createContext","useMenuPrimitive","context","useContext"],"mappings":";;AAmBA,MAAAA,IAAqBC,EAAc,MAAA;AAE5BD,gBAAuD;AAC7D,SAAME;AACN,QAAIC,IAAYC,EAAWJ,CAAA;AAC1B,MAAAG,MAAU;AAAA,UACT,IAAA;AAAA,MACD;AAAA,IACD;AAED,SAAAA;;"}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { jsxs as d, Fragment as x, jsx as l } from "react/jsx-runtime";
3
+ import { useState as m, useCallback as c, useMemo as y, useEffect as h } from "react";
4
+ import k from "react-focus-lock";
5
+ import { Dialog as p } from "../dialog-primitive/index.js";
6
+ import { ModalContext as E } from "./use-modal.js";
7
+ import { useModal as I } from "./use-modal.js";
8
+ import D from "./modal.module.css.js";
9
+ const L = ({
10
+ onClose: s,
11
+ initialIsOpen: f = !1,
12
+ initialModalContent: u = null,
13
+ children: v
14
+ }) => {
15
+ const [r, a] = m(
16
+ u
17
+ ), [e, t] = m(f), o = c(() => {
18
+ t(!1), a(null), s && s();
19
+ }, [t, s]), i = c(
20
+ (n) => {
21
+ a(n), t(!0);
22
+ },
23
+ [t]
24
+ ), M = y(
25
+ () => ({
26
+ isOpen: e,
27
+ openModal: i,
28
+ modalContent: r,
29
+ closeModal: o
30
+ }),
31
+ [e, i, o, r]
32
+ );
33
+ return h(() => {
34
+ const n = (w) => {
35
+ w.key === "Escape" && e && o();
36
+ };
37
+ return e && window.addEventListener("keydown", n), () => {
38
+ e && window.removeEventListener("keydown", n);
39
+ };
40
+ }, [e, o]), /* @__PURE__ */ d(E.Provider, { value: M, children: [
41
+ v,
42
+ e && r && /* @__PURE__ */ d(x, { children: [
43
+ /* @__PURE__ */ l(k, { children: /* @__PURE__ */ l(
44
+ p.Wrapper,
45
+ {
46
+ onDismiss: o,
47
+ className: D.modal,
48
+ open: e,
49
+ children: r
50
+ }
51
+ ) }),
52
+ /* @__PURE__ */ l(p.Overlay, {})
53
+ ] })
54
+ ] });
55
+ };
56
+ L.displayName = "ModalProvider";
57
+ export {
58
+ L as ModalProvider,
59
+ I as useModal
60
+ };
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/modal/index.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo, useState, useCallback, useEffect } from 'react'\nimport FocusLock from 'react-focus-lock'\nimport { Dialog } from '../dialog-primitive'\nimport { ModalContext, useModal } from './use-modal'\nimport type { ReactNode } from 'react'\nimport type { ModalContextState } from './use-modal'\nimport s from './modal.module.css'\n\ninterface ModalProps {\n\tinitialIsOpen?: boolean\n\tinitialModalContent?: ReactNode\n\tonClose?: () => void\n\tchildren: ReactNode\n}\n\nconst ModalProvider = ({\n\tonClose,\n\tinitialIsOpen = false,\n\tinitialModalContent = null,\n\tchildren,\n}: ModalProps) => {\n\tconst [modalContent, setModalContent] = useState<ReactNode | null>(\n\t\tinitialModalContent\n\t)\n\tconst [isOpen, setIsOpen] = useState(initialIsOpen)\n\n\tconst closeModal = useCallback(() => {\n\t\tsetIsOpen(false)\n\t\tsetModalContent(null)\n\t\tif (onClose) {\n\t\t\tonClose()\n\t\t}\n\t}, [setIsOpen, onClose])\n\n\tconst openModal = useCallback(\n\t\t(content: ReactNode) => {\n\t\t\tsetModalContent(content)\n\t\t\tsetIsOpen(true)\n\t\t},\n\t\t[setIsOpen]\n\t)\n\n\tconst contextValue: ModalContextState = useMemo(\n\t\t() => ({\n\t\t\tisOpen,\n\t\t\topenModal,\n\t\t\tmodalContent,\n\t\t\tcloseModal,\n\t\t}),\n\t\t[isOpen, openModal, closeModal, modalContent]\n\t)\n\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Escape' && isOpen) {\n\t\t\t\tcloseModal()\n\t\t\t}\n\t\t}\n\t\tif (isOpen) {\n\t\t\twindow.addEventListener('keydown', handleKeyDown)\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isOpen) {\n\t\t\t\twindow.removeEventListener('keydown', handleKeyDown)\n\t\t\t}\n\t\t}\n\t}, [isOpen, closeModal])\n\n\treturn (\n\t\t<ModalContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t\t{isOpen && modalContent && (\n\t\t\t\t<>\n\t\t\t\t\t<FocusLock>\n\t\t\t\t\t\t<Dialog.Wrapper\n\t\t\t\t\t\t\tonDismiss={closeModal}\n\t\t\t\t\t\t\tclassName={s.modal}\n\t\t\t\t\t\t\topen={isOpen}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{modalContent}\n\t\t\t\t\t\t</Dialog.Wrapper>\n\t\t\t\t\t</FocusLock>\n\t\t\t\t\t<Dialog.Overlay />\n\t\t\t\t</>\n\t\t\t)}\n\t\t</ModalContext.Provider>\n\t)\n}\n\nModalProvider.displayName = 'ModalProvider'\n\nexport { useModal, ModalProvider }\n"],"names":["ModalProvider","onClose","initialIsOpen","initialModalContent","children","modalContent","setModalContent","useState","isOpen","setIsOpen","closeModal","useCallback","content","contextValue","useMemo","openModal","useEffect","handleKeyDown","event","jsxs","ModalContext","jsx","FocusLock","Dialog","s"],"mappings":";;;;;;;;AAiBuB,MACtBA,IAAA,CAAA;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC,IAAA;AAAA,EACA,qBAAAC,IAAA;AAAA,EACD,UAAAC;AACC;AAAwC,QACvC,CAAAC,GAAAC,CAAA,IAAAC;AAAA,IACDJ;AAAA,EACA,GAEM,CAAAK,GAAAC,CAAa,IAAAF,EAAkBL,CAAA,GACpCQ,IAAeC,EAAA,MAAA;AACf,IAAAF,EAAA,EAAA,GACAH,EAAa,IAAA,QAEbL,EAAA;AAAA,EAGD,GAAA,CAAAQ,GAAMR,CAAY,CAAA,OACOU;AAAA,IACvB,CAAAC,MAAA;AACA,MAAAN,EAAcM,CAAA,GACfH,EAAA,EAAA;AAAA,IACA;AAAA,IACD,CAAAA,CAAA;AAAA,EAEA,GACCI,IAAOC;AAAA,IAAA,OACN;AAAA,MACA,QAAAN;AAAA,MACA,WAAAO;AAAA,MACA,cAAAV;AAAA,MACD,YAAAK;AAAA,IACA;AAAA,IACD,CAAAF,GAAAO,GAAAL,GAAAL,CAAA;AAAA,EAEA;AACC,SAAAW,EAAM,MAAA;AACL,UAAIC,IAAc,CAAAC;AACjB,gBAAW,YAAAV,KACZE,EAAA;AAAA,IAED;AACC,gBACD,OAAA,iBAAA,WAAAO,CAAA,SAGK;AACH,WACD,OAAA,oBAAA,WAAAA,CAAA;AAAA,IAEF;AAAA,EAEA,GAAA,CAAAT,GAAAE,CAAA,CACC,GACE,gBAAAS,EAAAC,EAAA,UAAA,EAAA,OAAAP,GAAA,UAAA;AAAA,IACAT;AAAA,IAECI,KAAAH,KACC,gBAAAc,iBAAA;AAAA,MAAQ,gBAAAE,EAAAC,GAAA,EAAA,UAAA,gBAAAD;AAAA,QAAPE,EAAA;AAAA,QAAA;AAAA,UAEA,WAAWb;AAAA,UACX,WAAMc,EAAA;AAAA,UAEL;UAAA,UAAAnB;AAAA;MAEH,EAAA,CAAA;AAAA,MAED,gBAAAgB,EAAAE,EAAA,SAAA,CAAA,CAAA;AAAA,MAEF,CAAA;AAAA,EAEF,EAAA,CAAA;AAEA;;"}
@@ -1,4 +1,9 @@
1
1
  .modal {
2
+ display: flex;
3
+ overflow: scroll;
4
+ border-radius: 8px;
5
+ padding: 0;
6
+ border: 0;
2
7
  position: fixed;
3
8
  z-index: 50;
4
9
  height: fit-content;
@@ -0,0 +1,8 @@
1
+ const o = "modal__Mao59", a = {
2
+ modal: o
3
+ };
4
+ export {
5
+ a as default,
6
+ o as modal
7
+ };
8
+ //# sourceMappingURL=modal.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { createContext as e, useContext as n } from "react";
3
+ const o = e(
4
+ void 0
5
+ );
6
+ o.displayName = "ModalContext";
7
+ function d() {
8
+ const t = n(o);
9
+ if (t === void 0)
10
+ throw new Error("useModal must be used within a ModalContext.Provider");
11
+ return t;
12
+ }
13
+ export {
14
+ o as ModalContext,
15
+ d as useModal
16
+ };
17
+ //# sourceMappingURL=use-modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-modal.js","sources":["../../../src/components/modal/use-modal.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport type { ReactNode } from 'react'\n\nexport interface ModalContextState {\n\tisOpen: boolean\n\topenModal: (content: ReactNode) => void\n\tcloseModal: () => void\n}\n\nexport const ModalContext = createContext<ModalContextState | undefined>(\n\tundefined\n)\nModalContext.displayName = 'ModalContext'\n\nexport function useModal(): ModalContextState {\n\tconst context = useContext(ModalContext)\n\tif (context === undefined) {\n\t\tthrow new Error('useModal must be used within a ModalContext.Provider')\n\t}\n\treturn context\n}\n"],"names":["ModalContext","createContext","useModal","context","useContext"],"mappings":";;AAW4B,MAC3BA,IAAAC;AAAA,EACD;AACA;AAEOD,gBAAuC;AAC7C,SAAME,IAAU;AAChB,QAAIC,IAAYC,EAAWJ,CAAA;AAC1B,MAAAG,MAAU;AACX,UAAA,IAAA,MAAA,sDAAA;AAED,SAAAA;;"}
@@ -0,0 +1,15 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import p from "classnames";
3
+ import r from "./separator.module.css.js";
4
+ const t = ({ spacing: a = "24", className: o, ...s }) => /* @__PURE__ */ m(
5
+ "hr",
6
+ {
7
+ className: p(r.separator, r[`spacing-${a}`], o),
8
+ ...s
9
+ }
10
+ );
11
+ t.displayName = "Separator";
12
+ export {
13
+ t as Separator
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/separator/index.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react'\nimport classNames from 'classnames'\nimport s from './separator.module.css'\n\ninterface SeparatorProps extends HTMLAttributes<HTMLHRElement> {\n\tspacing?: '0' | '24'\n}\n\nconst Separator = ({ spacing = '24', className, ...rest }: SeparatorProps) => {\n\treturn (\n\t\t<hr\n\t\t\tclassName={classNames(s.separator, s[`spacing-${spacing}`], className)}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n\nSeparator.displayName = 'Separator'\n\nexport type { SeparatorProps }\nexport { Separator }\n"],"names":["Separator","spacing","className","rest","jsx","classNames","s"],"mappings":";;;AAQA,MAAMA,IAAY,CAAC,EAAE,SAAAC,IAAU,MAAM,WAAAC,GAAW,GAAGC,QAEjD,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,WAAWC,EAAWC,EAAE,WAAWA,EAAE,WAAWL,CAAO,EAAE,GAAGC,CAAS;AAAA,IACpE,GAAGC;AAAA,EAAA;AAAA;AAKPH,EAAU,cAAc;"}
@@ -0,0 +1,10 @@
1
+ const a = "separator__Qz7bd", s = {
2
+ separator: a,
3
+ "spacing-24": "spacing-24__5hcla",
4
+ "spacing-0": "spacing-0__W5NO0"
5
+ };
6
+ export {
7
+ s as default,
8
+ a as separator
9
+ };
10
+ //# sourceMappingURL=separator.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,54 @@
1
+ import { jsxs as p, jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as S } from "react";
3
+ import I from "classnames";
4
+ import { Interactive as L } from "../interactive/index.js";
5
+ import { FlightIcon as f } from "../flight-icon/index.js";
6
+ import a from "./styles.module.scss.js";
7
+ const T = ["small", "medium", "large"], h = [
8
+ "primary",
9
+ "secondary",
10
+ "secondary-inverted"
11
+ ], k = ["leading", "trailing"], O = S(
12
+ ({
13
+ text: i,
14
+ size: m = "medium",
15
+ color: s = "primary",
16
+ icon: t,
17
+ iconPosition: r = "leading",
18
+ className: o,
19
+ "data-testid": l,
20
+ locale: d,
21
+ ...N
22
+ }, c) => {
23
+ const e = t && /* @__PURE__ */ n(f, { name: t, size: 16 });
24
+ return /* @__PURE__ */ p(
25
+ L,
26
+ {
27
+ ...N,
28
+ ref: c,
29
+ className: I(
30
+ a["standalone-link"],
31
+ a[`size-${m}`],
32
+ a[`color-${s}`],
33
+ a[`icon-position-${r}`],
34
+ o
35
+ ),
36
+ "data-testid": l,
37
+ locale: d,
38
+ children: [
39
+ e && r === "leading" && e,
40
+ /* @__PURE__ */ n("span", { className: a.text, children: i }),
41
+ e && r === "trailing" && e
42
+ ]
43
+ }
44
+ );
45
+ }
46
+ );
47
+ O.displayName = "StandaloneLink";
48
+ export {
49
+ h as STANDALONE_LINK_COLORS,
50
+ k as STANDALONE_LINK_ICON_POSITIONS,
51
+ T as STANDALONE_LINK_SIZES,
52
+ O as StandaloneLink
53
+ };
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/standalone-link/index.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport classNames from 'classnames'\nimport type { InteractiveProps } from '../interactive'\nimport { Interactive } from '../interactive'\nimport { FlightIcon } from '../flight-icon'\nimport s from './styles.module.scss'\n\nconst STANDALONE_LINK_SIZES = ['small', 'medium', 'large'] as const\ntype StandaloneLinkSize = (typeof STANDALONE_LINK_SIZES)[number]\n\nconst STANDALONE_LINK_COLORS = [\n\t'primary',\n\t'secondary',\n\t'secondary-inverted',\n] as const\ntype StandaloneLinkColor = (typeof STANDALONE_LINK_COLORS)[number]\n\nconst STANDALONE_LINK_ICON_POSITIONS = ['leading', 'trailing'] as const\ntype StandaloneLinkIconPosition =\n\t(typeof STANDALONE_LINK_ICON_POSITIONS)[number]\n\ninterface StandaloneLinkProps extends Omit<InteractiveProps, 'color' | 'size'> {\n\ttext: string\n\tsize?: StandaloneLinkSize\n\tcolor?: StandaloneLinkColor\n\ticon?: string\n\ticonPosition?: StandaloneLinkIconPosition\n\thref?: string\n\tlocale?: string\n\tisHrefExternal?: boolean\n\tonClick?: () => void\n\tclassName?: string\n\t'data-testid'?: string\n}\n\nconst StandaloneLink = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tStandaloneLinkProps\n>(\n\t(\n\t\t{\n\t\t\ttext,\n\t\t\tsize = 'medium',\n\t\t\tcolor = 'primary',\n\t\t\ticon,\n\t\t\ticonPosition = 'leading',\n\t\t\tclassName,\n\t\t\t'data-testid': dataTestId,\n\t\t\tlocale,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst iconElement = icon && <FlightIcon name={icon} size={16} />\n\n\t\treturn (\n\t\t\t<Interactive\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\tclassName={classNames(\n\t\t\t\t\ts['standalone-link'],\n\t\t\t\t\ts[`size-${size}`],\n\t\t\t\t\ts[`color-${color}`],\n\t\t\t\t\ts[`icon-position-${iconPosition}`],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tdata-testid={dataTestId}\n\t\t\t\tlocale={locale}\n\t\t\t>\n\t\t\t\t{iconElement && iconPosition === 'leading' && iconElement}\n\t\t\t\t<span className={s.text}>{text}</span>\n\t\t\t\t{iconElement && iconPosition === 'trailing' && iconElement}\n\t\t\t</Interactive>\n\t\t)\n\t}\n)\n\nStandaloneLink.displayName = 'StandaloneLink'\n\nexport type {\n\tStandaloneLinkSize,\n\tStandaloneLinkColor,\n\tStandaloneLinkIconPosition,\n\tStandaloneLinkProps,\n}\nexport {\n\tSTANDALONE_LINK_SIZES,\n\tSTANDALONE_LINK_COLORS,\n\tSTANDALONE_LINK_ICON_POSITIONS,\n\tStandaloneLink,\n}\n"],"names":["STANDALONE_LINK_SIZES","STANDALONE_LINK_COLORS","STANDALONE_LINK_ICON_POSITIONS","StandaloneLink","forwardRef","text","size","color","icon","iconPosition","className","dataTestId","locale","props","ref","iconElement","jsx","FlightIcon","jsxs","Interactive","classNames","s"],"mappings":";;;;;;AAOA,MAAMA,IAAwB,CAAC,SAAS,UAAU,OAAO,GAGnDC,IAAyB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACD,GAGMC,IAAiC,CAAC,WAAW,UAAU,GAkBvDC,IAAiBC;AAAA,EAItB,CACC;AAAA,IACC,MAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,OAAAC,IAAQ;AAAA,IACR,MAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,WAAAC;AAAA,IACA,eAAeC;AAAA,IACf,QAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAEJC,MACI;AACJ,UAAMC,IAAcP,KAAQ,gBAAAQ,EAACC,KAAW,MAAMT,GAAM,MAAM,IAAI;AAE9D,WACC,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,GAAGN;AAAA,QACJ,KAAAC;AAAA,QACA,WAAWM;AAAA,UACVC,EAAE,iBAAiB;AAAA,UACnBA,EAAE,QAAQf,CAAI,EAAE;AAAA,UAChBe,EAAE,SAASd,CAAK,EAAE;AAAA,UAClBc,EAAE,iBAAiBZ,CAAY,EAAE;AAAA,UACjCC;AAAA,QAAA;AAAA,QAED,eAAaC;AAAA,QACb,QAAAC;AAAA,QAEC,UAAA;AAAA,UAAAG,KAAeN,MAAiB,aAAaM;AAAA,UAC9C,gBAAAC,EAAC,QAAA,EAAK,WAAWK,EAAE,MAAO,UAAAhB,GAAK;AAAA,UAC9BU,KAAeN,MAAiB,cAAcM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGlD;AACD;AAEAZ,EAAe,cAAc;"}
@@ -0,0 +1,17 @@
1
+ const o = "text__2B7Ih", i = {
2
+ "standalone-link": "standalone-link__85Pyl",
3
+ "icon-position-leading": "icon-position-leading__KE5kn",
4
+ "icon-position-trailing": "icon-position-trailing__Mygyz",
5
+ text: o,
6
+ "size-small": "size-small__pf7gu",
7
+ "size-medium": "size-medium__r6Rbi",
8
+ "size-large": "size-large__aue6M",
9
+ "color-primary": "color-primary__7WaoM",
10
+ "color-secondary": "color-secondary__4qYkh",
11
+ "color-secondary-inverted": "color-secondary-inverted__ILbsj"
12
+ };
13
+ export {
14
+ i as default,
15
+ o as text
16
+ };
17
+ //# sourceMappingURL=styles.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,52 @@
1
+ import { jsx as e, jsxs as c } from "react/jsx-runtime";
2
+ import f from "classnames";
3
+ import { TD as N } from "./td.js";
4
+ import { TH as y } from "./th.js";
5
+ import { TR as u } from "./tr.js";
6
+ import { DEFAULT_DENSITY as b, DEFAULT_VERTICAL_ALIGNMENT as E } from "./utils.js";
7
+ import o from "./table.module.scss.js";
8
+ function r({
9
+ caption: a,
10
+ density: s = b,
11
+ valign: i = E,
12
+ isStriped: l,
13
+ isFixedLayout: d,
14
+ children: n,
15
+ className: T,
16
+ ...p
17
+ }) {
18
+ return /* @__PURE__ */ c(
19
+ "table",
20
+ {
21
+ className: f(
22
+ o.table,
23
+ o[`density-${s}`],
24
+ o[`valign-${i}`],
25
+ {
26
+ [o.striped]: l,
27
+ [o["layout-fixed"]]: d
28
+ },
29
+ T
30
+ ),
31
+ ...p,
32
+ children: [
33
+ a && /* @__PURE__ */ e("caption", { className: "sr-only", children: a }),
34
+ n
35
+ ]
36
+ }
37
+ );
38
+ }
39
+ r.displayName = "Table";
40
+ function t({ children: a }) {
41
+ return /* @__PURE__ */ e("thead", { className: o.thead, children: a });
42
+ }
43
+ t.displayName = "T.Head";
44
+ function m({ children: a }) {
45
+ return /* @__PURE__ */ e("tbody", { className: o.tbody, children: a });
46
+ }
47
+ m.displayName = "T.Body";
48
+ const R = { Root: r, TR: u, THead: t, TH: y, TBody: m, TD: N };
49
+ export {
50
+ R as Table
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/table/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { TD } from './td'\nimport { TH } from './th'\nimport { TR } from './tr'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport {\n\tDEFAULT_DENSITY,\n\tDEFAULT_VERTICAL_ALIGNMENT,\n\ttype Density,\n\ttype VerticalAlignment,\n} from './utils'\nimport s from './table.module.scss'\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {\n\t/**\n\t * Define on the table invocation. If set to `true`, even-numbered rows will have a different background color from odd-numbered rows.\n\t */\n\tisStriped?: boolean\n\t/**\n\t * If set to `true`, the `table-display`(CSS) property will be set to fixed. See [MDN reference on table-layout](https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout) for more details.\n\t */\n\tisFixedLayout?: boolean\n\t/**\n\t * If set, determines the density (height) of the table body’s rows.\n\t */\n\tdensity?: Density\n\t/**\n\t * Determines the vertical alignment for content in a table. Does not apply to table headers (`th`). See [MDN reference on vertical-align](https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align) for more details.\n\t */\n\tvalign?: VerticalAlignment\n\t/**\n\t * Adds a (non-visible) caption for users with assistive technology. If set on a sortable table, the provided table caption is paired with the automatically generated sorted message text.\n\t */\n\tcaption?: string\n}\n\nfunction Root({\n\tcaption,\n\tdensity = DEFAULT_DENSITY,\n\tvalign = DEFAULT_VERTICAL_ALIGNMENT,\n\tisStriped,\n\tisFixedLayout,\n\tchildren,\n\tclassName,\n\t...rest\n}: TableProps) {\n\treturn (\n\t\t<table\n\t\t\tclassName={classNames(\n\t\t\t\ts.table,\n\t\t\t\ts[`density-${density}`],\n\t\t\t\ts[`valign-${valign}`],\n\t\t\t\t{\n\t\t\t\t\t[s.striped]: isStriped,\n\t\t\t\t\t[s['layout-fixed']]: isFixedLayout,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{caption && <caption className=\"sr-only\">{caption}</caption>}\n\t\t\t{children}\n\t\t</table>\n\t)\n}\nRoot.displayName = 'Table'\n\nfunction THead({ children }: { children: ReactNode }) {\n\treturn <thead className={s.thead}>{children}</thead>\n}\nTHead.displayName = 'T.Head'\n\nfunction TBody({ children }: { children: ReactNode }) {\n\treturn <tbody className={s.tbody}>{children}</tbody>\n}\nTBody.displayName = 'T.Body'\n\nconst Table = { Root, TR, THead, TH, TBody, TD }\n\nexport { Table }\n"],"names":["Root","caption","density","DEFAULT_DENSITY","valign","DEFAULT_VERTICAL_ALIGNMENT","isStriped","isFixedLayout","children","className","rest","jsxs","classNames","s","jsx","THead","TBody","Table","TR","TH","TD"],"mappings":";;;;;;;AAoCA,SAASA,EAAK;AAAA,EACb,SAAAC;AAAA,EACA,SAAAC,IAAUC;AAAA,EACV,QAAAC,IAASC;AAAA,EACT,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACJ,GAAe;AACd,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC;AAAA,QACVC,EAAE;AAAA,QACFA,EAAE,WAAWX,CAAO,EAAE;AAAA,QACtBW,EAAE,UAAUT,CAAM,EAAE;AAAA,QACpB;AAAA,UACC,CAACS,EAAE,OAAO,GAAGP;AAAA,UACb,CAACO,EAAE,cAAc,CAAC,GAAGN;AAAA,QAAA;AAAA,QAEtBE;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAT,KAAW,gBAAAa,EAAC,WAAA,EAAQ,WAAU,WAAW,UAAAb,GAAQ;AAAA,QACjDO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGJ;AACAR,EAAK,cAAc;AAEnB,SAASe,EAAM,EAAE,UAAAP,KAAqC;AACrD,SAAO,gBAAAM,EAAC,SAAA,EAAM,WAAWD,EAAE,OAAQ,UAAAL,GAAS;AAC7C;AACAO,EAAM,cAAc;AAEpB,SAASC,EAAM,EAAE,UAAAR,KAAqC;AACrD,SAAO,gBAAAM,EAAC,SAAA,EAAM,WAAWD,EAAE,OAAQ,UAAAL,GAAS;AAC7C;AACAQ,EAAM,cAAc;AAEpB,MAAMC,IAAQ,EAAE,MAAAjB,GAAM,IAAAkB,GAAI,OAAAH,GAAO,IAAAI,GAAI,OAAAH,GAAO,IAAAI,EAAA;"}