@webiny/admin-ui 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7

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 (595) hide show
  1. package/Accordion/Accordion.d.ts +7 -6
  2. package/Accordion/Accordion.stories.d.ts +1 -1
  3. package/Accordion/Accordion.stories.js.map +1 -1
  4. package/Accordion/components/AccordionContent.js +4 -1
  5. package/Accordion/components/AccordionContent.js.map +1 -1
  6. package/Accordion/components/AccordionItem.d.ts +8 -6
  7. package/Accordion/components/AccordionItem.js.map +1 -1
  8. package/Accordion/components/AccordionItemAction.d.ts +7 -6
  9. package/Accordion/components/AccordionItemDragHandle.d.ts +2 -1
  10. package/Accordion/components/AccordionItemDragHandle.js +2 -1
  11. package/Accordion/components/AccordionItemDragHandle.js.map +1 -1
  12. package/Accordion/components/AccordionItemIcon.d.ts +7 -6
  13. package/Accordion/components/AccordionItemSeparator.d.ts +7 -6
  14. package/Accordion/components/AccordionTrigger.js +4 -2
  15. package/Accordion/components/AccordionTrigger.js.map +1 -1
  16. package/Alert/Alert.d.ts +21 -19
  17. package/Alert/Alert.stories.d.ts +1 -1
  18. package/Alert/Alert.stories.js.map +1 -1
  19. package/AutoComplete/AutoComplete.d.ts +7 -6
  20. package/AutoComplete/AutoComplete.stories.d.ts +1 -1
  21. package/AutoComplete/AutoComplete.stories.js.map +1 -1
  22. package/AutoComplete/primitives/AutoCompletePrimitive.d.ts +13 -6
  23. package/AutoComplete/primitives/AutoCompletePrimitive.js +1 -0
  24. package/AutoComplete/primitives/AutoCompletePrimitive.js.map +1 -1
  25. package/AutoComplete/primitives/AutoCompletePrimitive.stories.d.ts +1 -1
  26. package/AutoComplete/primitives/AutoCompletePrimitive.stories.js.map +1 -1
  27. package/Avatar/Avatar.d.ts +9 -8
  28. package/Avatar/Avatar.stories.d.ts +1 -1
  29. package/Avatar/Avatar.stories.js.map +1 -1
  30. package/Avatar/components/AvatarFallback.d.ts +7 -6
  31. package/Avatar/components/AvatarImage.d.ts +7 -6
  32. package/BetaBadge/BetaBadge.d.ts +6 -0
  33. package/BetaBadge/BetaBadge.js +7 -0
  34. package/BetaBadge/BetaBadge.js.map +1 -0
  35. package/Breadcrumbs/Breadcrumbs.d.ts +54 -0
  36. package/Breadcrumbs/Breadcrumbs.js +66 -0
  37. package/Breadcrumbs/Breadcrumbs.js.map +1 -0
  38. package/Breadcrumbs/Breadcrumbs.stories.d.ts +9 -0
  39. package/Breadcrumbs/Breadcrumbs.stories.js +71 -0
  40. package/Breadcrumbs/Breadcrumbs.stories.js.map +1 -0
  41. package/Breadcrumbs/index.d.ts +1 -0
  42. package/Breadcrumbs/index.js +1 -0
  43. package/Button/Button.d.ts +10 -9
  44. package/Button/Button.js +7 -0
  45. package/Button/Button.js.map +1 -1
  46. package/Button/Button.mdx +13 -0
  47. package/Button/Button.stories.d.ts +2 -1
  48. package/Button/Button.stories.js +9 -2
  49. package/Button/Button.stories.js.map +1 -1
  50. package/Button/CopyButton.d.ts +7 -6
  51. package/Button/IconButton.d.ts +10 -9
  52. package/Button/IconButton.stories.d.ts +1 -1
  53. package/Button/IconButton.stories.js.map +1 -1
  54. package/Calendar/Calendar.d.ts +7 -6
  55. package/Calendar/calendarClassNames.js +1 -1
  56. package/Calendar/calendarClassNames.js.map +1 -1
  57. package/Card/Card.d.ts +8 -22
  58. package/Card/Card.stories.d.ts +1 -1
  59. package/Card/Card.stories.js.map +1 -1
  60. package/Card/components/CancelAction.d.ts +8 -6
  61. package/Card/components/CardContent.d.ts +6 -6
  62. package/Card/components/CardTitle.d.ts +2 -2
  63. package/Card/components/ConfirmAction.d.ts +8 -6
  64. package/Card/components/Icon.d.ts +7 -6
  65. package/Checkbox/Checkbox.d.ts +7 -6
  66. package/Checkbox/Checkbox.stories.d.ts +1 -1
  67. package/Checkbox/Checkbox.stories.js.map +1 -1
  68. package/Checkbox/primitives/CheckboxPrimitive.d.ts +17 -12
  69. package/Checkbox/primitives/CheckboxPrimitive.stories.d.ts +1 -1
  70. package/Checkbox/primitives/CheckboxPrimitive.stories.js.map +1 -1
  71. package/CheckboxGroup/CheckboxGroup.d.ts +7 -6
  72. package/CheckboxGroup/CheckboxGroup.stories.d.ts +1 -1
  73. package/CheckboxGroup/CheckboxGroup.stories.js.map +1 -1
  74. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.d.ts +20 -12
  75. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.stories.d.ts +1 -1
  76. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.stories.js.map +1 -1
  77. package/CodeEditor/CodeEditor.d.ts +7 -6
  78. package/CodeEditor/CodeEditor.stories.d.ts +1 -1
  79. package/CodeEditor/CodeEditor.stories.js.map +1 -1
  80. package/CodeEditor/CodeEditorPrimitive.d.ts +7 -6
  81. package/CodeEditor/CodeEditorPrimitive.js +3 -1
  82. package/CodeEditor/CodeEditorPrimitive.js.map +1 -1
  83. package/CodeEditor/CodeEditorPrimitive.stories.d.ts +1 -1
  84. package/CodeEditor/CodeEditorPrimitive.stories.js.map +1 -1
  85. package/ColorPicker/ColorPicker.d.ts +7 -6
  86. package/ColorPicker/ColorPicker.stories.d.ts +1 -1
  87. package/ColorPicker/ColorPicker.stories.js.map +1 -1
  88. package/ColorPicker/primitives/ColorPickerPrimitive.d.ts +7 -6
  89. package/ColorPicker/primitives/ColorPickerPrimitive.stories.d.ts +1 -1
  90. package/ColorPicker/primitives/ColorPickerPrimitive.stories.js.map +1 -1
  91. package/Command/Command.d.ts +10 -8
  92. package/Command/components/List.d.ts +1 -1
  93. package/Command/components/List.js +9 -5
  94. package/Command/components/List.js.map +1 -1
  95. package/DataList/DataListModal.d.ts +6 -3
  96. package/DataTable/DataTable.d.ts +23 -12
  97. package/DataTable/DataTable.js +18 -7
  98. package/DataTable/DataTable.js.map +1 -1
  99. package/DataTable/DataTable.stories.d.ts +1 -1
  100. package/DataTable/DataTable.stories.js.map +1 -1
  101. package/DataTable/components/ColumnsVisibility.d.ts +5 -4
  102. package/DataTable/components/ColumnsVisibility.js +7 -3
  103. package/DataTable/components/ColumnsVisibility.js.map +1 -1
  104. package/DatePicker/DatePicker.d.ts +11 -7
  105. package/DatePicker/DatePicker.js +10 -2
  106. package/DatePicker/DatePicker.js.map +1 -1
  107. package/DatePicker/DatePicker.stories.d.ts +11 -1
  108. package/DatePicker/DatePicker.stories.js +44 -1
  109. package/DatePicker/DatePicker.stories.js.map +1 -1
  110. package/DatePicker/primitives/BirthdayPicker.d.ts +13 -0
  111. package/DatePicker/primitives/BirthdayPicker.js +355 -0
  112. package/DatePicker/primitives/BirthdayPicker.js.map +1 -0
  113. package/DatePicker/primitives/BirthdayPickerCell.d.ts +14 -0
  114. package/DatePicker/primitives/BirthdayPickerCell.js +19 -0
  115. package/DatePicker/primitives/BirthdayPickerCell.js.map +1 -0
  116. package/DatePicker/primitives/BirthdayPickerSegments.d.ts +9 -0
  117. package/DatePicker/primitives/BirthdayPickerSegments.js +43 -0
  118. package/DatePicker/primitives/BirthdayPickerSegments.js.map +1 -0
  119. package/DatePicker/primitives/DateOnlyPicker.js +2 -2
  120. package/DatePicker/primitives/DateOnlyPicker.js.map +1 -1
  121. package/DatePicker/primitives/DatePickerPrimitive.d.ts +7 -6
  122. package/DatePicker/primitives/DatePickerPrimitive.js +3 -0
  123. package/DatePicker/primitives/DatePickerPrimitive.js.map +1 -1
  124. package/DatePicker/primitives/DateRangePicker.js +3 -3
  125. package/DatePicker/primitives/DateRangePicker.js.map +1 -1
  126. package/DatePicker/primitives/DateTimePicker.d.ts +1 -1
  127. package/DatePicker/primitives/DateTimePicker.js +26 -18
  128. package/DatePicker/primitives/DateTimePicker.js.map +1 -1
  129. package/DatePicker/primitives/MultipleDatesPicker.js +3 -3
  130. package/DatePicker/primitives/MultipleDatesPicker.js.map +1 -1
  131. package/DatePicker/primitives/components/DatePickerTrigger.js +2 -2
  132. package/DatePicker/primitives/components/DatePickerTrigger.js.map +1 -1
  133. package/DatePicker/utils/birthdayHelpers.d.ts +77 -0
  134. package/DatePicker/utils/birthdayHelpers.js +145 -0
  135. package/DatePicker/utils/birthdayHelpers.js.map +1 -0
  136. package/DatePicker/utils/birthdayHelpers.test.d.ts +1 -0
  137. package/DatePicker/utils/birthdayHelpers.test.js +394 -0
  138. package/DatePicker/utils/birthdayHelpers.test.js.map +1 -0
  139. package/DatePicker/utils/dateHelpers.d.ts +6 -1
  140. package/DatePicker/utils/dateHelpers.js +13 -5
  141. package/DatePicker/utils/dateHelpers.js.map +1 -1
  142. package/DatePicker/utils/dateHelpers.test.d.ts +1 -0
  143. package/DatePicker/utils/dateHelpers.test.js +32 -0
  144. package/DatePicker/utils/dateHelpers.test.js.map +1 -0
  145. package/DatePicker/utils/index.d.ts +1 -0
  146. package/DatePicker/utils/index.js +1 -0
  147. package/DatePicker/utils/timezoneHelpers.d.ts +3 -0
  148. package/DatePicker/utils/timezoneHelpers.js +32 -0
  149. package/DatePicker/utils/timezoneHelpers.js.map +1 -0
  150. package/DatePicker/utils/types.d.ts +15 -2
  151. package/Dialog/Dialog.d.ts +8 -22
  152. package/Dialog/Dialog.stories.d.ts +1 -1
  153. package/Dialog/Dialog.stories.js.map +1 -1
  154. package/Dialog/components/CancelAction.d.ts +8 -6
  155. package/Dialog/components/ConfirmAction.d.ts +8 -6
  156. package/Dialog/components/DialogContent.d.ts +1 -1
  157. package/Dialog/components/DialogFooter.d.ts +1 -1
  158. package/Dialog/components/DialogTitle.d.ts +1 -1
  159. package/Dialog/components/Icon.d.ts +7 -6
  160. package/DragCursor/DragCursor.d.ts +7 -0
  161. package/DragCursor/DragCursor.js +21 -0
  162. package/DragCursor/DragCursor.js.map +1 -0
  163. package/DragCursor/DragCursor.stories.d.ts +10 -0
  164. package/DragCursor/DragCursor.stories.js +97 -0
  165. package/DragCursor/DragCursor.stories.js.map +1 -0
  166. package/DragCursor/index.d.ts +1 -0
  167. package/DragCursor/index.js +1 -0
  168. package/Drawer/Drawer.d.ts +18 -28
  169. package/Drawer/Drawer.js +2 -1
  170. package/Drawer/Drawer.js.map +1 -1
  171. package/Drawer/Drawer.stories.d.ts +2 -1
  172. package/Drawer/Drawer.stories.js +21 -2
  173. package/Drawer/Drawer.stories.js.map +1 -1
  174. package/Drawer/components/CancelButton.d.ts +8 -6
  175. package/Drawer/components/ConfirmButton.d.ts +8 -6
  176. package/Drawer/components/DrawerContent.d.ts +1 -1
  177. package/Drawer/components/DrawerHeader.d.ts +2 -2
  178. package/Drawer/components/DrawerHeader.js +11 -8
  179. package/Drawer/components/DrawerHeader.js.map +1 -1
  180. package/Drawer/components/Icon.d.ts +7 -6
  181. package/Drawer/components/Icon.js +3 -4
  182. package/Drawer/components/Icon.js.map +1 -1
  183. package/DropdownMenu/DropdownMenu.stories.d.ts +1 -1
  184. package/DropdownMenu/DropdownMenu.stories.js.map +1 -1
  185. package/DropdownMenu/components/DropdownMenuItem.d.ts +8 -2
  186. package/DropdownMenu/components/DropdownMenuItem.js +11 -3
  187. package/DropdownMenu/components/DropdownMenuItem.js.map +1 -1
  188. package/DropdownMenu/components/DropdownMenuLink.d.ts +9 -8
  189. package/DropdownMenu/components/DropdownMenuSeparator.d.ts +7 -6
  190. package/EditableTitle/EditableTitle.d.ts +67 -0
  191. package/EditableTitle/EditableTitle.js +73 -0
  192. package/EditableTitle/EditableTitle.js.map +1 -0
  193. package/EditableTitle/index.d.ts +1 -0
  194. package/EditableTitle/index.js +1 -0
  195. package/EmptyState/EmptyState.d.ts +43 -0
  196. package/EmptyState/EmptyState.js +93 -0
  197. package/EmptyState/EmptyState.js.map +1 -0
  198. package/EmptyState/EmptyState.stories.d.ts +13 -0
  199. package/EmptyState/EmptyState.stories.js +136 -0
  200. package/EmptyState/EmptyState.stories.js.map +1 -0
  201. package/EmptyState/illustrations/ContentIllustration.d.ts +2 -0
  202. package/EmptyState/illustrations/ContentIllustration.js +100 -0
  203. package/EmptyState/illustrations/ContentIllustration.js.map +1 -0
  204. package/EmptyState/illustrations/LayoutIllustration.d.ts +2 -0
  205. package/EmptyState/illustrations/LayoutIllustration.js +93 -0
  206. package/EmptyState/illustrations/LayoutIllustration.js.map +1 -0
  207. package/EmptyState/illustrations/ListingIllustration.d.ts +2 -0
  208. package/EmptyState/illustrations/ListingIllustration.js +92 -0
  209. package/EmptyState/illustrations/ListingIllustration.js.map +1 -0
  210. package/EmptyState/illustrations/SelectIllustration.d.ts +2 -0
  211. package/EmptyState/illustrations/SelectIllustration.js +100 -0
  212. package/EmptyState/illustrations/SelectIllustration.js.map +1 -0
  213. package/EmptyState/illustrations/TableIllustration.d.ts +2 -0
  214. package/EmptyState/illustrations/TableIllustration.js +233 -0
  215. package/EmptyState/illustrations/TableIllustration.js.map +1 -0
  216. package/EmptyState/illustrations/UploadIllustration.d.ts +2 -0
  217. package/EmptyState/illustrations/UploadIllustration.js +77 -0
  218. package/EmptyState/illustrations/UploadIllustration.js.map +1 -0
  219. package/EmptyState/illustrations/index.d.ts +6 -0
  220. package/EmptyState/illustrations/index.js +6 -0
  221. package/EmptyState/index.d.ts +1 -0
  222. package/EmptyState/index.js +1 -0
  223. package/FilePicker/FilePicker.d.ts +19 -18
  224. package/FilePicker/FilePicker.stories.d.ts +7 -1
  225. package/FilePicker/FilePicker.stories.js +24 -1
  226. package/FilePicker/FilePicker.stories.js.map +1 -1
  227. package/FilePicker/primitives/FilePickerPrimitive.d.ts +20 -19
  228. package/FilePicker/primitives/FilePickerPrimitive.stories.d.ts +1 -1
  229. package/FilePicker/primitives/FilePickerPrimitive.stories.js.map +1 -1
  230. package/FilePicker/primitives/components/Trigger.d.ts +1 -1
  231. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.d.ts +19 -7
  232. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js +15 -6
  233. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js.map +1 -1
  234. package/FilePicker/primitives/components/previews/ItemActions.js +1 -1
  235. package/FilePicker/primitives/components/previews/ItemActions.js.map +1 -1
  236. package/FilePicker/primitives/components/previews/ItemDescription.js +1 -1
  237. package/FilePicker/primitives/components/previews/ItemDescription.js.map +1 -1
  238. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.d.ts +5 -0
  239. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.js +45 -0
  240. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.js.map +1 -0
  241. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.d.ts +5 -0
  242. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.js +14 -0
  243. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.js.map +1 -0
  244. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.d.ts +12 -6
  245. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js +54 -12
  246. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js.map +1 -1
  247. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.d.ts +11 -1
  248. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js +8 -61
  249. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js.map +1 -1
  250. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.d.ts +11 -0
  251. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js +24 -0
  252. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js.map +1 -0
  253. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.d.ts +10 -0
  254. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.js +46 -0
  255. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.js.map +1 -0
  256. package/FilePicker/primitives/components/previews/TextOnlyPreview/TextOnlyPreview.d.ts +7 -6
  257. package/FilePicker/primitives/components/previews/TruncatedFileName.d.ts +7 -0
  258. package/FilePicker/primitives/components/previews/TruncatedFileName.js +20 -0
  259. package/FilePicker/primitives/components/previews/TruncatedFileName.js.map +1 -0
  260. package/FilePicker/primitives/components/previews/fileName.d.ts +4 -0
  261. package/FilePicker/primitives/components/previews/fileName.js +26 -0
  262. package/FilePicker/primitives/components/previews/fileName.js.map +1 -0
  263. package/FilePicker/primitives/components/previews/index.d.ts +1 -0
  264. package/FilePicker/primitives/components/previews/index.js +1 -0
  265. package/FilePicker/primitives/components/previews/variants.d.ts +1 -1
  266. package/FillViewport/FillViewport.d.ts +63 -0
  267. package/FillViewport/FillViewport.js +67 -0
  268. package/FillViewport/FillViewport.js.map +1 -0
  269. package/FillViewport/index.d.ts +1 -0
  270. package/FillViewport/index.js +1 -0
  271. package/FormComponent/Description.d.ts +7 -6
  272. package/FormComponent/ErrorMessage.d.ts +7 -6
  273. package/FormComponent/Label.d.ts +7 -6
  274. package/FormComponent/Note.d.ts +7 -6
  275. package/Grid/Grid.d.ts +25 -23
  276. package/Grid/Grid.js.map +1 -1
  277. package/Grid/Grid.stories.d.ts +1 -1
  278. package/Grid/Grid.stories.js.map +1 -1
  279. package/HeaderBar/HeaderBar.d.ts +7 -6
  280. package/HeaderBar/HeaderBar.stories.d.ts +1 -1
  281. package/HeaderBar/HeaderBar.stories.js.map +1 -1
  282. package/Heading/Heading.d.ts +8 -7
  283. package/Heading/Heading.stories.d.ts +1 -1
  284. package/Heading/Heading.stories.js.map +1 -1
  285. package/Icon/Icon.d.ts +9 -8
  286. package/Icon/Icon.stories.d.ts +1 -1
  287. package/Icon/Icon.stories.js.map +1 -1
  288. package/IconPicker/IconPicker.d.ts +7 -6
  289. package/IconPicker/IconPicker.stories.d.ts +1 -1
  290. package/IconPicker/IconPicker.stories.js.map +1 -1
  291. package/IconPicker/primitives/IconPickerPrimitive.d.ts +1 -1
  292. package/IconPicker/primitives/IconPickerPrimitive.js +1 -2
  293. package/IconPicker/primitives/IconPickerPrimitive.js.map +1 -1
  294. package/IconPicker/primitives/IconPickerPrimitive.stories.d.ts +1 -1
  295. package/IconPicker/primitives/IconPickerPrimitive.stories.js.map +1 -1
  296. package/IconPicker/primitives/components/IconPickerTrigger.d.ts +1 -1
  297. package/ImageEditor/AspectRatioPreview.d.ts +16 -0
  298. package/ImageEditor/AspectRatioPreview.js +26 -0
  299. package/ImageEditor/AspectRatioPreview.js.map +1 -0
  300. package/ImageEditor/CropHotspotEditor.d.ts +22 -0
  301. package/ImageEditor/CropHotspotEditor.js +402 -0
  302. package/ImageEditor/CropHotspotEditor.js.map +1 -0
  303. package/ImageEditor/ImageEditor.d.ts +18 -0
  304. package/ImageEditor/ImageEditor.js +151 -0
  305. package/ImageEditor/ImageEditor.js.map +1 -0
  306. package/ImageEditor/ImageEditor.stories.d.ts +6 -0
  307. package/ImageEditor/ImageEditor.stories.js +42 -0
  308. package/ImageEditor/ImageEditor.stories.js.map +1 -0
  309. package/ImageEditor/MetaFields.d.ts +12 -0
  310. package/ImageEditor/MetaFields.js +20 -0
  311. package/ImageEditor/MetaFields.js.map +1 -0
  312. package/ImageEditor/SectionLabel.d.ts +8 -0
  313. package/ImageEditor/SectionLabel.js +7 -0
  314. package/ImageEditor/SectionLabel.js.map +1 -0
  315. package/ImageEditor/geometry.d.ts +46 -0
  316. package/ImageEditor/geometry.js +126 -0
  317. package/ImageEditor/geometry.js.map +1 -0
  318. package/ImageEditor/index.d.ts +3 -0
  319. package/ImageEditor/index.js +3 -0
  320. package/ImageEditor/types.d.ts +52 -0
  321. package/ImageEditor/types.js +35 -0
  322. package/ImageEditor/types.js.map +1 -0
  323. package/Input/Input.d.ts +7 -6
  324. package/Input/Input.stories.d.ts +1 -1
  325. package/Input/Input.stories.js.map +1 -1
  326. package/Input/InputPrimitive.d.ts +9 -8
  327. package/Input/InputPrimitive.stories.d.ts +1 -1
  328. package/Input/InputPrimitive.stories.js.map +1 -1
  329. package/Label/Label.d.ts +8 -7
  330. package/Label/Label.stories.d.ts +1 -1
  331. package/Label/Label.stories.js.map +1 -1
  332. package/Label/components/LabelValue.d.ts +1 -1
  333. package/Link/Link.d.ts +3 -3
  334. package/Link/Link.js +1 -1
  335. package/Link/Link.js.map +1 -1
  336. package/Link/Link.stories.d.ts +1 -1
  337. package/Link/Link.stories.js.map +1 -1
  338. package/List/List.d.ts +8 -7
  339. package/List/List.stories.d.ts +1 -1
  340. package/List/List.stories.js.map +1 -1
  341. package/List/components/ListItem.d.ts +7 -6
  342. package/List/components/ListItemAction.d.ts +7 -6
  343. package/List/components/ListItemHandle.d.ts +7 -6
  344. package/List/components/ListItemIcon.d.ts +7 -6
  345. package/List/components/ListItemSeparator.d.ts +7 -6
  346. package/Loader/Loader.d.ts +9 -8
  347. package/Loader/Loader.stories.d.ts +1 -1
  348. package/Loader/Loader.stories.js.map +1 -1
  349. package/Loader/OverlayLoader.d.ts +7 -6
  350. package/Loader/OverlayLoader.stories.d.ts +1 -1
  351. package/Loader/OverlayLoader.stories.js.map +1 -1
  352. package/Markdown/Markdown.d.ts +47 -0
  353. package/Markdown/Markdown.js +17 -0
  354. package/Markdown/Markdown.js.map +1 -0
  355. package/Markdown/index.d.ts +1 -0
  356. package/Markdown/index.js +1 -0
  357. package/MultiAutoComplete/MultiAutoComplete.d.ts +7 -6
  358. package/MultiAutoComplete/MultiAutoComplete.stories.d.ts +1 -1
  359. package/MultiAutoComplete/MultiAutoComplete.stories.js.map +1 -1
  360. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.d.ts +13 -6
  361. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.js +1 -0
  362. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.js.map +1 -1
  363. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.stories.d.ts +1 -1
  364. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.stories.js.map +1 -1
  365. package/MultiAutoComplete/primitives/presenters/MultiAutoCompletePresenterWithFreeInput.d.ts +3 -3
  366. package/MultiAutoComplete/primitives/useMultiAutoComplete.d.ts +3 -3
  367. package/MultiFilePicker/MultiFilePicker.d.ts +19 -18
  368. package/MultiFilePicker/MultiFilePicker.stories.d.ts +1 -1
  369. package/MultiFilePicker/MultiFilePicker.stories.js.map +1 -1
  370. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.d.ts +19 -18
  371. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.stories.d.ts +1 -1
  372. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.stories.js.map +1 -1
  373. package/MultiSelect/MultiSelect.d.ts +7 -6
  374. package/MultiSelect/MultiSelect.stories.d.ts +1 -1
  375. package/MultiSelect/MultiSelect.stories.js.map +1 -1
  376. package/MultiSelect/primitives/MultiSelectPrimitive.d.ts +10 -6
  377. package/MultiSelect/primitives/MultiSelectPrimitive.js +12 -5
  378. package/MultiSelect/primitives/MultiSelectPrimitive.js.map +1 -1
  379. package/Popover/Popover.d.ts +7 -6
  380. package/Popover/Popover.stories.d.ts +8 -1
  381. package/Popover/Popover.stories.js +24 -1
  382. package/Popover/Popover.stories.js.map +1 -1
  383. package/Popover/primitives/PopoverPrimitive.d.ts +7 -7
  384. package/Popover/primitives/components/PopoverContent.js +6 -1
  385. package/Popover/primitives/components/PopoverContent.js.map +1 -1
  386. package/ProgressBar/ProgressBar.d.ts +7 -6
  387. package/ProgressBar/ProgressBar.stories.d.ts +1 -1
  388. package/ProgressBar/ProgressBar.stories.js.map +1 -1
  389. package/RadioGroup/RadioGroup.d.ts +7 -6
  390. package/RadioGroup/RadioGroup.stories.d.ts +1 -1
  391. package/RadioGroup/RadioGroup.stories.js.map +1 -1
  392. package/RadioGroup/primitives/Radio.d.ts +7 -6
  393. package/RadioGroup/primitives/RadioGroupPrimitive.d.ts +5 -1
  394. package/RadioGroup/primitives/RadioGroupPrimitive.stories.d.ts +1 -1
  395. package/RadioGroup/primitives/RadioGroupPrimitive.stories.js.map +1 -1
  396. package/RangeSlider/RangeSlider.d.ts +7 -6
  397. package/RangeSlider/RangeSlider.stories.d.ts +1 -1
  398. package/RangeSlider/RangeSlider.stories.js.map +1 -1
  399. package/RangeSlider/primitives/RangeSliderPrimitive.stories.d.ts +1 -1
  400. package/RangeSlider/primitives/RangeSliderPrimitive.stories.js.map +1 -1
  401. package/ScrollArea/ScrollArea.d.ts +16 -2
  402. package/ScrollArea/ScrollArea.js +25 -11
  403. package/ScrollArea/ScrollArea.js.map +1 -1
  404. package/ScrollArea/ScrollArea.stories.d.ts +1 -1
  405. package/ScrollArea/ScrollArea.stories.js.map +1 -1
  406. package/SegmentedControl/SegmentedControl.d.ts +11 -6
  407. package/SegmentedControl/SegmentedControl.js +6 -2
  408. package/SegmentedControl/SegmentedControl.js.map +1 -1
  409. package/SegmentedControl/SegmentedControl.stories.d.ts +5 -1
  410. package/SegmentedControl/SegmentedControl.stories.js +100 -2
  411. package/SegmentedControl/SegmentedControl.stories.js.map +1 -1
  412. package/SegmentedControl/SegmentedControlTab.d.ts +10 -0
  413. package/SegmentedControl/SegmentedControlTab.js +21 -0
  414. package/SegmentedControl/SegmentedControlTab.js.map +1 -0
  415. package/SegmentedControl/SegmentedControlTabs.d.ts +14 -0
  416. package/SegmentedControl/SegmentedControlTabs.js +71 -0
  417. package/SegmentedControl/SegmentedControlTabs.js.map +1 -0
  418. package/SegmentedControl/SegmentedControlTabsContext.d.ts +19 -0
  419. package/SegmentedControl/SegmentedControlTabsContext.js +11 -0
  420. package/SegmentedControl/SegmentedControlTabsContext.js.map +1 -0
  421. package/SegmentedControl/index.d.ts +2 -0
  422. package/SegmentedControl/index.js +2 -0
  423. package/SegmentedControl/primitives/SegmentedControlPrimitive.d.ts +6 -2
  424. package/SegmentedControl/primitives/SegmentedControlPrimitive.js +4 -3
  425. package/SegmentedControl/primitives/SegmentedControlPrimitive.js.map +1 -1
  426. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.d.ts +2 -1
  427. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.js +8 -1
  428. package/SegmentedControl/primitives/SegmentedControlPrimitive.stories.js.map +1 -1
  429. package/Select/Select.d.ts +7 -6
  430. package/Select/Select.stories.d.ts +1 -1
  431. package/Select/Select.stories.js.map +1 -1
  432. package/Select/primitives/SelectPrimitive.stories.d.ts +1 -1
  433. package/Select/primitives/SelectPrimitive.stories.js.map +1 -1
  434. package/Select/primitives/components/SelectContent.js +4 -6
  435. package/Select/primitives/components/SelectContent.js.map +1 -1
  436. package/Select/primitives/components/SelectTrigger.d.ts +2 -2
  437. package/Separator/Separator.d.ts +9 -8
  438. package/Separator/Separator.stories.d.ts +1 -1
  439. package/Separator/Separator.stories.js.map +1 -1
  440. package/Sidebar/Sidebar.d.ts +9 -6
  441. package/Sidebar/Sidebar.stories.d.ts +1 -1
  442. package/Sidebar/Sidebar.stories.js.map +1 -1
  443. package/Sidebar/components/SidebarContent.js +1 -1
  444. package/Sidebar/components/SidebarContent.js.map +1 -1
  445. package/Sidebar/components/SidebarIcon.d.ts +7 -6
  446. package/Sidebar/components/SidebarProvider.d.ts +4 -4
  447. package/Sidebar/components/SidebarRoot.js +1 -1
  448. package/Sidebar/components/SidebarRoot.js.map +1 -1
  449. package/Sidebar/components/items/SidebarMenuGroup.d.ts +9 -8
  450. package/Sidebar/components/items/SidebarMenuItem.d.ts +13 -9
  451. package/Sidebar/components/items/SidebarMenuItem.js +3 -1
  452. package/Sidebar/components/items/SidebarMenuItem.js.map +1 -1
  453. package/Sidebar/components/items/SidebarMenuItemBadge.d.ts +6 -0
  454. package/Sidebar/components/items/SidebarMenuItemBadge.js +7 -0
  455. package/Sidebar/components/items/SidebarMenuItemBadge.js.map +1 -0
  456. package/Sidebar/components/items/SidebarMenuItemIcon.d.ts +7 -6
  457. package/Sidebar/components/items/SidebarMenuLink.d.ts +12 -9
  458. package/Sidebar/components/items/SidebarMenuLink.js +3 -1
  459. package/Sidebar/components/items/SidebarMenuLink.js.map +1 -1
  460. package/Sidebar/components/items/SidebarMenuProvider.d.ts +4 -4
  461. package/Sidebar/components/items/SidebarMenuRootButton.d.ts +1 -1
  462. package/Sidebar/components/items/SidebarMenuRootButton.js +8 -3
  463. package/Sidebar/components/items/SidebarMenuRootButton.js.map +1 -1
  464. package/Sidebar/components/items/SidebarMenuRootItem.d.ts +9 -7
  465. package/Sidebar/components/items/SidebarMenuSubButton.d.ts +1 -1
  466. package/Sidebar/components/items/SidebarMenuSubButton.js +14 -6
  467. package/Sidebar/components/items/SidebarMenuSubButton.js.map +1 -1
  468. package/Sidebar/components/items/SidebarMenuSubItem.js +3 -3
  469. package/Sidebar/components/items/SidebarMenuSubItem.js.map +1 -1
  470. package/Sidebar/components/items/SidebarMenuSubItemIndentation.js +2 -1
  471. package/Sidebar/components/items/SidebarMenuSubItemIndentation.js.map +1 -1
  472. package/Skeleton/Skeleton.d.ts +9 -7
  473. package/Skeleton/Skeleton.js +10 -4
  474. package/Skeleton/Skeleton.js.map +1 -1
  475. package/Skeleton/Skeleton.stories.d.ts +3 -1
  476. package/Skeleton/Skeleton.stories.js +28 -2
  477. package/Skeleton/Skeleton.stories.js.map +1 -1
  478. package/Slider/Slider.d.ts +7 -6
  479. package/Slider/Slider.stories.d.ts +1 -1
  480. package/Slider/Slider.stories.js.map +1 -1
  481. package/Slider/primitives/SliderPrimitive.stories.d.ts +1 -1
  482. package/Slider/primitives/SliderPrimitive.stories.js.map +1 -1
  483. package/SteppedProgress/SteppedProgress.d.ts +7 -6
  484. package/SteppedProgress/SteppedProgress.stories.d.ts +1 -1
  485. package/SteppedProgress/SteppedProgress.stories.js.map +1 -1
  486. package/SteppedProgress/SteppedProgressItem.d.ts +7 -6
  487. package/Switch/Switch.d.ts +10 -9
  488. package/Switch/Switch.js +21 -7
  489. package/Switch/Switch.js.map +1 -1
  490. package/Switch/Switch.stories.d.ts +1 -1
  491. package/Switch/Switch.stories.js.map +1 -1
  492. package/Switch/domains/SwitchItemDto.d.ts +1 -1
  493. package/Switch/primitives/SwitchPrimitive.d.ts +10 -6
  494. package/Switch/primitives/SwitchPrimitive.js +4 -3
  495. package/Switch/primitives/SwitchPrimitive.js.map +1 -1
  496. package/Switch/primitives/SwitchPrimitive.stories.d.ts +1 -1
  497. package/Switch/primitives/SwitchPrimitive.stories.js.map +1 -1
  498. package/Table/Table.d.ts +12 -10
  499. package/Table/components/Direction.d.ts +1 -1
  500. package/Tabs/Tabs.d.ts +14 -7
  501. package/Tabs/Tabs.js +32 -11
  502. package/Tabs/Tabs.js.map +1 -1
  503. package/Tabs/Tabs.mdx +27 -0
  504. package/Tabs/Tabs.stories.d.ts +2 -1
  505. package/Tabs/Tabs.stories.js +19 -1
  506. package/Tabs/Tabs.stories.js.map +1 -1
  507. package/Tabs/components/Content.d.ts +1 -1
  508. package/Tabs/components/List.d.ts +2 -2
  509. package/Tabs/components/Tab.d.ts +7 -6
  510. package/Tabs/components/Trigger.d.ts +3 -2
  511. package/Tabs/components/Trigger.js +8 -3
  512. package/Tabs/components/Trigger.js.map +1 -1
  513. package/Tag/Tag.d.ts +8 -7
  514. package/Tag/Tag.stories.d.ts +1 -1
  515. package/Tag/Tag.stories.js.map +1 -1
  516. package/Tags/Tags.d.ts +7 -6
  517. package/Tags/Tags.stories.d.ts +1 -1
  518. package/Tags/Tags.stories.js.map +1 -1
  519. package/Tags/primitives/TagsPrimitive.d.ts +7 -6
  520. package/Tags/primitives/TagsPrimitive.stories.d.ts +1 -1
  521. package/Tags/primitives/TagsPrimitive.stories.js.map +1 -1
  522. package/Text/Text.d.ts +8 -7
  523. package/Text/Text.stories.d.ts +1 -1
  524. package/Text/Text.stories.js.map +1 -1
  525. package/Textarea/Textarea.d.ts +7 -6
  526. package/Textarea/Textarea.stories.d.ts +1 -1
  527. package/Textarea/Textarea.stories.js.map +1 -1
  528. package/Textarea/TextareaPrimitive.d.ts +9 -8
  529. package/Textarea/TextareaPrimitive.stories.d.ts +1 -1
  530. package/Textarea/TextareaPrimitive.stories.js.map +1 -1
  531. package/TimeAgo/TimeAgo.stories.d.ts +1 -1
  532. package/TimeAgo/TimeAgo.stories.js.map +1 -1
  533. package/TimeAgo/getElapsedSeconds.js +3 -3
  534. package/TimeAgo/getElapsedSeconds.js.map +1 -1
  535. package/Toast/Toast.d.ts +7 -6
  536. package/Toast/components/ToastActions.d.ts +7 -6
  537. package/Toast/components/ToastDescription.d.ts +7 -6
  538. package/Toast/components/ToastTitle.d.ts +7 -6
  539. package/Toast/useToast.stories.d.ts +1 -1
  540. package/Toast/useToast.stories.js.map +1 -1
  541. package/Toggle/Toggle.d.ts +7 -6
  542. package/Toggle/Toggle.stories.d.ts +1 -1
  543. package/Toggle/Toggle.stories.js.map +1 -1
  544. package/Toggle/primitives/TogglePrimitive.d.ts +13 -9
  545. package/Toggle/primitives/TogglePrimitive.stories.d.ts +1 -1
  546. package/Toggle/primitives/TogglePrimitive.stories.js.map +1 -1
  547. package/ToggleGroup/ToggleGroup.d.ts +7 -6
  548. package/ToggleGroup/ToggleGroup.stories.d.ts +1 -1
  549. package/ToggleGroup/ToggleGroup.stories.js.map +1 -1
  550. package/ToggleGroup/domains/ToggleGroupItem.d.ts +3 -0
  551. package/ToggleGroup/domains/ToggleGroupItem.js +6 -1
  552. package/ToggleGroup/domains/ToggleGroupItem.js.map +1 -1
  553. package/ToggleGroup/domains/ToggleGroupItemFormatted.d.ts +1 -0
  554. package/ToggleGroup/domains/ToggleGroupItemFormatter.js +2 -1
  555. package/ToggleGroup/domains/ToggleGroupItemFormatter.js.map +1 -1
  556. package/ToggleGroup/domains/ToggleGroupItemParams.d.ts +1 -0
  557. package/ToggleGroup/primitives/ToggleGroupPrimitive.d.ts +13 -9
  558. package/ToggleGroup/primitives/ToggleGroupPrimitive.js +12 -3
  559. package/ToggleGroup/primitives/ToggleGroupPrimitive.js.map +1 -1
  560. package/ToggleGroup/primitives/ToggleGroupPrimitive.stories.d.ts +1 -1
  561. package/ToggleGroup/primitives/ToggleGroupPrimitive.stories.js.map +1 -1
  562. package/Tooltip/Tooltip.d.ts +7 -6
  563. package/Tooltip/Tooltip.stories.d.ts +1 -1
  564. package/Tooltip/Tooltip.stories.js.map +1 -1
  565. package/Tree/Tree.d.ts +7 -6
  566. package/Tree/Tree.stories.d.ts +1 -1
  567. package/Tree/Tree.stories.js.map +1 -1
  568. package/Tree/components/Item.d.ts +7 -6
  569. package/Tree/components/ItemCollapseTrigger.d.ts +7 -6
  570. package/Tree/components/ItemContent.d.ts +8 -6
  571. package/Tree/components/ItemDragHandle.d.ts +7 -6
  572. package/Tree/components/ItemIcon.d.ts +7 -6
  573. package/Tree/components/ItemPlaceholder.d.ts +7 -6
  574. package/Tree/components/ItemSubIndentation.d.ts +7 -6
  575. package/Tree/useTree.js +6 -2
  576. package/Tree/useTree.js.map +1 -1
  577. package/Widget/Widget.d.ts +8 -22
  578. package/Widget/Widget.stories.d.ts +1 -1
  579. package/Widget/Widget.stories.js.map +1 -1
  580. package/Widget/components/Icon.d.ts +7 -6
  581. package/Widget/components/WidgetAction.d.ts +8 -6
  582. package/Widget/components/WidgetContent.d.ts +5 -5
  583. package/exports/admin/ui.d.ts +3 -0
  584. package/exports/admin/ui.js +3 -0
  585. package/hooks/index.d.ts +1 -0
  586. package/hooks/index.js +1 -0
  587. package/hooks/useEscapeScrollLock.d.ts +13 -0
  588. package/hooks/useEscapeScrollLock.js +21 -0
  589. package/hooks/useEscapeScrollLock.js.map +1 -0
  590. package/index.d.ts +8 -0
  591. package/index.js +8 -0
  592. package/package.json +33 -35
  593. package/theme.css +52 -0
  594. package/utils.js +53 -34
  595. package/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup/primitives/RadioGroupPrimitive.stories.js","sources":["../../../src/RadioGroup/primitives/RadioGroupPrimitive.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-webpack5\";\nimport { RadioGroupPrimitive } from \"./RadioGroupPrimitive.js\";\nimport { Text } from \"~/Text/index.js\";\nimport { Button } from \"~/Button/index.js\";\n\nconst meta: Meta<typeof RadioGroupPrimitive> = {\n title: \"Components/Form Primitives/RadioGroup\",\n component: RadioGroupPrimitive,\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [value, setValue] = useState(args.value);\n return (\n <div className={\"w-full\"}>\n <RadioGroupPrimitive {...args} value={value} onChange={value => setValue(value)} />\n <div className={\"mt-4 text-center\"}>\n Current selected value: <pre>{value}</pre>\n </div>\n </div>\n );\n }\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof RadioGroupPrimitive>;\n\nexport const Default: Story = {\n args: {\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const Disabled: Story = {\n args: {\n ...Default.args,\n value: \"value-2\",\n disabled: true,\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithDefaultOption: Story = {\n args: {\n ...Default.args,\n value: \"value-2\"\n }\n};\n\nexport const WithDisabledOption: Story = {\n args: {\n ...Default.args,\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithDefaultDisabledOption: Story = {\n args: {\n ...Default.args,\n value: \"value-2\",\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithLongOption: Story = {\n args: {\n ...Default.args,\n items: [\n {\n value: \"value-1\",\n label: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer fringilla magna vel massa suscipit mollis. Nunc dui felis, iaculis id tortor ut, hendrerit pulvinar felis.\"\n },\n {\n value: \"value-2\",\n label: \" Pellentesque erat ipsum, posuere dapibus diam id, accumsan sagittis mi. In eu nibh ut nunc ultricies placerat.\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Integer a hendrerit dui. Sed tincidunt vel nibh a finibus.\"\n }\n ]\n }\n};\n\nexport const WithComplexOptions: Story = {\n args: {\n ...Default.args,\n items: [\n {\n id: \"value-1\",\n value: \"value-1\",\n label: (\n <div>\n <div>{\"Value 1\"}</div>\n <Text size={\"sm\"}>{\"Option description 1\"}</Text>\n </div>\n )\n },\n {\n id: \"value-2\",\n value: \"value-2\",\n label: (\n <div>\n <div>{\"Value 2\"}</div>\n <Text size={\"sm\"}>{\"Option description 2\"}</Text>\n </div>\n )\n },\n {\n id: \"value-3\",\n value: \"value-3\",\n label: (\n <div>\n <div>{\"Value 3\"}</div>\n <Text size={\"sm\"}>{\"Option description 3\"}</Text>\n </div>\n )\n }\n ]\n }\n};\n\nexport const WithExternalValueControl: Story = {\n args: {\n value: \"value-2\",\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n },\n render: args => {\n const [value, setValue] = useState(args.value);\n return (\n <div className={\"w-full\"}>\n <div>\n <RadioGroupPrimitive\n {...args}\n value={value}\n onChange={value => setValue(value)}\n />\n </div>\n <div className={\"mt-4 text-center\"}>\n <Button onClick={() => setValue(args.value)} text={\"Reset\"} />\n </div>\n <div className={\"mt-4 text-center\"}>\n Current selected value: <pre>{value}</pre>\n </div>\n </div>\n );\n }\n};\n"],"names":["meta","RadioGroupPrimitive","args","value","setValue","useState","Default","Disabled","WithDefaultOption","WithDisabledOption","WithDefaultDisabledOption","WithLongOption","WithComplexOptions","Text","WithExternalValueControl","Button"],"mappings":"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"}
