@taiv/ui 1.15.0 → 2.1.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 (483) hide show
  1. package/dist/assets/assets.d.ts +12 -1
  2. package/dist/assets/assets.d.ts.map +1 -1
  3. package/dist/assets/assets.js +22 -16
  4. package/dist/assets/brand/taiv-favicon-dark.png +0 -0
  5. package/dist/assets/brand/taiv-favicon-light.png +0 -0
  6. package/dist/assets/brand/taiv-icon-black.svg +10 -0
  7. package/dist/assets/brand/taiv-icon-dark.svg +17 -0
  8. package/dist/assets/brand/taiv-icon-white.svg +17 -0
  9. package/dist/assets/brand/taiv-logo-black.svg +16 -0
  10. package/dist/assets/brand/taiv-logo-dark.svg +23 -0
  11. package/dist/assets/brand/taiv-logo-old.svg +1 -0
  12. package/dist/assets/brand/taiv-logo-purple.svg +16 -0
  13. package/dist/assets/brand/taiv-logo-white.svg +23 -0
  14. package/dist/assets/icons.d.ts +1 -1
  15. package/dist/assets/icons.d.ts.map +1 -1
  16. package/dist/assets/icons.js +57 -53
  17. package/dist/assets/index.d.ts +3 -0
  18. package/dist/assets/index.d.ts.map +1 -0
  19. package/dist/assets/index.js +2 -0
  20. package/dist/components/Data/BigCalendar/BigCalendar.d.ts +26 -0
  21. package/dist/components/Data/BigCalendar/BigCalendar.d.ts.map +1 -0
  22. package/dist/components/Data/BigCalendar/BigCalendar.js +92 -0
  23. package/dist/components/Data/BigCalendar/BigCalendar.stories.d.ts +8 -0
  24. package/dist/components/Data/BigCalendar/BigCalendar.stories.d.ts.map +1 -0
  25. package/dist/components/Data/BigCalendar/BigCalendar.stories.js +77 -0
  26. package/dist/components/Data/Calendar/Calendar.d.ts +102 -0
  27. package/dist/components/Data/Calendar/Calendar.d.ts.map +1 -0
  28. package/dist/components/Data/Calendar/Calendar.js +671 -0
  29. package/dist/components/Data/Calendar/Calendar.stories.d.ts +10 -0
  30. package/dist/components/Data/Calendar/Calendar.stories.d.ts.map +1 -0
  31. package/dist/components/Data/Calendar/Calendar.stories.js +87 -0
  32. package/dist/components/Data/Cards/StatsCard/StatsCard.d.ts +1 -1
  33. package/dist/components/Data/Cards/StatsCard/StatsCard.d.ts.map +1 -1
  34. package/dist/components/Data/CheckboxTable/CheckboxTable.d.ts +1 -1
  35. package/dist/components/Data/CheckboxTable/CheckboxTable.d.ts.map +1 -1
  36. package/dist/components/Data/MediaPill/MediaPill.d.ts +27 -0
  37. package/dist/components/Data/MediaPill/MediaPill.d.ts.map +1 -0
  38. package/dist/components/Data/MediaPill/MediaPill.js +53 -0
  39. package/dist/components/Data/MediaPill/MediaPill.stories.d.ts +10 -0
  40. package/dist/components/Data/MediaPill/MediaPill.stories.d.ts.map +1 -0
  41. package/dist/components/Data/MediaPill/MediaPill.stories.js +51 -0
  42. package/dist/components/Data/Progress/Progress.d.ts +1 -1
  43. package/dist/components/Data/Progress/Progress.d.ts.map +1 -1
  44. package/dist/components/Data/RemovableItemList/RemovableItemList.d.ts +1 -1
  45. package/dist/components/Data/RemovableItemList/RemovableItemList.d.ts.map +1 -1
  46. package/dist/components/Data/StatsBadge/StatsBadge.d.ts +2 -1
  47. package/dist/components/Data/StatsBadge/StatsBadge.d.ts.map +1 -1
  48. package/dist/components/Info/Avatar/Avatar.d.ts +9 -0
  49. package/dist/components/Info/Avatar/Avatar.d.ts.map +1 -0
  50. package/dist/components/Info/Avatar/Avatar.js +36 -0
  51. package/dist/components/Info/Avatar/Avatar.stories.d.ts +9 -0
  52. package/dist/components/Info/Avatar/Avatar.stories.d.ts.map +1 -0
  53. package/dist/components/Info/Avatar/Avatar.stories.js +78 -0
  54. package/dist/components/Info/Badge/Badge.d.ts +1 -1
  55. package/dist/components/Info/Badge/Badge.d.ts.map +1 -1
  56. package/dist/components/Info/Badge/Badge.stories.d.ts.map +1 -1
  57. package/dist/components/Info/Badge/Badge.stories.js +21 -6
  58. package/dist/components/Info/Badge/sizes.d.ts +10 -10
  59. package/dist/components/Info/Badge/sizes.js +16 -16
  60. package/dist/components/Info/Badge/variants.d.ts +4 -4
  61. package/dist/components/Info/Badge/variants.d.ts.map +1 -1
  62. package/dist/components/Info/Badge/variants.js +26 -13
  63. package/dist/components/Info/Drawer/Drawer.d.ts +24 -0
  64. package/dist/components/Info/Drawer/Drawer.d.ts.map +1 -0
  65. package/dist/components/Info/Drawer/Drawer.js +44 -0
  66. package/dist/components/Info/Drawer/Drawer.stories.d.ts +10 -0
  67. package/dist/components/Info/Drawer/Drawer.stories.d.ts.map +1 -0
  68. package/dist/components/Info/Drawer/Drawer.stories.js +47 -0
  69. package/dist/components/Info/HoverCard/HoverCard.d.ts +16 -0
  70. package/dist/components/Info/HoverCard/HoverCard.d.ts.map +1 -0
  71. package/dist/components/Info/HoverCard/HoverCard.js +26 -0
  72. package/dist/components/Info/HoverCard/HoverCard.stories.d.ts +11 -0
  73. package/dist/components/Info/HoverCard/HoverCard.stories.d.ts.map +1 -0
  74. package/dist/components/Info/HoverCard/HoverCard.stories.js +86 -0
  75. package/dist/components/Info/HoverCard/HoverCardMenuItem.d.ts +12 -0
  76. package/dist/components/Info/HoverCard/HoverCardMenuItem.d.ts.map +1 -0
  77. package/dist/components/Info/HoverCard/HoverCardMenuItem.js +22 -0
  78. package/dist/components/Info/Indicator/Indicator.d.ts +3 -0
  79. package/dist/components/Info/Indicator/Indicator.d.ts.map +1 -0
  80. package/dist/components/Info/Indicator/Indicator.js +1 -0
  81. package/dist/components/Info/Indicator/Indicator.stories.d.ts +11 -0
  82. package/dist/components/Info/Indicator/Indicator.stories.d.ts.map +1 -0
  83. package/dist/components/Info/Indicator/Indicator.stories.js +123 -0
  84. package/dist/components/Info/InfoCard/InfoCard.d.ts +3 -3
  85. package/dist/components/Info/InfoCard/InfoCard.d.ts.map +1 -1
  86. package/dist/components/Info/InfoCard/InfoCard.js +5 -5
  87. package/dist/components/Info/MobileDrawer/MobileDrawer.d.ts +30 -0
  88. package/dist/components/Info/MobileDrawer/MobileDrawer.d.ts.map +1 -0
  89. package/dist/components/Info/MobileDrawer/MobileDrawer.js +52 -0
  90. package/dist/components/Info/MobileDrawer/MobileDrawer.stories.d.ts +9 -0
  91. package/dist/components/Info/MobileDrawer/MobileDrawer.stories.d.ts.map +1 -0
  92. package/dist/components/Info/MobileDrawer/MobileDrawer.stories.js +38 -0
  93. package/dist/components/Info/Modals/FormModal/FormModal.d.ts +17 -1
  94. package/dist/components/Info/Modals/FormModal/FormModal.d.ts.map +1 -1
  95. package/dist/components/Info/Modals/FormModal/FormModal.js +30 -12
  96. package/dist/components/Info/Modals/FormModalV2/FormModalV2.d.ts +60 -0
  97. package/dist/components/Info/Modals/FormModalV2/FormModalV2.d.ts.map +1 -0
  98. package/dist/components/Info/Modals/FormModalV2/FormModalV2.js +96 -0
  99. package/dist/components/Info/Modals/Modal/Modal.d.ts +1 -1
  100. package/dist/components/Info/Modals/Modal/Modal.d.ts.map +1 -1
  101. package/dist/components/Info/Modals/Modal/Modal.js +9 -1
  102. package/dist/components/Info/Modals/ModalProvider/ModalProvider.d.ts +1 -1
  103. package/dist/components/Info/Modals/ModalProvider/ModalProvider.d.ts.map +1 -1
  104. package/dist/components/Info/Modals/StepperModal/StepperModal.d.ts +1 -1
  105. package/dist/components/Info/Modals/StepperModal/StepperModal.d.ts.map +1 -1
  106. package/dist/components/Info/Modals/variants.d.ts +61 -41
  107. package/dist/components/Info/Modals/variants.d.ts.map +1 -1
  108. package/dist/components/Info/Modals/variants.js +58 -38
  109. package/dist/components/Info/Notifications/NotificationProvider/NotificationProvider.d.ts +2 -1
  110. package/dist/components/Info/Notifications/NotificationProvider/NotificationProvider.d.ts.map +1 -1
  111. package/dist/components/Info/Notifications/Notifications.stories.d.ts +1 -0
  112. package/dist/components/Info/Notifications/Notifications.stories.d.ts.map +1 -1
  113. package/dist/components/Info/Notifications/Notifications.stories.js +31 -0
  114. package/dist/components/Info/Notifications/variants.d.ts +30 -23
  115. package/dist/components/Info/Notifications/variants.d.ts.map +1 -1
  116. package/dist/components/Info/Notifications/variants.js +30 -24
  117. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.d.ts +37 -0
  118. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.d.ts.map +1 -0
  119. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.js +17 -0
  120. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.d.ts +7 -0
  121. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.d.ts.map +1 -0
  122. package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.js +26 -0
  123. package/dist/components/Info/Tooltips/FormulaTooltip/FormulaTooltip.d.ts +2 -1
  124. package/dist/components/Info/Tooltips/FormulaTooltip/FormulaTooltip.d.ts.map +1 -1
  125. package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.d.ts +2 -2
  126. package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.d.ts.map +1 -1
  127. package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.js +9 -3
  128. package/dist/components/Info/Tooltips/Popover/Popover.d.ts +16 -0
  129. package/dist/components/Info/Tooltips/Popover/Popover.d.ts.map +1 -0
  130. package/dist/components/Info/Tooltips/Popover/Popover.js +32 -0
  131. package/dist/components/Info/Tooltips/Tooltip/Tooltip.d.ts +5 -1
  132. package/dist/components/Info/Tooltips/Tooltip/Tooltip.d.ts.map +1 -1
  133. package/dist/components/Info/Tooltips/Tooltip/Tooltip.js +10 -8
  134. package/dist/components/Inputs/Buttons/Button/Button.d.ts +3 -1
  135. package/dist/components/Inputs/Buttons/Button/Button.d.ts.map +1 -1
  136. package/dist/components/Inputs/Buttons/Button/Button.js +38 -5
  137. package/dist/components/Inputs/Buttons/Button/Button.stories.d.ts +1 -0
  138. package/dist/components/Inputs/Buttons/Button/Button.stories.d.ts.map +1 -1
  139. package/dist/components/Inputs/Buttons/Button/Button.stories.js +105 -79
  140. package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts +7 -2
  141. package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts.map +1 -1
  142. package/dist/components/Inputs/Buttons/IconButton/IconButton.js +35 -11
  143. package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.d.ts +1 -0
  144. package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.d.ts.map +1 -1
  145. package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.js +100 -74
  146. package/dist/components/Inputs/Buttons/IconButton/sizes.d.ts +15 -0
  147. package/dist/components/Inputs/Buttons/IconButton/sizes.d.ts.map +1 -1
  148. package/dist/components/Inputs/Buttons/IconButton/sizes.js +3 -0
  149. package/dist/components/Inputs/Buttons/SSOButton/SSOButton.d.ts +2 -2
  150. package/dist/components/Inputs/Buttons/SSOButton/SSOButton.d.ts.map +1 -1
  151. package/dist/components/Inputs/Buttons/UnstyledButton/UnstyledButton.d.ts +1 -1
  152. package/dist/components/Inputs/Buttons/UnstyledButton/UnstyledButton.d.ts.map +1 -1
  153. package/dist/components/Inputs/Buttons/shared/variants.d.ts +399 -164
  154. package/dist/components/Inputs/Buttons/shared/variants.d.ts.map +1 -1
  155. package/dist/components/Inputs/Buttons/shared/variants.js +353 -143
  156. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.d.ts +41 -0
  157. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.d.ts.map +1 -0
  158. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.js +139 -0
  159. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.d.ts +13 -0
  160. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.d.ts.map +1 -0
  161. package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.js +75 -0
  162. package/dist/components/Inputs/ColorSwatch/ColorSwatch.d.ts +27 -0
  163. package/dist/components/Inputs/ColorSwatch/ColorSwatch.d.ts.map +1 -0
  164. package/dist/components/Inputs/ColorSwatch/ColorSwatch.js +46 -0
  165. package/dist/components/Inputs/Controls/Checkbox/Checkbox.d.ts +2 -1
  166. package/dist/components/Inputs/Controls/Checkbox/Checkbox.d.ts.map +1 -1
  167. package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.d.ts +32 -0
  168. package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.d.ts.map +1 -0
  169. package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.js +92 -0
  170. package/dist/components/Inputs/Controls/Radio/Radio.d.ts +2 -1
  171. package/dist/components/Inputs/Controls/Radio/Radio.d.ts.map +1 -1
  172. package/dist/components/Inputs/Controls/RadioList/RadioList.d.ts +1 -1
  173. package/dist/components/Inputs/Controls/RadioList/RadioList.d.ts.map +1 -1
  174. package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.d.ts +13 -9
  175. package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  176. package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.js +20 -12
  177. package/dist/components/Inputs/Controls/Toggle/Toggle.d.ts +25 -11
  178. package/dist/components/Inputs/Controls/Toggle/Toggle.d.ts.map +1 -1
  179. package/dist/components/Inputs/Controls/Toggle/Toggle.js +67 -20
  180. package/dist/components/Inputs/Controls/Toggle/Toggle.stories.d.ts +1 -0
  181. package/dist/components/Inputs/Controls/Toggle/Toggle.stories.d.ts.map +1 -1
  182. package/dist/components/Inputs/Controls/Toggle/Toggle.stories.js +86 -69
  183. package/dist/components/Inputs/Dates/DatePicker/DatePicker.d.ts +2 -1
  184. package/dist/components/Inputs/Dates/DatePicker/DatePicker.d.ts.map +1 -1
  185. package/dist/components/Inputs/Dates/DatePicker/DatePicker.js +23 -7
  186. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.d.ts +13 -0
  187. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  188. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.js +87 -0
  189. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.d.ts +13 -0
  190. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.d.ts.map +1 -0
  191. package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.js +239 -0
  192. package/dist/components/Inputs/Dates/TimeInput/TimeInput.d.ts +20 -0
  193. package/dist/components/Inputs/Dates/TimeInput/TimeInput.d.ts.map +1 -0
  194. package/dist/components/Inputs/Dates/TimeInput/TimeInput.js +51 -0
  195. package/dist/components/Inputs/Dropdowns/CascadingSelect/CascadingSelect.d.ts +1 -1
  196. package/dist/components/Inputs/Dropdowns/CascadingSelect/CascadingSelect.d.ts.map +1 -1
  197. package/dist/components/Inputs/Dropdowns/FontSelect/FontSelect.d.ts +2 -1
  198. package/dist/components/Inputs/Dropdowns/FontSelect/FontSelect.d.ts.map +1 -1
  199. package/dist/components/Inputs/Dropdowns/FontSelect/FontSelect.js +8 -1
  200. package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.d.ts +4 -3
  201. package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.d.ts.map +1 -1
  202. package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.js +76 -57
  203. package/dist/components/Inputs/Dropdowns/Select/Select.d.ts +2 -1
  204. package/dist/components/Inputs/Dropdowns/Select/Select.d.ts.map +1 -1
  205. package/dist/components/Inputs/Dropdowns/Select/Select.js +5 -3
  206. package/dist/components/Inputs/Dropzone/Dropzone.d.ts +24 -0
  207. package/dist/components/Inputs/Dropzone/Dropzone.d.ts.map +1 -0
  208. package/dist/components/Inputs/Dropzone/Dropzone.js +44 -0
  209. package/dist/components/Inputs/Dropzone/Dropzone.stories.d.ts +12 -0
  210. package/dist/components/Inputs/Dropzone/Dropzone.stories.d.ts.map +1 -0
  211. package/dist/components/Inputs/Dropzone/Dropzone.stories.js +114 -0
  212. package/dist/components/Inputs/Sliders/Slider/Slider.d.ts +1 -1
  213. package/dist/components/Inputs/Sliders/Slider/Slider.d.ts.map +1 -1
  214. package/dist/components/Inputs/Sliders/VolumeSlider/VolumeSlider.d.ts +2 -1
  215. package/dist/components/Inputs/Sliders/VolumeSlider/VolumeSlider.d.ts.map +1 -1
  216. package/dist/components/Inputs/TextInputs/AutoComplete/AutoComplete.d.ts +2 -1
  217. package/dist/components/Inputs/TextInputs/AutoComplete/AutoComplete.d.ts.map +1 -1
  218. package/dist/components/Inputs/TextInputs/NumberInput/NumberInput.d.ts +2 -1
  219. package/dist/components/Inputs/TextInputs/NumberInput/NumberInput.d.ts.map +1 -1
  220. package/dist/components/Inputs/TextInputs/NumberInput/NumberInput.js +4 -1
  221. package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.d.ts +46 -0
  222. package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.d.ts.map +1 -0
  223. package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.js +60 -0
  224. package/dist/components/Inputs/TextInputs/PasswordInput/PasswordInput.d.ts +2 -1
  225. package/dist/components/Inputs/TextInputs/PasswordInput/PasswordInput.d.ts.map +1 -1
  226. package/dist/components/Inputs/TextInputs/SearchBar/SearchBar.d.ts +2 -1
  227. package/dist/components/Inputs/TextInputs/SearchBar/SearchBar.d.ts.map +1 -1
  228. package/dist/components/Inputs/TextInputs/TextArea/TextArea.d.ts +2 -1
  229. package/dist/components/Inputs/TextInputs/TextArea/TextArea.d.ts.map +1 -1
  230. package/dist/components/Inputs/TextInputs/TextInput/TextInput.d.ts +2 -1
  231. package/dist/components/Inputs/TextInputs/TextInput/TextInput.d.ts.map +1 -1
  232. package/dist/components/Layout/Accordion/Accordion.d.ts +16 -0
  233. package/dist/components/Layout/Accordion/Accordion.d.ts.map +1 -0
  234. package/dist/components/Layout/Accordion/Accordion.js +63 -0
  235. package/dist/components/Layout/Accordion/Accordion.stories.d.ts +11 -0
  236. package/dist/components/Layout/Accordion/Accordion.stories.d.ts.map +1 -0
  237. package/dist/components/Layout/Accordion/Accordion.stories.js +148 -0
  238. package/dist/components/Layout/AutoGrid/AutoGrid.d.ts +20 -5
  239. package/dist/components/Layout/AutoGrid/AutoGrid.d.ts.map +1 -1
  240. package/dist/components/Layout/AutoGrid/AutoGrid.js +51 -3
  241. package/dist/components/Layout/AutoGrid/AutoGrid.stories.d.ts +1 -0
  242. package/dist/components/Layout/AutoGrid/AutoGrid.stories.d.ts.map +1 -1
  243. package/dist/components/Layout/AutoGrid/AutoGrid.stories.js +39 -29
  244. package/dist/components/Layout/BottomActionBar/BottomActionBar.d.ts +40 -0
  245. package/dist/components/Layout/BottomActionBar/BottomActionBar.d.ts.map +1 -0
  246. package/dist/components/Layout/BottomActionBar/BottomActionBar.js +79 -0
  247. package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.d.ts +10 -0
  248. package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.d.ts.map +1 -0
  249. package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.js +102 -0
  250. package/dist/components/Layout/Box/Box.d.ts +2 -1
  251. package/dist/components/Layout/Box/Box.d.ts.map +1 -1
  252. package/dist/components/Layout/Card/Card.d.ts +2 -2
  253. package/dist/components/Layout/Card/Card.d.ts.map +1 -1
  254. package/dist/components/Layout/Center/Center.d.ts +2 -1
  255. package/dist/components/Layout/Center/Center.d.ts.map +1 -1
  256. package/dist/components/Layout/Container/Container.d.ts +3 -0
  257. package/dist/components/Layout/Container/Container.d.ts.map +1 -0
  258. package/dist/components/Layout/Container/Container.js +1 -0
  259. package/dist/components/Layout/Container/Container.stories.d.ts +8 -0
  260. package/dist/components/Layout/Container/Container.stories.d.ts.map +1 -0
  261. package/dist/components/Layout/Container/Container.stories.js +52 -0
  262. package/dist/components/Layout/DataState/DataState.d.ts +34 -0
  263. package/dist/components/Layout/DataState/DataState.d.ts.map +1 -0
  264. package/dist/components/Layout/DataState/DataState.js +22 -0
  265. package/dist/components/Layout/DataState/DataState.stories.d.ts +11 -0
  266. package/dist/components/Layout/DataState/DataState.stories.d.ts.map +1 -0
  267. package/dist/components/Layout/DataState/DataState.stories.js +38 -0
  268. package/dist/components/Layout/Divider/Divider.d.ts +2 -1
  269. package/dist/components/Layout/Divider/Divider.d.ts.map +1 -1
  270. package/dist/components/Layout/Divider/Divider.js +4 -2
  271. package/dist/components/Layout/Frame/Frame.d.ts +2 -1
  272. package/dist/components/Layout/Frame/Frame.d.ts.map +1 -1
  273. package/dist/components/Layout/Grid/Grid.d.ts +1 -1
  274. package/dist/components/Layout/Group/Group.d.ts +3 -2
  275. package/dist/components/Layout/Group/Group.d.ts.map +1 -1
  276. package/dist/components/Layout/Loader/Loader.d.ts +2 -1
  277. package/dist/components/Layout/Loader/Loader.d.ts.map +1 -1
  278. package/dist/components/Layout/Loader/Loader.js +3 -2
  279. package/dist/components/Layout/Navbar/Navbar.d.ts +15 -0
  280. package/dist/components/Layout/Navbar/Navbar.d.ts.map +1 -0
  281. package/dist/components/Layout/Navbar/Navbar.js +20 -0
  282. package/dist/components/Layout/Navbar/Navbar.stories.d.ts +9 -0
  283. package/dist/components/Layout/Navbar/Navbar.stories.d.ts.map +1 -0
  284. package/dist/components/Layout/Navbar/Navbar.stories.js +98 -0
  285. package/dist/components/Layout/Page/Page.d.ts +13 -0
  286. package/dist/components/Layout/Page/Page.d.ts.map +1 -0
  287. package/dist/components/Layout/Page/Page.js +13 -0
  288. package/dist/components/Layout/Pagination/Pagination.d.ts +24 -0
  289. package/dist/components/Layout/Pagination/Pagination.d.ts.map +1 -0
  290. package/dist/components/Layout/Pagination/Pagination.js +53 -0
  291. package/dist/components/Layout/Pagination/Pagination.stories.d.ts +10 -0
  292. package/dist/components/Layout/Pagination/Pagination.stories.d.ts.map +1 -0
  293. package/dist/components/Layout/Pagination/Pagination.stories.js +76 -0
  294. package/dist/components/Layout/ScrollArea/ScrollArea.d.ts +3 -0
  295. package/dist/components/Layout/ScrollArea/ScrollArea.d.ts.map +1 -0
  296. package/dist/components/Layout/ScrollArea/ScrollArea.js +1 -0
  297. package/dist/components/Layout/ScrollArea/ScrollArea.stories.d.ts +8 -0
  298. package/dist/components/Layout/ScrollArea/ScrollArea.stories.d.ts.map +1 -0
  299. package/dist/components/Layout/ScrollArea/ScrollArea.stories.js +62 -0
  300. package/dist/components/Layout/SectionCard/SectionCard.d.ts +1 -1
  301. package/dist/components/Layout/SectionCard/SectionCard.d.ts.map +1 -1
  302. package/dist/components/Layout/Stack/Stack.d.ts +2 -1
  303. package/dist/components/Layout/Stack/Stack.d.ts.map +1 -1
  304. package/dist/components/Layout/Table/Table.d.ts +1 -1
  305. package/dist/components/Layout/Table/Table.d.ts.map +1 -1
  306. package/dist/components/Layout/Tabs/Tabs.d.ts +16 -5
  307. package/dist/components/Layout/Tabs/Tabs.d.ts.map +1 -1
  308. package/dist/components/Layout/Tabs/Tabs.js +53 -18
  309. package/dist/components/Layout/Tabs/Tabs.stories.d.ts.map +1 -1
  310. package/dist/components/Layout/Tabs/Tabs.stories.js +39 -39
  311. package/dist/components/Layout/VirtualGrid/VirtualGrid.d.ts +63 -0
  312. package/dist/components/Layout/VirtualGrid/VirtualGrid.d.ts.map +1 -0
  313. package/dist/components/Layout/VirtualGrid/VirtualGrid.js +159 -0
  314. package/dist/components/Misc/Burger/Burger.d.ts +6 -0
  315. package/dist/components/Misc/Burger/Burger.d.ts.map +1 -0
  316. package/dist/components/Misc/Burger/Burger.js +7 -0
  317. package/dist/components/Misc/Burger/Burger.stories.d.ts +10 -0
  318. package/dist/components/Misc/Burger/Burger.stories.d.ts.map +1 -0
  319. package/dist/components/Misc/Burger/Burger.stories.js +86 -0
  320. package/dist/components/Misc/Carousel/Carousel.d.ts +32 -0
  321. package/dist/components/Misc/Carousel/Carousel.d.ts.map +1 -0
  322. package/dist/components/Misc/Carousel/Carousel.js +16 -0
  323. package/dist/components/Misc/DragHandle/DragHandle.d.ts +19 -0
  324. package/dist/components/Misc/DragHandle/DragHandle.d.ts.map +1 -0
  325. package/dist/components/Misc/DragHandle/DragHandle.js +39 -0
  326. package/dist/components/Misc/DragHandle/DragHandle.stories.d.ts +9 -0
  327. package/dist/components/Misc/DragHandle/DragHandle.stories.d.ts.map +1 -0
  328. package/dist/components/Misc/DragHandle/DragHandle.stories.js +54 -0
  329. package/dist/components/Misc/FAB/FAB.d.ts +54 -0
  330. package/dist/components/Misc/FAB/FAB.d.ts.map +1 -0
  331. package/dist/components/Misc/FAB/FAB.js +53 -0
  332. package/dist/components/Misc/FAB/FAB.stories.d.ts +10 -0
  333. package/dist/components/Misc/FAB/FAB.stories.d.ts.map +1 -0
  334. package/dist/components/Misc/FAB/FAB.stories.js +100 -0
  335. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.d.ts +50 -0
  336. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.d.ts.map +1 -0
  337. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.js +40 -0
  338. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.d.ts +9 -0
  339. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.d.ts.map +1 -0
  340. package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.js +53 -0
  341. package/dist/components/Misc/HoverAction/HoverAction.d.ts +50 -0
  342. package/dist/components/Misc/HoverAction/HoverAction.d.ts.map +1 -0
  343. package/dist/components/Misc/HoverAction/HoverAction.js +61 -0
  344. package/dist/components/Misc/HoverAction/HoverAction.stories.d.ts +12 -0
  345. package/dist/components/Misc/HoverAction/HoverAction.stories.d.ts.map +1 -0
  346. package/dist/components/Misc/HoverAction/HoverAction.stories.js +96 -0
  347. package/dist/components/Misc/IconBadge/IconBadge.d.ts +1 -1
  348. package/dist/components/Misc/IconBadge/IconBadge.d.ts.map +1 -1
  349. package/dist/components/Misc/IconBadge/IconBadge.js +8 -6
  350. package/dist/components/Misc/Image/Image.d.ts +3 -0
  351. package/dist/components/Misc/Image/Image.d.ts.map +1 -0
  352. package/dist/components/Misc/Image/Image.js +1 -0
  353. package/dist/components/Misc/Image/Image.stories.d.ts +11 -0
  354. package/dist/components/Misc/Image/Image.stories.d.ts.map +1 -0
  355. package/dist/components/Misc/Image/Image.stories.js +63 -0
  356. package/dist/components/Misc/Kbd/Kbd.d.ts +7 -0
  357. package/dist/components/Misc/Kbd/Kbd.d.ts.map +1 -0
  358. package/dist/components/Misc/Kbd/Kbd.js +16 -0
  359. package/dist/components/Misc/Kbd/Kbd.stories.d.ts +9 -0
  360. package/dist/components/Misc/Kbd/Kbd.stories.d.ts.map +1 -0
  361. package/dist/components/Misc/Kbd/Kbd.stories.js +52 -0
  362. package/dist/components/Misc/LoadingOverlay/LoadingOverlay.d.ts +2 -1
  363. package/dist/components/Misc/LoadingOverlay/LoadingOverlay.d.ts.map +1 -1
  364. package/dist/components/Misc/Menu/Menu.d.ts +17 -0
  365. package/dist/components/Misc/Menu/Menu.d.ts.map +1 -0
  366. package/dist/components/Misc/Menu/Menu.js +52 -0
  367. package/dist/components/Misc/OverflowFade/OverflowFade.d.ts +42 -0
  368. package/dist/components/Misc/OverflowFade/OverflowFade.d.ts.map +1 -0
  369. package/dist/components/Misc/OverflowFade/OverflowFade.js +110 -0
  370. package/dist/components/Misc/OverflowFade/OverflowFade.stories.d.ts +11 -0
  371. package/dist/components/Misc/OverflowFade/OverflowFade.stories.d.ts.map +1 -0
  372. package/dist/components/Misc/OverflowFade/OverflowFade.stories.js +112 -0
  373. package/dist/components/Misc/Picker/Picker.d.ts +62 -0
  374. package/dist/components/Misc/Picker/Picker.d.ts.map +1 -0
  375. package/dist/components/Misc/Picker/Picker.js +111 -0
  376. package/dist/components/Misc/Picker/Picker.stories.d.ts +14 -0
  377. package/dist/components/Misc/Picker/Picker.stories.d.ts.map +1 -0
  378. package/dist/components/Misc/Picker/Picker.stories.js +154 -0
  379. package/dist/components/Misc/SelectableObject/SelectableObject.d.ts +38 -0
  380. package/dist/components/Misc/SelectableObject/SelectableObject.d.ts.map +1 -0
  381. package/dist/components/Misc/SelectableObject/SelectableObject.js +70 -0
  382. package/dist/components/Misc/SelectableObject/SelectableObject.stories.d.ts +11 -0
  383. package/dist/components/Misc/SelectableObject/SelectableObject.stories.d.ts.map +1 -0
  384. package/dist/components/Misc/SelectableObject/SelectableObject.stories.js +84 -0
  385. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.d.ts +26 -0
  386. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.d.ts.map +1 -0
  387. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.js +41 -0
  388. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.d.ts +10 -0
  389. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.d.ts.map +1 -0
  390. package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.js +48 -0
  391. package/dist/components/Misc/Skeleton/Skeleton.d.ts +1 -1
  392. package/dist/components/Misc/Skeleton/Skeleton.d.ts.map +1 -1
  393. package/dist/components/Misc/Stepper/Step.d.ts +1 -1
  394. package/dist/components/Misc/Stepper/Step.d.ts.map +1 -1
  395. package/dist/components/Misc/Stepper/Step.stories.d.ts +120 -120
  396. package/dist/components/Misc/Stepper/Stepper.d.ts +1 -1
  397. package/dist/components/Misc/Stepper/Stepper.d.ts.map +1 -1
  398. package/dist/components/Misc/Stepper/variants.d.ts +1 -1
  399. package/dist/components/Misc/Timeline/Timeline.d.ts +18 -0
  400. package/dist/components/Misc/Timeline/Timeline.d.ts.map +1 -0
  401. package/dist/components/Misc/Timeline/Timeline.js +38 -0
  402. package/dist/components/Misc/Timeline/Timeline.stories.d.ts +8 -0
  403. package/dist/components/Misc/Timeline/Timeline.stories.d.ts.map +1 -0
  404. package/dist/components/Misc/Timeline/Timeline.stories.js +54 -0
  405. package/dist/components/Misc/Transition/Transition.d.ts +2 -1
  406. package/dist/components/Misc/Transition/Transition.d.ts.map +1 -1
  407. package/dist/components/Typography/CollapsibleText/CollapsibleText.d.ts +1 -1
  408. package/dist/components/Typography/CollapsibleText/CollapsibleText.d.ts.map +1 -1
  409. package/dist/components/Typography/CollapsibleTitle/CollapsibleTitle.d.ts +1 -1
  410. package/dist/components/Typography/CollapsibleTitle/CollapsibleTitle.d.ts.map +1 -1
  411. package/dist/components/Typography/Formula/Formula.d.ts +2 -1
  412. package/dist/components/Typography/Formula/Formula.d.ts.map +1 -1
  413. package/dist/components/Typography/Fraction/Fraction.d.ts +1 -1
  414. package/dist/components/Typography/Fraction/Fraction.d.ts.map +1 -1
  415. package/dist/components/Typography/InlineEditableText/InlineEditableText.d.ts +35 -0
  416. package/dist/components/Typography/InlineEditableText/InlineEditableText.d.ts.map +1 -0
  417. package/dist/components/Typography/InlineEditableText/InlineEditableText.js +112 -0
  418. package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.d.ts +11 -0
  419. package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.d.ts.map +1 -0
  420. package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.js +48 -0
  421. package/dist/components/Typography/Text/Text.d.ts +1 -1
  422. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  423. package/dist/components/Typography/Title/Title.d.ts +1 -1
  424. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  425. package/dist/components/index.d.ts +148 -66
  426. package/dist/components/index.d.ts.map +1 -1
  427. package/dist/components/index.js +110 -68
  428. package/dist/constants/colors.d.ts +117 -91
  429. package/dist/constants/colors.d.ts.map +1 -1
  430. package/dist/constants/colors.js +56 -43
  431. package/dist/constants/font.d.ts +4 -4
  432. package/dist/constants/font.js +2 -2
  433. package/dist/docs/AIGeneratedBanner.d.ts +1 -1
  434. package/dist/docs/AIGeneratedBanner.d.ts.map +1 -1
  435. package/dist/hooks/index.d.ts +9 -1
  436. package/dist/hooks/index.d.ts.map +1 -1
  437. package/dist/hooks/index.js +7 -1
  438. package/dist/hooks/useConfirmationModal.d.ts.map +1 -1
  439. package/dist/hooks/useConfirmationModal.js +20 -1
  440. package/dist/hooks/useDisclosure.d.ts +11 -0
  441. package/dist/hooks/useDisclosure.d.ts.map +1 -0
  442. package/dist/hooks/useDisclosure.js +10 -0
  443. package/dist/hooks/useHeadroom.d.ts +18 -0
  444. package/dist/hooks/useHeadroom.d.ts.map +1 -0
  445. package/dist/hooks/useHeadroom.js +17 -0
  446. package/dist/hooks/useInfoModal.d.ts.map +1 -1
  447. package/dist/hooks/useInfoModal.js +13 -1
  448. package/dist/hooks/useMediaQuery.d.ts +1 -0
  449. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  450. package/dist/hooks/useMediaQuery.js +1 -0
  451. package/dist/hooks/useNotifications.d.ts +39 -7
  452. package/dist/hooks/useNotifications.d.ts.map +1 -1
  453. package/dist/hooks/useNotifications.js +108 -5
  454. package/dist/hooks/usePagination.d.ts +11 -0
  455. package/dist/hooks/usePagination.d.ts.map +1 -0
  456. package/dist/hooks/usePagination.js +2 -0
  457. package/dist/hooks/useScrollLock.d.ts +21 -0
  458. package/dist/hooks/useScrollLock.d.ts.map +1 -0
  459. package/dist/hooks/useScrollLock.js +20 -0
  460. package/dist/index.d.ts +5 -5
  461. package/dist/index.js +5 -5
  462. package/dist/styles/iosInputZoomFix.d.ts +31 -0
  463. package/dist/styles/iosInputZoomFix.d.ts.map +1 -0
  464. package/dist/styles/iosInputZoomFix.js +135 -0
  465. package/dist/utils/bytes.d.ts +10 -0
  466. package/dist/utils/bytes.d.ts.map +1 -0
  467. package/dist/utils/bytes.js +17 -0
  468. package/dist/utils/datetime.d.ts +18 -0
  469. package/dist/utils/datetime.d.ts.map +1 -0
  470. package/dist/utils/datetime.js +42 -0
  471. package/dist/utils/duration.d.ts +17 -0
  472. package/dist/utils/duration.d.ts.map +1 -0
  473. package/dist/utils/duration.js +30 -0
  474. package/dist/utils/index.d.ts +8 -2
  475. package/dist/utils/index.d.ts.map +1 -1
  476. package/dist/utils/index.js +7 -2
  477. package/dist/utils/sort.d.ts +44 -0
  478. package/dist/utils/sort.d.ts.map +1 -0
  479. package/dist/utils/sort.js +53 -0
  480. package/dist/utils/string.d.ts +22 -0
  481. package/dist/utils/string.d.ts.map +1 -0
  482. package/dist/utils/string.js +25 -0
  483. package/package.json +28 -4
