@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,223 @@
|
|
|
1
|
+
const require_src = require("./src-DU81aGy9.cjs");
|
|
2
|
+
const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
|
|
3
|
+
const require_theme = require("./theme-BxXuXRgQ.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
|
|
7
|
+
//#region src/Menu/MenuActivationContext.ts
|
|
8
|
+
/**
|
|
9
|
+
* Set by a `Menu` around its lists: told when any row anywhere in the menu is chosen, with
|
|
10
|
+
* or without a `value`, so the whole menu can close. Internal - not exported from the
|
|
11
|
+
* subpath.
|
|
12
|
+
*/
|
|
13
|
+
const MenuActivationContext = (0, react.createContext)(null);
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/Menu/MenuListContext.ts
|
|
16
|
+
/**
|
|
17
|
+
* Present inside a `MenuList`. A `MenuItem` that finds it renders as a menu row
|
|
18
|
+
* (`menuitem`); without it, the row is `Select`'s `option`.
|
|
19
|
+
*/
|
|
20
|
+
const MenuListContext = (0, react.createContext)(null);
|
|
21
|
+
const useMenuListContext = () => (0, react.useContext)(MenuListContext);
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/Menu/MenuList/utils/getOwnRows.ts
|
|
24
|
+
const ROW_SELECTOR = "[role=\"menuitem\"], [role=\"menuitemradio\"], [role=\"menuitemcheckbox\"]";
|
|
25
|
+
/**
|
|
26
|
+
* The rows that belong to `list` itself, in document order. A nested submenu is a
|
|
27
|
+
* `role="menu"` of its own inside the list, so a row counts only when its nearest
|
|
28
|
+
* `role="menu"` is `list` - no per-list index state is kept anywhere.
|
|
29
|
+
*/
|
|
30
|
+
function getOwnRows(list) {
|
|
31
|
+
return Array.from(list.querySelectorAll(ROW_SELECTOR)).filter((row) => row.closest("[role=\"menu\"]") === list);
|
|
32
|
+
}
|
|
33
|
+
/** Whether a row can take focus and be chosen. */
|
|
34
|
+
function isRowEnabled(row) {
|
|
35
|
+
return row.getAttribute("aria-disabled") !== "true";
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/Menu/MenuList/utils/getNextRow.ts
|
|
39
|
+
/**
|
|
40
|
+
* The enabled row a key moves to from `current` (which may be absent from `rows`, as when
|
|
41
|
+
* focus is still on the list itself). Disabled rows are skipped; `shouldWrap` carries
|
|
42
|
+
* `next` past the last row to the first and `previous` before the first to the last.
|
|
43
|
+
*/
|
|
44
|
+
function getNextRow(rows, current, step, shouldWrap) {
|
|
45
|
+
const enabled = rows.filter(isRowEnabled);
|
|
46
|
+
if (step === "first") return enabled[0];
|
|
47
|
+
if (step === "last") return enabled.at(-1);
|
|
48
|
+
const index = enabled.indexOf(current);
|
|
49
|
+
if (index === -1) return step === "next" ? enabled[0] : enabled.at(-1);
|
|
50
|
+
const target = index + (step === "next" ? 1 : -1);
|
|
51
|
+
if (target >= 0 && target < enabled.length) return enabled[target];
|
|
52
|
+
if (!shouldWrap) return void 0;
|
|
53
|
+
return target < 0 ? enabled.at(-1) : enabled[0];
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/Menu/MenuList/utils/findRowByText.ts
|
|
57
|
+
/** A row's label text, without its icon, shortcut or note. */
|
|
58
|
+
function getRowText(row) {
|
|
59
|
+
return (row.querySelector("[data-menu-label]") ?? row).textContent.trim().toLowerCase();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The row type-ahead moves to. One key typed again and again (`r`, `r`, `r`) cycles
|
|
63
|
+
* through the rows starting with it; distinct keys typed together (`re`) build a prefix,
|
|
64
|
+
* matched from the current row onward so typing on stays where it is while it matches.
|
|
65
|
+
*/
|
|
66
|
+
function findRowByText(rows, current, typed) {
|
|
67
|
+
const enabled = rows.filter(isRowEnabled);
|
|
68
|
+
const query = typed.toLowerCase();
|
|
69
|
+
const isRepeating = [...query].every((key) => key === query[0]);
|
|
70
|
+
const start = enabled.indexOf(current);
|
|
71
|
+
const from = isRepeating ? start + 1 : Math.max(start, 0);
|
|
72
|
+
const ordered = [...enabled.slice(from), ...enabled.slice(0, from)];
|
|
73
|
+
const prefix = isRepeating ? query[0] : query;
|
|
74
|
+
return ordered.find((row) => getRowText(row).startsWith(prefix));
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/Menu/MenuList/MenuList.tsx
|
|
78
|
+
const STEP_BY_KEY = {
|
|
79
|
+
ArrowDown: "next",
|
|
80
|
+
ArrowUp: "previous",
|
|
81
|
+
Home: "first",
|
|
82
|
+
End: "last"
|
|
83
|
+
};
|
|
84
|
+
const TYPEAHEAD_TIMEOUT = 500;
|
|
85
|
+
const shouldForwardProp = (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([..._soroush_tech_styled_system_should_forward_prop.props]);
|
|
86
|
+
const layoutWithoutSize = (styleProps) => (0, require_src.src_exports.layout)({
|
|
87
|
+
...styleProps,
|
|
88
|
+
size: void 0
|
|
89
|
+
});
|
|
90
|
+
const MenuListRoot = require_src.styled("ul", {
|
|
91
|
+
name: "MenuList",
|
|
92
|
+
label: "MenuList",
|
|
93
|
+
shouldForwardProp,
|
|
94
|
+
systemProps: [require_src.src_exports.space, layoutWithoutSize]
|
|
95
|
+
})(({ theme }) => ({
|
|
96
|
+
listStyle: "none",
|
|
97
|
+
margin: 0,
|
|
98
|
+
paddingLeft: 0,
|
|
99
|
+
paddingRight: 0,
|
|
100
|
+
paddingTop: theme.space[.5],
|
|
101
|
+
paddingBottom: theme.space[.5],
|
|
102
|
+
outline: "none",
|
|
103
|
+
"&:focus-visible": {
|
|
104
|
+
outline: `${theme.borderWidths.base} solid ${theme.palette[require_themeDefault.themeDefault(theme, "color", "primary")].main}`,
|
|
105
|
+
outlineOffset: `-${theme.borderWidths.base}`
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
const isPrintableKey = (event) => event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;
|
|
109
|
+
/**
|
|
110
|
+
* @description A `role="menu"` list that owns the keyboard: the arrow keys, Home and End
|
|
111
|
+
* move focus between its own rows, skipping disabled ones; typing jumps to a row by its
|
|
112
|
+
* label. Rows are found in the DOM by their nearest `role="menu"`, so a nested submenu's
|
|
113
|
+
* rows are never this list's. Renders in place - `Menu` floats one next to a trigger.
|
|
114
|
+
*/
|
|
115
|
+
function MenuList({ children, onSelect, shouldWrap: shouldWrapProp, shouldAutoFocus = false, color, textColor, size, dense, onKeyDown, ...rest }) {
|
|
116
|
+
const listRef = (0, react.useRef)(null);
|
|
117
|
+
const typed = (0, react.useRef)({
|
|
118
|
+
keys: "",
|
|
119
|
+
time: 0
|
|
120
|
+
});
|
|
121
|
+
const onMenuActivate = (0, react.useContext)(MenuActivationContext);
|
|
122
|
+
const parent = useMenuListContext();
|
|
123
|
+
const dp = require_theme.useDefaultProps("MenuList");
|
|
124
|
+
const shouldWrap = shouldWrapProp ?? dp.shouldWrap ?? true;
|
|
125
|
+
const rowColor = color ?? parent?.color ?? dp.color;
|
|
126
|
+
const rowTextColor = textColor ?? parent?.textColor ?? dp.textColor;
|
|
127
|
+
const rowSize = size ?? parent?.size ?? dp.size;
|
|
128
|
+
const rowDense = dense ?? parent?.dense ?? dp.dense;
|
|
129
|
+
(0, react.useEffect)(() => {
|
|
130
|
+
const list = listRef.current;
|
|
131
|
+
if (!shouldAutoFocus || !list) return;
|
|
132
|
+
const rows = getOwnRows(list).filter(isRowEnabled);
|
|
133
|
+
(rows.find((row) => row.getAttribute("aria-checked") === "true") ?? rows[0] ?? list).focus();
|
|
134
|
+
}, [shouldAutoFocus]);
|
|
135
|
+
const context = (0, react.useMemo)(() => ({
|
|
136
|
+
onActivate: (value, event) => {
|
|
137
|
+
if (value !== void 0) onSelect?.(value);
|
|
138
|
+
if (parent) parent.onActivate(value, event);
|
|
139
|
+
else onMenuActivate?.(value, event);
|
|
140
|
+
},
|
|
141
|
+
color: rowColor,
|
|
142
|
+
textColor: rowTextColor,
|
|
143
|
+
size: rowSize,
|
|
144
|
+
dense: rowDense
|
|
145
|
+
}), [
|
|
146
|
+
onSelect,
|
|
147
|
+
onMenuActivate,
|
|
148
|
+
parent,
|
|
149
|
+
rowColor,
|
|
150
|
+
rowTextColor,
|
|
151
|
+
rowSize,
|
|
152
|
+
rowDense
|
|
153
|
+
]);
|
|
154
|
+
const handleKeyDown = (event) => {
|
|
155
|
+
const list = event.currentTarget;
|
|
156
|
+
if (event.target.closest("[role=\"menu\"]") !== list) return;
|
|
157
|
+
const rows = getOwnRows(list);
|
|
158
|
+
const current = list.ownerDocument.activeElement;
|
|
159
|
+
const step = STEP_BY_KEY[event.key];
|
|
160
|
+
let target;
|
|
161
|
+
if (step) target = getNextRow(rows, current, step, shouldWrap);
|
|
162
|
+
else if (isPrintableKey(event)) {
|
|
163
|
+
const now = Date.now();
|
|
164
|
+
const isFresh = now - typed.current.time > TYPEAHEAD_TIMEOUT;
|
|
165
|
+
typed.current = {
|
|
166
|
+
keys: (isFresh ? "" : typed.current.keys) + event.key,
|
|
167
|
+
time: now
|
|
168
|
+
};
|
|
169
|
+
target = findRowByText(rows, current, typed.current.keys);
|
|
170
|
+
}
|
|
171
|
+
if (step || target) event.preventDefault();
|
|
172
|
+
target?.focus();
|
|
173
|
+
onKeyDown?.(event);
|
|
174
|
+
};
|
|
175
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuListContext.Provider, {
|
|
176
|
+
value: context,
|
|
177
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuListRoot, {
|
|
178
|
+
...rest,
|
|
179
|
+
ref: listRef,
|
|
180
|
+
role: "menu",
|
|
181
|
+
tabIndex: -1,
|
|
182
|
+
onKeyDown: handleKeyDown,
|
|
183
|
+
children
|
|
184
|
+
})
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
Object.defineProperty(exports, "MenuActivationContext", {
|
|
189
|
+
enumerable: true,
|
|
190
|
+
get: function() {
|
|
191
|
+
return MenuActivationContext;
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
Object.defineProperty(exports, "MenuList", {
|
|
195
|
+
enumerable: true,
|
|
196
|
+
get: function() {
|
|
197
|
+
return MenuList;
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
Object.defineProperty(exports, "MenuListContext", {
|
|
201
|
+
enumerable: true,
|
|
202
|
+
get: function() {
|
|
203
|
+
return MenuListContext;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
Object.defineProperty(exports, "getNextRow", {
|
|
207
|
+
enumerable: true,
|
|
208
|
+
get: function() {
|
|
209
|
+
return getNextRow;
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
Object.defineProperty(exports, "getOwnRows", {
|
|
213
|
+
enumerable: true,
|
|
214
|
+
get: function() {
|
|
215
|
+
return getOwnRows;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
Object.defineProperty(exports, "useMenuListContext", {
|
|
219
|
+
enumerable: true,
|
|
220
|
+
get: function() {
|
|
221
|
+
return useMenuListContext;
|
|
222
|
+
}
|
|
223
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { W as Theme } from "./index-DJ0f69wh.cjs";
|
|
2
|
+
import "./index-DchHf5cF.cjs";
|
|
3
|
+
import { SyntheticEvent } from "react";
|
|
4
|
+
//#region src/Menu/MenuListContext.d.ts
|
|
5
|
+
type MenuItemValue = string | number;
|
|
6
|
+
interface MenuListContextValue {
|
|
7
|
+
/** Fired when a row is chosen, with its `value` when it has one. */
|
|
8
|
+
onActivate: (value: MenuItemValue | undefined, event: SyntheticEvent) => void;
|
|
9
|
+
color?: keyof Theme['palette'];
|
|
10
|
+
textColor?: keyof Theme['text'];
|
|
11
|
+
size?: keyof Theme['sizes'];
|
|
12
|
+
dense?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Present inside a `MenuList`. A `MenuItem` that finds it renders as a menu row
|
|
16
|
+
* (`menuitem`); without it, the row is `Select`'s `option`.
|
|
17
|
+
*/
|
|
18
|
+
declare const MenuListContext: import("react").Context<MenuListContextValue | null>;
|
|
19
|
+
declare const useMenuListContext: () => MenuListContextValue | null;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useMenuListContext as i, MenuListContext as n, MenuListContextValue as r, MenuItemValue as t };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { W as Theme } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import "./index-h4dYtVrp.mjs";
|
|
3
|
+
import { SyntheticEvent } from "react";
|
|
4
|
+
//#region src/Menu/MenuListContext.d.ts
|
|
5
|
+
type MenuItemValue = string | number;
|
|
6
|
+
interface MenuListContextValue {
|
|
7
|
+
/** Fired when a row is chosen, with its `value` when it has one. */
|
|
8
|
+
onActivate: (value: MenuItemValue | undefined, event: SyntheticEvent) => void;
|
|
9
|
+
color?: keyof Theme['palette'];
|
|
10
|
+
textColor?: keyof Theme['text'];
|
|
11
|
+
size?: keyof Theme['sizes'];
|
|
12
|
+
dense?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Present inside a `MenuList`. A `MenuItem` that finds it renders as a menu row
|
|
16
|
+
* (`menuitem`); without it, the row is `Select`'s `option`.
|
|
17
|
+
*/
|
|
18
|
+
declare const MenuListContext: import("react").Context<MenuListContextValue | null>;
|
|
19
|
+
declare const useMenuListContext: () => MenuListContextValue | null;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useMenuListContext as i, MenuListContext as n, MenuListContextValue as r, MenuItemValue as t };
|
package/dist/Modal.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-
|
|
1
|
+
import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-nqUA_6J_.cjs";
|
|
2
2
|
export { ManagedModal, ManagedModalProps, Modal, ModalCloseReason, ModalManager, ModalProps, ModalScroll, UseModalParameters, UseModalReturnValue, exposeToAria, hideFromAria, useModal };
|
package/dist/Modal.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-
|
|
1
|
+
import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-Bx0-6yeX.mjs";
|
|
2
2
|
export { ManagedModal, ManagedModalProps, Modal, ModalCloseReason, ModalManager, ModalProps, ModalScroll, UseModalParameters, UseModalReturnValue, exposeToAria, hideFromAria, useModal };
|
package/dist/NativeSelect.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_src = require("./src-DU81aGy9.cjs");
|
|
3
3
|
const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
|
|
4
|
-
const require_theme = require("./theme-
|
|
5
|
-
const require_Icon = require("./Icon-
|
|
4
|
+
const require_theme = require("./theme-BxXuXRgQ.cjs");
|
|
5
|
+
const require_Icon = require("./Icon-D-EWsBVg.cjs");
|
|
6
6
|
const require_FormControl = require("./FormControl.cjs");
|
|
7
7
|
const require_inputVariantStyles = require("./inputVariantStyles-BBkkYQtE.cjs");
|
|
8
8
|
require("react");
|
|
@@ -24,10 +24,10 @@ const baseStyle = {
|
|
|
24
24
|
alignItems: "center",
|
|
25
25
|
transition: "border-color 0.15s ease"
|
|
26
26
|
};
|
|
27
|
-
const backgroundStyle = ({ theme, textColor = require_themeDefault.themeDefault(theme, "
|
|
27
|
+
const backgroundStyle = ({ theme, textColor, color = require_themeDefault.themeDefault(theme, "color", "primary"), bg = require_themeDefault.themeDefault(theme, "inputBg", "terminal") }) => {
|
|
28
28
|
return {
|
|
29
29
|
backgroundColor: (0, require_src.src_exports.get)(theme, `background.${bg}`),
|
|
30
|
-
color: (0, require_src.src_exports.get)(theme, `text.${textColor}`),
|
|
30
|
+
color: textColor ? (0, require_src.src_exports.get)(theme, `text.${textColor}`) : (0, require_src.src_exports.get)(theme, `palette.${color}.main`),
|
|
31
31
|
fontFamily: (0, require_src.src_exports.get)(theme, "fonts.body"),
|
|
32
32
|
fontSize: (0, require_src.src_exports.get)(theme, "fontSizes.1"),
|
|
33
33
|
lineHeight: (0, require_src.src_exports.get)(theme, "lineHeights.base")
|
|
@@ -71,7 +71,7 @@ const NativeSelectRoot = require_src.styled("div", {
|
|
|
71
71
|
shouldForwardProp,
|
|
72
72
|
systemProps: [require_src.src_exports.space, widthStyles]
|
|
73
73
|
})(baseStyle, require_inputVariantStyles.inputVariantStyles, borderRadiusStyle, colorBorder, focusWithinColor, focusVisibleRing, backgroundStyle, layoutStyles);
|
|
74
|
-
const shouldForwardNativeSelectProps = (prop) => prop !== "sizeToken" && prop !== "bg" && prop !== "textColor";
|
|
74
|
+
const shouldForwardNativeSelectProps = (prop) => prop !== "sizeToken" && prop !== "bg" && prop !== "textColor" && prop !== "accent";
|
|
75
75
|
const sizeVariants = ({ theme, sizeToken }) => {
|
|
76
76
|
const s = theme.sizes[sizeToken];
|
|
77
77
|
return {
|
|
@@ -82,9 +82,9 @@ const sizeVariants = ({ theme, sizeToken }) => {
|
|
|
82
82
|
fontSize: theme.fontSizes[s.fontSize]
|
|
83
83
|
};
|
|
84
84
|
};
|
|
85
|
-
const selectSurface = ({ theme, bg = require_themeDefault.themeDefault(theme, "inputBg", "terminal"), textColor }) => {
|
|
85
|
+
const selectSurface = ({ theme, bg = require_themeDefault.themeDefault(theme, "inputBg", "terminal"), textColor, accent }) => {
|
|
86
86
|
const backgroundColor = (0, require_src.src_exports.get)(theme, `background.${bg}`);
|
|
87
|
-
const color = (0, require_src.src_exports.get)(theme, `text.${textColor}`);
|
|
87
|
+
const color = textColor ? (0, require_src.src_exports.get)(theme, `text.${textColor}`) : (0, require_src.src_exports.get)(theme, `palette.${accent}.main`);
|
|
88
88
|
return {
|
|
89
89
|
backgroundColor,
|
|
90
90
|
color,
|
|
@@ -137,7 +137,7 @@ function NativeSelect({ options, value, defaultValue, onChange, placeholder, bor
|
|
|
137
137
|
const { id, error, disabled, required, size, fullWidth } = fc;
|
|
138
138
|
const theme = require_theme.useTheme();
|
|
139
139
|
const color = fc.color ?? require_themeDefault.themeDefault(theme, "color", "primary");
|
|
140
|
-
const textColor = fc.textColor
|
|
140
|
+
const textColor = fc.textColor;
|
|
141
141
|
const variant = variantProp ?? require_themeDefault.themeDefault(theme, "inputVariant", "default");
|
|
142
142
|
const handleChange = (event) => {
|
|
143
143
|
const match = options.find((option) => String(option.value) === event.target.value);
|
|
@@ -165,6 +165,7 @@ function NativeSelect({ options, value, defaultValue, onChange, placeholder, bor
|
|
|
165
165
|
sizeToken: size,
|
|
166
166
|
bg,
|
|
167
167
|
textColor,
|
|
168
|
+
accent: color,
|
|
168
169
|
value,
|
|
169
170
|
defaultValue: uncontrolledDefault,
|
|
170
171
|
onChange: handleChange,
|
package/dist/NativeSelect.d.cts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./index-
|
|
3
|
-
import { n as IconProps, r as IconName } from "./index-Ctqajtac.cjs";
|
|
1
|
+
import { W as Theme } from "./index-DJ0f69wh.cjs";
|
|
2
|
+
import { n as IconProps, r as IconName } from "./index-Dv_fk1_F.cjs";
|
|
4
3
|
import { SelectHTMLAttributes } from "react";
|
|
5
4
|
import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
|
|
6
5
|
//#region src/NativeSelect/NativeSelect.d.ts
|
|
@@ -28,7 +27,7 @@ interface NativeSelectProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>,
|
|
|
28
27
|
borderRadius?: keyof Theme['radii'];
|
|
29
28
|
/** Focus/active border color - resolves to `theme.palette[color].main`. Default: 'primary', overridable via `theme.defaults.color`. */
|
|
30
29
|
color?: NativeSelectColor;
|
|
31
|
-
/** Text color of the selected value - resolves against `theme.text`. Default:
|
|
30
|
+
/** Text color of the selected value - resolves against `theme.text`. Default: the accent `color`'s `main`. */
|
|
32
31
|
textColor?: NativeSelectTextColor;
|
|
33
32
|
/** Background color - resolves against `theme.background`. Default: `'terminal'`. */
|
|
34
33
|
bg?: NativeSelectBackgroundToken;
|
package/dist/NativeSelect.d.mts
CHANGED
|
@@ -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 { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
|
|
5
4
|
import { SelectHTMLAttributes } from "react";
|
|
6
5
|
//#region src/NativeSelect/NativeSelect.d.ts
|
|
@@ -28,7 +27,7 @@ interface NativeSelectProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>,
|
|
|
28
27
|
borderRadius?: keyof Theme['radii'];
|
|
29
28
|
/** Focus/active border color - resolves to `theme.palette[color].main`. Default: 'primary', overridable via `theme.defaults.color`. */
|
|
30
29
|
color?: NativeSelectColor;
|
|
31
|
-
/** Text color of the selected value - resolves against `theme.text`. Default:
|
|
30
|
+
/** Text color of the selected value - resolves against `theme.text`. Default: the accent `color`'s `main`. */
|
|
32
31
|
textColor?: NativeSelectTextColor;
|
|
33
32
|
/** Background color - resolves against `theme.background`. Default: `'terminal'`. */
|
|
34
33
|
bg?: NativeSelectBackgroundToken;
|
package/dist/NativeSelect.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as src_exports, i as props, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
|
|
2
2
|
import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
|
|
3
|
-
import { r as useTheme } from "./theme-
|
|
4
|
-
import { t as Icon } from "./Icon-
|
|
3
|
+
import { r as useTheme } from "./theme-Z9_QludW.mjs";
|
|
4
|
+
import { t as Icon } from "./Icon-BihOAP4u.mjs";
|
|
5
5
|
import { useFormControl } from "./FormControl.mjs";
|
|
6
6
|
import { t as inputVariantStyles } from "./inputVariantStyles-CcqpGfuP.mjs";
|
|
7
7
|
import "react";
|
|
@@ -22,10 +22,10 @@ const baseStyle = {
|
|
|
22
22
|
alignItems: "center",
|
|
23
23
|
transition: "border-color 0.15s ease"
|
|
24
24
|
};
|
|
25
|
-
const backgroundStyle = ({ theme, textColor = themeDefault(theme, "
|
|
25
|
+
const backgroundStyle = ({ theme, textColor, color = themeDefault(theme, "color", "primary"), bg = themeDefault(theme, "inputBg", "terminal") }) => {
|
|
26
26
|
return {
|
|
27
27
|
backgroundColor: (0, src_exports.get)(theme, `background.${bg}`),
|
|
28
|
-
color: (0, src_exports.get)(theme, `text.${textColor}`),
|
|
28
|
+
color: textColor ? (0, src_exports.get)(theme, `text.${textColor}`) : (0, src_exports.get)(theme, `palette.${color}.main`),
|
|
29
29
|
fontFamily: (0, src_exports.get)(theme, "fonts.body"),
|
|
30
30
|
fontSize: (0, src_exports.get)(theme, "fontSizes.1"),
|
|
31
31
|
lineHeight: (0, src_exports.get)(theme, "lineHeights.base")
|
|
@@ -69,7 +69,7 @@ const NativeSelectRoot = styled("div", {
|
|
|
69
69
|
shouldForwardProp,
|
|
70
70
|
systemProps: [src_exports.space, widthStyles]
|
|
71
71
|
})(baseStyle, inputVariantStyles, borderRadiusStyle, colorBorder, focusWithinColor, focusVisibleRing, backgroundStyle, layoutStyles);
|
|
72
|
-
const shouldForwardNativeSelectProps = (prop) => prop !== "sizeToken" && prop !== "bg" && prop !== "textColor";
|
|
72
|
+
const shouldForwardNativeSelectProps = (prop) => prop !== "sizeToken" && prop !== "bg" && prop !== "textColor" && prop !== "accent";
|
|
73
73
|
const sizeVariants = ({ theme, sizeToken }) => {
|
|
74
74
|
const s = theme.sizes[sizeToken];
|
|
75
75
|
return {
|
|
@@ -80,9 +80,9 @@ const sizeVariants = ({ theme, sizeToken }) => {
|
|
|
80
80
|
fontSize: theme.fontSizes[s.fontSize]
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
-
const selectSurface = ({ theme, bg = themeDefault(theme, "inputBg", "terminal"), textColor }) => {
|
|
83
|
+
const selectSurface = ({ theme, bg = themeDefault(theme, "inputBg", "terminal"), textColor, accent }) => {
|
|
84
84
|
const backgroundColor = (0, src_exports.get)(theme, `background.${bg}`);
|
|
85
|
-
const color = (0, src_exports.get)(theme, `text.${textColor}`);
|
|
85
|
+
const color = textColor ? (0, src_exports.get)(theme, `text.${textColor}`) : (0, src_exports.get)(theme, `palette.${accent}.main`);
|
|
86
86
|
return {
|
|
87
87
|
backgroundColor,
|
|
88
88
|
color,
|
|
@@ -135,7 +135,7 @@ function NativeSelect({ options, value, defaultValue, onChange, placeholder, bor
|
|
|
135
135
|
const { id, error, disabled, required, size, fullWidth } = fc;
|
|
136
136
|
const theme = useTheme();
|
|
137
137
|
const color = fc.color ?? themeDefault(theme, "color", "primary");
|
|
138
|
-
const textColor = fc.textColor
|
|
138
|
+
const textColor = fc.textColor;
|
|
139
139
|
const variant = variantProp ?? themeDefault(theme, "inputVariant", "default");
|
|
140
140
|
const handleChange = (event) => {
|
|
141
141
|
const match = options.find((option) => String(option.value) === event.target.value);
|
|
@@ -163,6 +163,7 @@ function NativeSelect({ options, value, defaultValue, onChange, placeholder, bor
|
|
|
163
163
|
sizeToken: size,
|
|
164
164
|
bg,
|
|
165
165
|
textColor,
|
|
166
|
+
accent: color,
|
|
166
167
|
value,
|
|
167
168
|
defaultValue: uncontrolledDefault,
|
|
168
169
|
onChange: handleChange,
|