@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
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- interface FieldsetProps {
2
+ interface FieldsetProps extends React.PropsWithChildren {
3
3
  isRequired?: boolean;
4
4
  isOptional?: boolean;
5
5
  legend?: ReactNode;
@@ -7,7 +7,6 @@ interface FieldsetProps {
7
7
  error?: ReactNode;
8
8
  className?: string;
9
9
  layout?: 'vertical' | 'horizontal';
10
- children: ReactNode;
11
10
  id?: string;
12
11
  testingKey?: string;
13
12
  }
@@ -0,0 +1,65 @@
1
+ import { jsxs as I, jsx as r } from "react/jsx-runtime";
2
+ import m from "classnames";
3
+ import { useId as x } from "react";
4
+ import { Legend as g } from "../legend/index.js";
5
+ import { HelperText as u } from "../helper-text/index.js";
6
+ import { Error as j } from "../error/index.js";
7
+ import e from "./form-fieldset.module.css.js";
8
+ const F = ({
9
+ isRequired: i,
10
+ isOptional: a,
11
+ legend: s,
12
+ helperText: t,
13
+ error: l,
14
+ className: c,
15
+ layout: d,
16
+ children: n,
17
+ id: p,
18
+ testingKey: f,
19
+ ...N
20
+ }) => {
21
+ const h = x(), o = p ?? h;
22
+ return /* @__PURE__ */ I(
23
+ "fieldset",
24
+ {
25
+ className: m(e.group, d ? e[d] : null, c),
26
+ id: o,
27
+ "data-testid": f,
28
+ ...N,
29
+ children: [
30
+ s && /* @__PURE__ */ r(
31
+ g,
32
+ {
33
+ isOptional: a,
34
+ isRequired: i,
35
+ className: e.legend,
36
+ children: s
37
+ }
38
+ ),
39
+ t && /* @__PURE__ */ r(
40
+ u,
41
+ {
42
+ controlId: `${o}-help`,
43
+ className: e["helper-text"],
44
+ children: t
45
+ }
46
+ ),
47
+ /* @__PURE__ */ r(
48
+ "div",
49
+ {
50
+ className: m(e["control-fields-wrapper"], {
51
+ [e["has-legend"]]: s
52
+ }),
53
+ children: n
54
+ }
55
+ ),
56
+ l && /* @__PURE__ */ r(j, { controlId: `${o}-error`, className: e.error, children: l })
57
+ ]
58
+ }
59
+ );
60
+ };
61
+ F.displayName = "Fieldset";
62
+ export {
63
+ F as Fieldset
64
+ };
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/fieldset/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useId } from 'react'\nimport { Legend } from '../legend'\nimport { HelperText } from '../helper-text'\nimport { Error } from '../error'\nimport type { ReactNode } from 'react'\nimport s from './form-fieldset.module.css'\n\ninterface FieldsetProps extends React.PropsWithChildren {\n\tisRequired?: boolean\n\tisOptional?: boolean\n\tlegend?: ReactNode\n\thelperText?: ReactNode\n\terror?: ReactNode\n\tclassName?: string\n\tlayout?: 'vertical' | 'horizontal'\n\tid?: string\n\ttestingKey?: string\n}\n\nconst Fieldset = ({\n\tisRequired,\n\tisOptional,\n\tlegend,\n\thelperText,\n\terror,\n\tclassName,\n\tlayout,\n\tchildren,\n\tid,\n\ttestingKey,\n\t...rest\n}: FieldsetProps) => {\n\tconst generatedId = useId()\n\tconst fieldsetId = id ?? generatedId\n\n\treturn (\n\t\t<fieldset\n\t\t\tclassName={classNames(s.group, layout ? s[layout] : null, className)}\n\t\t\tid={fieldsetId}\n\t\t\tdata-testid={testingKey}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{legend && (\n\t\t\t\t<Legend\n\t\t\t\t\tisOptional={isOptional}\n\t\t\t\t\tisRequired={isRequired}\n\t\t\t\t\tclassName={s.legend}\n\t\t\t\t>\n\t\t\t\t\t{legend}\n\t\t\t\t</Legend>\n\t\t\t)}\n\t\t\t{helperText && (\n\t\t\t\t<HelperText\n\t\t\t\t\tcontrolId={`${fieldsetId}-help`}\n\t\t\t\t\tclassName={s['helper-text']}\n\t\t\t\t>\n\t\t\t\t\t{helperText}\n\t\t\t\t</HelperText>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={classNames(s['control-fields-wrapper'], {\n\t\t\t\t\t[s['has-legend']]: legend,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t\t{error && (\n\t\t\t\t<Error controlId={`${fieldsetId}-error`} className={s.error}>\n\t\t\t\t\t{error}\n\t\t\t\t</Error>\n\t\t\t)}\n\t\t</fieldset>\n\t)\n}\n\nFieldset.displayName = 'Fieldset'\n\nexport type { FieldsetProps }\nexport { Fieldset }\n"],"names":["Fieldset","isRequired","isOptional","legend","helperText","error","className","layout","children","id","testingKey","rest","generatedId","useId","fieldsetId","jsxs","classNames","s","jsx","Legend","HelperText","Error"],"mappings":";;;;;;;AAoBA,MAAMA,IAAW,CAAC;AAAA,EACjB,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACJ,MAAqB;AACpB,QAAMC,IAAcC,EAAA,GACdC,IAAaL,KAAMG;AAEzB,SACC,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAWC,EAAE,OAAOV,IAASU,EAAEV,CAAM,IAAI,MAAMD,CAAS;AAAA,MACnE,IAAIQ;AAAA,MACJ,eAAaJ;AAAA,MACZ,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAR,KACA,gBAAAe;AAAA,UAACC;AAAA,UAAA;AAAA,YACA,YAAAjB;AAAA,YACA,YAAAD;AAAA,YACA,WAAWgB,EAAE;AAAA,YAEZ,UAAAd;AAAA,UAAA;AAAA,QAAA;AAAA,QAGFC,KACA,gBAAAc;AAAA,UAACE;AAAA,UAAA;AAAA,YACA,WAAW,GAAGN,CAAU;AAAA,YACxB,WAAWG,EAAE,aAAa;AAAA,YAEzB,UAAAb;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,gBAAAc;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAWF,EAAWC,EAAE,wBAAwB,GAAG;AAAA,cAClD,CAACA,EAAE,YAAY,CAAC,GAAGd;AAAA,YAAA,CACnB;AAAA,YAEA,UAAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAEDH,KACA,gBAAAa,EAACG,GAAA,EAAM,WAAW,GAAGP,CAAU,UAAU,WAAWG,EAAE,OACpD,UAAAZ,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ;AAEAL,EAAS,cAAc;"}
@@ -1,5 +1,5 @@
1
- @import '../../../styles/mixins/button.scss';
2
- @import '../../../../../mds-tokens/src/helper-classes/typography';
1
+ @use '../../../styles/mixins/button.scss' as *;
2
+ @use '../../../../../mds-tokens/src/helper-classes/typography' as *;
3
3
 
4
4
  .file-input {
5
5
  @extend .mds-typography-legacy-body-200;
@@ -0,0 +1,7 @@
1
+ const t = {
2
+ "file-input": "file-input__kBoO-"
3
+ };
4
+ export {
5
+ t as default
6
+ };
7
+ //# sourceMappingURL=form-file-input.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-file-input.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,68 @@
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { useId as a } from "react";
3
+ import { Field as I } from "../field/index.js";
4
+ import F from "./form-file-input.module.scss.js";
5
+ const u = ({
6
+ isRequired: i,
7
+ className: l,
8
+ id: e,
9
+ field: r,
10
+ error: n,
11
+ ...d
12
+ }) => {
13
+ const t = a();
14
+ return /* @__PURE__ */ p(
15
+ "input",
16
+ {
17
+ type: "file",
18
+ required: i,
19
+ id: e ?? t,
20
+ className: F["file-input"],
21
+ "aria-describedby": `${n ? "error" : "helper-text"}-${e}`,
22
+ ...r,
23
+ ...d
24
+ }
25
+ );
26
+ };
27
+ u.displayName = "FileInputBase";
28
+ const f = ({
29
+ id: i,
30
+ label: l,
31
+ helperText: e,
32
+ error: r,
33
+ field: n,
34
+ className: d,
35
+ isRequired: t,
36
+ isOptional: o,
37
+ ...m
38
+ }) => {
39
+ const c = a(), s = i ?? c;
40
+ return /* @__PURE__ */ p(
41
+ I,
42
+ {
43
+ label: l,
44
+ helperText: e,
45
+ error: r,
46
+ isRequired: t,
47
+ isOptional: o,
48
+ id: s,
49
+ layout: "vertical",
50
+ className: d,
51
+ children: /* @__PURE__ */ p(
52
+ u,
53
+ {
54
+ id: s,
55
+ isRequired: t,
56
+ field: n,
57
+ ...m
58
+ }
59
+ )
60
+ }
61
+ );
62
+ };
63
+ f.displayName = "FileInputField";
64
+ export {
65
+ u as FileInputBase,
66
+ f as FileInputField
67
+ };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/file-input/index.tsx"],"sourcesContent":["import type { HTMLProps, ReactNode } from 'react'\nimport { useId } from 'react'\nimport { Field } from '../field'\nimport s from './form-file-input.module.scss'\n\ninterface FileInputBaseProps {\n\tisRequired?: boolean\n\tclassName?: string\n\tid?: string\n\n\t/**\n\t * Can be used to supply any props that the native `<input>` element supports.\n\t * Since this is for file input, we omit `type`, see here: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file\n\t */\n\tfield: Omit<HTMLProps<HTMLInputElement>, 'type' | 'id'>\n\terror?: ReactNode\n}\n\nconst FileInputBase = ({\n\tisRequired,\n\tclassName,\n\tid,\n\tfield,\n\terror,\n\t...rest\n}: FileInputBaseProps) => {\n\tconst generatedId = useId()\n\tconst inputId = id ?? generatedId\n\n\treturn (\n\t\t<input\n\t\t\ttype=\"file\"\n\t\t\trequired={isRequired}\n\t\t\tid={inputId}\n\t\t\tclassName={s['file-input']}\n\t\t\taria-describedby={`${error ? 'error' : 'helper-text'}-${id}`}\n\t\t\t{...field}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n\nFileInputBase.displayName = 'FileInputBase'\n\ninterface FileInputFieldProps extends FileInputBaseProps {\n\tlabel?: ReactNode\n\thelperText?: ReactNode\n\terror?: ReactNode\n\tisOptional?: boolean\n}\n\nconst FileInputField = ({\n\tid,\n\tlabel,\n\thelperText,\n\terror,\n\tfield,\n\tclassName,\n\tisRequired,\n\tisOptional,\n\t...rest\n}: FileInputFieldProps) => {\n\tconst generatedId = useId()\n\tconst inputId = id ?? generatedId\n\n\treturn (\n\t\t<Field\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terror={error}\n\t\t\tisRequired={isRequired}\n\t\t\tisOptional={isOptional}\n\t\t\tid={inputId}\n\t\t\tlayout=\"vertical\"\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<FileInputBase\n\t\t\t\tid={inputId}\n\t\t\t\tisRequired={isRequired}\n\t\t\t\tfield={field}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</Field>\n\t)\n}\n\nFileInputField.displayName = 'FileInputField'\n\nexport { FileInputBase, FileInputField }\n"],"names":["FileInputBase","isRequired","className","id","field","error","rest","generatedId","useId","jsx","s","FileInputField","label","helperText","isOptional","inputId","Field"],"mappings":";;;;AAkBA,MAAMA,IAAgB,CAAC;AAAA,EACtB,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACJ,MAA0B;AACzB,QAAMC,IAAcC,EAAA;AAGpB,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACL,UAAUR;AAAA,MACV,IANcE,KAAMI;AAAA,MAOpB,WAAWG,EAAE,YAAY;AAAA,MACzB,oBAAkB,GAAGL,IAAQ,UAAU,aAAa,IAAIF,CAAE;AAAA,MACzD,GAAGC;AAAA,MACH,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAN,EAAc,cAAc;AAS5B,MAAMW,IAAiB,CAAC;AAAA,EACvB,IAAAR;AAAA,EACA,OAAAS;AAAA,EACA,YAAAC;AAAA,EACA,OAAAR;AAAA,EACA,OAAAD;AAAA,EACA,WAAAF;AAAA,EACA,YAAAD;AAAA,EACA,YAAAa;AAAA,EACA,GAAGR;AACJ,MAA2B;AAC1B,QAAMC,IAAcC,EAAA,GACdO,IAAUZ,KAAMI;AAEtB,SACC,gBAAAE;AAAA,IAACO;AAAA,IAAA;AAAA,MACA,OAAAJ;AAAA,MACA,YAAAC;AAAA,MACA,OAAAR;AAAA,MACA,YAAAJ;AAAA,MACA,YAAAa;AAAA,MACA,IAAIC;AAAA,MACJ,QAAO;AAAA,MACP,WAAAb;AAAA,MAEA,UAAA,gBAAAO;AAAA,QAACT;AAAA,QAAA;AAAA,UACA,IAAIe;AAAA,UACJ,YAAAd;AAAA,UACA,OAAAG;AAAA,UACC,GAAGE;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAK,EAAe,cAAc;"}
@@ -0,0 +1,7 @@
1
+ const e = {
2
+ "helper-text": "helper-text__4mh4z mds-typography-legacy-body-100 mds-typography-font-weight-regular"
3
+ };
4
+ export {
5
+ e as default
6
+ };
7
+ //# sourceMappingURL=form-helper-text.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-helper-text.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,22 @@
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import s from "classnames";
3
+ import i from "./form-helper-text.module.css.js";
4
+ const o = ({
5
+ children: r,
6
+ className: t,
7
+ controlId: e,
8
+ ...m
9
+ }) => /* @__PURE__ */ p(
10
+ "div",
11
+ {
12
+ className: s(i["helper-text"], t),
13
+ id: e ? `helper-text-${e}` : void 0,
14
+ ...m,
15
+ children: r
16
+ }
17
+ );
18
+ o.displayName = "HelperText";
19
+ export {
20
+ o as HelperText
21
+ };
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/helper-text/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport type { ReactNode } from 'react'\nimport s from './form-helper-text.module.css'\n\ninterface HelperTextProps {\n\tchildren: ReactNode\n\tclassName?: string\n\tcontrolId?: string\n}\n\nconst HelperText = ({\n\tchildren,\n\tclassName,\n\tcontrolId,\n\t...rest\n}: HelperTextProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(s['helper-text'], className)}\n\t\t\tid={controlId ? `helper-text-${controlId}` : undefined}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nHelperText.displayName = 'HelperText'\n\nexport { HelperText }\n"],"names":["HelperText","children","className","controlId","rest","jsx","classNames","s"],"mappings":";;;AAUA,MAAMA,IAAa,CAAC;AAAA,EACnB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACJ,MAEE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,WAAWC,EAAWC,EAAE,aAAa,GAAGL,CAAS;AAAA,IACjD,IAAIC,IAAY,eAAeA,CAAS,KAAK;AAAA,IAC5C,GAAGC;AAAA,IAEH,UAAAH;AAAA,EAAA;AAAA;AAKJD,EAAW,cAAc;"}
@@ -0,0 +1,8 @@
1
+ const o = "optional__xEN-m mds-typography-legacy-body-100 mds-typography-font-weight-regular", t = {
2
+ optional: o
3
+ };
4
+ export {
5
+ t as default,
6
+ o as optional
7
+ };
8
+ //# sourceMappingURL=form-indicator.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-indicator.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,23 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Badge as a } from "../../badge/index.js";
3
+ import { localize as i } from "../../../utils/i18n/index.js";
4
+ import "../../../utils/i18n/helpers/locale-provider.js";
5
+ import { useLocale as n } from "../../../utils/i18n/helpers/use-locale.js";
6
+ import m from "./form-indicator.module.css.js";
7
+ const s = ({ isOptional: r, isRequired: l }) => {
8
+ const e = n(), t = r ? m.optional : null;
9
+ return r ? /* @__PURE__ */ o("span", { "aria-hidden": "true", className: t, children: `(${i("optional", e, "title")})` }) : l ? /* @__PURE__ */ o(
10
+ a,
11
+ {
12
+ "aria-hidden": "true",
13
+ className: t,
14
+ size: "small",
15
+ text: i("required", e, "title")
16
+ }
17
+ ) : null;
18
+ };
19
+ s.displayName = "Indicator";
20
+ export {
21
+ s as Indicator
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/indicator/index.tsx"],"sourcesContent":["import { Badge } from '../../badge'\nimport { localize } from '../../../utils/i18n'\nimport { useLocale } from '@web/utils/i18n/helpers'\nimport s from './form-indicator.module.css'\n\ninterface IndicatorProps {\n\tisOptional?: boolean\n\tisRequired?: boolean\n}\n\nconst Indicator = ({ isOptional, isRequired }: IndicatorProps) => {\n\tconst locale = useLocale()\n\n\tconst className = isOptional ? s.optional : null\n\n\tif (isOptional) {\n\t\treturn (\n\t\t\t<span aria-hidden=\"true\" className={className}>\n\t\t\t\t{`(${localize('optional', locale, 'title')})`}\n\t\t\t</span>\n\t\t)\n\t} else if (isRequired) {\n\t\treturn (\n\t\t\t<Badge\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={className}\n\t\t\t\tsize=\"small\"\n\t\t\t\ttext={localize('required', locale, 'title')}\n\t\t\t/>\n\t\t)\n\t}\n\n\treturn null\n}\n\nIndicator.displayName = 'Indicator'\n\nexport { Indicator }\n"],"names":["Indicator","isOptional","isRequired","locale","useLocale","className","s","jsx","localize","Badge"],"mappings":";;;;;;AAUA,MAAMA,IAAY,CAAC,EAAE,YAAAC,GAAY,YAAAC,QAAiC;AACjE,QAAMC,IAASC,EAAA,GAETC,IAAYJ,IAAaK,EAAE,WAAW;AAE5C,SAAIL,IAEF,gBAAAM,EAAC,QAAA,EAAK,eAAY,QAAO,WAAAF,GACvB,UAAA,IAAIG,EAAS,YAAYL,GAAQ,OAAO,CAAC,KAC3C,IAESD,IAET,gBAAAK;AAAA,IAACE;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAAJ;AAAA,MACA,MAAK;AAAA,MACL,MAAMG,EAAS,YAAYL,GAAQ,OAAO;AAAA,IAAA;AAAA,EAAA,IAKtC;AACR;AAEAH,EAAU,cAAc;"}
@@ -0,0 +1,10 @@
1
+ const a = "badges__fd5n1", e = "label__p8mfL mds-typography-legacy-body-200 mds-typography-font-weight-semibold", s = {
2
+ badges: a,
3
+ label: e
4
+ };
5
+ export {
6
+ a as badges,
7
+ s as default,
8
+ e as label
9
+ };
10
+ //# sourceMappingURL=form-label.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-label.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,33 @@
1
+ import { jsxs as a, jsx as m } from "react/jsx-runtime";
2
+ import c from "classnames";
3
+ import { Indicator as i } from "../indicator/index.js";
4
+ import { Badge as f } from "../../badge/index.js";
5
+ import o from "./form-label.module.css.js";
6
+ const N = ({
7
+ badgeText: l,
8
+ className: e,
9
+ controlId: t,
10
+ children: n,
11
+ isRequired: r,
12
+ isOptional: s,
13
+ ...p
14
+ }) => /* @__PURE__ */ a(
15
+ "label",
16
+ {
17
+ className: c(o.label, e),
18
+ htmlFor: t,
19
+ ...p,
20
+ children: [
21
+ /* @__PURE__ */ m("span", { children: n }),
22
+ s || r || l ? /* @__PURE__ */ a("span", { className: o.badges, children: [
23
+ l ? /* @__PURE__ */ m(f, { size: "small", text: l }) : null,
24
+ /* @__PURE__ */ m(i, { isRequired: r, isOptional: s })
25
+ ] }) : null
26
+ ]
27
+ }
28
+ );
29
+ N.displayName = "Label";
30
+ export {
31
+ N as Label
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/label/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { Indicator } from '../indicator'\nimport { Badge } from '../../badge'\nimport type { ReactNode } from 'react'\nimport s from './form-label.module.css'\n\ninterface LabelProps {\n\tbadgeText?: string\n\tclassName?: string\n\tcontrolId: string\n\tchildren: ReactNode\n\tisRequired?: boolean\n\tisOptional?: boolean\n}\n\nconst Label = ({\n\tbadgeText,\n\tclassName,\n\tcontrolId,\n\tchildren,\n\tisRequired,\n\tisOptional,\n\t...rest\n}: LabelProps) => {\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(s.label, className)}\n\t\t\thtmlFor={controlId}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<span>{children}</span>\n\t\t\t{isOptional || isRequired || badgeText ? (\n\t\t\t\t<span className={s.badges}>\n\t\t\t\t\t{badgeText ? <Badge size=\"small\" text={badgeText} /> : null}\n\t\t\t\t\t<Indicator isRequired={isRequired} isOptional={isOptional} />\n\t\t\t\t</span>\n\t\t\t) : null}\n\t\t</label>\n\t)\n}\n\nLabel.displayName = 'Label'\n\nexport { Label }\n"],"names":["Label","badgeText","className","controlId","children","isRequired","isOptional","rest","jsxs","classNames","s","jsx","Badge","Indicator"],"mappings":";;;;;AAeA,MAAMA,IAAQ,CAAC;AAAA,EACd,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACJ,MAEE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,WAAWC,EAAWC,EAAE,OAAOR,CAAS;AAAA,IACxC,SAASC;AAAA,IACR,GAAGI;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAI,EAAC,UAAM,UAAAP,GAAS;AAAA,MACfE,KAAcD,KAAcJ,sBAC3B,QAAA,EAAK,WAAWS,EAAE,QACjB,UAAA;AAAA,QAAAT,sBAAaW,GAAA,EAAM,MAAK,SAAQ,MAAMX,GAAW,IAAK;AAAA,QACvD,gBAAAU,EAACE,GAAA,EAAU,YAAAR,GAAwB,YAAAC,EAAA,CAAwB;AAAA,MAAA,EAAA,CAC5D,IACG;AAAA,IAAA;AAAA,EAAA;AAAA;AAKPN,EAAM,cAAc;"}
@@ -0,0 +1,10 @@
1
+ const e = "legend__O8-rs mds-typography-legacy-body-200 mds-typography-font-weight-semibold", d = "badge__rqzw5", g = {
2
+ legend: e,
3
+ badge: d
4
+ };
5
+ export {
6
+ d as badge,
7
+ g as default,
8
+ e as legend
9
+ };
10
+ //# sourceMappingURL=form-legend.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-legend.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,19 @@
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import d from "classnames";
3
+ import { Indicator as c } from "../indicator/index.js";
4
+ import m from "./form-legend.module.css.js";
5
+ const p = ({
6
+ className: a,
7
+ isRequired: r,
8
+ isOptional: s,
9
+ children: n,
10
+ ...o
11
+ }) => /* @__PURE__ */ l("legend", { className: d(m.legend, a), ...o, children: [
12
+ /* @__PURE__ */ e("span", { children: n }),
13
+ s || r ? /* @__PURE__ */ e("span", { className: m.badge, children: /* @__PURE__ */ e(c, { isRequired: r, isOptional: s }) }) : null
14
+ ] });
15
+ p.displayName = "Legend";
16
+ export {
17
+ p as Legend
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/legend/index.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport classNames from 'classnames'\nimport { Indicator } from '../indicator'\nimport s from './form-legend.module.css'\n\ninterface LegendProps {\n\tclassName?: string\n\tisRequired?: boolean\n\tisOptional?: boolean\n\tchildren: ReactNode\n}\n\nconst Legend = ({\n\tclassName,\n\tisRequired,\n\tisOptional,\n\tchildren,\n\t...rest\n}: LegendProps) => {\n\treturn (\n\t\t<legend className={classNames(s.legend, className)} {...rest}>\n\t\t\t<span>{children}</span>\n\t\t\t{isOptional || isRequired ? (\n\t\t\t\t<span className={s.badge}>\n\t\t\t\t\t<Indicator isRequired={isRequired} isOptional={isOptional} />\n\t\t\t\t</span>\n\t\t\t) : null}\n\t\t</legend>\n\t)\n}\n\nLegend.displayName = 'Legend'\n\nexport { Legend }\n"],"names":["Legend","className","isRequired","isOptional","children","rest","jsxs","classNames","s","jsx","Indicator"],"mappings":";;;;AAYA,MAAMA,IAAS,CAAC;AAAA,EACf,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,MAEE,gBAAAC,EAAC,YAAO,WAAWC,EAAWC,EAAE,QAAQP,CAAS,GAAI,GAAGI,GACvD,UAAA;AAAA,EAAA,gBAAAI,EAAC,UAAM,UAAAL,GAAS;AAAA,EACfD,KAAcD,IACd,gBAAAO,EAAC,QAAA,EAAK,WAAWD,EAAE,OAClB,UAAA,gBAAAC,EAACC,GAAA,EAAU,YAAAR,GAAwB,YAAAC,EAAA,CAAwB,EAAA,CAC5D,IACG;AAAA,GACL;AAIFH,EAAO,cAAc;"}
@@ -0,0 +1,8 @@
1
+ const o = "radio__oZ3hf", a = {
2
+ radio: o
3
+ };
4
+ export {
5
+ a as default,
6
+ o as radio
7
+ };
8
+ //# sourceMappingURL=form-radio.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-radio.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,5 +1,5 @@
1
- import { ComponentProps, HTMLProps, ReactNode } from 'react';
2
- import { Fieldset } from '../fieldset';
1
+ import { HTMLProps, ReactNode } from 'react';
2
+ import { FieldsetProps } from '../fieldset';
3
3
  interface RadioBaseProps {
4
4
  id: string;
5
5
  required?: boolean;
@@ -28,9 +28,7 @@ declare const RadioField: {
28
28
  ({ isInvalid, isLoading, isRequired, isOptional, id, label, helperText, error, field, className, testingKey, ...rest }: RadioFieldProps): import("react/jsx-runtime").JSX.Element;
29
29
  displayName: string;
30
30
  };
31
- interface RadioGroupProps extends ComponentProps<typeof Fieldset> {
32
- children: ReactNode;
33
- }
31
+ type RadioGroupProps = FieldsetProps;
34
32
  declare const RadioGroup: {
35
33
  Root: {
36
34
  ({ layout, legend, isOptional, isRequired, children, }: RadioGroupProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,100 @@
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { useId as g } from "react";
3
+ import { Field as G } from "../field/index.js";
4
+ import { Fieldset as I } from "../fieldset/index.js";
5
+ import b from "classnames";
6
+ import v from "./form-radio.module.scss.js";
7
+ const s = ({
8
+ id: o,
9
+ required: r,
10
+ field: i,
11
+ className: e,
12
+ testingKey: a
13
+ }) => /* @__PURE__ */ d(
14
+ "input",
15
+ {
16
+ id: o,
17
+ type: "radio",
18
+ className: b(v.radio, e),
19
+ required: r,
20
+ "data-testid": a,
21
+ ...i
22
+ }
23
+ );
24
+ s.displayName = "RadioBase";
25
+ const l = ({
26
+ isInvalid: o,
27
+ isLoading: r,
28
+ isRequired: i,
29
+ isOptional: e,
30
+ id: a,
31
+ label: p,
32
+ helperText: c,
33
+ error: u,
34
+ field: R,
35
+ className: y,
36
+ testingKey: f,
37
+ ...N
38
+ }) => {
39
+ const F = g(), t = a ?? F;
40
+ return /* @__PURE__ */ d(
41
+ G,
42
+ {
43
+ label: p,
44
+ helperText: c,
45
+ error: u,
46
+ isRequired: i,
47
+ isOptional: e,
48
+ id: t,
49
+ layout: "flag",
50
+ className: y,
51
+ children: /* @__PURE__ */ d(
52
+ s,
53
+ {
54
+ id: t,
55
+ required: i,
56
+ field: { ...R, "aria-describedby": `error-${a}` },
57
+ testingKey: f,
58
+ ...N
59
+ }
60
+ )
61
+ }
62
+ );
63
+ };
64
+ l.displayName = "RadioField";
65
+ const m = ({
66
+ layout: o = "vertical",
67
+ legend: r,
68
+ isOptional: i,
69
+ isRequired: e,
70
+ children: a
71
+ }) => /* @__PURE__ */ d(
72
+ I,
73
+ {
74
+ layout: o,
75
+ legend: r,
76
+ isOptional: i,
77
+ isRequired: e,
78
+ children: a
79
+ }
80
+ );
81
+ m.displayName = "RadioGroupRoot";
82
+ const n = (o) => /* @__PURE__ */ d(
83
+ l,
84
+ {
85
+ ...o,
86
+ testingKey: o.testingKey,
87
+ className: o.className
88
+ }
89
+ );
90
+ n.displayName = "RadioGroupField";
91
+ const $ = {
92
+ Root: m,
93
+ Field: n
94
+ };
95
+ export {
96
+ s as RadioBase,
97
+ l as RadioField,
98
+ $ as RadioGroup
99
+ };
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/form/radio/index.tsx"],"sourcesContent":["import { useId, type HTMLProps, type ReactNode } from 'react'\nimport { Field } from '../field'\nimport { Fieldset, type FieldsetProps } from '../fieldset'\nimport classNames from 'classnames'\nimport s from './form-radio.module.scss'\n\ninterface RadioBaseProps {\n\tid: string\n\trequired?: boolean\n\tfield: HTMLProps<HTMLInputElement>\n\tclassName?: string\n\ttestingKey?: string\n}\n\nconst RadioBase = ({\n\tid,\n\trequired,\n\tfield,\n\tclassName,\n\ttestingKey,\n}: RadioBaseProps) => {\n\treturn (\n\t\t<input\n\t\t\tid={id}\n\t\t\ttype=\"radio\"\n\t\t\tclassName={classNames(s.radio, className)}\n\t\t\trequired={required}\n\t\t\tdata-testid={testingKey}\n\t\t\t{...field}\n\t\t/>\n\t)\n}\n\nRadioBase.displayName = 'RadioBase'\n\ninterface RadioFieldProps {\n\tisInvalid?: boolean\n\tisLoading?: boolean\n\tisRequired?: boolean\n\tisOptional?: boolean\n\tid?: string\n\tlabel?: ReactNode\n\thelperText?: ReactNode\n\terror?: ReactNode\n\tfield: HTMLProps<HTMLInputElement>\n\tclassName?: string\n\ttestingKey?: string\n}\n\nconst RadioField = ({\n\tisInvalid,\n\tisLoading,\n\tisRequired,\n\tisOptional,\n\tid,\n\tlabel,\n\thelperText,\n\terror,\n\tfield,\n\tclassName,\n\ttestingKey,\n\t...rest\n}: RadioFieldProps) => {\n\tconst generatedId = useId()\n\tconst inputId = id ?? generatedId\n\n\treturn (\n\t\t<Field\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terror={error}\n\t\t\tisRequired={isRequired}\n\t\t\tisOptional={isOptional}\n\t\t\tid={inputId}\n\t\t\tlayout=\"flag\"\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<RadioBase\n\t\t\t\tid={inputId}\n\t\t\t\trequired={isRequired}\n\t\t\t\tfield={{ ...field, 'aria-describedby': `error-${id}` }}\n\t\t\t\ttestingKey={testingKey}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</Field>\n\t)\n}\n\nRadioField.displayName = 'RadioField'\n\ntype RadioGroupProps = FieldsetProps\n\nconst RadioGroupRoot = ({\n\tlayout = 'vertical',\n\tlegend,\n\tisOptional,\n\tisRequired,\n\tchildren,\n}: RadioGroupProps) => {\n\treturn (\n\t\t<Fieldset\n\t\t\tlayout={layout}\n\t\t\tlegend={legend}\n\t\t\tisOptional={isOptional}\n\t\t\tisRequired={isRequired}\n\t\t>\n\t\t\t{children}\n\t\t</Fieldset>\n\t)\n}\n\nRadioGroupRoot.displayName = 'RadioGroupRoot'\n\nconst RadioGroupField = (props: RadioFieldProps) => {\n\treturn (\n\t\t<RadioField\n\t\t\t{...props}\n\t\t\ttestingKey={props.testingKey}\n\t\t\tclassName={props.className}\n\t\t/>\n\t)\n}\n\nRadioGroupField.displayName = 'RadioGroupField'\n\nconst RadioGroup = {\n\tRoot: RadioGroupRoot,\n\tField: RadioGroupField,\n}\n\nexport { RadioGroup, RadioBase, RadioField }\n"],"names":["RadioBase","id","required","field","className","testingKey","jsx","classNames","s","RadioField","isInvalid","isLoading","isRequired","isOptional","label","helperText","error","rest","generatedId","useId","inputId","Field","RadioGroupRoot","layout","legend","children","Fieldset","RadioGroupField","props","RadioGroup"],"mappings":";;;;;;AAcA,MAAMA,IAAY,CAAC;AAAA,EAClB,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AACD,MAEE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,IAAAL;AAAA,IACA,MAAK;AAAA,IACL,WAAWM,EAAWC,EAAE,OAAOJ,CAAS;AAAA,IACxC,UAAAF;AAAA,IACA,eAAaG;AAAA,IACZ,GAAGF;AAAA,EAAA;AAAA;AAKPH,EAAU,cAAc;AAgBxB,MAAMS,IAAa,CAAC;AAAA,EACnB,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,IAAAZ;AAAA,EACA,OAAAa;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAb;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGY;AACJ,MAAuB;AACtB,QAAMC,IAAcC,EAAA,GACdC,IAAUnB,KAAMiB;AAEtB,SACC,gBAAAZ;AAAA,IAACe;AAAA,IAAA;AAAA,MACA,OAAAP;AAAA,MACA,YAAAC;AAAA,MACA,OAAAC;AAAA,MACA,YAAAJ;AAAA,MACA,YAAAC;AAAA,MACA,IAAIO;AAAA,MACJ,QAAO;AAAA,MACP,WAAAhB;AAAA,MAEA,UAAA,gBAAAE;AAAA,QAACN;AAAA,QAAA;AAAA,UACA,IAAIoB;AAAA,UACJ,UAAUR;AAAA,UACV,OAAO,EAAE,GAAGT,GAAO,oBAAoB,SAASF,CAAE,GAAA;AAAA,UAClD,YAAAI;AAAA,UACC,GAAGY;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAR,EAAW,cAAc;AAIzB,MAAMa,IAAiB,CAAC;AAAA,EACvB,QAAAC,IAAS;AAAA,EACT,QAAAC;AAAA,EACA,YAAAX;AAAA,EACA,YAAAD;AAAA,EACA,UAAAa;AACD,MAEE,gBAAAnB;AAAA,EAACoB;AAAA,EAAA;AAAA,IACA,QAAAH;AAAA,IACA,QAAAC;AAAA,IACA,YAAAX;AAAA,IACA,YAAAD;AAAA,IAEC,UAAAa;AAAA,EAAA;AAAA;AAKJH,EAAe,cAAc;AAE7B,MAAMK,IAAkB,CAACC,MAEvB,gBAAAtB;AAAA,EAACG;AAAA,EAAA;AAAA,IACC,GAAGmB;AAAA,IACJ,YAAYA,EAAM;AAAA,IAClB,WAAWA,EAAM;AAAA,EAAA;AAAA;AAKpBD,EAAgB,cAAc;AAE9B,MAAME,IAAa;AAAA,EAClB,MAAMP;AAAA,EACN,OAAOK;AACR;"}
@@ -0,0 +1,21 @@
1
+ .doc-radio-card-list-demo {
2
+ margin: 0;
3
+ padding: 0;
4
+ color: #3b3d45;
5
+
6
+ & li {
7
+ margin: 0;
8
+ padding: 8px 0 8px 24px;
9
+ list-style: none;
10
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.78 5.22a.75.75 0 010 1.06l-4.5 4.5a.75.75 0 01-1.06 0l-2-2a.75.75 0 011.06-1.06l1.47 1.47 3.97-3.97a.75.75 0 011.06 0z' fill='%233b3d45'/%3E%3Cpath d='M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13z' fill='%233b3d45'/%3E%3C/svg%3E");
11
+ background-repeat: no-repeat;
12
+ background-position: left 9px;
13
+ background-size: 16px;
14
+ border-bottom: 1px solid #ddd;
15
+ font-family: var(--mds-typography-font-stack-text);
16
+
17
+ &:last-child {
18
+ border-bottom: none;
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,10 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Text as i } from "../../text/index.js";
3
+ import t from "./form-radio-card.module.css.js";
4
+ function n({ description: r }) {
5
+ return /* @__PURE__ */ o(i.HDSBody, { className: t.description, size: "100", children: r });
6
+ }
7
+ export {
8
+ n as default
9
+ };
10
+ //# sourceMappingURL=description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.js","sources":["../../../../src/components/form/radio-card/description.tsx"],"sourcesContent":["import { Text } from '../../text'\nimport s from './form-radio-card.module.css'\n\nexport default function Description({ description }: { description: string }) {\n\treturn (\n\t\t<Text.HDSBody className={s.description} size=\"100\">\n\t\t\t{description}\n\t\t</Text.HDSBody>\n\t)\n}\n"],"names":["Description","description","jsx","Text","s"],"mappings":";;;AAGA,SAAwBA,EAAY,EAAE,aAAAC,KAAwC;AAC7E,SACC,gBAAAC,EAACC,EAAK,SAAL,EAAa,WAAWC,EAAE,aAAa,MAAK,OAC3C,UAAAH,EAAA,CACF;AAEF;"}
@@ -0,0 +1,30 @@
1
+ const t = "control__0w6N4", o = "checked__v5wfQ", c = "disabled__h7JVb", e = "content__IKiN7", n = "label__UR-sm", _ = "description__s8FwT", d = "badges__klktk", l = {
2
+ "radio-cards": "radio-cards__C4la-",
3
+ "has-fluid-width": "has-fluid-width__rKqOq",
4
+ "has-fixed-width": "has-fixed-width__AAAPW",
5
+ "radio-card": "radio-card__JyN2Z",
6
+ control: t,
7
+ checked: o,
8
+ "control-wrapper": "control-wrapper__00m5o",
9
+ disabled: c,
10
+ "align-left": "align-left__lqD3y",
11
+ "align-center": "align-center__ZMFAS",
12
+ "control-bottom": "control-bottom__UIViy",
13
+ "control-left": "control-left__1tHvm",
14
+ content: e,
15
+ label: n,
16
+ description: _,
17
+ badges: d,
18
+ "icon-center": "icon-center__zJMDY"
19
+ };
20
+ export {
21
+ d as badges,
22
+ o as checked,
23
+ e as content,
24
+ t as control,
25
+ l as default,
26
+ _ as description,
27
+ c as disabled,
28
+ n as label
29
+ };
30
+ //# sourceMappingURL=form-radio-card.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-radio-card.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,31 @@
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { Fieldset as e } from "../fieldset/index.js";
3
+ import l from "./form-radio-card.module.css.js";
4
+ const c = ({
5
+ layout: r = "horizontal",
6
+ isRequired: o,
7
+ isOptional: a,
8
+ error: i,
9
+ legend: d,
10
+ helperText: m,
11
+ children: s,
12
+ ...t
13
+ }) => /* @__PURE__ */ p(
14
+ e,
15
+ {
16
+ className: l["radio-cards"],
17
+ layout: r,
18
+ legend: d,
19
+ isOptional: a,
20
+ isRequired: o,
21
+ helperText: m,
22
+ error: i,
23
+ ...t,
24
+ children: s
25
+ }
26
+ );
27
+ c.displayName = "RadioCardGroup";
28
+ export {
29
+ c as RadioCardGroup
30
+ };
31
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sources":["../../../../src/components/form/radio-card/group.tsx"],"sourcesContent":["import { Fieldset } from '../fieldset'\nimport type { ComponentProps, ReactNode } from 'react'\nimport s from './form-radio-card.module.css'\n\nexport interface RadioCardGroupProps extends ComponentProps<typeof Fieldset> {\n\tchildren: ReactNode\n\tlegend: ReactNode\n}\n\nconst RadioCardGroup = ({\n\tlayout = 'horizontal',\n\tisRequired,\n\tisOptional,\n\terror,\n\tlegend,\n\thelperText,\n\tchildren,\n\t...rest\n}: RadioCardGroupProps) => {\n\treturn (\n\t\t<Fieldset\n\t\t\tclassName={s['radio-cards']}\n\t\t\tlayout={layout}\n\t\t\tlegend={legend}\n\t\t\tisOptional={isOptional}\n\t\t\tisRequired={isRequired}\n\t\t\thelperText={helperText}\n\t\t\terror={error}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</Fieldset>\n\t)\n}\n\nRadioCardGroup.displayName = 'RadioCardGroup'\n\nexport { RadioCardGroup }\n"],"names":["RadioCardGroup","layout","isRequired","isOptional","error","legend","helperText","children","rest","jsx","Fieldset","s"],"mappings":";;;AASA,MAAMA,IAAiB,CAAC;AAAA,EACvB,QAAAC,IAAS;AAAA,EACT,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,MAEE,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACA,WAAWC,EAAE,aAAa;AAAA,IAC1B,QAAAV;AAAA,IACA,QAAAI;AAAA,IACA,YAAAF;AAAA,IACA,YAAAD;AAAA,IACA,YAAAI;AAAA,IACA,OAAAF;AAAA,IACC,GAAGI;AAAA,IAEH,UAAAD;AAAA,EAAA;AAAA;AAKJP,EAAe,cAAc;"}