@@ -0,0 +1,148 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Accordion } from './Accordion';
4
+ import { Badge } from '../../Info/Badge/Badge';
5
+ import { Group } from '../Group/Group';
6
+ import { Stack } from '../Stack/Stack';
7
+ import { Text } from '../../Typography/Text/Text';
8
+ import { Toggle } from '../../Inputs/Controls/Toggle/Toggle';
9
+ import { neutral } from '../../../constants/colors';
10
+ import { spacing } from '../../../constants/spacing';
11
+ const meta = {
12
+ title: 'Components/Layout/Accordion',
13
+ component: Accordion,
14
+ parameters: {
15
+ layout: 'centered',
16
+ docs: {
17
+ description: {
18
+ component: '[View Mantine Docs](https://v6.mantine.dev/core/accordion/)\n\nAccordion renders a list of expandable items. It extends Mantine v6\'s Accordion with Taiv styling: Poppins font, neutral dividers, `neutral[25]` hover, and a right-chevron that rotates 90° on expand.\n\nSupports controlled and uncontrolled modes, multi-expand via the `multiple` prop, and fully custom control content via `Accordion.Control`.',
19
+ },
20
+ },
21
+ },
22
+ decorators: [
23
+ (Story) => (_jsx("div", { style: { width: '560px' }, children: _jsx(Story, {}) })),
24
+ ],
25
+ argTypes: {
26
+ multiple: {
27
+ control: { type: 'boolean' },
28
+ description: 'Allow multiple items to be open simultaneously',
29
+ table: {
30
+ type: { summary: 'boolean' },
31
+ defaultValue: { summary: 'false' },
32
+ },
33
+ },
34
+ defaultValue: {
35
+ control: { type: 'text' },
36
+ description: 'Uncontrolled default open item value',
37
+ table: { type: { summary: 'string | string[]' } },
38
+ },
39
+ value: {
40
+ control: false,
41
+ description: 'Controlled open item value',
42
+ table: { type: { summary: 'string | string[] | null' } },
43
+ },
44
+ onChange: {
45
+ action: 'changed',
46
+ description: 'Called when the open item changes',
47
+ table: { type: { summary: '(value: string | string[] | null) => void' } },
48
+ },
49
+ chevron: {
50
+ control: false,
51
+ description: 'Override the default right-chevron icon',
52
+ table: { type: { summary: 'ReactNode' } },
53
+ },
54
+ styles: {
55
+ control: { type: 'object' },
56
+ description: 'Style overrides using Mantine styles API',
57
+ table: { type: { summary: 'Record<string, CSSObject>' } },
58
+ },
59
+ },
60
+ };
61
+ export default meta;
62
+ // ─── Single-expand (default) ────────────────────────────────────────────────
63
+ export const Default = {
64
+ args: { defaultValue: 'item-1' },
65
+ render: (args) => (_jsxs(Accordion, { ...args, children: [_jsxs(Accordion.Item, { value: 'item-1', children: [_jsx(Accordion.Control, { children: "Section one" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Content for section one. Click the header to collapse." }) })] }), _jsxs(Accordion.Item, { value: 'item-2', children: [_jsx(Accordion.Control, { children: "Section two" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Content for section two." }) })] }), _jsxs(Accordion.Item, { value: 'item-3', children: [_jsx(Accordion.Control, { children: "Section three" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Content for section three." }) })] })] })),
66
+ parameters: {
67
+ docs: {
68
+ source: {
69
+ code: `<Accordion defaultValue="item-1">
70
+ <Accordion.Item value="item-1">
71
+ <Accordion.Control>Section one</Accordion.Control>
72
+ <Accordion.Panel>Content for section one.</Accordion.Panel>
73
+ </Accordion.Item>
74
+ <Accordion.Item value="item-2">
75
+ <Accordion.Control>Section two</Accordion.Control>
76
+ <Accordion.Panel>Content for section two.</Accordion.Panel>
77
+ </Accordion.Item>
78
+ </Accordion>`,
79
+ },
80
+ },
81
+ },
82
+ };
83
+ // ─── Multi-expand ────────────────────────────────────────────────────────────
84
+ export const MultiExpand = {
85
+ render: () => (_jsxs(Accordion, { multiple: true, children: [_jsxs(Accordion.Item, { value: 'item-1', children: [_jsx(Accordion.Control, { children: "Open simultaneously" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Both panels can be open at once when `multiple` is set." }) })] }), _jsxs(Accordion.Item, { value: 'item-2', children: [_jsx(Accordion.Control, { children: "Also open" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "This one is open too." }) })] }), _jsxs(Accordion.Item, { value: 'item-3', children: [_jsx(Accordion.Control, { children: "Collapsed" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "This panel starts collapsed." }) })] })] })),
86
+ parameters: {
87
+ docs: {
88
+ description: { story: 'Pass `multiple` to allow any number of items to be open at once.' },
89
+ source: { code: `<Accordion multiple defaultValue={['item-1', 'item-2']}>...</Accordion>` },
90
+ },
91
+ },
92
+ };
93
+ // ─── Custom header content (Ad Preferences-style row) ───────────────────────
94
+ const categories = [
95
+ { value: 'adult', emoji: '🔞', label: 'Adult Content', badge: null },
96
+ { value: 'gambling', emoji: '🎰', label: 'Gambling', badge: null },
97
+ { value: 'food', emoji: '🍽️', label: 'Food & Drink', badge: '1 of 9 blocked' },
98
+ { value: 'health', emoji: '💪', label: 'Health & Fitness', badge: '1 of 14 blocked' },
99
+ ];
100
+ export const CustomHeader = {
101
+ render: () => {
102
+ const [blocked, setBlocked] = useState({});
103
+ const toggle = (value, e) => {
104
+ e.stopPropagation();
105
+ setBlocked((prev) => ({ ...prev, [value]: !prev[value] }));
106
+ };
107
+ return (_jsx(Accordion, { children: categories.map(({ value, emoji, label, badge }) => (_jsxs(Accordion.Item, { value: value, children: [_jsx(Accordion.Control, { children: _jsxs(Group, { position: 'apart', noWrap: true, children: [_jsxs(Group, { spacing: spacing.sm, noWrap: true, children: [_jsx("span", { style: { fontSize: '20px', lineHeight: 1 }, children: emoji }), _jsx(Text, { variant: 'body', children: label })] }), _jsxs(Group, { spacing: spacing.sm, noWrap: true, onClick: (e) => e.stopPropagation(), children: [badge ? (_jsx(Badge, { variant: 'filled', color: 'warning', size: 'sm', children: badge })) : (_jsx(Text, { variant: 'label', color: neutral[200], children: "Not blocked" })), _jsx(Toggle, { size: 'sm', checked: !!blocked[value], variant: 'error', onChange: (e) => {
108
+ e.stopPropagation();
109
+ setBlocked((prev) => ({ ...prev, [value]: e.currentTarget.checked }));
110
+ } })] })] }) }), _jsx(Accordion.Panel, { children: _jsx(Stack, { spacing: spacing.sm, children: _jsxs(Text, { variant: 'subtle', children: ["Subcategories for ", label, " would appear here."] }) }) })] }, value))) }));
111
+ },
112
+ parameters: {
113
+ docs: {
114
+ description: {
115
+ story: 'Compose any content inside `Accordion.Control`. Wrap interactive elements (toggles, buttons) in a click-stopping container so they don\'t trigger expand/collapse.',
116
+ },
117
+ source: { code: false },
118
+ },
119
+ },
120
+ };
121
+ // ─── Disabled item ───────────────────────────────────────────────────────────
122
+ export const DisabledItem = {
123
+ render: () => (_jsxs(Accordion, { children: [_jsxs(Accordion.Item, { value: 'active', children: [_jsx(Accordion.Control, { children: "Available category" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "This item can be expanded." }) })] }), _jsxs(Accordion.Item, { value: 'disabled', disabled: true, children: [_jsx(Accordion.Control, { children: "Disabled category" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "This content is inaccessible." }) })] })] })),
124
+ parameters: {
125
+ docs: {
126
+ description: { story: 'Pass `disabled` on an `Accordion.Item` to prevent it from being opened.' },
127
+ source: {
128
+ code: `<Accordion.Item value="disabled" disabled>
129
+ <Accordion.Control>Disabled</Accordion.Control>
130
+ <Accordion.Panel>...</Accordion.Panel>
131
+ </Accordion.Item>`,
132
+ },
133
+ },
134
+ },
135
+ };
136
+ // ─── Controlled ──────────────────────────────────────────────────────────────
137
+ export const Controlled = {
138
+ render: () => {
139
+ const [value, setValue] = useState('item-1');
140
+ return (_jsxs(Stack, { spacing: spacing.md, children: [_jsxs(Text, { variant: 'label', children: ["Open item: ", value !== null && value !== void 0 ? value : 'none'] }), _jsxs(Accordion, { value: value, onChange: (v) => setValue(v), children: [_jsxs(Accordion.Item, { value: 'item-1', children: [_jsx(Accordion.Control, { children: "Controlled item 1" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Controlled via external state." }) })] }), _jsxs(Accordion.Item, { value: 'item-2', children: [_jsx(Accordion.Control, { children: "Controlled item 2" }), _jsx(Accordion.Panel, { children: _jsx(Text, { variant: 'subtle', children: "Only one open at a time." }) })] })] })] }));
141
+ },
142
+ parameters: {
143
+ docs: {
144
+ description: { story: 'Pass `value` and `onChange` for full controlled behaviour.' },
145
+ source: { code: false },
146
+ },
147
+ },
148
+ };
@@ -1,8 +1,23 @@
1
- import React from 'react';
2
- import { SimpleGridProps } from '@mantine/core';
3
- interface AutoGridProps extends SimpleGridProps {
1
+ import { type SimpleGridProps } from '@mantine/core';
2
+ import type React from 'react';
3
+ /**
4
+ * Tailwind-style responsive column map. Missing entries inherit from the
5
+ * next-smaller breakpoint. `base` applies at viewports below `sm` (640px).
6
+ */
7
+ export type ResponsiveCols = {
8
+ base?: number;
9
+ sm?: number;
10
+ md?: number;
11
+ lg?: number;
12
+ xl?: number;
13
+ };
14
+ export interface AutoGridProps extends Omit<SimpleGridProps, 'cols'> {
4
15
  children: React.ReactNode;
16
+ /**
17
+ * Number of columns. Accepts a number, or a Tailwind-style responsive map
18
+ * (`{ base: 1, sm: 2, lg: 3 }`). Defaults to `1`.
19
+ */
20
+ cols?: number | ResponsiveCols;
5
21
  }
6
- declare const AutoGrid: ({ children, ...props }: AutoGridProps) => import("react/jsx-runtime").JSX.Element;
7
- export { AutoGrid };
22
+ export declare const AutoGrid: ({ cols, children, ...props }: AutoGridProps) => React.JSX.Element;
8
23
  //# sourceMappingURL=AutoGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/AutoGrid/AutoGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5D,UAAU,aAAc,SAAQ,eAAe;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,QAAQ,GAAI,wBAAwB,aAAa,4CAEtD,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"AutoGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/AutoGrid/AutoGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;CAChC;AAqDD,eAAO,MAAM,QAAQ,GAAI,8BAAkC,aAAa,sBAmBvE,CAAC"}
@@ -1,6 +1,54 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { SimpleGrid } from '@mantine/core';
3
- const AutoGrid = ({ children, ...props }) => {
4
- return _jsx(SimpleGrid, { ...props, children: children });
3
+ import { breakpoints } from '../../../constants/breakpoints';
4
+ const BP_WIDTH_PX = {
5
+ base: 0,
6
+ lg: breakpoints.LAPTOP, // 1024
7
+ md: breakpoints.TABLET, // 768
8
+ sm: breakpoints.MOBILE, // 640
9
+ xl: breakpoints.DESKTOP, // 1280
10
+ };
11
+ const RESPONSIVE_KEYS = [
12
+ 'base',
13
+ 'sm',
14
+ 'md',
15
+ 'lg',
16
+ 'xl',
17
+ ];
18
+ /**
19
+ * Translate a mobile-first responsive cols map into Mantine v6's
20
+ * `{ cols, breakpoints: [{ maxWidth, cols }, …] }` shape. Mantine applies
21
+ * breakpoints below a `maxWidth` so we resolve the largest entry as the base
22
+ * `cols` and emit descending `maxWidth` thresholds for smaller steps.
23
+ */
24
+ const resolveResponsiveCols = (map) => {
25
+ // Forward-fill so `{ base: 1, lg: 3 }` implies sm/md also pick up 1 until lg.
26
+ let last = 1;
27
+ const filled = RESPONSIVE_KEYS.reduce((acc, k) => {
28
+ const v = map[k];
29
+ if (typeof v === 'number')
30
+ last = v;
31
+ acc[k] = last;
32
+ return acc;
33
+ }, { base: 1, lg: 1, md: 1, sm: 1, xl: 1 });
34
+ const baseCols = filled.xl;
35
+ const stops = [];
36
+ // Walk descending: each step fires when viewport drops below its threshold.
37
+ const descending = ['xl', 'lg', 'md', 'sm'];
38
+ for (const key of descending) {
39
+ const smaller = RESPONSIVE_KEYS[RESPONSIVE_KEYS.indexOf(key) - 1];
40
+ if (!smaller)
41
+ continue;
42
+ if (filled[smaller] !== filled[key]) {
43
+ stops === null || stops === void 0 ? void 0 : stops.push({ cols: filled[smaller], maxWidth: BP_WIDTH_PX[key] });
44
+ }
45
+ }
46
+ return { breakpoints: stops, cols: baseCols };
47
+ };
48
+ export const AutoGrid = ({ cols = 1, children, ...props }) => {
49
+ if (typeof cols === 'number') {
50
+ return (_jsx(SimpleGrid, { cols: cols, ...props, children: children }));
51
+ }
52
+ const { cols: resolvedCols, breakpoints: resolvedBreakpoints } = resolveResponsiveCols(cols);
53
+ return (_jsx(SimpleGrid, { breakpoints: resolvedBreakpoints, cols: resolvedCols, ...props, children: children }));
5
54
  };
6
- export { AutoGrid };
@@ -4,4 +4,5 @@ declare const meta: Meta<typeof AutoGrid>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const Default: Story;
7
+ export declare const ResponsiveCols: Story;
7
8
  //# sourceMappingURL=AutoGrid.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoGrid.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/AutoGrid/AutoGrid.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAqD/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAkBnC,eAAO,MAAM,OAAO,EAAE,KAoBrB,CAAC"}
1
+ {"version":3,"file":"AutoGrid.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/AutoGrid/AutoGrid.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAqD/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAwBnC,eAAO,MAAM,OAAO,EAAE,KAwBrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAoB5B,CAAC"}
@@ -1,18 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AutoGrid } from './AutoGrid';
3
- import { Card } from '../Card/Card';
4
2
  import { Title } from '../../Typography/Title/Title';
3
+ import { Card } from '../Card/Card';
4
+ import { AutoGrid } from './AutoGrid';
5
5
  const meta = {
6
- title: 'Components/Layout/AutoGrid',
7
- component: AutoGrid,
8
- parameters: {
9
- layout: 'centered',
10
- docs: {
11
- description: {
12
- component: "[View Mantine Docs](https://v6.mantine.dev/core/simple-grid/)\n\nThe AutoGrid component is a responsive grid where each item takes an equal amount of space. It extends Mantine v6's SimpleGrid component and provides automatic column distribution with customizable spacing.",
13
- },
14
- },
15
- },
16
6
  argTypes: {
17
7
  children: {
18
8
  control: false,
@@ -25,45 +15,55 @@ const meta = {
25
15
  control: { type: 'number' },
26
16
  description: 'Number of columns in each row',
27
17
  table: {
28
- type: { summary: 'number | ResponsiveObject' },
29
18
  defaultValue: { summary: '1' },
19
+ type: { summary: 'number | ResponsiveObject' },
30
20
  },
31
21
  },
32
22
  spacing: {
33
23
  control: { type: 'select' },
34
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
35
24
  description: 'Horizontal spacing between items',
25
+ options: ['xs', 'sm', 'md', 'lg', 'xl'],
36
26
  table: {
37
- type: { summary: "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number" },
38
27
  defaultValue: { summary: "'md'" },
28
+ type: { summary: "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number" },
29
+ },
30
+ },
31
+ styles: {
32
+ control: { type: 'object' },
33
+ description: 'Custom styles to override with if necessary',
34
+ table: {
35
+ type: { summary: 'Record<string, CSSObject>' },
39
36
  },
40
37
  },
41
38
  verticalSpacing: {
42
39
  control: { type: 'select' },
43
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
44
40
  description: 'Vertical spacing between items',
41
+ options: ['xs', 'sm', 'md', 'lg', 'xl'],
45
42
  table: {
46
43
  type: { summary: "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number" },
47
44
  },
48
45
  },
49
- styles: {
50
- control: { type: 'object' },
51
- description: 'Custom styles to override with if necessary',
52
- table: {
53
- type: { summary: 'Record<string, CSSObject>' },
46
+ },
47
+ component: AutoGrid,
48
+ parameters: {
49
+ docs: {
50
+ description: {
51
+ component: "[View Mantine Docs](https://v6.mantine.dev/core/simple-grid/)\n\nThe AutoGrid component is a responsive grid where each item takes an equal amount of space. It extends Mantine v6's SimpleGrid component and provides automatic column distribution with customizable spacing.",
54
52
  },
55
53
  },
54
+ layout: 'centered',
56
55
  },
56
+ title: 'Components/Layout/AutoGrid',
57
57
  };
58
58
  export default meta;
59
- const SampleCard = ({ title, description }) => (_jsxs(Card, { animate: true, padding: "lg", children: [_jsx(Title, { variant: "cardHeader", children: title }), _jsx(Title, { variant: "cardSubheader", children: description })] }));
59
+ const SampleCard = ({ title, description, }) => (_jsxs(Card, { animate: true, padding: 'lg', children: [_jsx(Title, { variant: 'cardHeader', children: title }), _jsx(Title, { variant: 'cardSubheader', children: description })] }));
60
60
  const items = [
61
- { id: 1, title: 'Item 1', description: 'Grid item content' },
62
- { id: 2, title: 'Item 2', description: 'Grid item content' },
63
- { id: 3, title: 'Item 3', description: 'Grid item content' },
64
- { id: 4, title: 'Item 4', description: 'Grid item content' },
65
- { id: 5, title: 'Item 5', description: 'Grid item content' },
66
- { id: 6, title: 'Item 6', description: 'Grid item content' },
61
+ { description: 'Grid item content', id: 1, title: 'Item 1' },
62
+ { description: 'Grid item content', id: 2, title: 'Item 2' },
63
+ { description: 'Grid item content', id: 3, title: 'Item 3' },
64
+ { description: 'Grid item content', id: 4, title: 'Item 4' },
65
+ { description: 'Grid item content', id: 5, title: 'Item 5' },
66
+ { description: 'Grid item content', id: 6, title: 'Item 6' },
67
67
  ];
68
68
  export const Default = {
69
69
  args: {
@@ -74,5 +74,15 @@ export const Default = {
74
74
  decorators: [
75
75
  (Story) => (_jsx("div", { style: { width: '700px' }, children: _jsx(Story, {}) })),
76
76
  ],
77
- render: (args) => (_jsx(AutoGrid, { ...args, children: items.map((item) => (_jsx(SampleCard, { title: item.title, description: item.description }, item.id))) })),
77
+ render: (args) => (_jsx(AutoGrid, { ...args, children: items.map((item) => (_jsx(SampleCard, { description: item.description, title: item.title }, item.id))) })),
78
+ };
79
+ export const ResponsiveCols = {
80
+ parameters: {
81
+ docs: {
82
+ description: {
83
+ story: 'Pass a responsive map to `cols` — Tailwind-style `base`/`sm`/`md`/`lg`/`xl`. Missing stops inherit from the next-smaller entry. Resize the viewport to see the grid reflow.',
84
+ },
85
+ },
86
+ },
87
+ render: () => (_jsx(AutoGrid, { cols: { base: 1, lg: 3, sm: 2 }, spacing: 'md', children: items.map((item) => (_jsx(SampleCard, { description: item.description, title: item.title }, item.id))) })),
78
88
  };
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ export interface BottomActionBarItem {
3
+ /** Stable identifier for React key + accessibility. */
4
+ id: string;
5
+ /** Icon element (e.g. `<IconLayout />`). Rendered above the label. */
6
+ icon: React.ReactNode;
7
+ /** Short label rendered below the icon. */
8
+ label: React.ReactNode;
9
+ onClick?: () => void;
10
+ disabled?: boolean;
11
+ /** Mark the item as active / pressed. */
12
+ active?: boolean;
13
+ /** Accessibility label. Defaults to `label` when it's a string. */
14
+ ariaLabel?: string;
15
+ }
16
+ export interface BottomActionBarProps {
17
+ items: BottomActionBarItem[];
18
+ /** Pin to the viewport bottom. Default `true`. */
19
+ fixed?: boolean;
20
+ /** z-index when `fixed`. Default `20` (below `SelectionToolbar` at 30). */
21
+ zIndex?: number;
22
+ /** Backdrop blur intensity in px. Default `8`. 0 disables the blur. */
23
+ blur?: number;
24
+ /** Override the container height (px). Default `64`. */
25
+ height?: number;
26
+ ariaLabel?: string;
27
+ className?: string;
28
+ style?: React.CSSProperties;
29
+ }
30
+ /**
31
+ * Launcher row of icon+label cells, typically used to switch between tools
32
+ * (layout / text / media / animate…) at the bottom of a canvas-like editor.
33
+ * Columns auto-distribute evenly via `grid-template-columns: repeat(N, 1fr)`.
34
+ *
35
+ * `SelectionToolbar` and modals should sit above this bar — keep their
36
+ * `z-index` above the default `20`. `MobileDrawer` should receive
37
+ * `bottomOffset={height}` so sheets stack on top rather than overlap.
38
+ */
39
+ export declare const BottomActionBar: ({ items, fixed, zIndex, blur, height, ariaLabel, className, style, }: BottomActionBarProps) => React.JSX.Element;
40
+ //# sourceMappingURL=BottomActionBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomActionBar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BottomActionBar/BottomActionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,2CAA2C;IAC3C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,sEAS7B,oBAAoB,sBA8BtB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { neutral, primary, white } from '../../../constants/colors';
4
+ import { spacing } from '../../../constants/spacing';
5
+ import { Text } from '../../Typography/Text/Text';
6
+ /**
7
+ * Launcher row of icon+label cells, typically used to switch between tools
8
+ * (layout / text / media / animate…) at the bottom of a canvas-like editor.
9
+ * Columns auto-distribute evenly via `grid-template-columns: repeat(N, 1fr)`.
10
+ *
11
+ * `SelectionToolbar` and modals should sit above this bar — keep their
12
+ * `z-index` above the default `20`. `MobileDrawer` should receive
13
+ * `bottomOffset={height}` so sheets stack on top rather than overlap.
14
+ */
15
+ export const BottomActionBar = ({ items, fixed = true, zIndex = 20, blur = 8, height = 64, ariaLabel = 'Editor tools', className, style, }) => {
16
+ return (_jsx("nav", { "aria-label": ariaLabel, className: className, style: {
17
+ backdropFilter: blur ? `blur(${blur}px)` : undefined,
18
+ backgroundColor: blur ? 'rgba(255, 255, 255, 0.85)' : white,
19
+ borderTop: `1px solid ${neutral[50]}`,
20
+ bottom: fixed ? 0 : undefined,
21
+ display: 'grid',
22
+ gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))`,
23
+ height,
24
+ left: fixed ? 0 : undefined,
25
+ position: fixed ? 'fixed' : 'relative',
26
+ right: fixed ? 0 : undefined,
27
+ width: fixed ? '100%' : undefined,
28
+ zIndex: fixed ? zIndex : undefined,
29
+ ...style,
30
+ }, children: items.map((item, i) => (_jsx(BottomActionBarButton, { item: item, showDivider: i < items.length - 1 }, item.id))) }));
31
+ };
32
+ const BottomActionBarButton = ({ item, showDivider, }) => {
33
+ var _a;
34
+ const [hover, setHover] = useState(false);
35
+ const [focus, setFocus] = useState(false);
36
+ const labelText = (_a = item.ariaLabel) !== null && _a !== void 0 ? _a : (typeof item.label === 'string' ? item.label : undefined);
37
+ const showPrimary = !item.disabled && (item.active || hover || focus);
38
+ const color = showPrimary ? primary[200] : neutral[200];
39
+ return (_jsxs("div", { style: { position: 'relative', height: '100%' }, children: [_jsxs("button", { "aria-label": labelText, "aria-pressed": item.active ? true : undefined, disabled: item.disabled, onClick: item.onClick, onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onFocus: () => setFocus(true), onBlur: () => {
40
+ setFocus(false);
41
+ setHover(false);
42
+ }, style: {
43
+ alignItems: 'center',
44
+ background: 'transparent',
45
+ border: 'none',
46
+ color,
47
+ cursor: item.disabled ? 'not-allowed' : 'pointer',
48
+ display: 'flex',
49
+ flexDirection: 'column',
50
+ gap: spacing.xs,
51
+ height: '100%',
52
+ justifyContent: 'center',
53
+ opacity: item.disabled ? 0.5 : 1,
54
+ // Browser default focus outline reads as a yellow/orange box on
55
+ // some platforms. Suppress it — the primary-color text + icon
56
+ // treatment driven by `focus` state is the keyboard-visible cue.
57
+ outline: 'none',
58
+ padding: spacing.xs,
59
+ transition: 'color 150ms ease',
60
+ WebkitTapHighlightColor: 'transparent',
61
+ width: '100%',
62
+ }, type: 'button', children: [_jsx("span", { style: {
63
+ alignItems: 'center',
64
+ color: 'inherit',
65
+ display: 'inline-flex',
66
+ height: 24,
67
+ justifyContent: 'center',
68
+ width: 24,
69
+ }, children: item.icon }), _jsx(Text, { variant: 'label', weight: item.active ? 'semibold' : 'medium', color: 'inherit', styles: { lineHeight: 1 }, children: item.label })] }), showDivider ? (_jsx("span", { "aria-hidden": 'true', style: {
70
+ position: 'absolute',
71
+ right: 0,
72
+ top: '50%',
73
+ transform: 'translateY(-50%)',
74
+ width: 1,
75
+ height: 24,
76
+ backgroundColor: neutral[50],
77
+ pointerEvents: 'none',
78
+ } })) : null] }));
79
+ };
@@ -0,0 +1,10 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { BottomActionBar } from './BottomActionBar';
3
+ declare const meta: Meta<typeof BottomActionBar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const ThreeUp: Story;
7
+ export declare const FourUp: Story;
8
+ export declare const WithContentAbove: Story;
9
+ export declare const DisabledItem: Story;
10
+ //# sourceMappingURL=BottomActionBar.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomActionBar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BottomActionBar/BottomActionBar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAY5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAYtC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KA+BrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAsCpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA2B9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconLayoutGrid, IconMovie, IconPhoto, IconSparkles, IconTypography, } from '@tabler/icons-react';
3
+ import { useState } from 'react';
4
+ import { neutral } from '../../../constants/colors';
5
+ import { spacing } from '../../../constants/spacing';
6
+ import { Text } from '../../Typography/Text/Text';
7
+ import { BottomActionBar } from './BottomActionBar';
8
+ const meta = {
9
+ component: BottomActionBar,
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: 'Bottom-pinned launcher of icon+label cells. Columns are evenly distributed (`1fr` per item). Acts as the shell for slide-editor tool sheets; pair with `MobileDrawer` + `bottomOffset={height}` so sheets stack on top rather than overlap.',
14
+ },
15
+ },
16
+ layout: 'fullscreen',
17
+ },
18
+ title: 'Components/Layout/BottomActionBar',
19
+ };
20
+ export default meta;
21
+ export const ThreeUp = {
22
+ render: () => {
23
+ const [active, setActive] = useState('layout');
24
+ return (_jsx(BottomActionBar, { items: [
25
+ {
26
+ active: active === 'layout',
27
+ icon: _jsx(IconLayoutGrid, { size: 20 }),
28
+ id: 'layout',
29
+ label: 'Layout',
30
+ onClick: () => setActive('layout'),
31
+ },
32
+ {
33
+ active: active === 'text',
34
+ icon: _jsx(IconTypography, { size: 20 }),
35
+ id: 'text',
36
+ label: 'Text',
37
+ onClick: () => setActive('text'),
38
+ },
39
+ {
40
+ active: active === 'media',
41
+ icon: _jsx(IconPhoto, { size: 20 }),
42
+ id: 'media',
43
+ label: 'Media',
44
+ onClick: () => setActive('media'),
45
+ },
46
+ ] }));
47
+ },
48
+ };
49
+ export const FourUp = {
50
+ render: () => {
51
+ const [active, setActive] = useState('text');
52
+ return (_jsx(BottomActionBar, { items: [
53
+ {
54
+ active: active === 'layout',
55
+ icon: _jsx(IconLayoutGrid, { size: 20 }),
56
+ id: 'layout',
57
+ label: 'Layout',
58
+ onClick: () => setActive('layout'),
59
+ },
60
+ {
61
+ active: active === 'text',
62
+ icon: _jsx(IconTypography, { size: 20 }),
63
+ id: 'text',
64
+ label: 'Text',
65
+ onClick: () => setActive('text'),
66
+ },
67
+ {
68
+ active: active === 'media',
69
+ icon: _jsx(IconMovie, { size: 20 }),
70
+ id: 'media',
71
+ label: 'Media',
72
+ onClick: () => setActive('media'),
73
+ },
74
+ {
75
+ active: active === 'animate',
76
+ icon: _jsx(IconSparkles, { size: 20 }),
77
+ id: 'animate',
78
+ label: 'Animate',
79
+ onClick: () => setActive('animate'),
80
+ },
81
+ ] }));
82
+ },
83
+ };
84
+ export const WithContentAbove = {
85
+ render: () => (_jsxs("div", { style: { minHeight: '100vh', paddingBottom: 80 }, children: [_jsxs("div", { style: { padding: spacing.lg }, children: [_jsx(Text, { children: "Scroll content sits above the bar. Use `paddingBottom` on the page wrapper so nothing is occluded by the fixed bar." }), Array.from({ length: 30 }, (_, i) => `row-${i + 1}`).map((key, i) => (_jsxs(Text, { style: { color: neutral[200], padding: `${spacing.xs} 0` }, variant: 'subtle', children: ["Row ", i + 1] }, key)))] }), _jsx(BottomActionBar, { items: [
86
+ { icon: _jsx(IconLayoutGrid, { size: 20 }), id: 'layout', label: 'Layout' },
87
+ { icon: _jsx(IconTypography, { size: 20 }), id: 'text', label: 'Text' },
88
+ { icon: _jsx(IconPhoto, { size: 20 }), id: 'media', label: 'Media' },
89
+ ] })] })),
90
+ };
91
+ export const DisabledItem = {
92
+ render: () => (_jsx(BottomActionBar, { items: [
93
+ { icon: _jsx(IconLayoutGrid, { size: 20 }), id: 'layout', label: 'Layout' },
94
+ { icon: _jsx(IconTypography, { size: 20 }), id: 'text', label: 'Text' },
95
+ {
96
+ disabled: true,
97
+ icon: _jsx(IconSparkles, { size: 20 }),
98
+ id: 'animate',
99
+ label: 'Animate',
100
+ },
101
+ ] })),
102
+ };
@@ -1,8 +1,9 @@
1
+ import React from 'react';
1
2
  import { BoxProps as MantineBoxProps } from '@mantine/core';
2
3
  interface BoxProps extends MantineBoxProps {
3
4
  width?: string | number;
4
5
  onClick?: () => void;
5
6
  }
6
- declare const Box: ({ width, onClick, ...props }: BoxProps) => import("react/jsx-runtime").JSX.Element;
7
+ declare const Box: ({ width, onClick, ...props }: BoxProps) => React.JSX.Element;
7
8
  export { Box };
8
9
  //# sourceMappingURL=Box.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,UAAU,QAAS,SAAQ,eAAe;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,GAAG,GAAI,8BAA8B,QAAQ,4CAElD,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Box/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAqB,QAAQ,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,UAAU,QAAS,SAAQ,eAAe;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,GAAG,GAAI,8BAA8B,QAAQ,sBAElD,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { CardProps as MantineCardProps } from '@mantine/core';
3
- export interface CardProps extends MantineCardProps {
3
+ export interface CardProps extends MantineCardProps, Omit<React.ComponentPropsWithoutRef<'div'>, keyof MantineCardProps> {
4
4
  children: React.ReactNode;
5
5
  animate?: boolean;
6
6
  }
7
- export declare const Card: ({ children, animate, p, radius, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const Card: ({ children, animate, p, radius, ...props }: CardProps) => React.JSX.Element;
8
8
  //# sourceMappingURL=Card.d.ts.map