@fangxinyan/lumina 0.5.1 → 0.6.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/dist/Accordion.cjs +3 -3
- package/dist/Accordion.d.cts +2 -2
- package/dist/Accordion.d.ts +2 -2
- package/dist/Accordion.js +2 -2
- package/dist/Alert.cjs +3 -3
- package/dist/Alert.d.cts +2 -2
- package/dist/Alert.d.ts +2 -2
- package/dist/Alert.js +2 -2
- package/dist/AppShell.cjs +5 -5
- package/dist/AppShell.d.cts +8 -8
- package/dist/AppShell.d.ts +8 -8
- package/dist/AppShell.js +1 -1
- package/dist/AutoComplete.cjs +4 -4
- package/dist/AutoComplete.d.cts +1 -4
- package/dist/AutoComplete.d.ts +1 -4
- package/dist/AutoComplete.js +3 -3
- package/dist/Avatar.cjs +2 -2
- package/dist/Avatar.d.cts +1 -1
- package/dist/Avatar.d.ts +1 -1
- package/dist/Avatar.js +1 -1
- package/dist/Button.cjs +4 -4
- package/dist/Button.js +2 -2
- package/dist/Calendar.cjs +3 -3
- package/dist/Calendar.d.cts +2 -2
- package/dist/Calendar.d.ts +2 -2
- package/dist/Calendar.js +2 -2
- package/dist/Cascader.cjs +3 -3
- package/dist/Cascader.d.cts +2 -2
- package/dist/Cascader.d.ts +2 -2
- package/dist/Cascader.js +2 -2
- package/dist/Checkbox.cjs +4 -4
- package/dist/Checkbox.d.cts +5 -5
- package/dist/Checkbox.d.ts +5 -5
- package/dist/Checkbox.js +2 -2
- package/dist/ColorPicker.cjs +2 -2
- package/dist/ColorPicker.d.cts +1 -3
- package/dist/ColorPicker.d.ts +1 -3
- package/dist/ColorPicker.js +1 -1
- package/dist/CommandPalette.cjs +4 -4
- package/dist/CommandPalette.d.cts +2 -2
- package/dist/CommandPalette.d.ts +2 -2
- package/dist/CommandPalette.js +3 -3
- package/dist/ContextMenu.cjs +2 -2
- package/dist/ContextMenu.d.cts +2 -2
- package/dist/ContextMenu.d.ts +2 -2
- package/dist/ContextMenu.js +1 -1
- package/dist/Divider.cjs +2 -2
- package/dist/Divider.d.cts +1 -1
- package/dist/Divider.d.ts +1 -1
- package/dist/Divider.js +1 -1
- package/dist/Drawer.cjs +3 -3
- package/dist/Drawer.d.cts +2 -2
- package/dist/Drawer.d.ts +2 -2
- package/dist/Drawer.js +2 -2
- package/dist/Empty.cjs +4 -4
- package/dist/Empty.d.cts +6 -6
- package/dist/Empty.d.ts +6 -6
- package/dist/Empty.js +1 -1
- package/dist/Form.cjs +4 -4
- package/dist/Form.d.cts +2 -2
- package/dist/Form.d.ts +2 -2
- package/dist/Form.js +1 -1
- package/dist/Icon.cjs +3 -3
- package/dist/Icon.d.cts +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js +1 -1
- package/dist/Image.cjs +4 -4
- package/dist/Image.d.cts +4 -4
- package/dist/Image.d.ts +4 -4
- package/dist/Image.js +2 -2
- package/dist/Input.cjs +4 -4
- package/dist/Input.js +2 -2
- package/dist/InputNumber.cjs +4 -4
- package/dist/InputNumber.d.cts +1 -5
- package/dist/InputNumber.d.ts +1 -5
- package/dist/InputNumber.js +3 -3
- package/dist/List.cjs +2 -2
- package/dist/List.d.cts +2 -2
- package/dist/List.d.ts +2 -2
- package/dist/List.js +1 -1
- package/dist/Modal.cjs +4 -4
- package/dist/Modal.d.cts +2 -2
- package/dist/Modal.d.ts +2 -2
- package/dist/Modal.js +3 -3
- package/dist/Pagination.cjs +5 -5
- package/dist/Pagination.d.cts +2 -2
- package/dist/Pagination.d.ts +2 -2
- package/dist/Pagination.js +4 -4
- package/dist/Popover.cjs +2 -2
- package/dist/Popover.d.cts +2 -2
- package/dist/Popover.d.ts +2 -2
- package/dist/Popover.js +1 -1
- package/dist/Progress-CHV7DN6Y.css +80 -0
- package/dist/Progress.cjs +2 -6
- package/dist/Progress.d.cts +5 -13
- package/dist/Progress.d.ts +5 -13
- package/dist/Progress.js +1 -1
- package/dist/Select.cjs +4 -4
- package/dist/Select.d.cts +6 -3
- package/dist/Select.d.ts +6 -3
- package/dist/Select.js +3 -3
- package/dist/Splitter.cjs +2 -2
- package/dist/Splitter.d.cts +2 -2
- package/dist/Splitter.d.ts +2 -2
- package/dist/Splitter.js +1 -1
- package/dist/StatusBar.cjs +3 -3
- package/dist/StatusBar.d.cts +3 -2
- package/dist/StatusBar.d.ts +3 -2
- package/dist/StatusBar.js +1 -1
- package/dist/Switch.cjs +2 -2
- package/dist/Switch.d.cts +2 -2
- package/dist/Switch.d.ts +2 -2
- package/dist/Switch.js +1 -1
- package/dist/Table.cjs +8 -8
- package/dist/Table.d.cts +4 -3
- package/dist/Table.d.ts +4 -3
- package/dist/Table.js +6 -6
- package/dist/Tabs.cjs +3 -3
- package/dist/Tabs.d.cts +5 -5
- package/dist/Tabs.d.ts +5 -5
- package/dist/Tabs.js +1 -1
- package/dist/Tag.cjs +4 -4
- package/dist/Tag.d.cts +2 -2
- package/dist/Tag.d.ts +2 -2
- package/dist/Tag.js +2 -2
- package/dist/Timeline.cjs +3 -3
- package/dist/Timeline.js +2 -2
- package/dist/Toast.cjs +4 -4
- package/dist/Toast.d.cts +2 -2
- package/dist/Toast.d.ts +2 -2
- package/dist/Toast.js +2 -2
- package/dist/Tooltip.cjs +2 -2
- package/dist/Tooltip.d.cts +2 -2
- package/dist/Tooltip.d.ts +2 -2
- package/dist/Tooltip.js +1 -1
- package/dist/Typography.cjs +7 -7
- package/dist/Typography.js +2 -2
- package/dist/{chunk-QVFEKGKI.cjs → chunk-2K5HZLXW.cjs} +6 -3
- package/dist/chunk-2K5HZLXW.cjs.map +1 -0
- package/dist/chunk-2LIX7ZHX.js +29 -0
- package/dist/chunk-2LIX7ZHX.js.map +1 -0
- package/dist/{chunk-3ES5QPAF.cjs → chunk-2TNJ7TC4.cjs} +22 -12
- package/dist/chunk-2TNJ7TC4.cjs.map +1 -0
- package/dist/chunk-3EGZ6TBF.cjs +65 -0
- package/dist/chunk-3EGZ6TBF.cjs.map +1 -0
- package/dist/{chunk-RFU5HN4E.js → chunk-3LJO33HI.js} +25 -7
- package/dist/chunk-3LJO33HI.js.map +1 -0
- package/dist/{chunk-UQB5OHMO.js → chunk-44AVDO3T.js} +27 -19
- package/dist/chunk-44AVDO3T.js.map +1 -0
- package/dist/{chunk-TAYFI4RG.cjs → chunk-474MXYO5.cjs} +4 -4
- package/dist/{chunk-TAYFI4RG.cjs.map → chunk-474MXYO5.cjs.map} +1 -1
- package/dist/{chunk-TMRSI543.js → chunk-4DNHASZU.js} +10 -8
- package/dist/chunk-4DNHASZU.js.map +1 -0
- package/dist/{chunk-UXABXEWT.js → chunk-4JHFGSNH.js} +24 -13
- package/dist/chunk-4JHFGSNH.js.map +1 -0
- package/dist/{chunk-E7UQSFKF.js → chunk-4XSP4HHZ.js} +18 -8
- package/dist/chunk-4XSP4HHZ.js.map +1 -0
- package/dist/{chunk-JQZFOIX6.js → chunk-5VIOJW6M.js} +141 -128
- package/dist/chunk-5VIOJW6M.js.map +1 -0
- package/dist/{chunk-WBL7LOIH.js → chunk-6CAEGNCK.js} +10 -8
- package/dist/chunk-6CAEGNCK.js.map +1 -0
- package/dist/{chunk-JELHUUM5.js → chunk-6FSOJLY6.js} +3 -3
- package/dist/{chunk-JELHUUM5.js.map → chunk-6FSOJLY6.js.map} +1 -1
- package/dist/{chunk-2OBQOEFD.cjs → chunk-6TRVGFFX.cjs} +16 -5
- package/dist/chunk-6TRVGFFX.cjs.map +1 -0
- package/dist/{chunk-7T2SLRNL.cjs → chunk-74VZZAUT.cjs} +14 -7
- package/dist/chunk-74VZZAUT.cjs.map +1 -0
- package/dist/{chunk-GR5STMOA.js → chunk-A3IJM7IX.js} +76 -50
- package/dist/chunk-A3IJM7IX.js.map +1 -0
- package/dist/{chunk-WZ73TWB2.cjs → chunk-AXRABZLY.cjs} +25 -7
- package/dist/chunk-AXRABZLY.cjs.map +1 -0
- package/dist/{chunk-X3JG3IR6.js → chunk-BSHHQOFY.js} +23 -18
- package/dist/chunk-BSHHQOFY.js.map +1 -0
- package/dist/{chunk-JSDQVVQB.js → chunk-CVEGVB2C.js} +17 -12
- package/dist/chunk-CVEGVB2C.js.map +1 -0
- package/dist/{chunk-ILVNMES2.js → chunk-D242UJZO.js} +14 -11
- package/dist/chunk-D242UJZO.js.map +1 -0
- package/dist/{chunk-RJNGXR5Y.js → chunk-DB5JMXOI.js} +11 -9
- package/dist/chunk-DB5JMXOI.js.map +1 -0
- package/dist/{chunk-OWNVDXRQ.js → chunk-DCX36FYD.js} +23 -10
- package/dist/chunk-DCX36FYD.js.map +1 -0
- package/dist/{chunk-3KQKEE5O.cjs → chunk-DH4NYYJP.cjs} +43 -18
- package/dist/chunk-DH4NYYJP.cjs.map +1 -0
- package/dist/{chunk-P4XPESR2.js → chunk-DUNQNSVK.js} +20 -10
- package/dist/chunk-DUNQNSVK.js.map +1 -0
- package/dist/{chunk-5PREWYTB.js → chunk-E6K6GYUC.js} +21 -27
- package/dist/chunk-E6K6GYUC.js.map +1 -0
- package/dist/{chunk-IHACXMOI.js → chunk-EARCKSI7.js} +6 -3
- package/dist/chunk-EARCKSI7.js.map +1 -0
- package/dist/chunk-EHZXEZI2.cjs +78 -0
- package/dist/chunk-EHZXEZI2.cjs.map +1 -0
- package/dist/{chunk-S7RFIMA3.cjs → chunk-FBQLNAUI.cjs} +11 -9
- package/dist/chunk-FBQLNAUI.cjs.map +1 -0
- package/dist/chunk-FCIPCZAK.cjs +53 -0
- package/dist/chunk-FCIPCZAK.cjs.map +1 -0
- package/dist/{chunk-DLGFIRVW.js → chunk-FSOJHDXH.js} +7 -6
- package/dist/chunk-FSOJHDXH.js.map +1 -0
- package/dist/{chunk-2D5VCIJZ.cjs → chunk-HHSVGNJA.cjs} +7 -7
- package/dist/chunk-HHSVGNJA.cjs.map +1 -0
- package/dist/{chunk-ZSR5JSYZ.cjs → chunk-HQO7EZNQ.cjs} +23 -13
- package/dist/chunk-HQO7EZNQ.cjs.map +1 -0
- package/dist/{chunk-V6466VMN.cjs → chunk-IL523MTN.cjs} +144 -131
- package/dist/chunk-IL523MTN.cjs.map +1 -0
- package/dist/{chunk-GT45MQAK.cjs → chunk-JAGJQDAV.cjs} +22 -13
- package/dist/chunk-JAGJQDAV.cjs.map +1 -0
- package/dist/{chunk-U7TAQLPN.cjs → chunk-JF2WNLPF.cjs} +6 -6
- package/dist/{chunk-U7TAQLPN.cjs.map → chunk-JF2WNLPF.cjs.map} +1 -1
- package/dist/{chunk-S3NIRNWM.js → chunk-JS6U7UQS.js} +3 -3
- package/dist/{chunk-S3NIRNWM.js.map → chunk-JS6U7UQS.js.map} +1 -1
- package/dist/{chunk-H2QTLV5T.cjs → chunk-KA3XLPQJ.cjs} +34 -9
- package/dist/chunk-KA3XLPQJ.cjs.map +1 -0
- package/dist/{chunk-NS3C2ZSE.js → chunk-KWE2PXJQ.js} +8 -5
- package/dist/chunk-KWE2PXJQ.js.map +1 -0
- package/dist/{chunk-TGUDT3GK.js → chunk-LSQD2GFA.js} +4 -4
- package/dist/chunk-LSQD2GFA.js.map +1 -0
- package/dist/{chunk-D26YHP2Y.cjs → chunk-MU4GGX6C.cjs} +14 -12
- package/dist/chunk-MU4GGX6C.cjs.map +1 -0
- package/dist/{chunk-3YYOYDKI.js → chunk-MXIWTYNC.js} +16 -6
- package/dist/chunk-MXIWTYNC.js.map +1 -0
- package/dist/{chunk-5EAVXFFD.cjs → chunk-NRP3X3PE.cjs} +17 -12
- package/dist/chunk-NRP3X3PE.cjs.map +1 -0
- package/dist/{chunk-DF5K2BZ2.cjs → chunk-P4CGE5C7.cjs} +17 -7
- package/dist/chunk-P4CGE5C7.cjs.map +1 -0
- package/dist/{chunk-5SJJI3HL.js → chunk-PX5ABNKV.js} +19 -10
- package/dist/chunk-PX5ABNKV.js.map +1 -0
- package/dist/{chunk-WKNVNN2K.cjs → chunk-QCNHDDSD.cjs} +36 -13
- package/dist/chunk-QCNHDDSD.cjs.map +1 -0
- package/dist/{chunk-5N7347MI.js → chunk-QRSPBK3X.js} +8 -6
- package/dist/chunk-QRSPBK3X.js.map +1 -0
- package/dist/{chunk-XT7RXXOE.js → chunk-RHZOBQON.js} +35 -13
- package/dist/chunk-RHZOBQON.js.map +1 -0
- package/dist/{chunk-P2AV5BD7.cjs → chunk-RNVE2LMJ.cjs} +33 -8
- package/dist/chunk-RNVE2LMJ.cjs.map +1 -0
- package/dist/{chunk-TQLCIXCK.cjs → chunk-RXL26GSI.cjs} +28 -5
- package/dist/chunk-RXL26GSI.cjs.map +1 -0
- package/dist/{chunk-UUY7EDVJ.cjs → chunk-S3OSBW7R.cjs} +19 -14
- package/dist/chunk-S3OSBW7R.cjs.map +1 -0
- package/dist/{chunk-33TIL25B.cjs → chunk-SREMTSVI.cjs} +47 -19
- package/dist/chunk-SREMTSVI.cjs.map +1 -0
- package/dist/{chunk-6GNFRP2H.js → chunk-SWB57EA2.js} +9 -7
- package/dist/chunk-SWB57EA2.js.map +1 -0
- package/dist/{chunk-FLPHVK45.js → chunk-T7ZBJJC4.js} +12 -7
- package/dist/chunk-T7ZBJJC4.js.map +1 -0
- package/dist/chunk-TC5ZL2OS.cjs +165 -0
- package/dist/chunk-TC5ZL2OS.cjs.map +1 -0
- package/dist/{chunk-I7UJA6RM.cjs → chunk-V24B7KWT.cjs} +12 -10
- package/dist/chunk-V24B7KWT.cjs.map +1 -0
- package/dist/{chunk-BIXW4ZYW.cjs → chunk-V5KSJITO.cjs} +7 -7
- package/dist/{chunk-BIXW4ZYW.cjs.map → chunk-V5KSJITO.cjs.map} +1 -1
- package/dist/{chunk-IJIQ4H6C.cjs → chunk-WFFWVQK4.cjs} +7 -7
- package/dist/{chunk-IJIQ4H6C.cjs.map → chunk-WFFWVQK4.cjs.map} +1 -1
- package/dist/{chunk-LWN2PXW7.js → chunk-WLFMOWUY.js} +3 -3
- package/dist/{chunk-LWN2PXW7.js.map → chunk-WLFMOWUY.js.map} +1 -1
- package/dist/{chunk-N5W6XJI2.js → chunk-X3QINITU.js} +16 -5
- package/dist/chunk-X3QINITU.js.map +1 -0
- package/dist/{chunk-AJEF2ZB7.cjs → chunk-XMFVAYBP.cjs} +9 -8
- package/dist/chunk-XMFVAYBP.cjs.map +1 -0
- package/dist/{chunk-WR3FML2W.cjs → chunk-XMINE4TN.cjs} +28 -17
- package/dist/chunk-XMINE4TN.cjs.map +1 -0
- package/dist/{chunk-YZ2I7CDF.cjs → chunk-XXE5TQ7I.cjs} +9 -7
- package/dist/chunk-XXE5TQ7I.cjs.map +1 -0
- package/dist/{chunk-UEHONGPZ.js → chunk-XYGRVPUA.js} +33 -8
- package/dist/chunk-XYGRVPUA.js.map +1 -0
- package/dist/chunk-Y7BZMMAV.cjs +51 -0
- package/dist/chunk-Y7BZMMAV.cjs.map +1 -0
- package/dist/{chunk-HHPYY4LH.js → chunk-YRAQRENN.js} +38 -11
- package/dist/chunk-YRAQRENN.js.map +1 -0
- package/dist/{chunk-BPDWBY6Y.cjs → chunk-YVSZLQTQ.cjs} +19 -9
- package/dist/chunk-YVSZLQTQ.cjs.map +1 -0
- package/dist/{chunk-TCPTBLDV.cjs → chunk-ZA36BJIY.cjs} +38 -11
- package/dist/chunk-ZA36BJIY.cjs.map +1 -0
- package/dist/{chunk-47Z4NIU4.js → chunk-ZHCQEJ2Z.js} +14 -7
- package/dist/chunk-ZHCQEJ2Z.js.map +1 -0
- package/dist/{chunk-D3GZSL2B.cjs → chunk-ZM4P6ELG.cjs} +45 -23
- package/dist/chunk-ZM4P6ELG.cjs.map +1 -0
- package/dist/{chunk-4ADDAZK3.js → chunk-ZN6VS6SO.js} +18 -13
- package/dist/chunk-ZN6VS6SO.js.map +1 -0
- package/dist/{chunk-AZRJZM7W.js → chunk-ZPDMAMWC.js} +21 -11
- package/dist/chunk-ZPDMAMWC.js.map +1 -0
- package/dist/{chunk-GB5NAXBP.js → chunk-ZZXNHPF3.js} +3 -3
- package/dist/{chunk-GB5NAXBP.js.map → chunk-ZZXNHPF3.js.map} +1 -1
- package/dist/index.cjs +94 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +37 -37
- package/dist/index.js.map +1 -1
- package/dist/styles.css +50 -32
- package/docs/llms/appshell.md +36 -0
- package/docs/llms/progress.md +10 -18
- package/docs/llms.md +7 -5
- package/package.json +76 -1
- package/dist/Progress-IXRSO5TW.css +0 -63
- package/dist/chunk-2D5VCIJZ.cjs.map +0 -1
- package/dist/chunk-2OBQOEFD.cjs.map +0 -1
- package/dist/chunk-33TIL25B.cjs.map +0 -1
- package/dist/chunk-3ES5QPAF.cjs.map +0 -1
- package/dist/chunk-3KQKEE5O.cjs.map +0 -1
- package/dist/chunk-3YYOYDKI.js.map +0 -1
- package/dist/chunk-47Z4NIU4.js.map +0 -1
- package/dist/chunk-4ADDAZK3.js.map +0 -1
- package/dist/chunk-5BFETKVP.cjs +0 -52
- package/dist/chunk-5BFETKVP.cjs.map +0 -1
- package/dist/chunk-5EAVXFFD.cjs.map +0 -1
- package/dist/chunk-5N7347MI.js.map +0 -1
- package/dist/chunk-5PREWYTB.js.map +0 -1
- package/dist/chunk-5SJJI3HL.js.map +0 -1
- package/dist/chunk-6GNFRP2H.js.map +0 -1
- package/dist/chunk-7T2SLRNL.cjs.map +0 -1
- package/dist/chunk-7YQWG7HR.cjs +0 -45
- package/dist/chunk-7YQWG7HR.cjs.map +0 -1
- package/dist/chunk-AJEF2ZB7.cjs.map +0 -1
- package/dist/chunk-AZRJZM7W.js.map +0 -1
- package/dist/chunk-BPDWBY6Y.cjs.map +0 -1
- package/dist/chunk-D26YHP2Y.cjs.map +0 -1
- package/dist/chunk-D3GZSL2B.cjs.map +0 -1
- package/dist/chunk-DF5K2BZ2.cjs.map +0 -1
- package/dist/chunk-DLGFIRVW.js.map +0 -1
- package/dist/chunk-E7UQSFKF.js.map +0 -1
- package/dist/chunk-FLPHVK45.js.map +0 -1
- package/dist/chunk-GR5STMOA.js.map +0 -1
- package/dist/chunk-GT45MQAK.cjs.map +0 -1
- package/dist/chunk-H2QTLV5T.cjs.map +0 -1
- package/dist/chunk-HHPYY4LH.js.map +0 -1
- package/dist/chunk-I7UJA6RM.cjs.map +0 -1
- package/dist/chunk-IHACXMOI.js.map +0 -1
- package/dist/chunk-ILVNMES2.js.map +0 -1
- package/dist/chunk-IZDJCEMF.cjs +0 -31
- package/dist/chunk-IZDJCEMF.cjs.map +0 -1
- package/dist/chunk-JQZFOIX6.js.map +0 -1
- package/dist/chunk-JSDQVVQB.js.map +0 -1
- package/dist/chunk-N5W6XJI2.js.map +0 -1
- package/dist/chunk-NQQWCIE6.cjs +0 -20
- package/dist/chunk-NQQWCIE6.cjs.map +0 -1
- package/dist/chunk-NS3C2ZSE.js.map +0 -1
- package/dist/chunk-OWNVDXRQ.js.map +0 -1
- package/dist/chunk-P2AV5BD7.cjs.map +0 -1
- package/dist/chunk-P4XPESR2.js.map +0 -1
- package/dist/chunk-QVFEKGKI.cjs.map +0 -1
- package/dist/chunk-RFU5HN4E.js.map +0 -1
- package/dist/chunk-RJNGXR5Y.js.map +0 -1
- package/dist/chunk-S7RFIMA3.cjs.map +0 -1
- package/dist/chunk-TCPTBLDV.cjs.map +0 -1
- package/dist/chunk-TGUDT3GK.js.map +0 -1
- package/dist/chunk-TMRSI543.js.map +0 -1
- package/dist/chunk-TQLCIXCK.cjs.map +0 -1
- package/dist/chunk-UEHONGPZ.js.map +0 -1
- package/dist/chunk-UQB5OHMO.js.map +0 -1
- package/dist/chunk-UUY7EDVJ.cjs.map +0 -1
- package/dist/chunk-UXABXEWT.js.map +0 -1
- package/dist/chunk-V6466VMN.cjs.map +0 -1
- package/dist/chunk-WBL7LOIH.js.map +0 -1
- package/dist/chunk-WDBJVKSR.js +0 -18
- package/dist/chunk-WDBJVKSR.js.map +0 -1
- package/dist/chunk-WKNVNN2K.cjs.map +0 -1
- package/dist/chunk-WR3FML2W.cjs.map +0 -1
- package/dist/chunk-WZ73TWB2.cjs.map +0 -1
- package/dist/chunk-X3JG3IR6.js.map +0 -1
- package/dist/chunk-XT7RXXOE.js.map +0 -1
- package/dist/chunk-XUT2Z2L6.cjs +0 -119
- package/dist/chunk-XUT2Z2L6.cjs.map +0 -1
- package/dist/chunk-YZ2I7CDF.cjs.map +0 -1
- package/dist/chunk-ZSR5JSYZ.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDH4NYYJP_cjs = require('./chunk-DH4NYYJP.cjs');
|
|
4
4
|
require('./tokens-BIIUTPKN.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
6
|
require('./Checkbox-SKJATVSN.css');
|
|
@@ -27,7 +27,7 @@ function _interopNamespace(e) {
|
|
|
27
27
|
|
|
28
28
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
29
|
|
|
30
|
-
var Checkbox = ({
|
|
30
|
+
var Checkbox = React__namespace.forwardRef(({
|
|
31
31
|
checked,
|
|
32
32
|
defaultChecked,
|
|
33
33
|
indeterminate,
|
|
@@ -35,8 +35,9 @@ var Checkbox = ({
|
|
|
35
35
|
disabled,
|
|
36
36
|
label,
|
|
37
37
|
className = "",
|
|
38
|
-
id
|
|
39
|
-
|
|
38
|
+
id,
|
|
39
|
+
...rest
|
|
40
|
+
}, ref) => {
|
|
40
41
|
const [inner, setInner] = React__namespace.useState(defaultChecked ?? false);
|
|
41
42
|
const isControlled = checked !== void 0;
|
|
42
43
|
const value = isControlled ? checked : inner;
|
|
@@ -53,7 +54,7 @@ var Checkbox = ({
|
|
|
53
54
|
disabled && "disabled",
|
|
54
55
|
className
|
|
55
56
|
].filter(Boolean).join(" ");
|
|
56
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: cls, children: [
|
|
57
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("label", { ref, className: cls, ...rest, children: [
|
|
57
58
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
58
59
|
"button",
|
|
59
60
|
{
|
|
@@ -64,20 +65,22 @@ var Checkbox = ({
|
|
|
64
65
|
onClick: toggle,
|
|
65
66
|
id,
|
|
66
67
|
className: "checkbox-box",
|
|
67
|
-
children: indeterminate ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
68
|
+
children: indeterminate ? /* @__PURE__ */ jsxRuntime.jsx(chunkDH4NYYJP_cjs.Icon, { name: "minus", size: 11 }) : value ? /* @__PURE__ */ jsxRuntime.jsx(chunkDH4NYYJP_cjs.Icon, { name: "check", size: 11 }) : null
|
|
68
69
|
}
|
|
69
70
|
),
|
|
70
71
|
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "checkbox-label", children: label })
|
|
71
72
|
] });
|
|
72
|
-
};
|
|
73
|
-
|
|
73
|
+
});
|
|
74
|
+
Checkbox.displayName = "Checkbox";
|
|
75
|
+
var RadioGroupInner = ({
|
|
74
76
|
options,
|
|
75
77
|
value,
|
|
76
78
|
defaultValue,
|
|
77
79
|
onChange,
|
|
78
80
|
direction = "vertical",
|
|
79
|
-
className = ""
|
|
80
|
-
|
|
81
|
+
className = "",
|
|
82
|
+
...rest
|
|
83
|
+
}, ref) => {
|
|
81
84
|
const [inner, setInner] = React__namespace.useState(defaultValue);
|
|
82
85
|
const isControlled = value !== void 0;
|
|
83
86
|
const current = isControlled ? value : inner;
|
|
@@ -85,7 +88,7 @@ function RadioGroup({
|
|
|
85
88
|
if (!isControlled) setInner(v);
|
|
86
89
|
onChange?.(v);
|
|
87
90
|
};
|
|
88
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `radio-group ${direction} ${className}`, children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
91
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: `radio-group ${direction} ${className}`, ...rest, children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
89
92
|
"label",
|
|
90
93
|
{
|
|
91
94
|
className: `radio ${current === opt.value ? "checked" : ""} ${opt.disabled ? "disabled" : ""}`,
|
|
@@ -106,9 +109,11 @@ function RadioGroup({
|
|
|
106
109
|
},
|
|
107
110
|
String(opt.value)
|
|
108
111
|
)) });
|
|
109
|
-
}
|
|
112
|
+
};
|
|
113
|
+
var RadioGroup = React__namespace.forwardRef(RadioGroupInner);
|
|
114
|
+
RadioGroup.displayName = "RadioGroup";
|
|
110
115
|
|
|
111
116
|
exports.Checkbox = Checkbox;
|
|
112
117
|
exports.RadioGroup = RadioGroup;
|
|
113
|
-
//# sourceMappingURL=chunk-
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-S3OSBW7R.cjs.map
|
|
119
|
+
//# sourceMappingURL=chunk-S3OSBW7R.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["React","jsx","Icon","jsxs"],"mappings":"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","file":"chunk-S3OSBW7R.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Checkbox.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface CheckboxProps\n extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, \"onChange\" | \"children\" | \"id\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n indeterminate?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n label?: React.ReactNode;\n className?: string;\n id?: string;\n}\n\n/** `Checkbox` — binary choice, supports indeterminate state. */\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(({\n checked,\n defaultChecked,\n indeterminate,\n onChange,\n disabled,\n label,\n className = \"\",\n id,\n ...rest\n}, ref) => {\n const [inner, setInner] = React.useState(defaultChecked ?? false);\n const isControlled = checked !== undefined;\n const value = isControlled ? checked : inner;\n\n const toggle = () => {\n if (disabled) return;\n const next = !value;\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const cls = [\n \"checkbox\",\n value && \"checked\",\n indeterminate && \"indeterminate\",\n disabled && \"disabled\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <label ref={ref} className={cls} {...rest}>\n <button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={indeterminate ? \"mixed\" : value}\n disabled={disabled}\n onClick={toggle}\n id={id}\n className=\"checkbox-box\"\n >\n {indeterminate ? <Icon name=\"minus\" size={11} /> : value ? <Icon name=\"check\" size={11} /> : null}\n </button>\n {label && <span className=\"checkbox-label\">{label}</span>}\n </label>\n );\n});\nCheckbox.displayName = \"Checkbox\";\n\nexport interface RadioOption<T extends string | number = string> {\n value: T;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps<T extends string | number = string>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\"> {\n options: RadioOption<T>[];\n value?: T;\n defaultValue?: T;\n onChange?: (value: T) => void;\n name?: string;\n direction?: \"vertical\" | \"horizontal\";\n className?: string;\n}\n\ntype RadioGroupComponent = <T extends string | number = string>(\n props: RadioGroupProps<T> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement | null;\n\nconst RadioGroupInner = <T extends string | number = string>({\n options,\n value,\n defaultValue,\n onChange,\n direction = \"vertical\",\n className = \"\",\n ...rest\n}: RadioGroupProps<T>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const [inner, setInner] = React.useState<T | undefined>(defaultValue);\n const isControlled = value !== undefined;\n const current = isControlled ? value : inner;\n\n const pick = (v: T) => {\n if (!isControlled) setInner(v);\n onChange?.(v);\n };\n\n return (\n <div ref={ref} className={`radio-group ${direction} ${className}`} {...rest}>\n {options.map((opt) => (\n <label\n key={String(opt.value)}\n className={`radio ${current === opt.value ? \"checked\" : \"\"} ${opt.disabled ? \"disabled\" : \"\"}`}\n >\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={current === opt.value}\n disabled={opt.disabled}\n onClick={() => pick(opt.value)}\n className=\"radio-dot\"\n />\n <span className=\"radio-label\">{opt.label}</span>\n </label>\n ))}\n </div>\n );\n};\n\n/** `RadioGroup` — mutually exclusive options. */\nexport const RadioGroup = React.forwardRef(RadioGroupInner) as RadioGroupComponent;\n(RadioGroup as any).displayName = \"RadioGroup\";\n"]}
|
|
@@ -3,31 +3,54 @@
|
|
|
3
3
|
require('./tokens-BIIUTPKN.css');
|
|
4
4
|
require('./shared-NJHRNLRH.css');
|
|
5
5
|
require('./AppShell-RCALXUCZ.css');
|
|
6
|
+
var React = require('react');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
8
29
|
// src/components/AppShell/AppShell.tsx
|
|
9
|
-
var WindowControls = ({
|
|
30
|
+
var WindowControls = React__namespace.forwardRef(({
|
|
10
31
|
platform = "mac",
|
|
11
32
|
onMinimize,
|
|
12
33
|
onMaximize,
|
|
13
34
|
onClose,
|
|
14
|
-
className = ""
|
|
15
|
-
|
|
35
|
+
className = "",
|
|
36
|
+
...rest
|
|
37
|
+
}, ref) => {
|
|
16
38
|
const noDragStyle = { WebkitAppRegion: "no-drag" };
|
|
17
39
|
if (platform === "windows") {
|
|
18
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `win-controls windows ${className}`, style: noDragStyle, children: [
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `win-controls windows ${className}`, style: noDragStyle, ...rest, children: [
|
|
19
41
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn minimize", onClick: onMinimize, "aria-label": "Minimize", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1 5h8", stroke: "currentColor", strokeWidth: "1" }) }) }),
|
|
20
42
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn maximize", onClick: onMaximize, "aria-label": "Maximize", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "1", y: "1", width: "8", height: "8", stroke: "currentColor", strokeWidth: "1" }) }) }),
|
|
21
43
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn close", onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1 1l8 8M9 1l-8 8", stroke: "currentColor", strokeWidth: "1" }) }) })
|
|
22
44
|
] });
|
|
23
45
|
}
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `win-controls mac ${className}`, style: noDragStyle, children: [
|
|
46
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `win-controls mac ${className}`, style: noDragStyle, ...rest, children: [
|
|
25
47
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn close", onClick: onClose, "aria-label": "Close" }),
|
|
26
48
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn minimize", onClick: onMinimize, "aria-label": "Minimize" }),
|
|
27
49
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "win-btn maximize", onClick: onMaximize, "aria-label": "Maximize" })
|
|
28
50
|
] });
|
|
29
|
-
};
|
|
30
|
-
|
|
51
|
+
});
|
|
52
|
+
WindowControls.displayName = "WindowControls";
|
|
53
|
+
var TitleBar = React__namespace.forwardRef(({
|
|
31
54
|
title,
|
|
32
55
|
platform = "mac",
|
|
33
56
|
onMinimize,
|
|
@@ -36,27 +59,30 @@ var TitleBar = ({
|
|
|
36
59
|
center,
|
|
37
60
|
actions,
|
|
38
61
|
draggable = true,
|
|
39
|
-
className = ""
|
|
40
|
-
|
|
62
|
+
className = "",
|
|
63
|
+
...rest
|
|
64
|
+
}, ref) => {
|
|
41
65
|
const dragStyle = draggable ? { WebkitAppRegion: "drag" } : void 0;
|
|
42
66
|
const noDragStyle = { WebkitAppRegion: "no-drag" };
|
|
43
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `titlebar ${platform} ${className}`, style: dragStyle, children: [
|
|
67
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `titlebar ${platform} ${className}`, style: dragStyle, ...rest, children: [
|
|
44
68
|
platform === "mac" && /* @__PURE__ */ jsxRuntime.jsx(WindowControls, { platform: "mac", onMinimize, onMaximize, onClose }),
|
|
45
69
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "titlebar-title", children: title }),
|
|
46
70
|
center && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "titlebar-center", style: noDragStyle, children: center }),
|
|
47
71
|
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "titlebar-actions", style: noDragStyle, children: actions }),
|
|
48
72
|
platform === "windows" && /* @__PURE__ */ jsxRuntime.jsx(WindowControls, { platform: "windows", onMinimize, onMaximize, onClose })
|
|
49
73
|
] });
|
|
50
|
-
};
|
|
51
|
-
|
|
74
|
+
});
|
|
75
|
+
TitleBar.displayName = "TitleBar";
|
|
76
|
+
var Sidebar = React__namespace.forwardRef(({
|
|
52
77
|
items,
|
|
53
78
|
activeKey,
|
|
54
79
|
onSelect,
|
|
55
80
|
collapsed,
|
|
56
81
|
header,
|
|
57
82
|
footer,
|
|
58
|
-
className = ""
|
|
59
|
-
|
|
83
|
+
className = "",
|
|
84
|
+
...rest
|
|
85
|
+
}, ref) => /* @__PURE__ */ jsxRuntime.jsxs("aside", { ref, className: `sidebar ${collapsed ? "collapsed" : ""} ${className}`, ...rest, children: [
|
|
60
86
|
header && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sidebar-header", children: header }),
|
|
61
87
|
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "sidebar-nav", children: items.map((it) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
62
88
|
"button",
|
|
@@ -73,18 +99,20 @@ var Sidebar = ({
|
|
|
73
99
|
it.key
|
|
74
100
|
)) }),
|
|
75
101
|
footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sidebar-footer", children: footer })
|
|
76
|
-
] });
|
|
77
|
-
|
|
102
|
+
] }));
|
|
103
|
+
Sidebar.displayName = "Sidebar";
|
|
104
|
+
var AppShell = React__namespace.forwardRef(({ sidebar, titleBar, children, className = "", ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `app-shell ${className}`, ...rest, children: [
|
|
78
105
|
titleBar,
|
|
79
106
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "app-shell-body", children: [
|
|
80
107
|
sidebar,
|
|
81
108
|
/* @__PURE__ */ jsxRuntime.jsx("main", { className: "app-shell-main", children })
|
|
82
109
|
] })
|
|
83
|
-
] });
|
|
110
|
+
] }));
|
|
111
|
+
AppShell.displayName = "AppShell";
|
|
84
112
|
|
|
85
113
|
exports.AppShell = AppShell;
|
|
86
114
|
exports.Sidebar = Sidebar;
|
|
87
115
|
exports.TitleBar = TitleBar;
|
|
88
116
|
exports.WindowControls = WindowControls;
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
117
|
+
//# sourceMappingURL=chunk-SREMTSVI.cjs.map
|
|
118
|
+
//# sourceMappingURL=chunk-SREMTSVI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AppShell/AppShell.tsx"],"names":["React","jsxs","jsx"],"mappings":"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","file":"chunk-SREMTSVI.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./AppShell.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface WindowControlsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** macOS traffic lights or Windows-style buttons. */\n platform?: \"mac\" | \"windows\";\n onMinimize?: () => void;\n onMaximize?: () => void;\n onClose?: () => void;\n className?: string;\n}\n\n/**\n * `WindowControls` — standalone window control buttons.\n * Mac: traffic lights (close/min/max). Windows: rectangular controls.\n */\nexport const WindowControls = React.forwardRef<HTMLDivElement, WindowControlsProps>(({\n platform = \"mac\",\n onMinimize,\n onMaximize,\n onClose,\n className = \"\",\n ...rest\n}, ref) => {\n const noDragStyle = { WebkitAppRegion: \"no-drag\" } as React.CSSProperties;\n if (platform === \"windows\") {\n return (\n <div ref={ref} className={`win-controls windows ${className}`} style={noDragStyle} {...rest}>\n <button type=\"button\" className=\"win-btn minimize\" onClick={onMinimize} aria-label=\"Minimize\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden>\n <path d=\"M1 5h8\" stroke=\"currentColor\" strokeWidth=\"1\" />\n </svg>\n </button>\n <button type=\"button\" className=\"win-btn maximize\" onClick={onMaximize} aria-label=\"Maximize\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden>\n <rect x=\"1\" y=\"1\" width=\"8\" height=\"8\" stroke=\"currentColor\" strokeWidth=\"1\" />\n </svg>\n </button>\n <button type=\"button\" className=\"win-btn close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden>\n <path d=\"M1 1l8 8M9 1l-8 8\" stroke=\"currentColor\" strokeWidth=\"1\" />\n </svg>\n </button>\n </div>\n );\n }\n return (\n <div ref={ref} className={`win-controls mac ${className}`} style={noDragStyle} {...rest}>\n <button type=\"button\" className=\"win-btn close\" onClick={onClose} aria-label=\"Close\" />\n <button type=\"button\" className=\"win-btn minimize\" onClick={onMinimize} aria-label=\"Minimize\" />\n <button type=\"button\" className=\"win-btn maximize\" onClick={onMaximize} aria-label=\"Maximize\" />\n </div>\n );\n});\nWindowControls.displayName = \"WindowControls\";\n\nexport interface TitleBarProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n title?: React.ReactNode;\n /** Platform appearance — affects button placement. Default \"mac\". */\n platform?: \"mac\" | \"windows\";\n onMinimize?: () => void;\n onMaximize?: () => void;\n onClose?: () => void;\n /** Extra content in the center. */\n center?: React.ReactNode;\n /** Extra content on the trailing side. */\n actions?: React.ReactNode;\n /** Make the whole bar draggable (Electron `-webkit-app-region: drag`). */\n draggable?: boolean;\n className?: string;\n}\n\n/**\n * `TitleBar` — Electron-style window chrome. Attach at the top of your app.\n * Buttons are non-draggable regions so clicks register correctly.\n */\nexport const TitleBar = React.forwardRef<HTMLDivElement, TitleBarProps>(({\n title,\n platform = \"mac\",\n onMinimize,\n onMaximize,\n onClose,\n center,\n actions,\n draggable = true,\n className = \"\",\n ...rest\n}, ref) => {\n const dragStyle = draggable ? ({ WebkitAppRegion: \"drag\" } as React.CSSProperties) : undefined;\n const noDragStyle = { WebkitAppRegion: \"no-drag\" } as React.CSSProperties;\n\n return (\n <div ref={ref} className={`titlebar ${platform} ${className}`} style={dragStyle} {...rest}>\n {platform === \"mac\" && (\n <WindowControls platform=\"mac\" onMinimize={onMinimize} onMaximize={onMaximize} onClose={onClose} />\n )}\n <div className=\"titlebar-title\">{title}</div>\n {center && (\n <div className=\"titlebar-center\" style={noDragStyle}>\n {center}\n </div>\n )}\n {actions && (\n <div className=\"titlebar-actions\" style={noDragStyle}>\n {actions}\n </div>\n )}\n {platform === \"windows\" && (\n <WindowControls platform=\"windows\" onMinimize={onMinimize} onMaximize={onMaximize} onClose={onClose} />\n )}\n </div>\n );\n});\nTitleBar.displayName = \"TitleBar\";\n\nexport interface SidebarItem {\n key: string;\n label: React.ReactNode;\n icon?: React.ReactNode;\n badge?: React.ReactNode;\n children?: SidebarItem[];\n}\n\nexport interface SidebarProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"onSelect\" | \"children\"> {\n items: SidebarItem[];\n activeKey?: string;\n onSelect?: (key: string) => void;\n /** Collapsed: icons only. */\n collapsed?: boolean;\n /** Header slot (e.g. workspace switcher). */\n header?: React.ReactNode;\n /** Footer slot (e.g. user card). */\n footer?: React.ReactNode;\n className?: string;\n}\n\n/** `Sidebar` — navigation rail. Pair with `AppShell`. */\nexport const Sidebar = React.forwardRef<HTMLElement, SidebarProps>(({\n items,\n activeKey,\n onSelect,\n collapsed,\n header,\n footer,\n className = \"\",\n ...rest\n}, ref) => (\n <aside ref={ref} className={`sidebar ${collapsed ? \"collapsed\" : \"\"} ${className}`} {...rest}>\n {header && <div className=\"sidebar-header\">{header}</div>}\n <nav className=\"sidebar-nav\">\n {items.map((it) => (\n <button\n type=\"button\"\n key={it.key}\n className={`sidebar-item ${activeKey === it.key ? \"active\" : \"\"}`}\n onClick={() => onSelect?.(it.key)}\n >\n {it.icon && <span className=\"sidebar-icon\">{it.icon}</span>}\n {!collapsed && <span className=\"sidebar-label\">{it.label}</span>}\n {!collapsed && it.badge && <span className=\"sidebar-badge\">{it.badge}</span>}\n </button>\n ))}\n </nav>\n {footer && <div className=\"sidebar-footer\">{footer}</div>}\n </aside>\n));\nSidebar.displayName = \"Sidebar\";\n\nexport interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {\n sidebar?: React.ReactNode;\n titleBar?: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n}\n\n/**\n * `AppShell` — 3-zone Electron layout: title bar across top, sidebar on left, content fills rest.\n */\nexport const AppShell = React.forwardRef<HTMLDivElement, AppShellProps>(({ sidebar, titleBar, children, className = \"\", ...rest }, ref) => (\n <div ref={ref} className={`app-shell ${className}`} {...rest}>\n {titleBar}\n <div className=\"app-shell-body\">\n {sidebar}\n <main className=\"app-shell-main\">{children}</main>\n </div>\n </div>\n));\nAppShell.displayName = \"AppShell\";\n"]}
|
|
@@ -5,7 +5,7 @@ import * as React from 'react';
|
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
// src/components/Switch/Switch.tsx
|
|
8
|
-
var Switch = ({
|
|
8
|
+
var Switch = React.forwardRef(({
|
|
9
9
|
checked,
|
|
10
10
|
defaultChecked,
|
|
11
11
|
onChange,
|
|
@@ -15,8 +15,9 @@ var Switch = ({
|
|
|
15
15
|
checkedChildren,
|
|
16
16
|
unCheckedChildren,
|
|
17
17
|
className = "",
|
|
18
|
-
id
|
|
19
|
-
|
|
18
|
+
id,
|
|
19
|
+
...rest
|
|
20
|
+
}, ref) => {
|
|
20
21
|
const [inner, setInner] = React.useState(defaultChecked ?? false);
|
|
21
22
|
const isControlled = checked !== void 0;
|
|
22
23
|
const value = isControlled ? checked : inner;
|
|
@@ -35,7 +36,7 @@ var Switch = ({
|
|
|
35
36
|
hasChildren && "with-children",
|
|
36
37
|
className
|
|
37
38
|
].filter(Boolean).join(" ");
|
|
38
|
-
return /* @__PURE__ */ jsxs("label", { className: cls, children: [
|
|
39
|
+
return /* @__PURE__ */ jsxs("label", { ref, className: cls, ...rest, children: [
|
|
39
40
|
/* @__PURE__ */ jsxs(
|
|
40
41
|
"button",
|
|
41
42
|
{
|
|
@@ -57,8 +58,9 @@ var Switch = ({
|
|
|
57
58
|
),
|
|
58
59
|
label && /* @__PURE__ */ jsx("span", { className: "switch-label", children: label })
|
|
59
60
|
] });
|
|
60
|
-
};
|
|
61
|
+
});
|
|
62
|
+
Switch.displayName = "Switch";
|
|
61
63
|
|
|
62
64
|
export { Switch };
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-SWB57EA2.js.map
|
|
66
|
+
//# sourceMappingURL=chunk-SWB57EA2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Switch/Switch.tsx"],"names":[],"mappings":";;;;;;;AAwBO,IAAM,MAAA,GAAe,iBAA0C,CAAC;AAAA,EACrE,OAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,EAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,kBAAkB,KAAK,CAAA;AAChE,EAAA,MAAM,eAAe,OAAA,KAAY,MAAA;AACjC,EAAA,MAAM,KAAA,GAAQ,eAAe,OAAA,GAAU,KAAA;AAEvC,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,MAAM,OAAO,CAAC,KAAA;AACd,IAAA,IAAI,CAAC,YAAA,EAAc,QAAA,CAAS,IAAI,CAAA;AAChC,IAAA,QAAA,GAAW,IAAI,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,eAAA,IAAmB,IAAA,IAAQ,iBAAA,IAAqB,IAAA;AACpE,EAAA,MAAM,GAAA,GAAM;AAAA,IACV,QAAA;AAAA,IACA,KAAA,IAAS,IAAA;AAAA,IACT,SAAS,IAAA,IAAQ,IAAA;AAAA,IACjB,QAAA,IAAY,UAAA;AAAA,IACZ,WAAA,IAAe,eAAA;AAAA,IACf;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,4BACG,OAAA,EAAA,EAAM,GAAA,EAAU,SAAA,EAAW,GAAA,EAAM,GAAG,IAAA,EACnC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,cAAA,EAAc,KAAA;AAAA,QACd,QAAA;AAAA,QACA,OAAA,EAAS,MAAA;AAAA,QACT,EAAA;AAAA,QACA,SAAA,EAAU,cAAA;AAAA,QAET,QAAA,EAAA;AAAA,UAAA,WAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,4BACnD,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,iBAAA,EAAkB;AAAA,WAAA,EACxD,CAAA;AAAA,0BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EAAe;AAAA;AAAA;AAAA,KACjC;AAAA,IACC,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAgB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAClD,CAAA;AAEJ,CAAC;AACD,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-SWB57EA2.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Switch.css\";\nimport * as React from \"react\";\n\nexport interface SwitchProps\n extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, \"onChange\" | \"children\" | \"id\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n label?: React.ReactNode;\n size?: \"sm\" | \"md\";\n /** Content rendered inside the track when checked (short text or icon). */\n checkedChildren?: React.ReactNode;\n /** Content rendered inside the track when unchecked. */\n unCheckedChildren?: React.ReactNode;\n className?: string;\n id?: string;\n}\n\n/**\n * `Switch` — on/off toggle. Controlled or uncontrolled.\n */\nexport const Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(({\n checked,\n defaultChecked,\n onChange,\n disabled,\n label,\n size = \"md\",\n checkedChildren,\n unCheckedChildren,\n className = \"\",\n id,\n ...rest\n}, ref) => {\n const [inner, setInner] = React.useState(defaultChecked ?? false);\n const isControlled = checked !== undefined;\n const value = isControlled ? checked : inner;\n\n const toggle = () => {\n if (disabled) return;\n const next = !value;\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const hasChildren = checkedChildren != null || unCheckedChildren != null;\n const cls = [\n \"switch\",\n value && \"on\",\n size !== \"md\" && size,\n disabled && \"disabled\",\n hasChildren && \"with-children\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <label ref={ref} className={cls} {...rest}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n disabled={disabled}\n onClick={toggle}\n id={id}\n className=\"switch-track\"\n >\n {hasChildren && (\n <span className=\"switch-inner\">\n <span className=\"switch-inner-on\">{checkedChildren}</span>\n <span className=\"switch-inner-off\">{unCheckedChildren}</span>\n </span>\n )}\n <span className=\"switch-thumb\" />\n </button>\n {label && <span className=\"switch-label\">{label}</span>}\n </label>\n );\n});\nSwitch.displayName = \"Switch\";\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Icon } from './chunk-
|
|
1
|
+
import { Icon } from './chunk-BSHHQOFY.js';
|
|
2
2
|
import './tokens-BIIUTPKN.css';
|
|
3
3
|
import './shared-NJHRNLRH.css';
|
|
4
4
|
import './Alert-JJ7GB3UU.css';
|
|
5
|
+
import * as React from 'react';
|
|
5
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
7
|
|
|
7
|
-
var Alert = ({
|
|
8
|
+
var Alert = React.forwardRef(({
|
|
8
9
|
tone = "info",
|
|
9
10
|
title,
|
|
10
11
|
children,
|
|
@@ -13,14 +14,17 @@ var Alert = ({
|
|
|
13
14
|
closable,
|
|
14
15
|
onClose,
|
|
15
16
|
action,
|
|
16
|
-
className = ""
|
|
17
|
-
|
|
17
|
+
className = "",
|
|
18
|
+
...rest
|
|
19
|
+
}, ref) => {
|
|
18
20
|
const iconName = icon ?? (tone === "success" ? "check2" : tone === "warning" || tone === "danger" ? "alert" : "info");
|
|
19
21
|
return /* @__PURE__ */ jsxs(
|
|
20
22
|
"div",
|
|
21
23
|
{
|
|
24
|
+
ref,
|
|
22
25
|
className: `alert ${tone} ${title ? "" : "no-title"} ${showIcon ? "" : "no-icon"} ${className}`,
|
|
23
26
|
role: "alert",
|
|
27
|
+
...rest,
|
|
24
28
|
children: [
|
|
25
29
|
showIcon && /* @__PURE__ */ jsx("span", { className: "alert-ico", children: /* @__PURE__ */ jsx(Icon, { name: iconName, size: 14 }) }),
|
|
26
30
|
/* @__PURE__ */ jsxs("div", { className: "alert-body", children: [
|
|
@@ -32,8 +36,9 @@ var Alert = ({
|
|
|
32
36
|
]
|
|
33
37
|
}
|
|
34
38
|
);
|
|
35
|
-
};
|
|
39
|
+
});
|
|
40
|
+
Alert.displayName = "Alert";
|
|
36
41
|
|
|
37
42
|
export { Alert };
|
|
38
|
-
//# sourceMappingURL=chunk-
|
|
39
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-T7ZBJJC4.js.map
|
|
44
|
+
//# sourceMappingURL=chunk-T7ZBJJC4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":[],"mappings":";;;;;;;AAwBO,IAAM,KAAA,GAAc,iBAAuC,CAAC;AAAA,EACjE,IAAA,GAAO,MAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,QAAA,GACJ,SAAS,IAAA,KAAS,SAAA,GAAY,WAAW,IAAA,KAAS,SAAA,IAAa,IAAA,KAAS,QAAA,GAAW,OAAA,GAAU,MAAA,CAAA;AAC/F,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,KAAA,GAAQ,EAAA,GAAK,UAAU,CAAA,CAAA,EAAI,QAAA,GAAW,EAAA,GAAK,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,MAC7F,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAA,EACd,QAAA,kBAAA,GAAA,CAAC,QAAK,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,EAAA,EAAI,CAAA,EAClC,CAAA;AAAA,wBAEF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,oBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAC7C,QAAA,oBAAY,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAc,QAAA,EAAS;AAAA,SAAA,EACrD,CAAA;AAAA,QACC,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAgB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QAChD,4BACC,GAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,WAAU,aAAA,EAAc,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,WACzE,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAK,GAAA,EAAI,IAAA,EAAM,IAAI,CAAA,EAC3B;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AACD,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-T7ZBJJC4.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Alert.css\";\nimport * as React from \"react\";\nimport { Icon, type IconName } from \"../Icon\";\n\nexport type AlertTone = \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\" | \"children\"> {\n tone?: AlertTone;\n title?: React.ReactNode;\n children?: React.ReactNode;\n icon?: IconName;\n /** Controls the leading semantic icon. Defaults to `true`. */\n showIcon?: boolean;\n closable?: boolean;\n onClose?: () => void;\n /** Right-side action area, rendered after the content and before the close button. */\n action?: React.ReactNode;\n className?: string;\n}\n\n/** `Alert` — inline contextual message. */\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(({\n tone = \"info\",\n title,\n children,\n icon,\n showIcon = true,\n closable,\n onClose,\n action,\n className = \"\",\n ...rest\n}, ref) => {\n const iconName: IconName =\n icon ?? (tone === \"success\" ? \"check2\" : tone === \"warning\" || tone === \"danger\" ? \"alert\" : \"info\");\n return (\n <div\n ref={ref}\n className={`alert ${tone} ${title ? \"\" : \"no-title\"} ${showIcon ? \"\" : \"no-icon\"} ${className}`}\n role=\"alert\"\n {...rest}\n >\n {showIcon && (\n <span className=\"alert-ico\">\n <Icon name={iconName} size={14} />\n </span>\n )}\n <div className=\"alert-body\">\n {title && <div className=\"alert-title\">{title}</div>}\n {children && <div className=\"alert-desc\">{children}</div>}\n </div>\n {action && <div className=\"alert-action\">{action}</div>}\n {closable && (\n <button type=\"button\" className=\"alert-close\" onClick={onClose} aria-label=\"Dismiss\">\n <Icon name=\"x\" size={12} />\n </button>\n )}\n </div>\n );\n});\nAlert.displayName = \"Alert\";\n"]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./tokens-BIIUTPKN.css');
|
|
4
|
+
require('./shared-NJHRNLRH.css');
|
|
5
|
+
require('./Empty-NQ72W3D7.css');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
29
|
+
// src/components/Empty/Empty.tsx
|
|
30
|
+
var Empty = React__namespace.forwardRef(({
|
|
31
|
+
title = "\u6682\u65E0\u5185\u5BB9",
|
|
32
|
+
description,
|
|
33
|
+
icon,
|
|
34
|
+
action,
|
|
35
|
+
size = "md",
|
|
36
|
+
variant = "default",
|
|
37
|
+
className = "",
|
|
38
|
+
...rest
|
|
39
|
+
}, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `empty ${size} ${variant} ${className}`, ...rest, children: [
|
|
40
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "empty-ico", children: icon }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "empty-title", children: title }),
|
|
42
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "empty-desc", children: description }),
|
|
43
|
+
action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "empty-action", children: action })
|
|
44
|
+
] }));
|
|
45
|
+
Empty.displayName = "Empty";
|
|
46
|
+
var Spinner = React__namespace.forwardRef(({
|
|
47
|
+
size = 20,
|
|
48
|
+
tone = "accent",
|
|
49
|
+
label,
|
|
50
|
+
variant = "ring",
|
|
51
|
+
className = "",
|
|
52
|
+
style,
|
|
53
|
+
...rest
|
|
54
|
+
}, ref) => {
|
|
55
|
+
const cls = `spinner ${variant} ${tone} ${className}`.trim();
|
|
56
|
+
const spinnerStyle = variant === "dots" ? { fontSize: size, ...style } : { width: size, height: size, ...style };
|
|
57
|
+
const spinner = variant === "dots" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cls, style: spinnerStyle, "aria-label": "Loading", children: [
|
|
58
|
+
/* @__PURE__ */ jsxRuntime.jsx("i", {}),
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx("i", {}),
|
|
60
|
+
/* @__PURE__ */ jsxRuntime.jsx("i", {})
|
|
61
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
"span",
|
|
63
|
+
{
|
|
64
|
+
className: cls,
|
|
65
|
+
style: spinnerStyle,
|
|
66
|
+
"aria-label": "Loading"
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
if (!label) {
|
|
70
|
+
return React__namespace.cloneElement(spinner, {
|
|
71
|
+
ref,
|
|
72
|
+
...rest
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ref, className: "spinner-wrap", style, ...rest, children: [
|
|
76
|
+
spinner,
|
|
77
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner-label", children: label })
|
|
78
|
+
] });
|
|
79
|
+
});
|
|
80
|
+
Spinner.displayName = "Spinner";
|
|
81
|
+
var AVATAR_SIZE_PX = { sm: 32, md: 40, lg: 56 };
|
|
82
|
+
var Skeleton = React__namespace.forwardRef(({
|
|
83
|
+
width = "100%",
|
|
84
|
+
height = 16,
|
|
85
|
+
circle,
|
|
86
|
+
animation = "wave",
|
|
87
|
+
avatar,
|
|
88
|
+
title,
|
|
89
|
+
paragraph,
|
|
90
|
+
className = "",
|
|
91
|
+
style,
|
|
92
|
+
...rest
|
|
93
|
+
}, ref) => {
|
|
94
|
+
const composite = avatar != null || title != null || paragraph != null;
|
|
95
|
+
if (!composite) {
|
|
96
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
+
"span",
|
|
98
|
+
{
|
|
99
|
+
ref,
|
|
100
|
+
className: `skeleton ${animation} ${circle ? "circle" : ""} ${className}`.trim(),
|
|
101
|
+
style: { width, height, borderRadius: circle ? "50%" : void 0, ...style },
|
|
102
|
+
...rest
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
const avatarCfg = avatar === true ? {} : avatar === false || avatar == null ? null : avatar;
|
|
107
|
+
const titleCfg = title === false ? null : title === true || title == null ? {} : title;
|
|
108
|
+
const paragraphCfg = paragraph === false ? null : paragraph === true || paragraph == null ? {} : paragraph;
|
|
109
|
+
const rows = paragraphCfg?.rows ?? 3;
|
|
110
|
+
const rowWidths = paragraphCfg?.width ?? [];
|
|
111
|
+
const resolveRowWidth = (idx) => {
|
|
112
|
+
if (idx < rowWidths.length) return rowWidths[idx];
|
|
113
|
+
if (idx === rows - 1) return "60%";
|
|
114
|
+
return "100%";
|
|
115
|
+
};
|
|
116
|
+
const avatarPx = avatarCfg != null ? AVATAR_SIZE_PX[avatarCfg.size ?? "md"] : 0;
|
|
117
|
+
const avatarShape = avatarCfg?.shape ?? "circle";
|
|
118
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
ref,
|
|
122
|
+
className: `skeleton-box ${className}`.trim(),
|
|
123
|
+
style,
|
|
124
|
+
...rest,
|
|
125
|
+
children: [
|
|
126
|
+
avatarCfg && /* @__PURE__ */ jsxRuntime.jsx(
|
|
127
|
+
"span",
|
|
128
|
+
{
|
|
129
|
+
className: `skeleton ${animation} ${avatarShape === "circle" ? "circle" : ""} skeleton-avatar`.trim(),
|
|
130
|
+
style: {
|
|
131
|
+
width: avatarPx,
|
|
132
|
+
height: avatarPx,
|
|
133
|
+
borderRadius: avatarShape === "circle" ? "50%" : void 0,
|
|
134
|
+
flexShrink: 0
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "skeleton-content", children: [
|
|
139
|
+
titleCfg && /* @__PURE__ */ jsxRuntime.jsx(
|
|
140
|
+
"span",
|
|
141
|
+
{
|
|
142
|
+
className: `skeleton ${animation} skeleton-title`.trim(),
|
|
143
|
+
style: { width: titleCfg.width ?? "38%", height: 16 }
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
paragraphCfg && Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
147
|
+
"span",
|
|
148
|
+
{
|
|
149
|
+
className: `skeleton ${animation} skeleton-row`.trim(),
|
|
150
|
+
style: { width: resolveRowWidth(i), height: 12 }
|
|
151
|
+
},
|
|
152
|
+
i
|
|
153
|
+
))
|
|
154
|
+
] })
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
});
|
|
159
|
+
Skeleton.displayName = "Skeleton";
|
|
160
|
+
|
|
161
|
+
exports.Empty = Empty;
|
|
162
|
+
exports.Skeleton = Skeleton;
|
|
163
|
+
exports.Spinner = Spinner;
|
|
164
|
+
//# sourceMappingURL=chunk-TC5ZL2OS.cjs.map
|
|
165
|
+
//# sourceMappingURL=chunk-TC5ZL2OS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Empty/Empty.tsx"],"names":["React","jsxs","jsx"],"mappings":"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","file":"chunk-TC5ZL2OS.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Empty.css\";\nimport * as React from \"react\";\n\nexport interface EmptyProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\" | \"children\"> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n action?: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n /** `subtle` drops the recessed icon well — good for inline / embedded use. */\n variant?: \"default\" | \"subtle\";\n className?: string;\n}\n\n/** `Empty` — empty state placeholder. */\nexport const Empty = React.forwardRef<HTMLDivElement, EmptyProps>(({\n title = \"暂无内容\",\n description,\n icon,\n action,\n size = \"md\",\n variant = \"default\",\n className = \"\",\n ...rest\n}, ref) => (\n <div ref={ref} className={`empty ${size} ${variant} ${className}`} {...rest}>\n {icon && <div className=\"empty-ico\">{icon}</div>}\n <div className=\"empty-title\">{title}</div>\n {description && <div className=\"empty-desc\">{description}</div>}\n {action && <div className=\"empty-action\">{action}</div>}\n </div>\n));\nEmpty.displayName = \"Empty\";\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n size?: number;\n tone?: \"accent\" | \"success\" | \"warning\" | \"danger\" | \"current\";\n /** Text rendered next to the spinner. */\n label?: React.ReactNode;\n /** `ring` is the default border spinner; `dots` is a three-dot bounce. */\n variant?: \"ring\" | \"dots\";\n className?: string;\n}\n\n/** `Spinner` — loading indicator. */\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(({\n size = 20,\n tone = \"accent\",\n label,\n variant = \"ring\",\n className = \"\",\n style,\n ...rest\n}, ref) => {\n const cls = `spinner ${variant} ${tone} ${className}`.trim();\n const spinnerStyle =\n variant === \"dots\"\n ? ({ fontSize: size, ...style } as React.CSSProperties)\n : ({ width: size, height: size, ...style } as React.CSSProperties);\n const spinner =\n variant === \"dots\" ? (\n <span className={cls} style={spinnerStyle} aria-label=\"Loading\">\n <i /><i /><i />\n </span>\n ) : (\n <span\n className={cls}\n style={spinnerStyle}\n aria-label=\"Loading\"\n />\n );\n if (!label) {\n return React.cloneElement(spinner, {\n ref,\n ...rest,\n });\n }\n return (\n <span ref={ref} className=\"spinner-wrap\" style={style} {...rest}>\n {spinner}\n <span className=\"spinner-label\">{label}</span>\n </span>\n );\n});\nSpinner.displayName = \"Spinner\";\n\nexport interface SkeletonAvatarConfig {\n shape?: \"circle\" | \"square\";\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport interface SkeletonTitleConfig {\n width?: number | string;\n}\n\nexport interface SkeletonParagraphConfig {\n rows?: number;\n width?: (number | string)[];\n}\n\nexport interface SkeletonProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"title\"> {\n /* -------- primitive mode -------- */\n width?: number | string;\n height?: number | string;\n circle?: boolean;\n /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */\n animation?: \"wave\" | \"pulse\" | \"none\";\n\n /* -------- composite mode -------- */\n /**\n * Render an avatar skeleton on the left. `true` gives the defaults (circle, md).\n * @example avatar\n * @example avatar={{ shape: \"square\", size: \"lg\" }}\n */\n avatar?: boolean | SkeletonAvatarConfig;\n /**\n * Render a title line skeleton. Defaults to `true` whenever the composite layout is active\n * (any of `avatar` / `paragraph` / `title` is set).\n */\n title?: boolean | SkeletonTitleConfig;\n /**\n * Render N paragraph lines. `true` gives 3 rows; passing `width` arrays lets you\n * control per-row widths (last row defaults to 60%).\n */\n paragraph?: boolean | SkeletonParagraphConfig;\n\n className?: string;\n}\n\nconst AVATAR_SIZE_PX = { sm: 32, md: 40, lg: 56 } as const;\n\n/**\n * `Skeleton` — content placeholder during loading.\n *\n * Two modes:\n * - **Primitive** (no composite prop set): renders a single block using `width` / `height` / `circle`.\n * - **Composite** (`avatar` / `title` / `paragraph`): renders the Ant-Design-style avatar + title + paragraph layout.\n *\n * @example\n * // primitive\n * <Skeleton height={14} width=\"60%\" />\n * @example\n * // composite\n * <Skeleton avatar title paragraph={{ rows: 4 }} />\n */\nexport const Skeleton = React.forwardRef<HTMLElement, SkeletonProps>(({\n width = \"100%\",\n height = 16,\n circle,\n animation = \"wave\",\n avatar,\n title,\n paragraph,\n className = \"\",\n style,\n ...rest\n}, ref) => {\n const composite = avatar != null || title != null || paragraph != null;\n\n if (!composite) {\n return (\n <span\n ref={ref as React.ForwardedRef<HTMLSpanElement>}\n className={`skeleton ${animation} ${circle ? \"circle\" : \"\"} ${className}`.trim()}\n style={{ width, height, borderRadius: circle ? \"50%\" : undefined, ...style }}\n {...rest}\n />\n );\n }\n\n // --- composite mode ---\n const avatarCfg: SkeletonAvatarConfig | null =\n avatar === true ? {} : avatar === false || avatar == null ? null : avatar;\n const titleCfg: SkeletonTitleConfig | null =\n title === false ? null : title === true || title == null ? {} : title;\n const paragraphCfg: SkeletonParagraphConfig | null =\n paragraph === false ? null : paragraph === true || paragraph == null ? {} : paragraph;\n\n const rows = paragraphCfg?.rows ?? 3;\n const rowWidths = paragraphCfg?.width ?? [];\n const resolveRowWidth = (idx: number): number | string => {\n if (idx < rowWidths.length) return rowWidths[idx];\n if (idx === rows - 1) return \"60%\";\n return \"100%\";\n };\n\n const avatarPx =\n avatarCfg != null ? AVATAR_SIZE_PX[avatarCfg.size ?? \"md\"] : 0;\n const avatarShape = avatarCfg?.shape ?? \"circle\";\n\n return (\n <div\n ref={ref as React.ForwardedRef<HTMLDivElement>}\n className={`skeleton-box ${className}`.trim()}\n style={style as React.CSSProperties | undefined}\n {...rest}\n >\n {avatarCfg && (\n <span\n className={`skeleton ${animation} ${avatarShape === \"circle\" ? \"circle\" : \"\"} skeleton-avatar`.trim()}\n style={{\n width: avatarPx,\n height: avatarPx,\n borderRadius: avatarShape === \"circle\" ? \"50%\" : undefined,\n flexShrink: 0,\n }}\n />\n )}\n <div className=\"skeleton-content\">\n {titleCfg && (\n <span\n className={`skeleton ${animation} skeleton-title`.trim()}\n style={{ width: titleCfg.width ?? \"38%\", height: 16 }}\n />\n )}\n {paragraphCfg &&\n Array.from({ length: rows }).map((_, i) => (\n <span\n key={i}\n className={`skeleton ${animation} skeleton-row`.trim()}\n style={{ width: resolveRowWidth(i), height: 12 }}\n />\n ))}\n </div>\n </div>\n );\n});\nSkeleton.displayName = \"Skeleton\";\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDH4NYYJP_cjs = require('./chunk-DH4NYYJP.cjs');
|
|
4
4
|
require('./tokens-BIIUTPKN.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
6
|
require('./Calendar-LHZELUDL.css');
|
|
@@ -28,15 +28,16 @@ function _interopNamespace(e) {
|
|
|
28
28
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
29
|
|
|
30
30
|
var WEEKDAYS = ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"];
|
|
31
|
-
var Calendar = ({
|
|
31
|
+
var Calendar = React__namespace.forwardRef(({
|
|
32
32
|
value,
|
|
33
33
|
defaultValue,
|
|
34
34
|
onChange,
|
|
35
35
|
min,
|
|
36
36
|
max,
|
|
37
37
|
disabledDate,
|
|
38
|
-
className = ""
|
|
39
|
-
|
|
38
|
+
className = "",
|
|
39
|
+
...rest
|
|
40
|
+
}, ref) => {
|
|
40
41
|
const [inner, setInner] = React__namespace.useState(defaultValue ?? /* @__PURE__ */ new Date());
|
|
41
42
|
const isControlled = value !== void 0;
|
|
42
43
|
const sel = isControlled ? value : inner;
|
|
@@ -56,7 +57,7 @@ var Calendar = ({
|
|
|
56
57
|
if (!isControlled) setInner(next);
|
|
57
58
|
onChange?.(next);
|
|
58
59
|
};
|
|
59
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `calendar ${className}`, children: [
|
|
60
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: `calendar ${className}`, ...rest, children: [
|
|
60
61
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "calendar-head", children: [
|
|
61
62
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
62
63
|
"button",
|
|
@@ -65,7 +66,7 @@ var Calendar = ({
|
|
|
65
66
|
className: "btn icon sm ghost",
|
|
66
67
|
onClick: () => setView(new Date(view.getFullYear(), view.getMonth() - 1, 1)),
|
|
67
68
|
"aria-label": "Previous month",
|
|
68
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
69
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkDH4NYYJP_cjs.Icon, { name: "chevLeft", size: 14 })
|
|
69
70
|
}
|
|
70
71
|
),
|
|
71
72
|
/* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: "calendar-title", children: [
|
|
@@ -81,7 +82,7 @@ var Calendar = ({
|
|
|
81
82
|
className: "btn icon sm ghost",
|
|
82
83
|
onClick: () => setView(new Date(view.getFullYear(), view.getMonth() + 1, 1)),
|
|
83
84
|
"aria-label": "Next month",
|
|
84
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkDH4NYYJP_cjs.Icon, { name: "chevRight", size: 14 })
|
|
85
86
|
}
|
|
86
87
|
)
|
|
87
88
|
] }),
|
|
@@ -105,8 +106,9 @@ var Calendar = ({
|
|
|
105
106
|
})
|
|
106
107
|
] })
|
|
107
108
|
] });
|
|
108
|
-
};
|
|
109
|
+
});
|
|
110
|
+
Calendar.displayName = "Calendar";
|
|
109
111
|
|
|
110
112
|
exports.Calendar = Calendar;
|
|
111
|
-
//# sourceMappingURL=chunk-
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
113
|
+
//# sourceMappingURL=chunk-V24B7KWT.cjs.map
|
|
114
|
+
//# sourceMappingURL=chunk-V24B7KWT.cjs.map
|