eidos-ui 3.3.0 → 3.5.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 +17 -5
- package/dist/{Input.types-XrJTI0JC.d.ts → Input.types-CSDMaZNe.d.ts} +10 -0
- package/dist/{Input.types-DFZNyJGF.d.cts → Input.types-D7-sWq-q.d.cts} +10 -0
- package/dist/{Menu.types-DNIpjSAK.d.ts → Menu.types-BN4g1-3A.d.ts} +9 -0
- package/dist/{Menu.types-DwcuCZM7.d.cts → Menu.types-CTnUijv5.d.cts} +9 -0
- package/dist/{Select.types-B4kDpkGB.d.ts → Select.types-C2tGy1vj.d.ts} +11 -1
- package/dist/{Select.types-CAkT2ACt.d.cts → Select.types-ok-03rLo.d.cts} +11 -1
- package/dist/{Table.types-CPj-udMc.d.cts → Table.types-D-9tC0kJ.d.cts} +2 -3
- package/dist/{Table.types-CZZ7QWAI.d.ts → Table.types-D8pmgxKA.d.ts} +2 -3
- package/dist/{Toolbar.types-RN0klQzu.d.ts → Toolbar.types-CKnQC_TW.d.ts} +1 -1
- package/dist/{Toolbar.types-DSk8z2iy.d.cts → Toolbar.types-DUz2mxct.d.cts} +1 -1
- 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/checkbox/index.cjs +2 -2
- package/dist/checkbox/index.js +1 -1
- package/dist/chip/index.cjs +4 -4
- package/dist/chip/index.js +3 -3
- package/dist/{chunk-ITXDSQT2.js → chunk-24HKKSKX.js} +94 -102
- package/dist/chunk-24HKKSKX.js.map +1 -0
- package/dist/{chunk-GDQWSCJQ.js → chunk-26SO4LZ5.js} +4 -4
- package/dist/{chunk-GPRJYPIG.js → chunk-2JW3WSBF.js} +6 -4
- package/dist/chunk-2JW3WSBF.js.map +1 -0
- package/dist/{chunk-MHZIBV2C.js → chunk-2PCCGQOH.js} +90 -19
- package/dist/chunk-2PCCGQOH.js.map +1 -0
- package/dist/{chunk-3EPND5M2.cjs → chunk-2T7ZMMH5.cjs} +72 -19
- package/dist/chunk-2T7ZMMH5.cjs.map +1 -0
- package/dist/chunk-35LGEPLP.cjs +134 -0
- package/dist/chunk-35LGEPLP.cjs.map +1 -0
- package/dist/{chunk-R4M6SNUU.cjs → chunk-36JFXFM2.cjs} +48 -37
- package/dist/chunk-36JFXFM2.cjs.map +1 -0
- package/dist/{chunk-ND526PMG.cjs → chunk-3KBBJZHK.cjs} +11 -11
- package/dist/{chunk-ND526PMG.cjs.map → chunk-3KBBJZHK.cjs.map} +1 -1
- package/dist/{chunk-EH42ND5Q.cjs → chunk-3RWZC6OW.cjs} +5 -5
- package/dist/{chunk-EH42ND5Q.cjs.map → chunk-3RWZC6OW.cjs.map} +1 -1
- package/dist/{chunk-G5N3C6AU.cjs → chunk-3ZRFOKDM.cjs} +36 -36
- package/dist/{chunk-G5N3C6AU.cjs.map → chunk-3ZRFOKDM.cjs.map} +1 -1
- package/dist/{chunk-I5XR2V4A.cjs → chunk-4AO5RKV5.cjs} +87 -96
- package/dist/chunk-4AO5RKV5.cjs.map +1 -0
- package/dist/{chunk-5HUZYY54.js → chunk-4J25XZDI.js} +23 -13
- package/dist/chunk-4J25XZDI.js.map +1 -0
- package/dist/{chunk-FXZJL2AM.cjs → chunk-4JSTBA4F.cjs} +12 -6
- package/dist/chunk-4JSTBA4F.cjs.map +1 -0
- package/dist/{chunk-GG5YGESX.js → chunk-4LNTZPSQ.js} +4 -3
- package/dist/chunk-4LNTZPSQ.js.map +1 -0
- package/dist/{chunk-3EUTXQDB.js → chunk-5XH2PHT2.js} +31 -24
- package/dist/chunk-5XH2PHT2.js.map +1 -0
- package/dist/{chunk-OJDYTCMO.cjs → chunk-66UQTF57.cjs} +69 -62
- package/dist/chunk-66UQTF57.cjs.map +1 -0
- package/dist/{chunk-MCWTQT3M.cjs → chunk-6JHVXWDV.cjs} +125 -54
- package/dist/chunk-6JHVXWDV.cjs.map +1 -0
- package/dist/chunk-75GFIQRU.js +88 -0
- package/dist/chunk-75GFIQRU.js.map +1 -0
- package/dist/{chunk-55J4LEKT.cjs → chunk-7BFODYNL.cjs} +11 -8
- package/dist/chunk-7BFODYNL.cjs.map +1 -0
- package/dist/{chunk-TEVZHN5I.cjs → chunk-7VJCGKVP.cjs} +28 -15
- package/dist/chunk-7VJCGKVP.cjs.map +1 -0
- package/dist/{chunk-KQJ3IAFT.js → chunk-A3LMUPG3.js} +2 -2
- package/dist/{chunk-O2AACVSF.js → chunk-AR2ZOO6L.js} +3 -3
- package/dist/{chunk-Z5U4NJTW.cjs → chunk-BEOECPVJ.cjs} +50 -23
- package/dist/chunk-BEOECPVJ.cjs.map +1 -0
- package/dist/{chunk-E7FGY7BJ.js → chunk-BFKPJ627.js} +5 -4
- package/dist/chunk-BFKPJ627.js.map +1 -0
- package/dist/{chunk-M7PF4FKQ.js → chunk-D7SQ7LHJ.js} +6 -3
- package/dist/chunk-D7SQ7LHJ.js.map +1 -0
- package/dist/chunk-DA375AI6.cjs +88 -0
- package/dist/chunk-DA375AI6.cjs.map +1 -0
- package/dist/{chunk-H6CWTMAH.js → chunk-DGXHR6FV.js} +5 -2
- package/dist/chunk-DGXHR6FV.js.map +1 -0
- package/dist/{chunk-ZNWIHUHZ.cjs → chunk-DU5JKTHK.cjs} +12 -4
- package/dist/chunk-DU5JKTHK.cjs.map +1 -0
- package/dist/{chunk-HALVTKW7.js → chunk-FIVMMCGM.js} +72 -81
- package/dist/chunk-FIVMMCGM.js.map +1 -0
- package/dist/{chunk-RYOQYYDO.js → chunk-GIEDIAPD.js} +12 -6
- package/dist/chunk-GIEDIAPD.js.map +1 -0
- package/dist/{chunk-NQ4L6PYW.js → chunk-GOF6A4M4.js} +2 -2
- package/dist/{chunk-NQ4L6PYW.js.map → chunk-GOF6A4M4.js.map} +1 -1
- package/dist/{chunk-L23WWO3D.js → chunk-GPVGGBIR.js} +2 -2
- package/dist/{chunk-OAK7HFOJ.js → chunk-GWHZFX2H.js} +21 -16
- package/dist/chunk-GWHZFX2H.js.map +1 -0
- package/dist/{chunk-HYDNZXPU.js → chunk-H2RS6Z6Q.js} +41 -25
- package/dist/{chunk-HYDNZXPU.js.map → chunk-H2RS6Z6Q.js.map} +1 -1
- package/dist/{chunk-2QEKSRVX.js → chunk-HEX4IMLO.js} +4 -4
- package/dist/{chunk-QJRKXT54.cjs → chunk-HMEREPDB.cjs} +7 -7
- package/dist/{chunk-QJRKXT54.cjs.map → chunk-HMEREPDB.cjs.map} +1 -1
- package/dist/{chunk-TTO7JXDB.cjs → chunk-HNGFRRVZ.cjs} +3 -3
- package/dist/{chunk-TTO7JXDB.cjs.map → chunk-HNGFRRVZ.cjs.map} +1 -1
- package/dist/{chunk-CJGFRPAS.cjs → chunk-I6M6CVI2.cjs} +4 -4
- package/dist/chunk-I6M6CVI2.cjs.map +1 -0
- package/dist/chunk-J76JHN7J.cjs +225 -0
- package/dist/chunk-J76JHN7J.cjs.map +1 -0
- package/dist/{chunk-YW65NAKH.cjs → chunk-JCKGAAPZ.cjs} +7 -7
- package/dist/{chunk-YW65NAKH.cjs.map → chunk-JCKGAAPZ.cjs.map} +1 -1
- package/dist/{chunk-6CPCNQKV.js → chunk-JHX6JK3M.js} +79 -75
- package/dist/chunk-JHX6JK3M.js.map +1 -0
- package/dist/{chunk-YV57RSPD.js → chunk-JNY7TUDS.js} +49 -22
- package/dist/chunk-JNY7TUDS.js.map +1 -0
- package/dist/{chunk-O3LG7B2J.cjs → chunk-JPYJQ4TF.cjs} +13 -5
- package/dist/chunk-JPYJQ4TF.cjs.map +1 -0
- package/dist/{chunk-PY2376XI.js → chunk-JT4KVXJK.js} +68 -15
- package/dist/chunk-JT4KVXJK.js.map +1 -0
- package/dist/{chunk-AOGNTG3W.cjs → chunk-KBQD4JLK.cjs} +5 -4
- package/dist/chunk-KBQD4JLK.cjs.map +1 -0
- package/dist/{chunk-P2JM22BF.cjs → chunk-KIZVY57H.cjs} +82 -78
- package/dist/chunk-KIZVY57H.cjs.map +1 -0
- package/dist/{chunk-QQIALSTX.cjs → chunk-KPMIIGHH.cjs} +27 -17
- package/dist/chunk-KPMIIGHH.cjs.map +1 -0
- package/dist/{chunk-ZXJU3TQD.cjs → chunk-KREHT4AQ.cjs} +11 -10
- package/dist/chunk-KREHT4AQ.cjs.map +1 -0
- package/dist/{chunk-S4S4LB63.js → chunk-L65MHFMD.js} +11 -3
- package/dist/chunk-L65MHFMD.js.map +1 -0
- package/dist/{chunk-OGC44JFZ.cjs → chunk-LQXFXXMJ.cjs} +8 -7
- package/dist/chunk-LQXFXXMJ.cjs.map +1 -0
- package/dist/{chunk-25PSIDPC.js → chunk-MPIVBAMY.js} +79 -21
- package/dist/chunk-MPIVBAMY.js.map +1 -0
- package/dist/{chunk-7SVDYEKM.js → chunk-MQAOXZD4.js} +28 -14
- package/dist/chunk-MQAOXZD4.js.map +1 -0
- package/dist/{chunk-6CSUUQ5M.cjs → chunk-NOQF7UQ5.cjs} +6 -6
- package/dist/{chunk-6CSUUQ5M.cjs.map → chunk-NOQF7UQ5.cjs.map} +1 -1
- package/dist/{chunk-OU7DCYIA.js → chunk-O3QM3BFE.js} +2 -2
- package/dist/{chunk-WKDT2XFQ.js → chunk-OOCCSMWM.js} +4 -4
- package/dist/chunk-P4XZH3OR.js +225 -0
- package/dist/chunk-P4XZH3OR.js.map +1 -0
- package/dist/{chunk-ZWAFL2B3.cjs → chunk-PMSENLOA.cjs} +37 -27
- package/dist/chunk-PMSENLOA.cjs.map +1 -0
- package/dist/{chunk-L5W2XC6M.js → chunk-RHFD2Z5V.js} +8 -8
- package/dist/chunk-RHHZRTWM.js +134 -0
- package/dist/chunk-RHHZRTWM.js.map +1 -0
- package/dist/{chunk-NZO2I5AL.cjs → chunk-RJVHR45I.cjs} +7 -7
- package/dist/{chunk-NZO2I5AL.cjs.map → chunk-RJVHR45I.cjs.map} +1 -1
- package/dist/{chunk-E6SE552P.cjs → chunk-RUDXHT76.cjs} +41 -25
- package/dist/chunk-RUDXHT76.cjs.map +1 -0
- package/dist/{chunk-SXGCRHBZ.js → chunk-SDUGYJGW.js} +24 -14
- package/dist/chunk-SDUGYJGW.js.map +1 -0
- package/dist/{chunk-VPRUHE35.js → chunk-SFFKQQ5Z.js} +4 -4
- package/dist/{chunk-2RXQMQYW.js → chunk-SXL4DMZ7.js} +27 -17
- package/dist/{chunk-2RXQMQYW.js.map → chunk-SXL4DMZ7.js.map} +1 -1
- package/dist/{chunk-OAPOGYA5.cjs → chunk-TC5IC6OP.cjs} +7 -4
- package/dist/chunk-TC5IC6OP.cjs.map +1 -0
- package/dist/{chunk-T2KB3DJJ.js → chunk-THCTUBX6.js} +12 -4
- package/dist/chunk-THCTUBX6.js.map +1 -0
- package/dist/{chunk-NEYLNRVG.cjs → chunk-TTLFY76J.cjs} +21 -16
- package/dist/chunk-TTLFY76J.cjs.map +1 -0
- package/dist/{chunk-ZZSPQFMX.js → chunk-U233KQZX.js} +2 -1
- package/dist/{chunk-ZZSPQFMX.js.map → chunk-U233KQZX.js.map} +1 -1
- package/dist/{chunk-65PC3YDT.cjs → chunk-V4BZWBZT.cjs} +7 -7
- package/dist/{chunk-65PC3YDT.cjs.map → chunk-V4BZWBZT.cjs.map} +1 -1
- package/dist/{chunk-FKXKBJUI.cjs → chunk-VHO6JPRR.cjs} +2 -1
- package/dist/chunk-VHO6JPRR.cjs.map +1 -0
- package/dist/{chunk-3E7TKBQI.cjs → chunk-VQGLVBPL.cjs} +24 -14
- package/dist/chunk-VQGLVBPL.cjs.map +1 -0
- package/dist/{chunk-27ZWUEPE.js → chunk-WE2SBWZ6.js} +20 -9
- package/dist/chunk-WE2SBWZ6.js.map +1 -0
- package/dist/{chunk-TQGO5WK6.js → chunk-WNDDS367.js} +7 -6
- package/dist/chunk-WNDDS367.js.map +1 -0
- package/dist/{chunk-Q5KQVBQP.cjs → chunk-X3BVQBXD.cjs} +18 -16
- package/dist/chunk-X3BVQBXD.cjs.map +1 -0
- package/dist/{chunk-J5RMLZ4P.cjs → chunk-XERBOFYZ.cjs} +80 -22
- package/dist/chunk-XERBOFYZ.cjs.map +1 -0
- package/dist/{chunk-3CXULV4G.cjs → chunk-XRVRGRC3.cjs} +2 -2
- package/dist/{chunk-3CXULV4G.cjs.map → chunk-XRVRGRC3.cjs.map} +1 -1
- package/dist/{chunk-K7T25Y3A.cjs → chunk-XZLSHEHE.cjs} +41 -27
- package/dist/chunk-XZLSHEHE.cjs.map +1 -0
- package/dist/{chunk-JRLUZDKA.js → chunk-YAKTVIVK.js} +20 -7
- package/dist/chunk-YAKTVIVK.js.map +1 -0
- package/dist/{chunk-IJ4DXG7D.cjs → chunk-YJNQLH2L.cjs} +5 -2
- package/dist/chunk-YJNQLH2L.cjs.map +1 -0
- package/dist/{chunk-ZPDETHQ7.js → chunk-YP4HUBKN.js} +3 -3
- package/dist/{chunk-ZPDETHQ7.js.map → chunk-YP4HUBKN.js.map} +1 -1
- package/dist/{chunk-5WH3JMR5.js → chunk-YXRKBKFB.js} +7 -4
- package/dist/chunk-YXRKBKFB.js.map +1 -0
- package/dist/{chunk-ACNTH2OQ.cjs → chunk-ZMRINZIO.cjs} +98 -106
- package/dist/chunk-ZMRINZIO.cjs.map +1 -0
- package/dist/color-picker/index.cjs +4 -4
- package/dist/color-picker/index.d.cts +8 -0
- package/dist/color-picker/index.d.ts +8 -0
- 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 -2
- package/dist/command-palette/index.cjs.map +1 -1
- package/dist/command-palette/index.js +2 -1
- package/dist/context-menu/index.cjs +6 -6
- package/dist/context-menu/index.d.cts +1 -1
- package/dist/context-menu/index.d.ts +1 -1
- package/dist/context-menu/index.js +5 -5
- package/dist/conversation/index.cjs +8 -8
- package/dist/conversation/index.d.cts +1 -1
- package/dist/conversation/index.d.ts +1 -1
- package/dist/conversation/index.js +7 -7
- package/dist/data-grid/index.cjs +16 -16
- package/dist/data-grid/index.d.cts +14 -15
- package/dist/data-grid/index.d.ts +14 -15
- package/dist/data-grid/index.js +15 -15
- package/dist/date-picker/index.cjs +8 -8
- package/dist/date-picker/index.d.cts +12 -2
- package/dist/date-picker/index.d.ts +12 -2
- 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.d.cts +34 -0
- package/dist/dropdown/index.d.ts +34 -0
- package/dist/dropdown/index.js +2 -2
- package/dist/file-upload/index.cjs +2 -2
- package/dist/file-upload/index.js +1 -1
- package/dist/header/index.cjs +6 -6
- package/dist/header/index.js +5 -5
- package/dist/index.cjs +42 -42
- package/dist/index.css +112 -40
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +41 -41
- 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.d.cts +2 -2
- package/dist/input/index.d.ts +2 -2
- package/dist/input/index.js +3 -3
- package/dist/menu/index.cjs +5 -5
- package/dist/menu/index.d.cts +23 -2
- package/dist/menu/index.d.ts +23 -2
- 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 +3 -3
- package/dist/number-input/index.js +2 -2
- package/dist/o-t-p-input/index.cjs +2 -2
- package/dist/o-t-p-input/index.js +1 -1
- package/dist/page-layout/index.cjs +12 -12
- package/dist/page-layout/index.d.cts +2 -2
- package/dist/page-layout/index.d.ts +2 -2
- 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 -2
- package/dist/popover/index.cjs.map +1 -1
- package/dist/popover/index.d.cts +3 -1
- package/dist/popover/index.d.ts +3 -1
- package/dist/popover/index.js +2 -1
- package/dist/radio/index.cjs +2 -2
- package/dist/radio/index.js +1 -1
- package/dist/segmented-control/index.cjs +4 -4
- package/dist/segmented-control/index.js +3 -3
- package/dist/select/index.cjs +6 -6
- package/dist/select/index.d.cts +3 -3
- package/dist/select/index.d.ts +3 -3
- package/dist/select/index.js +5 -5
- package/dist/snackbar/index.cjs +5 -5
- package/dist/snackbar/index.d.cts +4 -0
- package/dist/snackbar/index.d.ts +4 -0
- 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/table/index.cjs +14 -14
- package/dist/table/index.d.cts +2 -2
- package/dist/table/index.d.ts +2 -2
- package/dist/table/index.js +13 -13
- 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 +11 -11
- package/dist/theme-editor/index.js +10 -10
- package/dist/theme-provider/index.cjs +3 -3
- package/dist/theme-provider/index.js +2 -2
- package/dist/toolbar/index.cjs +8 -8
- package/dist/toolbar/index.d.cts +3 -3
- package/dist/toolbar/index.d.ts +3 -3
- package/dist/toolbar/index.js +7 -7
- package/dist/tooltip/index.cjs +3 -2
- package/dist/tooltip/index.cjs.map +1 -1
- package/dist/tooltip/index.js +2 -1
- package/dist/virtual-list/index.cjs +2 -2
- package/dist/virtual-list/index.js +1 -1
- package/package.json +7 -2
- package/dist/chunk-25PSIDPC.js.map +0 -1
- package/dist/chunk-27ZWUEPE.js.map +0 -1
- package/dist/chunk-3E7TKBQI.cjs.map +0 -1
- package/dist/chunk-3EPND5M2.cjs.map +0 -1
- package/dist/chunk-3EUTXQDB.js.map +0 -1
- package/dist/chunk-55J4LEKT.cjs.map +0 -1
- package/dist/chunk-5HUZYY54.js.map +0 -1
- package/dist/chunk-5WH3JMR5.js.map +0 -1
- package/dist/chunk-6CPCNQKV.js.map +0 -1
- package/dist/chunk-7SVDYEKM.js.map +0 -1
- package/dist/chunk-ACNTH2OQ.cjs.map +0 -1
- package/dist/chunk-AOGNTG3W.cjs.map +0 -1
- package/dist/chunk-BNVQ34FD.js +0 -125
- package/dist/chunk-BNVQ34FD.js.map +0 -1
- package/dist/chunk-CJGFRPAS.cjs.map +0 -1
- package/dist/chunk-CUJBNRJJ.cjs +0 -38
- package/dist/chunk-CUJBNRJJ.cjs.map +0 -1
- package/dist/chunk-E6SE552P.cjs.map +0 -1
- package/dist/chunk-E7FGY7BJ.js.map +0 -1
- package/dist/chunk-EAJHEYZM.js +0 -38
- package/dist/chunk-EAJHEYZM.js.map +0 -1
- package/dist/chunk-FKXKBJUI.cjs.map +0 -1
- package/dist/chunk-FXZJL2AM.cjs.map +0 -1
- package/dist/chunk-GG5YGESX.js.map +0 -1
- package/dist/chunk-GPRJYPIG.js.map +0 -1
- package/dist/chunk-H6CWTMAH.js.map +0 -1
- package/dist/chunk-HALVTKW7.js.map +0 -1
- package/dist/chunk-I5XR2V4A.cjs.map +0 -1
- package/dist/chunk-IJ4DXG7D.cjs.map +0 -1
- package/dist/chunk-ITXDSQT2.js.map +0 -1
- package/dist/chunk-J5RMLZ4P.cjs.map +0 -1
- package/dist/chunk-JRLUZDKA.js.map +0 -1
- package/dist/chunk-K7T25Y3A.cjs.map +0 -1
- package/dist/chunk-L5Q6UDY3.js +0 -69
- package/dist/chunk-L5Q6UDY3.js.map +0 -1
- package/dist/chunk-M7PF4FKQ.js.map +0 -1
- package/dist/chunk-MCWTQT3M.cjs.map +0 -1
- package/dist/chunk-MHZIBV2C.js.map +0 -1
- package/dist/chunk-NEYLNRVG.cjs.map +0 -1
- package/dist/chunk-O3LG7B2J.cjs.map +0 -1
- package/dist/chunk-OAK7HFOJ.js.map +0 -1
- package/dist/chunk-OAPOGYA5.cjs.map +0 -1
- package/dist/chunk-OGC44JFZ.cjs.map +0 -1
- package/dist/chunk-OJDYTCMO.cjs.map +0 -1
- package/dist/chunk-P2JM22BF.cjs.map +0 -1
- package/dist/chunk-PY2376XI.js.map +0 -1
- package/dist/chunk-Q5KQVBQP.cjs.map +0 -1
- package/dist/chunk-QQIALSTX.cjs.map +0 -1
- package/dist/chunk-R4M6SNUU.cjs.map +0 -1
- package/dist/chunk-RYOQYYDO.js.map +0 -1
- package/dist/chunk-S4S4LB63.js.map +0 -1
- package/dist/chunk-SXGCRHBZ.js.map +0 -1
- package/dist/chunk-T2KB3DJJ.js.map +0 -1
- package/dist/chunk-TEVZHN5I.cjs.map +0 -1
- package/dist/chunk-TQGO5WK6.js.map +0 -1
- package/dist/chunk-VXO2MYYH.cjs +0 -125
- package/dist/chunk-VXO2MYYH.cjs.map +0 -1
- package/dist/chunk-WWYJNWJY.cjs +0 -69
- package/dist/chunk-WWYJNWJY.cjs.map +0 -1
- package/dist/chunk-YV57RSPD.js.map +0 -1
- package/dist/chunk-Z5U4NJTW.cjs.map +0 -1
- package/dist/chunk-ZNWIHUHZ.cjs.map +0 -1
- package/dist/chunk-ZWAFL2B3.cjs.map +0 -1
- package/dist/chunk-ZXJU3TQD.cjs.map +0 -1
- /package/dist/{chunk-GDQWSCJQ.js.map → chunk-26SO4LZ5.js.map} +0 -0
- /package/dist/{chunk-KQJ3IAFT.js.map → chunk-A3LMUPG3.js.map} +0 -0
- /package/dist/{chunk-O2AACVSF.js.map → chunk-AR2ZOO6L.js.map} +0 -0
- /package/dist/{chunk-L23WWO3D.js.map → chunk-GPVGGBIR.js.map} +0 -0
- /package/dist/{chunk-2QEKSRVX.js.map → chunk-HEX4IMLO.js.map} +0 -0
- /package/dist/{chunk-OU7DCYIA.js.map → chunk-O3QM3BFE.js.map} +0 -0
- /package/dist/{chunk-WKDT2XFQ.js.map → chunk-OOCCSMWM.js.map} +0 -0
- /package/dist/{chunk-L5W2XC6M.js.map → chunk-RHFD2Z5V.js.map} +0 -0
- /package/dist/{chunk-VPRUHE35.js.map → chunk-SFFKQQ5Z.js.map} +0 -0
package/README.md
CHANGED
|
@@ -189,6 +189,12 @@ npm install
|
|
|
189
189
|
npm run storybook
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
+
For accessibility, [ACCESSIBILITY.md](./ACCESSIBILITY.md) covers what is tested
|
|
193
|
+
against WCAG 2.2 AA and how, what remains the consuming application's
|
|
194
|
+
responsibility, and what has not been done. It does not claim a conformance
|
|
195
|
+
level - [WCAG §5.2.2](https://www.w3.org/TR/WCAG22/#cc2) defines conformance
|
|
196
|
+
for full pages, so no component library can have one.
|
|
197
|
+
|
|
192
198
|
## Theming
|
|
193
199
|
|
|
194
200
|
Every design token is a CSS custom property. There are two ways to change them, depending on whether the theme is fixed at build time or chosen by the user.
|
|
@@ -200,18 +206,24 @@ Redeclare any token in your own stylesheet:
|
|
|
200
206
|
```css
|
|
201
207
|
:root {
|
|
202
208
|
/* Colours - each family also has -dark, -light, -rgb and -contrast */
|
|
203
|
-
--primary-color: #
|
|
204
|
-
--secondary-color: #
|
|
209
|
+
--primary-color: #0f766e;
|
|
210
|
+
--secondary-color: #4b5563;
|
|
205
211
|
|
|
206
212
|
/* Spacing (em-based, so it scales with font size) */
|
|
207
|
-
--spacing-md: 1em;
|
|
208
|
-
--spacing-lg: 1.
|
|
213
|
+
--spacing-md: 1.1em;
|
|
214
|
+
--spacing-lg: 1.6em;
|
|
209
215
|
|
|
210
216
|
/* Border radius */
|
|
211
|
-
--border-radius-md:
|
|
217
|
+
--border-radius-md: 10px;
|
|
212
218
|
}
|
|
213
219
|
```
|
|
214
220
|
|
|
221
|
+
The values above are deliberately _not_ the defaults - this is what an override
|
|
222
|
+
looks like. For the shipped values, see **Foundations → Colour** (and Typography,
|
|
223
|
+
and Layout) in Storybook: those pages are generated from
|
|
224
|
+
`src/styles/variables.scss` at build time, so they are the one place a token
|
|
225
|
+
value is stated and the only place it cannot go stale.
|
|
226
|
+
|
|
215
227
|
Individual components can also be targeted directly, following each component's `eidos-<name>` BEM-style class names:
|
|
216
228
|
|
|
217
229
|
```css
|
|
@@ -21,6 +21,16 @@ interface BaseInputProps extends Omit<React__default.InputHTMLAttributes<HTMLInp
|
|
|
21
21
|
posIcon?: IconType;
|
|
22
22
|
posIconButton?: boolean;
|
|
23
23
|
onPosIconClick?: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Accessible name for the `posIconButton`. Required in practice whenever
|
|
26
|
+
* that button is rendered - an icon-only button with no name is announced
|
|
27
|
+
* as just "button", and only the caller knows what the icon means.
|
|
28
|
+
*
|
|
29
|
+
* Omitting it logs a `devWarn` and falls back to a generic name, rather
|
|
30
|
+
* than throwing or silently shipping a nameless control. It is optional
|
|
31
|
+
* only to avoid a breaking change; treat it as required.
|
|
32
|
+
*/
|
|
33
|
+
posIconLabel?: string;
|
|
24
34
|
required?: boolean;
|
|
25
35
|
isSelect?: boolean;
|
|
26
36
|
clearable?: boolean;
|
|
@@ -21,6 +21,16 @@ interface BaseInputProps extends Omit<React__default.InputHTMLAttributes<HTMLInp
|
|
|
21
21
|
posIcon?: IconType;
|
|
22
22
|
posIconButton?: boolean;
|
|
23
23
|
onPosIconClick?: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Accessible name for the `posIconButton`. Required in practice whenever
|
|
26
|
+
* that button is rendered - an icon-only button with no name is announced
|
|
27
|
+
* as just "button", and only the caller knows what the icon means.
|
|
28
|
+
*
|
|
29
|
+
* Omitting it logs a `devWarn` and falls back to a generic name, rather
|
|
30
|
+
* than throwing or silently shipping a nameless control. It is optional
|
|
31
|
+
* only to avoid a breaking change; treat it as required.
|
|
32
|
+
*/
|
|
33
|
+
posIconLabel?: string;
|
|
24
34
|
required?: boolean;
|
|
25
35
|
isSelect?: boolean;
|
|
26
36
|
clearable?: boolean;
|
|
@@ -32,6 +32,15 @@ interface MenuProps {
|
|
|
32
32
|
items: MenuItemType[];
|
|
33
33
|
className?: string;
|
|
34
34
|
onItemClick?: (item: MenuItem) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Called when the panel asks to be dismissed - `ArrowLeft` in a submenu,
|
|
37
|
+
* which the ARIA menu pattern defines as "close this level and return to the
|
|
38
|
+
* item that opened it".
|
|
39
|
+
*
|
|
40
|
+
* A panel cannot close the overlay that holds it, so whoever renders it owns
|
|
41
|
+
* this.
|
|
42
|
+
*/
|
|
43
|
+
onRequestClose?: () => void;
|
|
35
44
|
}
|
|
36
45
|
interface MenuWrapperProps {
|
|
37
46
|
trigger: React__default.ReactNode;
|
|
@@ -32,6 +32,15 @@ interface MenuProps {
|
|
|
32
32
|
items: MenuItemType[];
|
|
33
33
|
className?: string;
|
|
34
34
|
onItemClick?: (item: MenuItem) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Called when the panel asks to be dismissed - `ArrowLeft` in a submenu,
|
|
37
|
+
* which the ARIA menu pattern defines as "close this level and return to the
|
|
38
|
+
* item that opened it".
|
|
39
|
+
*
|
|
40
|
+
* A panel cannot close the overlay that holds it, so whoever renders it owns
|
|
41
|
+
* this.
|
|
42
|
+
*/
|
|
43
|
+
onRequestClose?: () => void;
|
|
35
44
|
}
|
|
36
45
|
interface MenuWrapperProps {
|
|
37
46
|
trigger: React__default.ReactNode;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as InputProps } from './Input.types-
|
|
1
|
+
import { a as InputProps } from './Input.types-CSDMaZNe.js';
|
|
2
2
|
import { I as IconType } from './renderIcon-C2lEMMzb.js';
|
|
3
3
|
|
|
4
4
|
interface SelectOption {
|
|
@@ -16,6 +16,16 @@ interface SelectProps {
|
|
|
16
16
|
defaultValue?: string | string[];
|
|
17
17
|
onChange?: (value: string | string[]) => void;
|
|
18
18
|
multiple?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Visible label, rendered as a real `<label>` bound to the field - the same
|
|
21
|
+
* prop `Input`, `Checkbox`, `Radio` and `Textarea` take.
|
|
22
|
+
*
|
|
23
|
+
* For a field that must stay visually unlabelled, pass
|
|
24
|
+
* `inputProps={{ 'aria-label': '…' }}` instead. One of the two is needed: a
|
|
25
|
+
* `placeholder` is not a label, since it disappears as soon as a value is
|
|
26
|
+
* chosen. Omitting both logs a development warning.
|
|
27
|
+
*/
|
|
28
|
+
label?: string;
|
|
19
29
|
placeholder?: string;
|
|
20
30
|
disabled?: boolean;
|
|
21
31
|
className?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as InputProps } from './Input.types-
|
|
1
|
+
import { a as InputProps } from './Input.types-D7-sWq-q.cjs';
|
|
2
2
|
import { I as IconType } from './renderIcon-C2lEMMzb.cjs';
|
|
3
3
|
|
|
4
4
|
interface SelectOption {
|
|
@@ -16,6 +16,16 @@ interface SelectProps {
|
|
|
16
16
|
defaultValue?: string | string[];
|
|
17
17
|
onChange?: (value: string | string[]) => void;
|
|
18
18
|
multiple?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Visible label, rendered as a real `<label>` bound to the field - the same
|
|
21
|
+
* prop `Input`, `Checkbox`, `Radio` and `Textarea` take.
|
|
22
|
+
*
|
|
23
|
+
* For a field that must stay visually unlabelled, pass
|
|
24
|
+
* `inputProps={{ 'aria-label': '…' }}` instead. One of the two is needed: a
|
|
25
|
+
* `placeholder` is not a label, since it disappears as soon as a value is
|
|
26
|
+
* chosen. Omitting both logs a development warning.
|
|
27
|
+
*/
|
|
28
|
+
label?: string;
|
|
19
29
|
placeholder?: string;
|
|
20
30
|
disabled?: boolean;
|
|
21
31
|
className?: string;
|
|
@@ -130,9 +130,8 @@ interface TableValueColumn<T extends object, K extends RowKey<T>> extends TableC
|
|
|
130
130
|
* `data-col-key`.
|
|
131
131
|
*
|
|
132
132
|
* `'icon'` and `'action'` carry their existing cell styling; `'custom'` styles
|
|
133
|
-
* like a normal data cell but takes a free-form key,
|
|
134
|
-
*
|
|
135
|
-
* that didn't exist).
|
|
133
|
+
* like a normal data cell but takes a free-form key, for a derived column
|
|
134
|
+
* whose content comes from several fields or from none.
|
|
136
135
|
*/
|
|
137
136
|
interface TableCustomColumn<T extends object> extends TableColumnCommon {
|
|
138
137
|
/** Free-form - must only be unique within `columns`. */
|
|
@@ -130,9 +130,8 @@ interface TableValueColumn<T extends object, K extends RowKey<T>> extends TableC
|
|
|
130
130
|
* `data-col-key`.
|
|
131
131
|
*
|
|
132
132
|
* `'icon'` and `'action'` carry their existing cell styling; `'custom'` styles
|
|
133
|
-
* like a normal data cell but takes a free-form key,
|
|
134
|
-
*
|
|
135
|
-
* that didn't exist).
|
|
133
|
+
* like a normal data cell but takes a free-form key, for a derived column
|
|
134
|
+
* whose content comes from several fields or from none.
|
|
136
135
|
*/
|
|
137
136
|
interface TableCustomColumn<T extends object> extends TableColumnCommon {
|
|
138
137
|
/** Free-form - must only be unique within `columns`. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as BreadcrumbProps } from './Breadcrumb.types-DaykU-C8.js';
|
|
2
2
|
import { b as AvatarProps } from './Avatar.types-BY-C09Ke.js';
|
|
3
3
|
import { I as IconButtonProps } from './Button.types-BH0CPyPx.js';
|
|
4
|
-
import { b as MenuItemType } from './Menu.types-
|
|
4
|
+
import { b as MenuItemType } from './Menu.types-BN4g1-3A.js';
|
|
5
5
|
import { C as CommandItem } from './CommandPalette.types-DRMMS_ev.js';
|
|
6
6
|
|
|
7
7
|
interface ToolbarProps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as BreadcrumbProps } from './Breadcrumb.types-DaykU-C8.cjs';
|
|
2
2
|
import { b as AvatarProps } from './Avatar.types-BY-C09Ke.cjs';
|
|
3
3
|
import { I as IconButtonProps } from './Button.types-DZRCVqyN.cjs';
|
|
4
|
-
import { b as MenuItemType } from './Menu.types-
|
|
4
|
+
import { b as MenuItemType } from './Menu.types-CTnUijv5.cjs';
|
|
5
5
|
import { C as CommandItem } from './CommandPalette.types-DRMMS_ev.cjs';
|
|
6
6
|
|
|
7
7
|
interface ToolbarProps {
|
package/dist/alert/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunk3RWZC6OWcjs = require('../chunk-3RWZC6OW.cjs');
|
|
4
|
+
require('../chunk-DA375AI6.cjs');
|
|
5
5
|
require('../chunk-I6UOIS4J.cjs');
|
|
6
|
-
require('../chunk-
|
|
7
|
-
require('../chunk-
|
|
6
|
+
require('../chunk-BEOECPVJ.cjs');
|
|
7
|
+
require('../chunk-35LGEPLP.cjs');
|
|
8
8
|
require('../chunk-DZUJEN5N.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.Alert =
|
|
11
|
+
exports.Alert = _chunk3RWZC6OWcjs.Alert;
|
|
12
12
|
//# sourceMappingURL=index.cjs.map
|
package/dist/alert/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Alert
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-AR2ZOO6L.js";
|
|
4
|
+
import "../chunk-75GFIQRU.js";
|
|
5
5
|
import "../chunk-66R54X6R.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-JNY7TUDS.js";
|
|
7
|
+
import "../chunk-RHHZRTWM.js";
|
|
8
8
|
import "../chunk-5WRI5ZAA.js";
|
|
9
9
|
export {
|
|
10
10
|
Alert
|
package/dist/button/index.cjs
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkDA375AI6cjs = require('../chunk-DA375AI6.cjs');
|
|
6
6
|
require('../chunk-I6UOIS4J.cjs');
|
|
7
|
-
require('../chunk-
|
|
8
|
-
require('../chunk-
|
|
7
|
+
require('../chunk-BEOECPVJ.cjs');
|
|
8
|
+
require('../chunk-35LGEPLP.cjs');
|
|
9
9
|
require('../chunk-DZUJEN5N.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
exports.Button =
|
|
13
|
+
exports.Button = _chunkDA375AI6cjs.Button; exports.IconButton = _chunkDA375AI6cjs.IconButton;
|
|
14
14
|
//# sourceMappingURL=index.cjs.map
|
package/dist/button/index.js
CHANGED
|
@@ -2,10 +2,10 @@ import "../chunk-N5JDL4VE.js";
|
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
IconButton
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-75GFIQRU.js";
|
|
6
6
|
import "../chunk-66R54X6R.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-JNY7TUDS.js";
|
|
8
|
+
import "../chunk-RHHZRTWM.js";
|
|
9
9
|
import "../chunk-5WRI5ZAA.js";
|
|
10
10
|
export {
|
|
11
11
|
Button,
|
package/dist/checkbox/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-SWPZ3HFY.cjs');
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkYJNQLH2Lcjs = require('../chunk-YJNQLH2L.cjs');
|
|
5
5
|
require('../chunk-DZUJEN5N.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
exports.Checkbox =
|
|
8
|
+
exports.Checkbox = _chunkYJNQLH2Lcjs.Checkbox;
|
|
9
9
|
//# sourceMappingURL=index.cjs.map
|
package/dist/checkbox/index.js
CHANGED
package/dist/chip/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-FQZ6F7FQ.cjs');
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
4
|
+
var _chunkTTLFY76Jcjs = require('../chunk-TTLFY76J.cjs');
|
|
5
|
+
require('../chunk-BEOECPVJ.cjs');
|
|
6
|
+
require('../chunk-35LGEPLP.cjs');
|
|
7
7
|
require('../chunk-DZUJEN5N.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.Chip =
|
|
10
|
+
exports.Chip = _chunkTTLFY76Jcjs.Chip;
|
|
11
11
|
//# sourceMappingURL=index.cjs.map
|
package/dist/chip/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../chunk-TPNCV7KA.js";
|
|
2
2
|
import {
|
|
3
3
|
Chip
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-GWHZFX2H.js";
|
|
5
|
+
import "../chunk-JNY7TUDS.js";
|
|
6
|
+
import "../chunk-RHHZRTWM.js";
|
|
7
7
|
import "../chunk-5WRI5ZAA.js";
|
|
8
8
|
export {
|
|
9
9
|
Chip
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Chip
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GWHZFX2H.js";
|
|
4
4
|
import {
|
|
5
5
|
Dropdown
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JHX6JK3M.js";
|
|
7
7
|
|
|
8
8
|
// src/components/TagInput/TagInput.component.tsx
|
|
9
9
|
import { useState, useId, useRef, useCallback, useMemo, useEffect } from "react";
|
|
@@ -34,11 +34,12 @@ var TagInput = ({
|
|
|
34
34
|
const inputRef = useRef(null);
|
|
35
35
|
const containerRef = useRef(null);
|
|
36
36
|
const fieldRef = useRef(null);
|
|
37
|
-
const dropdownSpanRef = useRef(null);
|
|
38
37
|
const hasSuggestions = suggestions !== void 0;
|
|
39
|
-
const isSuggestionsOpenRef = useRef(false);
|
|
40
38
|
const [isSuggestionsOpen, setIsSuggestionsOpen] = useState(false);
|
|
41
|
-
const
|
|
39
|
+
const isSuggestionsOpenRef = useRef(isSuggestionsOpen);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
isSuggestionsOpenRef.current = isSuggestionsOpen;
|
|
42
|
+
}, [isSuggestionsOpen]);
|
|
42
43
|
const [focusedSuggestionIndex, setFocusedSuggestionIndex] = useState(-1);
|
|
43
44
|
const isControlled = value !== void 0;
|
|
44
45
|
const [internalTags, setInternalTags] = useState(defaultValue);
|
|
@@ -95,7 +96,6 @@ var TagInput = ({
|
|
|
95
96
|
}, [filteredSuggestions]);
|
|
96
97
|
const openSuggestions = useCallback(() => {
|
|
97
98
|
if (isSuggestionsOpenRef.current || disabled || !hasSuggestions) return;
|
|
98
|
-
dropdownSpanRef.current?.click();
|
|
99
99
|
isSuggestionsOpenRef.current = true;
|
|
100
100
|
setIsSuggestionsOpen(true);
|
|
101
101
|
}, [disabled, hasSuggestions]);
|
|
@@ -103,7 +103,6 @@ var TagInput = ({
|
|
|
103
103
|
isSuggestionsOpenRef.current = false;
|
|
104
104
|
setIsSuggestionsOpen(false);
|
|
105
105
|
setFocusedSuggestionIndex(-1);
|
|
106
|
-
setSuggestionsMenuKey((prev) => prev + 1);
|
|
107
106
|
}, []);
|
|
108
107
|
const selectSuggestion = useCallback(
|
|
109
108
|
(suggestion) => {
|
|
@@ -195,100 +194,93 @@ var TagInput = ({
|
|
|
195
194
|
disabled && "eidos-tag-input-field--disabled"
|
|
196
195
|
].filter(Boolean).join(" ");
|
|
197
196
|
const uid = generatedId;
|
|
198
|
-
return
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
"
|
|
204
|
-
"
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
"
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
hint && !hasError && /* @__PURE__ */ jsx("p", { className: "eidos-tag-input-hint", id: hintId, children: hint }),
|
|
286
|
-
hasError && /* @__PURE__ */ jsxs("p", { className: "eidos-tag-input-error-message", id: errorId, role: "alert", children: [
|
|
287
|
-
/* @__PURE__ */ jsx(CircleAlert, {}),
|
|
288
|
-
displayError
|
|
289
|
-
] })
|
|
290
|
-
]
|
|
291
|
-
}
|
|
197
|
+
return (
|
|
198
|
+
// No ARIA on this wrapper - it has no role, so `aria-expanded` and
|
|
199
|
+
// `aria-haspopup` were invalid here. Same fix as `Combobox`: they belong
|
|
200
|
+
// on the input, which is the combobox.
|
|
201
|
+
/* @__PURE__ */ jsxs("div", { className: containerClasses, ref: containerRef, children: [
|
|
202
|
+
label && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "eidos-tag-input-label", children: label }),
|
|
203
|
+
/* @__PURE__ */ jsxs("div", { className: fieldClasses, onClick: handleFieldClick, ref: fieldRef, children: [
|
|
204
|
+
tags.map((tag, index) => /* @__PURE__ */ jsx(
|
|
205
|
+
Chip,
|
|
206
|
+
{
|
|
207
|
+
variant: "filled",
|
|
208
|
+
color: "primary",
|
|
209
|
+
size,
|
|
210
|
+
onRemove: disabled ? void 0 : () => removeTag(index),
|
|
211
|
+
children: tag
|
|
212
|
+
},
|
|
213
|
+
`${tag}-${index}`
|
|
214
|
+
)),
|
|
215
|
+
/* @__PURE__ */ jsx(
|
|
216
|
+
"input",
|
|
217
|
+
{
|
|
218
|
+
ref: inputRef,
|
|
219
|
+
id: inputId,
|
|
220
|
+
className: "eidos-tag-input-input",
|
|
221
|
+
type: "text",
|
|
222
|
+
value: inputValue,
|
|
223
|
+
placeholder: tags.length === 0 ? placeholder : void 0,
|
|
224
|
+
disabled,
|
|
225
|
+
onKeyDown: handleKeyDown,
|
|
226
|
+
onChange: handleInputChange,
|
|
227
|
+
onFocus: handleInputFocus,
|
|
228
|
+
onBlur: () => setIsFocused(false),
|
|
229
|
+
"aria-label": label ? void 0 : "Tag input",
|
|
230
|
+
"aria-invalid": hasError ? true : void 0,
|
|
231
|
+
"aria-describedby": hasError ? errorId : hint ? hintId : void 0,
|
|
232
|
+
role: hasSuggestions ? "combobox" : void 0,
|
|
233
|
+
"aria-expanded": hasSuggestions ? isSuggestionsOpen : void 0,
|
|
234
|
+
"aria-autocomplete": hasSuggestions ? "list" : void 0,
|
|
235
|
+
"aria-controls": hasSuggestions && isSuggestionsOpen ? `${uid}-tag-suggestions` : void 0,
|
|
236
|
+
"aria-activedescendant": hasSuggestions && focusedSuggestionIndex >= 0 ? `${uid}-tag-suggestion-${focusedSuggestionIndex}` : void 0
|
|
237
|
+
}
|
|
238
|
+
),
|
|
239
|
+
hasSuggestions && /* @__PURE__ */ jsx(
|
|
240
|
+
Dropdown,
|
|
241
|
+
{
|
|
242
|
+
open: isSuggestionsOpen,
|
|
243
|
+
onOpenChange: setIsSuggestionsOpen,
|
|
244
|
+
trigger: /* @__PURE__ */ jsx("span", { className: "eidos-tag-input-dropdown-anchor", "aria-hidden": "true" }),
|
|
245
|
+
content: /* @__PURE__ */ jsx(
|
|
246
|
+
"div",
|
|
247
|
+
{
|
|
248
|
+
id: `${uid}-tag-suggestions`,
|
|
249
|
+
className: "eidos-tag-input-suggestions",
|
|
250
|
+
role: "listbox",
|
|
251
|
+
"aria-label": label ?? "Suggestions",
|
|
252
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
253
|
+
children: filteredSuggestions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "eidos-tag-input-suggestions-empty", children: suggestionsEmptyText }) : filteredSuggestions.map((suggestion, index) => /* @__PURE__ */ jsx(
|
|
254
|
+
"div",
|
|
255
|
+
{
|
|
256
|
+
id: `${uid}-tag-suggestion-${index}`,
|
|
257
|
+
className: [
|
|
258
|
+
"eidos-tag-input-suggestion",
|
|
259
|
+
index === focusedSuggestionIndex && "eidos-tag-input-suggestion--focused"
|
|
260
|
+
].filter(Boolean).join(" "),
|
|
261
|
+
role: "option",
|
|
262
|
+
"aria-selected": index === focusedSuggestionIndex,
|
|
263
|
+
onClick: () => selectSuggestion(suggestion),
|
|
264
|
+
onMouseEnter: () => setFocusedSuggestionIndex(index),
|
|
265
|
+
children: suggestion
|
|
266
|
+
},
|
|
267
|
+
suggestion
|
|
268
|
+
))
|
|
269
|
+
}
|
|
270
|
+
),
|
|
271
|
+
triggerRef: fieldRef,
|
|
272
|
+
autoWidth: true,
|
|
273
|
+
closeOnClickOutside: false,
|
|
274
|
+
closeOnEscape: false
|
|
275
|
+
}
|
|
276
|
+
)
|
|
277
|
+
] }),
|
|
278
|
+
hint && !hasError && /* @__PURE__ */ jsx("p", { className: "eidos-tag-input-hint", id: hintId, children: hint }),
|
|
279
|
+
hasError && /* @__PURE__ */ jsxs("p", { className: "eidos-tag-input-error-message", id: errorId, role: "alert", children: [
|
|
280
|
+
/* @__PURE__ */ jsx(CircleAlert, {}),
|
|
281
|
+
displayError
|
|
282
|
+
] })
|
|
283
|
+
] })
|
|
292
284
|
);
|
|
293
285
|
};
|
|
294
286
|
TagInput.displayName = "TagInput";
|
|
@@ -296,4 +288,4 @@ TagInput.displayName = "TagInput";
|
|
|
296
288
|
export {
|
|
297
289
|
TagInput
|
|
298
290
|
};
|
|
299
|
-
//# sourceMappingURL=chunk-
|
|
291
|
+
//# sourceMappingURL=chunk-24HKKSKX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagInput/TagInput.component.tsx"],"sourcesContent":["import React, { useState, useId, useRef, useCallback, useMemo, useEffect } from 'react';\nimport { CircleAlert } from 'lucide-react';\nimport { Chip } from '../Chip/Chip.component';\nimport { Dropdown } from '../Dropdown/Dropdown.component';\nimport type { TagInputProps } from './TagInput.types';\nimport './TagInput.scss';\n\nexport const TagInput: React.FC<TagInputProps> = ({\n value,\n defaultValue = [],\n onChange,\n placeholder = 'Add tag…',\n size = 'md',\n disabled = false,\n label,\n error,\n hint,\n allowDuplicates = false,\n maxTags,\n separators = ['Enter', ',', 'Tab'],\n validate,\n className = '',\n fullWidth = false,\n suggestions,\n onSearch,\n suggestionsEmptyText = 'No matches',\n}) => {\n const generatedId = useId();\n const inputId = `tag-input-${generatedId}`;\n const inputRef = useRef<HTMLInputElement>(null);\n\n /** Entire component wrapper - used for click-outside detection on the suggestions dropdown */\n const containerRef = useRef<HTMLDivElement>(null);\n\n /** The field wrapper - passed to Dropdown as externalTriggerRef for width/anchoring */\n const fieldRef = useRef<HTMLDivElement>(null);\n\n /** The 0-height span that IS the Dropdown trigger element - programmatically clicked to open */\n\n const hasSuggestions = suggestions !== undefined;\n const [isSuggestionsOpen, setIsSuggestionsOpen] = useState(false);\n // Read synchronously by the document `mousedown` listener and the key\n // handlers, where a value captured at render would be stale. Kept in step by\n // an effect rather than assigned at every call site, which is how the two\n // used to drift apart.\n const isSuggestionsOpenRef = useRef(isSuggestionsOpen);\n useEffect(() => {\n isSuggestionsOpenRef.current = isSuggestionsOpen;\n }, [isSuggestionsOpen]);\n const [focusedSuggestionIndex, setFocusedSuggestionIndex] = useState(-1);\n\n const isControlled = value !== undefined;\n\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue);\n const [inputValue, setInputValue] = useState('');\n const [isFocused, setIsFocused] = useState(false);\n const [validationError, setValidationError] = useState<string | null>(null);\n\n const tags = isControlled ? (value as string[]) : internalTags;\n\n const updateTags = useCallback(\n (newTags: string[]) => {\n if (!isControlled) {\n setInternalTags(newTags);\n }\n onChange?.(newTags);\n },\n [isControlled, onChange],\n );\n\n const addTag = useCallback(\n (rawTag: string) => {\n const tag = rawTag.trim();\n\n if (!tag) return;\n\n if (!allowDuplicates && tags.includes(tag)) return;\n\n if (maxTags !== undefined && tags.length >= maxTags) return;\n\n if (validate) {\n const result = validate(tag);\n if (result === false) return;\n if (typeof result === 'string') {\n setValidationError(result);\n return;\n }\n // result === true → valid, fall through\n }\n\n setValidationError(null);\n updateTags([...tags, tag]);\n setInputValue('');\n },\n [tags, allowDuplicates, maxTags, validate, updateTags],\n );\n\n const removeTag = useCallback(\n (index: number) => {\n updateTags(tags.filter((_, i) => i !== index));\n },\n [tags, updateTags],\n );\n\n // ─── Suggestions dropdown (autocomplete) ───────────────────────────────────\n\n const filteredSuggestions = useMemo<string[]>(() => {\n if (!suggestions) return [];\n const query = inputValue.trim().toLowerCase();\n return suggestions.filter((suggestion) => {\n if (!allowDuplicates && tags.includes(suggestion)) return false;\n if (!query) return true;\n return suggestion.toLowerCase().includes(query);\n });\n }, [suggestions, inputValue, tags, allowDuplicates]);\n\n useEffect(() => {\n setFocusedSuggestionIndex(-1);\n }, [filteredSuggestions]);\n\n const openSuggestions = useCallback(() => {\n if (isSuggestionsOpenRef.current || disabled || !hasSuggestions) return;\n // This used to synthesise a click on a hidden zero-height `span` so that it\n // would bubble to the dropdown's trigger wrapper - the only way in, while\n // the overlay owned its open state privately.\n isSuggestionsOpenRef.current = true;\n setIsSuggestionsOpen(true);\n }, [disabled, hasSuggestions]);\n\n const closeSuggestions = useCallback(() => {\n isSuggestionsOpenRef.current = false;\n setIsSuggestionsOpen(false);\n setFocusedSuggestionIndex(-1);\n }, []);\n\n const selectSuggestion = useCallback(\n (suggestion: string) => {\n addTag(suggestion);\n closeSuggestions();\n inputRef.current?.focus();\n },\n [addTag, closeSuggestions],\n );\n\n // Click-outside detection for the suggestions dropdown.\n useEffect(() => {\n if (!hasSuggestions) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (!isSuggestionsOpenRef.current) return;\n if (e.defaultPrevented) return; // click inside the portal-rendered listbox\n if (containerRef.current?.contains(e.target as Node)) return;\n closeSuggestions();\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => document.removeEventListener('mousedown', handleMouseDown);\n }, [hasSuggestions, closeSuggestions]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (hasSuggestions && isSuggestionsOpenRef.current && filteredSuggestions.length > 0) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setFocusedSuggestionIndex((prev) => (prev + 1 < filteredSuggestions.length ? prev + 1 : 0));\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n setFocusedSuggestionIndex((prev) => (prev > 0 ? prev - 1 : filteredSuggestions.length - 1));\n return;\n }\n if (e.key === 'Enter' && focusedSuggestionIndex >= 0) {\n e.preventDefault();\n selectSuggestion(filteredSuggestions[focusedSuggestionIndex]);\n return;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n closeSuggestions();\n return;\n }\n }\n\n if (separators.includes(e.key)) {\n e.preventDefault();\n addTag(inputValue);\n return;\n }\n\n if (e.key === 'Backspace' && inputValue === '' && tags.length > 0) {\n e.preventDefault();\n removeTag(tags.length - 1);\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const query = e.target.value;\n setInputValue(query);\n if (validationError) {\n setValidationError(null);\n }\n onSearch?.(query);\n if (hasSuggestions && !isSuggestionsOpenRef.current) openSuggestions();\n };\n\n const handleInputFocus = () => {\n setIsFocused(true);\n if (hasSuggestions) openSuggestions();\n };\n\n const handleFieldClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // Don't steal focus from interactive child elements\n if ((e.target as HTMLElement).closest('button, input')) return;\n if (!disabled) {\n inputRef.current?.focus();\n }\n };\n\n const displayError = validationError ?? error;\n const hasError = !!displayError;\n const errorId = `${inputId}-error`;\n const hintId = `${inputId}-hint`;\n\n const containerClasses = [\n 'eidos-tag-input',\n hasError && 'eidos-tag-input--error',\n disabled && 'eidos-tag-input--disabled',\n fullWidth && 'eidos-tag-input--full-width',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const fieldClasses = [\n 'eidos-tag-input-field',\n `eidos-tag-input-field--${size}`,\n isFocused && 'eidos-tag-input-field--focused',\n hasError && 'eidos-tag-input-field--error',\n disabled && 'eidos-tag-input-field--disabled',\n ]\n .filter(Boolean)\n .join(' ');\n\n const uid = generatedId;\n\n return (\n // No ARIA on this wrapper - it has no role, so `aria-expanded` and\n // `aria-haspopup` were invalid here. Same fix as `Combobox`: they belong\n // on the input, which is the combobox.\n <div className={containerClasses} ref={containerRef}>\n {label && (\n <label htmlFor={inputId} className=\"eidos-tag-input-label\">\n {label}\n </label>\n )}\n\n <div className={fieldClasses} onClick={handleFieldClick} ref={fieldRef}>\n {tags.map((tag, index) => (\n <Chip\n key={`${tag}-${index}`}\n variant=\"filled\"\n color=\"primary\"\n size={size}\n onRemove={disabled ? undefined : () => removeTag(index)}\n >\n {tag}\n </Chip>\n ))}\n\n <input\n ref={inputRef}\n id={inputId}\n className=\"eidos-tag-input-input\"\n type=\"text\"\n value={inputValue}\n placeholder={tags.length === 0 ? placeholder : undefined}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={() => setIsFocused(false)}\n aria-label={label ? undefined : 'Tag input'}\n aria-invalid={hasError ? true : undefined}\n // The ternary is deliberate, not a bug: the hint is unmounted when\n // an error shows (see the render below), so describing the field\n // with it would point at an element that is not there.\n aria-describedby={hasError ? errorId : hint ? hintId : undefined}\n role={hasSuggestions ? 'combobox' : undefined}\n aria-expanded={hasSuggestions ? isSuggestionsOpen : undefined}\n aria-autocomplete={hasSuggestions ? 'list' : undefined}\n // Only while the list is actually rendered - `aria-controls` must\n // name an element that exists.\n aria-controls={hasSuggestions && isSuggestionsOpen ? `${uid}-tag-suggestions` : undefined}\n aria-activedescendant={\n hasSuggestions && focusedSuggestionIndex >= 0\n ? `${uid}-tag-suggestion-${focusedSuggestionIndex}`\n : undefined\n }\n />\n\n {hasSuggestions && (\n <Dropdown\n open={isSuggestionsOpen}\n onOpenChange={setIsSuggestionsOpen}\n // Positioning is anchored to the field via `triggerRef` below; this\n // span is only here because a trigger is required. It used to carry\n // a ref purely so `openSuggestions` could click it.\n trigger={<span className=\"eidos-tag-input-dropdown-anchor\" aria-hidden=\"true\" />}\n content={\n <div\n id={`${uid}-tag-suggestions`}\n className=\"eidos-tag-input-suggestions\"\n role=\"listbox\"\n aria-label={label ?? 'Suggestions'}\n onMouseDown={(e) => e.preventDefault()}\n >\n {filteredSuggestions.length === 0 ? (\n <div className=\"eidos-tag-input-suggestions-empty\">{suggestionsEmptyText}</div>\n ) : (\n filteredSuggestions.map((suggestion, index) => (\n <div\n key={suggestion}\n id={`${uid}-tag-suggestion-${index}`}\n className={[\n 'eidos-tag-input-suggestion',\n index === focusedSuggestionIndex && 'eidos-tag-input-suggestion--focused',\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"option\"\n aria-selected={index === focusedSuggestionIndex}\n onClick={() => selectSuggestion(suggestion)}\n onMouseEnter={() => setFocusedSuggestionIndex(index)}\n >\n {suggestion}\n </div>\n ))\n )}\n </div>\n }\n triggerRef={fieldRef as React.RefObject<HTMLElement | null>}\n autoWidth\n closeOnClickOutside={false}\n closeOnEscape={false}\n />\n )}\n </div>\n\n {hint && !hasError && (\n <p className=\"eidos-tag-input-hint\" id={hintId}>\n {hint}\n </p>\n )}\n\n {hasError && (\n <p className=\"eidos-tag-input-error-message\" id={errorId} role=\"alert\">\n <CircleAlert />\n {displayError}\n </p>\n )}\n </div>\n );\n};\n\nTagInput.displayName = 'TagInput';\n"],"mappings":"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","names":[]}
|