@indico-data/design-system 3.18.0 → 3.20.0

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 (310) hide show
  1. package/.eslintrc.js +87 -2
  2. package/.husky/pre-commit +2 -0
  3. package/.vscode/settings.json +10 -1
  4. package/lib/components/badge/Badge.d.ts +1 -1
  5. package/lib/components/badge/Badge.stories.d.ts +1 -1
  6. package/lib/components/button/Button.d.ts +2 -2
  7. package/lib/components/button/Button.stories.d.ts +1 -1
  8. package/lib/components/button/types.d.ts +1 -1
  9. package/lib/components/card/Card.d.ts +1 -1
  10. package/lib/components/card/Card.stories.d.ts +1 -1
  11. package/lib/components/floatUI/FloatUI.d.ts +1 -1
  12. package/lib/components/floatUI/FloatUI.stories.d.ts +2 -2
  13. package/lib/components/floatUI/types.d.ts +2 -2
  14. package/lib/components/forms/checkbox/Checkbox.stories.d.ts +1 -1
  15. package/lib/components/forms/date/datePicker/DatePicker.d.ts +1 -1
  16. package/lib/components/forms/date/datePicker/DatePicker.stories.d.ts +1 -1
  17. package/lib/components/forms/date/datePicker/contants.d.ts +1 -1
  18. package/lib/components/forms/date/datePicker/types.d.ts +8 -1
  19. package/lib/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.d.ts +7 -4
  20. package/lib/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.stories.d.ts +1 -1
  21. package/lib/components/forms/date/iconTriggerDatePicker/types.d.ts +5 -0
  22. package/lib/components/forms/date/inputDatePicker/SingleInputDatePicker.d.ts +4 -3
  23. package/lib/components/forms/date/inputDatePicker/SingleInputDatePicker.stories.d.ts +1 -1
  24. package/lib/components/forms/date/inputDateRangePicker/InputDateRangePicker.d.ts +7 -4
  25. package/lib/components/forms/date/inputDateRangePicker/InputDateRangePicker.stories.d.ts +1 -1
  26. package/lib/components/forms/date/inputDateRangePicker/types.d.ts +7 -0
  27. package/lib/components/forms/date/inputDateTimePicker/SingleInputDateTimePicker.d.ts +4 -3
  28. package/lib/components/forms/date/inputDateTimePicker/SingleInputDateTimePicker.stories.d.ts +1 -1
  29. package/lib/components/forms/form/Form.d.ts +1 -1
  30. package/lib/components/forms/form/Form.stories.d.ts +1 -1
  31. package/lib/components/forms/input/Input.d.ts +2 -2
  32. package/lib/components/forms/input/Input.stories.d.ts +1 -1
  33. package/lib/components/forms/numberInput/NumberInput.d.ts +2 -2
  34. package/lib/components/forms/numberInput/NumberInput.stories.d.ts +1 -1
  35. package/lib/components/forms/passwordInput/PasswordInput.d.ts +1 -1
  36. package/lib/components/forms/passwordInput/PasswordInput.stories.d.ts +1 -1
  37. package/lib/components/forms/radio/Radio.stories.d.ts +1 -1
  38. package/lib/components/forms/select/Select.d.ts +4 -2
  39. package/lib/components/forms/select/Select.stories.d.ts +4 -4
  40. package/lib/components/forms/select/types.d.ts +11 -1
  41. package/lib/components/forms/subcomponents/Label.d.ts +5 -1
  42. package/lib/components/forms/subcomponents/types.d.ts +5 -0
  43. package/lib/components/forms/textarea/Textarea.d.ts +1 -1
  44. package/lib/components/forms/textarea/Textarea.stories.d.ts +1 -1
  45. package/lib/components/forms/timePicker/TimePicker.d.ts +4 -1
  46. package/lib/components/forms/timePicker/types.d.ts +5 -0
  47. package/lib/components/forms/toggle/Toggle.stories.d.ts +1 -1
  48. package/lib/components/grid/col/Col.d.ts +1 -1
  49. package/lib/components/grid/col/Col.stories.d.ts +1 -1
  50. package/lib/components/grid/container/Container.d.ts +1 -1
  51. package/lib/components/grid/container/Container.stories.d.ts +1 -1
  52. package/lib/components/grid/row/Row.d.ts +1 -1
  53. package/lib/components/grid/row/Row.stories.d.ts +1 -1
  54. package/lib/components/icons/Icon.d.ts +1 -1
  55. package/lib/components/icons/Icon.stories.d.ts +2 -2
  56. package/lib/components/icons/indicons.d.ts +1 -1
  57. package/lib/components/icons/types.d.ts +4 -4
  58. package/lib/components/loading-indicators/BarSpinner/BarSpinner.stories.d.ts +1 -1
  59. package/lib/components/loading-indicators/CirclePulse/CirclePulse.stories.d.ts +1 -1
  60. package/lib/components/menu/Menu.stories.d.ts +2 -2
  61. package/lib/components/modal/ConfirmationModal.d.ts +2 -2
  62. package/lib/components/modal/Modal.d.ts +2 -2
  63. package/lib/components/modal/Modal.stories.d.ts +6 -2
  64. package/lib/components/modal/types.d.ts +21 -7
  65. package/lib/components/pagination/Pagination.d.ts +2 -2
  66. package/lib/components/pagination/Pagination.stories.d.ts +1 -1
  67. package/lib/components/pagination/index.d.ts +1 -0
  68. package/lib/components/pagination/types.d.ts +13 -0
  69. package/lib/components/pill/Pill.d.ts +1 -1
  70. package/lib/components/pill/Pill.stories.d.ts +1 -1
  71. package/lib/components/pill/types.d.ts +2 -2
  72. package/lib/components/skeleton/Skeleton.stories.d.ts +1 -1
  73. package/lib/components/stepper/Stepper.d.ts +2 -2
  74. package/lib/components/stepper/Stepper.stories.d.ts +1 -1
  75. package/lib/components/stepper/components/BackNavigation.d.ts +2 -1
  76. package/lib/components/stepper/components/Legend.d.ts +1 -1
  77. package/lib/components/stepper/components/NextNavigation.d.ts +3 -1
  78. package/lib/components/stepper/types.d.ts +12 -1
  79. package/lib/components/table/LoadingComponent.d.ts +5 -1
  80. package/lib/components/table/Table.d.ts +1 -1
  81. package/lib/components/table/Table.stories.d.ts +2 -2
  82. package/lib/components/table/components/HorizontalStickyHeader.d.ts +4 -1
  83. package/lib/components/table/components/helpers.d.ts +1 -1
  84. package/lib/components/table/hooks/usePinnedColumnsManager.d.ts +2 -2
  85. package/lib/components/table/sampleData.d.ts +1 -1
  86. package/lib/components/table/types.d.ts +20 -2
  87. package/lib/components/table/utils/processColumns.d.ts +2 -2
  88. package/lib/components/tanstackTable/TankstackTable.types.d.ts +20 -3
  89. package/lib/components/tanstackTable/TanstackTable.d.ts +2 -2
  90. package/lib/components/tanstackTable/TanstackTable.stories.d.ts +2 -2
  91. package/lib/components/tanstackTable/__tests__/__mocks__/test-mock-data.d.ts +1 -1
  92. package/lib/components/tanstackTable/components/ActionBar/ActionBar.d.ts +2 -2
  93. package/lib/components/tanstackTable/components/ActionBar/ActionBar.stories.d.ts +1 -1
  94. package/lib/components/tanstackTable/components/NoResults/NoResults.d.ts +2 -1
  95. package/lib/components/tanstackTable/components/TableBody/TableBody.d.ts +1 -1
  96. package/lib/components/tanstackTable/components/TableHeader/TableHeader.d.ts +1 -1
  97. package/lib/components/tanstackTable/components/TableLoading/TableLoading.d.ts +1 -1
  98. package/lib/components/tanstackTable/components/TablePagination/TablePagination.d.ts +3 -1
  99. package/lib/components/tanstackTable/docs/internalSorting/InternalClientSideSorting.stories.d.ts +2 -2
  100. package/lib/components/tanstackTable/docs/pinnedColumns/PinnedColumn.stories.d.ts +2 -2
  101. package/lib/components/tanstackTable/docs/withRowClick/WithRowClick.stories.d.ts +2 -2
  102. package/lib/components/tanstackTable/helpers.d.ts +2 -2
  103. package/lib/components/tanstackTable/mock-data/table-configuration.d.ts +2 -2
  104. package/lib/components/tanstackTable/useTanstackTable.d.ts +1 -1
  105. package/lib/components/toast/Toast.stories.d.ts +1 -1
  106. package/lib/components/tooltip/Tooltip.d.ts +2 -2
  107. package/lib/components/tooltip/Tooltip.stories.d.ts +1 -1
  108. package/lib/components/truncate/Truncate.d.ts +1 -1
  109. package/lib/components/truncate/Truncate.stories.d.ts +2 -2
  110. package/lib/components/truncate/types.d.ts +1 -1
  111. package/lib/docs/BaseColorPalette/BaseColorsPalette.stories.d.ts +1 -1
  112. package/lib/docs/SemanticTokens/ColorSwatch.d.ts +1 -1
  113. package/lib/docs/SemanticTokens/SemanticTokens.stories.d.ts +1 -1
  114. package/lib/index.d.ts +165 -45
  115. package/lib/index.esm.js +253 -170
  116. package/lib/index.esm.js.map +1 -1
  117. package/lib/index.js +253 -170
  118. package/lib/index.js.map +1 -1
  119. package/lib/setup/setupIcons.d.ts +1 -1
  120. package/lib/storybook/formArgTypes.d.ts +1 -1
  121. package/lib/stylesAndAnimations/borders/BorderColor.stories.d.ts +1 -1
  122. package/lib/stylesAndAnimations/borders/BorderRadius.stories.d.ts +1 -1
  123. package/lib/stylesAndAnimations/borders/BorderStyles.stories.d.ts +1 -1
  124. package/lib/stylesAndAnimations/borders/BorderThickness.stories.d.ts +1 -1
  125. package/lib/stylesAndAnimations/colors/UtilityClasses.stories.d.ts +1 -1
  126. package/lib/stylesAndAnimations/sizing/Sizing.stories.d.ts +1 -1
  127. package/lib/stylesAndAnimations/typography/Typography.stories.d.ts +1 -1
  128. package/lib/stylesAndAnimations/utilityClasses/UtilityClassesTable.stories.d.ts +1 -1
  129. package/lib/types.d.ts +4 -4
  130. package/package.json +8 -2
  131. package/src/components/badge/Badge.stories.tsx +4 -3
  132. package/src/components/badge/Badge.tsx +2 -1
  133. package/src/components/badge/__tests__/Badge.test.tsx +1 -0
  134. package/src/components/button/Button.stories.tsx +5 -4
  135. package/src/components/button/Button.tsx +12 -22
  136. package/src/components/button/__tests__/Button.test.tsx +31 -28
  137. package/src/components/button/types.ts +1 -1
  138. package/src/components/card/Card.stories.tsx +2 -1
  139. package/src/components/card/Card.tsx +2 -1
  140. package/src/components/card/__tests__/Card.test.tsx +1 -0
  141. package/src/components/floatUI/FloatUI.stories.tsx +3 -2
  142. package/src/components/floatUI/FloatUI.tsx +6 -7
  143. package/src/components/floatUI/__tests__/FloatUI.test.tsx +5 -3
  144. package/src/components/floatUI/types.ts +2 -2
  145. package/src/components/forms/checkbox/Checkbox.stories.tsx +3 -2
  146. package/src/components/forms/checkbox/Checkbox.tsx +1 -1
  147. package/src/components/forms/checkbox/__tests__/Checkbox.test.tsx +2 -1
  148. package/src/components/forms/date/datePicker/DatePicker.stories.tsx +12 -1
  149. package/src/components/forms/date/datePicker/DatePicker.tsx +35 -25
  150. package/src/components/forms/date/datePicker/__tests__/DatePicker.test.tsx +1 -0
  151. package/src/components/forms/date/datePicker/contants.ts +1 -1
  152. package/src/components/forms/date/datePicker/types.ts +16 -8
  153. package/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.stories.tsx +16 -2
  154. package/src/components/forms/date/iconTriggerDatePicker/IconTriggerDatePicker.tsx +21 -8
  155. package/src/components/forms/date/iconTriggerDatePicker/__tests__/IconTriggerDatePicker.test.tsx +2 -1
  156. package/src/components/forms/date/iconTriggerDatePicker/types.ts +5 -0
  157. package/src/components/forms/date/inputDatePicker/SingleInputDatePicker.stories.tsx +4 -2
  158. package/src/components/forms/date/inputDatePicker/SingleInputDatePicker.tsx +18 -13
  159. package/src/components/forms/date/inputDatePicker/__tests__/SingleInputDatePicker.test.tsx +4 -2
  160. package/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.stories.tsx +15 -4
  161. package/src/components/forms/date/inputDateRangePicker/InputDateRangePicker.tsx +29 -23
  162. package/src/components/forms/date/inputDateRangePicker/__tests__/InputDateRangePicker.test.tsx +2 -2
  163. package/src/components/forms/date/inputDateRangePicker/types.ts +7 -0
  164. package/src/components/forms/date/inputDateTimePicker/SingleInputDateTimePicker.stories.tsx +9 -5
  165. package/src/components/forms/date/inputDateTimePicker/SingleInputDateTimePicker.tsx +18 -13
  166. package/src/components/forms/form/Form.stories.tsx +7 -6
  167. package/src/components/forms/form/Form.tsx +1 -1
  168. package/src/components/forms/form/__tests__/Form.test.tsx +7 -4
  169. package/src/components/forms/input/Input.stories.tsx +6 -3
  170. package/src/components/forms/input/Input.tsx +4 -3
  171. package/src/components/forms/input/__tests__/Input.test.tsx +5 -3
  172. package/src/components/forms/numberInput/NumberInput.stories.tsx +5 -2
  173. package/src/components/forms/numberInput/NumberInput.tsx +6 -3
  174. package/src/components/forms/numberInput/__tests__/NumberInput.test.tsx +2 -1
  175. package/src/components/forms/passwordInput/PasswordInput.stories.tsx +6 -3
  176. package/src/components/forms/passwordInput/PasswordInput.tsx +12 -3
  177. package/src/components/forms/passwordInput/__tests__/PasswordInput.test.tsx +3 -4
  178. package/src/components/forms/radio/Radio.stories.tsx +5 -2
  179. package/src/components/forms/radio/__tests__/Radio.test.tsx +3 -2
  180. package/src/components/forms/select/Select.stories.tsx +11 -9
  181. package/src/components/forms/select/Select.tsx +21 -6
  182. package/src/components/forms/select/__tests__/Select.test.tsx +2 -2
  183. package/src/components/forms/select/types.ts +13 -1
  184. package/src/components/forms/subcomponents/Label.tsx +24 -4
  185. package/src/components/forms/subcomponents/__tests__/Label.test.tsx +1 -0
  186. package/src/components/forms/subcomponents/types.ts +5 -0
  187. package/src/components/forms/textarea/Textarea.stories.tsx +5 -2
  188. package/src/components/forms/textarea/Textarea.tsx +5 -4
  189. package/src/components/forms/textarea/__tests__/Textarea.test.tsx +3 -3
  190. package/src/components/forms/timePicker/TimePicker.stories.tsx +14 -2
  191. package/src/components/forms/timePicker/TimePicker.tsx +15 -5
  192. package/src/components/forms/timePicker/__tests__/TimePicker.test.tsx +2 -1
  193. package/src/components/forms/timePicker/types.ts +5 -0
  194. package/src/components/forms/toggle/Toggle.stories.tsx +3 -2
  195. package/src/components/forms/toggle/__tests__/Toggle.test.tsx +3 -2
  196. package/src/components/grid/col/Col.stories.tsx +2 -1
  197. package/src/components/grid/col/Col.tsx +1 -1
  198. package/src/components/grid/container/Container.stories.tsx +2 -1
  199. package/src/components/grid/container/Container.tsx +1 -1
  200. package/src/components/grid/row/Row.stories.tsx +2 -1
  201. package/src/components/grid/row/Row.tsx +1 -1
  202. package/src/components/icons/Icon.stories.tsx +11 -4
  203. package/src/components/icons/Icon.tsx +4 -3
  204. package/src/components/icons/__tests__/Icon.test.tsx +1 -0
  205. package/src/components/icons/indicons.tsx +3 -3
  206. package/src/components/icons/types.ts +5 -4
  207. package/src/components/loading-indicators/BarSpinner/BarSpinner.stories.tsx +2 -1
  208. package/src/components/loading-indicators/BarSpinner/__tests__/BarSpinner.test.tsx +1 -0
  209. package/src/components/loading-indicators/CirclePulse/CirclePulse.stories.tsx +2 -1
  210. package/src/components/menu/Menu.stories.tsx +3 -2
  211. package/src/components/menu/Menu.test.tsx +1 -1
  212. package/src/components/menu/Menu.tsx +1 -1
  213. package/src/components/modal/ConfirmationModal.tsx +25 -18
  214. package/src/components/modal/Modal.stories.tsx +62 -28
  215. package/src/components/modal/Modal.tsx +9 -2
  216. package/src/components/modal/__tests__/Modal.test.tsx +1 -0
  217. package/src/components/modal/types.ts +23 -7
  218. package/src/components/pagination/Pagination.stories.tsx +14 -2
  219. package/src/components/pagination/Pagination.tsx +18 -8
  220. package/src/components/pagination/__tests__/Pagination.test.tsx +1 -0
  221. package/src/components/pagination/index.ts +1 -0
  222. package/src/components/pagination/types.ts +14 -0
  223. package/src/components/pill/Pill.stories.tsx +10 -6
  224. package/src/components/pill/Pill.tsx +2 -1
  225. package/src/components/pill/__tests__/Pill.test.tsx +4 -1
  226. package/src/components/pill/types.ts +4 -2
  227. package/src/components/skeleton/Skeleton.stories.tsx +2 -1
  228. package/src/components/skeleton/__tests__/Skeleton.test.tsx +1 -0
  229. package/src/components/stepper/Stepper.stories.tsx +20 -7
  230. package/src/components/stepper/Stepper.tsx +18 -3
  231. package/src/components/stepper/__tests__/Stepper.tests.tsx +5 -4
  232. package/src/components/stepper/components/BackNavigation.tsx +5 -3
  233. package/src/components/stepper/components/Legend.tsx +4 -3
  234. package/src/components/stepper/components/NextNavigation.tsx +15 -5
  235. package/src/components/stepper/examples/MixedExample.tsx +4 -3
  236. package/src/components/stepper/examples/OptionalStepsExample.tsx +4 -3
  237. package/src/components/stepper/examples/RequiredStepsExample.tsx +4 -3
  238. package/src/components/stepper/examples/commonExample/CommonExample.tsx +4 -3
  239. package/src/components/stepper/examples/commonExample/steps/StepOne.tsx +1 -0
  240. package/src/components/stepper/examples/commonExample/steps/StepThree.tsx +1 -0
  241. package/src/components/stepper/examples/commonExample/steps/StepTwo.tsx +1 -0
  242. package/src/components/stepper/types.ts +13 -1
  243. package/src/components/table/LoadingComponent.tsx +6 -2
  244. package/src/components/table/Table.stories.tsx +19 -5
  245. package/src/components/table/Table.tsx +16 -5
  246. package/src/components/table/__tests__/Table.test.tsx +2 -1
  247. package/src/components/table/components/HorizontalStickyHeader.tsx +14 -2
  248. package/src/components/table/components/TablePagination.tsx +1 -1
  249. package/src/components/table/components/__tests__/HorizontalStickyHeader.test.tsx +3 -3
  250. package/src/components/table/components/__tests__/TablePagination.test.tsx +1 -0
  251. package/src/components/table/components/helpers.ts +1 -1
  252. package/src/components/table/hooks/usePinnedColumnsManager.ts +7 -2
  253. package/src/components/table/sampleData.tsx +1 -3
  254. package/src/components/table/types.ts +25 -6
  255. package/src/components/table/utils/processColumns.tsx +4 -2
  256. package/src/components/tanstackTable/TankstackTable.types.ts +21 -3
  257. package/src/components/tanstackTable/TanstackTable.stories.tsx +14 -11
  258. package/src/components/tanstackTable/TanstackTable.tsx +28 -18
  259. package/src/components/tanstackTable/__tests__/TanstackTable.test.tsx +2 -1
  260. package/src/components/tanstackTable/__tests__/__mocks__/test-mock-data.tsx +2 -1
  261. package/src/components/tanstackTable/components/ActionBar/ActionBar.stories.tsx +6 -3
  262. package/src/components/tanstackTable/components/ActionBar/ActionBar.tsx +7 -3
  263. package/src/components/tanstackTable/components/ActionBar/__tests__/ActionBar.test.tsx +4 -1
  264. package/src/components/tanstackTable/components/NoResults/NoResults.tsx +9 -3
  265. package/src/components/tanstackTable/components/NoResults/__tests__/NoResult.test.tsx +1 -0
  266. package/src/components/tanstackTable/components/TableBody/TableBody.tsx +2 -1
  267. package/src/components/tanstackTable/components/TableHeader/TableHeader.tsx +3 -2
  268. package/src/components/tanstackTable/components/TableLoading/TableLoading.tsx +2 -1
  269. package/src/components/tanstackTable/components/TablePagination/TablePagination.tsx +4 -1
  270. package/src/components/tanstackTable/components/TablePagination/__tests__/TablePagination.test.tsx +1 -0
  271. package/src/components/tanstackTable/docs/internalSorting/InternalClientSideSorting.stories.tsx +5 -5
  272. package/src/components/tanstackTable/docs/pinnedColumns/PinnedColumn.stories.tsx +5 -4
  273. package/src/components/tanstackTable/docs/withRowClick/WithRowClick.stories.tsx +5 -4
  274. package/src/components/tanstackTable/helpers.ts +2 -2
  275. package/src/components/tanstackTable/mock-data/table-configuration.tsx +7 -4
  276. package/src/components/tanstackTable/useTanstackTable.tsx +1 -2
  277. package/src/components/toast/Toast.stories.tsx +2 -1
  278. package/src/components/tooltip/Tooltip.stories.tsx +3 -2
  279. package/src/components/tooltip/Tooltip.tsx +2 -2
  280. package/src/components/truncate/Truncate.stories.tsx +3 -2
  281. package/src/components/truncate/Truncate.tsx +5 -4
  282. package/src/components/truncate/__tests__/Truncate.test.tsx +1 -0
  283. package/src/components/truncate/types.ts +1 -1
  284. package/src/docs/BaseColorPalette/BaseColorPalette.tsx +1 -0
  285. package/src/docs/BaseColorPalette/BaseColorsPalette.stories.tsx +2 -1
  286. package/src/docs/BaseColorPalette/Swatch.tsx +2 -1
  287. package/src/docs/SemanticTokens/ColorSwatch.tsx +1 -1
  288. package/src/docs/SemanticTokens/SemanticTokens.stories.tsx +2 -2
  289. package/src/index.ts +1 -1
  290. package/src/setup/setupIcons.ts +2 -2
  291. package/src/storybook/formArgTypes.ts +12 -1
  292. package/src/storybook/iconNames.ts +1 -0
  293. package/src/storybookDocs/Permafrost.mdx +8 -0
  294. package/src/stylesAndAnimations/borders/BorderColor.stories.tsx +2 -1
  295. package/src/stylesAndAnimations/borders/BorderColor.tsx +0 -1
  296. package/src/stylesAndAnimations/borders/BorderRadius.stories.tsx +2 -1
  297. package/src/stylesAndAnimations/borders/BorderRadius.tsx +0 -1
  298. package/src/stylesAndAnimations/borders/BorderStyles.stories.tsx +2 -1
  299. package/src/stylesAndAnimations/borders/BorderStyles.tsx +0 -1
  300. package/src/stylesAndAnimations/borders/BorderThickness.stories.tsx +2 -1
  301. package/src/stylesAndAnimations/borders/BorderThickness.tsx +0 -1
  302. package/src/stylesAndAnimations/colors/UtilityClasses.stories.tsx +2 -1
  303. package/src/stylesAndAnimations/colors/UtilityClasses.tsx +1 -2
  304. package/src/stylesAndAnimations/sizing/Sizing.stories.tsx +2 -1
  305. package/src/stylesAndAnimations/sizing/Sizing.tsx +0 -1
  306. package/src/stylesAndAnimations/typography/Typography.stories.tsx +2 -1
  307. package/src/stylesAndAnimations/typography/Typography.tsx +0 -1
  308. package/src/stylesAndAnimations/utilityClasses/UtilityClassesTable.stories.tsx +2 -1
  309. package/src/stylesAndAnimations/utilityClasses/UtilityClassesTable.tsx +6 -3
  310. package/src/types.ts +12 -6
