@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,137 @@
|
|
|
1
|
+
const require_themes = require("./themes-gd6tcmqS.cjs");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
let _emotion_react = require("@emotion/react");
|
|
5
|
+
//#region src/theme/utils/createTheme.ts
|
|
6
|
+
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7
|
+
const deepMerge = (base, overrides) => {
|
|
8
|
+
const merged = { ...base };
|
|
9
|
+
for (const [key, value] of Object.entries(overrides)) {
|
|
10
|
+
if (value === void 0) continue;
|
|
11
|
+
const baseValue = merged[key];
|
|
12
|
+
merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
|
|
13
|
+
}
|
|
14
|
+
return merged;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Builds a theme by deep-merging sparse `overrides` onto `base`.
|
|
18
|
+
*
|
|
19
|
+
* - Recurses only where both sides are plain objects; arrays (`shadows`,
|
|
20
|
+
* `fontSizes`) and functions replace wholesale.
|
|
21
|
+
* - `undefined` override values are ignored - a key can be added or replaced,
|
|
22
|
+
* never removed.
|
|
23
|
+
* - Neither argument is mutated; untouched branches keep referential identity.
|
|
24
|
+
* - `breakpoints` gets its query helpers back, built from the merged sizes.
|
|
25
|
+
*/
|
|
26
|
+
const createTheme = (base, overrides) => {
|
|
27
|
+
const theme = deepMerge(base, overrides);
|
|
28
|
+
return withHelpers(theme);
|
|
29
|
+
};
|
|
30
|
+
/** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
|
|
31
|
+
const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
|
|
32
|
+
...theme,
|
|
33
|
+
breakpoints: require_themes.withBreakpointHelpers(theme.breakpoints)
|
|
34
|
+
} : theme;
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/theme/ThemeProvider.tsx
|
|
37
|
+
function ThemeProvider({ children, theme = require_themes.baseTheme, defaults }) {
|
|
38
|
+
const value = (0, react.useMemo)(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
|
|
39
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeProvider, {
|
|
40
|
+
theme: value,
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/theme/LayoutProvider.tsx
|
|
46
|
+
const pageLayout = (theme, layout) => {
|
|
47
|
+
const page = layout;
|
|
48
|
+
let carried = {};
|
|
49
|
+
const merged = {};
|
|
50
|
+
for (const key of Object.keys(theme.breakpoints)) {
|
|
51
|
+
carried = deepMerge(carried, page[key] ?? {});
|
|
52
|
+
if (Object.keys(carried).length > 0) merged[key] = carried;
|
|
53
|
+
}
|
|
54
|
+
return merged;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @description A page-level layout: everything inside sees `theme.layout` with the page's
|
|
58
|
+
* values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
|
|
59
|
+
* derives the theme from the one around it and changes nothing else, so colours, light/dark
|
|
60
|
+
* switching and every other token stay the app theme's. Nested providers stack.
|
|
61
|
+
*/
|
|
62
|
+
function LayoutProvider({ layout, children }) {
|
|
63
|
+
const derive = (0, react.useCallback)((outer) => {
|
|
64
|
+
const theme = "breakpoints" in outer ? outer : require_themes.baseTheme;
|
|
65
|
+
return createTheme(theme, { layout: pageLayout(theme, layout) });
|
|
66
|
+
}, [layout]);
|
|
67
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeProvider, {
|
|
68
|
+
theme: derive,
|
|
69
|
+
children
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/theme/hooks/useTheme.ts
|
|
74
|
+
/**
|
|
75
|
+
* The active theme, typed as this package's own `Theme` - Emotion is an
|
|
76
|
+
* internal implementation detail, never part of the public type surface.
|
|
77
|
+
*/
|
|
78
|
+
const useTheme = () => (0, _emotion_react.useTheme)();
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/theme/hooks/useDefaultProps.ts
|
|
81
|
+
/**
|
|
82
|
+
* The theme-contributed default prop values for a component
|
|
83
|
+
* (`theme.components[name].defaultProps`), or an empty object.
|
|
84
|
+
*
|
|
85
|
+
* Components apply it as one step of the default-resolution chain:
|
|
86
|
+
* explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
|
|
87
|
+
*/
|
|
88
|
+
function useDefaultProps(name) {
|
|
89
|
+
return useTheme().components?.[name]?.defaultProps ?? {};
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/theme/hoc/withTheme.tsx
|
|
93
|
+
function withTheme(WrappedComponent) {
|
|
94
|
+
return function WithTheme(props) {
|
|
95
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WrappedComponent, {
|
|
96
|
+
...props,
|
|
97
|
+
theme
|
|
98
|
+
}) });
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
Object.defineProperty(exports, "LayoutProvider", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function() {
|
|
105
|
+
return LayoutProvider;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(exports, "ThemeProvider", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function() {
|
|
111
|
+
return ThemeProvider;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(exports, "createTheme", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function() {
|
|
117
|
+
return createTheme;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
Object.defineProperty(exports, "useDefaultProps", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function() {
|
|
123
|
+
return useDefaultProps;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "useTheme", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function() {
|
|
129
|
+
return useTheme;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
Object.defineProperty(exports, "withTheme", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
get: function() {
|
|
135
|
+
return withTheme;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { C as withBreakpointHelpers, n as baseTheme } from "./themes-L-dE7_ck.mjs";
|
|
2
|
+
import { a as useEmotionTheme, n as EmotionThemeContext, r as EmotionThemeProvider } from "./emotion-BAyqVw0c.mjs";
|
|
3
|
+
import { useCallback, useMemo } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/theme/utils/createTheme.ts
|
|
6
|
+
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7
|
+
const deepMerge = (base, overrides) => {
|
|
8
|
+
const merged = { ...base };
|
|
9
|
+
for (const [key, value] of Object.entries(overrides)) {
|
|
10
|
+
if (value === void 0) continue;
|
|
11
|
+
const baseValue = merged[key];
|
|
12
|
+
merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
|
|
13
|
+
}
|
|
14
|
+
return merged;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Builds a theme by deep-merging sparse `overrides` onto `base`.
|
|
18
|
+
*
|
|
19
|
+
* - Recurses only where both sides are plain objects; arrays (`shadows`,
|
|
20
|
+
* `fontSizes`) and functions replace wholesale.
|
|
21
|
+
* - `undefined` override values are ignored - a key can be added or replaced,
|
|
22
|
+
* never removed.
|
|
23
|
+
* - Neither argument is mutated; untouched branches keep referential identity.
|
|
24
|
+
* - `breakpoints` gets its query helpers back, built from the merged sizes.
|
|
25
|
+
*/
|
|
26
|
+
const createTheme = (base, overrides) => {
|
|
27
|
+
const theme = deepMerge(base, overrides);
|
|
28
|
+
return withHelpers(theme);
|
|
29
|
+
};
|
|
30
|
+
/** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
|
|
31
|
+
const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
|
|
32
|
+
...theme,
|
|
33
|
+
breakpoints: withBreakpointHelpers(theme.breakpoints)
|
|
34
|
+
} : theme;
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/theme/ThemeProvider.tsx
|
|
37
|
+
function ThemeProvider({ children, theme = baseTheme, defaults }) {
|
|
38
|
+
const value = useMemo(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
|
|
39
|
+
return /* @__PURE__ */ jsx(EmotionThemeProvider, {
|
|
40
|
+
theme: value,
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/theme/LayoutProvider.tsx
|
|
46
|
+
const pageLayout = (theme, layout) => {
|
|
47
|
+
const page = layout;
|
|
48
|
+
let carried = {};
|
|
49
|
+
const merged = {};
|
|
50
|
+
for (const key of Object.keys(theme.breakpoints)) {
|
|
51
|
+
carried = deepMerge(carried, page[key] ?? {});
|
|
52
|
+
if (Object.keys(carried).length > 0) merged[key] = carried;
|
|
53
|
+
}
|
|
54
|
+
return merged;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @description A page-level layout: everything inside sees `theme.layout` with the page's
|
|
58
|
+
* values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
|
|
59
|
+
* derives the theme from the one around it and changes nothing else, so colours, light/dark
|
|
60
|
+
* switching and every other token stay the app theme's. Nested providers stack.
|
|
61
|
+
*/
|
|
62
|
+
function LayoutProvider({ layout, children }) {
|
|
63
|
+
const derive = useCallback((outer) => {
|
|
64
|
+
const theme = "breakpoints" in outer ? outer : baseTheme;
|
|
65
|
+
return createTheme(theme, { layout: pageLayout(theme, layout) });
|
|
66
|
+
}, [layout]);
|
|
67
|
+
return /* @__PURE__ */ jsx(EmotionThemeProvider, {
|
|
68
|
+
theme: derive,
|
|
69
|
+
children
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/theme/hooks/useTheme.ts
|
|
74
|
+
/**
|
|
75
|
+
* The active theme, typed as this package's own `Theme` - Emotion is an
|
|
76
|
+
* internal implementation detail, never part of the public type surface.
|
|
77
|
+
*/
|
|
78
|
+
const useTheme = () => useEmotionTheme();
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/theme/hooks/useDefaultProps.ts
|
|
81
|
+
/**
|
|
82
|
+
* The theme-contributed default prop values for a component
|
|
83
|
+
* (`theme.components[name].defaultProps`), or an empty object.
|
|
84
|
+
*
|
|
85
|
+
* Components apply it as one step of the default-resolution chain:
|
|
86
|
+
* explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
|
|
87
|
+
*/
|
|
88
|
+
function useDefaultProps(name) {
|
|
89
|
+
return useTheme().components?.[name]?.defaultProps ?? {};
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/theme/hoc/withTheme.tsx
|
|
93
|
+
function withTheme(WrappedComponent) {
|
|
94
|
+
return function WithTheme(props) {
|
|
95
|
+
return /* @__PURE__ */ jsx(EmotionThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ jsx(WrappedComponent, {
|
|
96
|
+
...props,
|
|
97
|
+
theme
|
|
98
|
+
}) });
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { ThemeProvider as a, LayoutProvider as i, useDefaultProps as n, createTheme as o, useTheme as r, withTheme as t };
|
package/dist/theme.cjs
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_themes = require("./themes-gd6tcmqS.cjs");
|
|
4
|
+
const require_theme = require("./theme-BxXuXRgQ.cjs");
|
|
4
5
|
exports.LayoutProvider = require_theme.LayoutProvider;
|
|
5
6
|
exports.ThemeProvider = require_theme.ThemeProvider;
|
|
6
|
-
exports.avatar =
|
|
7
|
-
exports.baseTheme =
|
|
8
|
-
exports.between =
|
|
9
|
-
exports.borderWidths =
|
|
10
|
-
exports.breakpoints =
|
|
11
|
-
exports.containerQueries =
|
|
7
|
+
exports.avatar = require_themes.avatar;
|
|
8
|
+
exports.baseTheme = require_themes.baseTheme;
|
|
9
|
+
exports.between = require_themes.between;
|
|
10
|
+
exports.borderWidths = require_themes.borderWidths;
|
|
11
|
+
exports.breakpoints = require_themes.breakpoints;
|
|
12
|
+
exports.containerQueries = require_themes.containerQueries;
|
|
12
13
|
exports.createTheme = require_theme.createTheme;
|
|
13
|
-
exports.down =
|
|
14
|
-
exports.fontSizes =
|
|
15
|
-
exports.fontWeights =
|
|
16
|
-
exports.fonts =
|
|
17
|
-
exports.icon =
|
|
18
|
-
exports.layout =
|
|
19
|
-
exports.letterSpacings =
|
|
20
|
-
exports.lineHeights =
|
|
21
|
-
exports.not =
|
|
22
|
-
exports.only =
|
|
23
|
-
exports.radii =
|
|
24
|
-
exports.sizes =
|
|
25
|
-
exports.space =
|
|
14
|
+
exports.down = require_themes.down;
|
|
15
|
+
exports.fontSizes = require_themes.fontSizes;
|
|
16
|
+
exports.fontWeights = require_themes.fontWeights;
|
|
17
|
+
exports.fonts = require_themes.fonts;
|
|
18
|
+
exports.icon = require_themes.icon;
|
|
19
|
+
exports.layout = require_themes.layout;
|
|
20
|
+
exports.letterSpacings = require_themes.letterSpacings;
|
|
21
|
+
exports.lineHeights = require_themes.lineHeights;
|
|
22
|
+
exports.not = require_themes.not;
|
|
23
|
+
exports.only = require_themes.only;
|
|
24
|
+
exports.radii = require_themes.radii;
|
|
25
|
+
exports.sizes = require_themes.sizes;
|
|
26
|
+
exports.space = require_themes.space;
|
|
26
27
|
exports.themeDefault = require_themeDefault.themeDefault;
|
|
27
|
-
exports.typography =
|
|
28
|
-
exports.up =
|
|
28
|
+
exports.typography = require_themes.typography;
|
|
29
|
+
exports.up = require_themes.up;
|
|
29
30
|
exports.useDefaultProps = require_theme.useDefaultProps;
|
|
30
31
|
exports.useTheme = require_theme.useTheme;
|
|
31
|
-
exports.withBreakpointHelpers =
|
|
32
|
+
exports.withBreakpointHelpers = require_themes.withBreakpointHelpers;
|
|
32
33
|
exports.withTheme = require_theme.withTheme;
|
|
33
|
-
exports.zOrder =
|
|
34
|
+
exports.zOrder = require_themes.zOrder;
|
package/dist/theme.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-
|
|
3
|
-
export { BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, DefaultBreakpoints, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
|
|
1
|
+
import { $ as ThemeFonts, A as MenuListOwnerState, At as lineHeights, B as TabPanelOwnerState, Bt as ThemeOverride, C as LayoutContent, Ct as down, D as LayoutPanels, Dt as icon, E as LayoutPanel, Et as fonts, F as PaletteEntry, Ft as space, G as ThemeAvatarSizes, H as TabsOwnerState, Ht as BreakpointHelpers, I as PressableOwnerState, It as typography, J as ThemeBorderWidths, K as ThemeBackground, L as RatingOwnerState, Lt as up, M as NumberFieldOwnerState, Mt as only, N as OpenScale, Nt as radii, O as LayoutSpace, Ot as layout, P as PaletteColor, Pt as sizes, Q as ThemeFontWeights, R as SizeEntry, Rt as zOrder, S as LayoutBars, St as containerQueries, T as LayoutLength, Tt as fontWeights, U as TabsVariants, Ut as withBreakpointHelpers, V as TabScrollButtonOwnerState, Vt as createTheme, W as Theme, X as ThemeComponents, Y as ThemeBreakpoints, Z as ThemeDefaults, _ as ComponentStyle, _t as avatar, at as ThemeRadii, b as DefaultBreakpoints, bt as borderWidths, c as BreakpointKey, ct as ThemeSkeleton, d as ButtonVariants, dt as ThemeText, et as ThemeIconSizes, f as CSSObject, ft as ThemeTypographyVariants, g as ComponentConfig, gt as TypographyVariantStyle, h as CardSlotTypographyProps, ht as TypographyVariant, it as ThemePalette, j as MenuOwnerState, jt as not, k as MenuItemOwnerState, kt as letterSpacings, l as BreakpointOverrides, lt as ThemeSpace, m as CardSlotIconProps, mt as TransferListOwnerState, nt as ThemeLetterSpacings, ot as ThemeShadow, p as CardOwnerState, pt as ThemeZOrder, q as ThemeBorder, rt as ThemeLineHeights, s as BreadcrumbsOwnerState, st as ThemeSizes, tt as ThemeLayout, u as ButtonOwnerState, ut as ThemeSwitch, v as ComponentVariant, vt as baseTheme, w as LayoutEntry, wt as fontSizes, x as InputRangeOwnerState, xt as breakpoints, y as ContextMenuOwnerState, yt as between, z as TabOwnerState, zt as DeepPartial } from "./index-DJ0f69wh.cjs";
|
|
2
|
+
import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-DchHf5cF.cjs";
|
|
3
|
+
export { BreadcrumbsOwnerState, BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, ContextMenuOwnerState, type DeepPartial, DefaultBreakpoints, InputRangeOwnerState, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, MenuItemOwnerState, MenuListOwnerState, MenuOwnerState, NumberFieldOwnerState, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, RatingOwnerState, SizeEntry, TabOwnerState, TabPanelOwnerState, TabScrollButtonOwnerState, TabsOwnerState, TabsVariants, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TransferListOwnerState, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
|
package/dist/theme.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-
|
|
3
|
-
export { BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, DefaultBreakpoints, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
|
|
1
|
+
import { $ as ThemeFonts, A as MenuListOwnerState, At as lineHeights, B as TabPanelOwnerState, Bt as ThemeOverride, C as LayoutContent, Ct as down, D as LayoutPanels, Dt as icon, E as LayoutPanel, Et as fonts, F as PaletteEntry, Ft as space, G as ThemeAvatarSizes, H as TabsOwnerState, Ht as BreakpointHelpers, I as PressableOwnerState, It as typography, J as ThemeBorderWidths, K as ThemeBackground, L as RatingOwnerState, Lt as up, M as NumberFieldOwnerState, Mt as only, N as OpenScale, Nt as radii, O as LayoutSpace, Ot as layout, P as PaletteColor, Pt as sizes, Q as ThemeFontWeights, R as SizeEntry, Rt as zOrder, S as LayoutBars, St as containerQueries, T as LayoutLength, Tt as fontWeights, U as TabsVariants, Ut as withBreakpointHelpers, V as TabScrollButtonOwnerState, Vt as createTheme, W as Theme, X as ThemeComponents, Y as ThemeBreakpoints, Z as ThemeDefaults, _ as ComponentStyle, _t as avatar, at as ThemeRadii, b as DefaultBreakpoints, bt as borderWidths, c as BreakpointKey, ct as ThemeSkeleton, d as ButtonVariants, dt as ThemeText, et as ThemeIconSizes, f as CSSObject, ft as ThemeTypographyVariants, g as ComponentConfig, gt as TypographyVariantStyle, h as CardSlotTypographyProps, ht as TypographyVariant, it as ThemePalette, j as MenuOwnerState, jt as not, k as MenuItemOwnerState, kt as letterSpacings, l as BreakpointOverrides, lt as ThemeSpace, m as CardSlotIconProps, mt as TransferListOwnerState, nt as ThemeLetterSpacings, ot as ThemeShadow, p as CardOwnerState, pt as ThemeZOrder, q as ThemeBorder, rt as ThemeLineHeights, s as BreadcrumbsOwnerState, st as ThemeSizes, tt as ThemeLayout, u as ButtonOwnerState, ut as ThemeSwitch, v as ComponentVariant, vt as baseTheme, w as LayoutEntry, wt as fontSizes, x as InputRangeOwnerState, xt as breakpoints, y as ContextMenuOwnerState, yt as between, z as TabOwnerState, zt as DeepPartial } from "./index-CJhK7JND.mjs";
|
|
2
|
+
import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-h4dYtVrp.mjs";
|
|
3
|
+
export { BreadcrumbsOwnerState, BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, ContextMenuOwnerState, type DeepPartial, DefaultBreakpoints, InputRangeOwnerState, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, MenuItemOwnerState, MenuListOwnerState, MenuOwnerState, NumberFieldOwnerState, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, RatingOwnerState, SizeEntry, TabOwnerState, TabPanelOwnerState, TabScrollButtonOwnerState, TabsOwnerState, TabsVariants, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TransferListOwnerState, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
|
package/dist/theme.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
|
|
2
|
-
import { C as
|
|
2
|
+
import { C as withBreakpointHelpers, S as zOrder, _ as radii, a as breakpoints, b as typography, c as fontSizes, d as icon, f as layout, g as only, h as not, i as borderWidths, l as fontWeights, m as lineHeights, n as baseTheme, o as containerQueries, p as letterSpacings, r as between, s as down, t as avatar, u as fonts, v as sizes, x as up, y as space } from "./themes-L-dE7_ck.mjs";
|
|
3
|
+
import { a as ThemeProvider, i as LayoutProvider, n as useDefaultProps, o as createTheme, r as useTheme, t as withTheme } from "./theme-Z9_QludW.mjs";
|
|
3
4
|
export { LayoutProvider, ThemeProvider, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { alpha, generateBoxShadow } from "./utils.mjs";
|
|
2
|
-
import { a as useEmotionTheme, n as EmotionThemeContext, r as EmotionThemeProvider } from "./emotion-BAyqVw0c.mjs";
|
|
3
2
|
import { createContainerQueries, createMediaHelpers } from "@soroush.tech/styled-system";
|
|
4
|
-
import { useCallback, useMemo } from "react";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
3
|
//#region src/theme/utils/spacing.ts
|
|
7
4
|
const spacing = (units) => units === 0 ? "0px" : `${Math.max(1, Math.round(8 * units))}px`;
|
|
8
5
|
//#endregion
|
|
@@ -26,43 +23,12 @@ const withBreakpointHelpers = (scale) => {
|
|
|
26
23
|
return sizes;
|
|
27
24
|
};
|
|
28
25
|
//#endregion
|
|
29
|
-
//#region src/theme/utils/createTheme.ts
|
|
30
|
-
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31
|
-
const deepMerge = (base, overrides) => {
|
|
32
|
-
const merged = { ...base };
|
|
33
|
-
for (const [key, value] of Object.entries(overrides)) {
|
|
34
|
-
if (value === void 0) continue;
|
|
35
|
-
const baseValue = merged[key];
|
|
36
|
-
merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
|
|
37
|
-
}
|
|
38
|
-
return merged;
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Builds a theme by deep-merging sparse `overrides` onto `base`.
|
|
42
|
-
*
|
|
43
|
-
* - Recurses only where both sides are plain objects; arrays (`shadows`,
|
|
44
|
-
* `fontSizes`) and functions replace wholesale.
|
|
45
|
-
* - `undefined` override values are ignored - a key can be added or replaced,
|
|
46
|
-
* never removed.
|
|
47
|
-
* - Neither argument is mutated; untouched branches keep referential identity.
|
|
48
|
-
* - `breakpoints` gets its query helpers back, built from the merged sizes.
|
|
49
|
-
*/
|
|
50
|
-
const createTheme = (base, overrides) => {
|
|
51
|
-
const theme = deepMerge(base, overrides);
|
|
52
|
-
return withHelpers(theme);
|
|
53
|
-
};
|
|
54
|
-
/** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
|
|
55
|
-
const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
|
|
56
|
-
...theme,
|
|
57
|
-
breakpoints: withBreakpointHelpers(theme.breakpoints)
|
|
58
|
-
} : theme;
|
|
59
|
-
//#endregion
|
|
60
26
|
//#region src/theme/themes.ts
|
|
61
|
-
const shadow = {
|
|
27
|
+
const shadow$1 = {
|
|
62
28
|
color: "#000000",
|
|
63
29
|
opacity: .4
|
|
64
30
|
};
|
|
65
|
-
const shadows = Array.from({ length: 25 }, (_, elevation) => generateBoxShadow(elevation, alpha(shadow.color, shadow.opacity)));
|
|
31
|
+
const shadows = Array.from({ length: 25 }, (_, elevation) => generateBoxShadow(elevation, alpha(shadow$1.color, shadow$1.opacity)));
|
|
66
32
|
const radii = {
|
|
67
33
|
sq: "0",
|
|
68
34
|
sm: "4px",
|
|
@@ -155,7 +121,7 @@ const sizes = {
|
|
|
155
121
|
fontSize: 1
|
|
156
122
|
}
|
|
157
123
|
};
|
|
158
|
-
const space = {
|
|
124
|
+
const space$1 = {
|
|
159
125
|
0: 0,
|
|
160
126
|
.125: spacing(.125),
|
|
161
127
|
.25: spacing(.25),
|
|
@@ -183,7 +149,7 @@ const breakpoints = withBreakpointHelpers({
|
|
|
183
149
|
lg: "1200px",
|
|
184
150
|
xl: "1600px"
|
|
185
151
|
});
|
|
186
|
-
const layout = {
|
|
152
|
+
const layout$1 = {
|
|
187
153
|
xs: {
|
|
188
154
|
bars: { top: 8 },
|
|
189
155
|
panels: {
|
|
@@ -235,7 +201,7 @@ const layout = {
|
|
|
235
201
|
content: { maxWidth: "1600px" }
|
|
236
202
|
}
|
|
237
203
|
};
|
|
238
|
-
const typography = {
|
|
204
|
+
const typography$1 = {
|
|
239
205
|
h1: {
|
|
240
206
|
element: "h1",
|
|
241
207
|
fontSize: 6,
|
|
@@ -318,16 +284,16 @@ const baseTheme = {
|
|
|
318
284
|
borderWidths,
|
|
319
285
|
fontSizes,
|
|
320
286
|
lineHeights,
|
|
321
|
-
typography,
|
|
287
|
+
typography: typography$1,
|
|
322
288
|
letterSpacings,
|
|
323
289
|
fontWeights,
|
|
324
290
|
fonts,
|
|
325
291
|
avatar,
|
|
326
292
|
icon,
|
|
327
293
|
sizes,
|
|
328
|
-
space,
|
|
294
|
+
space: space$1,
|
|
329
295
|
breakpoints,
|
|
330
|
-
layout,
|
|
296
|
+
layout: layout$1,
|
|
331
297
|
zOrder,
|
|
332
298
|
blur: "12px",
|
|
333
299
|
colorScheme: "dark",
|
|
@@ -409,7 +375,7 @@ const baseTheme = {
|
|
|
409
375
|
logoFilter: "brightness(0) invert(1)",
|
|
410
376
|
portraitBlend: "screen",
|
|
411
377
|
portraitOpacity: .8,
|
|
412
|
-
shadow,
|
|
378
|
+
shadow: shadow$1,
|
|
413
379
|
shadows
|
|
414
380
|
};
|
|
415
381
|
/**
|
|
@@ -418,70 +384,4 @@ const baseTheme = {
|
|
|
418
384
|
*/
|
|
419
385
|
const { up, down, only, between, not, containerQueries } = breakpoints;
|
|
420
386
|
//#endregion
|
|
421
|
-
|
|
422
|
-
function ThemeProvider({ children, theme = baseTheme, defaults }) {
|
|
423
|
-
const value = useMemo(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
|
|
424
|
-
return /* @__PURE__ */ jsx(EmotionThemeProvider, {
|
|
425
|
-
theme: value,
|
|
426
|
-
children
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
//#endregion
|
|
430
|
-
//#region src/theme/LayoutProvider.tsx
|
|
431
|
-
const pageLayout = (theme, layout) => {
|
|
432
|
-
const page = layout;
|
|
433
|
-
let carried = {};
|
|
434
|
-
const merged = {};
|
|
435
|
-
for (const key of Object.keys(theme.breakpoints)) {
|
|
436
|
-
carried = deepMerge(carried, page[key] ?? {});
|
|
437
|
-
if (Object.keys(carried).length > 0) merged[key] = carried;
|
|
438
|
-
}
|
|
439
|
-
return merged;
|
|
440
|
-
};
|
|
441
|
-
/**
|
|
442
|
-
* @description A page-level layout: everything inside sees `theme.layout` with the page's
|
|
443
|
-
* values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
|
|
444
|
-
* derives the theme from the one around it and changes nothing else, so colours, light/dark
|
|
445
|
-
* switching and every other token stay the app theme's. Nested providers stack.
|
|
446
|
-
*/
|
|
447
|
-
function LayoutProvider({ layout, children }) {
|
|
448
|
-
const derive = useCallback((outer) => {
|
|
449
|
-
const theme = "breakpoints" in outer ? outer : baseTheme;
|
|
450
|
-
return createTheme(theme, { layout: pageLayout(theme, layout) });
|
|
451
|
-
}, [layout]);
|
|
452
|
-
return /* @__PURE__ */ jsx(EmotionThemeProvider, {
|
|
453
|
-
theme: derive,
|
|
454
|
-
children
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
//#endregion
|
|
458
|
-
//#region src/theme/hooks/useTheme.ts
|
|
459
|
-
/**
|
|
460
|
-
* The active theme, typed as this package's own `Theme` - Emotion is an
|
|
461
|
-
* internal implementation detail, never part of the public type surface.
|
|
462
|
-
*/
|
|
463
|
-
const useTheme = () => useEmotionTheme();
|
|
464
|
-
//#endregion
|
|
465
|
-
//#region src/theme/hooks/useDefaultProps.ts
|
|
466
|
-
/**
|
|
467
|
-
* The theme-contributed default prop values for a component
|
|
468
|
-
* (`theme.components[name].defaultProps`), or an empty object.
|
|
469
|
-
*
|
|
470
|
-
* Components apply it as one step of the default-resolution chain:
|
|
471
|
-
* explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
|
|
472
|
-
*/
|
|
473
|
-
function useDefaultProps(name) {
|
|
474
|
-
return useTheme().components?.[name]?.defaultProps ?? {};
|
|
475
|
-
}
|
|
476
|
-
//#endregion
|
|
477
|
-
//#region src/theme/hoc/withTheme.tsx
|
|
478
|
-
function withTheme(WrappedComponent) {
|
|
479
|
-
return function WithTheme(props) {
|
|
480
|
-
return /* @__PURE__ */ jsx(EmotionThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ jsx(WrappedComponent, {
|
|
481
|
-
...props,
|
|
482
|
-
theme
|
|
483
|
-
}) });
|
|
484
|
-
};
|
|
485
|
-
}
|
|
486
|
-
//#endregion
|
|
487
|
-
export { sizes as C, zOrder as D, up as E, createTheme as O, radii as S, typography as T, layout as _, ThemeProvider as a, not as b, between as c, containerQueries as d, down as f, icon as g, fonts as h, LayoutProvider as i, withBreakpointHelpers as k, borderWidths as l, fontWeights as m, useDefaultProps as n, avatar as o, fontSizes as p, useTheme as r, baseTheme as s, withTheme as t, breakpoints as u, letterSpacings as v, space as w, only as x, lineHeights as y };
|
|
387
|
+
export { withBreakpointHelpers as C, zOrder as S, radii as _, breakpoints as a, typography$1 as b, fontSizes as c, icon as d, layout$1 as f, only as g, not as h, borderWidths as i, fontWeights as l, lineHeights as m, baseTheme as n, containerQueries as o, letterSpacings as p, between as r, down as s, avatar as t, fonts as u, sizes as v, up as x, space$1 as y };
|