1
+ {"version":3,"file":"RadioGroup/primitives/RadioGroupPrimitive.stories.js","sources":["../../../src/RadioGroup/primitives/RadioGroupPrimitive.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { RadioGroupPrimitive } from \"./RadioGroupPrimitive.js\";\nimport { Text } from \"~/Text/index.js\";\nimport { Button } from \"~/Button/index.js\";\n\nconst meta: Meta<typeof RadioGroupPrimitive> = {\n title: \"Components/Form Primitives/RadioGroup\",\n component: RadioGroupPrimitive,\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [value, setValue] = useState(args.value);\n return (\n <div className={\"w-full\"}>\n <RadioGroupPrimitive {...args} value={value} onChange={value => setValue(value)} />\n <div className={\"mt-4 text-center\"}>\n Current selected value: <pre>{value}</pre>\n </div>\n </div>\n );\n }\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof RadioGroupPrimitive>;\n\nexport const Default: Story = {\n args: {\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const Disabled: Story = {\n args: {\n ...Default.args,\n value: \"value-2\",\n disabled: true,\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithDefaultOption: Story = {\n args: {\n ...Default.args,\n value: \"value-2\"\n }\n};\n\nexport const WithDisabledOption: Story = {\n args: {\n ...Default.args,\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithDefaultDisabledOption: Story = {\n args: {\n ...Default.args,\n value: \"value-2\",\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n }\n};\n\nexport const WithLongOption: Story = {\n args: {\n ...Default.args,\n items: [\n {\n value: \"value-1\",\n label: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer fringilla magna vel massa suscipit mollis. Nunc dui felis, iaculis id tortor ut, hendrerit pulvinar felis.\"\n },\n {\n value: \"value-2\",\n label: \" Pellentesque erat ipsum, posuere dapibus diam id, accumsan sagittis mi. In eu nibh ut nunc ultricies placerat.\",\n disabled: true\n },\n {\n value: \"value-3\",\n label: \"Integer a hendrerit dui. Sed tincidunt vel nibh a finibus.\"\n }\n ]\n }\n};\n\nexport const WithComplexOptions: Story = {\n args: {\n ...Default.args,\n items: [\n {\n id: \"value-1\",\n value: \"value-1\",\n label: (\n <div>\n <div>{\"Value 1\"}</div>\n <Text size={\"sm\"}>{\"Option description 1\"}</Text>\n </div>\n )\n },\n {\n id: \"value-2\",\n value: \"value-2\",\n label: (\n <div>\n <div>{\"Value 2\"}</div>\n <Text size={\"sm\"}>{\"Option description 2\"}</Text>\n </div>\n )\n },\n {\n id: \"value-3\",\n value: \"value-3\",\n label: (\n <div>\n <div>{\"Value 3\"}</div>\n <Text size={\"sm\"}>{\"Option description 3\"}</Text>\n </div>\n )\n }\n ]\n }\n};\n\nexport const WithExternalValueControl: Story = {\n args: {\n value: \"value-2\",\n items: [\n {\n value: \"value-1\",\n label: \"Value 1\"\n },\n {\n value: \"value-2\",\n label: \"Value 2\"\n },\n {\n value: \"value-3\",\n label: \"Value 3\"\n }\n ]\n },\n render: args => {\n const [value, setValue] = useState(args.value);\n return (\n <div className={\"w-full\"}>\n <div>\n <RadioGroupPrimitive\n {...args}\n value={value}\n onChange={value => setValue(value)}\n />\n </div>\n <div className={\"mt-4 text-center\"}>\n <Button onClick={() => setValue(args.value)} text={\"Reset\"} />\n </div>\n <div className={\"mt-4 text-center\"}>\n Current selected value: <pre>{value}</pre>\n </div>\n </div>\n );\n }\n};\n"],"names":["meta","RadioGroupPrimitive","args","value","setValue","useState","Default","Disabled","WithDefaultOption","WithDisabledOption","WithDefaultDisabledOption","WithLongOption","WithComplexOptions","Text","WithExternalValueControl","Button"],"mappings":"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"}
@@ -5,21 +5,22 @@ type RangeSliderProps = RangeSliderPrimitiveProps & FormComponentProps & {
5
5
  label: React.ReactNode;
6
6
  valueConverter?: (value: number) => string;
7
7
  };
