@soroush.tech/design-system 2.0.0-rc.1 → 2.0.0-rc.3
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 +30 -10
- package/dist/AppBar.d.cts +1 -3
- package/dist/AppBar.d.mts +1 -3
- package/dist/Avatar.cjs +1 -1
- package/dist/Avatar.d.cts +1 -3
- package/dist/Avatar.d.mts +1 -3
- package/dist/Avatar.mjs +1 -1
- package/dist/Backdrop.d.cts +1 -1
- package/dist/Backdrop.d.mts +1 -1
- package/dist/Breadcrumbs.cjs +132 -0
- package/dist/Breadcrumbs.d.cts +40 -0
- package/dist/Breadcrumbs.d.mts +40 -0
- package/dist/Breadcrumbs.mjs +131 -0
- package/dist/Button.cjs +1 -1
- package/dist/Button.d.cts +1 -1
- package/dist/Button.d.mts +1 -1
- package/dist/Button.mjs +1 -1
- package/dist/ButtonGroup.d.cts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/Card.cjs +3 -3
- package/dist/Card.d.cts +4 -3
- package/dist/Card.d.mts +4 -3
- package/dist/Card.mjs +3 -3
- package/dist/Checkbox.d.cts +1 -2
- package/dist/Checkbox.d.mts +1 -2
- package/dist/CircularProgress.d.cts +2 -3
- package/dist/CircularProgress.d.mts +2 -3
- package/dist/Drawer.d.cts +3 -2
- package/dist/Drawer.d.mts +3 -2
- 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 +10 -2
- package/dist/FormControl.d.cts +9 -2
- package/dist/FormControl.d.mts +9 -2
- package/dist/FormControl.mjs +10 -2
- package/dist/FormHelperText.d.cts +1 -1
- package/dist/FormHelperText.d.mts +1 -1
- package/dist/FormLabel.cjs +9 -1
- package/dist/FormLabel.d.cts +2 -2
- package/dist/FormLabel.d.mts +2 -2
- package/dist/FormLabel.mjs +10 -2
- package/dist/Grid.d.cts +1 -3
- package/dist/Grid.d.mts +1 -3
- package/dist/{Icon-CH3asUJu.mjs → Icon-BihOAP4u.mjs} +52 -2
- package/dist/{Icon-CI6q2Eyi.cjs → Icon-D-EWsBVg.cjs} +52 -2
- 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 -2
- package/dist/Image.d.mts +1 -2
- package/dist/InputRange.cjs +675 -0
- package/dist/InputRange.d.cts +79 -0
- package/dist/InputRange.d.mts +79 -0
- package/dist/InputRange.mjs +673 -0
- package/dist/LinearProgress.d.cts +2 -3
- package/dist/LinearProgress.d.mts +2 -3
- package/dist/Link.cjs +1 -1
- package/dist/Link.d.cts +1 -1
- package/dist/Link.d.mts +1 -1
- package/dist/Link.mjs +1 -1
- package/dist/Menu/ContextMenu.cjs +146 -0
- package/dist/Menu/ContextMenu.d.cts +52 -0
- package/dist/Menu/ContextMenu.d.mts +52 -0
- package/dist/Menu/ContextMenu.mjs +145 -0
- package/dist/Menu/Menu.cjs +3 -0
- package/dist/Menu/Menu.d.cts +2 -0
- package/dist/Menu/Menu.d.mts +2 -0
- package/dist/Menu/Menu.mjs +2 -0
- package/dist/Menu/MenuDivider.cjs +29 -0
- package/dist/Menu/MenuDivider.d.cts +12 -0
- package/dist/Menu/MenuDivider.d.mts +12 -0
- package/dist/Menu/MenuDivider.mjs +28 -0
- package/dist/Menu/MenuItems.cjs +29 -0
- package/dist/Menu/MenuItems.d.cts +2 -0
- package/dist/Menu/MenuItems.d.mts +2 -0
- package/dist/Menu/MenuItems.mjs +28 -0
- package/dist/Menu/MenuList.cjs +3 -0
- package/dist/Menu/MenuList.d.cts +38 -0
- package/dist/Menu/MenuList.d.mts +38 -0
- package/dist/Menu/MenuList.mjs +2 -0
- package/dist/Menu-Cgg-sX4W.cjs +173 -0
- package/dist/Menu-CrzHc_cn.mjs +168 -0
- package/dist/Menu.cjs +13 -0
- package/dist/Menu.d.cts +7 -0
- package/dist/Menu.d.mts +7 -0
- package/dist/Menu.mjs +6 -0
- package/dist/MenuItem-BTP7Ijwi.cjs +673 -0
- package/dist/MenuItem-DUn4IZKK.mjs +649 -0
- package/dist/MenuItem.cjs +2 -148
- package/dist/MenuItem.d.cts +2 -52
- package/dist/MenuItem.d.mts +2 -52
- package/dist/MenuItem.mjs +1 -147
- package/dist/MenuList-B7msJ1IG.mjs +187 -0
- package/dist/MenuList-D4imLXAa.cjs +223 -0
- package/dist/MenuListContext-DKUOhNyw.d.cts +21 -0
- package/dist/MenuListContext-x-7lH4CH.d.mts +21 -0
- package/dist/Modal.d.cts +1 -1
- package/dist/Modal.d.mts +1 -1
- package/dist/NativeSelect.cjs +9 -8
- package/dist/NativeSelect.d.cts +3 -4
- package/dist/NativeSelect.d.mts +3 -4
- package/dist/NativeSelect.mjs +9 -8
- package/dist/NumberField.cjs +476 -0
- package/dist/NumberField.d.cts +74 -0
- package/dist/NumberField.d.mts +74 -0
- package/dist/NumberField.mjs +474 -0
- package/dist/Pagination/PaginationItem.cjs +1 -1
- package/dist/Pagination/PaginationItem.d.cts +1 -1
- package/dist/Pagination/PaginationItem.d.mts +1 -1
- package/dist/Pagination/PaginationItem.mjs +1 -1
- package/dist/Pagination.d.cts +2 -2
- package/dist/Pagination.d.mts +2 -2
- package/dist/Paper.cjs +1 -1
- package/dist/Paper.d.cts +2 -1
- package/dist/Paper.d.mts +2 -1
- package/dist/Paper.mjs +1 -1
- package/dist/{Popover-TpwRSORC.cjs → Popover-CiZfgiKE.cjs} +5 -125
- package/dist/Popover-QjM5Z1CR.mjs +133 -0
- package/dist/Popover.cjs +1 -1
- package/dist/Popover.d.cts +6 -7
- package/dist/Popover.d.mts +6 -7
- package/dist/Popover.mjs +1 -1
- package/dist/Pressable.cjs +1 -1
- package/dist/Pressable.d.cts +1 -1
- package/dist/Pressable.d.mts +1 -1
- package/dist/Pressable.mjs +1 -1
- package/dist/Quote.d.cts +2 -3
- package/dist/Quote.d.mts +2 -3
- package/dist/Radio.d.cts +1 -2
- package/dist/Radio.d.mts +1 -2
- 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/Select.cjs +5 -4
- package/dist/Select.d.cts +3 -4
- package/dist/Select.d.mts +3 -4
- package/dist/Select.mjs +7 -6
- package/dist/Sidebar/Sidebar.d.cts +1 -1
- package/dist/Sidebar/Sidebar.d.mts +1 -1
- package/dist/Sidebar/SidebarItem.cjs +1 -1
- package/dist/Sidebar/SidebarItem.d.cts +3 -4
- package/dist/Sidebar/SidebarItem.d.mts +3 -4
- package/dist/Sidebar/SidebarItem.mjs +3 -3
- package/dist/Skeleton.d.cts +1 -2
- package/dist/Skeleton.d.mts +1 -2
- package/dist/Switch.cjs +23 -16
- package/dist/Switch.d.cts +2 -3
- package/dist/Switch.d.mts +2 -3
- package/dist/Switch.mjs +25 -18
- package/dist/Table/Table.d.cts +2 -3
- package/dist/Table/Table.d.mts +2 -3
- package/dist/Table/TableBody.d.cts +1 -2
- package/dist/Table/TableBody.d.mts +1 -2
- package/dist/Table/TableCell.d.cts +1 -1
- package/dist/Table/TableCell.d.mts +1 -1
- package/dist/Table/TableContainer.d.cts +1 -3
- package/dist/Table/TableContainer.d.mts +1 -3
- 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 -2
- package/dist/Table/TableFooter.d.mts +1 -2
- package/dist/Table/TableHead.d.cts +1 -2
- package/dist/Table/TableHead.d.mts +1 -2
- package/dist/Table/TablePagination.d.cts +2 -2
- package/dist/Table/TablePagination.d.mts +2 -2
- 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 -2
- package/dist/Table/TableRow.d.mts +1 -2
- 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-BeCxbtHH.d.cts → TableContext-DhuRf6Wy.d.mts} +1 -1
- package/dist/{TableContext-BiRiYkVZ.d.mts → TableContext-Duj1nVG7.d.cts} +1 -1
- package/dist/Tabs/Tab.cjs +306 -0
- package/dist/Tabs/Tab.d.cts +62 -0
- package/dist/Tabs/Tab.d.mts +62 -0
- package/dist/Tabs/Tab.mjs +305 -0
- package/dist/Tabs/TabContext.cjs +34 -0
- package/dist/Tabs/TabContext.d.cts +20 -0
- package/dist/Tabs/TabContext.d.mts +20 -0
- package/dist/Tabs/TabContext.mjs +33 -0
- package/dist/Tabs/TabList.cjs +31 -0
- package/dist/Tabs/TabList.d.cts +11 -0
- package/dist/Tabs/TabList.d.mts +11 -0
- package/dist/Tabs/TabList.mjs +30 -0
- package/dist/Tabs/TabPanel.cjs +40 -0
- package/dist/Tabs/TabPanel.d.cts +27 -0
- package/dist/Tabs/TabPanel.d.mts +27 -0
- package/dist/Tabs/TabPanel.mjs +38 -0
- package/dist/Tabs/TabScrollButton.cjs +93 -0
- package/dist/Tabs/TabScrollButton.d.cts +2 -0
- package/dist/Tabs/TabScrollButton.d.mts +2 -0
- package/dist/Tabs/TabScrollButton.mjs +91 -0
- package/dist/Tabs/Tabs.cjs +3 -0
- package/dist/Tabs/Tabs.d.cts +3 -0
- package/dist/Tabs/Tabs.d.mts +3 -0
- package/dist/Tabs/Tabs.mjs +2 -0
- package/dist/Tabs-BTNOJx5v.mjs +634 -0
- package/dist/Tabs-D4tWCq78.cjs +646 -0
- package/dist/Tabs.cjs +13 -0
- package/dist/Tabs.d.cts +8 -0
- package/dist/Tabs.d.mts +8 -0
- package/dist/Tabs.mjs +7 -0
- package/dist/TabsContext-B_XHbjcS.d.cts +6 -0
- package/dist/TabsContext-Dn2kqUwr.d.mts +6 -0
- package/dist/TabsValueContext-D40zGCpE.cjs +19 -0
- package/dist/TabsValueContext-DvL3inf7.mjs +8 -0
- package/dist/TextInput.cjs +4 -4
- package/dist/TextInput.d.cts +2 -3
- package/dist/TextInput.d.mts +2 -3
- package/dist/TextInput.mjs +4 -4
- package/dist/ToggleButton/ToggleButton.cjs +1 -1
- package/dist/ToggleButton/ToggleButton.d.cts +1 -1
- package/dist/ToggleButton/ToggleButton.d.mts +1 -1
- package/dist/ToggleButton/ToggleButton.mjs +1 -1
- 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/TransferList.cjs +356 -0
- package/dist/TransferList.d.cts +67 -0
- package/dist/TransferList.d.mts +67 -0
- package/dist/TransferList.mjs +354 -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/catalog.cjs +4568 -0
- package/dist/catalog.d.cts +90 -0
- package/dist/catalog.d.mts +90 -0
- package/dist/catalog.mjs +4567 -0
- package/dist/computePopoverPosition-BIprs_xo.mjs +123 -0
- package/dist/computePopoverPosition-DiyEOHnU.cjs +128 -0
- package/dist/dividerLine-BNljcGlv.cjs +66 -0
- package/dist/dividerLine-FahY-M6_.mjs +31 -0
- package/dist/engine.d.cts +1 -1
- package/dist/engine.d.mts +1 -1
- package/dist/index-B1RFybA_.d.mts +72 -0
- package/dist/index-B4TeaB7b.d.cts +72 -0
- package/dist/{index-BUoVTCqX.d.mts → index-BGbTuHP9.d.mts} +1 -2
- package/dist/{index-Celm-8iN.d.cts → index-BHKgEOZJ.d.cts} +2 -3
- package/dist/{index-Chg6pSrr.d.mts → index-BQWjh4rK.d.mts} +2 -3
- package/dist/{index-B78VkB0-.d.cts → index-BelFIizY.d.cts} +2 -3
- package/dist/index-BkzZxHVj.d.mts +35 -0
- package/dist/{index-DbEnSf2m.d.cts → index-BrgwkY6z.d.mts} +3 -4
- package/dist/{index-Wnv6jCR3.d.mts → index-Bx0-6yeX.d.mts} +1 -2
- package/dist/index-BxVTIMnB.d.cts +1 -0
- package/dist/{index-BfZuh9c2.d.mts → index-ByYxVl9O.d.mts} +2 -3
- package/dist/index-CE5JG1us.d.mts +34 -0
- package/dist/{index-BhibLnZ0.d.cts → index-CG_1uPrD.d.mts} +2 -3
- package/dist/{themes-RX2UX5gD.d.mts → index-CJhK7JND.d.mts} +265 -8
- package/dist/{index-BB-dLv5V.d.mts → index-CQfJZADG.d.cts} +3 -4
- package/dist/{index-CxUsrlg1.d.cts → index-CUz2h5xY.d.mts} +2 -3
- package/dist/{index-Bid71KeF.d.cts → index-CbFaWtjK.d.mts} +2 -2
- package/dist/{index-DdqdSOct.d.cts → index-ChXeKJCk.d.cts} +1 -2
- package/dist/index-CknoXDLQ.d.cts +35 -0
- package/dist/{index-BSqet8aO.d.cts → index-ClZyaZrR.d.mts} +2 -3
- package/dist/{index-DXvQ-JVZ.d.mts → index-DAwcmIjN.d.cts} +2 -3
- package/dist/index-DGnXJwLj.d.mts +72 -0
- package/dist/{themes-Kbk9h5cN.d.cts → index-DJ0f69wh.d.cts} +262 -5
- package/dist/index-DWjz5ZzG.d.cts +72 -0
- package/dist/{index-DNwF3DUX.d.cts → index-DYF8sRE-.d.cts} +2 -3
- package/dist/index-DaIIo5QU.d.mts +1 -0
- package/dist/{index-CrN4MSUF.d.cts → index-DchHf5cF.d.cts} +1 -1
- package/dist/{index-S-ClM6WM.d.mts → index-DtYjdBvO.d.cts} +2 -2
- package/dist/{index-Ctqajtac.d.cts → index-Dv_fk1_F.d.cts} +27 -3
- package/dist/{index-smqjMLAZ.d.mts → index-K5exjvnX.d.cts} +2 -3
- package/dist/index-KnXhlKMr.d.cts +34 -0
- package/dist/index-WHFhjfgy.d.cts +98 -0
- package/dist/{index-GpnmW6vu.d.mts → index-YKrfFC_I.d.cts} +2 -3
- package/dist/index-bpnLB_4K.d.mts +98 -0
- package/dist/{index-VOsBSWEu.d.mts → index-h4dYtVrp.d.mts} +1 -1
- package/dist/{index-DO9J-Fla.d.mts → index-ha1WjSZ5.d.mts} +27 -3
- package/dist/{index-Belxmt1X.d.cts → index-nqUA_6J_.d.cts} +1 -2
- package/dist/{index-nc4Sxiy9.d.mts → index-pTNq3iQn.d.mts} +2 -3
- package/dist/index.d.cts +1 -2
- package/dist/index.d.mts +1 -2
- 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/surfaceSystem-BGQBoXv_.cjs +38 -0
- package/dist/surfaceSystem-D8TbmKy3.mjs +21 -0
- package/dist/theme-BxXuXRgQ.cjs +137 -0
- package/dist/theme-Z9_QludW.mjs +102 -0
- package/dist/theme.cjs +25 -24
- package/dist/theme.d.cts +3 -3
- package/dist/theme.d.mts +3 -3
- package/dist/theme.mjs +2 -1
- package/dist/{theme-CDVxig_g.mjs → themes-L-dE7_ck.mjs} +10 -110
- package/dist/{theme-BXlAP3xf.cjs → themes-gd6tcmqS.cjs} +0 -136
- package/dist/useControlled-C666KpQ0.cjs +18 -0
- package/dist/useControlled-CBRLsO-H.mjs +13 -0
- package/dist/{useTablePagination-COTiNH_8.d.mts → useTablePagination-C-u3ru4N.d.cts} +1 -1
- package/dist/{useTablePagination-WFkaUZu8.d.cts → useTablePagination-D-39ZmQh.d.mts} +1 -1
- package/package.json +83 -2
- package/dist/Popover-DwnSLpp1.mjs +0 -253
- package/dist/index-B_dKjEDR.d.mts +0 -23
- package/dist/index-C1WqEDtQ.d.mts +0 -69
- package/dist/index-CA7HnbtH.d.cts +0 -21
- package/dist/index-CKZaErxJ.d.mts +0 -21
- package/dist/index-DBUwu65Z.d.cts +0 -69
- package/dist/index-DzQJSYIh.d.cts +0 -23
- package/dist/index-cuv3o-L7.d.mts +0 -34
- package/dist/index-nB94D7UM.d.cts +0 -34
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { U as TabsVariants, W as Theme } from "./index-DJ0f69wh.cjs";
|
|
2
|
+
import "./index-DchHf5cF.cjs";
|
|
3
|
+
import { t as TabValue } from "./TabsContext-B_XHbjcS.cjs";
|
|
4
|
+
import { n as TabScrollButtonProps } from "./index-KnXhlKMr.cjs";
|
|
5
|
+
import { ComponentType, ReactNode, Ref } from "react";
|
|
6
|
+
import { SpaceProps } from "@soroush.tech/styled-system";
|
|
7
|
+
//#region src/Tabs/Tabs/Tabs.d.ts
|
|
8
|
+
type TabsVariant = keyof TabsVariants;
|
|
9
|
+
type TabsOrientation = 'horizontal' | 'vertical';
|
|
10
|
+
/** What the row does when its tabs don't fit: scroll, list the rest in a menu, or nothing. */
|
|
11
|
+
type TabsOverflowBehavior = 'scroll' | 'menu' | 'none';
|
|
12
|
+
/** When a scrolling row shows its scroll buttons. */
|
|
13
|
+
type TabsScrollButtons = 'auto' | 'always' | 'never';
|
|
14
|
+
/** What `action` exposes. */
|
|
15
|
+
interface TabsActions {
|
|
16
|
+
/** Re-measures the selected tab for the indicator - after a font loads or a label changes. */
|
|
17
|
+
updateIndicator: () => void;
|
|
18
|
+
/** Re-reads whether the tabs overflow - for the scroll buttons, or which tabs go to the menu. */
|
|
19
|
+
updateOverflow: () => void;
|
|
20
|
+
}
|
|
21
|
+
interface TabsProps extends SpaceProps<Theme> {
|
|
22
|
+
/** `Tab`s. */
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
/** The selected tab's value - `null` for none. Controlled with `onChange`. */
|
|
25
|
+
value?: TabValue | null;
|
|
26
|
+
/** The selected tab's value at first, when uncontrolled. */
|
|
27
|
+
defaultValue?: TabValue | null;
|
|
28
|
+
/** Fired with a tab's value when it is chosen. */
|
|
29
|
+
onChange?: (value: TabValue) => void;
|
|
30
|
+
/** Fired with a closable tab's value when its close button, a middle click or Delete closes it. Removing the tab, and picking the next selection, are the app's. */
|
|
31
|
+
onTabClose?: (value: TabValue) => void;
|
|
32
|
+
/** `'nav'` makes it a navigation of links or buttons (`aria-current="page"`) rather than a `tablist`. Default: `'div'`. */
|
|
33
|
+
as?: 'div' | 'nav';
|
|
34
|
+
/** Default: `'horizontal'`. */
|
|
35
|
+
orientation?: TabsOrientation;
|
|
36
|
+
/** The look: an indicator under the selected tab, or the selected tab boxed. Default: `'underline'`, overridable via `theme.components.Tabs.defaultProps`. */
|
|
37
|
+
variant?: TabsVariant;
|
|
38
|
+
/** The indicator's or outline's color - resolves to `theme.palette[color]`. Default: `'primary'`. */
|
|
39
|
+
color?: keyof Theme['palette'];
|
|
40
|
+
/** The labels' color - resolves against `theme.text`. Default: `'primary'`. */
|
|
41
|
+
textColor?: keyof Theme['text'];
|
|
42
|
+
/** Density token - resolves against `theme.sizes`. Default: `'md'`. */
|
|
43
|
+
size?: keyof Theme['sizes'];
|
|
44
|
+
/** The tabs share the row's width equally. Default: `false`. */
|
|
45
|
+
fullWidth?: boolean;
|
|
46
|
+
/** The tabs sit in the middle of the row. Default: `false`. */
|
|
47
|
+
isCentered?: boolean;
|
|
48
|
+
/** Moving focus with the arrow keys selects as it goes. Default: `false` - Enter or Space selects. */
|
|
49
|
+
shouldSelectOnFocus?: boolean;
|
|
50
|
+
/** What the row does when its tabs don't fit: `'scroll'` - it scrolls, with scroll buttons; `'menu'` - it shows the tabs that fit whole and lists the rest in a menu. Default: `'none'`. */
|
|
51
|
+
overflowBehavior?: TabsOverflowBehavior;
|
|
52
|
+
/** With `overflowBehavior="menu"`: names the button that opens the menu of the tabs that don't fit ("More tabs"). */
|
|
53
|
+
overflowLabel?: string;
|
|
54
|
+
/** With `overflowBehavior="scroll"`: `'auto'` shows them while the tabs overflow, each only while tabs are out of view its way; `'always'` keeps both, disabled at an end; `'never'` hides them. Default: `'auto'`. */
|
|
55
|
+
scrollButtons?: TabsScrollButtons;
|
|
56
|
+
/** Show the scroll buttons on narrow screens too, where swiping does the job. Default: `false`. */
|
|
57
|
+
shouldShowScrollButtonsOnMobile?: boolean;
|
|
58
|
+
/** Show the list's scrollbar. Default: `false`. */
|
|
59
|
+
hasVisibleScrollbar?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* A line along the row's foot (a column's end side), under its own content too. In the
|
|
62
|
+
* enclosed look it runs round the selected tab. Default: `true`, but `false` in the boxed look.
|
|
63
|
+
*/
|
|
64
|
+
hasDivider?: boolean;
|
|
65
|
+
/** The tab strip's ground - resolves against `theme.background`. */
|
|
66
|
+
bg?: keyof Theme['background'];
|
|
67
|
+
/**
|
|
68
|
+
* The selected tab's ground - resolves against `theme.background`. Give its `TabPanel` the same
|
|
69
|
+
* `bg` and the two read as one. Default: `'paper'` in the boxed look, and in the enclosed look
|
|
70
|
+
* without a divider; none otherwise.
|
|
71
|
+
*/
|
|
72
|
+
selectedBg?: keyof Theme['background'];
|
|
73
|
+
/** Components in place of its own: `scrollButton` - a button that takes `TabScrollButton`'s props. */
|
|
74
|
+
slots?: {
|
|
75
|
+
scrollButton?: ComponentType<TabScrollButtonProps>;
|
|
76
|
+
};
|
|
77
|
+
/** Before the tabs - an icon, a button, any component. The arrow keys don't reach it. */
|
|
78
|
+
startContent?: ReactNode;
|
|
79
|
+
/** After the tabs - a toolbar, a "+" button, any component. The arrow keys don't reach it. */
|
|
80
|
+
endContent?: ReactNode;
|
|
81
|
+
/** Imperative handle - see `TabsActions`. */
|
|
82
|
+
action?: Ref<TabsActions>;
|
|
83
|
+
'aria-label'?: string;
|
|
84
|
+
'aria-labelledby'?: string;
|
|
85
|
+
id?: string;
|
|
86
|
+
className?: string;
|
|
87
|
+
'data-testid'?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @description A row of tabs. By default a `tablist`: one tab in the page's tab order, the
|
|
91
|
+
* arrow keys of its orientation moving between tabs, Enter or Space selecting (or moving
|
|
92
|
+
* focus selecting, with `shouldSelectOnFocus`). With `as="nav"`, the same look as a
|
|
93
|
+
* navigation, its current tab marked `aria-current="page"`. Content of the row's own sits
|
|
94
|
+
* before and after the tabs.
|
|
95
|
+
*/
|
|
96
|
+
declare function Tabs({ children, value: valueProp, defaultValue, onChange, onTabClose, as, orientation, variant: variantProp, color: colorProp, textColor, size: sizeProp, fullWidth, isCentered, shouldSelectOnFocus, overflowBehavior, overflowLabel, scrollButtons, shouldShowScrollButtonsOnMobile, hasVisibleScrollbar, hasDivider: hasDividerProp, bg, selectedBg: selectedBgProp, slots, startContent, endContent, action, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, id, className, 'data-testid': dataTestid, ...spaceProps }: Readonly<TabsProps>): import("react").JSX.Element;
|
|
97
|
+
//#endregion
|
|
98
|
+
export { TabsProps as a, TabsOverflowBehavior as i, TabsActions as n, TabsScrollButtons as o, TabsOrientation as r, TabsVariant as s, Tabs as t };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-C1WqEDtQ.mjs";
|
|
3
|
-
import { BorderProps, LayoutProps, SpaceProps, TypographyProps } from "@soroush.tech/styled-system";
|
|
1
|
+
import { P as PaletteColor, W as Theme } from "./index-DJ0f69wh.cjs";
|
|
4
2
|
import { ButtonHTMLAttributes, ElementType } from "react";
|
|
3
|
+
import { BorderProps, LayoutProps, SpaceProps, TypographyProps } from "@soroush.tech/styled-system";
|
|
5
4
|
//#region src/Pressable/Pressable.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Press feedback: `none` leaves the wrapped content untouched, `opacity` dims it
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { U as TabsVariants, W as Theme } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import "./index-h4dYtVrp.mjs";
|
|
3
|
+
import { t as TabValue } from "./TabsContext-Dn2kqUwr.mjs";
|
|
4
|
+
import { n as TabScrollButtonProps } from "./index-CE5JG1us.mjs";
|
|
5
|
+
import { SpaceProps } from "@soroush.tech/styled-system";
|
|
6
|
+
import { ComponentType, ReactNode, Ref } from "react";
|
|
7
|
+
//#region src/Tabs/Tabs/Tabs.d.ts
|
|
8
|
+
type TabsVariant = keyof TabsVariants;
|
|
9
|
+
type TabsOrientation = 'horizontal' | 'vertical';
|
|
10
|
+
/** What the row does when its tabs don't fit: scroll, list the rest in a menu, or nothing. */
|
|
11
|
+
type TabsOverflowBehavior = 'scroll' | 'menu' | 'none';
|
|
12
|
+
/** When a scrolling row shows its scroll buttons. */
|
|
13
|
+
type TabsScrollButtons = 'auto' | 'always' | 'never';
|
|
14
|
+
/** What `action` exposes. */
|
|
15
|
+
interface TabsActions {
|
|
16
|
+
/** Re-measures the selected tab for the indicator - after a font loads or a label changes. */
|
|
17
|
+
updateIndicator: () => void;
|
|
18
|
+
/** Re-reads whether the tabs overflow - for the scroll buttons, or which tabs go to the menu. */
|
|
19
|
+
updateOverflow: () => void;
|
|
20
|
+
}
|
|
21
|
+
interface TabsProps extends SpaceProps<Theme> {
|
|
22
|
+
/** `Tab`s. */
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
/** The selected tab's value - `null` for none. Controlled with `onChange`. */
|
|
25
|
+
value?: TabValue | null;
|
|
26
|
+
/** The selected tab's value at first, when uncontrolled. */
|
|
27
|
+
defaultValue?: TabValue | null;
|
|
28
|
+
/** Fired with a tab's value when it is chosen. */
|
|
29
|
+
onChange?: (value: TabValue) => void;
|
|
30
|
+
/** Fired with a closable tab's value when its close button, a middle click or Delete closes it. Removing the tab, and picking the next selection, are the app's. */
|
|
31
|
+
onTabClose?: (value: TabValue) => void;
|
|
32
|
+
/** `'nav'` makes it a navigation of links or buttons (`aria-current="page"`) rather than a `tablist`. Default: `'div'`. */
|
|
33
|
+
as?: 'div' | 'nav';
|
|
34
|
+
/** Default: `'horizontal'`. */
|
|
35
|
+
orientation?: TabsOrientation;
|
|
36
|
+
/** The look: an indicator under the selected tab, or the selected tab boxed. Default: `'underline'`, overridable via `theme.components.Tabs.defaultProps`. */
|
|
37
|
+
variant?: TabsVariant;
|
|
38
|
+
/** The indicator's or outline's color - resolves to `theme.palette[color]`. Default: `'primary'`. */
|
|
39
|
+
color?: keyof Theme['palette'];
|
|
40
|
+
/** The labels' color - resolves against `theme.text`. Default: `'primary'`. */
|
|
41
|
+
textColor?: keyof Theme['text'];
|
|
42
|
+
/** Density token - resolves against `theme.sizes`. Default: `'md'`. */
|
|
43
|
+
size?: keyof Theme['sizes'];
|
|
44
|
+
/** The tabs share the row's width equally. Default: `false`. */
|
|
45
|
+
fullWidth?: boolean;
|
|
46
|
+
/** The tabs sit in the middle of the row. Default: `false`. */
|
|
47
|
+
isCentered?: boolean;
|
|
48
|
+
/** Moving focus with the arrow keys selects as it goes. Default: `false` - Enter or Space selects. */
|
|
49
|
+
shouldSelectOnFocus?: boolean;
|
|
50
|
+
/** What the row does when its tabs don't fit: `'scroll'` - it scrolls, with scroll buttons; `'menu'` - it shows the tabs that fit whole and lists the rest in a menu. Default: `'none'`. */
|
|
51
|
+
overflowBehavior?: TabsOverflowBehavior;
|
|
52
|
+
/** With `overflowBehavior="menu"`: names the button that opens the menu of the tabs that don't fit ("More tabs"). */
|
|
53
|
+
overflowLabel?: string;
|
|
54
|
+
/** With `overflowBehavior="scroll"`: `'auto'` shows them while the tabs overflow, each only while tabs are out of view its way; `'always'` keeps both, disabled at an end; `'never'` hides them. Default: `'auto'`. */
|
|
55
|
+
scrollButtons?: TabsScrollButtons;
|
|
56
|
+
/** Show the scroll buttons on narrow screens too, where swiping does the job. Default: `false`. */
|
|
57
|
+
shouldShowScrollButtonsOnMobile?: boolean;
|
|
58
|
+
/** Show the list's scrollbar. Default: `false`. */
|
|
59
|
+
hasVisibleScrollbar?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* A line along the row's foot (a column's end side), under its own content too. In the
|
|
62
|
+
* enclosed look it runs round the selected tab. Default: `true`, but `false` in the boxed look.
|
|
63
|
+
*/
|
|
64
|
+
hasDivider?: boolean;
|
|
65
|
+
/** The tab strip's ground - resolves against `theme.background`. */
|
|
66
|
+
bg?: keyof Theme['background'];
|
|
67
|
+
/**
|
|
68
|
+
* The selected tab's ground - resolves against `theme.background`. Give its `TabPanel` the same
|
|
69
|
+
* `bg` and the two read as one. Default: `'paper'` in the boxed look, and in the enclosed look
|
|
70
|
+
* without a divider; none otherwise.
|
|
71
|
+
*/
|
|
72
|
+
selectedBg?: keyof Theme['background'];
|
|
73
|
+
/** Components in place of its own: `scrollButton` - a button that takes `TabScrollButton`'s props. */
|
|
74
|
+
slots?: {
|
|
75
|
+
scrollButton?: ComponentType<TabScrollButtonProps>;
|
|
76
|
+
};
|
|
77
|
+
/** Before the tabs - an icon, a button, any component. The arrow keys don't reach it. */
|
|
78
|
+
startContent?: ReactNode;
|
|
79
|
+
/** After the tabs - a toolbar, a "+" button, any component. The arrow keys don't reach it. */
|
|
80
|
+
endContent?: ReactNode;
|
|
81
|
+
/** Imperative handle - see `TabsActions`. */
|
|
82
|
+
action?: Ref<TabsActions>;
|
|
83
|
+
'aria-label'?: string;
|
|
84
|
+
'aria-labelledby'?: string;
|
|
85
|
+
id?: string;
|
|
86
|
+
className?: string;
|
|
87
|
+
'data-testid'?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @description A row of tabs. By default a `tablist`: one tab in the page's tab order, the
|
|
91
|
+
* arrow keys of its orientation moving between tabs, Enter or Space selecting (or moving
|
|
92
|
+
* focus selecting, with `shouldSelectOnFocus`). With `as="nav"`, the same look as a
|
|
93
|
+
* navigation, its current tab marked `aria-current="page"`. Content of the row's own sits
|
|
94
|
+
* before and after the tabs.
|
|
95
|
+
*/
|
|
96
|
+
declare function Tabs({ children, value: valueProp, defaultValue, onChange, onTabClose, as, orientation, variant: variantProp, color: colorProp, textColor, size: sizeProp, fullWidth, isCentered, shouldSelectOnFocus, overflowBehavior, overflowLabel, scrollButtons, shouldShowScrollButtonsOnMobile, hasVisibleScrollbar, hasDivider: hasDividerProp, bg, selectedBg: selectedBgProp, slots, startContent, endContent, action, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, id, className, 'data-testid': dataTestid, ...spaceProps }: Readonly<TabsProps>): import("react").JSX.Element;
|
|
97
|
+
//#endregion
|
|
98
|
+
export { TabsProps as a, TabsOverflowBehavior as i, TabsActions as n, TabsScrollButtons as o, TabsOrientation as r, TabsVariant as s, Tabs as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { W as Theme, X as ThemeComponents, Z as ThemeDefaults, tt as ThemeLayout } from "./index-CJhK7JND.mjs";
|
|
2
2
|
import { ComponentType, ReactNode } from "react";
|
|
3
3
|
//#region src/theme/ThemeProvider.d.ts
|
|
4
4
|
interface ThemeProviderProps {
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { et as ThemeIconSizes } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import { n as TextColorToken } from "./index-ClZyaZrR.mjs";
|
|
2
3
|
import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
|
|
3
4
|
import { SVGProps } from "react";
|
|
4
5
|
//#region src/Icon/icons/AccountTree.d.ts
|
|
5
6
|
declare const SvgAccountTree: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
6
7
|
//#endregion
|
|
8
|
+
//#region src/Icon/icons/Add.d.ts
|
|
9
|
+
declare const SvgAdd: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
10
|
+
//#endregion
|
|
7
11
|
//#region src/Icon/icons/AdsClick.d.ts
|
|
8
12
|
declare const SvgAdsClick: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
9
13
|
//#endregion
|
|
@@ -118,6 +122,9 @@ declare const SvgLock: (props: SVGProps<SVGSVGElement>) => import("react").JSX.E
|
|
|
118
122
|
//#region src/Icon/icons/Menu.d.ts
|
|
119
123
|
declare const SvgMenu: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
120
124
|
//#endregion
|
|
125
|
+
//#region src/Icon/icons/MoreHoriz.d.ts
|
|
126
|
+
declare const SvgMoreHoriz: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
127
|
+
//#endregion
|
|
121
128
|
//#region src/Icon/icons/Neurology.d.ts
|
|
122
129
|
declare const SvgNeurology: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
123
130
|
//#endregion
|
|
@@ -130,6 +137,9 @@ declare const SvgRebaseEdit: (props: SVGProps<SVGSVGElement>) => import("react")
|
|
|
130
137
|
//#region src/Icon/icons/Refresh.d.ts
|
|
131
138
|
declare const SvgRefresh: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
132
139
|
//#endregion
|
|
140
|
+
//#region src/Icon/icons/Remove.d.ts
|
|
141
|
+
declare const SvgRemove: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
142
|
+
//#endregion
|
|
133
143
|
//#region src/Icon/icons/Schema.d.ts
|
|
134
144
|
declare const SvgSchema: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
135
145
|
//#endregion
|
|
@@ -151,6 +161,12 @@ declare const SvgSpeed: (props: SVGProps<SVGSVGElement>) => import("react").JSX.
|
|
|
151
161
|
//#region src/Icon/icons/Stacks.d.ts
|
|
152
162
|
declare const SvgStacks: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
153
163
|
//#endregion
|
|
164
|
+
//#region src/Icon/icons/Star.d.ts
|
|
165
|
+
declare const SvgStar: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region src/Icon/icons/StarBorder.d.ts
|
|
168
|
+
declare const SvgStarBorder: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
169
|
+
//#endregion
|
|
154
170
|
//#region src/Icon/icons/Table.d.ts
|
|
155
171
|
declare const SvgTable: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
|
|
156
172
|
//#endregion
|
|
@@ -176,6 +192,7 @@ declare const SvgZoomOut: (props: SVGProps<SVGSVGElement>) => import("react").JS
|
|
|
176
192
|
/** Registry of available icons, keyed by their asset file name. */
|
|
177
193
|
declare const icons: {
|
|
178
194
|
readonly account_tree: typeof SvgAccountTree;
|
|
195
|
+
readonly add: typeof SvgAdd;
|
|
179
196
|
readonly ads_click: typeof SvgAdsClick;
|
|
180
197
|
readonly analytics: typeof SvgAnalytics;
|
|
181
198
|
readonly architecture: typeof SvgArchitecture;
|
|
@@ -214,10 +231,12 @@ declare const icons: {
|
|
|
214
231
|
readonly link: typeof SvgLink;
|
|
215
232
|
readonly lock: typeof SvgLock;
|
|
216
233
|
readonly menu: typeof SvgMenu;
|
|
234
|
+
readonly more_horiz: typeof SvgMoreHoriz;
|
|
217
235
|
readonly neurology: typeof SvgNeurology;
|
|
218
236
|
readonly psychology: typeof SvgPsychology;
|
|
219
237
|
readonly rebase_edit: typeof SvgRebaseEdit;
|
|
220
238
|
readonly refresh: typeof SvgRefresh;
|
|
239
|
+
readonly remove: typeof SvgRemove;
|
|
221
240
|
readonly schema: typeof SvgSchema;
|
|
222
241
|
readonly security: typeof SvgSecurity;
|
|
223
242
|
readonly settings_input_component: typeof SvgSettingsInputComponent;
|
|
@@ -225,6 +244,8 @@ declare const icons: {
|
|
|
225
244
|
readonly smartphone: typeof SvgSmartphone;
|
|
226
245
|
readonly speed: typeof SvgSpeed;
|
|
227
246
|
readonly stacks: typeof SvgStacks;
|
|
247
|
+
readonly star: typeof SvgStar;
|
|
248
|
+
readonly star_border: typeof SvgStarBorder;
|
|
228
249
|
readonly table: typeof SvgTable;
|
|
229
250
|
readonly terminal: typeof SvgTerminal;
|
|
230
251
|
readonly visibility: typeof SvgVisibility;
|
|
@@ -242,8 +263,11 @@ interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'color' | 'ref' | 'wid
|
|
|
242
263
|
name: IconName;
|
|
243
264
|
/** Resolves against theme.text - applied as `color`, which the SVG inherits via `currentColor`. */
|
|
244
265
|
color?: TextColorToken;
|
|
245
|
-
/**
|
|
246
|
-
|
|
266
|
+
/**
|
|
267
|
+
* Sets both width and height (icons are square): one of the theme's icon sizes (`'sm'`, `'md'`,
|
|
268
|
+
* `'lg'`), or any CSS length. Default: the theme's `iconSize`, else `'lg'`.
|
|
269
|
+
*/
|
|
270
|
+
size?: keyof ThemeIconSizes | (string & {}) | number;
|
|
247
271
|
}
|
|
248
272
|
declare function Icon({ name, color, size, ...rest }: Readonly<IconProps>): import("react").JSX.Element;
|
|
249
273
|
//#endregion
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-DBUwu65Z.cjs";
|
|
1
|
+
import { W as Theme } from "./index-DJ0f69wh.cjs";
|
|
3
2
|
import { KeyboardEvent, MouseEvent, ReactNode, Ref, RefCallback, SyntheticEvent } from "react";
|
|
4
3
|
//#region src/Modal/useModal.d.ts
|
|
5
4
|
type ModalCloseReason = 'escapeKey' | 'backdropClick';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
3
|
-
import { n as IconProps, r as IconName } from "./index-DO9J-Fla.mjs";
|
|
1
|
+
import { W as Theme } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import { n as IconProps, r as IconName } from "./index-ha1WjSZ5.mjs";
|
|
4
3
|
import { SpaceProps } from "@soroush.tech/styled-system";
|
|
5
4
|
import { ButtonHTMLAttributes } from "react";
|
|
6
5
|
//#region src/Table/TableSortLabel/TableSortLabel.d.ts
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as ThemeCustomizationOptions, i as props, n as css, o as styled, r as keyframes, t as createShouldForwardProp } from "./index-DBUwu65Z.cjs";
|
|
1
|
+
import { P as PaletteColor, W as Theme, a as ThemeCustomizationOptions, f as CSSObject, i as props, n as css, o as styled, r as keyframes, t as createShouldForwardProp } from "./index-DJ0f69wh.cjs";
|
|
3
2
|
export * from "@soroush.tech/styled-system";
|
|
4
3
|
export { type CSSObject, type PaletteColor, type Theme, type ThemeCustomizationOptions, createShouldForwardProp, css, keyframes, props, styled };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as ThemeCustomizationOptions, i as props, n as css, o as styled, r as keyframes, t as createShouldForwardProp } from "./index-C1WqEDtQ.mjs";
|
|
1
|
+
import { P as PaletteColor, W as Theme, a as ThemeCustomizationOptions, f as CSSObject, i as props, n as css, o as styled, r as keyframes, t as createShouldForwardProp } from "./index-CJhK7JND.mjs";
|
|
3
2
|
export * from "@soroush.tech/styled-system";
|
|
4
3
|
export { type CSSObject, type PaletteColor, type Theme, type ThemeCustomizationOptions, createShouldForwardProp, css, keyframes, props, styled };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/utils/isRtl.ts
|
|
2
|
+
/** Whether an element sits in a right-to-left context - its nearest `dir` says so. */
|
|
3
|
+
function isRtl(element) {
|
|
4
|
+
return element.closest("[dir]")?.getAttribute("dir") === "rtl";
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
Object.defineProperty(exports, "isRtl", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function() {
|
|
10
|
+
return isRtl;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/utils/precision.ts
|
|
2
|
+
/** How many decimals a step has - `1e-8` has eight, `0.5` one, `1` none. */
|
|
3
|
+
function getDecimalPrecision(step) {
|
|
4
|
+
const [mantissa, exponent] = step.toExponential().split("e");
|
|
5
|
+
const decimals = (mantissa.split(".")[1] ?? "").length;
|
|
6
|
+
return Math.max(0, decimals - Number(exponent));
|
|
7
|
+
}
|
|
8
|
+
/** The value rounded to the nearest step of `precision` - `null` stays `null`. */
|
|
9
|
+
function roundToPrecision(value, precision) {
|
|
10
|
+
if (value === null) return null;
|
|
11
|
+
const nearest = Math.round(value / precision) * precision;
|
|
12
|
+
return Number(nearest.toFixed(getDecimalPrecision(precision)));
|
|
13
|
+
}
|
|
14
|
+
/** The number moved by `delta`, with no float noise - `0.1 + 0.2` is `0.3`. */
|
|
15
|
+
function addExact(value, delta) {
|
|
16
|
+
const decimals = Math.max(getDecimalPrecision(value), getDecimalPrecision(delta));
|
|
17
|
+
return Number((value + delta).toFixed(decimals));
|
|
18
|
+
}
|
|
19
|
+
/** The nearest number on the grid of `step`, counted from `origin`. */
|
|
20
|
+
function snapToStep(value, step, origin) {
|
|
21
|
+
const decimals = Math.max(getDecimalPrecision(step), getDecimalPrecision(origin));
|
|
22
|
+
return Number((Math.round((value - origin) / step) * step + origin).toFixed(decimals));
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { snapToStep as i, getDecimalPrecision as n, roundToPrecision as r, addExact as t };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
//#region src/utils/precision.ts
|
|
2
|
+
/** How many decimals a step has - `1e-8` has eight, `0.5` one, `1` none. */
|
|
3
|
+
function getDecimalPrecision(step) {
|
|
4
|
+
const [mantissa, exponent] = step.toExponential().split("e");
|
|
5
|
+
const decimals = (mantissa.split(".")[1] ?? "").length;
|
|
6
|
+
return Math.max(0, decimals - Number(exponent));
|
|
7
|
+
}
|
|
8
|
+
/** The value rounded to the nearest step of `precision` - `null` stays `null`. */
|
|
9
|
+
function roundToPrecision(value, precision) {
|
|
10
|
+
if (value === null) return null;
|
|
11
|
+
const nearest = Math.round(value / precision) * precision;
|
|
12
|
+
return Number(nearest.toFixed(getDecimalPrecision(precision)));
|
|
13
|
+
}
|
|
14
|
+
/** The number moved by `delta`, with no float noise - `0.1 + 0.2` is `0.3`. */
|
|
15
|
+
function addExact(value, delta) {
|
|
16
|
+
const decimals = Math.max(getDecimalPrecision(value), getDecimalPrecision(delta));
|
|
17
|
+
return Number((value + delta).toFixed(decimals));
|
|
18
|
+
}
|
|
19
|
+
/** The nearest number on the grid of `step`, counted from `origin`. */
|
|
20
|
+
function snapToStep(value, step, origin) {
|
|
21
|
+
const decimals = Math.max(getDecimalPrecision(step), getDecimalPrecision(origin));
|
|
22
|
+
return Number((Math.round((value - origin) / step) * step + origin).toFixed(decimals));
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
Object.defineProperty(exports, "addExact", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function() {
|
|
28
|
+
return addExact;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "getDecimalPrecision", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function() {
|
|
34
|
+
return getDecimalPrecision;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "roundToPrecision", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function() {
|
|
40
|
+
return roundToPrecision;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "snapToStep", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function() {
|
|
46
|
+
return snapToStep;
|
|
47
|
+
}
|
|
48
|
+
});
|
package/dist/style.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_theme = require("./theme-
|
|
2
|
+
const require_theme = require("./theme-BxXuXRgQ.cjs");
|
|
3
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
4
|
let _emotion_react = require("@emotion/react");
|
|
5
5
|
//#region src/style/hooks/useStyle.ts
|
package/dist/style.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
1
|
+
import { W as Theme, f as CSSObject } from "./index-DJ0f69wh.cjs";
|
|
2
|
+
import "./index-DchHf5cF.cjs";
|
|
3
3
|
import { ComponentType, ReactNode } from "react";
|
|
4
4
|
//#region src/style/hooks/useStyle.d.ts
|
|
5
5
|
type StyleFactory = {
|
package/dist/style.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
1
|
+
import { W as Theme, f as CSSObject } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import "./index-h4dYtVrp.mjs";
|
|
3
3
|
import { ComponentType, ReactNode } from "react";
|
|
4
4
|
//#region src/style/hooks/useStyle.d.ts
|
|
5
5
|
type StyleFactory = {
|
package/dist/style.mjs
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const require_src = require("./src-DU81aGy9.cjs");
|
|
2
|
+
//#region src/Tabs/utils/tabIds.ts
|
|
3
|
+
/** A tab's DOM id - what its panel's `aria-labelledby` names. */
|
|
4
|
+
const getTabId = (baseId, value) => `${baseId}-tab-${value}`;
|
|
5
|
+
/** A panel's DOM id - what its tab's `aria-controls` names. */
|
|
6
|
+
const getPanelId = (baseId, value) => `${baseId}-panel-${value}`;
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/Tabs/utils/surfaceSystem.ts
|
|
9
|
+
/** `bg` → `theme.background`, `borderRadius` → `theme.radii`: a tab strip's or a panel's surface. */
|
|
10
|
+
const surfaceSystem = (0, require_src.src_exports.system)({
|
|
11
|
+
bg: {
|
|
12
|
+
property: "backgroundColor",
|
|
13
|
+
scale: "background"
|
|
14
|
+
},
|
|
15
|
+
borderRadius: {
|
|
16
|
+
property: "borderRadius",
|
|
17
|
+
scale: "radii"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
Object.defineProperty(exports, "getPanelId", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function() {
|
|
24
|
+
return getPanelId;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "getTabId", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function() {
|
|
30
|
+
return getTabId;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "surfaceSystem", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function() {
|
|
36
|
+
return surfaceSystem;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { a as src_exports } from "./src-DLGYOJMh.mjs";
|
|
2
|
+
//#region src/Tabs/utils/tabIds.ts
|
|
3
|
+
/** A tab's DOM id - what its panel's `aria-labelledby` names. */
|
|
4
|
+
const getTabId = (baseId, value) => `${baseId}-tab-${value}`;
|
|
5
|
+
/** A panel's DOM id - what its tab's `aria-controls` names. */
|
|
6
|
+
const getPanelId = (baseId, value) => `${baseId}-panel-${value}`;
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/Tabs/utils/surfaceSystem.ts
|
|
9
|
+
/** `bg` → `theme.background`, `borderRadius` → `theme.radii`: a tab strip's or a panel's surface. */
|
|
10
|
+
const surfaceSystem = (0, src_exports.system)({
|
|
11
|
+
bg: {
|
|
12
|
+
property: "backgroundColor",
|
|
13
|
+
scale: "background"
|
|
14
|
+
},
|
|
15
|
+
borderRadius: {
|
|
16
|
+
property: "borderRadius",
|
|
17
|
+
scale: "radii"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
export { getPanelId as n, getTabId as r, surfaceSystem as t };
|