eidos-ui 3.8.1 → 4.1.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 +21 -11
- package/dist/{SegmentedControl.types-D_gHYL9X.d.cts → SegmentedControl.types-50fprBiO.d.cts} +9 -0
- package/dist/{SegmentedControl.types-CHtjABQM.d.ts → SegmentedControl.types-DKlamnBZ.d.ts} +9 -0
- package/dist/{ThemeProvider.types-DgXN0gEH.d.cts → ThemeProvider.types-CI9P1anY.d.cts} +53 -2
- package/dist/{ThemeProvider.types-DgXN0gEH.d.ts → ThemeProvider.types-CI9P1anY.d.ts} +53 -2
- package/dist/alert/index.cjs +5 -5
- package/dist/alert/index.js +4 -4
- package/dist/button/index.cjs +4 -4
- package/dist/button/index.js +3 -3
- package/dist/chip/index.cjs +4 -4
- package/dist/chip/index.js +3 -3
- package/dist/{chunk-V5CM5TH3.js → chunk-2OBOD3GO.js} +3 -3
- package/dist/{chunk-CFVUUMQA.cjs → chunk-2URFSWJT.cjs} +6 -8
- package/dist/chunk-2URFSWJT.cjs.map +1 -0
- package/dist/{chunk-4S57PE43.js → chunk-2WDL2ZVP.js} +6 -7
- package/dist/chunk-2WDL2ZVP.js.map +1 -0
- package/dist/{chunk-LWCFT5SP.cjs → chunk-3QBMSZSE.cjs} +3 -3
- package/dist/{chunk-LWCFT5SP.cjs.map → chunk-3QBMSZSE.cjs.map} +1 -1
- package/dist/{chunk-IC2PIK3E.js → chunk-43DJ3GGR.js} +4 -4
- package/dist/{chunk-L6ERHCQ2.js → chunk-57BVERWD.js} +3 -3
- package/dist/{chunk-AUNDBUHM.cjs → chunk-5HRVHEHE.cjs} +3 -3
- package/dist/{chunk-AUNDBUHM.cjs.map → chunk-5HRVHEHE.cjs.map} +1 -1
- package/dist/{chunk-6IB27I5K.cjs → chunk-6JYXGRJ3.cjs} +8 -8
- package/dist/{chunk-6IB27I5K.cjs.map → chunk-6JYXGRJ3.cjs.map} +1 -1
- package/dist/{chunk-NERASTO2.cjs → chunk-6ZFXIYH7.cjs} +3 -3
- package/dist/{chunk-NERASTO2.cjs.map → chunk-6ZFXIYH7.cjs.map} +1 -1
- package/dist/{chunk-IKXXXVUO.js → chunk-7TQUJ6BJ.js} +3 -3
- package/dist/{chunk-544RAXWO.cjs → chunk-7VMF6LIC.cjs} +19 -19
- package/dist/{chunk-544RAXWO.cjs.map → chunk-7VMF6LIC.cjs.map} +1 -1
- package/dist/{chunk-WTFEMOV5.cjs → chunk-ADB7QRX5.cjs} +16 -16
- package/dist/{chunk-WTFEMOV5.cjs.map → chunk-ADB7QRX5.cjs.map} +1 -1
- package/dist/{chunk-6CW5QSYV.cjs → chunk-AFGC62AL.cjs} +7 -7
- package/dist/{chunk-6CW5QSYV.cjs.map → chunk-AFGC62AL.cjs.map} +1 -1
- package/dist/{chunk-U4SVBE2M.js → chunk-AWPJH3UB.js} +4 -4
- package/dist/{chunk-V64DICJK.js → chunk-BHZ76J2K.js} +45 -33
- package/dist/chunk-BHZ76J2K.js.map +1 -0
- package/dist/{chunk-B2OHBIAL.cjs → chunk-BKUZF7CW.cjs} +10 -11
- package/dist/chunk-BKUZF7CW.cjs.map +1 -0
- package/dist/{chunk-WR77IZUU.cjs → chunk-BPVOQLCA.cjs} +7 -7
- package/dist/{chunk-WR77IZUU.cjs.map → chunk-BPVOQLCA.cjs.map} +1 -1
- package/dist/{chunk-MCPGI6EI.js → chunk-BUSMGQJ4.js} +2 -2
- package/dist/{chunk-H3C6YECZ.js → chunk-D2PXPX56.js} +6 -6
- package/dist/{chunk-L6YJ6QTZ.js → chunk-DCUIT7SI.js} +2 -2
- package/dist/{chunk-FE7S4RSK.js → chunk-DHOBGYRD.js} +164 -34
- package/dist/chunk-DHOBGYRD.js.map +1 -0
- package/dist/{chunk-JFV56ISS.cjs → chunk-E7BFBU6K.cjs} +45 -33
- package/dist/chunk-E7BFBU6K.cjs.map +1 -0
- package/dist/{chunk-HYRLK462.js → chunk-EDPCI2JC.js} +2 -2
- package/dist/{chunk-Z3IJWYUD.js → chunk-EJWEG66P.js} +226 -42
- package/dist/chunk-EJWEG66P.js.map +1 -0
- package/dist/{chunk-DPTTDHZ5.js → chunk-FAGQGGT3.js} +3 -3
- package/dist/{chunk-CNTG7OOO.js → chunk-FFYPSLQV.js} +12 -12
- package/dist/{chunk-7NUVLVSL.cjs → chunk-FJSK2RT7.cjs} +5 -5
- package/dist/{chunk-7NUVLVSL.cjs.map → chunk-FJSK2RT7.cjs.map} +1 -1
- package/dist/{chunk-P6OJQ2RN.js → chunk-FSX7DDLO.js} +8 -9
- package/dist/chunk-FSX7DDLO.js.map +1 -0
- package/dist/{chunk-XIUZT4TO.js → chunk-GE3QCXT7.js} +6 -7
- package/dist/chunk-GE3QCXT7.js.map +1 -0
- package/dist/{chunk-JY77VJAZ.js → chunk-GHUEVNNU.js} +3 -3
- package/dist/{chunk-4V2XYUQL.js → chunk-GLEPKX2R.js} +2 -2
- package/dist/{chunk-GZDT2AHJ.cjs → chunk-GRKC4PIX.cjs} +7 -7
- package/dist/{chunk-GZDT2AHJ.cjs.map → chunk-GRKC4PIX.cjs.map} +1 -1
- package/dist/{chunk-SLHIVEFW.cjs → chunk-HKLLKNRQ.cjs} +6 -9
- package/dist/chunk-HKLLKNRQ.cjs.map +1 -0
- package/dist/{chunk-2TIMJD4K.js → chunk-IBT535UH.js} +3 -3
- package/dist/{chunk-HR5MWA3B.cjs → chunk-IJW6YCJB.cjs} +5 -5
- package/dist/{chunk-HR5MWA3B.cjs.map → chunk-IJW6YCJB.cjs.map} +1 -1
- package/dist/{chunk-OGGZIFTI.cjs → chunk-JO4NDJRA.cjs} +192 -62
- package/dist/chunk-JO4NDJRA.cjs.map +1 -0
- package/dist/{chunk-NNAEQR3Y.cjs → chunk-K6VEUJLY.cjs} +30 -30
- package/dist/{chunk-NNAEQR3Y.cjs.map → chunk-K6VEUJLY.cjs.map} +1 -1
- package/dist/{chunk-F5IRMMZ2.cjs → chunk-K73JO4FK.cjs} +7 -7
- package/dist/{chunk-F5IRMMZ2.cjs.map → chunk-K73JO4FK.cjs.map} +1 -1
- package/dist/{chunk-4HZIXRAJ.cjs → chunk-KF2OGUAD.cjs} +11 -12
- package/dist/chunk-KF2OGUAD.cjs.map +1 -0
- package/dist/{chunk-TJQNGJHP.js → chunk-KLHC5BHS.js} +4 -4
- package/dist/{chunk-XWMXEJVZ.js → chunk-KZKBZ2AV.js} +5 -7
- package/dist/chunk-KZKBZ2AV.js.map +1 -0
- package/dist/{chunk-DG3O5NV4.cjs → chunk-LLHR6QW3.cjs} +3 -3
- package/dist/{chunk-DG3O5NV4.cjs.map → chunk-LLHR6QW3.cjs.map} +1 -1
- package/dist/{chunk-GDRLVX2A.js → chunk-LXRNFQEI.js} +4 -4
- package/dist/{chunk-VXC7Z7XB.cjs → chunk-MKQVDEHI.cjs} +5 -6
- package/dist/chunk-MKQVDEHI.cjs.map +1 -0
- package/dist/{chunk-TNQ2ZZ7W.cjs → chunk-MUMTPMWD.cjs} +7 -7
- package/dist/{chunk-TNQ2ZZ7W.cjs.map → chunk-MUMTPMWD.cjs.map} +1 -1
- package/dist/{chunk-RHWZX7PB.js → chunk-NONYIHXD.js} +4 -4
- package/dist/{chunk-XPG56DLQ.cjs → chunk-NSA7ASZ7.cjs} +8 -8
- package/dist/{chunk-XPG56DLQ.cjs.map → chunk-NSA7ASZ7.cjs.map} +1 -1
- package/dist/{chunk-6NAOAKII.js → chunk-NWFGXLQP.js} +2 -2
- package/dist/{chunk-H46ZLPNJ.cjs → chunk-O45W57Y4.cjs} +233 -49
- package/dist/chunk-O45W57Y4.cjs.map +1 -0
- package/dist/{chunk-UUT2VEN5.cjs → chunk-OC2OBBGM.cjs} +7 -8
- package/dist/chunk-OC2OBBGM.cjs.map +1 -0
- package/dist/{chunk-3X6QVHTD.js → chunk-OERK3T7E.js} +3 -4
- package/dist/chunk-OERK3T7E.js.map +1 -0
- package/dist/{chunk-ZJWQPZ7E.js → chunk-OQWG7NLI.js} +3 -11
- package/dist/chunk-OQWG7NLI.js.map +1 -0
- package/dist/{chunk-U34INRFO.js → chunk-PP6HS4GR.js} +5 -16
- package/dist/chunk-PP6HS4GR.js.map +1 -0
- package/dist/{chunk-ENMDOQQO.cjs → chunk-R5WI5IGR.cjs} +6 -17
- package/dist/{chunk-ENMDOQQO.cjs.map → chunk-R5WI5IGR.cjs.map} +1 -1
- package/dist/{chunk-UTYY35QX.cjs → chunk-RZMQCVAS.cjs} +3 -3
- package/dist/{chunk-UTYY35QX.cjs.map → chunk-RZMQCVAS.cjs.map} +1 -1
- package/dist/{chunk-7FV2X62W.cjs → chunk-SJKD3WCV.cjs} +7 -7
- package/dist/{chunk-7FV2X62W.cjs.map → chunk-SJKD3WCV.cjs.map} +1 -1
- package/dist/{chunk-LUDK44NZ.cjs → chunk-SJPCBRKR.cjs} +3 -3
- package/dist/{chunk-LUDK44NZ.cjs.map → chunk-SJPCBRKR.cjs.map} +1 -1
- package/dist/{chunk-3TF2GZSG.js → chunk-SONL2RCW.js} +7 -7
- package/dist/{chunk-2IXCEKLI.js → chunk-SOS4K7VC.js} +2 -2
- package/dist/{chunk-WHQGJHMD.js → chunk-TOLNPD7S.js} +4 -4
- package/dist/{chunk-FHOD3FUN.js → chunk-UTOTOWPS.js} +4 -4
- package/dist/{chunk-YIOHKQ6Y.cjs → chunk-VCG647BY.cjs} +5 -13
- package/dist/chunk-VCG647BY.cjs.map +1 -0
- package/dist/{chunk-HLI4SOH3.cjs → chunk-VGMRIXW4.cjs} +45 -45
- package/dist/{chunk-HLI4SOH3.cjs.map → chunk-VGMRIXW4.cjs.map} +1 -1
- package/dist/{chunk-N5NXKVFJ.cjs → chunk-VPN7AR7T.cjs} +10 -10
- package/dist/{chunk-N5NXKVFJ.cjs.map → chunk-VPN7AR7T.cjs.map} +1 -1
- package/dist/{chunk-6FXFKMJ5.js → chunk-XBIMNWE6.js} +3 -3
- package/dist/{chunk-3VXUOAIJ.cjs → chunk-XR72A66Q.cjs} +3 -7
- package/dist/chunk-XR72A66Q.cjs.map +1 -0
- package/dist/{chunk-ULKWUKD2.cjs → chunk-YHSCUPP6.cjs} +22 -23
- package/dist/chunk-YHSCUPP6.cjs.map +1 -0
- package/dist/{chunk-S5CMZFX6.js → chunk-YPEJH57Z.js} +6 -7
- package/dist/chunk-YPEJH57Z.js.map +1 -0
- package/dist/{chunk-BO3KK3ZQ.js → chunk-YPPG7NLW.js} +2 -6
- package/dist/chunk-YPPG7NLW.js.map +1 -0
- package/dist/{chunk-PE2SLXUS.cjs → chunk-YWXS4IPH.cjs} +5 -5
- package/dist/{chunk-PE2SLXUS.cjs.map → chunk-YWXS4IPH.cjs.map} +1 -1
- package/dist/{chunk-UC4NYF6T.js → chunk-YYA5SWXD.js} +2 -2
- package/dist/{chunk-IHPSRTVW.js → chunk-Z3OEYDNI.js} +4 -7
- package/dist/chunk-Z3OEYDNI.js.map +1 -0
- package/dist/{chunk-MKC6V3SY.cjs → chunk-Z6FZ7GI5.cjs} +6 -6
- package/dist/{chunk-MKC6V3SY.cjs.map → chunk-Z6FZ7GI5.cjs.map} +1 -1
- package/dist/{chunk-NFD7MPX4.cjs → chunk-ZVA5KJAJ.cjs} +11 -11
- package/dist/{chunk-NFD7MPX4.cjs.map → chunk-ZVA5KJAJ.cjs.map} +1 -1
- package/dist/color-picker/index.cjs +4 -4
- package/dist/color-picker/index.js +3 -3
- package/dist/combobox/index.cjs +6 -6
- package/dist/combobox/index.js +5 -5
- package/dist/command-palette/index.cjs +3 -3
- package/dist/command-palette/index.js +2 -2
- package/dist/context-menu/index.cjs +6 -6
- package/dist/context-menu/index.js +5 -5
- package/dist/conversation/index.cjs +8 -8
- package/dist/conversation/index.js +7 -7
- package/dist/data-grid/index.cjs +15 -15
- package/dist/data-grid/index.d.cts +1 -1
- package/dist/data-grid/index.d.ts +1 -1
- package/dist/data-grid/index.js +14 -14
- package/dist/date-picker/index.cjs +8 -8
- package/dist/date-picker/index.js +7 -7
- package/dist/drawer/index.cjs +5 -5
- package/dist/drawer/index.js +4 -4
- package/dist/dropdown/index.cjs +3 -3
- package/dist/dropdown/index.js +2 -2
- package/dist/header/index.cjs +6 -6
- package/dist/header/index.js +5 -5
- package/dist/index.cjs +39 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +345 -205
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +40 -40
- package/dist/inline-edit/index.cjs +5 -5
- package/dist/inline-edit/index.js +4 -4
- package/dist/input/index.cjs +4 -4
- package/dist/input/index.js +3 -3
- package/dist/menu/index.cjs +5 -5
- package/dist/menu/index.js +4 -4
- package/dist/modal/index.cjs +5 -5
- package/dist/modal/index.js +4 -4
- package/dist/navigation/index.cjs +5 -5
- package/dist/navigation/index.js +4 -4
- package/dist/number-input/index.cjs +2 -4
- package/dist/number-input/index.cjs.map +1 -1
- package/dist/number-input/index.js +1 -3
- package/dist/page-layout/index.cjs +12 -12
- package/dist/page-layout/index.js +11 -11
- package/dist/pagination/index.cjs +8 -8
- package/dist/pagination/index.js +7 -7
- package/dist/popover/index.cjs +3 -3
- package/dist/popover/index.d.cts +1 -3
- package/dist/popover/index.d.ts +1 -3
- package/dist/popover/index.js +2 -2
- package/dist/segmented-control/index.cjs +4 -4
- package/dist/segmented-control/index.d.cts +2 -2
- package/dist/segmented-control/index.d.ts +2 -2
- package/dist/segmented-control/index.js +3 -3
- package/dist/select/index.cjs +6 -6
- package/dist/select/index.js +5 -5
- package/dist/snackbar/index.cjs +5 -5
- package/dist/snackbar/index.js +4 -4
- package/dist/split-button/index.cjs +6 -6
- package/dist/split-button/index.js +5 -5
- package/dist/split-chip/index.cjs +5 -5
- package/dist/split-chip/index.js +4 -4
- package/dist/table/index.cjs +13 -13
- package/dist/table/index.js +12 -12
- package/dist/tabs/index.cjs +3 -3
- package/dist/tabs/index.js +2 -2
- package/dist/tag-input/index.cjs +6 -6
- package/dist/tag-input/index.js +5 -5
- package/dist/textarea/index.cjs +4 -4
- package/dist/textarea/index.js +3 -3
- package/dist/theme-editor/index.cjs +13 -11
- package/dist/theme-editor/index.cjs.map +1 -1
- package/dist/theme-editor/index.d.cts +1 -1
- package/dist/theme-editor/index.d.ts +1 -1
- package/dist/theme-editor/index.js +12 -10
- package/dist/theme-provider/index.cjs +3 -3
- package/dist/theme-provider/index.d.cts +2 -2
- package/dist/theme-provider/index.d.ts +2 -2
- package/dist/theme-provider/index.js +2 -2
- package/dist/toolbar/index.cjs +8 -8
- package/dist/toolbar/index.js +7 -7
- package/dist/tooltip/index.cjs +3 -3
- package/dist/tooltip/index.js +2 -2
- package/package.json +4 -2
- package/dist/chunk-3VXUOAIJ.cjs.map +0 -1
- package/dist/chunk-3X6QVHTD.js.map +0 -1
- package/dist/chunk-4HZIXRAJ.cjs.map +0 -1
- package/dist/chunk-4S57PE43.js.map +0 -1
- package/dist/chunk-B2OHBIAL.cjs.map +0 -1
- package/dist/chunk-BO3KK3ZQ.js.map +0 -1
- package/dist/chunk-CFVUUMQA.cjs.map +0 -1
- package/dist/chunk-FE7S4RSK.js.map +0 -1
- package/dist/chunk-H46ZLPNJ.cjs.map +0 -1
- package/dist/chunk-IHPSRTVW.js.map +0 -1
- package/dist/chunk-JFV56ISS.cjs.map +0 -1
- package/dist/chunk-OGGZIFTI.cjs.map +0 -1
- package/dist/chunk-P6OJQ2RN.js.map +0 -1
- package/dist/chunk-S5CMZFX6.js.map +0 -1
- package/dist/chunk-SLHIVEFW.cjs.map +0 -1
- package/dist/chunk-U34INRFO.js.map +0 -1
- package/dist/chunk-ULKWUKD2.cjs.map +0 -1
- package/dist/chunk-UUT2VEN5.cjs.map +0 -1
- package/dist/chunk-V64DICJK.js.map +0 -1
- package/dist/chunk-VXC7Z7XB.cjs.map +0 -1
- package/dist/chunk-XIUZT4TO.js.map +0 -1
- package/dist/chunk-XWMXEJVZ.js.map +0 -1
- package/dist/chunk-YIOHKQ6Y.cjs.map +0 -1
- package/dist/chunk-Z3IJWYUD.js.map +0 -1
- package/dist/chunk-ZJWQPZ7E.js.map +0 -1
- /package/dist/{chunk-V5CM5TH3.js.map → chunk-2OBOD3GO.js.map} +0 -0
- /package/dist/{chunk-IC2PIK3E.js.map → chunk-43DJ3GGR.js.map} +0 -0
- /package/dist/{chunk-L6ERHCQ2.js.map → chunk-57BVERWD.js.map} +0 -0
- /package/dist/{chunk-IKXXXVUO.js.map → chunk-7TQUJ6BJ.js.map} +0 -0
- /package/dist/{chunk-U4SVBE2M.js.map → chunk-AWPJH3UB.js.map} +0 -0
- /package/dist/{chunk-MCPGI6EI.js.map → chunk-BUSMGQJ4.js.map} +0 -0
- /package/dist/{chunk-H3C6YECZ.js.map → chunk-D2PXPX56.js.map} +0 -0
- /package/dist/{chunk-L6YJ6QTZ.js.map → chunk-DCUIT7SI.js.map} +0 -0
- /package/dist/{chunk-HYRLK462.js.map → chunk-EDPCI2JC.js.map} +0 -0
- /package/dist/{chunk-DPTTDHZ5.js.map → chunk-FAGQGGT3.js.map} +0 -0
- /package/dist/{chunk-CNTG7OOO.js.map → chunk-FFYPSLQV.js.map} +0 -0
- /package/dist/{chunk-JY77VJAZ.js.map → chunk-GHUEVNNU.js.map} +0 -0
- /package/dist/{chunk-4V2XYUQL.js.map → chunk-GLEPKX2R.js.map} +0 -0
- /package/dist/{chunk-2TIMJD4K.js.map → chunk-IBT535UH.js.map} +0 -0
- /package/dist/{chunk-TJQNGJHP.js.map → chunk-KLHC5BHS.js.map} +0 -0
- /package/dist/{chunk-GDRLVX2A.js.map → chunk-LXRNFQEI.js.map} +0 -0
- /package/dist/{chunk-RHWZX7PB.js.map → chunk-NONYIHXD.js.map} +0 -0
- /package/dist/{chunk-6NAOAKII.js.map → chunk-NWFGXLQP.js.map} +0 -0
- /package/dist/{chunk-3TF2GZSG.js.map → chunk-SONL2RCW.js.map} +0 -0
- /package/dist/{chunk-2IXCEKLI.js.map → chunk-SOS4K7VC.js.map} +0 -0
- /package/dist/{chunk-WHQGJHMD.js.map → chunk-TOLNPD7S.js.map} +0 -0
- /package/dist/{chunk-FHOD3FUN.js.map → chunk-UTOTOWPS.js.map} +0 -0
- /package/dist/{chunk-6FXFKMJ5.js.map → chunk-XBIMNWE6.js.map} +0 -0
- /package/dist/{chunk-UC4NYF6T.js.map → chunk-YYA5SWXD.js.map} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Popover
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OQWG7NLI.js";
|
|
4
4
|
import {
|
|
5
5
|
Avatar
|
|
6
6
|
} from "./chunk-XJBWFDDE.js";
|
|
7
7
|
import {
|
|
8
8
|
Button
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-GHUEVNNU.js";
|
|
10
10
|
import {
|
|
11
11
|
devWarn,
|
|
12
12
|
renderIcon
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PP6HS4GR.js";
|
|
14
14
|
|
|
15
15
|
// src/components/Header/Header.component.tsx
|
|
16
16
|
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
@@ -144,4 +144,4 @@ export {
|
|
|
144
144
|
Header,
|
|
145
145
|
IdentityHeader
|
|
146
146
|
};
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-NONYIHXD.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRZMQCVAScjs = require('./chunk-RZMQCVAS.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkR5WI5IGRcjs = require('./chunk-R5WI5IGR.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkKXDGW6LJcjs = require('./chunk-KXDGW6LJ.cjs');
|
|
@@ -42,7 +42,7 @@ var Button = ({
|
|
|
42
42
|
const suppliedLabel = _nullishCoalesce(buttonProps["aria-label"], () => ( buttonProps["aria-labelledby"]));
|
|
43
43
|
const iconOnlyLabel = isIconOnly && !suppliedLabel ? tooltip : void 0;
|
|
44
44
|
if (isIconOnly && !suppliedLabel && !tooltip) {
|
|
45
|
-
|
|
45
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
46
46
|
"button-icon-only-name",
|
|
47
47
|
'Button: an icon-only button needs an accessible name. Pass `tooltip` (which now also names it) or `aria-label`, otherwise it is announced as just "button".'
|
|
48
48
|
);
|
|
@@ -64,9 +64,9 @@ var Button = ({
|
|
|
64
64
|
] }),
|
|
65
65
|
isIconOnly && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "eidos-button--loading-spinner", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.LoaderCircle, { className: "eidos-button--spinner-icon" }) })
|
|
66
66
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
67
|
-
preIcon &&
|
|
68
|
-
isIconOnly && icon ?
|
|
69
|
-
posIcon &&
|
|
67
|
+
preIcon && _chunkR5WI5IGRcjs.renderIcon.call(void 0, preIcon, "eidos-button--pre-icon"),
|
|
68
|
+
isIconOnly && icon ? _chunkR5WI5IGRcjs.renderIcon.call(void 0, icon, "eidos-button--icon") : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "eidos-button--copy", children }),
|
|
69
|
+
posIcon && _chunkR5WI5IGRcjs.renderIcon.call(void 0, posIcon, "eidos-button--pos-icon")
|
|
70
70
|
] }) });
|
|
71
71
|
const buttonContent = typeof buttonProps.href === "string" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
72
72
|
_chunkKXDGW6LJcjs.EidosLink,
|
|
@@ -90,7 +90,7 @@ var Button = ({
|
|
|
90
90
|
children: content
|
|
91
91
|
}
|
|
92
92
|
);
|
|
93
|
-
return tooltip ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
93
|
+
return tooltip ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRZMQCVAScjs.Tooltip, { message: tooltip, children: buttonContent }) : buttonContent;
|
|
94
94
|
};
|
|
95
95
|
var IconButton = (props) => {
|
|
96
96
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { ...props });
|
|
@@ -100,4 +100,4 @@ var IconButton = (props) => {
|
|
|
100
100
|
|
|
101
101
|
|
|
102
102
|
exports.Button = Button; exports.IconButton = IconButton;
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-NSA7ASZ7.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-NSA7ASZ7.cjs","../src/components/Button/Button.component.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACVA,2CAA6B;AA6EjB,+CAAA;AAvEL,IAAM,OAAA,EAAgC,CAAC;AAAA,EAC5C,QAAA,EAAU,QAAA;AAAA,EACV,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,SAAA,EAAW,KAAA;AAAA,EACX,QAAA,EAAU,KAAA;AAAA,EACV,YAAA,EAAc,YAAA;AAAA,EACd,OAAA;AAAA,EACA,UAAA,EAAY,EAAA;AAAA,EACZ,OAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAA,GAAM;AACJ,EAAA,MAAM,WAAA,EAAa,CAAC,CAAC,IAAA;AAErB,EAAA,GAAA,CAAI,UAAA,EAAY;AACd,IAAA,GAAA,CAAI,QAAA,EAAU;AACZ,MAAA,MAAM,IAAI,KAAA,CAAM,wCAAwC,CAAA;AAAA,IAC1D;AACA,IAAA,GAAA,CAAI,OAAA,EAAS;AACX,MAAA,MAAM,IAAI,KAAA,CAAM,uCAAuC,CAAA;AAAA,IACzD;AACA,IAAA,GAAA,CAAI,OAAA,EAAS;AACX,MAAA,MAAM,IAAI,KAAA,CAAM,uCAAuC,CAAA;AAAA,IACzD;AAAA,EACF;AAgBA,EAAA,MAAM,cAAA,mBAAgB,WAAA,CAAY,YAAY,CAAA,UAAK,WAAA,CAAY,iBAAiB,GAAA;AAChF,EAAA,MAAM,cAAA,EAAgB,WAAA,GAAc,CAAC,cAAA,EAAgB,QAAA,EAAU,KAAA,CAAA;AAE/D,EAAA,GAAA,CAAI,WAAA,GAAc,CAAC,cAAA,GAAiB,CAAC,OAAA,EAAS;AAC5C,IAAA,uCAAA;AAAA,MACE,uBAAA;AAAA,MACA;AAAA,IACF,CAAA;AAAA,EACF;AAEA,EAAA,MAAM,cAAA,EAAgB;AAAA,IACpB,cAAA;AAAA,IACA,CAAA,cAAA,EAAiB,OAAO,CAAA,CAAA;AACF,IAAA;AACD,IAAA;AACP,IAAA;AACF,IAAA;AACD,IAAA;AACX,IAAA;AAGS,EAAA;AAGT,EAAA;AAIQ,IAAA;AACG,sBAAA;AAGA,sBAAA;AACH,IAAA;AAGA,IAAA;AAMJ,EAAA;AACyB,IAAA;AAGrB,IAAA;AAKqB,IAAA;AAG7B,EAAA;AAQA,EAAA;AACG,IAAA;AAAA,IAAA;AACM,MAAA;AACa,MAAA;AACN,MAAA;AACD,MAAA;AACA,MAAA;AACW,MAAA;AAErB,MAAA;AAAA,IAAA;AAGH,EAAA;AAAC,IAAA;AAAA,IAAA;AACM,MAAA;AACA,MAAA;AACO,MAAA;AACD,MAAA;AACW,MAAA;AAErB,MAAA;AAAA,IAAA;AACH,EAAA;AAGa,EAAA;AACnB;AAasF;AAC5E,EAAA;AACV;ADtD6B;AACA;AACA;AACA;AACA","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-NSA7ASZ7.cjs","sourcesContent":[null,"import React from 'react';\nimport { LoaderCircle } from 'lucide-react';\nimport { Tooltip } from '../Tooltip';\nimport { ButtonProps, IconButtonProps, IconLinkButtonProps } from './Button.types';\nimport { renderIcon, devWarn } from '../../utils';\nimport { EidosLink } from '../LinkProvider/Link.component';\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n loadingText = 'Loading...',\n tooltip,\n className = '',\n preIcon,\n posIcon,\n icon,\n children,\n ...buttonProps\n}) => {\n const isIconOnly = !!icon;\n\n if (isIconOnly) {\n if (children) {\n throw new Error('Icon-only buttons cannot have children');\n }\n if (preIcon) {\n throw new Error('Icon-only buttons cannot have preIcon');\n }\n if (posIcon) {\n throw new Error('Icon-only buttons cannot have posIcon');\n }\n }\n\n // ── Accessible name for icon-only buttons ──────────────────────────────\n //\n // An icon-only button has no text, so without `aria-label` it is announced\n // as just \"button\". `tooltip` alone did NOT fix this: `Tooltip` renders a\n // floating panel and adds no naming attributes to its child, so the\n // library's own documented example - `<IconButton icon={Plus}\n // tooltip=\"Add item\" />` - shipped a nameless control.\n //\n // Falling back to `tooltip` makes that documented pattern correct without\n // asking anyone to change their code: if you already described the button\n // for sighted users, that description now names it for everyone.\n //\n // Only ever a fallback - an explicit `aria-label` or `aria-labelledby`\n // always wins, since the caller may want a longer name than the tooltip.\n const suppliedLabel = buttonProps['aria-label'] ?? buttonProps['aria-labelledby'];\n const iconOnlyLabel = isIconOnly && !suppliedLabel ? tooltip : undefined;\n\n if (isIconOnly && !suppliedLabel && !tooltip) {\n devWarn(\n 'button-icon-only-name',\n 'Button: an icon-only button needs an accessible name. Pass `tooltip` (which now also names it) or `aria-label`, otherwise it is announced as just \"button\".',\n );\n }\n\n const buttonClasses = [\n 'eidos-button',\n `eidos-button--${variant}`,\n `eidos-button--${color}`,\n `eidos-button--${size}`,\n isIconOnly && 'eidos-button--icon-only',\n disabled && 'eidos-button--disabled',\n loading && 'eidos-button--loading',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const content = (\n <>\n {loading ? (\n <>\n {!isIconOnly && (\n <>\n <span className=\"eidos-button--loading-spinner\">\n <LoaderCircle className=\"eidos-button--spinner-icon\" />\n </span>\n <span className=\"eidos-button--copy\">{loadingText}</span>\n </>\n )}\n {isIconOnly && (\n <span className=\"eidos-button--loading-spinner\">\n <LoaderCircle className=\"eidos-button--spinner-icon\" />\n </span>\n )}\n </>\n ) : (\n <>\n {preIcon && renderIcon(preIcon, 'eidos-button--pre-icon')}\n\n {isIconOnly && icon ? (\n renderIcon(icon, 'eidos-button--icon')\n ) : (\n <span className=\"eidos-button--copy\">{children}</span>\n )}\n\n {posIcon && renderIcon(posIcon, 'eidos-button--pos-icon')}\n </>\n )}\n </>\n );\n\n // Discriminated on `href` alone. The props arrive as one of four union\n // members, but destructuring the style/content props above collapses the\n // rest into a shape TypeScript can no longer narrow, hence the casts - each\n // is exactly the half of the union the `href` check just proved.\n const buttonContent =\n typeof buttonProps.href === 'string' ? (\n <EidosLink\n {...(buttonProps as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n href={buttonProps.href}\n aria-label={iconOnlyLabel ?? buttonProps['aria-label']}\n aria-busy={loading || undefined}\n className={buttonClasses}\n disabled={disabled || loading}\n >\n {content}\n </EidosLink>\n ) : (\n <button\n type=\"button\"\n {...(buttonProps as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n aria-label={iconOnlyLabel ?? buttonProps['aria-label']}\n className={buttonClasses}\n disabled={disabled || loading}\n >\n {content}\n </button>\n );\n\n return tooltip ? <Tooltip message={tooltip}>{buttonContent}</Tooltip> : buttonContent;\n};\n\n/**\n * IconButton - Convenience wrapper for icon-only buttons\n *\n * @example\n * ```tsx\n * import { IconButton } from 'eidos-ui';\n * import { Plus } from 'lucide-react';\n *\n * <IconButton icon={Plus} tooltip=\"Add item\" />\n * ```\n */\nexport const IconButton: React.FC<IconButtonProps | IconLinkButtonProps> = (props) => {\n return <Button {...props} />;\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Input
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GE3QCXT7.js";
|
|
4
4
|
|
|
5
5
|
// src/components/InlineEdit/InlineEdit.component.tsx
|
|
6
6
|
import { useState, useRef, useCallback } from "react";
|
|
@@ -122,4 +122,4 @@ var InlineEdit = ({
|
|
|
122
122
|
export {
|
|
123
123
|
InlineEdit
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-NWFGXLQP.js.map
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkR5WI5IGRcjs = require('./chunk-R5WI5IGR.cjs');
|
|
4
4
|
|
|
5
5
|
// src/components/ThemeProvider/ThemeProvider.component.tsx
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
var _react = require('react');
|
|
7
15
|
|
|
8
16
|
// src/components/ThemeProvider/ThemeProvider.context.tsx
|
|
@@ -176,6 +184,52 @@ var isRampViable = (base) => {
|
|
|
176
184
|
const { l } = hexToOklch(base);
|
|
177
185
|
return l < 0.95 && l > 0.12;
|
|
178
186
|
};
|
|
187
|
+
var DARK_SURFACE = "#0f172a";
|
|
188
|
+
var DARK_SURFACE_RAISED = "#1e293b";
|
|
189
|
+
var DARK_BASE_MIN_CONTRAST = 5;
|
|
190
|
+
var deriveDarkBase = (base) => {
|
|
191
|
+
const reaches = (hex) => contrastRatio(hex, DARK_SURFACE) >= DARK_BASE_MIN_CONTRAST && contrastRatio(hex, DARK_SURFACE_RAISED) >= DARK_BASE_MIN_CONTRAST;
|
|
192
|
+
if (reaches(base)) return base;
|
|
193
|
+
const start = hexToOklch(base);
|
|
194
|
+
for (let l = start.l; l <= 1; l += 5e-3) {
|
|
195
|
+
const candidate = oklchToHex({ ...start, l });
|
|
196
|
+
if (reaches(candidate)) return candidate;
|
|
197
|
+
}
|
|
198
|
+
return "#ffffff";
|
|
199
|
+
};
|
|
200
|
+
var DARK_HOVER_DELTA = 0.07;
|
|
201
|
+
var DARK_LIGHT_DELTA = 0.35;
|
|
202
|
+
var deriveDarkHover = (darkBase) => {
|
|
203
|
+
const { l, c, h } = hexToOklch(darkBase);
|
|
204
|
+
return oklchToHex({ l: Math.min(LIGHT_CEILING, l + DARK_HOVER_DELTA), c, h });
|
|
205
|
+
};
|
|
206
|
+
var deriveDarkLight = (darkBase) => {
|
|
207
|
+
const { l, c, h } = hexToOklch(darkBase);
|
|
208
|
+
return oklchToHex({ l: Math.max(0.2, l - DARK_LIGHT_DELTA), c, h });
|
|
209
|
+
};
|
|
210
|
+
var DARK_RAMP_CURVE = {
|
|
211
|
+
50: { l: 0.235, chroma: 0.35 },
|
|
212
|
+
100: { l: 0.27, chroma: 0.45 },
|
|
213
|
+
200: { l: 0.33, chroma: 0.6 },
|
|
214
|
+
300: { l: 0.42, chroma: 0.8 },
|
|
215
|
+
400: { l: 0.55, chroma: 0.95 },
|
|
216
|
+
600: { l: 0.76, chroma: 0.8 },
|
|
217
|
+
700: { l: 0.83, chroma: 0.6 },
|
|
218
|
+
800: { l: 0.89, chroma: 0.4 },
|
|
219
|
+
900: { l: 0.945, chroma: 0.2 }
|
|
220
|
+
};
|
|
221
|
+
var buildDarkRamp = (darkBase) => {
|
|
222
|
+
const { c, h } = hexToOklch(darkBase);
|
|
223
|
+
const out = {};
|
|
224
|
+
for (const step of RAMP_STEPS) {
|
|
225
|
+
out[step] = step === BASE_STEP ? darkBase : oklchToHex({
|
|
226
|
+
l: DARK_RAMP_CURVE[step].l,
|
|
227
|
+
c: c * DARK_RAMP_CURVE[step].chroma,
|
|
228
|
+
h
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
return out;
|
|
232
|
+
};
|
|
179
233
|
|
|
180
234
|
// src/components/ThemeProvider/ThemeProvider.tokens.ts
|
|
181
235
|
var THEME_COLOR_KEYS = [
|
|
@@ -220,7 +274,10 @@ var defaultTheme = {
|
|
|
220
274
|
fontFamily: "'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
|
|
221
275
|
monoFamily: "'JetBrains Mono', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace",
|
|
222
276
|
fontScale: 1
|
|
223
|
-
}
|
|
277
|
+
},
|
|
278
|
+
// Empty on purpose: the preset's dark colours are *derived* from `colors`
|
|
279
|
+
// (see `_color-schemes.scss`), exactly as a consumer's are.
|
|
280
|
+
dark: {}
|
|
224
281
|
};
|
|
225
282
|
var DEFAULT_PRIMARY_RAMP = {
|
|
226
283
|
50: "#eef2ff",
|
|
@@ -237,39 +294,52 @@ var DEFAULT_PRIMARY_RAMP = {
|
|
|
237
294
|
var FONT_SCALE_MIN = 0.875;
|
|
238
295
|
var FONT_SCALE_MAX = 1.25;
|
|
239
296
|
var normalizeColor = (value) => typeof value === "string" ? { base: value } : value;
|
|
297
|
+
var resolveColor = (supplied, path) => {
|
|
298
|
+
if (supplied === void 0) return void 0;
|
|
299
|
+
const { base, contrast } = normalizeColor(supplied);
|
|
300
|
+
if (!isValidHex(base)) {
|
|
301
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
302
|
+
`theme-color-${path}`,
|
|
303
|
+
`ThemeProvider: ${path} is not a valid hex colour (received ${JSON.stringify(base)}). Falling back to the preset.`
|
|
304
|
+
);
|
|
305
|
+
return void 0;
|
|
306
|
+
}
|
|
307
|
+
if (contrast !== void 0 && !isValidHex(contrast)) {
|
|
308
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
309
|
+
`theme-contrast-${path}`,
|
|
310
|
+
`ThemeProvider: ${path}.contrast is not a valid hex colour (received ${JSON.stringify(contrast)}). It will be computed instead.`
|
|
311
|
+
);
|
|
312
|
+
return { base };
|
|
313
|
+
}
|
|
314
|
+
return contrast === void 0 ? { base } : { base, contrast };
|
|
315
|
+
};
|
|
240
316
|
var resolveTheme = (theme) => {
|
|
241
317
|
const colors = {};
|
|
318
|
+
const darkColors = {};
|
|
242
319
|
for (const key of THEME_COLOR_KEYS) {
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
if (
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const { base, contrast } = normalizeColor(supplied);
|
|
250
|
-
if (!isValidHex(base)) {
|
|
251
|
-
_chunkENMDOQQOcjs.devWarn.call(void 0,
|
|
252
|
-
`theme-color-${key}`,
|
|
253
|
-
`ThemeProvider: colors.${key} is not a valid hex colour (received ${JSON.stringify(base)}). Falling back to the preset.`
|
|
254
|
-
);
|
|
255
|
-
colors[key] = fallback;
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
if (contrast !== void 0 && !isValidHex(contrast)) {
|
|
259
|
-
_chunkENMDOQQOcjs.devWarn.call(void 0,
|
|
260
|
-
`theme-contrast-${key}`,
|
|
261
|
-
`ThemeProvider: colors.${key}.contrast is not a valid hex colour (received ${JSON.stringify(contrast)}). It will be computed instead.`
|
|
320
|
+
colors[key] = _nullishCoalesce(resolveColor(_optionalChain([theme, 'access', _ => _.colors, 'optionalAccess', _2 => _2[key]]), `colors.${key}`), () => ( normalizeColor(defaultTheme.colors[key])));
|
|
321
|
+
const explicitDark = resolveColor(_optionalChain([theme, 'access', _3 => _3.dark, 'optionalAccess', _4 => _4.colors, 'optionalAccess', _5 => _5[key]]), `dark.colors.${key}`);
|
|
322
|
+
if (explicitDark) {
|
|
323
|
+
const worst = Math.min(
|
|
324
|
+
contrastRatio(explicitDark.base, DARK_SURFACE),
|
|
325
|
+
contrastRatio(explicitDark.base, DARK_SURFACE_RAISED)
|
|
262
326
|
);
|
|
263
|
-
|
|
264
|
-
|
|
327
|
+
if (worst < 4.5) {
|
|
328
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
329
|
+
`theme-dark-contrast-${key}`,
|
|
330
|
+
`ThemeProvider: dark.colors.${key} (${explicitDark.base}) is ${worst.toFixed(2)}:1 against the dark surfaces, below the 4.5:1 text needs. It is used as given, but text in it will fail WCAG AA in the dark scheme - omit it to have a compliant tone derived from colors.${key}.`
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
darkColors[key] = explicitDark;
|
|
334
|
+
} else {
|
|
335
|
+
darkColors[key] = { base: deriveDarkBase(colors[key].base) };
|
|
265
336
|
}
|
|
266
|
-
colors[key] = contrast === void 0 ? { base } : { base, contrast };
|
|
267
337
|
}
|
|
268
|
-
const scale = _optionalChain([theme, 'access',
|
|
338
|
+
const scale = _optionalChain([theme, 'access', _6 => _6.typography, 'optionalAccess', _7 => _7.fontScale]);
|
|
269
339
|
let fontScale = defaultTheme.typography.fontScale;
|
|
270
340
|
if (scale !== void 0) {
|
|
271
341
|
if (!Number.isFinite(scale) || scale < FONT_SCALE_MIN || scale > FONT_SCALE_MAX) {
|
|
272
|
-
|
|
342
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
273
343
|
"theme-font-scale",
|
|
274
344
|
`ThemeProvider: typography.fontScale must be between ${FONT_SCALE_MIN} and ${FONT_SCALE_MAX} (received ${String(scale)}). Falling back to ${fontScale}.`
|
|
275
345
|
);
|
|
@@ -280,13 +350,15 @@ var resolveTheme = (theme) => {
|
|
|
280
350
|
return {
|
|
281
351
|
colors,
|
|
282
352
|
typography: {
|
|
283
|
-
fontFamily: _optionalChain([theme, 'access',
|
|
284
|
-
monoFamily: _optionalChain([theme, 'access',
|
|
353
|
+
fontFamily: _optionalChain([theme, 'access', _8 => _8.typography, 'optionalAccess', _9 => _9.fontFamily]) || defaultTheme.typography.fontFamily,
|
|
354
|
+
monoFamily: _optionalChain([theme, 'access', _10 => _10.typography, 'optionalAccess', _11 => _11.monoFamily]) || defaultTheme.typography.monoFamily,
|
|
285
355
|
fontScale
|
|
286
|
-
}
|
|
356
|
+
},
|
|
357
|
+
dark: { colors: darkColors }
|
|
287
358
|
};
|
|
288
359
|
};
|
|
289
|
-
var buildTokens = (resolved) => {
|
|
360
|
+
var buildTokens = (resolved, scheme = "light") => {
|
|
361
|
+
if (scheme === "dark") return buildDarkTokens(resolved);
|
|
290
362
|
const tokens = {};
|
|
291
363
|
for (const key of THEME_COLOR_KEYS) {
|
|
292
364
|
const { base, contrast } = resolved.colors[key];
|
|
@@ -301,7 +373,7 @@ var buildTokens = (resolved) => {
|
|
|
301
373
|
const isPreset = base === normalizeColor(defaultTheme.colors[key]).base;
|
|
302
374
|
const ramp = isPreset ? DEFAULT_PRIMARY_RAMP : buildRamp(base);
|
|
303
375
|
if (!isPreset && !isRampViable(base)) {
|
|
304
|
-
|
|
376
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
305
377
|
`theme-ramp-${key}`,
|
|
306
378
|
`ThemeProvider: colors.${key} (${base}) is too light or too dark to generate a usable --${key}-50\u2026900 scale; several steps will be identical. Pick a colour with more headroom.`
|
|
307
379
|
);
|
|
@@ -311,6 +383,11 @@ var buildTokens = (resolved) => {
|
|
|
311
383
|
}
|
|
312
384
|
}
|
|
313
385
|
}
|
|
386
|
+
Object.assign(tokens, typographyTokens(resolved));
|
|
387
|
+
return tokens;
|
|
388
|
+
};
|
|
389
|
+
var typographyTokens = (resolved) => {
|
|
390
|
+
const tokens = {};
|
|
314
391
|
const { fontFamily, monoFamily, fontScale } = resolved.typography;
|
|
315
392
|
tokens["--font-family-primary"] = fontFamily;
|
|
316
393
|
tokens["--font-family-mono"] = monoFamily;
|
|
@@ -319,35 +396,84 @@ var buildTokens = (resolved) => {
|
|
|
319
396
|
}
|
|
320
397
|
return tokens;
|
|
321
398
|
};
|
|
322
|
-
var
|
|
323
|
-
|
|
399
|
+
var buildDarkTokens = (resolved) => {
|
|
400
|
+
const tokens = {};
|
|
401
|
+
for (const key of THEME_COLOR_KEYS) {
|
|
402
|
+
const { base, contrast } = resolved.dark.colors[key];
|
|
403
|
+
tokens[`--${key}-color`] = base;
|
|
404
|
+
tokens[`--${key}-rgb`] = hexToRgbTriple(base);
|
|
405
|
+
tokens[`--${key}-dark`] = deriveDarkHover(base);
|
|
406
|
+
tokens[`--${key}-light`] = deriveDarkLight(base);
|
|
407
|
+
if (FILL_COLOR_KEYS.includes(key)) {
|
|
408
|
+
tokens[`--${key}-contrast`] = _nullishCoalesce(contrast, () => ( pickContrast(base)));
|
|
409
|
+
}
|
|
410
|
+
if (key === RAMP_COLOR_KEY) {
|
|
411
|
+
const ramp = buildDarkRamp(base);
|
|
412
|
+
for (const step of RAMP_STEPS) tokens[`--${key}-${step}`] = ramp[step];
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
Object.assign(tokens, typographyTokens(resolved));
|
|
416
|
+
return tokens;
|
|
417
|
+
};
|
|
418
|
+
var DEFAULT_TOKENS = {
|
|
419
|
+
light: buildTokens(resolveTheme(defaultTheme), "light"),
|
|
420
|
+
dark: buildTokens(resolveTheme(defaultTheme), "dark")
|
|
421
|
+
};
|
|
422
|
+
var diffFromDefault = (tokens, scheme = "light") => {
|
|
324
423
|
const diff = {};
|
|
325
424
|
for (const [name, value] of Object.entries(tokens)) {
|
|
326
|
-
if (DEFAULT_TOKENS[name] !== value) diff[name] = value;
|
|
425
|
+
if (DEFAULT_TOKENS[scheme][name] !== value) diff[name] = value;
|
|
327
426
|
}
|
|
328
427
|
return diff;
|
|
329
428
|
};
|
|
429
|
+
var block = (selector, tokens, indent = "") => `${indent}${selector} {
|
|
430
|
+
` + Object.entries(tokens).map(([name, value]) => `${indent} ${name}: ${value};`).join("\n") + `
|
|
431
|
+
${indent}}`;
|
|
330
432
|
var themeToCss = (resolved) => {
|
|
331
|
-
const
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
433
|
+
const light = buildTokens(resolved, "light");
|
|
434
|
+
const dark = Object.fromEntries(
|
|
435
|
+
Object.entries(buildTokens(resolved, "dark")).filter(([name]) => !name.startsWith("--font-"))
|
|
436
|
+
);
|
|
437
|
+
return [
|
|
438
|
+
block(":root", light),
|
|
439
|
+
block(":root[data-color-scheme='dark']", dark),
|
|
440
|
+
`@media (prefers-color-scheme: dark) {
|
|
441
|
+
${block(":root[data-color-scheme='system']", dark, " ")}
|
|
442
|
+
}`
|
|
443
|
+
].join("\n\n");
|
|
336
444
|
};
|
|
337
445
|
|
|
338
446
|
// src/components/ThemeProvider/ThemeProvider.component.tsx
|
|
339
447
|
var _jsxruntime = require('react/jsx-runtime');
|
|
448
|
+
var SCHEME_ATTRIBUTE = "data-color-scheme";
|
|
449
|
+
var isColorScheme = (value) => value === "light" || value === "dark" || value === "system";
|
|
450
|
+
var readPageScheme = () => {
|
|
451
|
+
const value = document.documentElement.getAttribute(SCHEME_ATTRIBUTE);
|
|
452
|
+
return isColorScheme(value) ? value : "light";
|
|
453
|
+
};
|
|
454
|
+
var DARK_QUERY = "(prefers-color-scheme: dark)";
|
|
455
|
+
var subscribeToPrefersDark = (onChange) => {
|
|
456
|
+
const query = _optionalChain([window, 'access', _12 => _12.matchMedia, 'optionalCall', _13 => _13(DARK_QUERY)]);
|
|
457
|
+
_optionalChain([query, 'optionalAccess', _14 => _14.addEventListener, 'call', _15 => _15("change", onChange)]);
|
|
458
|
+
return () => _optionalChain([query, 'optionalAccess', _16 => _16.removeEventListener, 'call', _17 => _17("change", onChange)]);
|
|
459
|
+
};
|
|
460
|
+
var getPrefersDark = () => _nullishCoalesce(_optionalChain([window, 'access', _18 => _18.matchMedia, 'optionalCall', _19 => _19(DARK_QUERY), 'access', _20 => _20.matches]), () => ( false));
|
|
461
|
+
var getServerPrefersDark = () => false;
|
|
340
462
|
var EMPTY_THEME = {};
|
|
341
463
|
var mountedProviders = 0;
|
|
342
464
|
var mergeTheme = (base, patch) => ({
|
|
343
465
|
colors: { ...base.colors, ...patch.colors },
|
|
344
|
-
typography: { ...base.typography, ...patch.typography }
|
|
466
|
+
typography: { ...base.typography, ...patch.typography },
|
|
467
|
+
dark: { colors: { ..._optionalChain([base, 'access', _21 => _21.dark, 'optionalAccess', _22 => _22.colors]), ..._optionalChain([patch, 'access', _23 => _23.dark, 'optionalAccess', _24 => _24.colors]) } }
|
|
345
468
|
});
|
|
346
469
|
var ThemeProvider = ({
|
|
347
470
|
children,
|
|
348
471
|
theme: controlledTheme,
|
|
349
472
|
defaultTheme: initialTheme,
|
|
350
|
-
onThemeChange
|
|
473
|
+
onThemeChange,
|
|
474
|
+
colorScheme: controlledScheme,
|
|
475
|
+
defaultColorScheme,
|
|
476
|
+
onColorSchemeChange
|
|
351
477
|
}) => {
|
|
352
478
|
const isControlled = controlledTheme !== void 0;
|
|
353
479
|
const [uncontrolledTheme, setUncontrolledTheme] = _react.useState.call(void 0,
|
|
@@ -357,7 +483,7 @@ var ThemeProvider = ({
|
|
|
357
483
|
_react.useEffect.call(void 0, () => {
|
|
358
484
|
mountedProviders += 1;
|
|
359
485
|
if (mountedProviders > 1) {
|
|
360
|
-
|
|
486
|
+
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
361
487
|
"theme-multiple-providers",
|
|
362
488
|
`ThemeProvider: ${mountedProviders} providers are mounted at once. They all write to document.documentElement, so the last one to apply each token wins for the whole page - nested or sibling providers cannot theme separate subtrees. Use a single provider at your app root.`
|
|
363
489
|
);
|
|
@@ -366,8 +492,51 @@ var ThemeProvider = ({
|
|
|
366
492
|
mountedProviders -= 1;
|
|
367
493
|
};
|
|
368
494
|
}, []);
|
|
495
|
+
const [uncontrolledScheme, setUncontrolledScheme] = _react.useState.call(void 0,
|
|
496
|
+
defaultColorScheme
|
|
497
|
+
);
|
|
498
|
+
const managedScheme = _nullishCoalesce(controlledScheme, () => ( uncontrolledScheme));
|
|
499
|
+
const [pageScheme, setPageScheme] = _react.useState.call(void 0, "light");
|
|
500
|
+
_react.useLayoutEffect.call(void 0, () => {
|
|
501
|
+
if (managedScheme !== void 0) return;
|
|
502
|
+
setPageScheme(readPageScheme());
|
|
503
|
+
const observer = new MutationObserver(() => setPageScheme(readPageScheme()));
|
|
504
|
+
observer.observe(document.documentElement, { attributeFilter: [SCHEME_ATTRIBUTE] });
|
|
505
|
+
return () => observer.disconnect();
|
|
506
|
+
}, [managedScheme]);
|
|
507
|
+
_react.useLayoutEffect.call(void 0, () => {
|
|
508
|
+
if (managedScheme === void 0) return;
|
|
509
|
+
const root = document.documentElement;
|
|
510
|
+
const previous = root.getAttribute(SCHEME_ATTRIBUTE);
|
|
511
|
+
root.setAttribute(SCHEME_ATTRIBUTE, managedScheme);
|
|
512
|
+
return () => {
|
|
513
|
+
if (previous === null) root.removeAttribute(SCHEME_ATTRIBUTE);
|
|
514
|
+
else root.setAttribute(SCHEME_ATTRIBUTE, previous);
|
|
515
|
+
};
|
|
516
|
+
}, [managedScheme]);
|
|
517
|
+
const colorScheme = _nullishCoalesce(managedScheme, () => ( pageScheme));
|
|
518
|
+
const prefersDark = _react.useSyncExternalStore.call(void 0,
|
|
519
|
+
subscribeToPrefersDark,
|
|
520
|
+
getPrefersDark,
|
|
521
|
+
getServerPrefersDark
|
|
522
|
+
);
|
|
523
|
+
const resolvedColorScheme = colorScheme === "system" ? prefersDark ? "dark" : "light" : colorScheme;
|
|
524
|
+
const setColorScheme = _react.useCallback.call(void 0,
|
|
525
|
+
(next) => {
|
|
526
|
+
if (controlledScheme === void 0) setUncontrolledScheme(next);
|
|
527
|
+
_optionalChain([onColorSchemeChange, 'optionalCall', _25 => _25(next)]);
|
|
528
|
+
},
|
|
529
|
+
[controlledScheme, onColorSchemeChange]
|
|
530
|
+
);
|
|
369
531
|
const resolvedTheme = _react.useMemo.call(void 0, () => resolveTheme(theme), [theme]);
|
|
370
|
-
const tokens = _react.useMemo.call(void 0,
|
|
532
|
+
const tokens = _react.useMemo.call(void 0,
|
|
533
|
+
() => diffFromDefault(buildTokens(resolvedTheme, resolvedColorScheme), resolvedColorScheme),
|
|
534
|
+
[resolvedTheme, resolvedColorScheme]
|
|
535
|
+
);
|
|
536
|
+
const isDefault = _react.useMemo.call(void 0,
|
|
537
|
+
() => Object.keys(diffFromDefault(buildTokens(resolvedTheme, "light"), "light")).length === 0 && Object.keys(diffFromDefault(buildTokens(resolvedTheme, "dark"), "dark")).length === 0,
|
|
538
|
+
[resolvedTheme]
|
|
539
|
+
);
|
|
371
540
|
const appliedRef = _react.useRef.call(void 0, []);
|
|
372
541
|
_react.useLayoutEffect.call(void 0, () => {
|
|
373
542
|
if (typeof document === "undefined") return;
|
|
@@ -389,7 +558,7 @@ var ThemeProvider = ({
|
|
|
389
558
|
const commit = _react.useCallback.call(void 0,
|
|
390
559
|
(next) => {
|
|
391
560
|
if (!isControlled) setUncontrolledTheme(next);
|
|
392
|
-
_optionalChain([onThemeChange, 'optionalCall',
|
|
561
|
+
_optionalChain([onThemeChange, 'optionalCall', _26 => _26(next)]);
|
|
393
562
|
},
|
|
394
563
|
[isControlled, onThemeChange]
|
|
395
564
|
);
|
|
@@ -407,10 +576,24 @@ var ThemeProvider = ({
|
|
|
407
576
|
setTheme,
|
|
408
577
|
updateTheme,
|
|
409
578
|
resetTheme,
|
|
410
|
-
isDefault
|
|
411
|
-
toCss
|
|
579
|
+
isDefault,
|
|
580
|
+
toCss,
|
|
581
|
+
colorScheme,
|
|
582
|
+
resolvedColorScheme,
|
|
583
|
+
setColorScheme
|
|
412
584
|
}),
|
|
413
|
-
[
|
|
585
|
+
[
|
|
586
|
+
theme,
|
|
587
|
+
resolvedTheme,
|
|
588
|
+
setTheme,
|
|
589
|
+
updateTheme,
|
|
590
|
+
resetTheme,
|
|
591
|
+
isDefault,
|
|
592
|
+
toCss,
|
|
593
|
+
colorScheme,
|
|
594
|
+
resolvedColorScheme,
|
|
595
|
+
setColorScheme
|
|
596
|
+
]
|
|
414
597
|
);
|
|
415
598
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThemeContext.Provider, { value, children });
|
|
416
599
|
};
|
|
@@ -520,5 +703,6 @@ var isFontStackAvailable = (stack) => isFontAvailable(_nullishCoalesce(stack.spl
|
|
|
520
703
|
|
|
521
704
|
|
|
522
705
|
|
|
523
|
-
|
|
524
|
-
|
|
706
|
+
|
|
707
|
+
exports.useTheme = useTheme; exports.contrastRatio = contrastRatio; exports.CONTRAST_LIGHT = CONTRAST_LIGHT; exports.CONTRAST_DARK = CONTRAST_DARK; exports.pickContrast = pickContrast; exports.DARK_SURFACE = DARK_SURFACE; exports.THEME_COLOR_KEYS = THEME_COLOR_KEYS; exports.defaultTheme = defaultTheme; exports.FONT_SCALE_MIN = FONT_SCALE_MIN; exports.FONT_SCALE_MAX = FONT_SCALE_MAX; exports.ThemeProvider = ThemeProvider; exports.familyNameFromFile = familyNameFromFile; exports.toFontStack = toFontStack; exports.FONT_ACCEPT = FONT_ACCEPT; exports.registerFontFace = registerFontFace; exports.registerFontFile = registerFontFile; exports.subscribeToFontLoads = subscribeToFontLoads; exports.isFontAvailable = isFontAvailable; exports.isFontStackAvailable = isFontStackAvailable;
|
|
708
|
+
//# sourceMappingURL=chunk-O45W57Y4.cjs.map
|