@soroush.tech/design-system 2.0.0-rc.2 → 2.0.0-rc.4
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.
- package/README.md +66 -40
- package/dist/Accordion/Accordion.cjs +100 -0
- package/dist/Accordion/Accordion.d.cts +41 -0
- package/dist/Accordion/Accordion.d.mts +41 -0
- package/dist/Accordion/Accordion.mjs +98 -0
- package/dist/Accordion/AccordionActions.cjs +29 -0
- package/dist/Accordion/AccordionActions.d.cts +12 -0
- package/dist/Accordion/AccordionActions.d.mts +12 -0
- package/dist/Accordion/AccordionActions.mjs +27 -0
- package/dist/Accordion/AccordionDetails.cjs +23 -0
- package/dist/Accordion/AccordionDetails.d.cts +12 -0
- package/dist/Accordion/AccordionDetails.d.mts +12 -0
- package/dist/Accordion/AccordionDetails.mjs +21 -0
- package/dist/Accordion/AccordionGroup.cjs +79 -0
- package/dist/Accordion/AccordionGroup.d.cts +24 -0
- package/dist/Accordion/AccordionGroup.d.mts +24 -0
- package/dist/Accordion/AccordionGroup.mjs +77 -0
- package/dist/Accordion/AccordionSummary.cjs +99 -0
- package/dist/Accordion/AccordionSummary.d.cts +21 -0
- package/dist/Accordion/AccordionSummary.d.mts +21 -0
- package/dist/Accordion/AccordionSummary.mjs +97 -0
- package/dist/Accordion.cjs +11 -0
- package/dist/Accordion.d.cts +6 -0
- package/dist/Accordion.d.mts +6 -0
- package/dist/Accordion.mjs +6 -0
- package/dist/AccordionContext-B2TCl9Os.cjs +44 -0
- package/dist/AccordionContext-DDk_i9Dx.mjs +15 -0
- package/dist/Alert/Alert.cjs +154 -0
- package/dist/Alert/Alert.d.cts +37 -0
- package/dist/Alert/Alert.d.mts +37 -0
- package/dist/Alert/Alert.mjs +152 -0
- package/dist/Alert/AlertTitle.cjs +21 -0
- package/dist/Alert/AlertTitle.d.cts +12 -0
- package/dist/Alert/AlertTitle.d.mts +12 -0
- package/dist/Alert/AlertTitle.mjs +20 -0
- package/dist/Alert.cjs +5 -0
- package/dist/Alert.d.cts +3 -0
- package/dist/Alert.d.mts +3 -0
- package/dist/Alert.mjs +3 -0
- package/dist/AppBar.cjs +1 -1
- package/dist/AppBar.d.cts +1 -1
- package/dist/AppBar.d.mts +1 -1
- package/dist/AppBar.mjs +1 -1
- package/dist/Autocomplete.cjs +666 -0
- package/dist/Autocomplete.d.cts +97 -0
- package/dist/Autocomplete.d.mts +97 -0
- package/dist/Autocomplete.mjs +664 -0
- package/dist/Avatar.cjs +2 -2
- package/dist/Avatar.d.cts +1 -1
- package/dist/Avatar.d.mts +1 -1
- package/dist/Avatar.mjs +2 -2
- package/dist/Backdrop.d.cts +1 -1
- package/dist/Backdrop.d.mts +1 -1
- package/dist/Badge.cjs +130 -0
- package/dist/Badge.d.cts +45 -0
- package/dist/Badge.d.mts +45 -0
- package/dist/Badge.mjs +128 -0
- package/dist/Breadcrumbs.cjs +2 -2
- package/dist/Breadcrumbs.d.cts +3 -3
- package/dist/Breadcrumbs.d.mts +3 -3
- package/dist/Breadcrumbs.mjs +2 -2
- package/dist/Button.cjs +6 -3
- package/dist/Button.d.cts +1 -1
- package/dist/Button.d.mts +1 -1
- package/dist/Button.mjs +6 -3
- package/dist/ButtonGroup.cjs +1 -1
- package/dist/ButtonGroup.d.cts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/ButtonGroup.mjs +1 -1
- package/dist/Card.cjs +2 -2
- package/dist/Card.d.cts +4 -4
- package/dist/Card.d.mts +4 -4
- package/dist/Card.mjs +2 -2
- package/dist/Checkbox.cjs +13 -3
- package/dist/Checkbox.d.cts +4 -2
- package/dist/Checkbox.d.mts +4 -2
- package/dist/Checkbox.mjs +13 -3
- package/dist/Chip.cjs +194 -0
- package/dist/Chip.d.cts +49 -0
- package/dist/Chip.d.mts +49 -0
- package/dist/Chip.mjs +192 -0
- package/dist/CircularProgress.cjs +1 -1
- package/dist/CircularProgress.d.cts +2 -2
- package/dist/CircularProgress.d.mts +2 -2
- package/dist/CircularProgress.mjs +1 -1
- package/dist/Collapse.cjs +126 -0
- package/dist/Collapse.d.cts +2 -0
- package/dist/Collapse.d.mts +2 -0
- package/dist/Collapse.mjs +124 -0
- package/dist/Drawer.d.cts +3 -3
- package/dist/Drawer.d.mts +3 -3
- package/dist/Fab.cjs +114 -0
- package/dist/Fab.d.cts +2 -0
- package/dist/Fab.d.mts +2 -0
- package/dist/Fab.mjs +113 -0
- package/dist/FabMenu/FabMenu.cjs +3 -0
- package/dist/FabMenu/FabMenu.d.cts +53 -0
- package/dist/FabMenu/FabMenu.d.mts +53 -0
- package/dist/FabMenu/FabMenu.mjs +2 -0
- package/dist/FabMenu/FabMenuItem.cjs +28 -0
- package/dist/FabMenu/FabMenuItem.d.cts +19 -0
- package/dist/FabMenu/FabMenuItem.d.mts +19 -0
- package/dist/FabMenu/FabMenuItem.mjs +27 -0
- package/dist/FabMenu-BDfkT_zt.mjs +273 -0
- package/dist/FabMenu-RiVtzrKe.cjs +279 -0
- package/dist/FabMenu.cjs +5 -0
- package/dist/FabMenu.d.cts +3 -0
- package/dist/FabMenu.d.mts +3 -0
- package/dist/FabMenu.mjs +3 -0
- package/dist/FabMenuContext-BZslb0lL.cjs +22 -0
- package/dist/FabMenuContext-D-XlDbLl.mjs +11 -0
- package/dist/Fade.cjs +17 -0
- package/dist/Fade.d.cts +11 -0
- package/dist/Fade.d.mts +11 -0
- package/dist/Fade.mjs +16 -0
- package/dist/Flex.d.cts +1 -1
- package/dist/Flex.d.mts +1 -1
- package/dist/Form.d.cts +1 -1
- package/dist/Form.d.mts +1 -1
- package/dist/FormControl.cjs +14 -4
- package/dist/FormControl.d.cts +9 -1
- package/dist/FormControl.d.mts +9 -1
- package/dist/FormControl.mjs +14 -4
- package/dist/FormHelperText.cjs +1 -1
- package/dist/FormHelperText.d.cts +1 -1
- package/dist/FormHelperText.d.mts +1 -1
- package/dist/FormHelperText.mjs +1 -1
- package/dist/FormLabel.cjs +13 -2
- package/dist/FormLabel.d.cts +2 -2
- package/dist/FormLabel.d.mts +2 -2
- package/dist/FormLabel.mjs +14 -3
- package/dist/Grid.d.cts +1 -1
- package/dist/Grid.d.mts +1 -1
- package/dist/Grow.cjs +21 -0
- package/dist/Grow.d.cts +11 -0
- package/dist/Grow.d.mts +11 -0
- package/dist/Grow.mjs +20 -0
- package/dist/{Icon-DlheCTJb.mjs → Icon-0hPpk-WZ.mjs} +71 -1
- package/dist/{Icon-Cvuhp9ek.cjs → Icon-BE7bRsqR.cjs} +71 -1
- package/dist/Icon.cjs +1 -1
- package/dist/Icon.d.cts +1 -1
- package/dist/Icon.d.mts +1 -1
- package/dist/Icon.mjs +1 -1
- package/dist/Image.d.cts +1 -1
- package/dist/Image.d.mts +1 -1
- package/dist/LinearProgress.cjs +1 -1
- package/dist/LinearProgress.d.cts +2 -2
- package/dist/LinearProgress.d.mts +2 -2
- package/dist/LinearProgress.mjs +1 -1
- package/dist/Link.cjs +3 -3
- package/dist/Link.d.cts +1 -1
- package/dist/Link.d.mts +1 -1
- package/dist/Link.mjs +3 -3
- package/dist/Menu/ContextMenu.cjs +6 -4
- package/dist/Menu/ContextMenu.d.cts +8 -6
- package/dist/Menu/ContextMenu.d.mts +8 -6
- package/dist/Menu/ContextMenu.mjs +6 -4
- package/dist/Menu/Menu.cjs +1 -1
- package/dist/Menu/Menu.d.cts +1 -1
- package/dist/Menu/Menu.d.mts +1 -1
- package/dist/Menu/Menu.mjs +1 -1
- package/dist/Menu/MenuItems.cjs +1 -1
- package/dist/Menu/MenuItems.d.cts +1 -1
- package/dist/Menu/MenuItems.d.mts +1 -1
- package/dist/Menu/MenuItems.mjs +1 -1
- package/dist/Menu/MenuList.cjs +1 -1
- package/dist/Menu/MenuList.d.cts +2 -2
- package/dist/Menu/MenuList.d.mts +2 -2
- package/dist/Menu/MenuList.mjs +1 -1
- package/dist/{Menu-tECbAEFj.mjs → Menu-CnG4ikZd.mjs} +7 -4
- package/dist/{Menu-BkKPTOfh.cjs → Menu-DXLjR9ga.cjs} +8 -5
- package/dist/Menu.cjs +2 -2
- package/dist/Menu.d.cts +3 -3
- package/dist/Menu.d.mts +3 -3
- package/dist/Menu.mjs +2 -2
- package/dist/{MenuItem-BR7ingQx.mjs → MenuItem-C21eR7d6.mjs} +42 -86
- package/dist/{MenuItem-CfdN4axw.cjs → MenuItem-EJ4u73f0.cjs} +42 -92
- package/dist/MenuItem.cjs +1 -1
- package/dist/MenuItem.d.cts +1 -1
- package/dist/MenuItem.d.mts +1 -1
- package/dist/MenuItem.mjs +1 -1
- package/dist/{MenuList-D4imLXAa.cjs → MenuList-BBAYeUvD.cjs} +1 -1
- package/dist/{MenuList-B7msJ1IG.mjs → MenuList-Cz3cupC3.mjs} +1 -1
- package/dist/{MenuListContext-Dml16k0X.d.mts → MenuListContext-BWL5fM_L.d.mts} +2 -2
- package/dist/{MenuListContext-vujGcRk9.d.cts → MenuListContext-BrCKLgKZ.d.cts} +2 -2
- package/dist/{Modal-BcsyrrpH.mjs → Modal-CEHDej-v.mjs} +3 -22
- package/dist/{Modal-CM3osOqj.cjs → Modal-DBw4j0YA.cjs} +3 -22
- package/dist/Modal.cjs +1 -1
- package/dist/Modal.d.cts +1 -1
- package/dist/Modal.d.mts +1 -1
- package/dist/Modal.mjs +1 -1
- package/dist/NativeSelect.cjs +15 -18
- package/dist/NativeSelect.d.cts +3 -3
- package/dist/NativeSelect.d.mts +3 -3
- package/dist/NativeSelect.mjs +15 -18
- package/dist/NumberInput.cjs +502 -0
- package/dist/NumberInput.d.cts +79 -0
- package/dist/NumberInput.d.mts +79 -0
- package/dist/NumberInput.mjs +500 -0
- package/dist/Pagination/PaginationItem.cjs +2 -2
- package/dist/Pagination/PaginationItem.d.cts +1 -1
- package/dist/Pagination/PaginationItem.d.mts +1 -1
- package/dist/Pagination/PaginationItem.mjs +2 -2
- package/dist/Pagination.d.cts +2 -2
- package/dist/Pagination.d.mts +2 -2
- package/dist/Paper.cjs +2 -2
- package/dist/Paper.d.cts +2 -2
- package/dist/Paper.d.mts +2 -2
- package/dist/Paper.mjs +2 -2
- package/dist/{Popover-QjM5Z1CR.mjs → Popover-Neeqs_7l.mjs} +3 -3
- package/dist/{Popover-CiZfgiKE.cjs → Popover-xyJTSjZy.cjs} +3 -3
- package/dist/Popover.cjs +1 -1
- package/dist/Popover.d.cts +3 -3
- package/dist/Popover.d.mts +3 -3
- package/dist/Popover.mjs +1 -1
- package/dist/Portal.d.cts +1 -17
- package/dist/Portal.d.mts +1 -17
- package/dist/Pressable.cjs +17 -13
- package/dist/Pressable.d.cts +1 -1
- package/dist/Pressable.d.mts +1 -1
- package/dist/Pressable.mjs +17 -13
- package/dist/Quote.d.cts +2 -2
- package/dist/Quote.d.mts +2 -2
- package/dist/Radio.cjs +13 -3
- package/dist/Radio.d.cts +4 -2
- package/dist/Radio.d.mts +4 -2
- package/dist/Radio.mjs +13 -3
- package/dist/RangeInput.cjs +677 -0
- package/dist/RangeInput.d.cts +79 -0
- package/dist/RangeInput.d.mts +79 -0
- package/dist/RangeInput.mjs +675 -0
- package/dist/Rating.cjs +373 -0
- package/dist/Rating.d.cts +57 -0
- package/dist/Rating.d.mts +57 -0
- package/dist/Rating.mjs +371 -0
- package/dist/ScrollArea.cjs +268 -0
- package/dist/ScrollArea.d.cts +40 -0
- package/dist/ScrollArea.d.mts +40 -0
- package/dist/ScrollArea.mjs +266 -0
- package/dist/Select.cjs +11 -13
- package/dist/Select.d.cts +3 -3
- package/dist/Select.d.mts +3 -3
- package/dist/Select.mjs +13 -15
- package/dist/Sidebar/Sidebar.d.cts +1 -1
- package/dist/Sidebar/Sidebar.d.mts +1 -1
- package/dist/Sidebar/SidebarItem.cjs +2 -2
- package/dist/Sidebar/SidebarItem.d.cts +3 -3
- package/dist/Sidebar/SidebarItem.d.mts +3 -3
- package/dist/Sidebar/SidebarItem.mjs +4 -4
- package/dist/Skeleton.d.cts +1 -1
- package/dist/Skeleton.d.mts +1 -1
- package/dist/Slide.cjs +51 -0
- package/dist/Slide.d.cts +17 -0
- package/dist/Slide.d.mts +17 -0
- package/dist/Slide.mjs +50 -0
- package/dist/Snackbar.cjs +205 -0
- package/dist/Snackbar.d.cts +62 -0
- package/dist/Snackbar.d.mts +62 -0
- package/dist/Snackbar.mjs +203 -0
- package/dist/Switch.cjs +35 -18
- package/dist/Switch.d.cts +4 -2
- package/dist/Switch.d.mts +4 -2
- package/dist/Switch.mjs +37 -20
- package/dist/Table/Table.d.cts +2 -2
- package/dist/Table/Table.d.mts +2 -2
- package/dist/Table/TableBody.d.cts +1 -1
- package/dist/Table/TableBody.d.mts +1 -1
- package/dist/Table/TableCell.d.cts +1 -1
- package/dist/Table/TableCell.d.mts +1 -1
- package/dist/Table/TableContainer.d.cts +1 -1
- package/dist/Table/TableContainer.d.mts +1 -1
- package/dist/Table/TableControl.d.cts +1 -1
- package/dist/Table/TableControl.d.mts +1 -1
- package/dist/Table/TableControl.mjs +2 -2
- package/dist/Table/TableFooter.d.cts +1 -1
- package/dist/Table/TableFooter.d.mts +1 -1
- package/dist/Table/TableHead.d.cts +1 -1
- package/dist/Table/TableHead.d.mts +1 -1
- package/dist/Table/TablePagination.cjs +1 -0
- package/dist/Table/TablePagination.d.cts +2 -2
- package/dist/Table/TablePagination.d.mts +2 -2
- package/dist/Table/TablePagination.mjs +1 -0
- package/dist/Table/TablePaginationActions.cjs +1 -1
- package/dist/Table/TablePaginationActions.d.cts +1 -1
- package/dist/Table/TablePaginationActions.d.mts +1 -1
- package/dist/Table/TablePaginationActions.mjs +1 -1
- package/dist/Table/TableRow.d.cts +1 -1
- package/dist/Table/TableRow.d.mts +1 -1
- package/dist/Table/TableSortLabel.cjs +1 -1
- package/dist/Table/TableSortLabel.d.cts +1 -1
- package/dist/Table/TableSortLabel.d.mts +1 -1
- package/dist/Table/TableSortLabel.mjs +1 -1
- package/dist/Table/hooks.d.cts +1 -1
- package/dist/Table/hooks.d.mts +1 -1
- package/dist/Table.d.cts +5 -5
- package/dist/Table.d.mts +5 -5
- package/dist/{TableContext-6PgGpUzM.d.mts → TableContext-Be8tluYZ.d.cts} +1 -1
- package/dist/{TableContext-CBGk-Lh8.d.cts → TableContext-DUPqls5k.d.mts} +1 -1
- package/dist/Tabs/Tab.cjs +16 -7
- package/dist/Tabs/Tab.d.cts +2 -2
- package/dist/Tabs/Tab.d.mts +2 -2
- package/dist/Tabs/Tab.mjs +16 -7
- package/dist/Tabs/TabContext.d.cts +1 -1
- package/dist/Tabs/TabContext.d.mts +1 -1
- package/dist/Tabs/TabList.cjs +1 -1
- package/dist/Tabs/TabList.d.cts +1 -1
- package/dist/Tabs/TabList.d.mts +1 -1
- package/dist/Tabs/TabList.mjs +1 -1
- package/dist/Tabs/TabPanel.cjs +1 -1
- package/dist/Tabs/TabPanel.d.cts +2 -2
- package/dist/Tabs/TabPanel.d.mts +2 -2
- package/dist/Tabs/TabPanel.mjs +1 -1
- package/dist/Tabs/TabScrollButton.cjs +2 -2
- package/dist/Tabs/TabScrollButton.d.cts +1 -1
- package/dist/Tabs/TabScrollButton.d.mts +1 -1
- package/dist/Tabs/TabScrollButton.mjs +2 -2
- package/dist/Tabs/Tabs.cjs +1 -1
- package/dist/Tabs/Tabs.d.cts +2 -2
- package/dist/Tabs/Tabs.d.mts +2 -2
- package/dist/Tabs/Tabs.mjs +1 -1
- package/dist/{Tabs-D_wkX-Jb.cjs → Tabs-Croeq9s2.cjs} +15 -10
- package/dist/{Tabs-YfCUbkQV.mjs → Tabs-DMMP5aDj.mjs} +12 -7
- package/dist/Tabs.cjs +1 -1
- package/dist/Tabs.d.cts +3 -3
- package/dist/Tabs.d.mts +3 -3
- package/dist/Tabs.mjs +1 -1
- package/dist/{TabsContext-C2agsLBN.d.cts → TabsContext-BYeGjSZK.d.cts} +1 -1
- package/dist/{TabsContext-DqyxdmGW.d.mts → TabsContext-D4YumTfD.d.mts} +1 -1
- package/dist/TextInput.cjs +14 -14
- package/dist/TextInput.d.cts +2 -2
- package/dist/TextInput.d.mts +2 -2
- package/dist/TextInput.mjs +14 -14
- package/dist/ToggleButton/ToggleButton.cjs +2 -2
- package/dist/ToggleButton/ToggleButton.d.cts +1 -1
- package/dist/ToggleButton/ToggleButton.d.mts +1 -1
- package/dist/ToggleButton/ToggleButton.mjs +2 -2
- package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
- package/dist/Tooltip.cjs +270 -0
- package/dist/Tooltip.d.cts +78 -0
- package/dist/Tooltip.d.mts +78 -0
- package/dist/Tooltip.mjs +268 -0
- package/dist/TransferList.cjs +363 -0
- package/dist/TransferList.d.cts +69 -0
- package/dist/TransferList.d.mts +69 -0
- package/dist/TransferList.mjs +361 -0
- package/dist/Typography.cjs +1 -1
- package/dist/Typography.d.cts +2 -2
- package/dist/Typography.d.mts +2 -2
- package/dist/Typography.mjs +1 -1
- package/dist/View.d.cts +1 -1
- package/dist/View.d.mts +1 -1
- package/dist/Zoom.cjs +16 -0
- package/dist/Zoom.d.cts +10 -0
- package/dist/Zoom.d.mts +10 -0
- package/dist/Zoom.mjs +15 -0
- package/dist/catalog.cjs +1405 -45
- package/dist/catalog.d.cts +1 -1
- package/dist/catalog.d.mts +1 -1
- package/dist/catalog.mjs +1405 -45
- package/dist/engine.d.cts +2 -2
- package/dist/engine.d.mts +1 -1
- package/dist/getAnchorRel-CySI28HJ.mjs +8 -0
- package/dist/getAnchorRel-_vtAXC-4.cjs +13 -0
- package/dist/getShapeRadius-B9ytqDSk.d.cts +5 -0
- package/dist/getShapeRadius-B9ytqDSk.d.mts +5 -0
- package/dist/getShapeRadius-sY6-AGP4.mjs +12 -0
- package/dist/getShapeRadius-vXmXGV3f.cjs +17 -0
- package/dist/getSurfaceRadius-BTUV1E8H.cjs +11 -0
- package/dist/getSurfaceRadius-DTgqIzll.mjs +6 -0
- package/dist/getTooltipOrigins-B_7XXtQq.cjs +104 -0
- package/dist/getTooltipOrigins-CyyIMCF1.mjs +87 -0
- package/dist/{index-qlfNErNd.d.cts → index-05VGk0y_.d.cts} +30 -2
- package/dist/{index-CrIxI8Na.d.mts → index-2x01drCL.d.mts} +2 -2
- package/dist/{index-Cj5Rhh_9.d.mts → index-46mhlgP6.d.mts} +7 -3
- package/dist/{index-BiVvxOvj.d.cts → index-BCzI2Iqo.d.cts} +2 -2
- package/dist/{index-IdMqR82e.d.cts → index-BDqIc6Gx.d.cts} +1 -1
- package/dist/{index-BSA6SKao.d.mts → index-BPh60KDs.d.mts} +1 -1
- package/dist/{index-Bxd9NOWb.d.mts → index-BQge4W7L.d.cts} +3 -3
- package/dist/{index-DCmH5f9I.d.cts → index-BSGu9rPv.d.cts} +7 -3
- package/dist/{index-Bhdn4KTy.d.cts → index-BThHG5QU.d.mts} +3 -3
- package/dist/{index-DrVYWt-X.d.mts → index-BUeqNHjb.d.cts} +3 -3
- package/dist/{index-DIC7HKpP.d.mts → index-BeqpkGV-.d.mts} +1 -1
- package/dist/{index-DqjXDutI.d.mts → index-Bfyz3MDc.d.mts} +1 -1
- package/dist/{index-BlLH6rlE.d.cts → index-BgLqA52S.d.cts} +2 -2
- package/dist/{index-DDJuUfL5.d.cts → index-BhnLFsBv.d.cts} +1 -1
- package/dist/{index-gnh-Oe0n.d.cts → index-BitQk7Hx.d.cts} +1 -1
- package/dist/index-BvgX5eyV.d.mts +36 -0
- package/dist/index-CERyXFjz.d.cts +32 -0
- package/dist/index-CLvlNnjM.d.mts +32 -0
- package/dist/{index-C3KrFPCj.d.mts → index-CO-XxjiZ.d.cts} +2 -2
- package/dist/{index-DXhMkjQ6.d.cts → index-CR0akDlJ.d.cts} +2 -2
- package/dist/{index-CVNJEUwJ.d.mts → index-CRQ7XLri.d.mts} +234 -6
- package/dist/{index-DQcnJ5H4.d.cts → index-CRn4fWwA.d.mts} +2 -2
- package/dist/{index-BCnKYNlZ.d.cts → index-CWPvdEjP.d.mts} +3 -3
- package/dist/{index-DuVNRXP4.d.cts → index-CrQDxJ1D.d.cts} +1 -1
- package/dist/index-Ctx-DKV3.d.cts +18 -0
- package/dist/index-Ctx-DKV3.d.mts +18 -0
- package/dist/{index-BjPX49XA.d.mts → index-CyLhEXYB.d.mts} +1 -1
- package/dist/{index-DeDxYlSQ.d.mts → index-D05fSuF1.d.mts} +2 -2
- package/dist/{index-XxydXX8l.d.cts → index-DK3zgGPe.d.mts} +3 -3
- package/dist/{index-BqpS_Huq.d.mts → index-DNj5P2NH.d.mts} +30 -2
- package/dist/{index-BFruxTHv.d.cts → index-DOH1xY0L.d.cts} +1 -1
- package/dist/{index-B3LIhqHR.d.cts → index-D_-DAAE7.d.mts} +14 -6
- package/dist/{index-BbgFYfX_.d.mts → index-D_LT3QiH.d.mts} +2 -2
- package/dist/index-Db4L2hwa.d.cts +36 -0
- package/dist/{index-BjfPEP_5.d.cts → index-Dk4KuTPB.d.cts} +2 -2
- package/dist/{index-CoEqjFYn.d.mts → index-Ebjbrbsk.d.cts} +14 -6
- package/dist/{index-B8DNxyEw.d.mts → index-MWUGpG-Y.d.mts} +2 -2
- package/dist/{index-DmJ7yWWi.d.cts → index-XN4-ZqTB.d.cts} +236 -8
- package/dist/index-fPRELf0V.d.mts +1 -0
- package/dist/{index-CWnbCxgw.d.cts → index-fi-W3MOz.d.cts} +7 -5
- package/dist/{index-DJCpnTH3.d.mts → index-iTquH69S.d.cts} +3 -3
- package/dist/{index-DckSub2J.d.mts → index-lGpLM144.d.mts} +7 -5
- package/dist/{index-BVPrG1L0.d.mts → index-vBCN6iAz.d.mts} +1 -1
- package/dist/index-x3WC9ViD.d.cts +1 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/inputVariantStyles-BUK_62Ra.cjs +61 -0
- package/dist/inputVariantStyles-q_cZsCJg.mjs +44 -0
- package/dist/isRtl-BJDtm86G.mjs +7 -0
- package/dist/isRtl-DTkYHRPo.cjs +12 -0
- package/dist/precision-B1lhxnnO.mjs +25 -0
- package/dist/precision-B58cTPB2.cjs +48 -0
- package/dist/style.cjs +1 -1
- package/dist/style.d.cts +2 -2
- package/dist/style.d.mts +2 -2
- package/dist/style.mjs +1 -1
- package/dist/{theme-BxXuXRgQ.cjs → theme-DzfwuzMZ.cjs} +1 -1
- package/dist/{theme-Z9_QludW.mjs → theme-oBfFhJm9.mjs} +1 -1
- package/dist/theme.cjs +3 -2
- package/dist/theme.d.cts +3 -3
- package/dist/theme.d.mts +3 -3
- package/dist/theme.mjs +3 -3
- package/dist/{themes-gd6tcmqS.cjs → themes--4eci3M1.cjs} +25 -2
- package/dist/{themes-L-dE7_ck.mjs → themes-BwEsdVox.mjs} +20 -3
- package/dist/useAnchoredPlacement-B1FyGoZV.cjs +111 -0
- package/dist/useAnchoredPlacement-Pe7sY41E.mjs +106 -0
- package/dist/useControlled-C666KpQ0.cjs +18 -0
- package/dist/useControlled-CBRLsO-H.mjs +13 -0
- package/dist/useMergedRefs-2zTDXgPO.cjs +27 -0
- package/dist/useMergedRefs-BfBckwRY.mjs +22 -0
- package/dist/{useTablePagination-C5VKtqDp.d.cts → useTablePagination-CFb_FYA9.d.cts} +1 -1
- package/dist/{useTablePagination-C6LSlt3w.d.mts → useTablePagination-_-bzuXJO.d.mts} +1 -1
- package/dist/useTransition-C1F7MuHO.d.mts +42 -0
- package/dist/useTransition-DAQd1PX3.cjs +83 -0
- package/dist/useTransition-DP1k0irI.mjs +78 -0
- package/dist/useTransition-l9dv83-Y.d.cts +42 -0
- package/dist/useTransitionChild-CikpU0Yh.cjs +54 -0
- package/dist/useTransitionChild-Dvg9hO-F.mjs +49 -0
- package/package.json +194 -4
- package/dist/index-DBteSahY.d.cts +0 -1
- package/dist/index-_G1osn09.d.mts +0 -1
- package/dist/inputVariantStyles-BBkkYQtE.cjs +0 -32
- package/dist/inputVariantStyles-CcqpGfuP.mjs +0 -28
package/dist/Slide.d.mts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { n as TransitionProps } from "./useTransition-C1F7MuHO.mjs";
|
|
2
|
+
//#region src/Slide/Slide.d.ts
|
|
3
|
+
/** The edge of the window the child slides in from. */
|
|
4
|
+
type SlideDirection = 'up' | 'down' | 'left' | 'right';
|
|
5
|
+
interface SlideProps extends TransitionProps {
|
|
6
|
+
/** The edge it slides in from - and out to. Mirrored in right-to-left pages. Default: `'down'`. */
|
|
7
|
+
direction?: SlideDirection;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @description Slides one child in from an edge of the window and back out. The child holds a
|
|
11
|
+
* `ref` and takes a `style`; out, it is hidden. Its way out is measured as it starts, so it
|
|
12
|
+
* leaves the window from wherever it sits. A user who asked for less motion sees it change at
|
|
13
|
+
* once.
|
|
14
|
+
*/
|
|
15
|
+
declare function Slide({ direction, ...props }: Readonly<SlideProps>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Slide, SlideDirection, SlideProps };
|
package/dist/Slide.mjs
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { t as isRtl } from "./isRtl-BJDtm86G.mjs";
|
|
2
|
+
import { t as useTransitionChild } from "./useTransitionChild-Dvg9hO-F.mjs";
|
|
3
|
+
import { useRef } from "react";
|
|
4
|
+
//#region src/Slide/Slide.tsx
|
|
5
|
+
const mirrored = {
|
|
6
|
+
up: "up",
|
|
7
|
+
down: "down",
|
|
8
|
+
left: "right",
|
|
9
|
+
right: "left"
|
|
10
|
+
};
|
|
11
|
+
const getOffset = (node, direction) => {
|
|
12
|
+
const rect = node.getBoundingClientRect();
|
|
13
|
+
const toward = isRtl(node) ? mirrored[direction] : direction;
|
|
14
|
+
if (toward === "left") return `translateX(${-(rect.left + rect.width)}px)`;
|
|
15
|
+
if (toward === "right") return `translateX(${window.innerWidth - rect.left}px)`;
|
|
16
|
+
if (toward === "up") return `translateY(${-(rect.top + rect.height)}px)`;
|
|
17
|
+
return `translateY(${window.innerHeight - rect.top}px)`;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @description Slides one child in from an edge of the window and back out. The child holds a
|
|
21
|
+
* `ref` and takes a `style`; out, it is hidden. Its way out is measured as it starts, so it
|
|
22
|
+
* leaves the window from wherever it sits. A user who asked for less motion sees it change at
|
|
23
|
+
* once.
|
|
24
|
+
*/
|
|
25
|
+
function Slide({ direction = "down", ...props }) {
|
|
26
|
+
const offset = useRef("");
|
|
27
|
+
const measure = (node) => {
|
|
28
|
+
const { transform } = node.style;
|
|
29
|
+
node.style.transform = "none";
|
|
30
|
+
offset.current = getOffset(node, direction);
|
|
31
|
+
node.style.transform = transform;
|
|
32
|
+
};
|
|
33
|
+
return useTransitionChild(props, ({ status, duration, easing }) => ({
|
|
34
|
+
transform: status === "entering" || status === "entered" ? "none" : offset.current || void 0,
|
|
35
|
+
transition: `transform ${duration}ms ${easing}`,
|
|
36
|
+
visibility: status === "exited" ? "hidden" : void 0
|
|
37
|
+
}), {
|
|
38
|
+
onEnter: (node) => {
|
|
39
|
+
measure(node);
|
|
40
|
+
const { transition } = node.style;
|
|
41
|
+
node.style.transition = "none";
|
|
42
|
+
node.style.transform = offset.current;
|
|
43
|
+
node.getBoundingClientRect();
|
|
44
|
+
node.style.transition = transition;
|
|
45
|
+
},
|
|
46
|
+
onExit: measure
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { Slide };
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_src = require("./src-DU81aGy9.cjs");
|
|
3
|
+
const require_theme = require("./theme-DzfwuzMZ.cjs");
|
|
4
|
+
const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
|
|
5
|
+
const require_getSurfaceRadius = require("./getSurfaceRadius-BTUV1E8H.cjs");
|
|
6
|
+
const require_useControlled = require("./useControlled-C666KpQ0.cjs");
|
|
7
|
+
const require_getShapeRadius = require("./getShapeRadius-vXmXGV3f.cjs");
|
|
8
|
+
const require_Portal = require("./Portal.cjs");
|
|
9
|
+
const require_Grow = require("./Grow.cjs");
|
|
10
|
+
let react = require("react");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
|
|
13
|
+
//#region src/Snackbar/hooks/useAutoHide.ts
|
|
14
|
+
/**
|
|
15
|
+
* The clock of a message that hides itself: it runs while the message is open, stops while the
|
|
16
|
+
* pointer or the focus is on it, and starts again - for `resumeDuration` - once they leave.
|
|
17
|
+
*/
|
|
18
|
+
function useAutoHide({ isOpen, duration, resumeDuration, onHide }) {
|
|
19
|
+
const timer = (0, react.useRef)(void 0);
|
|
20
|
+
const hide = (0, react.useRef)(onHide);
|
|
21
|
+
(0, react.useEffect)(() => {
|
|
22
|
+
hide.current = onHide;
|
|
23
|
+
});
|
|
24
|
+
const stop = (0, react.useCallback)(() => window.clearTimeout(timer.current), []);
|
|
25
|
+
const start = (0, react.useCallback)((ms) => {
|
|
26
|
+
stop();
|
|
27
|
+
if (ms !== void 0) timer.current = window.setTimeout(() => hide.current(), ms);
|
|
28
|
+
}, [stop]);
|
|
29
|
+
(0, react.useEffect)(() => {
|
|
30
|
+
if (!isOpen) return void 0;
|
|
31
|
+
start(duration);
|
|
32
|
+
return stop;
|
|
33
|
+
}, [
|
|
34
|
+
isOpen,
|
|
35
|
+
duration,
|
|
36
|
+
start,
|
|
37
|
+
stop
|
|
38
|
+
]);
|
|
39
|
+
return {
|
|
40
|
+
pause: stop,
|
|
41
|
+
resume: (0, react.useCallback)(() => {
|
|
42
|
+
if (!isOpen || duration === void 0) return;
|
|
43
|
+
start(resumeDuration ?? duration / 2);
|
|
44
|
+
}, [
|
|
45
|
+
isOpen,
|
|
46
|
+
duration,
|
|
47
|
+
resumeDuration,
|
|
48
|
+
start
|
|
49
|
+
])
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/Snackbar/Snackbar.tsx
|
|
54
|
+
const DEFAULT_ANCHOR = {
|
|
55
|
+
vertical: "bottom",
|
|
56
|
+
horizontal: "start"
|
|
57
|
+
};
|
|
58
|
+
const SnackbarRoot = require_src.styled("div", {
|
|
59
|
+
name: "Snackbar",
|
|
60
|
+
label: "Snackbar",
|
|
61
|
+
shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["anchorOrigin", "layer"])
|
|
62
|
+
})(({ theme, anchorOrigin, layer }) => {
|
|
63
|
+
const { vertical, horizontal } = anchorOrigin;
|
|
64
|
+
return {
|
|
65
|
+
position: "fixed",
|
|
66
|
+
zIndex: theme.zOrder[layer],
|
|
67
|
+
display: "flex",
|
|
68
|
+
pointerEvents: "none",
|
|
69
|
+
[vertical]: theme.space[3],
|
|
70
|
+
...horizontal === "center" ? {
|
|
71
|
+
left: 0,
|
|
72
|
+
right: 0,
|
|
73
|
+
justifyContent: "center"
|
|
74
|
+
} : { [horizontal === "start" ? "insetInlineStart" : "insetInlineEnd"]: theme.space[3] }
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
const SnackbarContent = require_src.styled("div", {
|
|
78
|
+
name: "Snackbar",
|
|
79
|
+
slot: "content",
|
|
80
|
+
label: "SnackbarContent",
|
|
81
|
+
shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
|
|
82
|
+
"shape",
|
|
83
|
+
"borderRadius",
|
|
84
|
+
"bg",
|
|
85
|
+
"textColor"
|
|
86
|
+
])
|
|
87
|
+
})(({ theme, shape, borderRadius, bg, textColor }) => ({
|
|
88
|
+
display: "flex",
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
gap: theme.space[2],
|
|
91
|
+
boxSizing: "border-box",
|
|
92
|
+
minWidth: "18rem",
|
|
93
|
+
maxWidth: `calc(100vw - ${theme.space[3]} - ${theme.space[3]})`,
|
|
94
|
+
padding: `${theme.space[1]} ${theme.space[2]}`,
|
|
95
|
+
pointerEvents: "auto",
|
|
96
|
+
borderRadius: require_getShapeRadius.getShapeRadius(shape, require_getSurfaceRadius.getSurfaceRadius(theme, borderRadius)),
|
|
97
|
+
boxShadow: theme.shadows[6],
|
|
98
|
+
backgroundColor: (0, require_src.src_exports.get)(theme, `background.${bg ?? "modal"}`),
|
|
99
|
+
color: (0, require_src.src_exports.get)(theme, `text.${textColor ?? require_themeDefault.themeDefault(theme, "textColor", "initial")}`),
|
|
100
|
+
fontFamily: (0, require_src.src_exports.get)(theme, "fonts.body"),
|
|
101
|
+
fontSize: theme.fontSizes[1],
|
|
102
|
+
lineHeight: (0, require_src.src_exports.get)(theme, "lineHeights.base")
|
|
103
|
+
}));
|
|
104
|
+
const SnackbarMessage = require_src.styled("div", {
|
|
105
|
+
name: "Snackbar",
|
|
106
|
+
slot: "message",
|
|
107
|
+
label: "SnackbarMessage"
|
|
108
|
+
})(({ theme }) => ({
|
|
109
|
+
flex: 1,
|
|
110
|
+
minWidth: 0,
|
|
111
|
+
padding: `${theme.space[1]} 0`
|
|
112
|
+
}));
|
|
113
|
+
const SnackbarAction = require_src.styled("div", {
|
|
114
|
+
name: "Snackbar",
|
|
115
|
+
slot: "action",
|
|
116
|
+
label: "SnackbarAction"
|
|
117
|
+
})(({ theme }) => ({
|
|
118
|
+
display: "flex",
|
|
119
|
+
alignItems: "center",
|
|
120
|
+
flexShrink: 0,
|
|
121
|
+
gap: theme.space[1],
|
|
122
|
+
marginInlineStart: "auto"
|
|
123
|
+
}));
|
|
124
|
+
/**
|
|
125
|
+
* @description A transient message in a corner of the window, through a `Portal`. It hides itself
|
|
126
|
+
* after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
|
|
127
|
+
* close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
|
|
128
|
+
* politely, and never takes the focus. Several at once do not stack: the app queues them.
|
|
129
|
+
*/
|
|
130
|
+
function Snackbar({ isOpen: isOpenProp, defaultOpen = false, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition = require_Grow.Grow, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, "data-testid": dataTestid }) {
|
|
131
|
+
const dp = require_theme.useDefaultProps("Snackbar");
|
|
132
|
+
const autoHideDuration = autoHideDurationProp ?? dp.autoHideDuration;
|
|
133
|
+
const resumeHideDuration = resumeHideDurationProp ?? dp.resumeHideDuration;
|
|
134
|
+
const anchorOrigin = anchorOriginProp ?? dp.anchorOrigin ?? DEFAULT_ANCHOR;
|
|
135
|
+
const layer = layerProp ?? dp.layer ?? "snackbar";
|
|
136
|
+
const shape = shapeProp ?? dp.shape ?? "rounded";
|
|
137
|
+
const borderRadius = borderRadiusProp ?? dp.borderRadius;
|
|
138
|
+
const bg = bgProp ?? dp.bg;
|
|
139
|
+
const textColor = textColorProp ?? dp.textColor;
|
|
140
|
+
const [isOpen, setIsOpen] = require_useControlled.useControlled({
|
|
141
|
+
controlled: isOpenProp,
|
|
142
|
+
default: defaultOpen
|
|
143
|
+
});
|
|
144
|
+
const [isMounted, setIsMounted] = (0, react.useState)(isOpen);
|
|
145
|
+
if (isOpen && !isMounted) setIsMounted(true);
|
|
146
|
+
const close = (event, reason) => {
|
|
147
|
+
onClose?.(event, reason);
|
|
148
|
+
if (isOpenProp === void 0 && reason !== "clickaway") setIsOpen(false);
|
|
149
|
+
};
|
|
150
|
+
const latestClose = (0, react.useRef)(close);
|
|
151
|
+
(0, react.useEffect)(() => {
|
|
152
|
+
latestClose.current = close;
|
|
153
|
+
});
|
|
154
|
+
const { pause, resume } = useAutoHide({
|
|
155
|
+
isOpen,
|
|
156
|
+
duration: autoHideDuration,
|
|
157
|
+
resumeDuration: resumeHideDuration,
|
|
158
|
+
onHide: () => latestClose.current(new Event("timeout"), "timeout")
|
|
159
|
+
});
|
|
160
|
+
const contentRef = (0, react.useRef)(null);
|
|
161
|
+
(0, react.useEffect)(() => {
|
|
162
|
+
if (!isOpen) return void 0;
|
|
163
|
+
const handleKeyDown = (event) => {
|
|
164
|
+
if (event.key === "Escape") latestClose.current(event, "escapeKeyDown");
|
|
165
|
+
};
|
|
166
|
+
const handlePointerDown = (event) => {
|
|
167
|
+
if (!contentRef.current?.contains(event.target)) latestClose.current(event, "clickaway");
|
|
168
|
+
};
|
|
169
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
170
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
171
|
+
return () => {
|
|
172
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
173
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
174
|
+
};
|
|
175
|
+
}, [isOpen]);
|
|
176
|
+
if (!isMounted) return null;
|
|
177
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Portal.Portal, {
|
|
178
|
+
container,
|
|
179
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarRoot, {
|
|
180
|
+
anchorOrigin,
|
|
181
|
+
layer,
|
|
182
|
+
className,
|
|
183
|
+
"data-testid": dataTestid,
|
|
184
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Transition, {
|
|
185
|
+
isShown: isOpen,
|
|
186
|
+
onExited: () => setIsMounted(false),
|
|
187
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarContent, {
|
|
188
|
+
ref: contentRef,
|
|
189
|
+
role: "status",
|
|
190
|
+
shape,
|
|
191
|
+
borderRadius,
|
|
192
|
+
bg,
|
|
193
|
+
textColor,
|
|
194
|
+
onMouseEnter: pause,
|
|
195
|
+
onMouseLeave: resume,
|
|
196
|
+
onFocus: pause,
|
|
197
|
+
onBlur: resume,
|
|
198
|
+
children: children ?? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarMessage, { children: message }), action ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarAction, { children: action }) : null] })
|
|
199
|
+
})
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
exports.Snackbar = Snackbar;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { nt as Theme } from "./index-XN4-ZqTB.cjs";
|
|
2
|
+
import { n as TransitionProps } from "./useTransition-l9dv83-Y.cjs";
|
|
3
|
+
import { t as Shape } from "./getShapeRadius-B9ytqDSk.cjs";
|
|
4
|
+
import { n as PortalProps } from "./index-Ctx-DKV3.cjs";
|
|
5
|
+
import { ComponentType, ReactNode, SyntheticEvent } from "react";
|
|
6
|
+
//#region src/Snackbar/Snackbar.d.ts
|
|
7
|
+
/** Why a snackbar asks to close. */
|
|
8
|
+
type SnackbarCloseReason = 'timeout' | 'clickaway' | 'escapeKeyDown';
|
|
9
|
+
interface SnackbarAnchorOrigin {
|
|
10
|
+
vertical: 'top' | 'bottom';
|
|
11
|
+
/** `'start'` and `'end'` are the left and the right, and swap right to left. */
|
|
12
|
+
horizontal: 'start' | 'center' | 'end';
|
|
13
|
+
}
|
|
14
|
+
type SnackbarShape = Shape;
|
|
15
|
+
interface SnackbarProps {
|
|
16
|
+
/**
|
|
17
|
+
* Corner shape: `'square'` is 0, `'pill'` a full round, `'rounded'` the radius of `borderRadius`.
|
|
18
|
+
* Default: `'rounded'`.
|
|
19
|
+
*/
|
|
20
|
+
shape?: SnackbarShape;
|
|
21
|
+
/** The radius of a `'rounded'` snackbar, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. Other shapes ignore it. */
|
|
22
|
+
borderRadius?: keyof Theme['radii'];
|
|
23
|
+
/** Background, resolves against `theme.background`. Default: `'modal'`. */
|
|
24
|
+
bg?: keyof Theme['background'];
|
|
25
|
+
/** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
|
|
26
|
+
textColor?: keyof Theme['text'];
|
|
27
|
+
/** Whether it is shown. Controlled with `onClose`. */
|
|
28
|
+
isOpen?: boolean;
|
|
29
|
+
/** Whether it is shown at first, when uncontrolled. Default: `false`. */
|
|
30
|
+
defaultOpen?: boolean;
|
|
31
|
+
/** Fired when it asks to close, with why. Uncontrolled, it closes itself - but not on a click away. */
|
|
32
|
+
onClose?: (event: Event | SyntheticEvent, reason: SnackbarCloseReason) => void;
|
|
33
|
+
/** How long it stays, in milliseconds. Without it, it stays until it is closed. */
|
|
34
|
+
autoHideDuration?: number;
|
|
35
|
+
/** How long it stays once the pointer or focus has left it. Default: half of `autoHideDuration`. */
|
|
36
|
+
resumeHideDuration?: number;
|
|
37
|
+
/** The message. */
|
|
38
|
+
message?: ReactNode;
|
|
39
|
+
/** What sits after the message - a button. */
|
|
40
|
+
action?: ReactNode;
|
|
41
|
+
/** What it holds in place of the message and the action - an `Alert`. */
|
|
42
|
+
children?: ReactNode;
|
|
43
|
+
/** Which corner of the window it sits in. Default: `{ vertical: 'bottom', horizontal: 'start' }`. */
|
|
44
|
+
anchorOrigin?: SnackbarAnchorOrigin;
|
|
45
|
+
/** The transition that shows and hides it. Default: `Grow`. */
|
|
46
|
+
transition?: ComponentType<TransitionProps>;
|
|
47
|
+
/** Stacking layer from `theme.zOrder`. Default: `'snackbar'`. */
|
|
48
|
+
layer?: keyof Theme['zOrder'];
|
|
49
|
+
/** Portal target. Default: `document.body`. */
|
|
50
|
+
container?: Exclude<PortalProps['container'], undefined>;
|
|
51
|
+
className?: string;
|
|
52
|
+
'data-testid'?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description A transient message in a corner of the window, through a `Portal`. It hides itself
|
|
56
|
+
* after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
|
|
57
|
+
* close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
|
|
58
|
+
* politely, and never takes the focus. Several at once do not stack: the app queues them.
|
|
59
|
+
*/
|
|
60
|
+
declare function Snackbar({ isOpen: isOpenProp, defaultOpen, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, 'data-testid': dataTestid }: Readonly<SnackbarProps>): import("react").JSX.Element | null;
|
|
61
|
+
//#endregion
|
|
62
|
+
export { Snackbar, SnackbarAnchorOrigin, SnackbarCloseReason, SnackbarProps, SnackbarShape };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { nt as Theme } from "./index-CRQ7XLri.mjs";
|
|
2
|
+
import { n as TransitionProps } from "./useTransition-C1F7MuHO.mjs";
|
|
3
|
+
import { t as Shape } from "./getShapeRadius-B9ytqDSk.mjs";
|
|
4
|
+
import { n as PortalProps } from "./index-Ctx-DKV3.mjs";
|
|
5
|
+
import { ComponentType, ReactNode, SyntheticEvent } from "react";
|
|
6
|
+
//#region src/Snackbar/Snackbar.d.ts
|
|
7
|
+
/** Why a snackbar asks to close. */
|
|
8
|
+
type SnackbarCloseReason = 'timeout' | 'clickaway' | 'escapeKeyDown';
|
|
9
|
+
interface SnackbarAnchorOrigin {
|
|
10
|
+
vertical: 'top' | 'bottom';
|
|
11
|
+
/** `'start'` and `'end'` are the left and the right, and swap right to left. */
|
|
12
|
+
horizontal: 'start' | 'center' | 'end';
|
|
13
|
+
}
|
|
14
|
+
type SnackbarShape = Shape;
|
|
15
|
+
interface SnackbarProps {
|
|
16
|
+
/**
|
|
17
|
+
* Corner shape: `'square'` is 0, `'pill'` a full round, `'rounded'` the radius of `borderRadius`.
|
|
18
|
+
* Default: `'rounded'`.
|
|
19
|
+
*/
|
|
20
|
+
shape?: SnackbarShape;
|
|
21
|
+
/** The radius of a `'rounded'` snackbar, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. Other shapes ignore it. */
|
|
22
|
+
borderRadius?: keyof Theme['radii'];
|
|
23
|
+
/** Background, resolves against `theme.background`. Default: `'modal'`. */
|
|
24
|
+
bg?: keyof Theme['background'];
|
|
25
|
+
/** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
|
|
26
|
+
textColor?: keyof Theme['text'];
|
|
27
|
+
/** Whether it is shown. Controlled with `onClose`. */
|
|
28
|
+
isOpen?: boolean;
|
|
29
|
+
/** Whether it is shown at first, when uncontrolled. Default: `false`. */
|
|
30
|
+
defaultOpen?: boolean;
|
|
31
|
+
/** Fired when it asks to close, with why. Uncontrolled, it closes itself - but not on a click away. */
|
|
32
|
+
onClose?: (event: Event | SyntheticEvent, reason: SnackbarCloseReason) => void;
|
|
33
|
+
/** How long it stays, in milliseconds. Without it, it stays until it is closed. */
|
|
34
|
+
autoHideDuration?: number;
|
|
35
|
+
/** How long it stays once the pointer or focus has left it. Default: half of `autoHideDuration`. */
|
|
36
|
+
resumeHideDuration?: number;
|
|
37
|
+
/** The message. */
|
|
38
|
+
message?: ReactNode;
|
|
39
|
+
/** What sits after the message - a button. */
|
|
40
|
+
action?: ReactNode;
|
|
41
|
+
/** What it holds in place of the message and the action - an `Alert`. */
|
|
42
|
+
children?: ReactNode;
|
|
43
|
+
/** Which corner of the window it sits in. Default: `{ vertical: 'bottom', horizontal: 'start' }`. */
|
|
44
|
+
anchorOrigin?: SnackbarAnchorOrigin;
|
|
45
|
+
/** The transition that shows and hides it. Default: `Grow`. */
|
|
46
|
+
transition?: ComponentType<TransitionProps>;
|
|
47
|
+
/** Stacking layer from `theme.zOrder`. Default: `'snackbar'`. */
|
|
48
|
+
layer?: keyof Theme['zOrder'];
|
|
49
|
+
/** Portal target. Default: `document.body`. */
|
|
50
|
+
container?: Exclude<PortalProps['container'], undefined>;
|
|
51
|
+
className?: string;
|
|
52
|
+
'data-testid'?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description A transient message in a corner of the window, through a `Portal`. It hides itself
|
|
56
|
+
* after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
|
|
57
|
+
* close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
|
|
58
|
+
* politely, and never takes the focus. Several at once do not stack: the app queues them.
|
|
59
|
+
*/
|
|
60
|
+
declare function Snackbar({ isOpen: isOpenProp, defaultOpen, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, 'data-testid': dataTestid }: Readonly<SnackbarProps>): import("react").JSX.Element | null;
|
|
61
|
+
//#endregion
|
|
62
|
+
export { Snackbar, SnackbarAnchorOrigin, SnackbarCloseReason, SnackbarProps, SnackbarShape };
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { a as src_exports, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
|
|
2
|
+
import { n as useDefaultProps } from "./theme-oBfFhJm9.mjs";
|
|
3
|
+
import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
|
|
4
|
+
import { t as getSurfaceRadius } from "./getSurfaceRadius-DTgqIzll.mjs";
|
|
5
|
+
import { t as useControlled } from "./useControlled-CBRLsO-H.mjs";
|
|
6
|
+
import { t as getShapeRadius } from "./getShapeRadius-sY6-AGP4.mjs";
|
|
7
|
+
import { Portal } from "./Portal.mjs";
|
|
8
|
+
import { Grow } from "./Grow.mjs";
|
|
9
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
10
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
//#region src/Snackbar/hooks/useAutoHide.ts
|
|
12
|
+
/**
|
|
13
|
+
* The clock of a message that hides itself: it runs while the message is open, stops while the
|
|
14
|
+
* pointer or the focus is on it, and starts again - for `resumeDuration` - once they leave.
|
|
15
|
+
*/
|
|
16
|
+
function useAutoHide({ isOpen, duration, resumeDuration, onHide }) {
|
|
17
|
+
const timer = useRef(void 0);
|
|
18
|
+
const hide = useRef(onHide);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
hide.current = onHide;
|
|
21
|
+
});
|
|
22
|
+
const stop = useCallback(() => window.clearTimeout(timer.current), []);
|
|
23
|
+
const start = useCallback((ms) => {
|
|
24
|
+
stop();
|
|
25
|
+
if (ms !== void 0) timer.current = window.setTimeout(() => hide.current(), ms);
|
|
26
|
+
}, [stop]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!isOpen) return void 0;
|
|
29
|
+
start(duration);
|
|
30
|
+
return stop;
|
|
31
|
+
}, [
|
|
32
|
+
isOpen,
|
|
33
|
+
duration,
|
|
34
|
+
start,
|
|
35
|
+
stop
|
|
36
|
+
]);
|
|
37
|
+
return {
|
|
38
|
+
pause: stop,
|
|
39
|
+
resume: useCallback(() => {
|
|
40
|
+
if (!isOpen || duration === void 0) return;
|
|
41
|
+
start(resumeDuration ?? duration / 2);
|
|
42
|
+
}, [
|
|
43
|
+
isOpen,
|
|
44
|
+
duration,
|
|
45
|
+
resumeDuration,
|
|
46
|
+
start
|
|
47
|
+
])
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/Snackbar/Snackbar.tsx
|
|
52
|
+
const DEFAULT_ANCHOR = {
|
|
53
|
+
vertical: "bottom",
|
|
54
|
+
horizontal: "start"
|
|
55
|
+
};
|
|
56
|
+
const SnackbarRoot = styled("div", {
|
|
57
|
+
name: "Snackbar",
|
|
58
|
+
label: "Snackbar",
|
|
59
|
+
shouldForwardProp: createShouldForwardProp(["anchorOrigin", "layer"])
|
|
60
|
+
})(({ theme, anchorOrigin, layer }) => {
|
|
61
|
+
const { vertical, horizontal } = anchorOrigin;
|
|
62
|
+
return {
|
|
63
|
+
position: "fixed",
|
|
64
|
+
zIndex: theme.zOrder[layer],
|
|
65
|
+
display: "flex",
|
|
66
|
+
pointerEvents: "none",
|
|
67
|
+
[vertical]: theme.space[3],
|
|
68
|
+
...horizontal === "center" ? {
|
|
69
|
+
left: 0,
|
|
70
|
+
right: 0,
|
|
71
|
+
justifyContent: "center"
|
|
72
|
+
} : { [horizontal === "start" ? "insetInlineStart" : "insetInlineEnd"]: theme.space[3] }
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
const SnackbarContent = styled("div", {
|
|
76
|
+
name: "Snackbar",
|
|
77
|
+
slot: "content",
|
|
78
|
+
label: "SnackbarContent",
|
|
79
|
+
shouldForwardProp: createShouldForwardProp([
|
|
80
|
+
"shape",
|
|
81
|
+
"borderRadius",
|
|
82
|
+
"bg",
|
|
83
|
+
"textColor"
|
|
84
|
+
])
|
|
85
|
+
})(({ theme, shape, borderRadius, bg, textColor }) => ({
|
|
86
|
+
display: "flex",
|
|
87
|
+
alignItems: "center",
|
|
88
|
+
gap: theme.space[2],
|
|
89
|
+
boxSizing: "border-box",
|
|
90
|
+
minWidth: "18rem",
|
|
91
|
+
maxWidth: `calc(100vw - ${theme.space[3]} - ${theme.space[3]})`,
|
|
92
|
+
padding: `${theme.space[1]} ${theme.space[2]}`,
|
|
93
|
+
pointerEvents: "auto",
|
|
94
|
+
borderRadius: getShapeRadius(shape, getSurfaceRadius(theme, borderRadius)),
|
|
95
|
+
boxShadow: theme.shadows[6],
|
|
96
|
+
backgroundColor: (0, src_exports.get)(theme, `background.${bg ?? "modal"}`),
|
|
97
|
+
color: (0, src_exports.get)(theme, `text.${textColor ?? themeDefault(theme, "textColor", "initial")}`),
|
|
98
|
+
fontFamily: (0, src_exports.get)(theme, "fonts.body"),
|
|
99
|
+
fontSize: theme.fontSizes[1],
|
|
100
|
+
lineHeight: (0, src_exports.get)(theme, "lineHeights.base")
|
|
101
|
+
}));
|
|
102
|
+
const SnackbarMessage = styled("div", {
|
|
103
|
+
name: "Snackbar",
|
|
104
|
+
slot: "message",
|
|
105
|
+
label: "SnackbarMessage"
|
|
106
|
+
})(({ theme }) => ({
|
|
107
|
+
flex: 1,
|
|
108
|
+
minWidth: 0,
|
|
109
|
+
padding: `${theme.space[1]} 0`
|
|
110
|
+
}));
|
|
111
|
+
const SnackbarAction = styled("div", {
|
|
112
|
+
name: "Snackbar",
|
|
113
|
+
slot: "action",
|
|
114
|
+
label: "SnackbarAction"
|
|
115
|
+
})(({ theme }) => ({
|
|
116
|
+
display: "flex",
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
flexShrink: 0,
|
|
119
|
+
gap: theme.space[1],
|
|
120
|
+
marginInlineStart: "auto"
|
|
121
|
+
}));
|
|
122
|
+
/**
|
|
123
|
+
* @description A transient message in a corner of the window, through a `Portal`. It hides itself
|
|
124
|
+
* after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
|
|
125
|
+
* close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
|
|
126
|
+
* politely, and never takes the focus. Several at once do not stack: the app queues them.
|
|
127
|
+
*/
|
|
128
|
+
function Snackbar({ isOpen: isOpenProp, defaultOpen = false, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition = Grow, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, "data-testid": dataTestid }) {
|
|
129
|
+
const dp = useDefaultProps("Snackbar");
|
|
130
|
+
const autoHideDuration = autoHideDurationProp ?? dp.autoHideDuration;
|
|
131
|
+
const resumeHideDuration = resumeHideDurationProp ?? dp.resumeHideDuration;
|
|
132
|
+
const anchorOrigin = anchorOriginProp ?? dp.anchorOrigin ?? DEFAULT_ANCHOR;
|
|
133
|
+
const layer = layerProp ?? dp.layer ?? "snackbar";
|
|
134
|
+
const shape = shapeProp ?? dp.shape ?? "rounded";
|
|
135
|
+
const borderRadius = borderRadiusProp ?? dp.borderRadius;
|
|
136
|
+
const bg = bgProp ?? dp.bg;
|
|
137
|
+
const textColor = textColorProp ?? dp.textColor;
|
|
138
|
+
const [isOpen, setIsOpen] = useControlled({
|
|
139
|
+
controlled: isOpenProp,
|
|
140
|
+
default: defaultOpen
|
|
141
|
+
});
|
|
142
|
+
const [isMounted, setIsMounted] = useState(isOpen);
|
|
143
|
+
if (isOpen && !isMounted) setIsMounted(true);
|
|
144
|
+
const close = (event, reason) => {
|
|
145
|
+
onClose?.(event, reason);
|
|
146
|
+
if (isOpenProp === void 0 && reason !== "clickaway") setIsOpen(false);
|
|
147
|
+
};
|
|
148
|
+
const latestClose = useRef(close);
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
latestClose.current = close;
|
|
151
|
+
});
|
|
152
|
+
const { pause, resume } = useAutoHide({
|
|
153
|
+
isOpen,
|
|
154
|
+
duration: autoHideDuration,
|
|
155
|
+
resumeDuration: resumeHideDuration,
|
|
156
|
+
onHide: () => latestClose.current(new Event("timeout"), "timeout")
|
|
157
|
+
});
|
|
158
|
+
const contentRef = useRef(null);
|
|
159
|
+
useEffect(() => {
|
|
160
|
+
if (!isOpen) return void 0;
|
|
161
|
+
const handleKeyDown = (event) => {
|
|
162
|
+
if (event.key === "Escape") latestClose.current(event, "escapeKeyDown");
|
|
163
|
+
};
|
|
164
|
+
const handlePointerDown = (event) => {
|
|
165
|
+
if (!contentRef.current?.contains(event.target)) latestClose.current(event, "clickaway");
|
|
166
|
+
};
|
|
167
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
168
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
169
|
+
return () => {
|
|
170
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
171
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
172
|
+
};
|
|
173
|
+
}, [isOpen]);
|
|
174
|
+
if (!isMounted) return null;
|
|
175
|
+
return /* @__PURE__ */ jsx(Portal, {
|
|
176
|
+
container,
|
|
177
|
+
children: /* @__PURE__ */ jsx(SnackbarRoot, {
|
|
178
|
+
anchorOrigin,
|
|
179
|
+
layer,
|
|
180
|
+
className,
|
|
181
|
+
"data-testid": dataTestid,
|
|
182
|
+
children: /* @__PURE__ */ jsx(Transition, {
|
|
183
|
+
isShown: isOpen,
|
|
184
|
+
onExited: () => setIsMounted(false),
|
|
185
|
+
children: /* @__PURE__ */ jsx(SnackbarContent, {
|
|
186
|
+
ref: contentRef,
|
|
187
|
+
role: "status",
|
|
188
|
+
shape,
|
|
189
|
+
borderRadius,
|
|
190
|
+
bg,
|
|
191
|
+
textColor,
|
|
192
|
+
onMouseEnter: pause,
|
|
193
|
+
onMouseLeave: resume,
|
|
194
|
+
onFocus: pause,
|
|
195
|
+
onBlur: resume,
|
|
196
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(SnackbarMessage, { children: message }), action ? /* @__PURE__ */ jsx(SnackbarAction, { children: action }) : null] })
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
})
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
//#endregion
|
|
203
|
+
export { Snackbar };
|