@@ -1,2 +1,2 @@
1
- import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
1
+ import { type IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
2
  export declare const registerFontAwesomeIcons: (...icons: IconDefinition[]) => void;
@@ -1,4 +1,4 @@
1
- import { ArgTypes } from '@storybook/react';
1
+ import { type ArgTypes } from '@storybook/react';
2
2
  declare const labelArgTypes: ArgTypes;
3
3
  declare const baseInputArgTypes: ArgTypes;
4
4
  declare const inputArgTypes: ArgTypes;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { BorderColor } from './BorderColor';
3
3
  declare const meta: Meta<typeof BorderColor>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { BorderRadius } from './BorderRadius';
3
3
  declare const meta: Meta<typeof BorderRadius>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { BorderStyles } from './BorderStyles';
3
3
  declare const meta: Meta<typeof BorderStyles>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { BorderThickness } from './BorderThickness';
3
3
  declare const meta: Meta<typeof BorderThickness>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { UtilityClasses } from './UtilityClasses';
3
3
  declare const meta: Meta<typeof UtilityClasses>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { Sizing } from './Sizing';
3
3
  declare const meta: Meta<typeof Sizing>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { Typography } from './Typography';
3
3
  declare const meta: Meta<typeof Typography>;
4
4
  export default meta;
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { UtilityClassesTable } from './UtilityClassesTable';
3
3
  declare const meta: Meta<typeof UtilityClassesTable>;
4
4
  export default meta;
package/lib/types.d.ts CHANGED
@@ -1,17 +1,17 @@
1
+ import { type SelectOption } from './components/forms/select/types';
2
+ import { type IconSizes, type IconName } from './components/icons/types';
3
+ import { type PillColor, type PillSize } from './components/pill/types';
4
+ import { type TableProps, type TableColumn, type Direction, type Alignment } from './components/table/types';
1
5
  export type PermafrostComponent = {
2
6
  id?: string;
3
7
  className?: string;
4
8
  'data-cy'?: string;
5
9
  'data-testid'?: string;
6
10
  };
7
- import { IconSizes, IconName } from './components/icons/types';
8
11
  export type { IconSizes, IconName };
9
12
  export type ChromaticColor = 'blue' | 'purple' | 'red' | 'yellow' | 'gray' | 'green' | 'pink' | 'orange' | 'teal';
10
13
  export type Color = ChromaticColor | 'black' | 'white';
11
14
  export type SemanticColor = 'neutral' | 'info' | 'warning' | 'error' | 'success' | 'pending';
12
- import { SelectOption } from './components/forms/select/types';
13
15
  export type { SelectOption };
14
- import { TableProps, TableColumn, Direction, Alignment } from './components/table/types';
15
16
  export type { TableProps, TableColumn, Direction, Alignment };
16
- import { PillColor, PillSize } from './components/pill/types';
17
17
  export type { PillColor, PillSize };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indico-data/design-system",
3
- "version": "3.18.0",
3
+ "version": "3.20.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "main": "lib/index.js",
@@ -20,9 +20,11 @@
20
20
  "test": "DEBUG_PRINT_LIMIT=10000 jest",
21
21
  "test:watch": "DEBUG_PRINT_LIMIT=10000 jest --watch",
22
22
  "all-releases": "npm view @indico-data/design-system versions",
23
- "latest-release": "npm dist-tags ls @indico-data/design-system"
23
+ "latest-release": "npm dist-tags ls @indico-data/design-system",
24
+ "prepare": "husky"
24
25
  },