8
- declare const RangeSlider: (({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element) & {
9
- original: ({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element;
8
+ declare const DecoratableRangeSlider: ({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element;
9
+ declare const RangeSlider: typeof DecoratableRangeSlider & {
10
+ original: typeof DecoratableRangeSlider;
10
11
  originalName: string;
11
12
  displayName: string;
12
13
  } & {
13
- original: (({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element) & {
14
- original: ({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element;
14
+ original: typeof DecoratableRangeSlider & {
15
+ original: typeof DecoratableRangeSlider;
15
16
  originalName: string;
16
17
  displayName: string;
17
18
  };
18
19
  originalName: string;
19
20
  displayName: string;
20
21
  } & {
21
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element) & {
22
- original: ({ description, note, hint, validation, ...props }: RangeSliderProps) => React.JSX.Element;
22
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<typeof DecoratableRangeSlider & {
23
+ original: typeof DecoratableRangeSlider;
23
24
  originalName: string;
24
25
  displayName: string;
25
26
  }>) => (props: unknown) => React.JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/react-webpack5";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { RangeSlider } from "./RangeSlider.js";
3
3
  declare const meta: Meta<typeof RangeSlider>;
4
4
  export default meta;
@@ -1 +1 @@
1
- {"version":3,"file":"RangeSlider/RangeSlider.stories.js","sources":["../../src/RangeSlider/RangeSlider.stories.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-webpack5\";\nimport { RangeSlider } from \"./RangeSlider.js\";\n\nconst meta: Meta<typeof RangeSlider> = {\n title: \"Components/Form/RangeSlider\",\n component: RangeSlider,\n argTypes: {\n onValuesChange: { action: \"onValuesChange\" },\n onValuesCommit: { action: \"onValuesCommit\" },\n disabled: {\n control: \"boolean\",\n defaultValue: false\n }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [values, setValues] = useState(args.values);\n return (\n <RangeSlider {...args} values={values} onValuesChange={values => setValues(values)} />\n );\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof RangeSlider>;\n\nexport const Default: Story = {\n args: {\n label: \"Any field label\"\n }\n};\n\nexport const WithLabelRequired: Story = {\n args: {\n ...Default.args,\n required: true\n }\n};\n\nexport const WithDescription: Story = {\n args: {\n description: \"Provide the required information for processing your request.\"\n }\n};\n\nexport const WithNotes: Story = {\n args: {\n note: \"Note: Ensure your selection or input is accurate before proceeding.\"\n }\n};\n\nexport const WithErrors: Story = {\n args: {\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Disabled: Story = {\n args: {\n label: \"Any field label\",\n disabled: true\n }\n};\n\nexport const FullExample: Story = {\n args: {\n ...Default.args,\n label: \"Any field label\",\n required: true,\n description: \"Provide the required information for processing your request.\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Documentation: Story = {\n render: args => {\n const [values, setValues] = useState(args.values || [25, 75]);\n const [validation, setValidation] = useState({ isValid: true, message: \"\" });\n\n // Update values when args.values changes\n useEffect(() => {\n setValues(args.values || [25, 75]);\n }, [args.values]);\n\n const handleChange = (newValues: number[]) => {\n setValues(newValues);\n\n if (args.required && newValues[0] === 0 && newValues[1] === 0) {\n setValidation({ isValid: false, message: \"Please select a range\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n };\n\n // Validate on required change or values change\n useEffect(() => {\n if (args.required && values[0] === 0 && values[1] === 0) {\n setValidation({ isValid: false, message: \"Please select a range\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n }, [args.required, values]);\n\n return (\n <RangeSlider\n {...args}\n values={values}\n onValuesChange={handleChange}\n validation={validation}\n required={args.required}\n showTooltip={args.showTooltip}\n transformValue={args.transformValue}\n />\n );\n },\n args: {\n label: \"Price Range\",\n required: true,\n disabled: false,\n description: \"Select the minimum and maximum price range\",\n note: \"Note: The selected range will filter available products\",\n min: 0,\n max: 100,\n step: 1,\n values: [25, 75],\n showTooltip: true,\n transformValue: (value: number) => `$${value}`,\n validation: undefined\n },\n argTypes: {\n label: {\n description: \"Label text for the range slider\",\n control: \"text\"\n },\n required: {\n description: \"Makes the field required when set to true\",\n control: \"boolean\"\n },\n disabled: {\n description: \"Disables the range slider when set to true\",\n control: \"boolean\"\n },\n description: {\n description: \"Additional description text below the field\",\n control: \"text\"\n },\n note: {\n description: \"Additional note text below the field\",\n control: \"text\"\n },\n min: {\n description: \"Minimum value for the range slider\",\n control: \"number\"\n },\n max: {\n description: \"Maximum value for the range slider\",\n control: \"number\"\n },\n step: {\n description: \"Step increment for the range slider\",\n control: \"number\"\n },\n values: {\n description: \"Current values of the range slider [min, max]\",\n control: \"object\"\n },\n showTooltip: {\n description: \"Whether to show tooltips with the current values\",\n control: \"boolean\",\n defaultValue: true\n },\n transformValue: {\n description:\n \"Function to transform the numeric values to display text. Please refer to the example code for details on usage.\"\n },\n validation: {\n description:\n \"Object containing validation state and message. Please refer to the example code for details on usage.\"\n },\n onValuesChange: {\n description: \"Function called when the range slider values change\"\n },\n onValuesCommit: {\n description: \"Function called when the range slider values are committed (on release)\"\n }\n }\n};\n"],"names":["meta","RangeSlider","args","values","setValues","useState","Default","WithLabelRequired","WithDescription","WithNotes","WithErrors","Disabled","FullExample","Documentation","validation","setValidation","useEffect","handleChange","newValues","value","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"RangeSlider/RangeSlider.stories.js","sources":["../../src/RangeSlider/RangeSlider.stories.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { RangeSlider } from \"./RangeSlider.js\";\n\nconst meta: Meta<typeof RangeSlider> = {\n title: \"Components/Form/RangeSlider\",\n component: RangeSlider,\n argTypes: {\n onValuesChange: { action: \"onValuesChange\" },\n onValuesCommit: { action: \"onValuesCommit\" },\n disabled: {\n control: \"boolean\",\n defaultValue: false\n }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [values, setValues] = useState(args.values);\n return (\n <RangeSlider {...args} values={values} onValuesChange={values => setValues(values)} />\n );\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof RangeSlider>;\n\nexport const Default: Story = {\n args: {\n label: \"Any field label\"\n }\n};\n\nexport const WithLabelRequired: Story = {\n args: {\n ...Default.args,\n required: true\n }\n};\n\nexport const WithDescription: Story = {\n args: {\n description: \"Provide the required information for processing your request.\"\n }\n};\n\nexport const WithNotes: Story = {\n args: {\n note: \"Note: Ensure your selection or input is accurate before proceeding.\"\n }\n};\n\nexport const WithErrors: Story = {\n args: {\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Disabled: Story = {\n args: {\n label: \"Any field label\",\n disabled: true\n }\n};\n\nexport const FullExample: Story = {\n args: {\n ...Default.args,\n label: \"Any field label\",\n required: true,\n description: \"Provide the required information for processing your request.\",\n note: \"Note: Ensure your selection or input is accurate before proceeding.\",\n validation: {\n isValid: false,\n message: \"This field is required.\"\n }\n }\n};\n\nexport const Documentation: Story = {\n render: args => {\n const [values, setValues] = useState(args.values || [25, 75]);\n const [validation, setValidation] = useState({ isValid: true, message: \"\" });\n\n // Update values when args.values changes\n useEffect(() => {\n setValues(args.values || [25, 75]);\n }, [args.values]);\n\n const handleChange = (newValues: number[]) => {\n setValues(newValues);\n\n if (args.required && newValues[0] === 0 && newValues[1] === 0) {\n setValidation({ isValid: false, message: \"Please select a range\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n };\n\n // Validate on required change or values change\n useEffect(() => {\n if (args.required && values[0] === 0 && values[1] === 0) {\n setValidation({ isValid: false, message: \"Please select a range\" });\n } else {\n setValidation({ isValid: true, message: \"\" });\n }\n }, [args.required, values]);\n\n return (\n <RangeSlider\n {...args}\n values={values}\n onValuesChange={handleChange}\n validation={validation}\n required={args.required}\n showTooltip={args.showTooltip}\n transformValue={args.transformValue}\n />\n );\n },\n args: {\n label: \"Price Range\",\n required: true,\n disabled: false,\n description: \"Select the minimum and maximum price range\",\n note: \"Note: The selected range will filter available products\",\n min: 0,\n max: 100,\n step: 1,\n values: [25, 75],\n showTooltip: true,\n transformValue: (value: number) => `$${value}`,\n validation: undefined\n },\n argTypes: {\n label: {\n description: \"Label text for the range slider\",\n control: \"text\"\n },\n required: {\n description: \"Makes the field required when set to true\",\n control: \"boolean\"\n },\n disabled: {\n description: \"Disables the range slider when set to true\",\n control: \"boolean\"\n },\n description: {\n description: \"Additional description text below the field\",\n control: \"text\"\n },\n note: {\n description: \"Additional note text below the field\",\n control: \"text\"\n },\n min: {\n description: \"Minimum value for the range slider\",\n control: \"number\"\n },\n max: {\n description: \"Maximum value for the range slider\",\n control: \"number\"\n },\n step: {\n description: \"Step increment for the range slider\",\n control: \"number\"\n },\n values: {\n description: \"Current values of the range slider [min, max]\",\n control: \"object\"\n },\n showTooltip: {\n description: \"Whether to show tooltips with the current values\",\n control: \"boolean\",\n defaultValue: true\n },\n transformValue: {\n description:\n \"Function to transform the numeric values to display text. Please refer to the example code for details on usage.\"\n },\n validation: {\n description:\n \"Object containing validation state and message. Please refer to the example code for details on usage.\"\n },\n onValuesChange: {\n description: \"Function called when the range slider values change\"\n },\n onValuesCommit: {\n description: \"Function called when the range slider values are committed (on release)\"\n }\n }\n};\n"],"names":["meta","RangeSlider","args","values","setValues","useState","Default","WithLabelRequired","WithDescription","WithNotes","WithErrors","Disabled","FullExample","Documentation","validation","setValidation","useEffect","handleChange","newValues","value","undefined"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/react-webpack5";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { RangeSliderPrimitive } from "./RangeSliderPrimitive.js";
3
3
  declare const meta: Meta<typeof RangeSliderPrimitive>;
4
4
  export default meta;
@@ -1 +1 @@
1
- {"version":3,"file":"RangeSlider/primitives/RangeSliderPrimitive.stories.js","sources":["../../../src/RangeSlider/primitives/RangeSliderPrimitive.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-webpack5\";\nimport { RangeSliderPrimitive } from \"./RangeSliderPrimitive.js\";\nimport { Button } from \"~/Button/index.js\";\n\nconst meta: Meta<typeof RangeSliderPrimitive> = {\n title: \"Components/Form Primitives/RangeSlider\",\n component: RangeSliderPrimitive,\n argTypes: {\n onValuesChange: { action: \"onValuesChange\" },\n onValuesCommit: { action: \"onValuesCommit\" }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [values, setValues] = useState(args.values);\n return (\n <RangeSliderPrimitive\n {...args}\n values={values}\n onValuesChange={values => setValues(values)}\n />\n );\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof RangeSliderPrimitive>;\n\nexport const Default: Story = {};\n\nexport const WithDefaultValues: Story = {\n args: {\n values: [25, 75]\n }\n};\n\nexport const WithMinAndMaxValues: Story = {\n args: {\n min: 25,\n max: 75\n }\n};\n\nexport const WithSteps: Story = {\n args: {\n step: 10\n }\n};\n\nexport const Disabled: Story = {\n args: {\n disabled: true,\n values: [25, 75]\n }\n};\n\nexport const WithTooltip: Story = {\n args: {\n showTooltip: true\n }\n};\n\nexport const WithTooltipSideTop: Story = {\n args: {\n showTooltip: true,\n tooltipSide: \"top\"\n }\n};\n\nexport const WithTooltipAndCustomValueTransformer: Story = {\n args: {\n showTooltip: true,\n transformValue: (value: number) => {\n return `${Math.round(value)}%`;\n }\n }\n};\n\nexport const WithExternalValueControl: Story = {\n args: {\n showTooltip: true,\n transformValue: (value: number) => {\n return `${Math.round(value)}%`;\n }\n },\n render: args => {\n const defaultValues = args.values ?? [25, 75];\n const [values, setValues] = useState(defaultValues);\n return (\n <div className={\"w-full\"}>\n <div>\n <RangeSliderPrimitive\n {...args}\n values={values}\n onValuesChange={values => setValues(values)}\n />\n </div>\n <div className={\"mt-4 text-center\"}>\n <Button text={\"Reset\"} onClick={() => setValues(defaultValues)} />\n </div>\n <div className={\"mt-4 text-center\"}>\n Current value: <code>{values.toString()}</code>\n </div>\n </div>\n );\n }\n};\n"],"names":["meta","RangeSliderPrimitive","args","values","setValues","useState","Default","WithDefaultValues","WithMinAndMaxValues","WithSteps","Disabled","WithTooltip","WithTooltipSideTop","WithTooltipAndCustomValueTransformer","value","Math","WithExternalValueControl","defaultValues","Button"],"mappings":";;;AAKA,MAAMA,OAA0C;IAC5C,OAAO;IACP,WAAWC;IACX,UAAU;QACN,gBAAgB;YAAE,QAAQ;QAAiB;QAC3C,gBAAgB;YAAE,QAAQ;QAAiB;IAC/C;IACA,YAAY;QACR,QAAQ;IACZ;IACA,QAAQC,CAAAA;QACJ,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAASH,KAAK,MAAM;QAChD,OAAO,WAAP,GACI,oBAACD,sBAAoBA;YAChB,GAAGC,IAAI;YACR,QAAQC;YACR,gBAAgBA,CAAAA,SAAUC,UAAUD;;IAGhD;AACJ;AAEA,qCAAeH;AAGR,MAAMM,UAAiB,CAAC;AAExB,MAAMC,oBAA2B;IACpC,MAAM;QACF,QAAQ;YAAC;YAAI;SAAG;IACpB;AACJ;AAEO,MAAMC,sBAA6B;IACtC,MAAM;QACF,KAAK;QACL,KAAK;IACT;AACJ;AAEO,MAAMC,YAAmB;IAC5B,MAAM;QACF,MAAM;IACV;AACJ;AAEO,MAAMC,WAAkB;IAC3B,MAAM;QACF,UAAU;QACV,QAAQ;YAAC;YAAI;SAAG;IACpB;AACJ;AAEO,MAAMC,cAAqB;IAC9B,MAAM;QACF,aAAa;IACjB;AACJ;AAEO,MAAMC,qBAA4B;IACrC,MAAM;QACF,aAAa;QACb,aAAa;IACjB;AACJ;AAEO,MAAMC,uCAA8C;IACvD,MAAM;QACF,aAAa;QACb,gBAAgB,CAACC,QACN,GAAGC,KAAK,KAAK,CAACD,OAAO,CAAC,CAAC;IAEtC;AACJ;AAEO,MAAME,2BAAkC;IAC3C,MAAM;QACF,aAAa;QACb,gBAAgB,CAACF,QACN,GAAGC,KAAK,KAAK,CAACD,OAAO,CAAC,CAAC;IAEtC;IACA,QAAQZ,CAAAA;QACJ,MAAMe,gBAAgBf,KAAK,MAAM,IAAI;YAAC;YAAI;SAAG;QAC7C,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAASY;QACrC,OAAO,WAAP,GACI,oBAAC;YAAI,WAAW;yBACZ,oBAAC,2BACG,oBAAChB,sBAAoBA;YAChB,GAAGC,IAAI;YACR,QAAQC;YACR,gBAAgBA,CAAAA,SAAUC,UAAUD;2BAG5C,oBAAC;YAAI,WAAW;yBACZ,oBAACe,QAAMA;YAAC,MAAM;YAAS,SAAS,IAAMd,UAAUa;2BAEpD,oBAAC;YAAI,WAAW;WAAoB,iCACjB,oBAAC,cAAMd,OAAO,QAAQ;IAIrD;AACJ"}
1
+ {"version":3,"file":"RangeSlider/primitives/RangeSliderPrimitive.stories.js","sources":["../../../src/RangeSlider/primitives/RangeSliderPrimitive.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { RangeSliderPrimitive } from \"./RangeSliderPrimitive.js\";\nimport { Button } from \"~/Button/index.js\";\n\nconst meta: Meta<typeof RangeSliderPrimitive> = {\n title: \"Components/Form Primitives/RangeSlider\",\n component: RangeSliderPrimitive,\n argTypes: {\n onValuesChange: { action: \"onValuesChange\" },\n onValuesCommit: { action: \"onValuesCommit\" }\n },\n parameters: {\n layout: \"padded\"\n },\n render: args => {\n const [values, setValues] = useState(args.values);\n return (\n <RangeSliderPrimitive\n {...args}\n values={values}\n onValuesChange={values => setValues(values)}\n />\n );\n }\n};\n\nexport default meta;\ntype Story = StoryObj<typeof RangeSliderPrimitive>;\n\nexport const Default: Story = {};\n\nexport const WithDefaultValues: Story = {\n args: {\n values: [25, 75]\n }\n};\n\nexport const WithMinAndMaxValues: Story = {\n args: {\n min: 25,\n max: 75\n }\n};\n\nexport const WithSteps: Story = {\n args: {\n step: 10\n }\n};\n\nexport const Disabled: Story = {\n args: {\n disabled: true,\n values: [25, 75]\n }\n};\n\nexport const WithTooltip: Story = {\n args: {\n showTooltip: true\n }\n};\n\nexport const WithTooltipSideTop: Story = {\n args: {\n showTooltip: true,\n tooltipSide: \"top\"\n }\n};\n\nexport const WithTooltipAndCustomValueTransformer: Story = {\n args: {\n showTooltip: true,\n transformValue: (value: number) => {\n return `${Math.round(value)}%`;\n }\n }\n};\n\nexport const WithExternalValueControl: Story = {\n args: {\n showTooltip: true,\n transformValue: (value: number) => {\n return `${Math.round(value)}%`;\n }\n },\n render: args => {\n const defaultValues = args.values ?? [25, 75];\n const [values, setValues] = useState(defaultValues);\n return (\n <div className={\"w-full\"}>\n <div>\n <RangeSliderPrimitive\n {...args}\n values={values}\n onValuesChange={values => setValues(values)}\n />\n </div>\n <div className={\"mt-4 text-center\"}>\n <Button text={\"Reset\"} onClick={() => setValues(defaultValues)} />\n </div>\n <div className={\"mt-4 text-center\"}>\n Current value: <code>{values.toString()}</code>\n </div>\n </div>\n );\n }\n};\n"],"names":["meta","RangeSliderPrimitive","args","values","setValues","useState","Default","WithDefaultValues","WithMinAndMaxValues","WithSteps","Disabled","WithTooltip","WithTooltipSideTop","WithTooltipAndCustomValueTransformer","value","Math","WithExternalValueControl","defaultValues","Button"],"mappings":";;;AAKA,MAAMA,OAA0C;IAC5C,OAAO;IACP,WAAWC;IACX,UAAU;QACN,gBAAgB;YAAE,QAAQ;QAAiB;QAC3C,gBAAgB;YAAE,QAAQ;QAAiB;IAC/C;IACA,YAAY;QACR,QAAQ;IACZ;IACA,QAAQC,CAAAA;QACJ,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAASH,KAAK,MAAM;QAChD,OAAO,WAAP,GACI,oBAACD,sBAAoBA;YAChB,GAAGC,IAAI;YACR,QAAQC;YACR,gBAAgBA,CAAAA,SAAUC,UAAUD;;IAGhD;AACJ;AAEA,qCAAeH;AAGR,MAAMM,UAAiB,CAAC;AAExB,MAAMC,oBAA2B;IACpC,MAAM;QACF,QAAQ;YAAC;YAAI;SAAG;IACpB;AACJ;AAEO,MAAMC,sBAA6B;IACtC,MAAM;QACF,KAAK;QACL,KAAK;IACT;AACJ;AAEO,MAAMC,YAAmB;IAC5B,MAAM;QACF,MAAM;IACV;AACJ;AAEO,MAAMC,WAAkB;IAC3B,MAAM;QACF,UAAU;QACV,QAAQ;YAAC;YAAI;SAAG;IACpB;AACJ;AAEO,MAAMC,cAAqB;IAC9B,MAAM;QACF,aAAa;IACjB;AACJ;AAEO,MAAMC,qBAA4B;IACrC,MAAM;QACF,aAAa;QACb,aAAa;IACjB;AACJ;AAEO,MAAMC,uCAA8C;IACvD,MAAM;QACF,aAAa;QACb,gBAAgB,CAACC,QACN,GAAGC,KAAK,KAAK,CAACD,OAAO,CAAC,CAAC;IAEtC;AACJ;AAEO,MAAME,2BAAkC;IAC3C,MAAM;QACF,aAAa;QACb,gBAAgB,CAACF,QACN,GAAGC,KAAK,KAAK,CAACD,OAAO,CAAC,CAAC;IAEtC;IACA,QAAQZ,CAAAA;QACJ,MAAMe,gBAAgBf,KAAK,MAAM,IAAI;YAAC;YAAI;SAAG;QAC7C,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAASY;QACrC,OAAO,WAAP,GACI,oBAAC;YAAI,WAAW;yBACZ,oBAAC,2BACG,oBAAChB,sBAAoBA;YAChB,GAAGC,IAAI;YACR,QAAQC;YACR,gBAAgBA,CAAAA,SAAUC,UAAUD;2BAG5C,oBAAC;YAAI,WAAW;yBACZ,oBAACe,QAAMA;YAAC,MAAM;YAAS,SAAS,IAAMd,UAAUa;2BAEpD,oBAAC;YAAI,WAAW;WAAoB,iCACjB,oBAAC,cAAMd,OAAO,QAAQ;IAIrD;AACJ"}
@@ -13,7 +13,21 @@ export interface ScrollPosition {
13
13
  interface ScrollAreaProps extends Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, "onScroll"> {
14
14
  onScrollPositionChange?: (position: ScrollPosition) => void;
15
15
  onScroll?: (position: ScrollPosition) => void;
16
+ /**
17
+ * Classes for the scrolling element itself. Put the height limit here when the area has to grow
18
+ * with its content up to a maximum, instead of filling a parent of a known height.
19
+ */
20
+ viewportClassName?: string;
21
+ /**
22
+ * Native scroll handler for the scrolling element, for callers that need the event itself.
23
+ * `onScroll` reports positions instead.
24
+ */
25
+ onViewportScroll?: React.UIEventHandler<HTMLDivElement>;
26
+ /**
27
+ * Ref to the scrolling element, for callers that scroll it themselves.
28
+ */
29
+ viewportRef?: React.Ref<HTMLDivElement>;
16
30
  }
17
- declare function ScrollArea({ className, children, onScrollPositionChange, onScroll, ...props }: ScrollAreaProps): React.JSX.Element;
18
- declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): React.JSX.Element;
31
+ declare function ScrollArea({ className, children, onScrollPositionChange, onScroll, viewportClassName, onViewportScroll, viewportRef: externalViewportRef, type, ...props }: ScrollAreaProps): React.JSX.Element;
32
+ declare function ScrollBar({ className, orientation, onMouseDown, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): React.JSX.Element;
19
33
  export { ScrollArea, ScrollBar };
@@ -1,8 +1,15 @@
1
1
  import { cn } from "../utils.js";
2
2
  import * as __rspack_external_react from "react";
3
- import * as __rspack_external__radix_ui_react_scroll_area_93228e9e from "@radix-ui/react-scroll-area";
4
- function ScrollArea({ className, children, onScrollPositionChange, onScroll, ...props }) {
3
+ import * as __rspack_external__radix_ui_react_scroll_area_bdec1136 from "@radix-ui/react-scroll-area";
4
+ function ScrollArea({ className, children, onScrollPositionChange, onScroll, viewportClassName, onViewportScroll, viewportRef: externalViewportRef, type = "auto", ...props }) {
5
5
  const viewportRef = __rspack_external_react.useRef(null);
6
+ const setViewportRef = __rspack_external_react.useCallback((element)=>{
7
+ viewportRef.current = element;
8
+ if ("function" == typeof externalViewportRef) externalViewportRef(element);
9
+ else if (externalViewportRef) externalViewportRef.current = element;
10
+ }, [
11
+ externalViewportRef
12
+ ]);
6
13
  __rspack_external_react.useEffect(()=>{
7
14
  const viewport = viewportRef.current;
8
15
  if (!viewport || !onScrollPositionChange && !onScroll) return;
@@ -28,23 +35,30 @@ function ScrollArea({ className, children, onScrollPositionChange, onScroll, ...
28
35
  onScrollPositionChange,
29
36
  onScroll
30
37
  ]);
31
- return /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_93228e9e.Root, {
38
+ return /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_bdec1136.Root, {
32
39
  "data-slot": "scroll-area",
40
+ type: type,
33
41
  className: cn("relative", className),
34
42
  ...props
35
- }, /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_93228e9e.Viewport, {
36
- ref: viewportRef,
43
+ }, /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_bdec1136.Viewport, {
44
+ ref: setViewportRef,
37
45
  "data-slot": "scroll-area-viewport",
38
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
39
- }, children), /*#__PURE__*/ __rspack_external_react.createElement(ScrollBar, null), /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_93228e9e.Corner, null));
46
+ onScroll: onViewportScroll,
47
+ className: cn("focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1", viewportClassName)
48
+ }, children), /*#__PURE__*/ __rspack_external_react.createElement(ScrollBar, null), /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_bdec1136.Corner, null));
40
49
  }
41
- function ScrollBar({ className, orientation = "vertical", ...props }) {
42
- return /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_93228e9e.ScrollAreaScrollbar, {
50
+ function ScrollBar({ className, orientation = "vertical", onMouseDown, ...props }) {
51
+ const handleMouseDown = (event)=>{
52
+ onMouseDown?.(event);
53
+ event.preventDefault();
54
+ };
55
+ return /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_bdec1136.ScrollAreaScrollbar, {
43
56
  "data-slot": "scroll-area-scrollbar",
44
57
  orientation: orientation,
45
- className: cn("flex touch-none transition-colors select-none", "vertical" === orientation && "h-full w-[8px] border-l border-l-transparent", "horizontal" === orientation && "h-[8px] flex-col border-t border-t-transparent", className),
58
+ onMouseDown: handleMouseDown,
59
+ className: cn("flex touch-none transition-colors select-none", "vertical" === orientation && "h-full w-[10px] p-[2px]", "horizontal" === orientation && "h-[10px] flex-col p-[2px]", className),
46
60
  ...props
47
- }, /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_93228e9e.ScrollAreaThumb, {
61
+ }, /*#__PURE__*/ __rspack_external_react.createElement(__rspack_external__radix_ui_react_scroll_area_bdec1136.ScrollAreaThumb, {
48
62
  "data-slot": "scroll-area-thumb",
49
63
  className: "bg-neutral-strong/70 relative flex-1 rounded-full"
50
64
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea/ScrollArea.js","sources":["../../src/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { cn } from \"~/utils.js\";\n\nexport interface ScrollPosition {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n scrollHeight: number;\n scrollWidth: number;\n clientHeight: number;\n clientWidth: number;\n}\n\ninterface ScrollAreaProps extends Omit<\n React.ComponentProps<typeof ScrollAreaPrimitive.Root>,\n \"onScroll\"\n> {\n onScrollPositionChange?: (position: ScrollPosition) => void;\n onScroll?: (position: ScrollPosition) => void;\n}\n\nfunction ScrollArea({\n className,\n children,\n onScrollPositionChange,\n onScroll,\n ...props\n}: ScrollAreaProps) {\n const viewportRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport || (!onScrollPositionChange && !onScroll)) {\n return;\n }\n\n // The Viewport component itself is the scrollable element.\n const handleScroll = () => {\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth } =\n viewport;\n\n const position: ScrollPosition = {\n top: scrollHeight > clientHeight ? scrollTop / (scrollHeight - clientHeight) : 0,\n left: scrollWidth > clientWidth ? scrollLeft / (scrollWidth - clientWidth) : 0,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth\n };\n\n onScrollPositionChange?.(position);\n onScroll?.(position);\n };\n\n // Call handleScroll initially to provide initial position.\n handleScroll();\n\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }, [onScrollPositionChange, onScroll]);\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n ref={viewportRef}\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none transition-colors select-none\",\n orientation === \"vertical\" && \"h-full w-[8px] border-l border-l-transparent\",\n orientation === \"horizontal\" && \"h-[8px] flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-neutral-strong/70 relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","onScrollPositionChange","onScroll","props","viewportRef","React","viewport","handleScroll","scrollTop","scrollLeft","scrollHeight","scrollWidth","clientHeight","clientWidth","position","ScrollAreaPrimitive","cn","ScrollBar","orientation"],"mappings":";;;AAuBA,SAASA,WAAW,EAChBC,SAAS,EACTC,QAAQ,EACRC,sBAAsB,EACtBC,QAAQ,EACR,GAAGC,OACW;IACd,MAAMC,cAAcC,wBAAAA,MAAY,CAAiB;IAEjDA,wBAAAA,SAAe,CAAC;QACZ,MAAMC,WAAWF,YAAY,OAAO;QACpC,IAAI,CAACE,YAAa,CAACL,0BAA0B,CAACC,UAC1C;QAIJ,MAAMK,eAAe;YACjB,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,YAAY,EAAEC,WAAW,EAAEC,YAAY,EAAEC,WAAW,EAAE,GACjFP;YAEJ,MAAMQ,WAA2B;gBAC7B,KAAKJ,eAAeE,eAAeJ,YAAaE,CAAAA,eAAeE,YAAW,IAAK;gBAC/E,MAAMD,cAAcE,cAAcJ,aAAcE,CAAAA,cAAcE,WAAU,IAAK;gBAC7EL;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACJ;YAEAZ,yBAAyBa;YACzBZ,WAAWY;QACf;QAGAP;QAEAD,SAAS,gBAAgB,CAAC,UAAUC;QACpC,OAAO,IAAMD,SAAS,mBAAmB,CAAC,UAAUC;IACxD,GAAG;QAACN;QAAwBC;KAAS;IAErC,OAAO,WAAP,GACI,sCAACa,uDAAAA,IAAwB;QACrB,aAAU;QACV,WAAWC,GAAG,YAAYjB;QACzB,GAAGI,KAAK;qBAET,sCAACY,uDAAAA,QAA4B;QACzB,KAAKX;QACL,aAAU;QACV,WAAU;OAETJ,WAAAA,WAAAA,GAEL,sCAACiB,WAASA,OAAAA,WAAAA,GACV,sCAACF,uDAAAA,MAA0B;AAGvC;AAEA,SAASE,UAAU,EACflB,SAAS,EACTmB,cAAc,UAAU,EACxB,GAAGf,OACgE;IACnE,OAAO,WAAP,GACI,sCAACY,uDAAAA,mBAAuC;QACpC,aAAU;QACV,aAAaG;QACb,WAAWF,GACP,iDACAE,AAAgB,eAAhBA,eAA8B,gDAC9BA,AAAgB,iBAAhBA,eAAgC,kDAChCnB;QAEH,GAAGI,KAAK;qBAET,sCAACY,uDAAAA,eAAmC;QAChC,aAAU;QACV,WAAU;;AAI1B"}
1
+ {"version":3,"file":"ScrollArea/ScrollArea.js","sources":["../../src/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { cn } from \"~/utils.js\";\n\nexport interface ScrollPosition {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n scrollHeight: number;\n scrollWidth: number;\n clientHeight: number;\n clientWidth: number;\n}\n\ninterface ScrollAreaProps extends Omit<\n React.ComponentProps<typeof ScrollAreaPrimitive.Root>,\n \"onScroll\"\n> {\n onScrollPositionChange?: (position: ScrollPosition) => void;\n onScroll?: (position: ScrollPosition) => void;\n /**\n * Classes for the scrolling element itself. Put the height limit here when the area has to grow\n * with its content up to a maximum, instead of filling a parent of a known height.\n */\n viewportClassName?: string;\n /**\n * Native scroll handler for the scrolling element, for callers that need the event itself.\n * `onScroll` reports positions instead.\n */\n onViewportScroll?: React.UIEventHandler<HTMLDivElement>;\n /**\n * Ref to the scrolling element, for callers that scroll it themselves.\n */\n viewportRef?: React.Ref<HTMLDivElement>;\n}\n\nfunction ScrollArea({\n className,\n children,\n onScrollPositionChange,\n onScroll,\n viewportClassName,\n onViewportScroll,\n viewportRef: externalViewportRef,\n /*\n * Radix would only show the scrollbar once the pointer is inside. Showing it whenever there is\n * more content is the same rule the rest of the admin follows, a Select included.\n */\n type = \"auto\",\n ...props\n}: ScrollAreaProps) {\n const viewportRef = React.useRef<HTMLDivElement | null>(null);\n\n // The internal ref drives the scroll listener below; a caller's ref gets the same element.\n const setViewportRef = React.useCallback(\n (element: HTMLDivElement | null) => {\n viewportRef.current = element;\n if (typeof externalViewportRef === \"function\") {\n externalViewportRef(element);\n } else if (externalViewportRef) {\n (externalViewportRef as React.MutableRefObject<HTMLDivElement | null>).current =\n element;\n }\n },\n [externalViewportRef]\n );\n\n React.useEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport || (!onScrollPositionChange && !onScroll)) {\n return;\n }\n\n // The Viewport component itself is the scrollable element.\n const handleScroll = () => {\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth } =\n viewport;\n\n const position: ScrollPosition = {\n top: scrollHeight > clientHeight ? scrollTop / (scrollHeight - clientHeight) : 0,\n left: scrollWidth > clientWidth ? scrollLeft / (scrollWidth - clientWidth) : 0,\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth\n };\n\n onScrollPositionChange?.(position);\n onScroll?.(position);\n };\n\n // Call handleScroll initially to provide initial position.\n handleScroll();\n\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }, [onScrollPositionChange, onScroll]);\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n type={type}\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setViewportRef}\n data-slot=\"scroll-area-viewport\"\n onScroll={onViewportScroll}\n className={cn(\n \"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\",\n viewportClassName\n )}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n onMouseDown,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n const handleMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseDown?.(event);\n\n /*\n * Grabbing a scrollbar must not move focus. An autocomplete closes its list the moment its\n * input blurs, so without this, dragging the thumb dismisses the list under the pointer.\n */\n event.preventDefault();\n };\n\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n onMouseDown={handleMouseDown}\n className={cn(\n \"flex touch-none transition-colors select-none\",\n orientation === \"vertical\" && \"h-full w-[10px] p-[2px]\",\n orientation === \"horizontal\" && \"h-[10px] flex-col p-[2px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-neutral-strong/70 relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","className","children","onScrollPositionChange","onScroll","viewportClassName","onViewportScroll","externalViewportRef","type","props","viewportRef","React","setViewportRef","element","viewport","handleScroll","scrollTop","scrollLeft","scrollHeight","scrollWidth","clientHeight","clientWidth","position","ScrollAreaPrimitive","cn","ScrollBar","orientation","onMouseDown","handleMouseDown","event"],"mappings":";;;AAqCA,SAASA,WAAW,EAChBC,SAAS,EACTC,QAAQ,EACRC,sBAAsB,EACtBC,QAAQ,EACRC,iBAAiB,EACjBC,gBAAgB,EAChB,aAAaC,mBAAmB,EAKhCC,OAAO,MAAM,EACb,GAAGC,OACW;IACd,MAAMC,cAAcC,wBAAAA,MAAY,CAAwB;IAGxD,MAAMC,iBAAiBD,wBAAAA,WAAiB,CACpC,CAACE;QACGH,YAAY,OAAO,GAAGG;QACtB,IAAI,AAA+B,cAA/B,OAAON,qBACPA,oBAAoBM;aACjB,IAAIN,qBACNA,oBAAsE,OAAO,GAC1EM;IAEZ,GACA;QAACN;KAAoB;IAGzBI,wBAAAA,SAAe,CAAC;QACZ,MAAMG,WAAWJ,YAAY,OAAO;QACpC,IAAI,CAACI,YAAa,CAACX,0BAA0B,CAACC,UAC1C;QAIJ,MAAMW,eAAe;YACjB,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,YAAY,EAAEC,WAAW,EAAEC,YAAY,EAAEC,WAAW,EAAE,GACjFP;YAEJ,MAAMQ,WAA2B;gBAC7B,KAAKJ,eAAeE,eAAeJ,YAAaE,CAAAA,eAAeE,YAAW,IAAK;gBAC/E,MAAMD,cAAcE,cAAcJ,aAAcE,CAAAA,cAAcE,WAAU,IAAK;gBAC7EL;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACJ;YAEAlB,yBAAyBmB;YACzBlB,WAAWkB;QACf;QAGAP;QAEAD,SAAS,gBAAgB,CAAC,UAAUC;QACpC,OAAO,IAAMD,SAAS,mBAAmB,CAAC,UAAUC;IACxD,GAAG;QAACZ;QAAwBC;KAAS;IAErC,OAAO,WAAP,GACI,sCAACmB,uDAAAA,IAAwB;QACrB,aAAU;QACV,MAAMf;QACN,WAAWgB,GAAG,YAAYvB;QACzB,GAAGQ,KAAK;qBAET,sCAACc,uDAAAA,QAA4B;QACzB,KAAKX;QACL,aAAU;QACV,UAAUN;QACV,WAAWkB,GACP,sJACAnB;OAGHH,WAAAA,WAAAA,GAEL,sCAACuB,WAASA,OAAAA,WAAAA,GACV,sCAACF,uDAAAA,MAA0B;AAGvC;AAEA,SAASE,UAAU,EACfxB,SAAS,EACTyB,cAAc,UAAU,EACxBC,WAAW,EACX,GAAGlB,OACgE;IACnE,MAAMmB,kBAAkB,CAACC;QACrBF,cAAcE;QAMdA,MAAM,cAAc;IACxB;IAEA,OAAO,WAAP,GACI,sCAACN,uDAAAA,mBAAuC;QACpC,aAAU;QACV,aAAaG;QACb,aAAaE;QACb,WAAWJ,GACP,iDACAE,AAAgB,eAAhBA,eAA8B,2BAC9BA,AAAgB,iBAAhBA,eAAgC,6BAChCzB;QAEH,GAAGQ,KAAK;qBAET,sCAACc,uDAAAA,eAAmC;QAChC,aAAU;QACV,WAAU;;AAI1B"}
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/react-webpack5";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { ScrollArea } from "./ScrollArea.js";
3
3
  declare const meta: Meta<typeof ScrollArea>;
4
4
  export default meta;
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea/ScrollArea.stories.js","sources":["../../src/ScrollArea/ScrollArea.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-webpack5\";\nimport { ScrollArea, ScrollBar, ScrollPosition } from \"./ScrollArea.js\";\nimport React from \"react\";\nimport { Heading } from \"~/Heading/index.js\";\nimport { Text } from \"~/Text/index.js\";\nimport { Separator } from \"~/Separator/index.js\";\n\nconst meta: Meta<typeof ScrollArea> = {\n title: \"Components/ScrollArea\",\n component: ScrollArea,\n argTypes: {},\n decorators: [\n Story => (\n <div className=\"w-[700px]\">\n <Story />\n </div>\n )\n ]\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof ScrollArea>;\n\nconst tags = Array.from({ length: 50 }).map((_, i, a) => `v1.2.0-beta.${a.length - i}`);\n\nexport const Default: Story = {\n render: () => {\n return (\n <ScrollArea className=\"h-72 w-48 rounded-md border border-neutral-dimmed\">\n <div className=\"p-4\">\n <Heading level={6} className=\"mb-4\">\n Tags\n </Heading>\n {tags.map(tag => (\n <div key={tag}>\n <Text className=\"text-sm\">{tag}</Text>\n <Separator className=\"my-2\" />\n </div>\n ))}\n </div>\n </ScrollArea>\n );\n }\n};\n\nexport const HorizontalScrolling: Story = {\n render: () => {\n const works = [\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n },\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n },\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n }\n ];\n\n return (\n <ScrollArea className=\"w-96 whitespace-nowrap rounded-md border border-neutral-dimmed\">\n <div className=\"flex w-max space-x-4 p-4\">\n {works.map(artwork => (\n <figure key={artwork.artist} className=\"shrink-0\">\n <div className=\"overflow-hidden rounded-md\">\n <img\n src={artwork.art}\n alt={`Photo by ${artwork.artist}`}\n className=\"aspect-[3/4] h-fit w-fit object-cover\"\n width={300}\n height={400}\n />\n </div>\n <figcaption className=\"pt-2 text-xs text-neutral-strong\">\n Photo by{\" \"}\n <span className=\"font-semibold text-neutral-primary\">\n {artwork.artist}\n </span>\n </figcaption>\n </figure>\n ))}\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n }\n};\n\nexport const WithScrollPositionTracking: Story = {\n render: () => {\n const [position, setPosition] = React.useState<ScrollPosition | null>(null);\n const [loadMoreTriggered, setLoadMoreTriggered] = React.useState(false);\n\n const handleScrollPositionChange = React.useCallback(\n (pos: ScrollPosition) => {\n setPosition(pos);\n\n // Trigger load more when scrolled 90% down.\n if (pos.top >= 0.9 && !loadMoreTriggered) {\n setLoadMoreTriggered(true);\n console.log(\"Load more triggered at position:\", pos);\n } else if (pos.top < 0.9) {\n setLoadMoreTriggered(false);\n }\n },\n [loadMoreTriggered]\n );\n\n return (\n <div className=\"space-y-4\">\n <ScrollArea\n className=\"h-72 w-48 rounded-md border border-neutral-dimmed\"\n onScrollPositionChange={handleScrollPositionChange}\n >\n <div className=\"p-4\">\n <Heading level={6} className=\"mb-4\">\n Tags\n </Heading>\n {tags.map(tag => (\n <div key={tag}>\n <Text className=\"text-sm\">{tag}</Text>\n <Separator className=\"my-2\" />\n </div>\n ))}\n </div>\n </ScrollArea>\n\n {position && (\n <div className=\"rounded-md border border-neutral-dimmed p-4 space-y-2\">\n <Text className=\"font-semibold\">Scroll Position:</Text>\n <Text className=\"text-sm\">Top: {(position.top * 100).toFixed(1)}%</Text>\n <Text className=\"text-sm\">ScrollTop: {position.scrollTop}px</Text>\n <Text className=\"text-sm\">\n Load More Triggered: {loadMoreTriggered ? \"Yes\" : \"No\"}\n </Text>\n </div>\n )}\n </div>\n );\n }\n};\n"],"names":["meta","ScrollArea","Story","tags","Array","_","i","a","Default","Heading","tag","Text","Separator","HorizontalScrolling","works","artwork","ScrollBar","WithScrollPositionTracking","position","setPosition","React","loadMoreTriggered","setLoadMoreTriggered","handleScrollPositionChange","pos","console"],"mappings":"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"}
1
+ {"version":3,"file":"ScrollArea/ScrollArea.stories.js","sources":["../../src/ScrollArea/ScrollArea.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { ScrollArea, ScrollBar, ScrollPosition } from \"./ScrollArea.js\";\nimport React from \"react\";\nimport { Heading } from \"~/Heading/index.js\";\nimport { Text } from \"~/Text/index.js\";\nimport { Separator } from \"~/Separator/index.js\";\n\nconst meta: Meta<typeof ScrollArea> = {\n title: \"Components/ScrollArea\",\n component: ScrollArea,\n argTypes: {},\n decorators: [\n Story => (\n <div className=\"w-[700px]\">\n <Story />\n </div>\n )\n ]\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof ScrollArea>;\n\nconst tags = Array.from({ length: 50 }).map((_, i, a) => `v1.2.0-beta.${a.length - i}`);\n\nexport const Default: Story = {\n render: () => {\n return (\n <ScrollArea className=\"h-72 w-48 rounded-md border border-neutral-dimmed\">\n <div className=\"p-4\">\n <Heading level={6} className=\"mb-4\">\n Tags\n </Heading>\n {tags.map(tag => (\n <div key={tag}>\n <Text className=\"text-sm\">{tag}</Text>\n <Separator className=\"my-2\" />\n </div>\n ))}\n </div>\n </ScrollArea>\n );\n }\n};\n\nexport const HorizontalScrolling: Story = {\n render: () => {\n const works = [\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n },\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n },\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\"\n }\n ];\n\n return (\n <ScrollArea className=\"w-96 whitespace-nowrap rounded-md border border-neutral-dimmed\">\n <div className=\"flex w-max space-x-4 p-4\">\n {works.map(artwork => (\n <figure key={artwork.artist} className=\"shrink-0\">\n <div className=\"overflow-hidden rounded-md\">\n <img\n src={artwork.art}\n alt={`Photo by ${artwork.artist}`}\n className=\"aspect-[3/4] h-fit w-fit object-cover\"\n width={300}\n height={400}\n />\n </div>\n <figcaption className=\"pt-2 text-xs text-neutral-strong\">\n Photo by{\" \"}\n <span className=\"font-semibold text-neutral-primary\">\n {artwork.artist}\n </span>\n </figcaption>\n </figure>\n ))}\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n }\n};\n\nexport const WithScrollPositionTracking: Story = {\n render: () => {\n const [position, setPosition] = React.useState<ScrollPosition | null>(null);\n const [loadMoreTriggered, setLoadMoreTriggered] = React.useState(false);\n\n const handleScrollPositionChange = React.useCallback(\n (pos: ScrollPosition) => {\n setPosition(pos);\n\n // Trigger load more when scrolled 90% down.\n if (pos.top >= 0.9 && !loadMoreTriggered) {\n setLoadMoreTriggered(true);\n console.log(\"Load more triggered at position:\", pos);\n } else if (pos.top < 0.9) {\n setLoadMoreTriggered(false);\n }\n },\n [loadMoreTriggered]\n );\n\n return (\n <div className=\"space-y-4\">\n <ScrollArea\n className=\"h-72 w-48 rounded-md border border-neutral-dimmed\"\n onScrollPositionChange={handleScrollPositionChange}\n >\n <div className=\"p-4\">\n <Heading level={6} className=\"mb-4\">\n Tags\n </Heading>\n {tags.map(tag => (\n <div key={tag}>\n <Text className=\"text-sm\">{tag}</Text>\n <Separator className=\"my-2\" />\n </div>\n ))}\n </div>\n </ScrollArea>\n\n {position && (\n <div className=\"rounded-md border border-neutral-dimmed p-4 space-y-2\">\n <Text className=\"font-semibold\">Scroll Position:</Text>\n <Text className=\"text-sm\">Top: {(position.top * 100).toFixed(1)}%</Text>\n <Text className=\"text-sm\">ScrollTop: {position.scrollTop}px</Text>\n <Text className=\"text-sm\">\n Load More Triggered: {loadMoreTriggered ? \"Yes\" : \"No\"}\n </Text>\n </div>\n )}\n </div>\n );\n }\n};\n"],"names":["meta","ScrollArea","Story","tags","Array","_","i","a","Default","Heading","tag","Text","Separator","HorizontalScrolling","works","artwork","ScrollBar","WithScrollPositionTracking","position","setPosition","React","loadMoreTriggered","setLoadMoreTriggered","handleScrollPositionChange","pos","console"],"mappings":"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"}
@@ -2,23 +2,28 @@ import React from "react";
2
2
  import type { SegmentedControlPrimitiveProps } from "./primitives/index.js";
3
3
  import type { FormComponentProps } from "../FormComponent/index.js";
4
4
  type SegmentedControlProps = SegmentedControlPrimitiveProps & FormComponentProps;
5
- declare const SegmentedControl: (({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element) & {
6
- original: ({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element;
5
+ declare const DecoratableSegmentedControl: ({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element;
6
+ declare const SegmentedControl: typeof DecoratableSegmentedControl & {
7
+ original: typeof DecoratableSegmentedControl;
7
8
  originalName: string;
8
9
  displayName: string;
9
10
  } & {
10
- original: (({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element) & {
11
- original: ({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element;
11
+ original: typeof DecoratableSegmentedControl & {
12
+ original: typeof DecoratableSegmentedControl;
12
13
  originalName: string;
13
14
  displayName: string;
14
15
  };
15
16
  originalName: string;
16
17
  displayName: string;
17
18
  } & {
18
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element) & {
19
- original: ({ label, description, note, hint, required, disabled, validation, ...props }: SegmentedControlProps) => React.JSX.Element;
19
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<typeof DecoratableSegmentedControl & {
20
+ original: typeof DecoratableSegmentedControl;
20
21
  originalName: string;
21
22
  displayName: string;
22
23
  }>) => (props: unknown) => React.JSX.Element;
24
+ } & {
25
+ Tabs: (({ children, variant, defaultValue, className }: import("./SegmentedControlTabs.js").SegmentedControlTabsProps) => React.JSX.Element) & {
26
+ Tab: typeof import("./SegmentedControlTab.js").SegmentedControlTab;
27
+ };
23
28
  };
24
29
  export { SegmentedControl, type SegmentedControlProps };
@@ -1,5 +1,6 @@
1
1
  import react, { useMemo } from "react";
2
- import { makeDecoratable } from "../utils.js";
2
+ import { makeDecoratable, withStaticProps } from "../utils.js";
3
+ import { SegmentedControlTabs } from "./SegmentedControlTabs.js";
3
4
  import { SegmentedControlPrimitive } from "./primitives/index.js";
4
5
  import { FormComponentDescription, FormComponentErrorMessage, FormComponentLabel, FormComponentNote } from "../FormComponent/index.js";
5
6
  const DecoratableSegmentedControl = ({ label, description, note, hint, required, disabled, validation, ...props })=>{
@@ -32,7 +33,10 @@ const DecoratableSegmentedControl = ({ label, description, note, hint, required,
32
33
  disabled: disabled
33
34
  }));
34
35
  };
35
- const SegmentedControl = makeDecoratable("SegmentedControl", DecoratableSegmentedControl);
36
+ const BaseSegmentedControl = makeDecoratable("SegmentedControl", DecoratableSegmentedControl);
37
+ const SegmentedControl = withStaticProps(BaseSegmentedControl, {
38
+ Tabs: SegmentedControlTabs
39
+ });
36
40
  export { SegmentedControl };
37
41
 
38
42
  //# sourceMappingURL=SegmentedControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl/SegmentedControl.js","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { SegmentedControlPrimitiveProps } from \"./primitives/index.js\";\nimport { SegmentedControlPrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype SegmentedControlProps = SegmentedControlPrimitiveProps & FormComponentProps;\n\nconst DecoratableSegmentedControl = ({\n label,\n description,\n note,\n hint,\n required,\n disabled,\n validation,\n ...props\n}: SegmentedControlProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className=\"w-full\">\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className=\"mb-xs-plus\"\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className=\"mt-none mb-xs-plus\"\n />\n <SegmentedControlPrimitive {...props} disabled={disabled} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\n\nconst SegmentedControl = makeDecoratable(\"SegmentedControl\", DecoratableSegmentedControl);\n\nexport { SegmentedControl, type SegmentedControlProps };\n"],"names":["DecoratableSegmentedControl","label","description","note","hint","required","disabled","validation","props","validationIsValid","validationMessage","invalid","useMemo","FormComponentLabel","FormComponentDescription","FormComponentErrorMessage","SegmentedControlPrimitive","FormComponentNote","SegmentedControl","makeDecoratable"],"mappings":";;;;AAcA,MAAMA,8BAA8B,CAAC,EACjCC,KAAK,EACLC,WAAW,EACXC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACV,GAAGC,OACiB;IACpB,MAAM,EAAE,SAASC,iBAAiB,EAAE,SAASC,iBAAiB,EAAE,GAAGH,cAAc,CAAC;IAClF,MAAMI,UAAUC,QAAQ,IAAMH,AAAsB,UAAtBA,mBAA6B;QAACA;KAAkB;IAE9E,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACI,oBAAkBA;QACf,MAAMZ;QACN,MAAMG;QACN,UAAUC;QACV,UAAUC;QACV,SAASK;sBAEb,oBAACG,0BAAwBA;QACrB,MAAMZ;QACN,UAAUI;QACV,WAAU;sBAEd,oBAACS,2BAAyBA;QACtB,MAAML;QACN,SAASC;QACT,UAAUL;QACV,WAAU;sBAEd,oBAACU,2BAAyBA;QAAE,GAAGR,KAAK;QAAE,UAAUF;sBAChD,oBAACW,mBAAiBA;QAAC,MAAMd;QAAM,UAAUG;;AAGrD;AAEA,MAAMY,mBAAmBC,gBAAgB,oBAAoBnB"}
1
+ {"version":3,"file":"SegmentedControl/SegmentedControl.js","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable, withStaticProps } from \"~/utils.js\";\nimport { SegmentedControlTabs } from \"./SegmentedControlTabs.js\";\nimport type { SegmentedControlPrimitiveProps } from \"./primitives/index.js\";\nimport { SegmentedControlPrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype SegmentedControlProps = SegmentedControlPrimitiveProps & FormComponentProps;\n\nconst DecoratableSegmentedControl = ({\n label,\n description,\n note,\n hint,\n required,\n disabled,\n validation,\n ...props\n}: SegmentedControlProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className=\"w-full\">\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className=\"mb-xs-plus\"\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className=\"mt-none mb-xs-plus\"\n />\n <SegmentedControlPrimitive {...props} disabled={disabled} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\n\nconst BaseSegmentedControl = makeDecoratable(\"SegmentedControl\", DecoratableSegmentedControl);\n\nconst SegmentedControl = withStaticProps(BaseSegmentedControl, {\n Tabs: SegmentedControlTabs\n});\n\nexport { SegmentedControl, type SegmentedControlProps };\n"],"names":["DecoratableSegmentedControl","label","description","note","hint","required","disabled","validation","props","validationIsValid","validationMessage","invalid","useMemo","FormComponentLabel","FormComponentDescription","FormComponentErrorMessage","SegmentedControlPrimitive","FormComponentNote","BaseSegmentedControl","makeDecoratable","SegmentedControl","withStaticProps","SegmentedControlTabs"],"mappings":";;;;;AAeA,MAAMA,8BAA8B,CAAC,EACjCC,KAAK,EACLC,WAAW,EACXC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACV,GAAGC,OACiB;IACpB,MAAM,EAAE,SAASC,iBAAiB,EAAE,SAASC,iBAAiB,EAAE,GAAGH,cAAc,CAAC;IAClF,MAAMI,UAAUC,QAAQ,IAAMH,AAAsB,UAAtBA,mBAA6B;QAACA;KAAkB;IAE9E,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACI,oBAAkBA;QACf,MAAMZ;QACN,MAAMG;QACN,UAAUC;QACV,UAAUC;QACV,SAASK;sBAEb,oBAACG,0BAAwBA;QACrB,MAAMZ;QACN,UAAUI;QACV,WAAU;sBAEd,oBAACS,2BAAyBA;QACtB,MAAML;QACN,SAASC;QACT,UAAUL;QACV,WAAU;sBAEd,oBAACU,2BAAyBA;QAAE,GAAGR,KAAK;QAAE,UAAUF;sBAChD,oBAACW,mBAAiBA;QAAC,MAAMd;QAAM,UAAUG;;AAGrD;AAEA,MAAMY,uBAAuBC,gBAAgB,oBAAoBnB;AAEjE,MAAMoB,mBAAmBC,gBAAgBH,sBAAsB;IAC3D,MAAMI;AACV"}
@@ -1,4 +1,4 @@
1
- import type { Meta, StoryObj } from "@storybook/react-webpack5";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { SegmentedControl } from "./SegmentedControl.js";
3
3
  declare const meta: Meta<typeof SegmentedControl>;
4
4
  export default meta;
@@ -8,4 +8,8 @@ export declare const VariantLight: Story;
8
8
  export declare const VariantDimmed: Story;
9
9
  export declare const VariantGhost: Story;
10
10
  export declare const WithFormComponent: Story;
11
+ export declare const FullWidth: Story;
11
12
  export declare const Disabled: Story;
13
+ export declare const TabsDefault: Story;
14
+ export declare const TabsDimmed: Story;
15
+ export declare const TabsProgrammaticSwitch: Story;
@@ -1,7 +1,11 @@
1
1
  import react, { useState } from "react";
2
+ import { ReactComponent } from "@webiny/icons/notifications.svg";
3
+ import { ReactComponent as person_svg_ReactComponent } from "@webiny/icons/person.svg";
4
+ import { ReactComponent as settings_svg_ReactComponent } from "@webiny/icons/settings.svg";
2
5
  import { SegmentedControl } from "./SegmentedControl.js";
3
6
  import { Icon } from "../Icon/index.js";
4
- import { ReactComponent } from "@webiny/icons/notifications.svg";
7
+ import { Button } from "../Button/index.js";
8
+ import { useSegmentedTabs } from "./SegmentedControlTabsContext.js";
5
9
  const meta = {
6
10
  title: "Components/Form/SegmentedControl",
7
11
  component: SegmentedControl
@@ -136,6 +140,19 @@ const WithFormComponent = {
136
140
  }));
137
141
  }
138
142
  };
143
+ const FullWidth = {
144
+ render: ()=>{
145
+ const [value, setValue] = useState("item1");
146
+ return /*#__PURE__*/ react.createElement("div", {
147
+ className: "w-[500px]"
148
+ }, /*#__PURE__*/ react.createElement(SegmentedControl, {
149
+ items: items,
150
+ value: value,
151
+ onChange: setValue,
152
+ fullWidth: true
153
+ }));
154
+ }
155
+ };
139
156
  const Disabled = {
140
157
  render: ()=>{
141
158
  const [value, setValue] = useState("item1");
@@ -176,7 +193,88 @@ const Disabled = {
176
193
  })));
177
194
  }
178
195
  };
196
+ const TabsDefault = {
197
+ render: ()=>/*#__PURE__*/ react.createElement(SegmentedControl.Tabs, null, /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
198
+ value: "account",
199
+ trigger: "Account",
200
+ icon: /*#__PURE__*/ react.createElement(Icon, {
201
+ icon: /*#__PURE__*/ react.createElement(person_svg_ReactComponent, null),
202
+ label: "Account"
203
+ }),
204
+ content: /*#__PURE__*/ react.createElement("div", {
205
+ className: "p-md"
206
+ }, "Account content")
207
+ }), /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
208
+ value: "security",
209
+ trigger: "Security",
210
+ icon: /*#__PURE__*/ react.createElement(Icon, {
211
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
212
+ label: "Security"
213
+ }),
214
+ content: /*#__PURE__*/ react.createElement("div", {
215
+ className: "p-md"
216
+ }, "Security content")
217
+ }), /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
218
+ value: "preferences",
219
+ trigger: "Preferences",
220
+ icon: /*#__PURE__*/ react.createElement(Icon, {
221
+ icon: /*#__PURE__*/ react.createElement(settings_svg_ReactComponent, null),
222
+ label: "Preferences"
223
+ }),
224
+ content: /*#__PURE__*/ react.createElement("div", {
225
+ className: "p-md"
226
+ }, "Preferences content")
227
+ }))
228
+ };
229
+ const TabsDimmed = {
230
+ render: ()=>/*#__PURE__*/ react.createElement(SegmentedControl.Tabs, {
231
+ variant: "dimmed"
232
+ }, /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
233
+ value: "account",
234
+ trigger: "Account",
235
+ content: /*#__PURE__*/ react.createElement("div", {
236
+ className: "p-md"
237
+ }, "Account content")
238
+ }), /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
239
+ value: "security",
240
+ trigger: "Security",
241
+ content: /*#__PURE__*/ react.createElement("div", {
242
+ className: "p-md"
243
+ }, "Security content")
244
+ }), /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
245
+ value: "preferences",
246
+ trigger: "Preferences",
247
+ content: /*#__PURE__*/ react.createElement("div", {
248
+ className: "p-md"
249
+ }, "Preferences content")
250
+ }))
251
+ };
252
+ const SwitchFromContent = ()=>{
253
+ const { setActiveTab } = useSegmentedTabs();
254
+ return /*#__PURE__*/ react.createElement("div", {
255
+ className: "p-md flex flex-col gap-sm"
256
+ }, /*#__PURE__*/ react.createElement("p", null, "Account content"), /*#__PURE__*/ react.createElement(Button, {
257
+ variant: "secondary",
258
+ text: "Go to Security",
259
+ onClick: ()=>setActiveTab("security")
260
+ }));
261
+ };
262
+ const TabsProgrammaticSwitch = {
263
+ render: ()=>/*#__PURE__*/ react.createElement(SegmentedControl.Tabs, {
264
+ variant: "dimmed"
265
+ }, /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
266
+ value: "account",
267
+ trigger: "Account",
268
+ content: /*#__PURE__*/ react.createElement(SwitchFromContent, null)
269
+ }), /*#__PURE__*/ react.createElement(SegmentedControl.Tabs.Tab, {
270
+ value: "security",
271
+ trigger: "Security",
272
+ content: /*#__PURE__*/ react.createElement("div", {
273
+ className: "p-md"
274
+ }, "Security content")
275
+ }))
276
+ };
179
277
  export default SegmentedControl_stories;
180
- export { Default, Disabled, VariantDimmed, VariantGhost, VariantLight, WithFormComponent };
278
+ export { Default, Disabled, FullWidth, TabsDefault, TabsDimmed, TabsProgrammaticSwitch, VariantDimmed, VariantGhost, VariantLight, WithFormComponent };
181
279
 
182
280
  //# sourceMappingURL=SegmentedControl.stories.js.map