@soroush.tech/design-system 0.1.0 → 1.0.0
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 +42 -31
- package/dist/AppBar.cjs +2 -2
- package/dist/AppBar.d.cts +3 -2
- package/dist/AppBar.d.mts +3 -2
- package/dist/AppBar.mjs +2 -2
- package/dist/Avatar.cjs +4 -4
- package/dist/Avatar.d.cts +3 -2
- package/dist/Avatar.d.mts +3 -2
- package/dist/Avatar.mjs +3 -2
- package/dist/Backdrop.cjs +1 -1
- package/dist/Backdrop.d.cts +1 -1
- package/dist/Backdrop.d.mts +1 -1
- package/dist/Backdrop.mjs +1 -1
- package/dist/Button.cjs +5 -6
- package/dist/Button.d.cts +1 -1
- package/dist/Button.d.mts +1 -1
- package/dist/Button.mjs +3 -3
- package/dist/ButtonGroup.cjs +2 -2
- package/dist/ButtonGroup.d.cts +1 -1
- package/dist/ButtonGroup.d.mts +1 -1
- package/dist/ButtonGroup.mjs +2 -2
- package/dist/Card.cjs +6 -7
- package/dist/Card.d.cts +3 -3
- package/dist/Card.d.mts +3 -3
- package/dist/Card.mjs +4 -4
- package/dist/Checkbox.cjs +2 -2
- package/dist/Checkbox.d.cts +42 -1
- package/dist/Checkbox.d.mts +42 -1
- package/dist/Checkbox.mjs +2 -2
- package/dist/CircularProgress.cjs +2 -2
- package/dist/CircularProgress.d.cts +3 -2
- package/dist/CircularProgress.d.mts +3 -2
- package/dist/CircularProgress.mjs +2 -2
- package/dist/Drawer.cjs +2 -2
- package/dist/Drawer.d.cts +2 -2
- package/dist/Drawer.d.mts +2 -2
- package/dist/Drawer.mjs +2 -2
- package/dist/Flex.cjs +1 -1
- package/dist/Flex.d.cts +1 -1
- package/dist/Flex.d.mts +1 -1
- package/dist/Flex.mjs +1 -1
- package/dist/FocusTrap.cjs +1 -1
- package/dist/FocusTrap.mjs +1 -1
- package/dist/Form.cjs +2 -3
- package/dist/Form.d.cts +1 -1
- package/dist/Form.d.mts +1 -1
- package/dist/Form.mjs +2 -3
- package/dist/{FormContext-CRmRgDgu.cjs → FormContext-BGCsWAFc.cjs} +0 -1
- package/dist/{FormContext-_G3sxJyQ.mjs → FormContext-LrjAGe6U.mjs} +0 -1
- package/dist/FormControl.cjs +6 -6
- package/dist/FormControl.d.cts +2 -2
- package/dist/FormControl.d.mts +2 -2
- package/dist/FormControl.mjs +5 -5
- package/dist/{FormControlContext-aeKTjRKY.cjs → FormControlContext-74gvPGFk.cjs} +0 -1
- package/dist/{FormControlContext-CyxdOxdN.mjs → FormControlContext-CC2kToms.mjs} +0 -1
- package/dist/FormHelperText.cjs +3 -3
- package/dist/FormHelperText.d.cts +1 -1
- package/dist/FormHelperText.d.mts +1 -1
- package/dist/FormHelperText.mjs +3 -3
- package/dist/FormLabel.cjs +3 -3
- package/dist/FormLabel.d.cts +17 -1
- package/dist/FormLabel.d.mts +17 -1
- package/dist/FormLabel.mjs +3 -3
- package/dist/Grid.cjs +1 -1
- package/dist/Grid.d.cts +3 -2
- package/dist/Grid.d.mts +3 -2
- package/dist/Grid.mjs +1 -1
- package/dist/{Icon-CAKRmFz3.mjs → Icon-bv8Z38l-.mjs} +44 -3
- package/dist/{Icon-1YtNCUKo.cjs → Icon-zsHe7hWR.cjs} +45 -5
- 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.cjs +1 -1
- package/dist/Image.d.cts +16 -1
- package/dist/Image.d.mts +16 -1
- package/dist/Image.mjs +1 -1
- package/dist/LinearProgress.cjs +2 -2
- package/dist/LinearProgress.d.cts +3 -2
- package/dist/LinearProgress.d.mts +3 -2
- package/dist/LinearProgress.mjs +2 -2
- package/dist/Link.cjs +4 -4
- package/dist/Link.d.cts +10 -1
- package/dist/Link.d.mts +10 -1
- package/dist/Link.mjs +3 -2
- package/dist/MenuItem.cjs +6 -7
- package/dist/MenuItem.d.cts +2 -1
- package/dist/MenuItem.d.mts +2 -1
- package/dist/MenuItem.mjs +4 -3
- package/dist/{Modal-BDMPTSXv.cjs → Modal-DZH-DzMZ.cjs} +2 -2
- package/dist/{Modal-DR60peRg.mjs → Modal-dy5l7gfH.mjs} +2 -2
- package/dist/Modal.cjs +1 -1
- package/dist/Modal.d.cts +1 -1
- package/dist/Modal.d.mts +1 -1
- package/dist/Modal.mjs +1 -1
- package/dist/NativeSelect.cjs +5 -5
- package/dist/NativeSelect.d.cts +3 -2
- package/dist/NativeSelect.d.mts +3 -2
- package/dist/NativeSelect.mjs +4 -3
- package/dist/Pagination/PaginationItem.cjs +3 -3
- package/dist/Pagination/PaginationItem.d.cts +1 -1
- package/dist/Pagination/PaginationItem.d.mts +1 -1
- package/dist/Pagination/PaginationItem.mjs +3 -3
- package/dist/Pagination.cjs +1 -1
- package/dist/Pagination.d.cts +2 -22
- package/dist/Pagination.d.mts +2 -22
- package/dist/Pagination.mjs +1 -1
- package/dist/Paper.cjs +5 -6
- package/dist/Paper.d.cts +1 -1
- package/dist/Paper.d.mts +1 -1
- package/dist/Paper.mjs +3 -2
- package/dist/{Popover-B61J7C79.mjs → Popover-Chgtjn-N.mjs} +3 -2
- package/dist/{Popover-CRDLmywF.cjs → Popover-pEVboMZO.cjs} +4 -4
- package/dist/Popover.cjs +1 -1
- package/dist/Popover.d.cts +4 -3
- package/dist/Popover.d.mts +4 -3
- package/dist/Popover.mjs +1 -1
- package/dist/Quote.cjs +1 -1
- package/dist/Quote.d.cts +13 -1
- package/dist/Quote.d.mts +13 -1
- package/dist/Quote.mjs +1 -1
- package/dist/Radio.cjs +2 -2
- package/dist/Radio.d.cts +2 -2
- package/dist/Radio.d.mts +2 -2
- package/dist/Radio.mjs +2 -2
- package/dist/Select.cjs +10 -32
- package/dist/Select.d.cts +3 -2
- package/dist/Select.d.mts +3 -2
- package/dist/Select.mjs +9 -30
- package/dist/Skeleton.cjs +1 -1
- package/dist/Skeleton.d.cts +2 -1
- package/dist/Skeleton.d.mts +2 -1
- package/dist/Skeleton.mjs +1 -1
- package/dist/Switch.cjs +4 -4
- package/dist/Switch.d.cts +2 -1
- package/dist/Switch.d.mts +2 -1
- package/dist/Switch.mjs +3 -2
- package/dist/Table/Table.cjs +2 -2
- package/dist/Table/Table.d.cts +47 -1
- package/dist/Table/Table.d.mts +47 -1
- package/dist/Table/Table.mjs +2 -2
- package/dist/Table/TableBody.cjs +1 -1
- package/dist/Table/TableBody.d.cts +21 -1
- package/dist/Table/TableBody.d.mts +21 -1
- package/dist/Table/TableBody.mjs +1 -1
- package/dist/Table/TableCell.cjs +3 -3
- package/dist/Table/TableCell.d.cts +1 -1
- package/dist/Table/TableCell.d.mts +1 -1
- package/dist/Table/TableCell.mjs +3 -3
- package/dist/Table/TableContainer.cjs +1 -1
- package/dist/Table/TableContainer.d.cts +17 -1
- package/dist/Table/TableContainer.d.mts +17 -1
- package/dist/Table/TableContainer.mjs +1 -1
- package/dist/Table/TableControl.d.cts +27 -1
- package/dist/Table/TableControl.d.mts +27 -1
- package/dist/Table/TableFooter.cjs +1 -1
- package/dist/Table/TableFooter.d.cts +21 -1
- package/dist/Table/TableFooter.d.mts +21 -1
- package/dist/Table/TableFooter.mjs +1 -1
- package/dist/Table/TableHead.cjs +1 -1
- package/dist/Table/TableHead.d.cts +21 -1
- package/dist/Table/TableHead.d.mts +21 -1
- package/dist/Table/TableHead.mjs +1 -1
- package/dist/Table/TablePagination.cjs +1 -1
- package/dist/Table/TablePagination.d.cts +44 -1
- package/dist/Table/TablePagination.d.mts +44 -1
- package/dist/Table/TablePagination.mjs +1 -1
- package/dist/Table/TablePaginationActions.cjs +4 -4
- package/dist/Table/TablePaginationActions.d.cts +1 -1
- package/dist/Table/TablePaginationActions.d.mts +1 -1
- package/dist/Table/TablePaginationActions.mjs +3 -2
- package/dist/Table/TableRow.cjs +3 -3
- package/dist/Table/TableRow.d.cts +29 -1
- package/dist/Table/TableRow.d.mts +29 -1
- package/dist/Table/TableRow.mjs +3 -3
- package/dist/Table/TableSortLabel.cjs +3 -3
- package/dist/Table/TableSortLabel.d.cts +1 -1
- package/dist/Table/TableSortLabel.d.mts +1 -1
- package/dist/Table/TableSortLabel.mjs +3 -3
- package/dist/Table/hooks.d.cts +39 -2
- package/dist/Table/hooks.d.mts +39 -2
- package/dist/Table.cjs +1 -1
- package/dist/Table.d.cts +14 -15
- package/dist/Table.d.mts +14 -15
- package/dist/Table.mjs +1 -1
- package/dist/{TableContext-qqp35o8z.cjs → TableContext-Bfg1C3Sr.cjs} +0 -1
- package/dist/{TableContext-2qH7XYJB.d.cts → TableContext-DOhYeOFx.d.cts} +1 -1
- package/dist/{TableContext-BRWPghAI.mjs → TableContext-Dyr89h_k.mjs} +0 -1
- package/dist/{TableContext-2qH7XYJB.d.mts → TableContext-adilRIJZ.d.mts} +1 -1
- package/dist/TextInput.cjs +228 -2
- package/dist/TextInput.d.cts +79 -1
- package/dist/TextInput.d.mts +79 -1
- package/dist/TextInput.mjs +226 -1
- package/dist/ToggleButton/ToggleButton.cjs +4 -4
- package/dist/ToggleButton/ToggleButton.d.cts +1 -1
- package/dist/ToggleButton/ToggleButton.d.mts +1 -1
- package/dist/ToggleButton/ToggleButton.mjs +3 -2
- package/dist/ToggleButton/ToggleButtonGroup.cjs +4 -4
- package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
- package/dist/ToggleButton/ToggleButtonGroup.mjs +3 -2
- package/dist/ToggleButton.d.cts +1 -1
- package/dist/ToggleButton.d.mts +1 -1
- package/dist/Typography.cjs +3 -3
- package/dist/Typography.d.cts +2 -2
- package/dist/Typography.d.mts +2 -2
- package/dist/Typography.mjs +2 -1
- package/dist/View.cjs +1 -1
- package/dist/View.d.cts +1 -1
- package/dist/View.d.mts +1 -1
- package/dist/View.mjs +1 -1
- package/dist/emotion-BAyqVw0c.mjs +6 -0
- package/dist/emotion-DviPkkGL.cjs +10 -0
- package/dist/engine.cjs +80 -0
- package/dist/engine.d.cts +21 -0
- package/dist/engine.d.mts +21 -0
- package/dist/engine.mjs +69 -0
- package/dist/index-0J6U39Rl.d.mts +53 -0
- package/dist/{index-Dm9HfgV6.d.mts → index-B66h9kbP.d.mts} +17 -7
- package/dist/{index-FwTocqhP.d.cts → index-B8FOqBiS.d.cts} +2 -1
- package/dist/{index-DE5PtzPn.d.mts → index-BF2KXGBM.d.mts} +2 -2
- package/dist/{index-CeYkEXU2.d.cts → index-BGWm4HKR.d.cts} +2 -2
- package/dist/{index-DmJIuQJj.d.mts → index-BGzs2cKy.d.mts} +3 -2
- package/dist/{index-B1rCD6Oo.d.cts → index-BJcHQUga.d.mts} +3 -2
- package/dist/{index-CDVnvjIE.d.cts → index-BLnOsdgc.d.cts} +2 -2
- package/dist/{index-Bihpwn75.d.cts → index-BVX_Jq2G.d.cts} +17 -7
- package/dist/{index-8dzWTpFp.d.cts → index-BahGB82c.d.cts} +3 -2
- package/dist/{index-DASvoACZ.d.cts → index-BnCp6k4s.d.cts} +2 -2
- package/dist/{index-Dy03o__A.d.mts → index-BpLv6Y8m.d.mts} +2 -1
- package/dist/index-C-UBdWKI.d.cts +24 -0
- package/dist/{index-BqVgv2B_.d.mts → index-C1vVYigQ.d.cts} +3 -2
- package/dist/index-CJQXZ4hq.d.cts +53 -0
- package/dist/{index-C0xMvDjL.d.mts → index-CLCtvcKA.d.mts} +2 -2
- package/dist/{index-DSCMXFTn.d.cts → index-CY0Czi9Z.d.cts} +2 -1
- package/dist/{index-pX7tBQdJ.d.mts → index-CYNgNatZ.d.mts} +2 -1
- package/dist/{index-BLfFycfJ.d.mts → index-D0x1ZMVG.d.mts} +6 -2
- package/dist/{index-4rC2j7fR.d.cts → index-D2H_6WLf.d.cts} +3 -2
- package/dist/{index-BnzUumAC2.d.mts → index-DCwLdUQH.d.mts} +2 -1
- package/dist/{index-BH8jQOdF.d.mts → index-DGqakgRN.d.mts} +3 -2
- package/dist/{index-BLRMuO_x.d.mts → index-DLiHZtDi.d.mts} +3 -2
- package/dist/{index-Dp81rWM1.d.cts → index-DN7IvJeV.d.cts} +6 -2
- package/dist/{index-BX5-NfbX.d.cts → index-DdFxl06Q.d.cts} +2 -1
- package/dist/{index-z35LEYG8.d.mts → index-DhcmRr8Q.d.cts} +3 -2
- package/dist/index-DitJ7ss0.d.mts +24 -0
- package/dist/{index-CyZYXDn0.d.cts → index-DwjxjLcD.d.mts} +3 -2
- package/dist/{index-x80UG39F.d.cts → index-HnvGdPCp.d.cts} +3 -2
- package/dist/{index-CxSNNzBT2.d.mts → index-ypEBcdCx.d.mts} +2 -2
- package/dist/index.cjs +2 -32
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +2 -2
- package/dist/{src-DcNT2aIK.mjs → src-BJy4dM4f.mjs} +5 -10
- package/dist/{src-BiocWFSR.cjs → src-C8PIppTy.cjs} +2 -7
- package/dist/{hooks.cjs → style.cjs} +5 -23
- package/dist/style.d.cts +23 -0
- package/dist/style.d.mts +23 -0
- package/dist/{hooks.mjs → style.mjs} +6 -16
- package/dist/theme-Du6xgPsg.cjs +470 -0
- package/dist/{themes.mjs → theme-V6lYzd3j.mjs} +68 -14
- package/dist/theme.cjs +23 -0
- package/dist/theme.d.cts +3 -0
- package/dist/theme.d.mts +3 -0
- package/dist/theme.mjs +3 -0
- package/dist/{themeDefault-B-QjpGEO.cjs → themeDefault-Cebi08Cv.cjs} +1 -1
- package/dist/{themeDefault-CjXaY3ok.mjs → themeDefault-Z3KmyIbm.mjs} +1 -1
- package/dist/themes-BTGww2YK.d.cts +488 -0
- package/dist/themes-BTGww2YK.d.mts +488 -0
- package/dist/{useTableSort--XMWjujs.d.cts → useTablePagination-D6T-fQFc.d.mts} +25 -25
- package/dist/{useTableSort-CpDs4cGq.d.mts → useTablePagination-_94Wrvj9.d.cts} +25 -25
- package/dist/utils.cjs +0 -29
- package/dist/utils.d.cts +1 -19
- package/dist/utils.d.mts +1 -19
- package/dist/utils.mjs +1 -27
- package/package.json +410 -23
- package/dist/CodeBlock.cjs +0 -101
- package/dist/CodeBlock.d.cts +0 -2
- package/dist/CodeBlock.d.mts +0 -2
- package/dist/CodeBlock.mjs +0 -100
- package/dist/Field.cjs +0 -59
- package/dist/Field.d.cts +0 -36
- package/dist/Field.d.mts +0 -36
- package/dist/Field.mjs +0 -58
- package/dist/Markdown/Control.cjs +0 -61
- package/dist/Markdown/Control.d.cts +0 -18
- package/dist/Markdown/Control.d.mts +0 -18
- package/dist/Markdown/Control.mjs +0 -60
- package/dist/Markdown/Editor.cjs +0 -130
- package/dist/Markdown/Editor.d.cts +0 -40
- package/dist/Markdown/Editor.d.mts +0 -40
- package/dist/Markdown/Editor.mjs +0 -128
- package/dist/Markdown/Preview.cjs +0 -241
- package/dist/Markdown/Preview.d.cts +0 -55
- package/dist/Markdown/Preview.d.mts +0 -55
- package/dist/Markdown/Preview.mjs +0 -236
- package/dist/Markdown/Toolbar.cjs +0 -4
- package/dist/Markdown/Toolbar.d.cts +0 -13
- package/dist/Markdown/Toolbar.d.mts +0 -13
- package/dist/Markdown/Toolbar.mjs +0 -2
- package/dist/Markdown.cjs +0 -13
- package/dist/Markdown.d.cts +0 -80
- package/dist/Markdown.d.mts +0 -80
- package/dist/Markdown.mjs +0 -6
- package/dist/MarkdownContext-BN8A3W-J.mjs +0 -11
- package/dist/MarkdownContext-DSwjzpH8.cjs +0 -22
- package/dist/TextInput-6o37Zddp.cjs +0 -231
- package/dist/TextInput-D_lHYJlL.mjs +0 -224
- package/dist/ThemeProvider.cjs +0 -15
- package/dist/ThemeProvider.d.cts +0 -20
- package/dist/ThemeProvider.d.mts +0 -20
- package/dist/ThemeProvider.mjs +0 -14
- package/dist/Toolbar-B-W22Sk4.cjs +0 -459
- package/dist/Toolbar-KbR97iJS.mjs +0 -448
- package/dist/applyAction-B2B-hnP3.mjs +0 -98
- package/dist/applyAction-B2uVHxOE.cjs +0 -103
- package/dist/createTheme-Dts2F4R_.d.cts +0 -21
- package/dist/createTheme-Dts2F4R_.d.mts +0 -21
- package/dist/hooks/useCopyToClipboard.cjs +0 -33
- package/dist/hooks/useCopyToClipboard.d.cts +0 -16
- package/dist/hooks/useCopyToClipboard.d.mts +0 -16
- package/dist/hooks/useCopyToClipboard.mjs +0 -31
- package/dist/hooks.d.cts +0 -40
- package/dist/hooks.d.mts +0 -40
- package/dist/index-BPrjvi7B.d.cts +0 -13
- package/dist/index-BlfIbAMs.d.cts +0 -45
- package/dist/index-BoqlPb3Z.d.mts +0 -13
- package/dist/index-Bwi4kRpf.d.mts +0 -79
- package/dist/index-Bx24ZnOV.d.mts +0 -43
- package/dist/index-C-P_hipv.d.mts +0 -21
- package/dist/index-C5_ciaeo.d.cts +0 -79
- package/dist/index-CDcGTGR4.d.cts +0 -21
- package/dist/index-CEOZI-6L.d.mts +0 -48
- package/dist/index-CLU39rUS2.d.mts +0 -30
- package/dist/index-CM_KCTee.d.cts +0 -48
- package/dist/index-CT9uGKrs.d.cts +0 -30
- package/dist/index-CcYSvIJi.d.cts +0 -21
- package/dist/index-CdF_4ckE.d.mts +0 -11
- package/dist/index-Cl_yBpzW2.d.mts +0 -13
- package/dist/index-Cv_UOfYx.d.mts +0 -18
- package/dist/index-DBGE6yKw.d.mts +0 -16
- package/dist/index-DCQ2fsDu.d.mts +0 -40
- package/dist/index-DD2AVtiR.d.cts +0 -16
- package/dist/index-DOPXpr2J.d.cts +0 -43
- package/dist/index-DTkQSXQD.d.cts +0 -11
- package/dist/index-DeJWkpf9.d.cts +0 -16
- package/dist/index-DeiZHSwA.d.cts +0 -12
- package/dist/index-Des8BisQ.d.mts +0 -12
- package/dist/index-Dg8-CPOO.d.cts +0 -18
- package/dist/index-DgRS5Aqv.d.mts +0 -16
- package/dist/index-Dtzj8X58.d.cts +0 -40
- package/dist/index-DvW2eETV.d.mts +0 -21
- package/dist/index-GVsFY00r.d.cts +0 -21
- package/dist/index-Nqco3fsM.d.cts +0 -13
- package/dist/index-g-9DZ_KQ.d.cts +0 -28
- package/dist/index-g9EThkSg.d.mts +0 -21
- package/dist/index-kpk9e3xM2.d.mts +0 -45
- package/dist/index-u57CbuAU2.d.mts +0 -28
- package/dist/themes-D1SAp3SL.d.mts +0 -500
- package/dist/themes-D81JYbqm.d.cts +0 -500
- package/dist/themes.cjs +0 -318
- package/dist/themes.d.cts +0 -3
- package/dist/themes.d.mts +0 -3
- package/dist/useDefaultProps-Cb-5FNok.cjs +0 -19
- package/dist/useDefaultProps-CoApb4KT.mjs +0 -14
- package/dist/utils/styleCache.cjs +0 -7
- package/dist/utils/styleCache.d.cts +0 -3
- package/dist/utils/styleCache.d.mts +0 -4
- package/dist/utils/styleCache.mjs +0 -5
|
@@ -1,5 +1,33 @@
|
|
|
1
|
-
import { alpha,
|
|
2
|
-
|
|
1
|
+
import { alpha, generateBoxShadow } from "./utils.mjs";
|
|
2
|
+
import { a as useEmotionTheme, n as EmotionThemeContext, r as EmotionThemeProvider } from "./emotion-BAyqVw0c.mjs";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/theme/utils/spacing.ts
|
|
6
|
+
const spacing = (units) => `${8 * units}px`;
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/theme/utils/createTheme.ts
|
|
9
|
+
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
const deepMerge = (base, overrides) => {
|
|
11
|
+
const merged = { ...base };
|
|
12
|
+
for (const [key, value] of Object.entries(overrides)) {
|
|
13
|
+
if (value === void 0) continue;
|
|
14
|
+
const baseValue = merged[key];
|
|
15
|
+
merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
|
|
16
|
+
}
|
|
17
|
+
return merged;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Builds a theme by deep-merging sparse `overrides` onto `base`.
|
|
21
|
+
*
|
|
22
|
+
* - Recurses only where both sides are plain objects; arrays (`shadows`,
|
|
23
|
+
* `fontSizes`) and functions replace wholesale.
|
|
24
|
+
* - `undefined` override values are ignored — a key can be added or replaced,
|
|
25
|
+
* never removed.
|
|
26
|
+
* - Neither argument is mutated; untouched branches keep referential identity.
|
|
27
|
+
*/
|
|
28
|
+
const createTheme = (base, overrides) => deepMerge(base, overrides);
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/theme/themes.ts
|
|
3
31
|
const shadow = {
|
|
4
32
|
color: "#000000",
|
|
5
33
|
opacity: .4
|
|
@@ -282,17 +310,6 @@ const baseTheme = {
|
|
|
282
310
|
dark: "#006413"
|
|
283
311
|
},
|
|
284
312
|
skeleton: { highlight: alpha("#363636", .65) },
|
|
285
|
-
syntax: {
|
|
286
|
-
base: "#BBBBBB",
|
|
287
|
-
keyword: "#CF8E6D",
|
|
288
|
-
string: "#6AAB73",
|
|
289
|
-
number: "#2AACB8",
|
|
290
|
-
title: "#6BA9FA",
|
|
291
|
-
constant: "#C77DBB",
|
|
292
|
-
type: "#2AACB8",
|
|
293
|
-
comment: "#919191",
|
|
294
|
-
tag: "#D5B778"
|
|
295
|
-
},
|
|
296
313
|
logoFilter: "brightness(0) invert(1)",
|
|
297
314
|
portraitBlend: "screen",
|
|
298
315
|
portraitOpacity: .8,
|
|
@@ -300,4 +317,41 @@ const baseTheme = {
|
|
|
300
317
|
shadows
|
|
301
318
|
};
|
|
302
319
|
//#endregion
|
|
303
|
-
|
|
320
|
+
//#region src/theme/ThemeProvider.tsx
|
|
321
|
+
function ThemeProvider({ children, theme = baseTheme, defaults }) {
|
|
322
|
+
return /* @__PURE__ */ jsx(EmotionThemeProvider, {
|
|
323
|
+
theme: useMemo(() => defaults ? createTheme(theme, { defaults }) : theme, [theme, defaults]),
|
|
324
|
+
children
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
//#endregion
|
|
328
|
+
//#region src/theme/hooks/useTheme.ts
|
|
329
|
+
/**
|
|
330
|
+
* The active theme, typed as this package's own `Theme` — Emotion is an
|
|
331
|
+
* internal implementation detail, never part of the public type surface.
|
|
332
|
+
*/
|
|
333
|
+
const useTheme = () => useEmotionTheme();
|
|
334
|
+
//#endregion
|
|
335
|
+
//#region src/theme/hooks/useDefaultProps.ts
|
|
336
|
+
/**
|
|
337
|
+
* The theme-contributed default prop values for a component
|
|
338
|
+
* (`theme.components[name].defaultProps`), or an empty object.
|
|
339
|
+
*
|
|
340
|
+
* Components apply it as one step of the default-resolution chain:
|
|
341
|
+
* explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
|
|
342
|
+
*/
|
|
343
|
+
function useDefaultProps(name) {
|
|
344
|
+
return useTheme().components?.[name]?.defaultProps ?? {};
|
|
345
|
+
}
|
|
346
|
+
//#endregion
|
|
347
|
+
//#region src/theme/hoc/withTheme.tsx
|
|
348
|
+
function withTheme(WrappedComponent) {
|
|
349
|
+
return function WithTheme(props) {
|
|
350
|
+
return /* @__PURE__ */ jsx(EmotionThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ jsx(WrappedComponent, {
|
|
351
|
+
...props,
|
|
352
|
+
theme
|
|
353
|
+
}) });
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
//#endregion
|
|
357
|
+
export { typography as _, avatar as a, fontSizes as c, icon as d, letterSpacings as f, space as g, sizes as h, ThemeProvider as i, fontWeights as l, radii as m, useDefaultProps as n, baseTheme as o, lineHeights as p, useTheme as r, borderWidths as s, withTheme as t, fonts as u, zOrder as v, createTheme as y };
|
package/dist/theme.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
|
|
3
|
+
const require_theme = require("./theme-Du6xgPsg.cjs");
|
|
4
|
+
exports.ThemeProvider = require_theme.ThemeProvider;
|
|
5
|
+
exports.avatar = require_theme.avatar;
|
|
6
|
+
exports.baseTheme = require_theme.baseTheme;
|
|
7
|
+
exports.borderWidths = require_theme.borderWidths;
|
|
8
|
+
exports.createTheme = require_theme.createTheme;
|
|
9
|
+
exports.fontSizes = require_theme.fontSizes;
|
|
10
|
+
exports.fontWeights = require_theme.fontWeights;
|
|
11
|
+
exports.fonts = require_theme.fonts;
|
|
12
|
+
exports.icon = require_theme.icon;
|
|
13
|
+
exports.letterSpacings = require_theme.letterSpacings;
|
|
14
|
+
exports.lineHeights = require_theme.lineHeights;
|
|
15
|
+
exports.radii = require_theme.radii;
|
|
16
|
+
exports.sizes = require_theme.sizes;
|
|
17
|
+
exports.space = require_theme.space;
|
|
18
|
+
exports.themeDefault = require_themeDefault.themeDefault;
|
|
19
|
+
exports.typography = require_theme.typography;
|
|
20
|
+
exports.useDefaultProps = require_theme.useDefaultProps;
|
|
21
|
+
exports.useTheme = require_theme.useTheme;
|
|
22
|
+
exports.withTheme = require_theme.withTheme;
|
|
23
|
+
exports.zOrder = require_theme.zOrder;
|
package/dist/theme.d.cts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { $ as ThemeOverride, A as ThemeSkeleton, B as borderWidths, C as ThemeIconSizes, D as ThemeRadii, E as ThemePalette, F as ThemeZOrder, G as letterSpacings, H as fontWeights, I as TypographyVariant, J as sizes, K as lineHeights, L as TypographyVariantStyle, M as ThemeSwitch, N as ThemeText, O as ThemeShadow, P as ThemeTypographyVariants, Q as DeepPartial, R as avatar, S as ThemeFonts, T as ThemeLineHeights, U as fonts, V as fontSizes, W as icon, X as typography, Y as space, Z as zOrder, _ as ThemeBorder, a as CardSlotIconProps, b as ThemeDefaults, c as ComponentStyle, d as PaletteColor, et as createTheme, f as PaletteEntry, g as ThemeBackground, h as ThemeAvatarSizes, i as CardOwnerState, j as ThemeSpace, k as ThemeSizes, l as ComponentVariant, m as Theme, n as ButtonVariants, o as CardSlotTypographyProps, p as SizeEntry, q as radii, r as CSSObject, s as ComponentConfig, t as ButtonOwnerState, u as OpenScale, v as ThemeBorderWidths, w as ThemeLetterSpacings, x as ThemeFontWeights, y as ThemeComponents, z as baseTheme } from "./themes-BTGww2YK.cjs";
|
|
2
|
+
import { a as ThemeProvider, i as themeDefault, n as useDefaultProps, r as useTheme, t as withTheme } from "./index-CJQXZ4hq.cjs";
|
|
3
|
+
export { ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, OpenScale, PaletteColor, PaletteEntry, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, borderWidths, createTheme, fontSizes, fontWeights, fonts, icon, letterSpacings, lineHeights, radii, sizes, space, themeDefault, typography, useDefaultProps, useTheme, withTheme, zOrder };
|
package/dist/theme.d.mts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { $ as ThemeOverride, A as ThemeSkeleton, B as borderWidths, C as ThemeIconSizes, D as ThemeRadii, E as ThemePalette, F as ThemeZOrder, G as letterSpacings, H as fontWeights, I as TypographyVariant, J as sizes, K as lineHeights, L as TypographyVariantStyle, M as ThemeSwitch, N as ThemeText, O as ThemeShadow, P as ThemeTypographyVariants, Q as DeepPartial, R as avatar, S as ThemeFonts, T as ThemeLineHeights, U as fonts, V as fontSizes, W as icon, X as typography, Y as space, Z as zOrder, _ as ThemeBorder, a as CardSlotIconProps, b as ThemeDefaults, c as ComponentStyle, d as PaletteColor, et as createTheme, f as PaletteEntry, g as ThemeBackground, h as ThemeAvatarSizes, i as CardOwnerState, j as ThemeSpace, k as ThemeSizes, l as ComponentVariant, m as Theme, n as ButtonVariants, o as CardSlotTypographyProps, p as SizeEntry, q as radii, r as CSSObject, s as ComponentConfig, t as ButtonOwnerState, u as OpenScale, v as ThemeBorderWidths, w as ThemeLetterSpacings, x as ThemeFontWeights, y as ThemeComponents, z as baseTheme } from "./themes-BTGww2YK.mjs";
|
|
2
|
+
import { a as ThemeProvider, i as themeDefault, n as useDefaultProps, r as useTheme, t as withTheme } from "./index-0J6U39Rl.mjs";
|
|
3
|
+
export { ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, OpenScale, PaletteColor, PaletteEntry, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, borderWidths, createTheme, fontSizes, fontWeights, fonts, icon, letterSpacings, lineHeights, radii, sizes, space, themeDefault, typography, useDefaultProps, useTheme, withTheme, zOrder };
|
package/dist/theme.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
|
|
2
|
+
import { _ as typography, a as avatar, c as fontSizes, d as icon, f as letterSpacings, g as space, h as sizes, i as ThemeProvider, l as fontWeights, m as radii, n as useDefaultProps, o as baseTheme, p as lineHeights, r as useTheme, s as borderWidths, t as withTheme, u as fonts, v as zOrder, y as createTheme } from "./theme-V6lYzd3j.mjs";
|
|
3
|
+
export { ThemeProvider, avatar, baseTheme, borderWidths, createTheme, fontSizes, fontWeights, fonts, icon, letterSpacings, lineHeights, radii, sizes, space, themeDefault, typography, useDefaultProps, useTheme, withTheme, zOrder };
|
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
import { CSSObject } from "@emotion/react";
|
|
2
|
+
import { ElementType } from "react";
|
|
3
|
+
//#region src/theme/utils/createTheme.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Recursive partial of a theme shape. Plain objects recurse; arrays and
|
|
6
|
+
* functions are replaced wholesale by `createTheme`, so they stay intact here.
|
|
7
|
+
*/
|
|
8
|
+
type DeepPartial<T> = { [K in keyof T]?: T[K] extends readonly unknown[] ? T[K] : T[K] extends ((...args: never[]) => unknown) ? T[K] : T[K] extends object ? DeepPartial<T[K]> : T[K]; };
|
|
9
|
+
/** Sparse theme patch accepted by `createTheme` and `ThemeProvider`'s `themes` prop. */
|
|
10
|
+
type ThemeOverride = DeepPartial<Theme>;
|
|
11
|
+
/**
|
|
12
|
+
* Builds a theme by deep-merging sparse `overrides` onto `base`.
|
|
13
|
+
*
|
|
14
|
+
* - Recurses only where both sides are plain objects; arrays (`shadows`,
|
|
15
|
+
* `fontSizes`) and functions replace wholesale.
|
|
16
|
+
* - `undefined` override values are ignored — a key can be added or replaced,
|
|
17
|
+
* never removed.
|
|
18
|
+
* - Neither argument is mutated; untouched branches keep referential identity.
|
|
19
|
+
*/
|
|
20
|
+
declare const createTheme: (base: Theme, overrides: ThemeOverride) => Theme;
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/theme/themes.d.ts
|
|
23
|
+
/** Design-system's own style-object shape — Emotion stays an internal implementation detail. */
|
|
24
|
+
type CSSObject$1 = CSSObject;
|
|
25
|
+
/**
|
|
26
|
+
* Re-opens a named scale interface as an anonymous mapped type. Named
|
|
27
|
+
* interfaces have no implicit index signature, which styled-system's
|
|
28
|
+
* Record-based `Theme` constraint requires — the mapped copy restores it
|
|
29
|
+
* while keeping the literal keys (and any consumer-augmented keys).
|
|
30
|
+
*/
|
|
31
|
+
type OpenScale<T> = { [K in keyof T]: T[K]; };
|
|
32
|
+
/** One semantic color of `theme.palette`. */
|
|
33
|
+
interface PaletteEntry {
|
|
34
|
+
main: string;
|
|
35
|
+
light: string;
|
|
36
|
+
dark: string;
|
|
37
|
+
contrastText: string;
|
|
38
|
+
}
|
|
39
|
+
interface ThemePalette {
|
|
40
|
+
default: PaletteEntry;
|
|
41
|
+
primary: PaletteEntry;
|
|
42
|
+
secondary: PaletteEntry;
|
|
43
|
+
success: PaletteEntry;
|
|
44
|
+
error: PaletteEntry;
|
|
45
|
+
info: PaletteEntry;
|
|
46
|
+
warning: PaletteEntry;
|
|
47
|
+
}
|
|
48
|
+
interface ThemeText {
|
|
49
|
+
inherit: string;
|
|
50
|
+
initial: string;
|
|
51
|
+
primary: string;
|
|
52
|
+
secondary: string;
|
|
53
|
+
disabled: string;
|
|
54
|
+
error: string;
|
|
55
|
+
success: string;
|
|
56
|
+
info: string;
|
|
57
|
+
warning: string;
|
|
58
|
+
}
|
|
59
|
+
interface ThemeBackground {
|
|
60
|
+
backdrop: string;
|
|
61
|
+
/** App bar / sticky header surface. Light in light theme; `backdrop` stays dark for scrims. */
|
|
62
|
+
appBar: string;
|
|
63
|
+
glass: string;
|
|
64
|
+
modal: string;
|
|
65
|
+
default: string;
|
|
66
|
+
primary: string;
|
|
67
|
+
secondary?: string;
|
|
68
|
+
paper: string;
|
|
69
|
+
terminal: string;
|
|
70
|
+
grid: string;
|
|
71
|
+
transparent: string;
|
|
72
|
+
}
|
|
73
|
+
interface ThemeBorder {
|
|
74
|
+
default?: string;
|
|
75
|
+
light?: string;
|
|
76
|
+
primary: string;
|
|
77
|
+
dark?: string;
|
|
78
|
+
}
|
|
79
|
+
interface ThemeFonts {
|
|
80
|
+
body: string;
|
|
81
|
+
heading: string;
|
|
82
|
+
mono: string;
|
|
83
|
+
}
|
|
84
|
+
/** Skeleton placeholder tokens. `highlight` is the wave-animation shimmer band. */
|
|
85
|
+
interface ThemeSkeleton {
|
|
86
|
+
highlight: string;
|
|
87
|
+
}
|
|
88
|
+
/** Switch control tokens. The thumb stays light in both modes so it reads on any track. */
|
|
89
|
+
interface ThemeSwitch {
|
|
90
|
+
/** Thumb fill. Its elevation shadow composites from `theme.shadow.color`. */
|
|
91
|
+
thumb: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Shadow tokens — the single base color every shadow composites from
|
|
95
|
+
* (the `theme.shadows` elevation array and component shadows alike).
|
|
96
|
+
*/
|
|
97
|
+
interface ThemeShadow {
|
|
98
|
+
/** Opaque base color of all shadows. */
|
|
99
|
+
color: string;
|
|
100
|
+
/** Alpha applied per elevation step in the default `theme.shadows` array. */
|
|
101
|
+
opacity: number;
|
|
102
|
+
}
|
|
103
|
+
/** Stacking order for layered UI — ascending: appBar < drawer < modal. */
|
|
104
|
+
interface ThemeZOrder {
|
|
105
|
+
appBar: number;
|
|
106
|
+
drawer: number;
|
|
107
|
+
modal: number;
|
|
108
|
+
}
|
|
109
|
+
interface ThemeRadii {
|
|
110
|
+
sq: string;
|
|
111
|
+
sm: string;
|
|
112
|
+
md: string;
|
|
113
|
+
lg: string;
|
|
114
|
+
}
|
|
115
|
+
interface ThemeBorderWidths {
|
|
116
|
+
none: string;
|
|
117
|
+
thin: string;
|
|
118
|
+
base: string;
|
|
119
|
+
thick: string;
|
|
120
|
+
}
|
|
121
|
+
interface ThemeAvatarSizes {
|
|
122
|
+
sm: string;
|
|
123
|
+
md: string;
|
|
124
|
+
lg: string;
|
|
125
|
+
xl: string;
|
|
126
|
+
}
|
|
127
|
+
interface ThemeFontWeights {
|
|
128
|
+
thin: number;
|
|
129
|
+
extraLight: number;
|
|
130
|
+
light: number;
|
|
131
|
+
normal: number;
|
|
132
|
+
medium: number;
|
|
133
|
+
semiBold: number;
|
|
134
|
+
bold: number;
|
|
135
|
+
extraBold: number;
|
|
136
|
+
black: number;
|
|
137
|
+
}
|
|
138
|
+
interface ThemeLineHeights {
|
|
139
|
+
none: number;
|
|
140
|
+
tight: number;
|
|
141
|
+
snug: number;
|
|
142
|
+
base: number;
|
|
143
|
+
relaxed: number;
|
|
144
|
+
loose: number;
|
|
145
|
+
}
|
|
146
|
+
interface ThemeLetterSpacings {
|
|
147
|
+
tighter: string;
|
|
148
|
+
tight: string;
|
|
149
|
+
normal: string;
|
|
150
|
+
wide: string;
|
|
151
|
+
wider: string;
|
|
152
|
+
widest: string;
|
|
153
|
+
}
|
|
154
|
+
interface ThemeSpace {
|
|
155
|
+
auto: string;
|
|
156
|
+
0: number | string;
|
|
157
|
+
0.5: number | string;
|
|
158
|
+
1: number | string;
|
|
159
|
+
1.5: number | string;
|
|
160
|
+
2: number | string;
|
|
161
|
+
3: number | string;
|
|
162
|
+
4: number | string;
|
|
163
|
+
5: number | string;
|
|
164
|
+
6: number | string;
|
|
165
|
+
7: number | string;
|
|
166
|
+
8: number | string;
|
|
167
|
+
9: number | string;
|
|
168
|
+
10: number | string;
|
|
169
|
+
}
|
|
170
|
+
/** One padding/font preset of `theme.sizes`. */
|
|
171
|
+
interface SizeEntry {
|
|
172
|
+
paddingTop: Exclude<keyof ThemeSpace, 'auto'>;
|
|
173
|
+
paddingBottom: Exclude<keyof ThemeSpace, 'auto'>;
|
|
174
|
+
paddingLeft: Exclude<keyof ThemeSpace, 'auto'>;
|
|
175
|
+
paddingRight: Exclude<keyof ThemeSpace, 'auto'>;
|
|
176
|
+
/** Index into `theme.fontSizes`. */
|
|
177
|
+
fontSize: number;
|
|
178
|
+
}
|
|
179
|
+
interface ThemeSizes {
|
|
180
|
+
sm: SizeEntry;
|
|
181
|
+
md: SizeEntry;
|
|
182
|
+
lg: SizeEntry;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Square glyph dimension per density key — Icon token sizes and the
|
|
186
|
+
* Checkbox/Radio glyphs. Mapped over `ThemeSizes` so augmenting a size key
|
|
187
|
+
* forces the matching icon size to be supplied.
|
|
188
|
+
*/
|
|
189
|
+
type ThemeIconSizes = { [K in keyof ThemeSizes]: string; };
|
|
190
|
+
/** Style of one typography variant. */
|
|
191
|
+
interface TypographyVariantStyle {
|
|
192
|
+
element: ElementType;
|
|
193
|
+
fontSize?: number;
|
|
194
|
+
fontWeight?: string;
|
|
195
|
+
letterSpacing?: string;
|
|
196
|
+
textTransform?: CSSObject$1['textTransform'];
|
|
197
|
+
}
|
|
198
|
+
interface ThemeTypographyVariants {
|
|
199
|
+
h1: TypographyVariantStyle;
|
|
200
|
+
h2: TypographyVariantStyle;
|
|
201
|
+
h3: TypographyVariantStyle;
|
|
202
|
+
h4: TypographyVariantStyle;
|
|
203
|
+
h5: TypographyVariantStyle;
|
|
204
|
+
h6: TypographyVariantStyle;
|
|
205
|
+
subtitle1: TypographyVariantStyle;
|
|
206
|
+
subtitle2: TypographyVariantStyle;
|
|
207
|
+
body1: TypographyVariantStyle;
|
|
208
|
+
body2: TypographyVariantStyle;
|
|
209
|
+
caption: TypographyVariantStyle;
|
|
210
|
+
overline: TypographyVariantStyle;
|
|
211
|
+
button: TypographyVariantStyle;
|
|
212
|
+
inherit: TypographyVariantStyle;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Optional theme-driven component defaults. Components carry their own
|
|
216
|
+
* literal fallbacks (`size = 'md'`, `variant = 'outside'`, …) and resolve
|
|
217
|
+
* them through `themeDefault(theme, key, fallback)` — set any key here (or
|
|
218
|
+
* via `ThemeProvider`'s `defaults` prop) to override that fallback globally,
|
|
219
|
+
* e.g. when your theme uses entirely different size or palette keys.
|
|
220
|
+
*/
|
|
221
|
+
interface ThemeDefaults {
|
|
222
|
+
/** Density token for sized components. Fallback: `'md'`. */
|
|
223
|
+
size?: keyof ThemeSizes;
|
|
224
|
+
/** Compact density for dense secondary UI (table pagination actions). Fallback: `'sm'`. */
|
|
225
|
+
compactSize?: keyof ThemeSizes;
|
|
226
|
+
/** Accent palette color (buttons, links, progress, pagination…). Fallback: `'primary'`. */
|
|
227
|
+
color?: keyof ThemePalette;
|
|
228
|
+
/** Neutral palette color for toggle controls (checkbox, radio, switch…). Fallback: `'default'`. */
|
|
229
|
+
neutralColor?: keyof ThemePalette;
|
|
230
|
+
/** Body text color. Fallback: `'initial'`. */
|
|
231
|
+
textColor?: keyof ThemeText;
|
|
232
|
+
/** Accent text color (icons, input labels). Fallback: `'primary'`. */
|
|
233
|
+
accentTextColor?: keyof ThemeText;
|
|
234
|
+
/** General control background (switch track). Fallback: `'default'`. */
|
|
235
|
+
bg?: keyof ThemeBackground;
|
|
236
|
+
/** Elevated surface background (paper, cards). Fallback: `'paper'`. */
|
|
237
|
+
surfaceBg?: keyof ThemeBackground;
|
|
238
|
+
/** Input surface background (selects, text inputs). Fallback: `'terminal'`. */
|
|
239
|
+
inputBg?: keyof ThemeBackground;
|
|
240
|
+
/** Corner radius for grouped controls. Fallback: `'md'`. */
|
|
241
|
+
borderRadius?: keyof ThemeRadii;
|
|
242
|
+
/** Corner radius for surfaces. Fallback: `'sq'`. */
|
|
243
|
+
surfaceRadius?: keyof ThemeRadii;
|
|
244
|
+
/** Avatar size step. Fallback: `'md'`. */
|
|
245
|
+
avatarSize?: keyof ThemeAvatarSizes;
|
|
246
|
+
/** Icon glyph size step. Fallback: `'lg'`. */
|
|
247
|
+
iconSize?: keyof ThemeIconSizes;
|
|
248
|
+
/** Border/ring color. Fallback: `'primary'`. */
|
|
249
|
+
borderColor?: keyof ThemeBorder;
|
|
250
|
+
/** Border/ring width. Fallback: `'thin'`. */
|
|
251
|
+
borderWidth?: keyof ThemeBorderWidths;
|
|
252
|
+
/** Button visual variant. Fallback: `'contained'`. */
|
|
253
|
+
buttonVariant?: keyof ButtonVariants;
|
|
254
|
+
/** Switch thumb/track layout. Fallback: `'outside'`. */
|
|
255
|
+
switchVariant?: 'outside' | 'inside';
|
|
256
|
+
/** Input frame style (TextInput, Select, NativeSelect). Fallback: `'default'`. */
|
|
257
|
+
inputVariant?: 'default' | 'outlined' | 'text' | 'underline';
|
|
258
|
+
/** Avatar shape. Fallback: `'circular'`. */
|
|
259
|
+
avatarVariant?: 'circular' | 'rounded' | 'square';
|
|
260
|
+
/** Link underline behavior. Fallback: `'always'`. */
|
|
261
|
+
linkUnderline?: 'always' | 'hover' | 'none';
|
|
262
|
+
/** Card surface treatment. Fallback: `'paper'`. */
|
|
263
|
+
cardVariant?: 'paper' | 'bracketBox' | 'interactive';
|
|
264
|
+
/** Pagination item visual variant. Fallback: `'text'`. */
|
|
265
|
+
paginationVariant?: 'text' | 'outlined';
|
|
266
|
+
/** Pagination item shape. Fallback: `'circular'`. */
|
|
267
|
+
paginationShape?: 'circular' | 'rounded';
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* A style contributed from `theme.components` — a plain CSS object, or a
|
|
271
|
+
* callback receiving the theme and the styled root's resolved props
|
|
272
|
+
* (`ownerState`) for conditional styling.
|
|
273
|
+
*/
|
|
274
|
+
type ComponentStyle<OwnerState> = CSSObject$1 | ((args: {
|
|
275
|
+
theme: Theme;
|
|
276
|
+
ownerState: OwnerState;
|
|
277
|
+
}) => CSSObject$1);
|
|
278
|
+
/** One theme-contributed variant: applied when every key in `props` matches the render props. */
|
|
279
|
+
interface ComponentVariant<OwnerState> {
|
|
280
|
+
props: Partial<OwnerState>;
|
|
281
|
+
style: ComponentStyle<OwnerState>;
|
|
282
|
+
}
|
|
283
|
+
/** Per-component customization: default prop values, per-slot CSS, extra variants. */
|
|
284
|
+
interface ComponentConfig<OwnerState = Record<string, unknown>, Slot extends string = 'root'> {
|
|
285
|
+
/** Default prop values — explicit props and group context always win. */
|
|
286
|
+
defaultProps?: Partial<OwnerState>;
|
|
287
|
+
/** Per-slot CSS merged after the component's own styles (theme wins). */
|
|
288
|
+
styleOverrides?: Partial<Record<Slot, ComponentStyle<OwnerState>>>;
|
|
289
|
+
/** Extra variants matched by props. Replaced wholesale by `createTheme`, never merged. */
|
|
290
|
+
variants?: ReadonlyArray<ComponentVariant<OwnerState>>;
|
|
291
|
+
}
|
|
292
|
+
/** Button's variant values — augment to register new ones (then style them via `variants`). */
|
|
293
|
+
interface ButtonVariants {
|
|
294
|
+
contained: true;
|
|
295
|
+
outlined: true;
|
|
296
|
+
text: true;
|
|
297
|
+
}
|
|
298
|
+
/** The resolved props Button's styled roots receive — what `ownerState` exposes. */
|
|
299
|
+
interface ButtonOwnerState {
|
|
300
|
+
variant?: keyof ButtonVariants;
|
|
301
|
+
color?: keyof ThemePalette;
|
|
302
|
+
size?: keyof ThemeSizes;
|
|
303
|
+
shape?: 'square' | 'rounded' | 'pill';
|
|
304
|
+
fullWidth?: boolean;
|
|
305
|
+
disabled?: boolean;
|
|
306
|
+
}
|
|
307
|
+
/** Token-typed Typography props a theme may set for Card's title/caption slots. */
|
|
308
|
+
interface CardSlotTypographyProps {
|
|
309
|
+
variant?: keyof ThemeTypographyVariants;
|
|
310
|
+
color?: keyof ThemeText;
|
|
311
|
+
fontFamily?: keyof ThemeFonts;
|
|
312
|
+
mb?: keyof ThemeSpace;
|
|
313
|
+
}
|
|
314
|
+
/** Token-typed Icon props a theme may set for Card's icon slot. */
|
|
315
|
+
interface CardSlotIconProps {
|
|
316
|
+
color?: keyof ThemeText;
|
|
317
|
+
size?: string | number;
|
|
318
|
+
}
|
|
319
|
+
/** Card's resolved props / theme-settable defaults. */
|
|
320
|
+
interface CardOwnerState {
|
|
321
|
+
variant?: 'paper' | 'bracketBox' | 'interactive';
|
|
322
|
+
/** Merged under any per-instance `titleProps` (instance wins). */
|
|
323
|
+
titleProps?: CardSlotTypographyProps;
|
|
324
|
+
/** Merged under any per-instance `captionProps` (instance wins). */
|
|
325
|
+
captionProps?: CardSlotTypographyProps;
|
|
326
|
+
/** Merged under any per-instance `iconProps` (instance wins). */
|
|
327
|
+
iconProps?: CardSlotIconProps;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Per-component theme customization, keyed by component name. Augment this
|
|
331
|
+
* interface to register additional components (including your own, when their
|
|
332
|
+
* styled roots are created with this package's `styled(tag, { name })`).
|
|
333
|
+
*/
|
|
334
|
+
interface ThemeComponents {
|
|
335
|
+
AppBar?: ComponentConfig;
|
|
336
|
+
Avatar?: ComponentConfig<Record<string, unknown>, 'root' | 'img'>;
|
|
337
|
+
Backdrop?: ComponentConfig;
|
|
338
|
+
Button?: ComponentConfig<ButtonOwnerState, 'root' | 'label' | 'icon' | 'loader'>;
|
|
339
|
+
ButtonGroup?: ComponentConfig;
|
|
340
|
+
Card?: ComponentConfig<CardOwnerState, 'root' | 'title' | 'caption' | 'icon'>;
|
|
341
|
+
Checkbox?: ComponentConfig<Record<string, unknown>, 'root' | 'input' | 'icon'>;
|
|
342
|
+
CircularProgress?: ComponentConfig<Record<string, unknown>, 'root' | 'track' | 'circle'>;
|
|
343
|
+
Drawer?: ComponentConfig;
|
|
344
|
+
Flex?: ComponentConfig;
|
|
345
|
+
FocusTrap?: ComponentConfig;
|
|
346
|
+
Form?: ComponentConfig;
|
|
347
|
+
FormControl?: ComponentConfig;
|
|
348
|
+
FormHelperText?: ComponentConfig;
|
|
349
|
+
FormLabel?: ComponentConfig;
|
|
350
|
+
Grid?: ComponentConfig;
|
|
351
|
+
Icon?: ComponentConfig;
|
|
352
|
+
Image?: ComponentConfig;
|
|
353
|
+
LinearProgress?: ComponentConfig<Record<string, unknown>, 'root' | 'track' | 'dash' | 'bar' | 'traveler' | 'segment' | 'secondaryBar'>;
|
|
354
|
+
Link?: ComponentConfig;
|
|
355
|
+
MenuItem?: ComponentConfig<Record<string, unknown>, 'root' | 'check'>;
|
|
356
|
+
Modal?: ComponentConfig;
|
|
357
|
+
NativeSelect?: ComponentConfig<Record<string, unknown>, 'root' | 'select' | 'icon'>;
|
|
358
|
+
Pagination?: ComponentConfig<Record<string, unknown>, 'root' | 'list'>;
|
|
359
|
+
PaginationItem?: ComponentConfig<Record<string, unknown>, 'root' | 'ellipsis'>;
|
|
360
|
+
Paper?: ComponentConfig;
|
|
361
|
+
Popover?: ComponentConfig<Record<string, unknown>, 'root' | 'positioner'>;
|
|
362
|
+
Quote?: ComponentConfig;
|
|
363
|
+
Radio?: ComponentConfig<Record<string, unknown>, 'root' | 'input' | 'icon'>;
|
|
364
|
+
Select?: ComponentConfig<Record<string, unknown>, 'root' | 'value' | 'valueArea' | 'valueGhost' | 'listbox'>;
|
|
365
|
+
Skeleton?: ComponentConfig<Record<string, unknown>, 'root' | 'content'>;
|
|
366
|
+
Switch?: ComponentConfig<Record<string, unknown>, 'root' | 'input' | 'track' | 'thumb'>;
|
|
367
|
+
Table?: ComponentConfig;
|
|
368
|
+
TableBody?: ComponentConfig;
|
|
369
|
+
TableCell?: ComponentConfig;
|
|
370
|
+
TableContainer?: ComponentConfig;
|
|
371
|
+
TableFooter?: ComponentConfig;
|
|
372
|
+
TableHead?: ComponentConfig;
|
|
373
|
+
TablePagination?: ComponentConfig;
|
|
374
|
+
TablePaginationActions?: ComponentConfig;
|
|
375
|
+
TableRow?: ComponentConfig;
|
|
376
|
+
TableSortLabel?: ComponentConfig<Record<string, unknown>, 'root' | 'icon'>;
|
|
377
|
+
TextInput?: ComponentConfig<Record<string, unknown>, 'root' | 'input'>;
|
|
378
|
+
ToggleButton?: ComponentConfig;
|
|
379
|
+
ToggleButtonGroup?: ComponentConfig;
|
|
380
|
+
Typography?: ComponentConfig;
|
|
381
|
+
View?: ComponentConfig;
|
|
382
|
+
}
|
|
383
|
+
interface Theme {
|
|
384
|
+
name: string;
|
|
385
|
+
/** Optional overrides for component default token/variant keys — see `ThemeDefaults`. */
|
|
386
|
+
defaults?: OpenScale<ThemeDefaults>;
|
|
387
|
+
/** Optional per-component customization — see `ThemeComponents`. */
|
|
388
|
+
components?: OpenScale<ThemeComponents>;
|
|
389
|
+
space: OpenScale<ThemeSpace>;
|
|
390
|
+
border: OpenScale<ThemeBorder>;
|
|
391
|
+
text: OpenScale<ThemeText>;
|
|
392
|
+
background: OpenScale<ThemeBackground>;
|
|
393
|
+
typography: OpenScale<ThemeTypographyVariants>;
|
|
394
|
+
fonts: OpenScale<ThemeFonts>;
|
|
395
|
+
lineHeights: OpenScale<ThemeLineHeights>;
|
|
396
|
+
letterSpacings: OpenScale<ThemeLetterSpacings>;
|
|
397
|
+
fontSizes: number[];
|
|
398
|
+
radii: OpenScale<ThemeRadii>;
|
|
399
|
+
borderWidths: OpenScale<ThemeBorderWidths>;
|
|
400
|
+
avatar: OpenScale<ThemeAvatarSizes>;
|
|
401
|
+
icon: ThemeIconSizes;
|
|
402
|
+
skeleton: OpenScale<ThemeSkeleton>;
|
|
403
|
+
switch: OpenScale<ThemeSwitch>;
|
|
404
|
+
shadow: OpenScale<ThemeShadow>;
|
|
405
|
+
sizes: { [K in keyof ThemeSizes]: OpenScale<ThemeSizes[K]>; };
|
|
406
|
+
colorScheme: 'light' | 'dark';
|
|
407
|
+
blur: string;
|
|
408
|
+
logoFilter: string;
|
|
409
|
+
/** mix-blend-mode for the AboutHero portrait — screen on dark, multiply on light. */
|
|
410
|
+
portraitBlend: string;
|
|
411
|
+
/** opacity for the AboutHero portrait. */
|
|
412
|
+
portraitOpacity: number;
|
|
413
|
+
shadows: string[];
|
|
414
|
+
fontWeights: OpenScale<ThemeFontWeights>;
|
|
415
|
+
palette: OpenScale<ThemePalette>;
|
|
416
|
+
zOrder: OpenScale<ThemeZOrder>;
|
|
417
|
+
}
|
|
418
|
+
/** The semantic color keys of `theme.palette`. */
|
|
419
|
+
type PaletteColor = keyof ThemePalette;
|
|
420
|
+
/** The variant keys of `theme.typography`. */
|
|
421
|
+
type TypographyVariant = keyof ThemeTypographyVariants;
|
|
422
|
+
declare const radii: {
|
|
423
|
+
sq: string;
|
|
424
|
+
sm: string;
|
|
425
|
+
md: string;
|
|
426
|
+
lg: string;
|
|
427
|
+
};
|
|
428
|
+
declare const borderWidths: {
|
|
429
|
+
none: string;
|
|
430
|
+
thin: string;
|
|
431
|
+
base: string;
|
|
432
|
+
thick: string;
|
|
433
|
+
};
|
|
434
|
+
declare const zOrder: {
|
|
435
|
+
appBar: number;
|
|
436
|
+
drawer: number;
|
|
437
|
+
modal: number;
|
|
438
|
+
};
|
|
439
|
+
declare const fontSizes: number[];
|
|
440
|
+
declare const lineHeights: {
|
|
441
|
+
none: number;
|
|
442
|
+
tight: number;
|
|
443
|
+
snug: number;
|
|
444
|
+
base: number;
|
|
445
|
+
relaxed: number;
|
|
446
|
+
loose: number;
|
|
447
|
+
};
|
|
448
|
+
declare const letterSpacings: {
|
|
449
|
+
tighter: string;
|
|
450
|
+
tight: string;
|
|
451
|
+
normal: string;
|
|
452
|
+
wide: string;
|
|
453
|
+
wider: string;
|
|
454
|
+
widest: string;
|
|
455
|
+
};
|
|
456
|
+
declare const fonts: {
|
|
457
|
+
body: string;
|
|
458
|
+
heading: string;
|
|
459
|
+
mono: string;
|
|
460
|
+
};
|
|
461
|
+
declare const fontWeights: {
|
|
462
|
+
thin: number;
|
|
463
|
+
extraLight: number;
|
|
464
|
+
light: number;
|
|
465
|
+
normal: number;
|
|
466
|
+
medium: number;
|
|
467
|
+
semiBold: number;
|
|
468
|
+
bold: number;
|
|
469
|
+
extraBold: number;
|
|
470
|
+
black: number;
|
|
471
|
+
};
|
|
472
|
+
declare const avatar: {
|
|
473
|
+
sm: string;
|
|
474
|
+
md: string;
|
|
475
|
+
lg: string;
|
|
476
|
+
xl: string;
|
|
477
|
+
};
|
|
478
|
+
declare const icon: ThemeIconSizes;
|
|
479
|
+
declare const sizes: ThemeSizes;
|
|
480
|
+
declare const space: ThemeSpace;
|
|
481
|
+
declare const typography: ThemeTypographyVariants;
|
|
482
|
+
/**
|
|
483
|
+
* The package's complete default theme (dark-schemed). Raw hex only — palettes
|
|
484
|
+
* belong to the consumer, who builds brand themes with `createTheme(baseTheme, …)`.
|
|
485
|
+
*/
|
|
486
|
+
declare const baseTheme: Theme;
|
|
487
|
+
//#endregion
|
|
488
|
+
export { ThemeOverride as $, ThemeSkeleton as A, borderWidths as B, ThemeIconSizes as C, ThemeRadii as D, ThemePalette as E, ThemeZOrder as F, letterSpacings as G, fontWeights as H, TypographyVariant as I, sizes as J, lineHeights as K, TypographyVariantStyle as L, ThemeSwitch as M, ThemeText as N, ThemeShadow as O, ThemeTypographyVariants as P, DeepPartial as Q, avatar as R, ThemeFonts as S, ThemeLineHeights as T, fonts as U, fontSizes as V, icon as W, typography as X, space as Y, zOrder as Z, ThemeBorder as _, CardSlotIconProps as a, ThemeDefaults as b, ComponentStyle as c, PaletteColor as d, createTheme as et, PaletteEntry as f, ThemeBackground as g, ThemeAvatarSizes as h, CardOwnerState as i, ThemeSpace as j, ThemeSizes as k, ComponentVariant as l, Theme as m, ButtonVariants as n, CardSlotTypographyProps as o, SizeEntry as p, radii as q, CSSObject$1 as r, ComponentConfig as s, ButtonOwnerState as t, OpenScale as u, ThemeBorderWidths as v, ThemeLetterSpacings as w, ThemeFontWeights as x, ThemeComponents as y, baseTheme as z };
|