25
26
  "lint-staged": {
27
+ "*.{ts,tsx}": "eslint --max-warnings 0",
26
28
  "**/*": "prettier --write --ignore-unknown"
27
29
  },
28
30
  "dependencies": {
@@ -73,6 +75,7 @@
73
75
  "@rollup/plugin-node-resolve": "^15.2.3",
74
76
  "@rollup/plugin-terser": "^0.4.4",
75
77
  "@rollup/plugin-typescript": "^11.1.6",
78
+ "@sanity/eslint-plugin-i18n": "^1.1.0",
76
79
  "@storybook/addon-a11y": "^8.0.8",
77
80
  "@storybook/addon-docs": "^8.0.8",
78
81
  "@storybook/addon-essentials": "^8.0.8",
@@ -114,9 +117,12 @@
114
117
  "babel-preset-react-app": "^10.0.1",
115
118
  "css-loader": "5.2.6",
116
119
  "eslint": "^8.56.0",
120
+ "eslint-plugin-i18next": "^6.1.3",
121
+ "eslint-plugin-import": "2.29.1",
117
122
  "eslint-plugin-react": "^7.33.2",
118
123
  "eslint-plugin-react-hooks": "^4.6.0",
119
124
  "html-webpack-plugin": "^5.6.5",
125
+ "husky": "^9.1.7",
120
126
  "identity-obj-proxy": "^3.0.0",
121
127
  "jest": "^29.7.0",
122
128
  "jest-environment-jsdom": "^29.7.0",
@@ -1,9 +1,10 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
+
2
3
  import { Badge } from './Badge';
3
- import { Col, Container, Row } from '../grid';
4
4
  import { FloatUI } from '../floatUI';
5
- import { Menu } from '../menu';
5
+ import { Col, Container, Row } from '../grid';
6
6
  import { Icon } from '../icons';
7
+ import { Menu } from '../menu';
7
8
 
8
9
  const meta: Meta = {
9
10
  title: 'Components/Badge',
@@ -1,5 +1,6 @@
1
1
  import classNames from 'classnames';
2
- import { BadgeProps } from './types';
2
+
3
+ import { type BadgeProps } from './types';
3
4
 
4
5
  export const Badge = ({ className = '', children, size = 'md', string, ...rest }: BadgeProps) => {
5
6
  const badgeClasses = classNames(
@@ -1,4 +1,5 @@
1
1
  import { render, screen } from '@testing-library/react';
2
+
2
3
  import { Badge } from '@/components/badge/Badge';
3
4
 
4
5
  describe('Badge', () => {
@@ -1,9 +1,10 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { Button, Col, Row } from '@/components';
3
- import { iconNames } from '@/storybook/iconNames';
4
1
  import { fas } from '@fortawesome/free-solid-svg-icons';
5
- import { registerFontAwesomeIcons } from '@/setup/setupIcons';
2
+ import { type Meta, type StoryObj } from '@storybook/react';
3
+
4
+ import { Button, Col, Row } from '@/components';
6
5
  import { indiconDefinitions } from '@/components/icons/indicons';
6
+ import { registerFontAwesomeIcons } from '@/setup/setupIcons';
7
+ import { iconNames } from '@/storybook/iconNames';
7
8
 
8
9
  registerFontAwesomeIcons(...Object.values(fas), ...indiconDefinitions);
9
10
 
@@ -1,9 +1,12 @@
1
- import React, { forwardRef } from 'react';
2
1
  import classNames from 'classnames';
2
+ import { forwardRef } from 'react';
3
+
4
+ import { type ButtonProps } from './types';
3
5
  import { Icon } from '../icons/Icon';
4
- import { IconSizes } from '../icons/types';
6
+ import { type IconSizes } from '../icons/types';
7
+
8
+ import type React from 'react';
5
9
 
6
- import { ButtonProps } from './types';
7
10
 
8
11
  export const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {
9
12
  const {
@@ -20,7 +23,8 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) =>
20
23
  size = 'md',
21
24
  onMouseExit,
22
25
  className,
23
- href,
26
+ // Destructure unused prop to prevent leaking to DOM
27
+ href: _href,
24
28
  ...rest
25
29
  } = props;
26
30
 
@@ -79,35 +83,21 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) =>
79
83
  >
80
84
  {/* Loading Icon on the left (default) */}
81
85
  {isLoading && !iconRight && (
82
- <Icon
83
- name="indico-o"
84
- style={{ animation: 'spin 1s linear infinite' }}
85
- ariaLabel="Loading..."
86
- size={iconSize}
87
- />
86
+ <Icon name="indico-o" style={{ animation: 'spin 1s linear infinite' }} size={iconSize} />
88
87
  )}
89
88
 
90
89
  {/* Left Icon */}
91
- {iconLeft && !isLoading && (
92
- <Icon name={iconLeft} ariaLabel={`${iconLeft} Icon`} size={iconSize} />
93
- )}
90
+ {iconLeft && !isLoading && <Icon name={iconLeft} ariaLabel={iconLeft} size={iconSize} />}
94
91
 
95
92
  {/* Button children */}
96
93
  {children}
97
94
 
98
95
  {/* Right Icon */}
99
- {iconRight && !isLoading && (
100
- <Icon name={iconRight} ariaLabel={`${iconRight} Icon`} size={iconSize} />
101
- )}
96
+ {iconRight && !isLoading && <Icon name={iconRight} ariaLabel={iconRight} size={iconSize} />}
102
97
 
103
98
  {/* Loading Icon on the right */}
104
99
  {isLoading && iconRight && (
105
- <Icon
106
- name="indico-o"
107
- style={{ animation: 'spin 1s linear infinite' }}
108
- ariaLabel="Loading..."
109
- size={iconSize}
110
- />
100
+ <Icon name="indico-o" style={{ animation: 'spin 1s linear infinite' }} size={iconSize} />
111
101
  )}
112
102
  </button>
113
103
  );
@@ -1,4 +1,5 @@
1
1
  import { render, screen } from '@testing-library/react';
2
+
2
3
  import { Button } from '@/components/button';
3
4
 
4
5
  const onClick = jest.fn();
@@ -52,11 +53,10 @@ describe('Button', () => {
52
53
  </Button>,
53
54
  );
54
55
  const button = screen.getByRole('button');
55
- const loadingIcon = screen.getByLabelText('Loading...');
56
56
 
57
57
  expect(button).toHaveClass('btn--loading');
58
58
  expect(button).toBeDisabled();
59
- expect(loadingIcon).toBeInTheDocument();
59
+ expect(button).toHaveAttribute('aria-busy', 'true');
60
60
  });
61
61
 
62
62
  it('displays the loading icon on the left when isLoading and iconLeft exists and hides the iconLeft', () => {
@@ -65,9 +65,10 @@ describe('Button', () => {
65
65
  Button
66
66
  </Button>,
67
67
  );
68
- const loadingIcon = screen.getByLabelText('Loading...');
69
- const iconLeft = screen.queryByLabelText('check Icon');
68
+ const button = screen.getByRole('button');
69
+ const iconLeft = screen.queryByLabelText('check');
70
70
 
71
+ expect(button).toHaveAttribute('aria-busy', 'true');
71
72
  expect(iconLeft).not.toBeInTheDocument();
72
73
  });
73
74
 
@@ -77,19 +78,22 @@ describe('Button', () => {
77
78
  Button
78
79
  </Button>,
79
80
  );
80
- const loadingIcon = screen.getByLabelText('Loading...');
81
- const iconRight = screen.queryByLabelText('check Icon');
81
+ const button = screen.getByRole('button');
82
+ const iconRight = screen.queryByLabelText('check');
82
83
 
84
+ expect(button).toHaveAttribute('aria-busy', 'true');
83
85
  expect(iconRight).not.toBeInTheDocument();
84
86
  });
85
87
 
86
- it('does not apply a margin to the loading icon when no children are present', () => {
87
- render(<Button isLoading iconLeft="check" onClick={onClick} ariaLabel="btn" />);
88
- const loadingIcon = screen.getByLabelText('Loading...');
89
- expect(loadingIcon).toBeInTheDocument();
88
+ it('sets aria-busy when loading with no children', () => {
89
+ const { rerender } = render(
90
+ <Button isLoading iconLeft="check" onClick={onClick} ariaLabel="btn" />,
91
+ );
92
+ const button = screen.getByRole('button');
93
+ expect(button).toHaveAttribute('aria-busy', 'true');
90
94
 
91
- render(<Button isLoading iconRight="check" onClick={onClick} ariaLabel="btn" />);
92
- expect(loadingIcon).toBeInTheDocument();
95
+ rerender(<Button isLoading iconRight="check" onClick={onClick} ariaLabel="btn" />);
96
+ expect(button).toHaveAttribute('aria-busy', 'true');
93
97
  });
94
98
 
95
99
  it('does not apply the loading class when not loading', () => {
@@ -99,11 +103,10 @@ describe('Button', () => {
99
103
  </Button>,
100
104
  );
101
105
  const button = screen.getByRole('button');
102
- const loadingIcon = screen.queryByLabelText('Loading...');
103
106
 
104
107
  expect(button).not.toHaveClass('btn--loading');
105
108
  expect(button).toBeEnabled();
106
- expect(loadingIcon).not.toBeInTheDocument();
109
+ expect(button).toHaveAttribute('aria-busy', 'false');
107
110
  });
108
111
 
109
112
  it('disables the button when disabled prop is true', () => {
@@ -123,7 +126,7 @@ describe('Button', () => {
123
126
  describe('button with icons', () => {
124
127
  it('renders an icon-only button when only iconLeft is provided', () => {
125
128
  render(<Button iconLeft="check" ariaLabel="icon button" />);
126
- const icon = screen.getByLabelText('check Icon');
129
+ const icon = screen.getByLabelText('check');
127
130
  const button = screen.getByRole('button');
128
131
 
129
132
  expect(icon).toBeInTheDocument();
@@ -133,7 +136,7 @@ describe('Button', () => {
133
136
 
134
137
  it('renders an icon-only button when only iconRight is provided', () => {
135
138
  render(<Button iconRight="check" ariaLabel="icon button" />);
136
- const icon = screen.getByLabelText('check Icon');
139
+ const icon = screen.getByLabelText('check');
137
140
  const button = screen.getByRole('button');
138
141
 
139
142
  expect(icon).toBeInTheDocument();
@@ -147,7 +150,7 @@ describe('Button', () => {
147
150
  Button
148
151
  </Button>,
149
152
  );
150
- const icon = screen.getByLabelText('check Icon');
153
+ const icon = screen.getByLabelText('check');
151
154
  const button = screen.getByRole('button');
152
155
 
153
156
  expect(button).toContainElement(icon);
@@ -159,7 +162,7 @@ describe('Button', () => {
159
162
  Button
160
163
  </Button>,
161
164
  );
162
- const icon = screen.getByLabelText('check Icon');
165
+ const icon = screen.getByLabelText('check');
163
166
  const button = screen.getByRole('button');
164
167
 
165
168
  expect(button).toContainElement(icon);
@@ -171,8 +174,8 @@ describe('Button', () => {
171
174
  Button
172
175
  </Button>,
173
176
  );
174
- const leftIcon = screen.getByLabelText('check Icon');
175
- const rightIcon = screen.getByLabelText('time Icon');
177
+ const leftIcon = screen.getByLabelText('check');
178
+ const rightIcon = screen.getByLabelText('time');
176
179
  const button = screen.getByRole('button');
177
180
 
178
181
  expect(button).toContainElement(leftIcon);
@@ -187,7 +190,7 @@ describe('Button', () => {
187
190
  Button
188
191
  </Button>,
189
192
  );
190
- const icon = screen.getByLabelText('check Icon');
193
+ const icon = screen.getByLabelText('check');
191
194
  expect(icon).toHaveClass('icon--xs');
192
195
  });
193
196
 
@@ -197,7 +200,7 @@ describe('Button', () => {
197
200
  Button
198
201
  </Button>,
199
202
  );
200
- const icon = screen.getByLabelText('check Icon');
203
+ const icon = screen.getByLabelText('check');
201
204
  expect(icon).toHaveClass('icon--sm');
202
205
  });
203
206
 
@@ -207,7 +210,7 @@ describe('Button', () => {
207
210
  Button
208
211
  </Button>,
209
212
  );
210
- const icon = screen.getByLabelText('check Icon');
213
+ const icon = screen.getByLabelText('check');
211
214
  expect(icon).toHaveClass('icon--md');
212
215
  });
213
216
 
@@ -217,7 +220,7 @@ describe('Button', () => {
217
220
  Button
218
221
  </Button>,
219
222
  );
220
- const icon = screen.getByLabelText('check Icon');
223
+ const icon = screen.getByLabelText('check');
221
224
  expect(icon).toHaveClass('icon--md');
222
225
  });
223
226
 
@@ -227,18 +230,18 @@ describe('Button', () => {
227
230
  Button
228
231
  </Button>,
229
232
  );
230
- const icon = screen.getByLabelText('check Icon');
233
+ const icon = screen.getByLabelText('check');
231
234
  expect(icon).toHaveClass('icon--lg');
232
235
  });
233
236
 
234
- it('applies correct icon size to loading icon based on button size', () => {
237
+ it('sets aria-busy when loading regardless of button size', () => {
235
238
  render(
236
239
  <Button size="sm" isLoading ariaLabel="loading button">
237
240
  Button
238
241
  </Button>,
239
242
  );
240
- const loadingIcon = screen.getByLabelText('Loading...');
241
- expect(loadingIcon).toHaveClass('icon--sm');
243
+ const button = screen.getByRole('button');
244
+ expect(button).toHaveAttribute('aria-busy', 'true');
242
245
  });
243
246
  });
244
247
  });
@@ -1,4 +1,4 @@
1
- import { IconName } from '../../types';
1
+ import { type IconName } from '../../types';
2
2
 
3
3
  export type ButtonVariants = 'solid' | 'outline' | 'link' | 'action' | 'destructive' | 'soft';
4
4
 
@@ -1,4 +1,5 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
+
2
3
  import { Card } from './Card';
3
4
  import { Button } from '../button';
4
5
  import { Col, Container, Row } from '../grid';
@@ -1,6 +1,7 @@
1
- import React from 'react';
2
1
  import classNames from 'classnames';
3
2
 
3
+ import type React from 'react';
4
+
4
5
  type Props = {
5
6
  /** Additional classes for the card component */
6
7
  className?: string;
@@ -1,4 +1,5 @@
1
1
  import { render, screen } from '@testing-library/react';
2
+
2
3
  import { Card } from '@/components/card/Card';
3
4
 
4
5
  describe('Card', () => {
@@ -1,9 +1,10 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
2
2
  import { useState } from 'react';
3
+
3
4
  import { FloatUI } from './FloatUI';
5
+ import { type FloatUIProps } from './types';
4
6
  import { Button } from '../button';
5
7
  import { Menu } from '../menu';
6
- import { FloatUIProps } from './types';
7
8
 
8
9
  const meta: Meta<typeof FloatUI> = {
9
10
  title: 'Components/FloatUI',
@@ -1,21 +1,20 @@
1
- import React, { useRef, isValidElement, useState } from 'react';
2
1
  import {
3
2
  FloatingPortal,
4
3
  useClick,
5
4
  useHover,
6
5
  useFloating,
7
6
  useInteractions,
8
- UseFloatingOptions,
7
+ type UseFloatingOptions,
9
8
  offset,
10
9
  flip,
11
10
  shift,
12
- Placement,
11
+ type Placement,
13
12
  useDismiss,
14
- ReferenceType,
15
- VirtualElement,
16
13
  autoUpdate,
17
14
  } from '@floating-ui/react';
18
- import { FloatUIProps } from './types';
15
+ import React, { useRef, isValidElement, useState } from 'react';
16
+
17
+ import { type FloatUIProps } from './types';
19
18
 
20
19
  const defaultOptions: UseFloatingOptions = {
21
20
  placement: 'bottom-start' as Placement,
@@ -69,7 +68,7 @@ export function FloatUI({
69
68
  },
70
69
  whileElementsMounted: disableAutoUpdate
71
70
  ? undefined
72
- : (floatingOptions.whileElementsMounted ?? autoUpdate),
71
+ : floatingOptions.whileElementsMounted ?? autoUpdate,
73
72
  elements: {
74
73
  reference: referenceElement as Element | null,
75
74
  },
@@ -1,9 +1,11 @@
1
1
  import { render, screen, fireEvent } from '@testing-library/react';
2
- import { FloatUI } from '../FloatUI';
3
- import { Menu } from '../../menu';
4
- import { Button } from '../../button';
5
2
  import userEvent from '@testing-library/user-event';
6
3
 
4
+ import { Button } from '../../button';
5
+ import { Menu } from '../../menu';
6
+ import { FloatUI } from '../FloatUI';
7
+
8
+
7
9
  describe('FloatUI Component', () => {
8
10
  it('does not display FloatUI content initially when rendered in uncontrolled mode', () => {
9
11
  render(
@@ -1,5 +1,5 @@
1
- import { ReactElement } from 'react';
2
- import { UseFloatingOptions } from '@floating-ui/react-dom';
1
+ import { type UseFloatingOptions } from '@floating-ui/react-dom';
2
+ import { type ReactElement } from 'react';
3
3
 
4
4
  export type FloatUIProps = {
5
5
  /** An array of exactly two elements: the first element is the trigger that opens the FloatUI, and the second element is the content displayed within the FloatUI. */
@@ -1,7 +1,8 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { Checkbox } from './Checkbox';
1
+ import { type Meta, type StoryObj } from '@storybook/react';
3
2
  import { useState } from 'react';
4
3
 
4
+ import { Checkbox } from './Checkbox';
5
+
5
6
  const meta: Meta = {
6
7
  title: 'Forms/Checkbox',
7
8
  component: Checkbox,
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  import classNames from 'classnames';
2
+ import React from 'react';
3
3
 
4
4
  export interface CheckboxProps {
5
5
  ref?: React.LegacyRef<HTMLInputElement>;
@@ -1,7 +1,8 @@
1
1
  import { render, screen } from '@testing-library/react';
2
- import { Checkbox } from '@/components/forms/checkbox/Checkbox';
3
2
  import userEvent from '@testing-library/user-event';
4
3
 
4
+ import { Checkbox } from '@/components/forms/checkbox/Checkbox';
5
+
5
6
  const handleOnChange = jest.fn();
6
7
 
7
8
  describe('checkbox', () => {
@@ -1,5 +1,6 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
1
  import { useArgs } from '@storybook/preview-api';
2
+ import { type Meta, type StoryObj } from '@storybook/react';
3
+
3
4
  import { DatePicker } from './DatePicker';
4
5
 
5
6
  const meta: Meta = {
@@ -240,6 +241,16 @@ const meta: Meta = {
240
241
  },
241
242
  },
242
243
  },
244
+ text: {
245
+ control: 'object',
246
+ description: 'Customizable text.',
247
+ table: {
248
+ category: 'i18n Text',
249
+ type: {
250
+ summary: '{ selectTime?: string }',
251
+ },
252
+ },
253
+ },
243
254
  },
244
255
  };
245
256