@sia.soul/sia-react-ui 0.1.88 → 0.1.90
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/{chunk-RR7HW5HO.js → chunk-7BJPQCRG.js} +4 -3
- package/dist/{chunk-D752QGE6.js → chunk-AG2VFAZR.js} +2 -2
- package/dist/{chunk-U2WPN6TD.js → chunk-G5K72R4O.js} +516 -241
- package/dist/{chunk-QZG6XT65.js → chunk-GLXGN5SO.js} +2 -2
- package/dist/{chunk-CKX3AKMT.js → chunk-OPYA3PMD.js} +1 -1
- package/dist/{core-BU7dVRuz.d.ts → core-BGA9VB0L.d.ts} +10 -5
- package/dist/{core-DGaJTy1i.d.cts → core-OIIkAeiG.d.cts} +10 -5
- package/dist/core.cjs +1133 -858
- package/dist/core.css +1 -0
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +3 -3
- package/dist/index.cjs +3330 -3054
- package/dist/index.css +1 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/rich-text-editor.cjs +768 -493
- package/dist/rich-text-editor.js +2 -2
- package/dist/select-date-range.cjs +928 -653
- package/dist/select-date-range.js +3 -3
- package/package.json +1 -1
package/dist/core.cjs
CHANGED
|
@@ -41,7 +41,7 @@ __export(core_exports, {
|
|
|
41
41
|
module.exports = __toCommonJS(core_exports);
|
|
42
42
|
|
|
43
43
|
// src/components/Toolbar.tsx
|
|
44
|
-
var
|
|
44
|
+
var import_react9 = require("react");
|
|
45
45
|
|
|
46
46
|
// src/components/titleTooltip.tsx
|
|
47
47
|
var import_client = require("react-dom/client");
|
|
@@ -386,10 +386,10 @@ var Button = (0, import_react3.forwardRef)(function Button2({
|
|
|
386
386
|
});
|
|
387
387
|
|
|
388
388
|
// src/components/Dropdown.tsx
|
|
389
|
-
var
|
|
389
|
+
var import_react8 = require("react");
|
|
390
390
|
|
|
391
391
|
// src/components/Icon.tsx
|
|
392
|
-
var
|
|
392
|
+
var import_react5 = require("react");
|
|
393
393
|
|
|
394
394
|
// src/components/IconCatalog.tsx
|
|
395
395
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
@@ -874,327 +874,602 @@ var extendedIconPaths = {
|
|
|
874
874
|
] })
|
|
875
875
|
};
|
|
876
876
|
|
|
877
|
-
// src/components/
|
|
877
|
+
// src/components/iconBounds.ts
|
|
878
|
+
var outlineIconBounds = {
|
|
879
|
+
"activity": [3, 6, 18, 13],
|
|
880
|
+
"align-center": [4, 6, 16, 12],
|
|
881
|
+
"align-justify": [4, 6, 16, 12],
|
|
882
|
+
"align-left": [4, 6, 16, 12],
|
|
883
|
+
"align-right": [4, 6, 16, 12],
|
|
884
|
+
"appstore": [3, 3, 18, 18],
|
|
885
|
+
"area-chart": [3, 5, 18, 15],
|
|
886
|
+
"arrow-down": [5, 3, 14, 18],
|
|
887
|
+
"arrow-left": [3, 5, 18, 14],
|
|
888
|
+
"arrow-right": [3, 5, 18, 14],
|
|
889
|
+
"arrow-up": [5, 3, 14, 18],
|
|
890
|
+
"bank": [3, 3, 18, 18],
|
|
891
|
+
"bar-chart": [3, 4, 18, 17],
|
|
892
|
+
"barcode": [4, 5, 16, 14],
|
|
893
|
+
"bell": [3, 3, 18, 18],
|
|
894
|
+
"bold": [7, 4, 11, 16],
|
|
895
|
+
"book": [4, 3, 16, 19],
|
|
896
|
+
"branches": [4, 3, 16, 18],
|
|
897
|
+
"bug": [5, 5, 14, 15],
|
|
898
|
+
"bulb": [5.000001, 2.255438, 14.000001, 18.744562],
|
|
899
|
+
"calculator": [5, 2, 14, 20],
|
|
900
|
+
"calendar": [3, 3, 18, 18],
|
|
901
|
+
"camera": [3, 4, 18, 16],
|
|
902
|
+
"car": [3, 4, 18, 16],
|
|
903
|
+
"check": [4, 6.5, 16, 11],
|
|
904
|
+
"chevron-down": [5, 8.5, 14, 7],
|
|
905
|
+
"chevron-left": [8.5, 5, 7, 14],
|
|
906
|
+
"chevron-right": [8.5, 5, 7, 14],
|
|
907
|
+
"chevron-up": [5, 8.5, 14, 7],
|
|
908
|
+
"circle-check": [3, 3, 18, 18],
|
|
909
|
+
"circle-close": [3, 3, 18, 18],
|
|
910
|
+
"circle-minus": [3, 3, 18, 18],
|
|
911
|
+
"circle-plus": [3, 3, 18, 18],
|
|
912
|
+
"clipboard": [5, 3, 14, 18],
|
|
913
|
+
"clipboard-check": [5, 3, 14, 18],
|
|
914
|
+
"clock": [3, 3, 18, 18],
|
|
915
|
+
"close": [5, 5, 14, 14],
|
|
916
|
+
"cloud": [1.267807, 5.290112, 20.99, 13.79396],
|
|
917
|
+
"cloud-download": [1.100703, 5.621803, 21.657103, 15.378197],
|
|
918
|
+
"cloud-upload": [1.100703, 5.621803, 21.657103, 15.378197],
|
|
919
|
+
"code": [3, 6, 18, 12],
|
|
920
|
+
"coffee": [4, 3, 18, 17],
|
|
921
|
+
"columns": [3, 4, 18, 16],
|
|
922
|
+
"comments": [3, 4, 18, 17],
|
|
923
|
+
"compass": [3, 3, 18, 18],
|
|
924
|
+
"component": [4, 4, 16, 16],
|
|
925
|
+
"copy": [4, 4, 16, 16],
|
|
926
|
+
"corner-up-left": [4, 5, 16, 14],
|
|
927
|
+
"corner-up-right": [4, 5, 16, 14],
|
|
928
|
+
"database": [4, 2, 16, 20],
|
|
929
|
+
"desktop": [3, 3, 18, 18],
|
|
930
|
+
"double-left": [5, 5, 14, 14],
|
|
931
|
+
"double-right": [5, 5, 14, 14],
|
|
932
|
+
"download": [4, 3, 16, 17],
|
|
933
|
+
"edit": [4, 4.171572, 16, 15.828428],
|
|
934
|
+
"eraser": [4, 5, 17, 15],
|
|
935
|
+
"expand": [4, 4, 16, 16],
|
|
936
|
+
"experiment": [3.720577, 3, 16.558847, 19.019615],
|
|
937
|
+
"external-link": [3, 4, 17, 17],
|
|
938
|
+
"eye": [2.5, 6, 19, 12],
|
|
939
|
+
"eye-off": [2.5, 3, 19, 18],
|
|
940
|
+
"fast-backward": [4, 6, 16, 12],
|
|
941
|
+
"fast-forward": [4, 6, 16, 12],
|
|
942
|
+
"file": [6, 3, 12, 18],
|
|
943
|
+
"file-check": [6, 3, 12, 18],
|
|
944
|
+
"file-plus": [6, 3, 12, 18],
|
|
945
|
+
"file-spreadsheet": [6, 3, 12, 18],
|
|
946
|
+
"file-warning": [6, 3, 12, 18],
|
|
947
|
+
"filter": [3, 5, 18, 16],
|
|
948
|
+
"flip-horizontal": [3, 3, 18, 18],
|
|
949
|
+
"flip-vertical": [3, 3, 18, 18],
|
|
950
|
+
"folder": [3, 6, 18, 13],
|
|
951
|
+
"folder-plus": [3, 6, 18, 13],
|
|
952
|
+
"frown": [3, 3, 18, 18],
|
|
953
|
+
"fullscreen": [4, 4, 16, 16],
|
|
954
|
+
"fullscreen-exit": [4, 4, 16, 16],
|
|
955
|
+
"game-backpack": [4, 1.5, 16, 19.5],
|
|
956
|
+
"game-cultivator": [7, 2, 10, 19],
|
|
957
|
+
"game-elixir-jar": [5, 3, 14, 18],
|
|
958
|
+
"game-flame": [4.5, 2.5, 15.000168, 19.950167],
|
|
959
|
+
"game-gem": [4, 4, 16, 17],
|
|
960
|
+
"game-herb": [4, 5.488038, 16, 15.511962],
|
|
961
|
+
"game-ingot": [3, 6, 18, 13.5],
|
|
962
|
+
"game-meditate": [4, 3, 16, 18],
|
|
963
|
+
"game-necklace": [5, 4, 14, 16],
|
|
964
|
+
"game-pants": [6, 3, 12, 18],
|
|
965
|
+
"game-pendant": [5, 4, 14, 16.6],
|
|
966
|
+
"game-pill": [4.510922, 4.522434, 14.966641, 14.966642],
|
|
967
|
+
"game-potion": [4.370614, 3, 15.258771, 18.002394],
|
|
968
|
+
"game-qi": [3, 3, 18, 18],
|
|
969
|
+
"game-robe": [4.5, 4, 15, 17],
|
|
970
|
+
"game-soul-elixir": [2.5, 2.5, 19, 19],
|
|
971
|
+
"game-spirit-wolf": [4, 4.2, 16.025938, 16.5],
|
|
972
|
+
"game-sword": [4, 3.5, 15.5, 16.5],
|
|
973
|
+
"game-swordsman": [7, 2.5, 12.900002, 18.5],
|
|
974
|
+
"gift": [3, 3.17335, 18, 17.826651],
|
|
975
|
+
"github": [3.699682, 3.977686, 16.600634, 18.022314],
|
|
976
|
+
"heart": [1.584567, 4.178144, 20.83729, 16.821857],
|
|
977
|
+
"help-circle": [3, 3, 18, 18],
|
|
978
|
+
"highlighter": [3, 4, 16, 16],
|
|
979
|
+
"home": [3.5, 4, 17, 16],
|
|
980
|
+
"image": [3, 4, 18, 16],
|
|
981
|
+
"info": [3, 3, 18, 18],
|
|
982
|
+
"italic": [6, 4, 12, 16],
|
|
983
|
+
"key": [4, 4, 15, 15],
|
|
984
|
+
"laptop": [3, 5, 18, 14],
|
|
985
|
+
"line-chart": [3, 5, 18, 15],
|
|
986
|
+
"link": [-0.034671, 4.964466, 24.070208, 14.070206],
|
|
987
|
+
"list-ordered": [4, 5, 17, 15],
|
|
988
|
+
"list-unordered": [4, 5.5, 17, 13],
|
|
989
|
+
"loader": [3, 3, 18, 18],
|
|
990
|
+
"location": [5, 2, 14, 20],
|
|
991
|
+
"lock": [4, 3, 16, 18],
|
|
992
|
+
"login": [5, 5, 12, 14],
|
|
993
|
+
"logout": [7, 5, 12, 14],
|
|
994
|
+
"mail": [3, 5, 18, 14],
|
|
995
|
+
"meh": [3, 3, 18, 18],
|
|
996
|
+
"menu": [4, 6, 16, 12],
|
|
997
|
+
"menu-fold": [4, 6, 16, 12],
|
|
998
|
+
"menu-unfold": [4, 6, 16, 12],
|
|
999
|
+
"message": [4, 4, 16, 17],
|
|
1000
|
+
"microphone": [5, 3, 14, 18],
|
|
1001
|
+
"minus": [4, 12, 16, 0],
|
|
1002
|
+
"mobile": [7, 2, 10, 20],
|
|
1003
|
+
"moon": [3.717114, 4, 16.282887, 16.282888],
|
|
1004
|
+
"more-horizontal": [5, 12, 14.1, 0],
|
|
1005
|
+
"more-vertical": [12, 5, 0, 14.1],
|
|
1006
|
+
"move": [3, 3, 18, 18],
|
|
1007
|
+
"notepad-file": [3.375, 1.875, 17.25, 20.25],
|
|
1008
|
+
"notepad-folder": [1.875, 2.25, 20.2875, 19.5],
|
|
1009
|
+
"notepad-virtual-folder": [0.75, 0.75, 22.5, 22.5],
|
|
1010
|
+
"paperclip": [1.136039, 3, 21.106602, 18.86396],
|
|
1011
|
+
"partition": [4, 1, 16, 20],
|
|
1012
|
+
"pause": [3, 3, 18, 18],
|
|
1013
|
+
"phone": [4.161916, 3.5, 16.338085, 16.338085],
|
|
1014
|
+
"pie-chart": [2, 3, 18.5, 18],
|
|
1015
|
+
"pin": [6.5, 3, 11, 18],
|
|
1016
|
+
"pin-off": [3, 3, 18, 18],
|
|
1017
|
+
"play": [3, 3, 18, 18],
|
|
1018
|
+
"plus": [4, 4, 16, 16],
|
|
1019
|
+
"power": [4, 3, 16.000002, 16.744997],
|
|
1020
|
+
"printer": [4, 3, 16, 18],
|
|
1021
|
+
"puzzle": [3, 3, 18, 18],
|
|
1022
|
+
"qr-code": [3, 3, 18, 18],
|
|
1023
|
+
"question": [3, 3, 18, 18],
|
|
1024
|
+
"redo": [4, 7, 17, 12],
|
|
1025
|
+
"refresh": [3.999998, 3.999709, 16.000002, 16.000002],
|
|
1026
|
+
"rocket": [3, 3, 18, 18],
|
|
1027
|
+
"rotate-left": [4, 3, 15.416197, 17],
|
|
1028
|
+
"rotate-right": [4.583802, 3, 15.416199, 17],
|
|
1029
|
+
"rows": [3, 4, 18, 16],
|
|
1030
|
+
"save": [4, 3, 16, 18],
|
|
1031
|
+
"scan": [3, 3, 18, 18],
|
|
1032
|
+
"scissors": [3, 4, 17, 16],
|
|
1033
|
+
"search": [4, 4, 17, 17],
|
|
1034
|
+
"send": [3, 3, 18, 18],
|
|
1035
|
+
"server": [3, 4, 18, 16],
|
|
1036
|
+
"settings": [4, 4, 16, 16],
|
|
1037
|
+
"share": [3, 2, 18, 20],
|
|
1038
|
+
"shield": [4, 3, 16, 19],
|
|
1039
|
+
"shield-check": [4, 3, 16, 19],
|
|
1040
|
+
"shop": [3, 4, 18, 17],
|
|
1041
|
+
"shopping-bag": [4, 3, 16, 18],
|
|
1042
|
+
"shopping-cart": [3, 4, 17, 17],
|
|
1043
|
+
"shrink": [5, 4, 14, 16],
|
|
1044
|
+
"smile": [3, 3, 18, 18],
|
|
1045
|
+
"sort-ascending": [3.5, 5, 17.5, 14],
|
|
1046
|
+
"sort-descending": [3.5, 5, 17.5, 14],
|
|
1047
|
+
"speaker-muted": [4, 6.4, 16.5, 11.200001],
|
|
1048
|
+
"speaker-wave": [4, 6.4, 12.343426, 11.200001],
|
|
1049
|
+
"square-check": [3, 3, 18, 18],
|
|
1050
|
+
"square-close": [3, 3, 18, 18],
|
|
1051
|
+
"square-minus": [3, 3, 18, 18],
|
|
1052
|
+
"square-plus": [3, 3, 18, 18],
|
|
1053
|
+
"star": [3, 3, 18, 17.200001],
|
|
1054
|
+
"step-backward": [6, 5, 12, 14],
|
|
1055
|
+
"step-forward": [6, 5, 12, 14],
|
|
1056
|
+
"stop": [3, 3, 18, 18],
|
|
1057
|
+
"strikethrough": [5, 4, 14, 16],
|
|
1058
|
+
"sun": [2.5, 2.5, 19, 19],
|
|
1059
|
+
"swap-horizontal": [4, 4, 16, 16],
|
|
1060
|
+
"swap-vertical": [4, 4, 16, 16],
|
|
1061
|
+
"tab-plus": [3, 4, 18, 16],
|
|
1062
|
+
"table": [3, 4, 18, 16],
|
|
1063
|
+
"tablet": [5, 2, 14, 20],
|
|
1064
|
+
"tag": [3, 4, 18, 17],
|
|
1065
|
+
"tags": [3, 4, 18, 17],
|
|
1066
|
+
"target": [3, 3, 18, 18],
|
|
1067
|
+
"tilde": [3, 9.214088, 18, 4.785912],
|
|
1068
|
+
"token": [2.5, 2.5, 19, 19],
|
|
1069
|
+
"tool": [4.870828, 2.816625, 16.750492, 16.804695],
|
|
1070
|
+
"trash": [4, 3, 16, 18],
|
|
1071
|
+
"trending-down": [4, 7, 16, 9],
|
|
1072
|
+
"trending-up": [4, 8, 16, 9],
|
|
1073
|
+
"trophy": [3.997966, 4, 16.004068, 16],
|
|
1074
|
+
"truck": [3, 5, 18, 16],
|
|
1075
|
+
"underline": [5, 4, 14, 17],
|
|
1076
|
+
"undo": [3, 7, 17, 12],
|
|
1077
|
+
"unlock": [4, 2.935554, 16, 18.064445],
|
|
1078
|
+
"upload": [4, 4, 16, 16],
|
|
1079
|
+
"user": [4.5, 4, 15, 17],
|
|
1080
|
+
"user-minus": [3, 4, 19.5, 17],
|
|
1081
|
+
"user-plus": [3, 4, 19.5, 17],
|
|
1082
|
+
"users": [2.8, 4.5, 18.300001, 15.5],
|
|
1083
|
+
"vertical-align-bottom": [4, 4, 16, 16],
|
|
1084
|
+
"vertical-align-middle": [4, 4, 16, 16],
|
|
1085
|
+
"vertical-align-top": [4, 4, 16, 16],
|
|
1086
|
+
"video": [3, 5, 18, 14],
|
|
1087
|
+
"volume-off": [4, 6, 18, 12],
|
|
1088
|
+
"volume-up": [4, 6, 16.690525, 12],
|
|
1089
|
+
"wallet": [3, 5, 18, 15],
|
|
1090
|
+
"warning": [2.33137, 3.153565, 19.337257, 17.847614],
|
|
1091
|
+
"wifi": [3, 5.723805, 18, 15.376196],
|
|
1092
|
+
"zoom-in": [4, 4, 17, 17],
|
|
1093
|
+
"zoom-out": [4, 4, 17, 17]
|
|
1094
|
+
};
|
|
1095
|
+
var filledIconBounds = {
|
|
1096
|
+
"bell": [3, 2.499593, 18, 19.423376],
|
|
1097
|
+
"book": [3, 1, 18, 22],
|
|
1098
|
+
"calendar": [2.5, 2.5, 19, 19],
|
|
1099
|
+
"circle-check": [2, 2, 20, 20],
|
|
1100
|
+
"circle-close": [2, 2, 20, 20],
|
|
1101
|
+
"circle-minus": [2, 2, 20, 20],
|
|
1102
|
+
"circle-plus": [2, 2, 20, 20],
|
|
1103
|
+
"clock": [2, 2, 20, 20],
|
|
1104
|
+
"component": [3, 3, 18, 18],
|
|
1105
|
+
"file": [5, 2.5, 14, 19.5],
|
|
1106
|
+
"filter": [2, 4, 20, 18],
|
|
1107
|
+
"folder": [2.5, 5, 19, 15],
|
|
1108
|
+
"heart": [1.247845, 3.647845, 21.504313, 17.652155],
|
|
1109
|
+
"home": [2.157447, 2.8, 19.500002, 18.200001],
|
|
1110
|
+
"image": [2.5, 3.5, 19, 17],
|
|
1111
|
+
"info": [2, 2, 20, 20],
|
|
1112
|
+
"lock": [3, 2, 18, 20],
|
|
1113
|
+
"mail": [2.5, 4.5, 19, 15],
|
|
1114
|
+
"pause": [2, 2, 20, 20],
|
|
1115
|
+
"play": [2, 2, 20, 20],
|
|
1116
|
+
"question": [2, 2, 20, 20],
|
|
1117
|
+
"star": [2.4, 2.199999, 19.200001, 18.200001],
|
|
1118
|
+
"token": [1, 1, 22, 22],
|
|
1119
|
+
"trash": [3, 3, 18, 18],
|
|
1120
|
+
"unlock": [3, 1.979363, 18, 20.020638],
|
|
1121
|
+
"user": [3.5, 3, 17, 18],
|
|
1122
|
+
"users": [1.8, 4.2, 19.6, 16.799999],
|
|
1123
|
+
"warning": [1.53137, 2.553565, 20.937256, 19.447613]
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
// src/components/iconGeometry.tsx
|
|
1127
|
+
var import_react4 = require("react");
|
|
878
1128
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
1129
|
+
function compensateStroke(node, scale) {
|
|
1130
|
+
return import_react4.Children.map(node, (child) => {
|
|
1131
|
+
if (!(0, import_react4.isValidElement)(child)) return child;
|
|
1132
|
+
const props = child.props;
|
|
1133
|
+
return (0, import_react4.cloneElement)(child, {
|
|
1134
|
+
...props.strokeWidth === void 0 ? {} : { strokeWidth: Number(props.strokeWidth) / scale },
|
|
1135
|
+
...props.children === void 0 ? {} : { children: compensateStroke(props.children, scale) }
|
|
1136
|
+
});
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
function normalizeIconPaths(paths, bounds) {
|
|
1140
|
+
return Object.fromEntries(Object.entries(paths).map(([name, node]) => {
|
|
1141
|
+
const [x, y, width, height] = bounds[name];
|
|
1142
|
+
const scale = 18 / Math.max(width, height);
|
|
1143
|
+
const transform = `translate(${12 - (x + width / 2) * scale} ${12 - (y + height / 2) * scale}) scale(${scale})`;
|
|
1144
|
+
return [name, { scale, node: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("g", { transform, children: compensateStroke(node, scale) }) }];
|
|
1145
|
+
}));
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
// src/components/Icon.tsx
|
|
1149
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
879
1150
|
var coreIconPaths = {
|
|
880
|
-
search: /* @__PURE__ */ (0,
|
|
881
|
-
/* @__PURE__ */ (0,
|
|
882
|
-
/* @__PURE__ */ (0,
|
|
1151
|
+
search: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1152
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "10.8", cy: "10.8", r: "6.8" }),
|
|
1153
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m15.8 15.8 5.2 5.2" })
|
|
883
1154
|
] }),
|
|
884
|
-
plus: /* @__PURE__ */ (0,
|
|
1155
|
+
plus: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 4v16M4 12h16" }),
|
|
885
1156
|
// 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
|
|
886
|
-
tilde: /* @__PURE__ */ (0,
|
|
887
|
-
minus: /* @__PURE__ */ (0,
|
|
888
|
-
close: /* @__PURE__ */ (0,
|
|
889
|
-
check: /* @__PURE__ */ (0,
|
|
890
|
-
info: /* @__PURE__ */ (0,
|
|
891
|
-
/* @__PURE__ */ (0,
|
|
892
|
-
/* @__PURE__ */ (0,
|
|
893
|
-
] }),
|
|
894
|
-
question: /* @__PURE__ */ (0,
|
|
895
|
-
/* @__PURE__ */ (0,
|
|
896
|
-
/* @__PURE__ */ (0,
|
|
897
|
-
] }),
|
|
898
|
-
warning: /* @__PURE__ */ (0,
|
|
899
|
-
/* @__PURE__ */ (0,
|
|
900
|
-
/* @__PURE__ */ (0,
|
|
901
|
-
] }),
|
|
902
|
-
"circle-check": /* @__PURE__ */ (0,
|
|
903
|
-
/* @__PURE__ */ (0,
|
|
904
|
-
/* @__PURE__ */ (0,
|
|
905
|
-
] }),
|
|
906
|
-
"circle-close": /* @__PURE__ */ (0,
|
|
907
|
-
/* @__PURE__ */ (0,
|
|
908
|
-
/* @__PURE__ */ (0,
|
|
909
|
-
] }),
|
|
910
|
-
"circle-plus": /* @__PURE__ */ (0,
|
|
911
|
-
/* @__PURE__ */ (0,
|
|
912
|
-
/* @__PURE__ */ (0,
|
|
913
|
-
] }),
|
|
914
|
-
"circle-minus": /* @__PURE__ */ (0,
|
|
915
|
-
/* @__PURE__ */ (0,
|
|
916
|
-
/* @__PURE__ */ (0,
|
|
917
|
-
] }),
|
|
918
|
-
"chevron-left": /* @__PURE__ */ (0,
|
|
919
|
-
"chevron-right": /* @__PURE__ */ (0,
|
|
920
|
-
"chevron-up": /* @__PURE__ */ (0,
|
|
921
|
-
"chevron-down": /* @__PURE__ */ (0,
|
|
922
|
-
"double-left": /* @__PURE__ */ (0,
|
|
923
|
-
/* @__PURE__ */ (0,
|
|
924
|
-
/* @__PURE__ */ (0,
|
|
925
|
-
] }),
|
|
926
|
-
"double-right": /* @__PURE__ */ (0,
|
|
927
|
-
/* @__PURE__ */ (0,
|
|
928
|
-
/* @__PURE__ */ (0,
|
|
929
|
-
] }),
|
|
930
|
-
"arrow-left": /* @__PURE__ */ (0,
|
|
931
|
-
/* @__PURE__ */ (0,
|
|
932
|
-
/* @__PURE__ */ (0,
|
|
933
|
-
] }),
|
|
934
|
-
"arrow-right": /* @__PURE__ */ (0,
|
|
935
|
-
/* @__PURE__ */ (0,
|
|
936
|
-
/* @__PURE__ */ (0,
|
|
937
|
-
] }),
|
|
938
|
-
"arrow-up": /* @__PURE__ */ (0,
|
|
939
|
-
/* @__PURE__ */ (0,
|
|
940
|
-
/* @__PURE__ */ (0,
|
|
941
|
-
] }),
|
|
942
|
-
"arrow-down": /* @__PURE__ */ (0,
|
|
943
|
-
/* @__PURE__ */ (0,
|
|
944
|
-
/* @__PURE__ */ (0,
|
|
945
|
-
] }),
|
|
946
|
-
menu: /* @__PURE__ */ (0,
|
|
947
|
-
"more-horizontal": /* @__PURE__ */ (0,
|
|
948
|
-
"more-vertical": /* @__PURE__ */ (0,
|
|
949
|
-
home: /* @__PURE__ */ (0,
|
|
950
|
-
/* @__PURE__ */ (0,
|
|
951
|
-
/* @__PURE__ */ (0,
|
|
952
|
-
] }),
|
|
953
|
-
user: /* @__PURE__ */ (0,
|
|
954
|
-
/* @__PURE__ */ (0,
|
|
955
|
-
/* @__PURE__ */ (0,
|
|
956
|
-
] }),
|
|
957
|
-
users: /* @__PURE__ */ (0,
|
|
958
|
-
/* @__PURE__ */ (0,
|
|
959
|
-
/* @__PURE__ */ (0,
|
|
960
|
-
/* @__PURE__ */ (0,
|
|
961
|
-
] }),
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
/* @__PURE__ */ (0,
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
/* @__PURE__ */ (0,
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
/* @__PURE__ */ (0,
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
/* @__PURE__ */ (0,
|
|
978
|
-
/* @__PURE__ */ (0,
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
/* @__PURE__ */ (0,
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
/* @__PURE__ */ (0,
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
/* @__PURE__ */ (0,
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
/* @__PURE__ */ (0,
|
|
1157
|
+
tilde: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
|
|
1158
|
+
minus: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 12h16" }),
|
|
1159
|
+
close: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 5 14 14M19 5 5 19" }),
|
|
1160
|
+
check: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4 12.5 5.2 5L20 6.5" }),
|
|
1161
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1162
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1163
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 11v6M12 7.2v.1" })
|
|
1164
|
+
] }),
|
|
1165
|
+
question: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1166
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1167
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M9.8 9a2.4 2.4 0 1 1 3.5 2.2c-.9.5-1.3 1.1-1.3 2.1M12 16.8v.1" })
|
|
1168
|
+
] }),
|
|
1169
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1170
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M10.3 4.1 2.6 18a2 2 0 0 0 1.8 3h15.2a2 2 0 0 0 1.8-3L13.7 4.1a2 2 0 0 0-3.4 0Z" }),
|
|
1171
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 9v4M12 17v.1" })
|
|
1172
|
+
] }),
|
|
1173
|
+
"circle-check": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1174
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1175
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m8 12 2.7 2.7L16.5 9" })
|
|
1176
|
+
] }),
|
|
1177
|
+
"circle-close": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1178
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1179
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m9 9 6 6M15 9l-6 6" })
|
|
1180
|
+
] }),
|
|
1181
|
+
"circle-plus": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1182
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1183
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 8v8M8 12h8" })
|
|
1184
|
+
] }),
|
|
1185
|
+
"circle-minus": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1186
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1187
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8 12h8" })
|
|
1188
|
+
] }),
|
|
1189
|
+
"chevron-left": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m15.5 5-7 7 7 7" }),
|
|
1190
|
+
"chevron-right": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m8.5 5 7 7-7 7" }),
|
|
1191
|
+
"chevron-up": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 15.5 7-7 7 7" }),
|
|
1192
|
+
"chevron-down": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 8.5 7 7 7-7" }),
|
|
1193
|
+
"double-left": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1194
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 5-7 7 7 7" }),
|
|
1195
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m19 5-7 7 7 7" })
|
|
1196
|
+
] }),
|
|
1197
|
+
"double-right": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1198
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 5 7 7-7 7" }),
|
|
1199
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 5 7 7-7 7" })
|
|
1200
|
+
] }),
|
|
1201
|
+
"arrow-left": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1202
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m10 5-7 7 7 7" }),
|
|
1203
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 12h18" })
|
|
1204
|
+
] }),
|
|
1205
|
+
"arrow-right": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1206
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m14 5 7 7-7 7" }),
|
|
1207
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 12h18" })
|
|
1208
|
+
] }),
|
|
1209
|
+
"arrow-up": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1210
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 10 7-7 7 7" }),
|
|
1211
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 3v18" })
|
|
1212
|
+
] }),
|
|
1213
|
+
"arrow-down": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1214
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 14 7 7 7-7" }),
|
|
1215
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 3v18" })
|
|
1216
|
+
] }),
|
|
1217
|
+
menu: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 6h16M4 12h16M4 18h16" }),
|
|
1218
|
+
"more-horizontal": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M5 12h.1M12 12h.1M19 12h.1" }),
|
|
1219
|
+
"more-vertical": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 5v.1M12 12v.1M12 19v.1" }),
|
|
1220
|
+
home: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1221
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m3.5 11 8.5-7 8.5 7" }),
|
|
1222
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M5.5 9.5V20h13V9.5M9.5 20v-6h5v6" })
|
|
1223
|
+
] }),
|
|
1224
|
+
user: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1225
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "8", r: "4" }),
|
|
1226
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4.5 21c.7-4.2 3.2-6.5 7.5-6.5s6.8 2.3 7.5 6.5" })
|
|
1227
|
+
] }),
|
|
1228
|
+
users: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1229
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "9", cy: "8", r: "3.5" }),
|
|
1230
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M2.8 20c.6-3.8 2.7-5.8 6.2-5.8s5.6 2 6.2 5.8" }),
|
|
1231
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M15 5.2a3.5 3.5 0 0 1 0 6.6M16.2 14.5c2.9.5 4.4 2.3 4.9 5.5" })
|
|
1232
|
+
] }),
|
|
1233
|
+
// 保留齿轮原始路径;与其余图标一起通过统一几何规则调整主体大小。
|
|
1234
|
+
settings: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1235
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "2.8" }),
|
|
1236
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M10.4 6.24 10.4 4 13.6 4 13.6 6.24 14.944 6.792 16.528 5.208 18.792 7.472 17.208 9.056 17.76 10.4 20 10.4 20 13.6 17.76 13.6 17.208 14.944 18.792 16.528 16.528 18.792 14.944 17.208 13.6 17.76 13.6 20 10.4 20 10.4 17.76 9.056 17.208 7.472 18.792 5.208 16.528 6.792 14.944 6.24 13.6 4 13.6 4 10.4 6.24 10.4 6.792 9.056 5.208 7.472 7.472 5.208 9.056 6.792Z" })
|
|
1237
|
+
] }),
|
|
1238
|
+
edit: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1239
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 20h4l11-11a2.8 2.8 0 0 0-4-4L4 16v4Z" }),
|
|
1240
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m13.5 6.5 4 4M4 20h16" })
|
|
1241
|
+
] }),
|
|
1242
|
+
copy: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1243
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "8", y: "8", width: "12", height: "12", rx: "2.5" }),
|
|
1244
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2" })
|
|
1245
|
+
] }),
|
|
1246
|
+
trash: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 7h16M9 3h6l1 4H8l1-4ZM6 7l1 14h10l1-14M10 11v6M14 11v6" }) }),
|
|
1247
|
+
scissors: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1248
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "6", cy: "7", r: "3" }),
|
|
1249
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "6", cy: "17", r: "3" }),
|
|
1250
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m8.7 8.3 11.3 6.2M8.7 15.7 20 9.5" })
|
|
1251
|
+
] }),
|
|
1252
|
+
undo: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1253
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m8 7-5 5 5 5" }),
|
|
1254
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 12h10a7 7 0 0 1 7 7" })
|
|
1255
|
+
] }),
|
|
1256
|
+
redo: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1257
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m16 7 5 5-5 5" }),
|
|
1258
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M21 12H11a7 7 0 0 0-7 7" })
|
|
1259
|
+
] }),
|
|
1260
|
+
"zoom-in": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1261
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "10.8", cy: "10.8", r: "6.8" }),
|
|
1262
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m15.8 15.8 5.2 5.2M10.8 7.8v6M7.8 10.8h6" })
|
|
1263
|
+
] }),
|
|
1264
|
+
"zoom-out": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1265
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "10.8", cy: "10.8", r: "6.8" }),
|
|
1266
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m15.8 15.8 5.2 5.2M7.8 10.8h6" })
|
|
995
1267
|
] }),
|
|
996
1268
|
// 图片变换工具使用独立图标,便于在预览及其他编辑界面复用。
|
|
997
|
-
"flip-horizontal": /* @__PURE__ */ (0,
|
|
998
|
-
"flip-vertical": /* @__PURE__ */ (0,
|
|
999
|
-
"rotate-left": /* @__PURE__ */ (0,
|
|
1000
|
-
/* @__PURE__ */ (0,
|
|
1001
|
-
/* @__PURE__ */ (0,
|
|
1002
|
-
] }),
|
|
1003
|
-
"rotate-right": /* @__PURE__ */ (0,
|
|
1004
|
-
/* @__PURE__ */ (0,
|
|
1005
|
-
/* @__PURE__ */ (0,
|
|
1006
|
-
] }),
|
|
1007
|
-
download: /* @__PURE__ */ (0,
|
|
1008
|
-
upload: /* @__PURE__ */ (0,
|
|
1009
|
-
refresh: /* @__PURE__ */ (0,
|
|
1010
|
-
/* @__PURE__ */ (0,
|
|
1011
|
-
/* @__PURE__ */ (0,
|
|
1012
|
-
] }),
|
|
1013
|
-
loader: /* @__PURE__ */ (0,
|
|
1014
|
-
calendar: /* @__PURE__ */ (0,
|
|
1015
|
-
/* @__PURE__ */ (0,
|
|
1016
|
-
/* @__PURE__ */ (0,
|
|
1017
|
-
] }),
|
|
1018
|
-
clock: /* @__PURE__ */ (0,
|
|
1019
|
-
/* @__PURE__ */ (0,
|
|
1020
|
-
/* @__PURE__ */ (0,
|
|
1021
|
-
] }),
|
|
1022
|
-
mail: /* @__PURE__ */ (0,
|
|
1023
|
-
/* @__PURE__ */ (0,
|
|
1024
|
-
/* @__PURE__ */ (0,
|
|
1025
|
-
] }),
|
|
1026
|
-
phone: /* @__PURE__ */ (0,
|
|
1027
|
-
link: /* @__PURE__ */ (0,
|
|
1028
|
-
/* @__PURE__ */ (0,
|
|
1029
|
-
/* @__PURE__ */ (0,
|
|
1030
|
-
] }),
|
|
1031
|
-
"external-link": /* @__PURE__ */ (0,
|
|
1032
|
-
/* @__PURE__ */ (0,
|
|
1033
|
-
/* @__PURE__ */ (0,
|
|
1034
|
-
] }),
|
|
1035
|
-
eye: /* @__PURE__ */ (0,
|
|
1036
|
-
/* @__PURE__ */ (0,
|
|
1037
|
-
/* @__PURE__ */ (0,
|
|
1038
|
-
] }),
|
|
1039
|
-
"eye-off": /* @__PURE__ */ (0,
|
|
1040
|
-
lock: /* @__PURE__ */ (0,
|
|
1041
|
-
/* @__PURE__ */ (0,
|
|
1042
|
-
/* @__PURE__ */ (0,
|
|
1043
|
-
] }),
|
|
1044
|
-
unlock: /* @__PURE__ */ (0,
|
|
1045
|
-
/* @__PURE__ */ (0,
|
|
1046
|
-
/* @__PURE__ */ (0,
|
|
1047
|
-
] }),
|
|
1048
|
-
bell: /* @__PURE__ */ (0,
|
|
1049
|
-
/* @__PURE__ */ (0,
|
|
1050
|
-
/* @__PURE__ */ (0,
|
|
1051
|
-
] }),
|
|
1052
|
-
star: /* @__PURE__ */ (0,
|
|
1053
|
-
heart: /* @__PURE__ */ (0,
|
|
1054
|
-
file: /* @__PURE__ */ (0,
|
|
1055
|
-
/* @__PURE__ */ (0,
|
|
1056
|
-
/* @__PURE__ */ (0,
|
|
1057
|
-
] }),
|
|
1058
|
-
folder: /* @__PURE__ */ (0,
|
|
1059
|
-
image: /* @__PURE__ */ (0,
|
|
1060
|
-
/* @__PURE__ */ (0,
|
|
1061
|
-
/* @__PURE__ */ (0,
|
|
1062
|
-
/* @__PURE__ */ (0,
|
|
1063
|
-
] }),
|
|
1064
|
-
filter: /* @__PURE__ */ (0,
|
|
1065
|
-
"sort-ascending": /* @__PURE__ */ (0,
|
|
1066
|
-
/* @__PURE__ */ (0,
|
|
1067
|
-
/* @__PURE__ */ (0,
|
|
1068
|
-
] }),
|
|
1069
|
-
"sort-descending": /* @__PURE__ */ (0,
|
|
1070
|
-
/* @__PURE__ */ (0,
|
|
1071
|
-
/* @__PURE__ */ (0,
|
|
1072
|
-
] }),
|
|
1073
|
-
play: /* @__PURE__ */ (0,
|
|
1074
|
-
/* @__PURE__ */ (0,
|
|
1075
|
-
/* @__PURE__ */ (0,
|
|
1076
|
-
] }),
|
|
1077
|
-
pause: /* @__PURE__ */ (0,
|
|
1078
|
-
/* @__PURE__ */ (0,
|
|
1079
|
-
/* @__PURE__ */ (0,
|
|
1080
|
-
] }),
|
|
1081
|
-
book: /* @__PURE__ */ (0,
|
|
1082
|
-
/* @__PURE__ */ (0,
|
|
1083
|
-
/* @__PURE__ */ (0,
|
|
1084
|
-
] }),
|
|
1085
|
-
component: /* @__PURE__ */ (0,
|
|
1086
|
-
/* @__PURE__ */ (0,
|
|
1087
|
-
/* @__PURE__ */ (0,
|
|
1088
|
-
/* @__PURE__ */ (0,
|
|
1089
|
-
/* @__PURE__ */ (0,
|
|
1090
|
-
] }),
|
|
1091
|
-
token: /* @__PURE__ */ (0,
|
|
1092
|
-
/* @__PURE__ */ (0,
|
|
1093
|
-
/* @__PURE__ */ (0,
|
|
1094
|
-
] }),
|
|
1095
|
-
sun: /* @__PURE__ */ (0,
|
|
1096
|
-
/* @__PURE__ */ (0,
|
|
1097
|
-
/* @__PURE__ */ (0,
|
|
1098
|
-
] }),
|
|
1099
|
-
moon: /* @__PURE__ */ (0,
|
|
1100
|
-
code: /* @__PURE__ */ (0,
|
|
1101
|
-
github: /* @__PURE__ */ (0,
|
|
1269
|
+
"flip-horizontal": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 3v18M3 6h5v12H3zM16 6h5v12h-5z" }) }),
|
|
1270
|
+
"flip-vertical": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 12h18M6 3h12v5H6zM6 16h12v5H6z" }) }),
|
|
1271
|
+
"rotate-left": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1272
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 9a8 8 0 1 1 0 6M4 3v6h6" }),
|
|
1273
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "9", y: "9", width: "6", height: "6", rx: "1" })
|
|
1274
|
+
] }),
|
|
1275
|
+
"rotate-right": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1276
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20 9a8 8 0 1 0 0 6M20 3v6h-6" }),
|
|
1277
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "9", y: "9", width: "6", height: "6", rx: "1" })
|
|
1278
|
+
] }),
|
|
1279
|
+
download: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 3v12M7 10l5 5 5-5M4 20h16" }) }),
|
|
1280
|
+
upload: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 16V4M7 9l5-5 5 5M4 20h16" }) }),
|
|
1281
|
+
refresh: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1282
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20 4v4.686h-4.686" }),
|
|
1283
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20 8.686 17.657 6.343A8 8 0 1 0 20 12" })
|
|
1284
|
+
] }),
|
|
1285
|
+
loader: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M18.4 5.6l-2.1 2.1M7.7 16.3l-2.1 2.1" }),
|
|
1286
|
+
calendar: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1287
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "5", width: "18", height: "16", rx: "2.5" }),
|
|
1288
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8 3v4M16 3v4M3 10h18M7 14h2M11 14h2M15 14h2M7 18h2M11 18h2" })
|
|
1289
|
+
] }),
|
|
1290
|
+
clock: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1291
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1292
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 7v5l3.5 2" })
|
|
1293
|
+
] }),
|
|
1294
|
+
mail: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1295
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2.5" }),
|
|
1296
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4 7 8 6 8-6" })
|
|
1297
|
+
] }),
|
|
1298
|
+
phone: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8.2 3.5 5.4 4.8c-1 .5-1.5 1.7-1.1 2.8 2.2 5.9 6.2 9.9 12.1 12.1 1.1.4 2.3-.1 2.8-1.1l1.3-2.8-4.2-2-1.4 2.1c-2.8-1.2-5.6-4-6.8-6.8l2.1-1.4-2-4.2Z" }),
|
|
1299
|
+
link: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1300
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m9.5 14.5 5-5" }),
|
|
1301
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7.5 16.5 6 18a3.5 3.5 0 0 1-5-5l3-3a3.5 3.5 0 0 1 5 0M16.5 7.5 18 6a3.5 3.5 0 0 1 5 5l-3 3a3.5 3.5 0 0 1-5 0" })
|
|
1302
|
+
] }),
|
|
1303
|
+
"external-link": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1304
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M14 4h6v6M20 4 11 13" }),
|
|
1305
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M19 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h6" })
|
|
1306
|
+
] }),
|
|
1307
|
+
eye: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1308
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z" }),
|
|
1309
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "3" })
|
|
1310
|
+
] }),
|
|
1311
|
+
"eye-off": /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m3 3 18 18M10.6 6.1A10 10 0 0 1 12 6c6 0 9.5 6 9.5 6a14.5 14.5 0 0 1-2.2 3M6.4 6.4C3.9 8.2 2.5 12 2.5 12s3.5 6 9.5 6a9.7 9.7 0 0 0 3-.5M9.9 9.9a3 3 0 0 0 4.2 4.2" }) }),
|
|
1312
|
+
lock: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1313
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "4", y: "10", width: "16", height: "11", rx: "2.5" }),
|
|
1314
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8 10V7a4 4 0 0 1 8 0v3M12 14v3" })
|
|
1315
|
+
] }),
|
|
1316
|
+
unlock: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1317
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "4", y: "10", width: "16", height: "11", rx: "2.5" }),
|
|
1318
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8 10V7a4 4 0 0 1 7.5-2M12 14v3" })
|
|
1319
|
+
] }),
|
|
1320
|
+
bell: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1321
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M18 9a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9Z" }),
|
|
1322
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M10 21h4" })
|
|
1323
|
+
] }),
|
|
1324
|
+
star: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9L12 3Z" }),
|
|
1325
|
+
heart: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20.8 5.8a5.5 5.5 0 0 0-7.8 0L12 6.9l-1-1.1a5.5 5.5 0 1 0-7.8 7.8L12 21l8.8-7.4a5.5 5.5 0 0 0 0-7.8Z" }),
|
|
1326
|
+
file: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1327
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M6 3h8l4 4v14H6V3Z" }),
|
|
1328
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M14 3v5h4" })
|
|
1329
|
+
] }),
|
|
1330
|
+
folder: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 6h7l2 2h9v11H3V6Z" }),
|
|
1331
|
+
image: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1332
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2.5" }),
|
|
1333
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "9", cy: "9", r: "2" }),
|
|
1334
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4 17 4.5-4.5 3.5 3 2.5-2.5 5.5 5" })
|
|
1335
|
+
] }),
|
|
1336
|
+
filter: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 5h18l-7 8v6l-4 2v-8L3 5Z" }),
|
|
1337
|
+
"sort-ascending": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1338
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7 19V5M3.5 8.5 7 5l3.5 3.5" }),
|
|
1339
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M13 7h8M13 12h6M13 17h4" })
|
|
1340
|
+
] }),
|
|
1341
|
+
"sort-descending": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1342
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7 5v14M3.5 15.5 7 19l3.5-3.5" }),
|
|
1343
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M13 7h4M13 12h6M13 17h8" })
|
|
1344
|
+
] }),
|
|
1345
|
+
play: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1346
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1347
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m10 8 6 4-6 4V8Z" })
|
|
1348
|
+
] }),
|
|
1349
|
+
pause: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1350
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1351
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M9.5 9v6M14.5 9v6" })
|
|
1352
|
+
] }),
|
|
1353
|
+
book: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1354
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 5.5A2.5 2.5 0 0 1 6.5 3H11v17H6.5A2.5 2.5 0 0 0 4 22V5.5Z" }),
|
|
1355
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20 5.5A2.5 2.5 0 0 0 17.5 3H13v17h4.5A2.5 2.5 0 0 1 20 22V5.5Z" })
|
|
1356
|
+
] }),
|
|
1357
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1358
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "4", y: "4", width: "6", height: "6", rx: "1.5" }),
|
|
1359
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "14", y: "4", width: "6", height: "6", rx: "1.5" }),
|
|
1360
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "4", y: "14", width: "6", height: "6", rx: "1.5" }),
|
|
1361
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "14", y: "14", width: "6", height: "6", rx: "1.5" })
|
|
1362
|
+
] }),
|
|
1363
|
+
token: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1364
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "4" }),
|
|
1365
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M18.7 5.3l-2.1 2.1M7.4 16.6l-2.1 2.1" })
|
|
1366
|
+
] }),
|
|
1367
|
+
sun: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1368
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "3.6" }),
|
|
1369
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M18.7 5.3l-1.4 1.4M6.7 17.3l-1.4 1.4" })
|
|
1370
|
+
] }),
|
|
1371
|
+
moon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M20 15.2A8 8 0 0 1 8.8 4 8.5 8.5 0 1 0 20 15.2Z" }),
|
|
1372
|
+
code: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m9 18-6-6 6-6M15 6l6 6-6 6" }),
|
|
1373
|
+
github: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M9 19c-4 1.2-4-2-5-2.5M14 22v-3.1c0-.9.3-1.5.8-1.9 2.7-.3 5.5-1.3 5.5-6A4.7 4.7 0 0 0 19 7.7 4.4 4.4 0 0 0 18.9 4S17.8 3.7 15 5.3a11.7 11.7 0 0 0-6 0C6.2 3.7 5.1 4 5.1 4A4.4 4.4 0 0 0 5 7.7 4.7 4.7 0 0 0 3.7 11c0 4.7 2.8 5.7 5.5 6 .5.4.8 1 .8 1.9V22" })
|
|
1102
1374
|
};
|
|
1103
1375
|
var iconPaths = { ...coreIconPaths, ...extendedIconPaths };
|
|
1104
1376
|
var ICON_NAMES = Object.freeze(Object.keys(iconPaths));
|
|
1105
1377
|
var filledIconPaths = {
|
|
1106
|
-
info: /* @__PURE__ */ (0,
|
|
1107
|
-
/* @__PURE__ */ (0,
|
|
1108
|
-
/* @__PURE__ */ (0,
|
|
1109
|
-
] }),
|
|
1110
|
-
question: /* @__PURE__ */ (0,
|
|
1111
|
-
/* @__PURE__ */ (0,
|
|
1112
|
-
/* @__PURE__ */ (0,
|
|
1113
|
-
] }),
|
|
1114
|
-
warning: /* @__PURE__ */ (0,
|
|
1115
|
-
/* @__PURE__ */ (0,
|
|
1116
|
-
/* @__PURE__ */ (0,
|
|
1117
|
-
] }),
|
|
1118
|
-
"circle-check": /* @__PURE__ */ (0,
|
|
1119
|
-
/* @__PURE__ */ (0,
|
|
1120
|
-
/* @__PURE__ */ (0,
|
|
1121
|
-
] }),
|
|
1122
|
-
"circle-close": /* @__PURE__ */ (0,
|
|
1123
|
-
/* @__PURE__ */ (0,
|
|
1124
|
-
/* @__PURE__ */ (0,
|
|
1125
|
-
] }),
|
|
1126
|
-
"circle-plus": /* @__PURE__ */ (0,
|
|
1127
|
-
/* @__PURE__ */ (0,
|
|
1128
|
-
/* @__PURE__ */ (0,
|
|
1129
|
-
] }),
|
|
1130
|
-
"circle-minus": /* @__PURE__ */ (0,
|
|
1131
|
-
/* @__PURE__ */ (0,
|
|
1132
|
-
/* @__PURE__ */ (0,
|
|
1133
|
-
] }),
|
|
1134
|
-
home: /* @__PURE__ */ (0,
|
|
1135
|
-
user: /* @__PURE__ */ (0,
|
|
1136
|
-
/* @__PURE__ */ (0,
|
|
1137
|
-
/* @__PURE__ */ (0,
|
|
1138
|
-
] }),
|
|
1139
|
-
users: /* @__PURE__ */ (0,
|
|
1140
|
-
/* @__PURE__ */ (0,
|
|
1141
|
-
/* @__PURE__ */ (0,
|
|
1142
|
-
/* @__PURE__ */ (0,
|
|
1143
|
-
] }),
|
|
1144
|
-
trash: /* @__PURE__ */ (0,
|
|
1145
|
-
bell: /* @__PURE__ */ (0,
|
|
1146
|
-
star: /* @__PURE__ */ (0,
|
|
1147
|
-
heart: /* @__PURE__ */ (0,
|
|
1148
|
-
mail: /* @__PURE__ */ (0,
|
|
1149
|
-
/* @__PURE__ */ (0,
|
|
1150
|
-
/* @__PURE__ */ (0,
|
|
1151
|
-
] }),
|
|
1152
|
-
lock: /* @__PURE__ */ (0,
|
|
1153
|
-
unlock: /* @__PURE__ */ (0,
|
|
1154
|
-
calendar: /* @__PURE__ */ (0,
|
|
1155
|
-
/* @__PURE__ */ (0,
|
|
1156
|
-
/* @__PURE__ */ (0,
|
|
1157
|
-
] }),
|
|
1158
|
-
clock: /* @__PURE__ */ (0,
|
|
1159
|
-
/* @__PURE__ */ (0,
|
|
1160
|
-
/* @__PURE__ */ (0,
|
|
1161
|
-
] }),
|
|
1162
|
-
file: /* @__PURE__ */ (0,
|
|
1163
|
-
folder: /* @__PURE__ */ (0,
|
|
1164
|
-
image: /* @__PURE__ */ (0,
|
|
1165
|
-
/* @__PURE__ */ (0,
|
|
1166
|
-
/* @__PURE__ */ (0,
|
|
1167
|
-
/* @__PURE__ */ (0,
|
|
1168
|
-
] }),
|
|
1169
|
-
filter: /* @__PURE__ */ (0,
|
|
1170
|
-
play: /* @__PURE__ */ (0,
|
|
1171
|
-
/* @__PURE__ */ (0,
|
|
1172
|
-
/* @__PURE__ */ (0,
|
|
1173
|
-
] }),
|
|
1174
|
-
pause: /* @__PURE__ */ (0,
|
|
1175
|
-
/* @__PURE__ */ (0,
|
|
1176
|
-
/* @__PURE__ */ (0,
|
|
1177
|
-
] }),
|
|
1178
|
-
book: /* @__PURE__ */ (0,
|
|
1179
|
-
component: /* @__PURE__ */ (0,
|
|
1180
|
-
/* @__PURE__ */ (0,
|
|
1181
|
-
/* @__PURE__ */ (0,
|
|
1182
|
-
/* @__PURE__ */ (0,
|
|
1183
|
-
/* @__PURE__ */ (0,
|
|
1184
|
-
] }),
|
|
1185
|
-
token: /* @__PURE__ */ (0,
|
|
1186
|
-
/* @__PURE__ */ (0,
|
|
1187
|
-
/* @__PURE__ */ (0,
|
|
1378
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1379
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1380
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 10.5v6M12 7.2v.1", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1381
|
+
] }),
|
|
1382
|
+
question: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1383
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M9.6 9a2.5 2.5 0 1 1 3.6 2.3c-.8.5-1.2 1.1-1.2 2.1M12 16.8v.1", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1385
|
+
] }),
|
|
1386
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1387
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M10.3 3.5 1.8 19a2 2 0 0 0 1.8 3h16.8a2 2 0 0 0 1.8-3L13.7 3.5a2 2 0 0 0-3.4 0Z", fill: "currentColor", stroke: "none" }),
|
|
1388
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 9v5M12 18v.1", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1389
|
+
] }),
|
|
1390
|
+
"circle-check": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1391
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1392
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m7.5 12 3 3 6-6", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1393
|
+
] }),
|
|
1394
|
+
"circle-close": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1395
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1396
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m8.8 8.8 6.4 6.4M15.2 8.8l-6.4 6.4", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1397
|
+
] }),
|
|
1398
|
+
"circle-plus": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1399
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1400
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 7.5v9M7.5 12h9", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1401
|
+
] }),
|
|
1402
|
+
"circle-minus": /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1403
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1404
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7.5 12h9", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1405
|
+
] }),
|
|
1406
|
+
home: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M2.6 10.8 12 2.8l9.4 8a1 1 0 0 1-1.3 1.5l-.6-.5V21h-5.2v-6.2H9.7V21H4.5v-9.2l-.6.5a1 1 0 1 1-1.3-1.5Z", fill: "currentColor", stroke: "none" }),
|
|
1407
|
+
user: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1408
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "7.5", r: "4.5", fill: "currentColor", stroke: "none" }),
|
|
1409
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3.5 21c.7-5 3.6-7.5 8.5-7.5s7.8 2.5 8.5 7.5H3.5Z", fill: "currentColor", stroke: "none" })
|
|
1410
|
+
] }),
|
|
1411
|
+
users: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1412
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "8.5", cy: "8", r: "3.8", fill: "currentColor", stroke: "none" }),
|
|
1413
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "17", cy: "8.5", r: "3", fill: "currentColor", stroke: "none", opacity: ".7" }),
|
|
1414
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M1.8 21c.6-4.6 2.8-7 6.7-7s6.1 2.4 6.7 7H1.8ZM14.4 15.2c3.9-.2 6.4 1.7 7 5.8h-4.5a9.9 9.9 0 0 0-2.5-5.8Z", fill: "currentColor", stroke: "none" })
|
|
1415
|
+
] }),
|
|
1416
|
+
trash: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8 3h8l1 3h4v2H3V6h4l1-3Zm-2.5 7h13l-1 11h-11l-1-11Z", fill: "currentColor", stroke: "none" }),
|
|
1417
|
+
bell: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 2.5a2 2 0 0 1 2 1.6c3 .9 5 3.6 5 6.9v4.3l2 3.2H3l2-3.2V11c0-3.3 2-6 5-6.9a2 2 0 0 1 2-1.6ZM9.2 20h5.6a3 3 0 0 1-5.6 0Z", fill: "currentColor", stroke: "none" }),
|
|
1418
|
+
star: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m12 2.2 3 6 6.6 1-4.8 4.6 1.1 6.6-5.9-3.1-5.9 3.1 1.1-6.6-4.8-4.6 6.6-1 3-6Z", fill: "currentColor", stroke: "none" }),
|
|
1419
|
+
heart: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 21.3 3.1 13.7A5.8 5.8 0 0 1 11 5.2l1 1 1-1a5.8 5.8 0 0 1 7.9 8.5L12 21.3Z", fill: "currentColor", stroke: "none" }),
|
|
1420
|
+
mail: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1421
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "2.5", y: "4.5", width: "19", height: "15", rx: "2.5", fill: "currentColor", stroke: "none" }),
|
|
1422
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4.5 7 7.5 5.8L19.5 7", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "1.8" })
|
|
1423
|
+
] }),
|
|
1424
|
+
lock: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7 10V7a5 5 0 0 1 10 0v3h1.5a2.5 2.5 0 0 1 2.5 2.5v7a2.5 2.5 0 0 1-2.5 2.5h-13A2.5 2.5 0 0 1 3 19.5v-7A2.5 2.5 0 0 1 5.5 10H7Zm2.5 0h5V7a2.5 2.5 0 0 0-5 0v3Z", fill: "currentColor", stroke: "none" }),
|
|
1425
|
+
unlock: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M7 10V7a5 5 0 0 1 9.5-2.2l-2.2 1.1A2.5 2.5 0 0 0 9.5 7v3h9A2.5 2.5 0 0 1 21 12.5v7a2.5 2.5 0 0 1-2.5 2.5h-13A2.5 2.5 0 0 1 3 19.5v-7A2.5 2.5 0 0 1 5.5 10H7Z", fill: "currentColor", stroke: "none" }),
|
|
1426
|
+
calendar: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1427
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "2.5", y: "4.5", width: "19", height: "17", rx: "2.5", fill: "currentColor", stroke: "none" }),
|
|
1428
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 9.5h18M8 2.5v4M16 2.5v4", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "1.8" })
|
|
1429
|
+
] }),
|
|
1430
|
+
clock: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1431
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1432
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 6.5V12l4 2.3", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "2" })
|
|
1433
|
+
] }),
|
|
1434
|
+
file: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M5 2.5h10l4 4V22H5V2.5Zm9 1.8V8h3.7L14 4.3Z", fill: "currentColor", stroke: "none" }),
|
|
1435
|
+
folder: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M2.5 5h7l2.2 2.5h9.8V20H2.5V5Z", fill: "currentColor", stroke: "none" }),
|
|
1436
|
+
image: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1437
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "2.5", y: "3.5", width: "19", height: "17", rx: "2.5", fill: "currentColor", stroke: "none" }),
|
|
1438
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4.5 18 4.3-4.6 3.4 3 2.5-2.6 4.8 4.2", stroke: "var(--sia-icon-contrast, #fff)", strokeWidth: "1.7" }),
|
|
1439
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "8", cy: "8.5", r: "1.7", fill: "var(--sia-icon-contrast, #fff)", stroke: "none" })
|
|
1440
|
+
] }),
|
|
1441
|
+
filter: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M2 4h20l-7.8 9v6.2L9.8 22v-9L2 4Z", fill: "currentColor", stroke: "none" }),
|
|
1442
|
+
play: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1443
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1444
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m10 7.8 6.5 4.2-6.5 4.2V7.8Z", fill: "var(--sia-icon-contrast, #fff)", stroke: "none" })
|
|
1445
|
+
] }),
|
|
1446
|
+
pause: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1447
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
|
|
1448
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M8.5 7.5h2.5v9H8.5v-9Zm4.5 0h2.5v9H13v-9Z", fill: "var(--sia-icon-contrast, #fff)", stroke: "none" })
|
|
1449
|
+
] }),
|
|
1450
|
+
book: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 4.5A3.5 3.5 0 0 1 6.5 1H11v19H6.5A3.5 3.5 0 0 0 3 23V4.5ZM21 4.5A3.5 3.5 0 0 0 17.5 1H13v19h4.5A3.5 3.5 0 0 1 21 23V4.5Z", fill: "currentColor", stroke: "none" }),
|
|
1451
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1452
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "3", width: "8", height: "8", rx: "2", fill: "currentColor", stroke: "none" }),
|
|
1453
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "13", y: "3", width: "8", height: "8", rx: "2", fill: "currentColor", stroke: "none" }),
|
|
1454
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "3", y: "13", width: "8", height: "8", rx: "2", fill: "currentColor", stroke: "none" }),
|
|
1455
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("rect", { x: "13", y: "13", width: "8", height: "8", rx: "2", fill: "currentColor", stroke: "none" })
|
|
1456
|
+
] }),
|
|
1457
|
+
token: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1458
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "12", cy: "12", r: "5", fill: "currentColor", stroke: "none" }),
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 1v4M12 19v4M1 12h4M19 12h4M4.2 4.2 7 7M17 17l2.8 2.8M19.8 4.2 17 7M7 17l-2.8 2.8", stroke: "currentColor", strokeWidth: "2.2" })
|
|
1188
1460
|
] })
|
|
1189
1461
|
};
|
|
1190
1462
|
var FILLED_ICON_NAMES = Object.freeze(Object.keys(filledIconPaths));
|
|
1191
|
-
var
|
|
1463
|
+
var normalizedOutlinePaths = normalizeIconPaths(iconPaths, outlineIconBounds);
|
|
1464
|
+
var normalizedFilledPaths = normalizeIconPaths(filledIconPaths, filledIconBounds);
|
|
1465
|
+
var Icon = (0, import_react5.forwardRef)(function Icon2({ name, size = "1em", strokeWidth = 1.8, rotate = 0, spin = false, pulse = false, label, variant = "outline", className = "", style, ...props }, ref) {
|
|
1192
1466
|
const resolvedSize = typeof size === "number" ? `${size}px` : size;
|
|
1193
1467
|
const mergedStyle = { "--sia-icon-size": resolvedSize, "--sia-icon-rotate": `${rotate}deg`, ...style };
|
|
1194
1468
|
const animationClass = spin ? " sia-icon--spin" : pulse ? " sia-icon--pulse" : "";
|
|
1195
1469
|
const filledPath = filledIconPaths[name];
|
|
1196
1470
|
const resolvedVariant = variant === "filled" && filledPath ? "filled" : "outline";
|
|
1197
|
-
|
|
1471
|
+
const geometry = resolvedVariant === "filled" ? normalizedFilledPaths[name] : normalizedOutlinePaths[name];
|
|
1472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1198
1473
|
"span",
|
|
1199
1474
|
{
|
|
1200
1475
|
ref,
|
|
@@ -1205,15 +1480,15 @@ var Icon = (0, import_react4.forwardRef)(function Icon2({ name, size = "1em", st
|
|
|
1205
1480
|
"aria-hidden": label ? void 0 : true,
|
|
1206
1481
|
style: mergedStyle,
|
|
1207
1482
|
...withTitleTooltip(props),
|
|
1208
|
-
children: /* @__PURE__ */ (0,
|
|
1483
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: strokeWidth / geometry.scale, strokeLinecap: "round", strokeLinejoin: "round", focusable: "false", children: geometry.node })
|
|
1209
1484
|
}
|
|
1210
1485
|
);
|
|
1211
1486
|
});
|
|
1212
1487
|
|
|
1213
1488
|
// src/components/Navigation.tsx
|
|
1214
|
-
var import_react5 = require("react");
|
|
1215
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1216
1489
|
var import_react6 = require("react");
|
|
1490
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1491
|
+
var import_react7 = require("react");
|
|
1217
1492
|
function MenuPopup({
|
|
1218
1493
|
anchorRef,
|
|
1219
1494
|
open,
|
|
@@ -1224,9 +1499,9 @@ function MenuPopup({
|
|
|
1224
1499
|
onMouseEnter,
|
|
1225
1500
|
onMouseLeave
|
|
1226
1501
|
}) {
|
|
1227
|
-
const [mounted, setMounted] = (0,
|
|
1228
|
-
const [fontSize, setFontSize] = (0,
|
|
1229
|
-
(0,
|
|
1502
|
+
const [mounted, setMounted] = (0, import_react6.useState)(open);
|
|
1503
|
+
const [fontSize, setFontSize] = (0, import_react6.useState)();
|
|
1504
|
+
(0, import_react6.useLayoutEffect)(() => {
|
|
1230
1505
|
const anchor = anchorRef.current;
|
|
1231
1506
|
if (!mounted || !anchor) return;
|
|
1232
1507
|
const syncFontSize = () => setFontSize(getComputedStyle(anchor).fontSize);
|
|
@@ -1235,7 +1510,7 @@ function MenuPopup({
|
|
|
1235
1510
|
observer.observe(anchor);
|
|
1236
1511
|
return () => observer.disconnect();
|
|
1237
1512
|
});
|
|
1238
|
-
(0,
|
|
1513
|
+
(0, import_react6.useEffect)(() => {
|
|
1239
1514
|
if (open) {
|
|
1240
1515
|
setMounted(true);
|
|
1241
1516
|
return void 0;
|
|
@@ -1243,7 +1518,7 @@ function MenuPopup({
|
|
|
1243
1518
|
const timer = window.setTimeout(() => setMounted(false), 160);
|
|
1244
1519
|
return () => window.clearTimeout(timer);
|
|
1245
1520
|
}, [open]);
|
|
1246
|
-
return /* @__PURE__ */ (0,
|
|
1521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1247
1522
|
PopupPortal,
|
|
1248
1523
|
{
|
|
1249
1524
|
anchorRef,
|
|
@@ -1255,7 +1530,7 @@ function MenuPopup({
|
|
|
1255
1530
|
"data-sia-menu-owner": menuId,
|
|
1256
1531
|
onMouseEnter,
|
|
1257
1532
|
onMouseLeave,
|
|
1258
|
-
children: /* @__PURE__ */ (0,
|
|
1533
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "sia-menu__popup-list", role: "menu", children })
|
|
1259
1534
|
}
|
|
1260
1535
|
);
|
|
1261
1536
|
}
|
|
@@ -1266,15 +1541,15 @@ function MenuEntry({
|
|
|
1266
1541
|
props,
|
|
1267
1542
|
reserveIcon
|
|
1268
1543
|
}) {
|
|
1269
|
-
const anchorRef = (0,
|
|
1270
|
-
const closeTimerRef = (0,
|
|
1544
|
+
const anchorRef = (0, import_react6.useRef)(null);
|
|
1545
|
+
const closeTimerRef = (0, import_react6.useRef)(void 0);
|
|
1271
1546
|
const hasChildren = Boolean(item.children?.length);
|
|
1272
1547
|
const isOpen = props.open.includes(item.key);
|
|
1273
1548
|
const isSelected = props.selected.includes(item.key);
|
|
1274
1549
|
const path = [item.key, ...parents];
|
|
1275
1550
|
const collapsed = props.inlineCollapsed && level === 0;
|
|
1276
1551
|
const inlineSubmenu = props.mode === "inline" && !collapsed;
|
|
1277
|
-
(0,
|
|
1552
|
+
(0, import_react6.useEffect)(() => () => {
|
|
1278
1553
|
if (closeTimerRef.current !== void 0) window.clearTimeout(closeTimerRef.current);
|
|
1279
1554
|
}, []);
|
|
1280
1555
|
function cancelClose() {
|
|
@@ -1288,9 +1563,9 @@ function MenuEntry({
|
|
|
1288
1563
|
closeTimerRef.current = window.setTimeout(() => props.toggle(item.key, false), 100);
|
|
1289
1564
|
}
|
|
1290
1565
|
const hover = props.triggerSubMenuAction === "hover" && hasChildren && !inlineSubmenu;
|
|
1291
|
-
const submenu = hasChildren ? /* @__PURE__ */ (0,
|
|
1566
|
+
const submenu = hasChildren ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MenuLevel, { items: item.children ?? [], level: level + 1, parents: [item.key, ...parents], props }) : null;
|
|
1292
1567
|
const popupPlacement = props.mode === "horizontal" && level === 0 ? "bottom-start" : "right-start";
|
|
1293
|
-
return /* @__PURE__ */ (0,
|
|
1568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
1294
1569
|
"li",
|
|
1295
1570
|
{
|
|
1296
1571
|
className: `sia-menu__entry${isOpen ? " is-open" : ""}${isSelected ? " is-selected" : ""}${item.disabled ? " is-disabled" : ""}${item.danger ? " is-danger" : ""}`,
|
|
@@ -1300,7 +1575,7 @@ function MenuEntry({
|
|
|
1300
1575
|
} : void 0,
|
|
1301
1576
|
onMouseLeave: hover ? scheduleClose : void 0,
|
|
1302
1577
|
children: [
|
|
1303
|
-
/* @__PURE__ */ (0,
|
|
1578
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
1304
1579
|
"button",
|
|
1305
1580
|
{
|
|
1306
1581
|
ref: anchorRef,
|
|
@@ -1313,14 +1588,14 @@ function MenuEntry({
|
|
|
1313
1588
|
"aria-expanded": hasChildren ? isOpen : void 0,
|
|
1314
1589
|
onClick: (event) => hasChildren ? props.toggle(item.key) : props.select(item, path, event),
|
|
1315
1590
|
children: [
|
|
1316
|
-
reserveIcon ? /* @__PURE__ */ (0,
|
|
1317
|
-
!collapsed ? /* @__PURE__ */ (0,
|
|
1318
|
-
!collapsed && item.extra ? /* @__PURE__ */ (0,
|
|
1319
|
-
!collapsed && hasChildren ? /* @__PURE__ */ (0,
|
|
1591
|
+
reserveIcon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "sia-menu__icon", "aria-hidden": !item.icon || void 0, children: item.icon }) : null,
|
|
1592
|
+
!collapsed ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "sia-menu__label", children: item.label }) : null,
|
|
1593
|
+
!collapsed && item.extra ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "sia-menu__extra", children: item.extra }) : null,
|
|
1594
|
+
!collapsed && hasChildren ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { className: "sia-menu__expand-icon", name: "chevron-down", size: 13 }) : null
|
|
1320
1595
|
]
|
|
1321
1596
|
}
|
|
1322
1597
|
),
|
|
1323
|
-
hasChildren ? inlineSubmenu ? /* @__PURE__ */ (0,
|
|
1598
|
+
hasChildren ? inlineSubmenu ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "sia-menu__submenu", role: "menu", "aria-hidden": !isOpen, children: submenu }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1324
1599
|
MenuPopup,
|
|
1325
1600
|
{
|
|
1326
1601
|
anchorRef,
|
|
@@ -1347,13 +1622,13 @@ function MenuLevel({
|
|
|
1347
1622
|
props,
|
|
1348
1623
|
reserveIcon = hasMenuIcon(items)
|
|
1349
1624
|
}) {
|
|
1350
|
-
return /* @__PURE__ */ (0,
|
|
1351
|
-
if (item.type === "divider") return /* @__PURE__ */ (0,
|
|
1352
|
-
if (item.type === "group") return /* @__PURE__ */ (0,
|
|
1353
|
-
/* @__PURE__ */ (0,
|
|
1354
|
-
/* @__PURE__ */ (0,
|
|
1625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: items.map((item, index) => {
|
|
1626
|
+
if (item.type === "divider") return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("li", { className: "sia-menu__divider", role: "separator" }, item.key || `divider-${index}`);
|
|
1627
|
+
if (item.type === "group") return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("li", { className: "sia-menu__group", children: [
|
|
1628
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "sia-menu__group-title", children: item.label }),
|
|
1629
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { role: "group", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MenuLevel, { items: item.children ?? [], level: level + 1, parents: [...parents, item.key], props, reserveIcon }) })
|
|
1355
1630
|
] }, item.key);
|
|
1356
|
-
return /* @__PURE__ */ (0,
|
|
1631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MenuEntry, { item, level, parents, props, reserveIcon }, item.key);
|
|
1357
1632
|
}) });
|
|
1358
1633
|
}
|
|
1359
1634
|
function Menu({
|
|
@@ -1376,11 +1651,11 @@ function Menu({
|
|
|
1376
1651
|
className = "",
|
|
1377
1652
|
...rest
|
|
1378
1653
|
}) {
|
|
1379
|
-
const menuId = (0,
|
|
1380
|
-
const rootRef = (0,
|
|
1654
|
+
const menuId = (0, import_react6.useId)();
|
|
1655
|
+
const rootRef = (0, import_react6.useRef)(null);
|
|
1381
1656
|
const [selected, setSelected] = useControllableState({ value: selectedKeys, defaultValue: defaultSelectedKeys });
|
|
1382
1657
|
const [open, setOpen] = useControllableState({ value: openKeys, defaultValue: defaultOpenKeys, onChange: (next) => onOpenChange?.([...next]) });
|
|
1383
|
-
(0,
|
|
1658
|
+
(0, import_react6.useEffect)(() => {
|
|
1384
1659
|
if (mode === "inline" || !open.length) return void 0;
|
|
1385
1660
|
const closeOutside = (event) => {
|
|
1386
1661
|
const target = event.target;
|
|
@@ -1406,11 +1681,11 @@ function Menu({
|
|
|
1406
1681
|
else onSelect?.({ ...info, selectedKeys: [...next] });
|
|
1407
1682
|
if (mode !== "inline") setOpen([]);
|
|
1408
1683
|
}
|
|
1409
|
-
return /* @__PURE__ */ (0,
|
|
1684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { ref: rootRef, className: `sia-menu sia-menu--${mode} sia-menu--${theme}${inlineCollapsed ? " sia-menu--collapsed" : ""} ${className}`.trim(), role: "menu", ...withTitleTooltip(rest), "data-sia-menu-owner": menuId, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MenuLevel, { items, level: 0, parents: [], props: { menuId, mode, theme, multiple, selectable, inlineCollapsed, inlineIndent, triggerSubMenuAction, selected, open, select, toggle } }) });
|
|
1410
1685
|
}
|
|
1411
1686
|
function Segmented({ options, value, defaultValue, variant = "default", shape = "capsule", size: sizeProp, block = false, vertical = false, disabled = false, onChange, className = "", onKeyDown, ...props }) {
|
|
1412
1687
|
const size = useControlSize(sizeProp);
|
|
1413
|
-
const normalized = (0,
|
|
1688
|
+
const normalized = (0, import_react6.useMemo)(() => options.map((option) => typeof option === "object" ? option : { label: option, value: option }), [options]);
|
|
1414
1689
|
const [current, setCurrent] = useControllableState({ value, defaultValue: defaultValue ?? normalized[0]?.value, onChange: (next) => next !== void 0 && onChange?.(next) });
|
|
1415
1690
|
function keyboard(event) {
|
|
1416
1691
|
onKeyDown?.(event);
|
|
@@ -1421,11 +1696,11 @@ function Segmented({ options, value, defaultValue, variant = "default", shape =
|
|
|
1421
1696
|
const next = event.key === "ArrowRight" || event.key === "ArrowDown" ? enabled[(index + 1) % enabled.length] : enabled[(index - 1 + enabled.length) % enabled.length];
|
|
1422
1697
|
if (next) setCurrent(next.value);
|
|
1423
1698
|
}
|
|
1424
|
-
return /* @__PURE__ */ (0,
|
|
1699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `sia-segmented sia-segmented--${size}${variant === "zigzag" && !vertical && normalized.length === 2 ? ` sia-segmented--zigzag sia-segmented--shape-${shape}` : ""}${block ? " sia-segmented--block" : ""}${vertical ? " sia-segmented--vertical" : ""}${disabled ? " is-disabled" : ""} ${className}`.trim(), role: "radiogroup", onKeyDown: keyboard, ...withTitleTooltip(props), children: normalized.map((option) => /* @__PURE__ */ (0, import_react7.createElement)("button", { type: "button", role: "radio", "aria-checked": option.value === current, ...withTitleTooltip({ title: option.title }), className: option.value === current ? "is-selected" : "", disabled: disabled || option.disabled, key: option.value, onClick: () => setCurrent(option.value) }, option.icon, /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: option.label ?? option.value }))) });
|
|
1425
1700
|
}
|
|
1426
1701
|
|
|
1427
1702
|
// src/components/Dropdown.tsx
|
|
1428
|
-
var
|
|
1703
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1429
1704
|
var placementMap = {
|
|
1430
1705
|
bottomLeft: "bottom-start",
|
|
1431
1706
|
bottomRight: "bottom-end",
|
|
@@ -1457,19 +1732,19 @@ function DropdownRoot({
|
|
|
1457
1732
|
onKeyDown,
|
|
1458
1733
|
...props
|
|
1459
1734
|
}) {
|
|
1460
|
-
const rootRef = (0,
|
|
1461
|
-
const contextAnchorRef = (0,
|
|
1462
|
-
const popupRef = (0,
|
|
1463
|
-
const openTimerRef = (0,
|
|
1464
|
-
const closeTimerRef = (0,
|
|
1465
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
1466
|
-
const [mounted, setMounted] = (0,
|
|
1467
|
-
const [contextPoint, setContextPoint] = (0,
|
|
1735
|
+
const rootRef = (0, import_react8.useRef)(null);
|
|
1736
|
+
const contextAnchorRef = (0, import_react8.useRef)(null);
|
|
1737
|
+
const popupRef = (0, import_react8.useRef)(null);
|
|
1738
|
+
const openTimerRef = (0, import_react8.useRef)(void 0);
|
|
1739
|
+
const closeTimerRef = (0, import_react8.useRef)(void 0);
|
|
1740
|
+
const [internalOpen, setInternalOpen] = (0, import_react8.useState)(defaultOpen);
|
|
1741
|
+
const [mounted, setMounted] = (0, import_react8.useState)(open ?? defaultOpen);
|
|
1742
|
+
const [contextPoint, setContextPoint] = (0, import_react8.useState)();
|
|
1468
1743
|
const visible = open ?? internalOpen;
|
|
1469
1744
|
const triggerSet = new Set(trigger);
|
|
1470
1745
|
const pointAtCenter = typeof arrow === "object" && arrow.pointAtCenter;
|
|
1471
|
-
const [triggerFontSize, setTriggerFontSize] = (0,
|
|
1472
|
-
(0,
|
|
1746
|
+
const [triggerFontSize, setTriggerFontSize] = (0, import_react8.useState)();
|
|
1747
|
+
(0, import_react8.useLayoutEffect)(() => {
|
|
1473
1748
|
if (!visible || !rootRef.current) return;
|
|
1474
1749
|
const root = rootRef.current;
|
|
1475
1750
|
const target = root.querySelector("button, [role='button'], a") ?? (root.firstElementChild !== contextAnchorRef.current ? root.firstElementChild : null) ?? root;
|
|
@@ -1504,7 +1779,7 @@ function DropdownRoot({
|
|
|
1504
1779
|
clearTimer(closeTimerRef);
|
|
1505
1780
|
closeTimerRef.current = window.setTimeout(() => updateOpen(false, "trigger"), Math.max(0, closeDelay));
|
|
1506
1781
|
}
|
|
1507
|
-
(0,
|
|
1782
|
+
(0, import_react8.useEffect)(() => {
|
|
1508
1783
|
if (visible) {
|
|
1509
1784
|
setMounted(true);
|
|
1510
1785
|
return void 0;
|
|
@@ -1512,11 +1787,11 @@ function DropdownRoot({
|
|
|
1512
1787
|
const timer = window.setTimeout(() => setMounted(false), 160);
|
|
1513
1788
|
return () => window.clearTimeout(timer);
|
|
1514
1789
|
}, [visible]);
|
|
1515
|
-
(0,
|
|
1790
|
+
(0, import_react8.useEffect)(() => {
|
|
1516
1791
|
if (!visible && !mounted) setContextPoint(void 0);
|
|
1517
1792
|
}, [mounted, visible]);
|
|
1518
|
-
(0,
|
|
1519
|
-
(0,
|
|
1793
|
+
(0, import_react8.useEffect)(() => () => clearTimers(), []);
|
|
1794
|
+
(0, import_react8.useEffect)(() => {
|
|
1520
1795
|
if (!visible) return void 0;
|
|
1521
1796
|
const contextMenuTrigger = triggerSet.has("contextMenu");
|
|
1522
1797
|
const closeOutside = (event) => {
|
|
@@ -1546,7 +1821,7 @@ function DropdownRoot({
|
|
|
1546
1821
|
document.removeEventListener("pointerover", keepOpenOverNestedMenu);
|
|
1547
1822
|
};
|
|
1548
1823
|
}, [visible]);
|
|
1549
|
-
(0,
|
|
1824
|
+
(0, import_react8.useEffect)(() => {
|
|
1550
1825
|
if (!visible || !mounted || !autoFocus) return void 0;
|
|
1551
1826
|
const frame = window.requestAnimationFrame(() => {
|
|
1552
1827
|
popupRef.current?.querySelector(
|
|
@@ -1595,7 +1870,7 @@ function DropdownRoot({
|
|
|
1595
1870
|
updateOpen(true, "trigger");
|
|
1596
1871
|
}
|
|
1597
1872
|
}
|
|
1598
|
-
const menuNode = /* @__PURE__ */ (0,
|
|
1873
|
+
const menuNode = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1599
1874
|
Menu,
|
|
1600
1875
|
{
|
|
1601
1876
|
mode: "vertical",
|
|
@@ -1612,11 +1887,11 @@ function DropdownRoot({
|
|
|
1612
1887
|
className: "sia-dropdown__menu"
|
|
1613
1888
|
}
|
|
1614
1889
|
);
|
|
1615
|
-
const triggerNode = showTriggerIcon && (0,
|
|
1890
|
+
const triggerNode = showTriggerIcon && (0, import_react8.isValidElement)(children) && children.type === Button && children.props.children !== void 0 && children.props.children !== null ? (0, import_react8.cloneElement)(children, {}, /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "sia-dropdown__trigger-content", children: [
|
|
1616
1891
|
children.props.children,
|
|
1617
|
-
/* @__PURE__ */ (0,
|
|
1892
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon, { name: "chevron-down", size: 14, className: "sia-dropdown__trigger-icon" })
|
|
1618
1893
|
] })) : children;
|
|
1619
|
-
return /* @__PURE__ */ (0,
|
|
1894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
1620
1895
|
"span",
|
|
1621
1896
|
{
|
|
1622
1897
|
ref: rootRef,
|
|
@@ -1632,7 +1907,7 @@ function DropdownRoot({
|
|
|
1632
1907
|
...withTitleTooltip(props),
|
|
1633
1908
|
children: [
|
|
1634
1909
|
triggerNode,
|
|
1635
|
-
/* @__PURE__ */ (0,
|
|
1910
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1636
1911
|
"span",
|
|
1637
1912
|
{
|
|
1638
1913
|
ref: contextAnchorRef,
|
|
@@ -1641,7 +1916,7 @@ function DropdownRoot({
|
|
|
1641
1916
|
"aria-hidden": "true"
|
|
1642
1917
|
}
|
|
1643
1918
|
),
|
|
1644
|
-
/* @__PURE__ */ (0,
|
|
1919
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1645
1920
|
PopupPortal,
|
|
1646
1921
|
{
|
|
1647
1922
|
ref: popupRef,
|
|
@@ -1678,15 +1953,15 @@ function DropdownButton({
|
|
|
1678
1953
|
trigger = ["click"],
|
|
1679
1954
|
...dropdownProps
|
|
1680
1955
|
}) {
|
|
1681
|
-
return /* @__PURE__ */ (0,
|
|
1682
|
-
/* @__PURE__ */ (0,
|
|
1683
|
-
/* @__PURE__ */ (0,
|
|
1956
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: `sia-dropdown-button ${className}`.trim(), children: [
|
|
1957
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { ...buttonProps, disabled: disabled || buttonDisabled, onClick, children }),
|
|
1958
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownRoot, { ...dropdownProps, disabled: disabled || dropdownDisabled, trigger, showTriggerIcon: false, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1684
1959
|
Button,
|
|
1685
1960
|
{
|
|
1686
1961
|
...buttonProps,
|
|
1687
1962
|
className: `sia-dropdown-button__arrow ${buttonProps?.className ?? ""}`.trim(),
|
|
1688
1963
|
disabled: disabled || dropdownDisabled,
|
|
1689
|
-
icon: /* @__PURE__ */ (0,
|
|
1964
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon, { name: "chevron-down", size: 14 }),
|
|
1690
1965
|
"aria-label": "\u5C55\u5F00\u4E0B\u62C9\u83DC\u5355"
|
|
1691
1966
|
}
|
|
1692
1967
|
) })
|
|
@@ -1698,12 +1973,12 @@ var Dropdown = Object.assign(DropdownRoot, {
|
|
|
1698
1973
|
});
|
|
1699
1974
|
|
|
1700
1975
|
// src/components/Toolbar.tsx
|
|
1701
|
-
var
|
|
1976
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1702
1977
|
function Toolbar({ items, onAction, disabled = false, size = "small", variant = "link", overflowLabel = "\u66F4\u591A\u64CD\u4F5C" }) {
|
|
1703
|
-
const root = (0,
|
|
1704
|
-
const [visibleCount, setVisibleCount] = (0,
|
|
1978
|
+
const root = (0, import_react9.useRef)(null);
|
|
1979
|
+
const [visibleCount, setVisibleCount] = (0, import_react9.useState)(Number.MAX_SAFE_INTEGER);
|
|
1705
1980
|
const visibleItems = items.filter((item) => !item.hidden);
|
|
1706
|
-
(0,
|
|
1981
|
+
(0, import_react9.useLayoutEffect)(() => {
|
|
1707
1982
|
const element = root.current;
|
|
1708
1983
|
if (!element) return;
|
|
1709
1984
|
const buttons = Array.from(element.querySelectorAll("[data-sia-toolbar-item]"));
|
|
@@ -1755,19 +2030,19 @@ function Toolbar({ items, onAction, disabled = false, size = "small", variant =
|
|
|
1755
2030
|
] : void 0
|
|
1756
2031
|
}));
|
|
1757
2032
|
const overflow = visibleItems.slice(visibleCount);
|
|
1758
|
-
return /* @__PURE__ */ (0,
|
|
2033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { ref: root, className: "sia-toolbar", role: "toolbar", children: [
|
|
1759
2034
|
visibleItems.map((item, index) => {
|
|
1760
2035
|
const buttonProps = { size, variant, icon: item.icon, disabled: blocked(item), loading: item.loading, danger: item.danger };
|
|
1761
2036
|
const menu = { items: menuItems(item.children ?? []), onClick: ({ key }) => invoke(key) };
|
|
1762
|
-
return /* @__PURE__ */ (0,
|
|
2037
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { "data-sia-toolbar-item": true, className: `sia-toolbar__item${index >= visibleCount ? " sia-toolbar__item--hidden" : ""}`, "aria-hidden": index >= visibleCount || void 0, children: item.children?.length ? item.split ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Dropdown.Button, { trigger: ["hover"], menu, disabled: blocked(item), buttonProps, onClick: () => invoke(item.key), children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Dropdown, { trigger: ["hover"], menu, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Button, { ...buttonProps, children: item.label }) }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Button, { ...buttonProps, onClick: () => invoke(item.key), children: item.label }) }, item.key);
|
|
1763
2038
|
}),
|
|
1764
|
-
/* @__PURE__ */ (0,
|
|
2039
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { "data-sia-toolbar-more": true, className: `sia-toolbar__item${overflow.length ? "" : " sia-toolbar__item--hidden"}`, "aria-hidden": !overflow.length || void 0, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Dropdown, { trigger: ["hover"], menu: { items: menuItems(overflow), onClick: ({ key }) => invoke(key) }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Button, { size, variant, disabled, "aria-label": overflowLabel, title: overflowLabel, icon: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon, { name: "more-horizontal", size: 16 }) }) }) })
|
|
1765
2040
|
] });
|
|
1766
2041
|
}
|
|
1767
2042
|
|
|
1768
2043
|
// src/components/Card.tsx
|
|
1769
|
-
var
|
|
1770
|
-
var
|
|
2044
|
+
var import_react10 = require("react");
|
|
2045
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1771
2046
|
function Card({
|
|
1772
2047
|
bordered = true,
|
|
1773
2048
|
title,
|
|
@@ -1796,8 +2071,8 @@ function Card({
|
|
|
1796
2071
|
onKeyDown,
|
|
1797
2072
|
...props
|
|
1798
2073
|
}) {
|
|
1799
|
-
const [internalCollapsed, setInternalCollapsed] = (0,
|
|
1800
|
-
const [internalSelected, setInternalSelected] = (0,
|
|
2074
|
+
const [internalCollapsed, setInternalCollapsed] = (0, import_react10.useState)(defaultCollapsed);
|
|
2075
|
+
const [internalSelected, setInternalSelected] = (0, import_react10.useState)(defaultSelected);
|
|
1801
2076
|
const isSelected = selected ?? internalSelected;
|
|
1802
2077
|
function toggleSelected() {
|
|
1803
2078
|
if (!selectable || disabled) return;
|
|
@@ -1814,11 +2089,11 @@ function Card({
|
|
|
1814
2089
|
if (collapsed === void 0) setInternalCollapsed(nextCollapsed);
|
|
1815
2090
|
onCollapsedChange?.(nextCollapsed);
|
|
1816
2091
|
}
|
|
1817
|
-
const heading = /* @__PURE__ */ (0,
|
|
1818
|
-
accent || accentColor ? /* @__PURE__ */ (0,
|
|
1819
|
-
title ? /* @__PURE__ */ (0,
|
|
2092
|
+
const heading = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "sia-card__heading", children: [
|
|
2093
|
+
accent || accentColor ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: `sia-card__accent${accent ? ` sia-card__accent--${accent}` : ""}`, "aria-hidden": "true" }) : null,
|
|
2094
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h3", { className: "sia-card__title", children: title }) : null
|
|
1820
2095
|
] });
|
|
1821
|
-
return /* @__PURE__ */ (0,
|
|
2096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1822
2097
|
"section",
|
|
1823
2098
|
{
|
|
1824
2099
|
className: `sia-card${!bordered ? " sia-card--borderless" : ""}${isCollapsed ? " sia-card--collapsed" : ""}${selectable ? " sia-card--selectable" : ""}${selectable && isSelected ? " sia-card--selected" : ""}${hoverActions ? " sia-card--hover-actions" : ""} ${className}`.trim(),
|
|
@@ -1842,18 +2117,18 @@ function Card({
|
|
|
1842
2117
|
}
|
|
1843
2118
|
},
|
|
1844
2119
|
children: [
|
|
1845
|
-
selectable && isSelected && showSelectedIndicator ? /* @__PURE__ */ (0,
|
|
1846
|
-
hasHeader ? /* @__PURE__ */ (0,
|
|
1847
|
-
collapsible ? /* @__PURE__ */ (0,
|
|
2120
|
+
selectable && isSelected && showSelectedIndicator ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "sia-card__selected-corner", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { name: "check", size: 16 }) }) : null,
|
|
2121
|
+
hasHeader ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("header", { className: "sia-card__header", children: [
|
|
2122
|
+
collapsible ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("button", { type: "button", className: "sia-card__collapse-trigger", "aria-expanded": !isCollapsed, onClick: toggleCollapsed, children: [
|
|
1848
2123
|
heading,
|
|
1849
|
-
/* @__PURE__ */ (0,
|
|
2124
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { name: isCollapsed ? "chevron-down" : "chevron-up", size: 16 })
|
|
1850
2125
|
] }) : heading,
|
|
1851
|
-
extra ? /* @__PURE__ */ (0,
|
|
2126
|
+
extra ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "sia-card__extra", children: extra }) : null
|
|
1852
2127
|
] }) : null,
|
|
1853
|
-
!isCollapsed ? /* @__PURE__ */ (0,
|
|
1854
|
-
description ? /* @__PURE__ */ (0,
|
|
1855
|
-
/* @__PURE__ */ (0,
|
|
1856
|
-
hoverActions ? /* @__PURE__ */ (0,
|
|
2128
|
+
!isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
|
|
2129
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "sia-card__description", children: description }) : null,
|
|
2130
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: `sia-card__body ${bodyClassName}`.trim(), style: mergedBodyStyle, children }),
|
|
2131
|
+
hoverActions ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "sia-card__hover-actions", onClick: (event) => event.stopPropagation(), children: hoverActions }) : null
|
|
1857
2132
|
] }) : null
|
|
1858
2133
|
]
|
|
1859
2134
|
}
|
|
@@ -1861,7 +2136,7 @@ function Card({
|
|
|
1861
2136
|
}
|
|
1862
2137
|
|
|
1863
2138
|
// src/components/Tag.tsx
|
|
1864
|
-
var
|
|
2139
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1865
2140
|
function Tag({
|
|
1866
2141
|
size: sizeProp,
|
|
1867
2142
|
color,
|
|
@@ -1880,7 +2155,7 @@ function Tag({
|
|
|
1880
2155
|
}) {
|
|
1881
2156
|
const size = useControlSize(sizeProp ?? (compact ? "small" : void 0));
|
|
1882
2157
|
const customColor = color?.trim() ? variant === "outlined" ? { borderColor: color, color, backgroundColor: "transparent" } : variant === "filled" ? { backgroundColor: color, color: "#fff", borderColor: "transparent" } : { color, backgroundColor: `color-mix(in srgb, ${color} 10%, transparent)`, borderColor: `color-mix(in srgb, ${color} 35%, transparent)` } : void 0;
|
|
1883
|
-
return /* @__PURE__ */ (0,
|
|
2158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1884
2159
|
"span",
|
|
1885
2160
|
{
|
|
1886
2161
|
className: `sia-tag${closable && closeOnHover ? " sia-tag--close-on-hover" : ""} sia-tag--${status} sia-tag--${variant} sia-tag--${size}${compact && size === "small" ? " sia-tag--compact" : ""}${disabled ? " sia-tag--disabled" : ""} ${className}`.trim(),
|
|
@@ -1888,9 +2163,9 @@ function Tag({
|
|
|
1888
2163
|
style: customColor ? { ...customColor, ...style } : style,
|
|
1889
2164
|
...withTitleTooltip(props),
|
|
1890
2165
|
children: [
|
|
1891
|
-
icon ? /* @__PURE__ */ (0,
|
|
1892
|
-
/* @__PURE__ */ (0,
|
|
1893
|
-
closable ? /* @__PURE__ */ (0,
|
|
2166
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sia-tag__icon", children: icon }) : null,
|
|
2167
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { children }),
|
|
2168
|
+
closable ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1894
2169
|
"button",
|
|
1895
2170
|
{
|
|
1896
2171
|
type: "button",
|
|
@@ -1901,7 +2176,7 @@ function Tag({
|
|
|
1901
2176
|
event.stopPropagation();
|
|
1902
2177
|
onClose?.(event);
|
|
1903
2178
|
},
|
|
1904
|
-
children: /* @__PURE__ */ (0,
|
|
2179
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: "close", size: size === "large" ? 14 : 12 })
|
|
1905
2180
|
}
|
|
1906
2181
|
) : null
|
|
1907
2182
|
]
|
|
@@ -1910,9 +2185,9 @@ function Tag({
|
|
|
1910
2185
|
}
|
|
1911
2186
|
|
|
1912
2187
|
// src/components/Tabs.tsx
|
|
1913
|
-
var import_react10 = require("react");
|
|
1914
|
-
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1915
2188
|
var import_react11 = require("react");
|
|
2189
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2190
|
+
var import_react12 = require("react");
|
|
1916
2191
|
function Tabs({
|
|
1917
2192
|
items,
|
|
1918
2193
|
activeKey,
|
|
@@ -1937,22 +2212,22 @@ function Tabs({
|
|
|
1937
2212
|
...props
|
|
1938
2213
|
}) {
|
|
1939
2214
|
const firstEnabledKey = items.find((item) => !item.disabled)?.key ?? "";
|
|
1940
|
-
const [internalActiveKey, setInternalActiveKey] = (0,
|
|
2215
|
+
const [internalActiveKey, setInternalActiveKey] = (0, import_react11.useState)(defaultActiveKey ?? firstEnabledKey);
|
|
1941
2216
|
const currentKey = activeKey ?? internalActiveKey;
|
|
1942
2217
|
const selectedKey = items.some((item) => item.key === currentKey && !item.disabled) ? currentKey : firstEnabledKey;
|
|
1943
|
-
const baseId = (0,
|
|
1944
|
-
const enabledItems = (0,
|
|
2218
|
+
const baseId = (0, import_react11.useId)().replace(/:/g, "");
|
|
2219
|
+
const enabledItems = (0, import_react11.useMemo)(() => items.filter((item) => !item.disabled), [items]);
|
|
1945
2220
|
const resolvedPosition = tabPosition ?? (orientation === "vertical" ? "left" : "top");
|
|
1946
2221
|
const resolvedOrientation = resolvedPosition === "left" || resolvedPosition === "right" ? "vertical" : "horizontal";
|
|
1947
2222
|
const sliding = ["capsule", "line", "underline", "tech", "tech-line"].includes(type);
|
|
1948
|
-
const listRef = (0,
|
|
1949
|
-
const indicatorRef = (0,
|
|
1950
|
-
const moreRef = (0,
|
|
1951
|
-
const [overflow, setOverflow] = (0,
|
|
1952
|
-
const [moreOpen, setMoreOpen] = (0,
|
|
2223
|
+
const listRef = (0, import_react11.useRef)(null);
|
|
2224
|
+
const indicatorRef = (0, import_react11.useRef)(null);
|
|
2225
|
+
const moreRef = (0, import_react11.useRef)(null);
|
|
2226
|
+
const [overflow, setOverflow] = (0, import_react11.useState)({ count: items.length, width: 0 });
|
|
2227
|
+
const [moreOpen, setMoreOpen] = (0, import_react11.useState)(false);
|
|
1953
2228
|
const visibleCount = resolvedOrientation === "horizontal" ? overflow.count : items.length;
|
|
1954
2229
|
const hiddenItems = items.slice(visibleCount);
|
|
1955
|
-
(0,
|
|
2230
|
+
(0, import_react11.useLayoutEffect)(() => {
|
|
1956
2231
|
const list = listRef.current;
|
|
1957
2232
|
if (!list || resolvedOrientation !== "horizontal") return;
|
|
1958
2233
|
const entries = Array.from(list.children).filter((node) => node instanceof HTMLElement && node.hasAttribute("data-tab-entry"));
|
|
@@ -1983,13 +2258,13 @@ function Tabs({
|
|
|
1983
2258
|
entries.forEach((entry) => observer.observe(entry));
|
|
1984
2259
|
return () => observer.disconnect();
|
|
1985
2260
|
}, [items, type, size, closable, resolvedOrientation, tabBarTitle, tabBarExtraContent]);
|
|
1986
|
-
const [contentState, setContentState] = (0,
|
|
1987
|
-
const settledKeyRef = (0,
|
|
1988
|
-
const afterChangeRef = (0,
|
|
1989
|
-
(0,
|
|
2261
|
+
const [contentState, setContentState] = (0, import_react11.useState)(() => ({ key: selectedKey, visited: /* @__PURE__ */ new Set([selectedKey]) }));
|
|
2262
|
+
const settledKeyRef = (0, import_react11.useRef)(selectedKey);
|
|
2263
|
+
const afterChangeRef = (0, import_react11.useRef)(onAfterChange);
|
|
2264
|
+
(0, import_react11.useLayoutEffect)(() => {
|
|
1990
2265
|
afterChangeRef.current = onAfterChange;
|
|
1991
2266
|
}, [onAfterChange]);
|
|
1992
|
-
(0,
|
|
2267
|
+
(0, import_react11.useLayoutEffect)(() => {
|
|
1993
2268
|
if (!sliding) return;
|
|
1994
2269
|
const list = listRef.current;
|
|
1995
2270
|
const indicator = indicatorRef.current;
|
|
@@ -2019,7 +2294,7 @@ function Tabs({
|
|
|
2019
2294
|
list.querySelectorAll('[role="tab"]').forEach((tab) => observer.observe(tab));
|
|
2020
2295
|
return () => observer.disconnect();
|
|
2021
2296
|
}, [sliding, type, selectedKey, items, size, resolvedPosition, centered, closable, visibleCount]);
|
|
2022
|
-
(0,
|
|
2297
|
+
(0, import_react11.useEffect)(() => {
|
|
2023
2298
|
let cancelled = false;
|
|
2024
2299
|
let frame = 0;
|
|
2025
2300
|
frame = requestAnimationFrame(() => {
|
|
@@ -2068,25 +2343,25 @@ function Tabs({
|
|
|
2068
2343
|
focusAndSelect(enabledItems[nextIndex].key);
|
|
2069
2344
|
}
|
|
2070
2345
|
const hasPanels = items.some((item) => item.children !== void 0);
|
|
2071
|
-
return /* @__PURE__ */ (0,
|
|
2346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2072
2347
|
"div",
|
|
2073
2348
|
{
|
|
2074
2349
|
className: `sia-tabs sia-tabs--${type}${type === "underline" ? " sia-tabs--line" : ""} sia-tabs--${size} sia-tabs--${resolvedOrientation} sia-tabs--${resolvedPosition}${centered ? " sia-tabs--centered" : ""} ${className}`.trim(),
|
|
2075
2350
|
...withTitleTooltip(props),
|
|
2076
2351
|
children: [
|
|
2077
|
-
/* @__PURE__ */ (0,
|
|
2078
|
-
tabBarTitle ? /* @__PURE__ */ (0,
|
|
2352
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "sia-tabs__header", children: [
|
|
2353
|
+
tabBarTitle ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "sia-tabs__title", children: [
|
|
2079
2354
|
tabBarTitle,
|
|
2080
|
-
type === "tech-line" ? /* @__PURE__ */ (0,
|
|
2355
|
+
type === "tech-line" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "sia-tabs__title-connector", viewBox: "0 0 32 40", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M0 39.25 H5 Q8 39.25 10 35.25 L28 3.75 Q29 1.75 32 1.75", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }) }) : null
|
|
2081
2356
|
] }) : null,
|
|
2082
|
-
/* @__PURE__ */ (0,
|
|
2083
|
-
sliding ? /* @__PURE__ */ (0,
|
|
2357
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { ref: listRef, style: resolvedOrientation === "horizontal" && overflow.width ? { width: overflow.width } : void 0, className: `sia-tabs__list${sliding ? " sia-tabs__list--sliding" : ""}`, role: "tablist", "aria-orientation": resolvedOrientation, children: [
|
|
2358
|
+
sliding ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { ref: indicatorRef, className: `sia-tabs__indicator${type === "capsule" ? " sia-tabs__capsule-indicator" : ""}`, "aria-hidden": "true", children: type === "tech-line" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sia-tabs__indicator-shape", "aria-hidden": "true" }) : null }, type) : null,
|
|
2084
2359
|
items.map((item, index) => {
|
|
2085
2360
|
const selected = item.key === selectedKey;
|
|
2086
2361
|
const canClose = item.closable ?? closable;
|
|
2087
2362
|
const contextMenuItems = typeof tabContextMenu === "function" ? tabContextMenu(item) : tabContextMenu;
|
|
2088
2363
|
const entryProps = { "data-tab-entry": "", "data-tab-hidden": index >= visibleCount, "aria-hidden": index >= visibleCount || void 0 };
|
|
2089
|
-
const tabNode = /* @__PURE__ */ (0,
|
|
2364
|
+
const tabNode = /* @__PURE__ */ (0, import_react12.createElement)("span", { ...!contextMenuItems?.length ? entryProps : {}, className: `sia-tabs__tab-wrap${canClose ? " is-closable" : ""}`, key: item.key }, /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2090
2365
|
"button",
|
|
2091
2366
|
{
|
|
2092
2367
|
id: `${baseId}-tab-${item.key}`,
|
|
@@ -2100,12 +2375,12 @@ function Tabs({
|
|
|
2100
2375
|
onClick: () => selectTab(item.key),
|
|
2101
2376
|
onKeyDown: (event) => handleKeyDown(event, item.key),
|
|
2102
2377
|
children: [
|
|
2103
|
-
type === "tech-line" ? /* @__PURE__ */ (0,
|
|
2104
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
2105
|
-
/* @__PURE__ */ (0,
|
|
2378
|
+
type === "tech-line" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sia-tabs__tab-shape", "aria-hidden": "true" }) : null,
|
|
2379
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sia-tabs__icon", children: item.icon }) : null,
|
|
2380
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: item.label })
|
|
2106
2381
|
]
|
|
2107
2382
|
}
|
|
2108
|
-
), canClose ? /* @__PURE__ */ (0,
|
|
2383
|
+
), canClose ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2109
2384
|
"button",
|
|
2110
2385
|
{
|
|
2111
2386
|
type: "button",
|
|
@@ -2113,11 +2388,11 @@ function Tabs({
|
|
|
2113
2388
|
"aria-label": `\u5173\u95ED${typeof item.label === "string" ? item.label : "\u6807\u7B7E\u9875"}`,
|
|
2114
2389
|
disabled: item.disabled,
|
|
2115
2390
|
onClick: () => onEdit?.(item.key, "remove"),
|
|
2116
|
-
children: /* @__PURE__ */ (0,
|
|
2391
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "close", size: 12 })
|
|
2117
2392
|
}
|
|
2118
2393
|
) : null);
|
|
2119
2394
|
if (!contextMenuItems?.length) return tabNode;
|
|
2120
|
-
return /* @__PURE__ */ (0,
|
|
2395
|
+
return /* @__PURE__ */ (0, import_react12.createElement)(
|
|
2121
2396
|
Dropdown,
|
|
2122
2397
|
{
|
|
2123
2398
|
...entryProps,
|
|
@@ -2135,7 +2410,7 @@ function Tabs({
|
|
|
2135
2410
|
tabNode
|
|
2136
2411
|
);
|
|
2137
2412
|
}),
|
|
2138
|
-
resolvedOrientation === "horizontal" ? /* @__PURE__ */ (0,
|
|
2413
|
+
resolvedOrientation === "horizontal" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2139
2414
|
Dropdown,
|
|
2140
2415
|
{
|
|
2141
2416
|
className: "sia-tabs__more",
|
|
@@ -2147,20 +2422,20 @@ function Tabs({
|
|
|
2147
2422
|
open: moreOpen && hiddenItems.length > 0,
|
|
2148
2423
|
onOpenChange: setMoreOpen,
|
|
2149
2424
|
menu: { items: hiddenItems.map((item) => ({ key: item.key, label: item.label, icon: item.icon, disabled: item.disabled })), selectedKeys: [selectedKey], onClick: (info) => selectTab(info.key) },
|
|
2150
|
-
children: /* @__PURE__ */ (0,
|
|
2425
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Button, { ref: moreRef, variant: "text", icon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "more-horizontal" }), "aria-label": "\u66F4\u591A\u9009\u9879\u5361", onKeyDown: (event) => handleKeyDown(event, selectedKey), className: hiddenItems.some((item) => item.key === selectedKey) ? "is-active" : void 0 })
|
|
2151
2426
|
}
|
|
2152
2427
|
) : null
|
|
2153
2428
|
] }),
|
|
2154
|
-
tabBarExtraContent ? /* @__PURE__ */ (0,
|
|
2429
|
+
tabBarExtraContent ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "sia-tabs__extra", children: tabBarExtraContent }) : null
|
|
2155
2430
|
] }),
|
|
2156
|
-
hasPanels ? /* @__PURE__ */ (0,
|
|
2431
|
+
hasPanels ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "sia-tabs__panels", style: contentGap === void 0 ? void 0 : {
|
|
2157
2432
|
// 仅设置面板靠近导航的一侧,保留各方向布局原有的其余边界。
|
|
2158
2433
|
[resolvedPosition === "top" ? "paddingTop" : resolvedPosition === "bottom" ? "paddingBottom" : resolvedPosition === "left" ? "paddingLeft" : "paddingRight"]: contentGap
|
|
2159
2434
|
}, "aria-busy": deferContent && contentKey !== selectedKey || void 0, children: items.map((item) => {
|
|
2160
2435
|
const selected = item.key === contentKey;
|
|
2161
2436
|
if (destroyInactiveTabPane && !selected) return null;
|
|
2162
2437
|
if (deferContent && !selected && !contentState.visited.has(item.key)) return null;
|
|
2163
|
-
return /* @__PURE__ */ (0,
|
|
2438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2164
2439
|
"div",
|
|
2165
2440
|
{
|
|
2166
2441
|
id: `${baseId}-panel-${item.key}`,
|
|
@@ -2180,26 +2455,26 @@ function Tabs({
|
|
|
2180
2455
|
}
|
|
2181
2456
|
|
|
2182
2457
|
// src/components/Feedback.tsx
|
|
2183
|
-
var
|
|
2458
|
+
var import_react17 = require("react");
|
|
2184
2459
|
var import_react_dom3 = require("react-dom");
|
|
2185
2460
|
var import_client2 = require("react-dom/client");
|
|
2186
2461
|
|
|
2187
2462
|
// src/components/FloatingDisplay.tsx
|
|
2188
|
-
var
|
|
2463
|
+
var import_react16 = require("react");
|
|
2189
2464
|
var import_react_dom2 = require("react-dom");
|
|
2190
2465
|
|
|
2191
2466
|
// src/components/Checkbox.tsx
|
|
2192
|
-
var
|
|
2193
|
-
var
|
|
2194
|
-
var CheckboxGroupContext = (0,
|
|
2195
|
-
var CheckboxRoot = (0,
|
|
2467
|
+
var import_react13 = require("react");
|
|
2468
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
2469
|
+
var CheckboxGroupContext = (0, import_react13.createContext)(null);
|
|
2470
|
+
var CheckboxRoot = (0, import_react13.forwardRef)(function Checkbox({ value, size: sizeProp, indeterminate = false, children, disabled, checked, defaultChecked, className = "", onChange, ...props }, forwardedRef) {
|
|
2196
2471
|
const size = useControlSize(sizeProp);
|
|
2197
|
-
const group = (0,
|
|
2198
|
-
const localRef = (0,
|
|
2199
|
-
const fallbackId = (0,
|
|
2472
|
+
const group = (0, import_react13.useContext)(CheckboxGroupContext);
|
|
2473
|
+
const localRef = (0, import_react13.useRef)(null);
|
|
2474
|
+
const fallbackId = (0, import_react13.useId)();
|
|
2200
2475
|
const grouped = group !== null && value !== void 0;
|
|
2201
2476
|
const currentChecked = grouped ? group.values.includes(value) : checked;
|
|
2202
|
-
(0,
|
|
2477
|
+
(0, import_react13.useEffect)(() => {
|
|
2203
2478
|
if (localRef.current) localRef.current.indeterminate = indeterminate;
|
|
2204
2479
|
}, [indeterminate]);
|
|
2205
2480
|
function setRef(node) {
|
|
@@ -2207,8 +2482,8 @@ var CheckboxRoot = (0, import_react12.forwardRef)(function Checkbox({ value, siz
|
|
|
2207
2482
|
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
2208
2483
|
else if (forwardedRef) forwardedRef.current = node;
|
|
2209
2484
|
}
|
|
2210
|
-
return /* @__PURE__ */ (0,
|
|
2211
|
-
/* @__PURE__ */ (0,
|
|
2485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { className: `sia-checkbox sia-checkbox--${size}${disabled || group?.disabled ? " is-disabled" : ""} ${className}`.trim(), children: [
|
|
2486
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2212
2487
|
"input",
|
|
2213
2488
|
{
|
|
2214
2489
|
...withTitleTooltip(props),
|
|
@@ -2227,8 +2502,8 @@ var CheckboxRoot = (0, import_react12.forwardRef)(function Checkbox({ value, siz
|
|
|
2227
2502
|
}
|
|
2228
2503
|
}
|
|
2229
2504
|
),
|
|
2230
|
-
/* @__PURE__ */ (0,
|
|
2231
|
-
children !== void 0 ? /* @__PURE__ */ (0,
|
|
2505
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "sia-checkbox__control", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", {}) }),
|
|
2506
|
+
children !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "sia-checkbox__label", children }) : null
|
|
2232
2507
|
] });
|
|
2233
2508
|
});
|
|
2234
2509
|
function CheckboxGroup({
|
|
@@ -2252,7 +2527,7 @@ function CheckboxGroup({
|
|
|
2252
2527
|
gap: gap === void 0 ? void 0 : typeof gap === "number" ? Math.max(0, gap) : `${Math.max(0, gap[0])}px ${Math.max(0, gap[1])}px`
|
|
2253
2528
|
};
|
|
2254
2529
|
const [values, setValues] = useControllableState({ value, defaultValue, onChange });
|
|
2255
|
-
const context = (0,
|
|
2530
|
+
const context = (0, import_react13.useMemo)(() => ({
|
|
2256
2531
|
values,
|
|
2257
2532
|
disabled,
|
|
2258
2533
|
name,
|
|
@@ -2261,10 +2536,10 @@ function CheckboxGroup({
|
|
|
2261
2536
|
setValues(next);
|
|
2262
2537
|
}
|
|
2263
2538
|
}), [disabled, name, setValues, values]);
|
|
2264
|
-
return /* @__PURE__ */ (0,
|
|
2539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ControlSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckboxGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: `sia-checkbox-group${gridColumns ? " sia-checkbox-group--grid" : direction === "vertical" ? " sia-checkbox-group--vertical" : ""} ${className}`.trim(), style: layoutStyle, role: "group", children: [
|
|
2265
2540
|
options?.map((option) => {
|
|
2266
2541
|
const normalized = typeof option === "object" ? option : { label: String(option), value: option };
|
|
2267
|
-
return /* @__PURE__ */ (0,
|
|
2542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckboxRoot, { value: normalized.value, disabled: normalized.disabled, children: normalized.label }, normalized.value);
|
|
2268
2543
|
}),
|
|
2269
2544
|
children
|
|
2270
2545
|
] }) }) });
|
|
@@ -2275,14 +2550,14 @@ var Checkbox2 = Object.assign(CheckboxRoot, {
|
|
|
2275
2550
|
});
|
|
2276
2551
|
|
|
2277
2552
|
// src/components/FloatingScrollbarProvider.tsx
|
|
2278
|
-
var
|
|
2553
|
+
var import_react15 = require("react");
|
|
2279
2554
|
|
|
2280
2555
|
// src/components/useScrollbarProximity.ts
|
|
2281
|
-
var
|
|
2556
|
+
var import_react14 = require("react");
|
|
2282
2557
|
var users = 0;
|
|
2283
2558
|
var cleanup;
|
|
2284
2559
|
function useScrollbarProximity() {
|
|
2285
|
-
(0,
|
|
2560
|
+
(0, import_react14.useEffect)(() => {
|
|
2286
2561
|
if (users++ === 0) {
|
|
2287
2562
|
let frame = 0;
|
|
2288
2563
|
let x = -Infinity;
|
|
@@ -2403,7 +2678,7 @@ function createTrack(axis) {
|
|
|
2403
2678
|
}
|
|
2404
2679
|
function FloatingScrollbarProvider({ disabled = false, targetRef }) {
|
|
2405
2680
|
useScrollbarProximity();
|
|
2406
|
-
(0,
|
|
2681
|
+
(0, import_react15.useEffect)(() => {
|
|
2407
2682
|
if (disabled) return;
|
|
2408
2683
|
const layer = document.createElement("div");
|
|
2409
2684
|
layer.className = "sia-floating-scrollbar-layer";
|
|
@@ -2663,7 +2938,7 @@ function FloatingScrollbarProvider({ disabled = false, targetRef }) {
|
|
|
2663
2938
|
}
|
|
2664
2939
|
|
|
2665
2940
|
// src/components/FloatingDisplay.tsx
|
|
2666
|
-
var
|
|
2941
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
2667
2942
|
var FLOATING_GAP = 9;
|
|
2668
2943
|
var FLOATING_VIEWPORT_PADDING = 8;
|
|
2669
2944
|
var FLOATING_ARROW_EDGE_OFFSET = 16;
|
|
@@ -2748,23 +3023,23 @@ function Floating({
|
|
|
2748
3023
|
role = "tooltip",
|
|
2749
3024
|
onOpenChange
|
|
2750
3025
|
}) {
|
|
2751
|
-
const rootRef = (0,
|
|
2752
|
-
const triggerElementRef = (0,
|
|
2753
|
-
const overlayRef = (0,
|
|
2754
|
-
const enterTimer = (0,
|
|
2755
|
-
const leaveTimer = (0,
|
|
2756
|
-
const contentId = (0,
|
|
3026
|
+
const rootRef = (0, import_react16.useRef)(null);
|
|
3027
|
+
const triggerElementRef = (0, import_react16.useRef)(null);
|
|
3028
|
+
const overlayRef = (0, import_react16.useRef)(null);
|
|
3029
|
+
const enterTimer = (0, import_react16.useRef)();
|
|
3030
|
+
const leaveTimer = (0, import_react16.useRef)();
|
|
3031
|
+
const contentId = (0, import_react16.useId)();
|
|
2757
3032
|
const triggers = Array.isArray(trigger) ? trigger : [trigger];
|
|
2758
3033
|
const [visible, setVisible] = useControllableState({ value: open, defaultValue: defaultOpen, onChange: onOpenChange });
|
|
2759
|
-
const [position, setPosition] = (0,
|
|
2760
|
-
const [portalContainer, setPortalContainer] = (0,
|
|
2761
|
-
(0,
|
|
3034
|
+
const [position, setPosition] = (0, import_react16.useState)();
|
|
3035
|
+
const [portalContainer, setPortalContainer] = (0, import_react16.useState)(null);
|
|
3036
|
+
(0, import_react16.useLayoutEffect)(() => {
|
|
2762
3037
|
if (!visible) return;
|
|
2763
3038
|
setPortalContainer(rootRef.current?.closest(".sia-modal-root, .sia-drawer-root") ?? document.body);
|
|
2764
3039
|
});
|
|
2765
|
-
const setVisibleRef = (0,
|
|
3040
|
+
const setVisibleRef = (0, import_react16.useRef)(setVisible);
|
|
2766
3041
|
setVisibleRef.current = setVisible;
|
|
2767
|
-
const closeSelfRef = (0,
|
|
3042
|
+
const closeSelfRef = (0, import_react16.useRef)();
|
|
2768
3043
|
if (!closeSelfRef.current) closeSelfRef.current = () => setVisibleRef.current(false);
|
|
2769
3044
|
const exclusiveTooltip = role === "tooltip" && triggers.includes("hover");
|
|
2770
3045
|
function openNow() {
|
|
@@ -2792,7 +3067,7 @@ function Floating({
|
|
|
2792
3067
|
if (delay <= 0) closeNow();
|
|
2793
3068
|
else leaveTimer.current = window.setTimeout(closeNow, delay * 1e3);
|
|
2794
3069
|
}
|
|
2795
|
-
(0,
|
|
3070
|
+
(0, import_react16.useEffect)(() => {
|
|
2796
3071
|
if (!visible || !triggers.includes("click")) return;
|
|
2797
3072
|
const close = (event) => {
|
|
2798
3073
|
const target = event.target;
|
|
@@ -2801,7 +3076,7 @@ function Floating({
|
|
|
2801
3076
|
document.addEventListener("pointerdown", close);
|
|
2802
3077
|
return () => document.removeEventListener("pointerdown", close);
|
|
2803
3078
|
}, [triggers.join("|"), visible]);
|
|
2804
|
-
(0,
|
|
3079
|
+
(0, import_react16.useLayoutEffect)(() => {
|
|
2805
3080
|
if (!visible) {
|
|
2806
3081
|
setPosition(void 0);
|
|
2807
3082
|
return;
|
|
@@ -2839,11 +3114,11 @@ function Floating({
|
|
|
2839
3114
|
observer.disconnect();
|
|
2840
3115
|
};
|
|
2841
3116
|
}, [children, content, placement, visible, portalContainer, autoAdjustOverflow, typeof arrow === "object" && arrow.pointAtCenter]);
|
|
2842
|
-
(0,
|
|
3117
|
+
(0, import_react16.useEffect)(() => () => {
|
|
2843
3118
|
clearTimers();
|
|
2844
3119
|
if (activeTooltipClose === closeSelfRef.current) activeTooltipClose = void 0;
|
|
2845
3120
|
}, []);
|
|
2846
|
-
const child = (0,
|
|
3121
|
+
const child = (0, import_react16.cloneElement)(children, {
|
|
2847
3122
|
...triggers.includes("hover") ? { onMouseEnter: (event) => {
|
|
2848
3123
|
triggerElementRef.current = event.currentTarget;
|
|
2849
3124
|
children.props.onMouseEnter?.(event);
|
|
@@ -2869,7 +3144,7 @@ function Floating({
|
|
|
2869
3144
|
"aria-describedby": visible ? contentId : void 0
|
|
2870
3145
|
});
|
|
2871
3146
|
const overlay = visible && content !== null && content !== void 0 && typeof document !== "undefined" ? (0, import_react_dom2.createPortal)(
|
|
2872
|
-
/* @__PURE__ */ (0,
|
|
3147
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
2873
3148
|
"span",
|
|
2874
3149
|
{
|
|
2875
3150
|
ref: overlayRef,
|
|
@@ -2889,23 +3164,23 @@ function Floating({
|
|
|
2889
3164
|
onMouseLeave: triggers.includes("hover") ? () => hide(mouseLeaveDelay) : void 0,
|
|
2890
3165
|
children: [
|
|
2891
3166
|
content,
|
|
2892
|
-
arrow ? /* @__PURE__ */ (0,
|
|
3167
|
+
arrow ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sia-floating__arrow" }) : null
|
|
2893
3168
|
]
|
|
2894
3169
|
}
|
|
2895
3170
|
),
|
|
2896
3171
|
portalContainer ?? document.body
|
|
2897
3172
|
) : null;
|
|
2898
|
-
return /* @__PURE__ */ (0,
|
|
2899
|
-
/* @__PURE__ */ (0,
|
|
3173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
|
|
3174
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { ref: rootRef, className: `sia-floating ${className}`.trim(), children: child }),
|
|
2900
3175
|
overlay
|
|
2901
3176
|
] });
|
|
2902
3177
|
}
|
|
2903
3178
|
function Tooltip(props) {
|
|
2904
|
-
return /* @__PURE__ */ (0,
|
|
3179
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Floating, { ...props, content: props.title });
|
|
2905
3180
|
}
|
|
2906
3181
|
|
|
2907
3182
|
// src/components/Feedback.tsx
|
|
2908
|
-
var
|
|
3183
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
2909
3184
|
function Progress({
|
|
2910
3185
|
percent = 0,
|
|
2911
3186
|
type = "line",
|
|
@@ -2927,35 +3202,35 @@ function Progress({
|
|
|
2927
3202
|
const resolved = status ?? (safe >= 100 ? "success" : "normal");
|
|
2928
3203
|
const color = typeof strokeColor === "string" ? strokeColor : void 0;
|
|
2929
3204
|
const background = typeof strokeColor === "object" ? `linear-gradient(90deg, ${strokeColor.from}, ${strokeColor.to})` : color;
|
|
2930
|
-
const label = format?.(safe, success?.percent) ?? (resolved === "exception" ? /* @__PURE__ */ (0,
|
|
3205
|
+
const label = format?.(safe, success?.percent) ?? (resolved === "exception" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon, { name: "close" }) : resolved === "success" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon, { name: "check" }) : `${safe}%`);
|
|
2931
3206
|
if (type !== "line") {
|
|
2932
3207
|
const radius = 46;
|
|
2933
3208
|
const circumference = 2 * Math.PI * radius;
|
|
2934
3209
|
const dash = circumference * (safe / 100);
|
|
2935
|
-
return /* @__PURE__ */ (0,
|
|
2936
|
-
/* @__PURE__ */ (0,
|
|
2937
|
-
/* @__PURE__ */ (0,
|
|
2938
|
-
/* @__PURE__ */ (0,
|
|
3210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `sia-progress sia-progress--${type} sia-progress--${resolved} ${className}`.trim(), style: { width, height: width, ...style }, ...withTitleTooltip(props), children: [
|
|
3211
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("svg", { viewBox: "0 0 100 100", role: "progressbar", "aria-valuenow": safe, children: [
|
|
3212
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { className: "sia-progress__trail", cx: "50", cy: "50", r: radius, style: { stroke: trailColor } }),
|
|
3213
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { className: "sia-progress__circle", cx: "50", cy: "50", r: radius, style: { stroke: color, strokeDasharray: type === "dashboard" ? `${circumference * 0.75} ${circumference * 0.25}` : circumference, strokeDashoffset: (type === "dashboard" ? circumference * 0.75 : circumference) - dash * (type === "dashboard" ? 0.75 : 1), strokeWidth } })
|
|
2939
3214
|
] }),
|
|
2940
|
-
showInfo ? /* @__PURE__ */ (0,
|
|
3215
|
+
showInfo ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sia-progress__text", children: label }) : null
|
|
2941
3216
|
] });
|
|
2942
3217
|
}
|
|
2943
3218
|
const height = Array.isArray(size) ? size[1] : typeof size === "number" ? size : size === "small" ? 6 : strokeWidth;
|
|
2944
|
-
return /* @__PURE__ */ (0,
|
|
2945
|
-
/* @__PURE__ */ (0,
|
|
2946
|
-
/* @__PURE__ */ (0,
|
|
2947
|
-
success?.percent ? /* @__PURE__ */ (0,
|
|
3219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `sia-progress sia-progress--line sia-progress--${resolved} ${className}`.trim(), style, ...withTitleTooltip(props), children: [
|
|
3220
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "sia-progress__outer", style: { height, backgroundColor: trailColor }, children: steps ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "sia-progress__steps", children: Array.from({ length: steps }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: index < Math.round(steps * safe / 100) ? "is-active" : "", style: { background: index < Math.round(steps * safe / 100) ? background : trailColor } }, index)) }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
3221
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sia-progress__bar", style: { width: `${safe}%`, background } }),
|
|
3222
|
+
success?.percent ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sia-progress__success", style: { width: `${success.percent}%`, background: success.strokeColor } }) : null
|
|
2948
3223
|
] }) }),
|
|
2949
|
-
showInfo ? /* @__PURE__ */ (0,
|
|
3224
|
+
showInfo ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sia-progress__info", children: label }) : null
|
|
2950
3225
|
] });
|
|
2951
3226
|
}
|
|
2952
3227
|
|
|
2953
3228
|
// src/components/DataDisplay.tsx
|
|
2954
|
-
var
|
|
3229
|
+
var import_react19 = require("react");
|
|
2955
3230
|
var import_react_dom5 = require("react-dom");
|
|
2956
3231
|
|
|
2957
3232
|
// src/components/Overlay.tsx
|
|
2958
|
-
var
|
|
3233
|
+
var import_react18 = require("react");
|
|
2959
3234
|
var import_react_dom4 = require("react-dom");
|
|
2960
3235
|
var bodyLockCount = 0;
|
|
2961
3236
|
var previousBodyOverflow = "";
|
|
@@ -2977,10 +3252,10 @@ function focusableElements(container) {
|
|
|
2977
3252
|
)].filter((element) => !element.hidden && element.getAttribute("aria-hidden") !== "true");
|
|
2978
3253
|
}
|
|
2979
3254
|
function useOverlayLifecycle(open, panelRef, onRequestClose, keyboard = true) {
|
|
2980
|
-
const overlayIdRef = (0,
|
|
2981
|
-
const closeRef = (0,
|
|
3255
|
+
const overlayIdRef = (0, import_react18.useRef)(/* @__PURE__ */ Symbol("sia-overlay"));
|
|
3256
|
+
const closeRef = (0, import_react18.useRef)(onRequestClose);
|
|
2982
3257
|
closeRef.current = onRequestClose;
|
|
2983
|
-
(0,
|
|
3258
|
+
(0, import_react18.useEffect)(() => {
|
|
2984
3259
|
if (!open || typeof document === "undefined") return void 0;
|
|
2985
3260
|
const overlayId = overlayIdRef.current;
|
|
2986
3261
|
const previouslyFocused = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
@@ -3034,26 +3309,26 @@ function OverlayPortal({ children, container }) {
|
|
|
3034
3309
|
}
|
|
3035
3310
|
|
|
3036
3311
|
// src/components/DataDisplay.tsx
|
|
3037
|
-
var
|
|
3312
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3038
3313
|
function BadgeRibbon({ text, color, placement = "end", className = "", children, ...props }) {
|
|
3039
|
-
return /* @__PURE__ */ (0,
|
|
3314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: `sia-ribbon-wrap ${className}`.trim(), ...withTitleTooltip(props), children: [
|
|
3040
3315
|
children,
|
|
3041
|
-
/* @__PURE__ */ (0,
|
|
3316
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: `sia-ribbon sia-ribbon--${placement}`, style: { backgroundColor: color }, children: text })
|
|
3042
3317
|
] });
|
|
3043
3318
|
}
|
|
3044
3319
|
function Badge({ count, showZero = false, overflowCount = 99, dot = false, status, text, color, offset = [0, 0], size = "default", className = "", children, style, ...props }) {
|
|
3045
3320
|
const numeric = typeof count === "number";
|
|
3046
3321
|
const hidden = !dot && !status && (count === void 0 || count === null || count === 0 && !showZero);
|
|
3047
3322
|
const display = numeric && count > overflowCount ? `${overflowCount}+` : count;
|
|
3048
|
-
const badge = !hidden ? /* @__PURE__ */ (0,
|
|
3049
|
-
if (status && !children) return /* @__PURE__ */ (0,
|
|
3323
|
+
const badge = !hidden ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("sup", { className: `sia-badge__count${dot || status ? " sia-badge__dot" : ""}${status ? ` sia-badge__dot--${status}` : ""} sia-badge__count--${size}`, style: { backgroundColor: color, transform: `translate(calc(50% + ${offset[0]}px), calc(-50% + ${offset[1]}px))` }, children: dot || status ? null : display }) : null;
|
|
3324
|
+
if (status && !children) return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: `sia-badge sia-badge--status ${className}`.trim(), style, ...withTitleTooltip(props), children: [
|
|
3050
3325
|
badge,
|
|
3051
|
-
text ? /* @__PURE__ */ (0,
|
|
3326
|
+
text ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sia-badge__text", children: text }) : null
|
|
3052
3327
|
] });
|
|
3053
|
-
return /* @__PURE__ */ (0,
|
|
3328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: `sia-badge ${className}`.trim(), style, ...withTitleTooltip(props), children: [
|
|
3054
3329
|
children,
|
|
3055
3330
|
badge,
|
|
3056
|
-
text && !status ? /* @__PURE__ */ (0,
|
|
3331
|
+
text && !status ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sia-badge__text", children: text }) : null
|
|
3057
3332
|
] });
|
|
3058
3333
|
}
|
|
3059
3334
|
Badge.Ribbon = BadgeRibbon;
|
|
@@ -3063,8 +3338,8 @@ function CollapsePanel({
|
|
|
3063
3338
|
destroyInactivePanel = false,
|
|
3064
3339
|
children
|
|
3065
3340
|
}) {
|
|
3066
|
-
const [keepChildren, setKeepChildren] = (0,
|
|
3067
|
-
(0,
|
|
3341
|
+
const [keepChildren, setKeepChildren] = (0, import_react19.useState)(open || forceRender || !destroyInactivePanel);
|
|
3342
|
+
(0, import_react19.useEffect)(() => {
|
|
3068
3343
|
if (open || forceRender || !destroyInactivePanel) {
|
|
3069
3344
|
setKeepChildren(true);
|
|
3070
3345
|
return void 0;
|
|
@@ -3073,12 +3348,12 @@ function CollapsePanel({
|
|
|
3073
3348
|
return () => window.clearTimeout(timer);
|
|
3074
3349
|
}, [destroyInactivePanel, forceRender, open]);
|
|
3075
3350
|
const renderChildren = open || forceRender || !destroyInactivePanel || keepChildren;
|
|
3076
|
-
return /* @__PURE__ */ (0,
|
|
3351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "sia-collapse__panel", "aria-hidden": !open, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "sia-collapse__panel-motion", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "sia-collapse__panel-body", children: renderChildren ? children : null }) }) });
|
|
3077
3352
|
}
|
|
3078
3353
|
function Collapse({ items, activeKey, defaultActiveKey = [], accordion = false, bordered = true, ghost = false, destroyInactivePanel = false, expandIconPosition = "start", onChange, className = "", ...props }) {
|
|
3079
3354
|
const normalize = (key) => Array.isArray(key) ? [...key] : key === void 0 ? [] : [key];
|
|
3080
3355
|
const controlled = activeKey !== void 0;
|
|
3081
|
-
const [internal, setInternal] = (0,
|
|
3356
|
+
const [internal, setInternal] = (0, import_react19.useState)(normalize(defaultActiveKey));
|
|
3082
3357
|
const openKeys = controlled ? normalize(activeKey) : internal;
|
|
3083
3358
|
function toggle(item) {
|
|
3084
3359
|
if (item.disabled || item.collapsible === "disabled") return;
|
|
@@ -3088,36 +3363,36 @@ function Collapse({ items, activeKey, defaultActiveKey = [], accordion = false,
|
|
|
3088
3363
|
onChange?.(accordion ? next[0] ?? "" : next);
|
|
3089
3364
|
}
|
|
3090
3365
|
const borderClassName = !bordered || ghost ? "sia-collapse--borderless" : "sia-collapse--bordered";
|
|
3091
|
-
return /* @__PURE__ */ (0,
|
|
3366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: `sia-collapse ${borderClassName}${ghost ? " sia-collapse--ghost" : ""} sia-collapse--icon-${expandIconPosition} ${className}`.trim(), ...withTitleTooltip(props), children: items.map((item) => {
|
|
3092
3367
|
const open = openKeys.includes(item.key);
|
|
3093
|
-
const arrow = item.showArrow === false ? null : /* @__PURE__ */ (0,
|
|
3094
|
-
return /* @__PURE__ */ (0,
|
|
3095
|
-
/* @__PURE__ */ (0,
|
|
3368
|
+
const arrow = item.showArrow === false ? null : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { type: "button", className: "sia-collapse__arrow", "aria-label": open ? "\u6536\u8D77" : "\u5C55\u5F00", onClick: item.collapsible === "icon" ? () => toggle(item) : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "chevron-right", size: 14 }) });
|
|
3369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { className: `sia-collapse__item${open ? " is-open" : ""}${item.disabled ? " is-disabled" : ""} ${item.className ?? ""}`.trim(), children: [
|
|
3370
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("header", { className: "sia-collapse__header", role: "button", tabIndex: item.disabled ? -1 : 0, "aria-expanded": open, onClick: item.collapsible === "icon" ? void 0 : () => toggle(item), onKeyDown: (event) => {
|
|
3096
3371
|
if (event.key === "Enter" || event.key === " ") {
|
|
3097
3372
|
event.preventDefault();
|
|
3098
3373
|
toggle(item);
|
|
3099
3374
|
}
|
|
3100
3375
|
}, children: [
|
|
3101
3376
|
expandIconPosition === "start" ? arrow : null,
|
|
3102
|
-
/* @__PURE__ */ (0,
|
|
3103
|
-
item.extra ? /* @__PURE__ */ (0,
|
|
3377
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sia-collapse__label", children: item.label }),
|
|
3378
|
+
item.extra ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sia-collapse__extra", onClick: (event) => event.stopPropagation(), children: item.extra }) : null,
|
|
3104
3379
|
expandIconPosition === "end" ? arrow : null
|
|
3105
3380
|
] }),
|
|
3106
|
-
/* @__PURE__ */ (0,
|
|
3381
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(CollapsePanel, { open, forceRender: item.forceRender, destroyInactivePanel, children: item.children })
|
|
3107
3382
|
] }, item.key);
|
|
3108
3383
|
}) });
|
|
3109
3384
|
}
|
|
3110
3385
|
function ImagePreview({ open, src, alt = "", onOpenChange }) {
|
|
3111
|
-
const previewRef = (0,
|
|
3112
|
-
const stageRef = (0,
|
|
3113
|
-
const [natural, setNatural] = (0,
|
|
3114
|
-
const [area, setArea] = (0,
|
|
3115
|
-
const [zoom, setZoom] = (0,
|
|
3116
|
-
const [rotation, setRotation] = (0,
|
|
3117
|
-
const [flip, setFlip] = (0,
|
|
3118
|
-
const [pan, setPan] = (0,
|
|
3119
|
-
const [failed, setFailed] = (0,
|
|
3120
|
-
const drag = (0,
|
|
3386
|
+
const previewRef = (0, import_react19.useRef)(null);
|
|
3387
|
+
const stageRef = (0, import_react19.useRef)(null);
|
|
3388
|
+
const [natural, setNatural] = (0, import_react19.useState)({ src: "", width: 0, height: 0 });
|
|
3389
|
+
const [area, setArea] = (0, import_react19.useState)({ width: 0, height: 0 });
|
|
3390
|
+
const [zoom, setZoom] = (0, import_react19.useState)(1);
|
|
3391
|
+
const [rotation, setRotation] = (0, import_react19.useState)(0);
|
|
3392
|
+
const [flip, setFlip] = (0, import_react19.useState)({ x: 1, y: 1 });
|
|
3393
|
+
const [pan, setPan] = (0, import_react19.useState)({ x: 0, y: 0 });
|
|
3394
|
+
const [failed, setFailed] = (0, import_react19.useState)(false);
|
|
3395
|
+
const drag = (0, import_react19.useRef)();
|
|
3121
3396
|
useOverlayLifecycle(open, previewRef, () => onOpenChange(false));
|
|
3122
3397
|
const reset = () => {
|
|
3123
3398
|
setZoom(1);
|
|
@@ -3126,11 +3401,11 @@ function ImagePreview({ open, src, alt = "", onOpenChange }) {
|
|
|
3126
3401
|
setPan({ x: 0, y: 0 });
|
|
3127
3402
|
drag.current = void 0;
|
|
3128
3403
|
};
|
|
3129
|
-
(0,
|
|
3404
|
+
(0, import_react19.useEffect)(() => {
|
|
3130
3405
|
reset();
|
|
3131
3406
|
setFailed(false);
|
|
3132
3407
|
}, [open, src]);
|
|
3133
|
-
(0,
|
|
3408
|
+
(0, import_react19.useEffect)(() => {
|
|
3134
3409
|
const stage = stageRef.current;
|
|
3135
3410
|
if (!open || !stage) return;
|
|
3136
3411
|
const measure = () => {
|
|
@@ -3147,12 +3422,12 @@ function ImagePreview({ open, src, alt = "", onOpenChange }) {
|
|
|
3147
3422
|
const fit = ready ? Math.min(1, area.width / (sideways ? natural.height : natural.width), area.height / (sideways ? natural.width : natural.height)) : 0;
|
|
3148
3423
|
const changeZoom = (factor) => setZoom((value) => Math.max(0.25, Math.min(8, value * factor)));
|
|
3149
3424
|
if (!open || !src || typeof document === "undefined") return null;
|
|
3150
|
-
return (0, import_react_dom5.createPortal)(/* @__PURE__ */ (0,
|
|
3151
|
-
/* @__PURE__ */ (0,
|
|
3425
|
+
return (0, import_react_dom5.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { ref: previewRef, className: "sia-image-preview", role: "dialog", "aria-modal": "true", "aria-label": "\u56FE\u7247\u9884\u89C8", tabIndex: -1, onClick: () => onOpenChange(false), children: [
|
|
3426
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", className: "sia-image-preview__close", "aria-label": "\u5173\u95ED\u9884\u89C8", onClick: (event) => {
|
|
3152
3427
|
event.stopPropagation();
|
|
3153
3428
|
onOpenChange(false);
|
|
3154
|
-
}, children: /* @__PURE__ */ (0,
|
|
3155
|
-
/* @__PURE__ */ (0,
|
|
3429
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "close" }) }),
|
|
3430
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { ref: stageRef, className: "sia-image-preview__stage", children: failed ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sia-image-preview__error", children: "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25" }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3156
3431
|
"img",
|
|
3157
3432
|
{
|
|
3158
3433
|
src,
|
|
@@ -3185,53 +3460,53 @@ function ImagePreview({ open, src, alt = "", onOpenChange }) {
|
|
|
3185
3460
|
},
|
|
3186
3461
|
src
|
|
3187
3462
|
) }),
|
|
3188
|
-
/* @__PURE__ */ (0,
|
|
3189
|
-
/* @__PURE__ */ (0,
|
|
3190
|
-
/* @__PURE__ */ (0,
|
|
3191
|
-
/* @__PURE__ */ (0,
|
|
3463
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "sia-image-preview__toolbar", role: "toolbar", "aria-label": "\u56FE\u7247\u64CD\u4F5C", onClick: (event) => event.stopPropagation(), children: [
|
|
3464
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u6C34\u5E73\u7FFB\u8F6C", "aria-label": "\u6C34\u5E73\u7FFB\u8F6C", disabled: !ready, onClick: () => setFlip((value) => ({ ...value, x: -value.x })), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "flip-horizontal", size: 20 }) }),
|
|
3465
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u5782\u76F4\u7FFB\u8F6C", "aria-label": "\u5782\u76F4\u7FFB\u8F6C", disabled: !ready, onClick: () => setFlip((value) => ({ ...value, y: -value.y })), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "flip-vertical", size: 20 }) }),
|
|
3466
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u5411\u5DE6\u65CB\u8F6C", "aria-label": "\u5411\u5DE6\u65CB\u8F6C", disabled: !ready, onClick: () => {
|
|
3192
3467
|
setRotation((value) => value - 90);
|
|
3193
3468
|
setPan({ x: 0, y: 0 });
|
|
3194
|
-
}, children: /* @__PURE__ */ (0,
|
|
3195
|
-
/* @__PURE__ */ (0,
|
|
3469
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "rotate-left", size: 20 }) }),
|
|
3470
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u5411\u53F3\u65CB\u8F6C", "aria-label": "\u5411\u53F3\u65CB\u8F6C", disabled: !ready, onClick: () => {
|
|
3196
3471
|
setRotation((value) => value + 90);
|
|
3197
3472
|
setPan({ x: 0, y: 0 });
|
|
3198
|
-
}, children: /* @__PURE__ */ (0,
|
|
3199
|
-
/* @__PURE__ */ (0,
|
|
3200
|
-
/* @__PURE__ */ (0,
|
|
3201
|
-
/* @__PURE__ */ (0,
|
|
3202
|
-
/* @__PURE__ */ (0,
|
|
3473
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "rotate-right", size: 20 }) }),
|
|
3474
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u7F29\u5C0F", "aria-label": "\u7F29\u5C0F", disabled: !ready || zoom <= 0.25, onClick: () => changeZoom(1 / 1.25), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "zoom-out", size: 20 }) }),
|
|
3475
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("output", { className: "sia-image-preview__scale", "aria-label": "\u5F53\u524D\u7F29\u653E\u6BD4\u4F8B", "aria-live": "polite", children: ready ? `${Math.round(fit * zoom * 100)}%` : "\u2014" }),
|
|
3476
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u653E\u5927", "aria-label": "\u653E\u5927", disabled: !ready || zoom >= 8, onClick: () => changeZoom(1.25), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "zoom-in", size: 20 }) }),
|
|
3477
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", title: "\u9002\u5E94\u7A97\u53E3", "aria-label": "\u9002\u5E94\u7A97\u53E3", disabled: !ready, onClick: reset, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: "refresh", size: 20 }) })
|
|
3203
3478
|
] })
|
|
3204
3479
|
] }), document.body);
|
|
3205
3480
|
}
|
|
3206
3481
|
|
|
3207
3482
|
// src/components/FloatingPlaceholder.tsx
|
|
3208
|
-
var
|
|
3483
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3209
3484
|
function useFloatingPlaceholder({ mode, placeholder, filled, active = false }) {
|
|
3210
3485
|
const enabled = usePlaceholderMode(mode) === "floating" && Boolean(placeholder);
|
|
3211
3486
|
return {
|
|
3212
3487
|
enabled,
|
|
3213
3488
|
className: enabled ? ` sia-placeholder-floating${filled ? " sia-placeholder-floating--filled" : ""}${active ? " sia-placeholder-floating--active" : ""}` : "",
|
|
3214
|
-
label: enabled ? /* @__PURE__ */ (0,
|
|
3489
|
+
label: enabled ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "sia-floating-placeholder", "aria-hidden": "true", children: placeholder }) : null
|
|
3215
3490
|
};
|
|
3216
3491
|
}
|
|
3217
3492
|
|
|
3218
3493
|
// src/components/Select.tsx
|
|
3219
|
-
var
|
|
3494
|
+
var import_react25 = require("react");
|
|
3220
3495
|
|
|
3221
3496
|
// src/components/Modal.tsx
|
|
3222
|
-
var
|
|
3497
|
+
var import_react20 = require("react");
|
|
3223
3498
|
var import_client3 = require("react-dom/client");
|
|
3224
|
-
var
|
|
3499
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3225
3500
|
var modalHandles = /* @__PURE__ */ new Set();
|
|
3226
3501
|
var MODAL_MOTION_DURATION = 220;
|
|
3227
3502
|
var typeIcons = {
|
|
3228
|
-
info: /* @__PURE__ */ (0,
|
|
3229
|
-
success: /* @__PURE__ */ (0,
|
|
3230
|
-
warning: /* @__PURE__ */ (0,
|
|
3231
|
-
error: /* @__PURE__ */ (0,
|
|
3232
|
-
confirm: /* @__PURE__ */ (0,
|
|
3503
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "info", size: 23 }),
|
|
3504
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "circle-check", size: 23 }),
|
|
3505
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "warning", size: 23 }),
|
|
3506
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "circle-close", size: 23 }),
|
|
3507
|
+
confirm: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "question", size: 23 })
|
|
3233
3508
|
};
|
|
3234
|
-
var ModalRoot = (0,
|
|
3509
|
+
var ModalRoot = (0, import_react20.forwardRef)(function Modal({
|
|
3235
3510
|
open,
|
|
3236
3511
|
title,
|
|
3237
3512
|
children,
|
|
@@ -3260,20 +3535,20 @@ var ModalRoot = (0, import_react19.forwardRef)(function Modal({
|
|
|
3260
3535
|
style,
|
|
3261
3536
|
...props
|
|
3262
3537
|
}, forwardedRef) {
|
|
3263
|
-
const localRef = (0,
|
|
3264
|
-
const titleId = (0,
|
|
3265
|
-
const [submitting, setSubmitting] = (0,
|
|
3266
|
-
const [rendered, setRendered] = (0,
|
|
3267
|
-
const [closing, setClosing] = (0,
|
|
3268
|
-
const afterOpenChangeRef = (0,
|
|
3538
|
+
const localRef = (0, import_react20.useRef)(null);
|
|
3539
|
+
const titleId = (0, import_react20.useId)();
|
|
3540
|
+
const [submitting, setSubmitting] = (0, import_react20.useState)(false);
|
|
3541
|
+
const [rendered, setRendered] = (0, import_react20.useState)(open);
|
|
3542
|
+
const [closing, setClosing] = (0, import_react20.useState)(false);
|
|
3543
|
+
const afterOpenChangeRef = (0, import_react20.useRef)(afterOpenChange);
|
|
3269
3544
|
afterOpenChangeRef.current = afterOpenChange;
|
|
3270
|
-
const submitLock = (0,
|
|
3271
|
-
(0,
|
|
3545
|
+
const submitLock = (0, import_react20.useRef)(false);
|
|
3546
|
+
(0, import_react20.useEffect)(() => {
|
|
3272
3547
|
if (!open || !rendered) return void 0;
|
|
3273
3548
|
const timer = window.setTimeout(() => afterOpenChangeRef.current?.(true), MODAL_MOTION_DURATION);
|
|
3274
3549
|
return () => window.clearTimeout(timer);
|
|
3275
3550
|
}, [open, rendered]);
|
|
3276
|
-
(0,
|
|
3551
|
+
(0, import_react20.useEffect)(() => {
|
|
3277
3552
|
if (open) {
|
|
3278
3553
|
setRendered(true);
|
|
3279
3554
|
setClosing(false);
|
|
@@ -3330,11 +3605,11 @@ var ModalRoot = (0, import_react19.forwardRef)(function Modal({
|
|
|
3330
3605
|
"--sia-modal-width": typeof width === "number" ? `${width}px` : width
|
|
3331
3606
|
};
|
|
3332
3607
|
const loading = submitting || confirmLoading;
|
|
3333
|
-
const defaultFooter = /* @__PURE__ */ (0,
|
|
3334
|
-
showCancel ? /* @__PURE__ */ (0,
|
|
3335
|
-
/* @__PURE__ */ (0,
|
|
3608
|
+
const defaultFooter = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
3609
|
+
showCancel ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { ...cancelButtonProps, onClick: requestClose, disabled: loading || cancelButtonProps?.disabled, children: cancelText }) : null,
|
|
3610
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { variant: "primary", ...okButtonProps, onClick: handleOk, loading, children: okText })
|
|
3336
3611
|
] });
|
|
3337
|
-
return /* @__PURE__ */ (0,
|
|
3612
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OverlayPortal, { container: getContainer, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3338
3613
|
"div",
|
|
3339
3614
|
{
|
|
3340
3615
|
className: `sia-modal-root${centered ? " sia-modal-root--centered" : ""}`,
|
|
@@ -3343,7 +3618,7 @@ var ModalRoot = (0, import_react19.forwardRef)(function Modal({
|
|
|
3343
3618
|
onMouseDown: (event) => {
|
|
3344
3619
|
if (event.target === event.currentTarget && maskClosable) requestClose();
|
|
3345
3620
|
},
|
|
3346
|
-
children: /* @__PURE__ */ (0,
|
|
3621
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3347
3622
|
"div",
|
|
3348
3623
|
{
|
|
3349
3624
|
ref: setRef,
|
|
@@ -3355,16 +3630,16 @@ var ModalRoot = (0, import_react19.forwardRef)(function Modal({
|
|
|
3355
3630
|
tabIndex: -1,
|
|
3356
3631
|
...withTitleTooltip(props),
|
|
3357
3632
|
children: [
|
|
3358
|
-
/* @__PURE__ */ (0,
|
|
3359
|
-
/* @__PURE__ */ (0,
|
|
3360
|
-
typeIcons[type] ? /* @__PURE__ */ (0,
|
|
3361
|
-
title ? /* @__PURE__ */ (0,
|
|
3633
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "sia-modal__header", style: height !== void 0 ? { flexShrink: 0 } : void 0, children: [
|
|
3634
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "sia-modal__heading", children: [
|
|
3635
|
+
typeIcons[type] ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "sia-modal__type-icon", "aria-hidden": "true", children: typeIcons[type] }) : null,
|
|
3636
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("strong", { id: titleId, children: title }) : null
|
|
3362
3637
|
] }),
|
|
3363
|
-
closable ? /* @__PURE__ */ (0,
|
|
3638
|
+
closable ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { type: "button", className: "sia-modal__close", "aria-label": "\u5173\u95ED\u5BF9\u8BDD\u6846", onClick: requestClose, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "close", size: 17 }) }) : null
|
|
3364
3639
|
] }),
|
|
3365
|
-
children !== void 0 ? /* @__PURE__ */ (0,
|
|
3366
|
-
footer !== null ? /* @__PURE__ */ (0,
|
|
3367
|
-
footer === void 0 && footerExtra != null ? /* @__PURE__ */ (0,
|
|
3640
|
+
children !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "sia-modal__body", style: height !== void 0 ? { flex: 1, minHeight: 0, overflow: "auto" } : void 0, children }) : null,
|
|
3641
|
+
footer !== null ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "sia-modal__footer", style: height !== void 0 ? { flexShrink: 0 } : void 0, children: [
|
|
3642
|
+
footer === void 0 && footerExtra != null ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { marginRight: "auto" }, children: footerExtra }) : null,
|
|
3368
3643
|
footer ?? defaultFooter
|
|
3369
3644
|
] }) : null
|
|
3370
3645
|
]
|
|
@@ -3398,11 +3673,11 @@ function openModal(config) {
|
|
|
3398
3673
|
render();
|
|
3399
3674
|
}
|
|
3400
3675
|
function ModalInstance() {
|
|
3401
|
-
(0,
|
|
3676
|
+
(0, import_react20.useEffect)(() => {
|
|
3402
3677
|
mounted = true;
|
|
3403
3678
|
if (!currentOpen) render();
|
|
3404
3679
|
}, []);
|
|
3405
|
-
return /* @__PURE__ */ (0,
|
|
3680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalRoot, { ...currentConfig, open: !mounted || currentOpen, onOpenChange: (nextOpen) => {
|
|
3406
3681
|
currentConfig.onOpenChange?.(nextOpen);
|
|
3407
3682
|
if (!nextOpen) closeWithMotion();
|
|
3408
3683
|
}, afterOpenChange: (nextOpen) => {
|
|
@@ -3414,7 +3689,7 @@ function openModal(config) {
|
|
|
3414
3689
|
} });
|
|
3415
3690
|
}
|
|
3416
3691
|
function render() {
|
|
3417
|
-
root.render(/* @__PURE__ */ (0,
|
|
3692
|
+
root.render(/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalInstance, {}));
|
|
3418
3693
|
}
|
|
3419
3694
|
const handle = {
|
|
3420
3695
|
destroy: closeWithMotion,
|
|
@@ -3459,12 +3734,12 @@ var Modal2 = Object.assign(ModalRoot, {
|
|
|
3459
3734
|
});
|
|
3460
3735
|
|
|
3461
3736
|
// src/components/Input.tsx
|
|
3462
|
-
var
|
|
3737
|
+
var import_react22 = require("react");
|
|
3463
3738
|
|
|
3464
3739
|
// src/components/TextArea.tsx
|
|
3465
|
-
var
|
|
3466
|
-
var
|
|
3467
|
-
var TextArea = (0,
|
|
3740
|
+
var import_react21 = require("react");
|
|
3741
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3742
|
+
var TextArea = (0, import_react21.forwardRef)(function TextArea2({
|
|
3468
3743
|
label,
|
|
3469
3744
|
hint,
|
|
3470
3745
|
status = "default",
|
|
@@ -3482,9 +3757,9 @@ var TextArea = (0, import_react20.forwardRef)(function TextArea2({
|
|
|
3482
3757
|
...props
|
|
3483
3758
|
}, ref) {
|
|
3484
3759
|
const size = useControlSize(sizeProp);
|
|
3485
|
-
const fallbackId = (0,
|
|
3760
|
+
const fallbackId = (0, import_react21.useId)();
|
|
3486
3761
|
const textAreaId = id ?? fallbackId;
|
|
3487
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
3762
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react21.useState)(() => defaultValue === void 0 ? "" : String(defaultValue));
|
|
3488
3763
|
const currentText = value !== void 0 ? String(value) : uncontrolledValue;
|
|
3489
3764
|
const floating = useFloatingPlaceholder({ mode: placeholderMode, placeholder, filled: currentText.length > 0 });
|
|
3490
3765
|
const hintId = `${textAreaId}-hint`;
|
|
@@ -3493,8 +3768,8 @@ var TextArea = (0, import_react20.forwardRef)(function TextArea2({
|
|
|
3493
3768
|
setUncontrolledValue(event.target.value);
|
|
3494
3769
|
onChange?.(event);
|
|
3495
3770
|
}
|
|
3496
|
-
const control = /* @__PURE__ */ (0,
|
|
3497
|
-
/* @__PURE__ */ (0,
|
|
3771
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: `sia-textarea-control sia-textarea-control--${size} sia-textarea-control--${status}${floating.className}${disabled ? " is-disabled" : ""}`, children: [
|
|
3772
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3498
3773
|
"textarea",
|
|
3499
3774
|
{
|
|
3500
3775
|
...withTitleTooltip(props),
|
|
@@ -3512,22 +3787,22 @@ var TextArea = (0, import_react20.forwardRef)(function TextArea2({
|
|
|
3512
3787
|
}
|
|
3513
3788
|
),
|
|
3514
3789
|
floating.label,
|
|
3515
|
-
showCount ? /* @__PURE__ */ (0,
|
|
3790
|
+
showCount ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: `sia-textarea-control__count${maxLength !== void 0 && currentText.length >= maxLength ? " is-limit" : ""}`, "aria-live": "polite", children: [
|
|
3516
3791
|
currentText.length,
|
|
3517
3792
|
maxLength !== void 0 ? `/${maxLength}` : null
|
|
3518
3793
|
] }) : null
|
|
3519
3794
|
] });
|
|
3520
|
-
if (!label && !hint) return /* @__PURE__ */ (0,
|
|
3521
|
-
return /* @__PURE__ */ (0,
|
|
3522
|
-
label ? /* @__PURE__ */ (0,
|
|
3795
|
+
if (!label && !hint) return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: `sia-field ${className}`.trim(), children: control });
|
|
3796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: `sia-field ${className}`.trim(), children: [
|
|
3797
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("label", { className: "sia-field__label", htmlFor: textAreaId, children: label }) : null,
|
|
3523
3798
|
control,
|
|
3524
|
-
hint ? /* @__PURE__ */ (0,
|
|
3799
|
+
hint ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { id: hintId, className: `sia-field__hint sia-field__hint--${status}`, children: hint }) : null
|
|
3525
3800
|
] });
|
|
3526
3801
|
});
|
|
3527
3802
|
|
|
3528
3803
|
// src/components/Input.tsx
|
|
3529
|
-
var
|
|
3530
|
-
var Input = (0,
|
|
3804
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3805
|
+
var Input = (0, import_react22.forwardRef)(function Input2({
|
|
3531
3806
|
label,
|
|
3532
3807
|
hint,
|
|
3533
3808
|
status = "default",
|
|
@@ -3550,14 +3825,14 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3550
3825
|
...props
|
|
3551
3826
|
}, forwardedRef) {
|
|
3552
3827
|
const size = useControlSize(sizeProp);
|
|
3553
|
-
const fallbackId = (0,
|
|
3828
|
+
const fallbackId = (0, import_react22.useId)();
|
|
3554
3829
|
const inputId = id ?? fallbackId;
|
|
3555
|
-
const localRef = (0,
|
|
3556
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
3830
|
+
const localRef = (0, import_react22.useRef)(null);
|
|
3831
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react22.useState)(() => defaultValue === void 0 ? "" : String(defaultValue));
|
|
3557
3832
|
const currentText = value !== void 0 ? String(value) : uncontrolledValue;
|
|
3558
3833
|
const hasValue = currentText.length > 0;
|
|
3559
|
-
const [expanded, setExpanded] = (0,
|
|
3560
|
-
const [expandedDraft, setExpandedDraft] = (0,
|
|
3834
|
+
const [expanded, setExpanded] = (0, import_react22.useState)(false);
|
|
3835
|
+
const [expandedDraft, setExpandedDraft] = (0, import_react22.useState)("");
|
|
3561
3836
|
const floatingPlaceholder = usePlaceholderMode(placeholderMode) === "floating" && Boolean(placeholder);
|
|
3562
3837
|
const hintId = `${inputId}-hint`;
|
|
3563
3838
|
const describedBy = [props["aria-describedby"], hint ? hintId : null].filter(Boolean).join(" ") || void 0;
|
|
@@ -3593,7 +3868,7 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3593
3868
|
event.preventDefault();
|
|
3594
3869
|
localRef.current?.focus({ preventScroll: true });
|
|
3595
3870
|
}
|
|
3596
|
-
const input = /* @__PURE__ */ (0,
|
|
3871
|
+
const input = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3597
3872
|
"input",
|
|
3598
3873
|
{
|
|
3599
3874
|
...withTitleTooltip(props),
|
|
@@ -3610,15 +3885,15 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3610
3885
|
onChange: handleChange
|
|
3611
3886
|
}
|
|
3612
3887
|
);
|
|
3613
|
-
const control = /* @__PURE__ */ (0,
|
|
3614
|
-
prefix ? /* @__PURE__ */ (0,
|
|
3615
|
-
floatingPlaceholder ? /* @__PURE__ */ (0,
|
|
3888
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { onMouseDown: handleControlMouseDown, className: `sia-input-control sia-input-control--${size} sia-input-control--${status}${floatingPlaceholder ? " sia-input-control--floating" : ""}${floatingPlaceholder && hasValue ? " is-filled" : ""}${disabled ? " is-disabled" : ""}`, children: [
|
|
3889
|
+
prefix ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "sia-input-control__affix", children: prefix }) : null,
|
|
3890
|
+
floatingPlaceholder ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: "sia-input-control__input-wrap", children: [
|
|
3616
3891
|
input,
|
|
3617
|
-
/* @__PURE__ */ (0,
|
|
3892
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "sia-input-control__floating-placeholder", "aria-hidden": "true", children: placeholder })
|
|
3618
3893
|
] }) : input,
|
|
3619
|
-
allowClear && hasValue && !disabled ? /* @__PURE__ */ (0,
|
|
3620
|
-
suffix ? /* @__PURE__ */ (0,
|
|
3621
|
-
expandable && !disabled && !props.readOnly && (!props.type || props.type === "text") ? /* @__PURE__ */ (0,
|
|
3894
|
+
allowClear && hasValue && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("button", { className: "sia-input-control__clear", type: "button", "aria-label": "\u6E05\u7A7A\u8F93\u5165", onClick: clearValue, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Icon, { name: "circle-close", variant: "filled", size: 15 }) }) : null,
|
|
3895
|
+
suffix ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "sia-input-control__affix", children: suffix }) : null,
|
|
3896
|
+
expandable && !disabled && !props.readOnly && (!props.type || props.type === "text") ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3622
3897
|
"button",
|
|
3623
3898
|
{
|
|
3624
3899
|
type: "button",
|
|
@@ -3630,15 +3905,15 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3630
3905
|
setExpandedDraft(currentText);
|
|
3631
3906
|
setExpanded(true);
|
|
3632
3907
|
},
|
|
3633
|
-
children: /* @__PURE__ */ (0,
|
|
3908
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Icon, { name: "expand", size: 15 })
|
|
3634
3909
|
}
|
|
3635
3910
|
) : null,
|
|
3636
|
-
showCount ? /* @__PURE__ */ (0,
|
|
3911
|
+
showCount ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: `sia-input-control__count${maxLength !== void 0 && currentText.length >= maxLength ? " is-limit" : ""}`, "aria-live": "polite", children: [
|
|
3637
3912
|
currentText.length,
|
|
3638
3913
|
maxLength !== void 0 ? `/${maxLength}` : null
|
|
3639
3914
|
] }) : null
|
|
3640
3915
|
] });
|
|
3641
|
-
const editor = expandable ? /* @__PURE__ */ (0,
|
|
3916
|
+
const editor = expandable ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3642
3917
|
Modal2,
|
|
3643
3918
|
{
|
|
3644
3919
|
open: expanded,
|
|
@@ -3659,7 +3934,7 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3659
3934
|
setUncontrolledValue(next);
|
|
3660
3935
|
setExpanded(false);
|
|
3661
3936
|
},
|
|
3662
|
-
children: /* @__PURE__ */ (0,
|
|
3937
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3663
3938
|
TextArea,
|
|
3664
3939
|
{
|
|
3665
3940
|
"aria-label": "\u5C55\u5F00\u7F16\u8F91\u5185\u5BB9",
|
|
@@ -3675,23 +3950,23 @@ var Input = (0, import_react21.forwardRef)(function Input2({
|
|
|
3675
3950
|
)
|
|
3676
3951
|
}
|
|
3677
3952
|
) : null;
|
|
3678
|
-
if (!label && !hint) return /* @__PURE__ */ (0,
|
|
3679
|
-
/* @__PURE__ */ (0,
|
|
3953
|
+
if (!label && !hint) return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
3954
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: `sia-field ${className}`.trim(), children: control }),
|
|
3680
3955
|
editor
|
|
3681
3956
|
] });
|
|
3682
|
-
return /* @__PURE__ */ (0,
|
|
3683
|
-
/* @__PURE__ */ (0,
|
|
3684
|
-
label ? /* @__PURE__ */ (0,
|
|
3957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
3958
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: `sia-field ${className}`.trim(), children: [
|
|
3959
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("label", { className: "sia-field__label", htmlFor: inputId, children: label }) : null,
|
|
3685
3960
|
control,
|
|
3686
|
-
hint ? /* @__PURE__ */ (0,
|
|
3961
|
+
hint ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { id: hintId, className: `sia-field__hint sia-field__hint--${status}`, children: hint }) : null
|
|
3687
3962
|
] }),
|
|
3688
3963
|
editor
|
|
3689
3964
|
] });
|
|
3690
3965
|
});
|
|
3691
3966
|
|
|
3692
3967
|
// src/components/SelectionPanel.tsx
|
|
3693
|
-
var
|
|
3694
|
-
var
|
|
3968
|
+
var import_react23 = require("react");
|
|
3969
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3695
3970
|
function SelectionPanel({
|
|
3696
3971
|
options,
|
|
3697
3972
|
value,
|
|
@@ -3712,26 +3987,26 @@ function SelectionPanel({
|
|
|
3712
3987
|
maxHeight = 250,
|
|
3713
3988
|
autoFocusSearch = false
|
|
3714
3989
|
}) {
|
|
3715
|
-
const [localSearch, setLocalSearch] = (0,
|
|
3990
|
+
const [localSearch, setLocalSearch] = (0, import_react23.useState)("");
|
|
3716
3991
|
const search = searchValue ?? localSearch;
|
|
3717
|
-
const [scrollTop, setScrollTop] = (0,
|
|
3718
|
-
const [active, setActive] = (0,
|
|
3719
|
-
const [keyboardActive, setKeyboardActive] = (0,
|
|
3720
|
-
const [deselectedHover, setDeselectedHover] = (0,
|
|
3721
|
-
const listRef = (0,
|
|
3722
|
-
const id = (0,
|
|
3723
|
-
const selected = (0,
|
|
3992
|
+
const [scrollTop, setScrollTop] = (0, import_react23.useState)(0);
|
|
3993
|
+
const [active, setActive] = (0, import_react23.useState)();
|
|
3994
|
+
const [keyboardActive, setKeyboardActive] = (0, import_react23.useState)(false);
|
|
3995
|
+
const [deselectedHover, setDeselectedHover] = (0, import_react23.useState)();
|
|
3996
|
+
const listRef = (0, import_react23.useRef)(null);
|
|
3997
|
+
const id = (0, import_react23.useId)();
|
|
3998
|
+
const selected = (0, import_react23.useMemo)(() => new Set(value), [value]);
|
|
3724
3999
|
const count = Math.max(1, Math.floor(columns));
|
|
3725
|
-
const allOptions = (0,
|
|
4000
|
+
const allOptions = (0, import_react23.useMemo)(() => {
|
|
3726
4001
|
if (!includeUnknownValues) return [...options];
|
|
3727
4002
|
const known = new Set(options.filter((option) => option.optionType !== "divider").map((option) => option.value));
|
|
3728
4003
|
return [...value.filter((item) => !known.has(item)).map((item) => ({ value: item, label: String(item), group: "\u81EA\u5B9A\u4E49\u503C" })), ...options];
|
|
3729
4004
|
}, [options, value, includeUnknownValues]);
|
|
3730
|
-
const filtered = (0,
|
|
4005
|
+
const filtered = (0, import_react23.useMemo)(
|
|
3731
4006
|
() => allOptions.filter((option) => (!selectedOnly || selected.has(option.value)) && (!search || option.optionType !== "divider" && [option.label, option.value].some((text) => String(text ?? "").toLowerCase().includes(search.toLowerCase())))),
|
|
3732
4007
|
[allOptions, selectedOnly, selected, search]
|
|
3733
4008
|
);
|
|
3734
|
-
const rows = (0,
|
|
4009
|
+
const rows = (0, import_react23.useMemo)(() => {
|
|
3735
4010
|
const groups = /* @__PURE__ */ new Map();
|
|
3736
4011
|
filtered.forEach((option) => {
|
|
3737
4012
|
const items = groups.get(option.group) ?? [];
|
|
@@ -3757,7 +4032,7 @@ function SelectionPanel({
|
|
|
3757
4032
|
const virtual = filtered.length > 100;
|
|
3758
4033
|
const renderedRows = virtual ? rows.filter((row) => row.top + row.height >= scrollTop - 100 && row.top <= scrollTop + maxHeight + 100) : rows;
|
|
3759
4034
|
const enabled = filtered.filter((option) => !option.disabled && option.optionType !== "divider");
|
|
3760
|
-
(0,
|
|
4035
|
+
(0, import_react23.useEffect)(() => {
|
|
3761
4036
|
setScrollTop(0);
|
|
3762
4037
|
if (listRef.current) listRef.current.scrollTop = 0;
|
|
3763
4038
|
setActive(void 0);
|
|
@@ -3780,9 +4055,9 @@ function SelectionPanel({
|
|
|
3780
4055
|
const add = enabled.filter((option) => operation === "all" || !selected.has(option.value)).map((option) => option.value);
|
|
3781
4056
|
onChange([...retained, ...add]);
|
|
3782
4057
|
}
|
|
3783
|
-
return /* @__PURE__ */ (0,
|
|
3784
|
-
/* @__PURE__ */ (0,
|
|
3785
|
-
showSearch && /* @__PURE__ */ (0,
|
|
4058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "sia-selection-panel", children: [
|
|
4059
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FloatingScrollbarProvider, { targetRef: listRef }),
|
|
4060
|
+
showSearch && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3786
4061
|
Input,
|
|
3787
4062
|
{
|
|
3788
4063
|
"aria-label": "\u641C\u7D22\u9009\u9879",
|
|
@@ -3796,17 +4071,17 @@ function SelectionPanel({
|
|
|
3796
4071
|
}
|
|
3797
4072
|
}
|
|
3798
4073
|
),
|
|
3799
|
-
multiple && showActions && /* @__PURE__ */ (0,
|
|
3800
|
-
/* @__PURE__ */ (0,
|
|
3801
|
-
/* @__PURE__ */ (0,
|
|
3802
|
-
/* @__PURE__ */ (0,
|
|
3803
|
-
/* @__PURE__ */ (0,
|
|
4074
|
+
multiple && showActions && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "sia-selection-panel__actions", children: [
|
|
4075
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Button, { variant: "link", size: "small", disabled: disabled || loading || !enabled.length, onClick: () => batch("all"), children: "\u5168\u9009" }),
|
|
4076
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Button, { variant: "link", size: "small", disabled: disabled || loading || !enabled.length, onClick: () => batch("invert"), children: "\u53CD\u9009" }),
|
|
4077
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Button, { variant: "link", size: "small", disabled: disabled || loading || !value.length, onClick: () => batch("clear"), children: "\u6E05\u7A7A" }),
|
|
4078
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { children: [
|
|
3804
4079
|
"\u5DF2\u9009 ",
|
|
3805
4080
|
value.length,
|
|
3806
4081
|
" \u9879"
|
|
3807
4082
|
] })
|
|
3808
4083
|
] }),
|
|
3809
|
-
/* @__PURE__ */ (0,
|
|
4084
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3810
4085
|
"div",
|
|
3811
4086
|
{
|
|
3812
4087
|
ref: listRef,
|
|
@@ -3843,12 +4118,12 @@ function SelectionPanel({
|
|
|
3843
4118
|
toggle(enabled[index], true);
|
|
3844
4119
|
}
|
|
3845
4120
|
},
|
|
3846
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
4121
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { role: "status", children: "\u52A0\u8F7D\u4E2D\u2026" }) : !rows.length ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "sia-selection-panel__empty", children: "\u6682\u65E0\u5339\u914D\u9009\u9879" }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { style: { height: totalHeight, position: "relative" }, children: renderedRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3847
4122
|
"div",
|
|
3848
4123
|
{
|
|
3849
4124
|
className: row.title !== void 0 ? "sia-selection-panel__group" : "sia-selection-panel__row",
|
|
3850
4125
|
style: { position: "absolute", top: row.top, height: row.height, width: "100%", gridTemplateColumns: `repeat(${count}, minmax(0, 1fr))` },
|
|
3851
|
-
children: row.title ?? row.items?.map((option, index) => option.optionType === "divider" ? /* @__PURE__ */ (0,
|
|
4126
|
+
children: row.title ?? row.items?.map((option, index) => option.optionType === "divider" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { role: "separator", className: "sia-selection-panel__divider" }, `divider-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Tooltip, { title: option.disabled ? option.disabledTip : void 0, placement: "right", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3852
4127
|
"div",
|
|
3853
4128
|
{
|
|
3854
4129
|
role: "option",
|
|
@@ -3864,12 +4139,12 @@ function SelectionPanel({
|
|
|
3864
4139
|
onClick: (event) => {
|
|
3865
4140
|
if (!event.target.closest(".sia-checkbox")) toggle(option);
|
|
3866
4141
|
},
|
|
3867
|
-
children: multiple ? /* @__PURE__ */ (0,
|
|
3868
|
-
/* @__PURE__ */ (0,
|
|
3869
|
-
showValue && /* @__PURE__ */ (0,
|
|
3870
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
3871
|
-
/* @__PURE__ */ (0,
|
|
3872
|
-
showValue && /* @__PURE__ */ (0,
|
|
4142
|
+
children: multiple ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Checkbox2, { checked: selected.has(option.value), disabled: disabled || loading || option.disabled, tabIndex: -1, onChange: () => toggle(option), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: "sia-selection-panel__text", children: [
|
|
4143
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sia-selection-panel__label", children: showValue || displayField === "label" ? option.label : String(option.value) }),
|
|
4144
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("small", { children: String(option.value) })
|
|
4145
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: "sia-selection-panel__text", children: [
|
|
4146
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sia-selection-panel__label", children: showValue || displayField === "label" ? option.label : String(option.value) }),
|
|
4147
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("small", { children: String(option.value) })
|
|
3873
4148
|
] })
|
|
3874
4149
|
}
|
|
3875
4150
|
) }, `${typeof option.value}-${option.value}`))
|
|
@@ -3882,14 +4157,14 @@ function SelectionPanel({
|
|
|
3882
4157
|
}
|
|
3883
4158
|
|
|
3884
4159
|
// src/components/OverflowTags.tsx
|
|
3885
|
-
var
|
|
3886
|
-
var
|
|
4160
|
+
var import_react24 = require("react");
|
|
4161
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3887
4162
|
function OverflowTags({ items, maxCount: maxCount2, className = "", tagClassName, restClassName = "" }) {
|
|
3888
|
-
const rootRef = (0,
|
|
3889
|
-
const measureRef = (0,
|
|
4163
|
+
const rootRef = (0, import_react24.useRef)(null);
|
|
4164
|
+
const measureRef = (0, import_react24.useRef)(null);
|
|
3890
4165
|
const limit = Math.min(items.length, Math.max(0, Math.floor(maxCount2) || 0));
|
|
3891
|
-
const [visibleCount, setVisibleCount] = (0,
|
|
3892
|
-
(0,
|
|
4166
|
+
const [visibleCount, setVisibleCount] = (0, import_react24.useState)(0);
|
|
4167
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
3893
4168
|
const root = rootRef.current;
|
|
3894
4169
|
const measure = measureRef.current;
|
|
3895
4170
|
if (!root || !measure) return;
|
|
@@ -3912,15 +4187,15 @@ function OverflowTags({ items, maxCount: maxCount2, className = "", tagClassName
|
|
|
3912
4187
|
return () => observer.disconnect();
|
|
3913
4188
|
}, [items, limit]);
|
|
3914
4189
|
const count = Math.min(visibleCount, limit);
|
|
3915
|
-
return /* @__PURE__ */ (0,
|
|
3916
|
-
items.slice(0, count).map((item) => /* @__PURE__ */ (0,
|
|
3917
|
-
items.length > count ? /* @__PURE__ */ (0,
|
|
4190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { ref: rootRef, className: `sia-overflow-tags ${className}`.trim(), children: [
|
|
4191
|
+
items.slice(0, count).map((item) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: tagClassName, children: item.label }, item.key)),
|
|
4192
|
+
items.length > count ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: `${tagClassName} sia-overflow-tags__rest ${restClassName}`.trim(), children: [
|
|
3918
4193
|
"+",
|
|
3919
4194
|
items.length - count
|
|
3920
4195
|
] }) : null,
|
|
3921
|
-
/* @__PURE__ */ (0,
|
|
3922
|
-
items.slice(0, limit).map((item) => /* @__PURE__ */ (0,
|
|
3923
|
-
Array.from({ length: limit + 1 }, (_, index) => /* @__PURE__ */ (0,
|
|
4196
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { ref: measureRef, className: "sia-overflow-tags__measure", "aria-hidden": "true", children: [
|
|
4197
|
+
items.slice(0, limit).map((item) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: tagClassName, children: item.label }, item.key)),
|
|
4198
|
+
Array.from({ length: limit + 1 }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: `${tagClassName} ${restClassName}`.trim(), children: [
|
|
3924
4199
|
"+",
|
|
3925
4200
|
items.length - index
|
|
3926
4201
|
] }, `rest-${index}`))
|
|
@@ -3929,12 +4204,12 @@ function OverflowTags({ items, maxCount: maxCount2, className = "", tagClassName
|
|
|
3929
4204
|
}
|
|
3930
4205
|
|
|
3931
4206
|
// src/components/Select.tsx
|
|
3932
|
-
var
|
|
4207
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3933
4208
|
function defaultFilterOption(query, option) {
|
|
3934
4209
|
const keyword = query.toLowerCase();
|
|
3935
4210
|
return [option.label, option.value].some((value) => String(value).toLowerCase().includes(keyword));
|
|
3936
4211
|
}
|
|
3937
|
-
var Select = (0,
|
|
4212
|
+
var Select = (0, import_react25.forwardRef)(function Select2({
|
|
3938
4213
|
options,
|
|
3939
4214
|
mode = "single",
|
|
3940
4215
|
popupMode: popupModeProp,
|
|
@@ -3973,27 +4248,27 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
3973
4248
|
}, forwardedRef) {
|
|
3974
4249
|
const showSearch = showSearchProp ?? options.length > 15;
|
|
3975
4250
|
const size = useControlSize(sizeProp);
|
|
3976
|
-
const fallbackId = (0,
|
|
4251
|
+
const fallbackId = (0, import_react25.useId)();
|
|
3977
4252
|
const selectId = id ?? fallbackId;
|
|
3978
4253
|
const listboxId = `${selectId}-listbox`;
|
|
3979
|
-
const rootRef = (0,
|
|
3980
|
-
const popupRef = (0,
|
|
3981
|
-
const searchRef = (0,
|
|
3982
|
-
const listRef = (0,
|
|
3983
|
-
const [open, setOpen] = (0,
|
|
4254
|
+
const rootRef = (0, import_react25.useRef)(null);
|
|
4255
|
+
const popupRef = (0, import_react25.useRef)(null);
|
|
4256
|
+
const searchRef = (0, import_react25.useRef)(null);
|
|
4257
|
+
const listRef = (0, import_react25.useRef)(null);
|
|
4258
|
+
const [open, setOpen] = (0, import_react25.useState)(false);
|
|
3984
4259
|
const automaticMode = popupModeProp ?? (options.length > modalThreshold ? "modal" : "dropdown");
|
|
3985
|
-
const [openedMode, setOpenedMode] = (0,
|
|
4260
|
+
const [openedMode, setOpenedMode] = (0, import_react25.useState)(automaticMode);
|
|
3986
4261
|
const popupMode = open ? openedMode : automaticMode;
|
|
3987
|
-
const [modalValues, setModalValues] = (0,
|
|
3988
|
-
const [modalSubmitting, setModalSubmitting] = (0,
|
|
3989
|
-
const modalSubmitLock = (0,
|
|
3990
|
-
const [selectedOnly, setSelectedOnly] = (0,
|
|
3991
|
-
const [query, setQuery] = (0,
|
|
3992
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
3993
|
-
const [scrollTop, setScrollTop] = (0,
|
|
3994
|
-
const [dropdownFontSize, setDropdownFontSize] = (0,
|
|
3995
|
-
const pendingSelectedScroll = (0,
|
|
3996
|
-
const deferredQuery = (0,
|
|
4262
|
+
const [modalValues, setModalValues] = (0, import_react25.useState)([]);
|
|
4263
|
+
const [modalSubmitting, setModalSubmitting] = (0, import_react25.useState)(false);
|
|
4264
|
+
const modalSubmitLock = (0, import_react25.useRef)(false);
|
|
4265
|
+
const [selectedOnly, setSelectedOnly] = (0, import_react25.useState)(false);
|
|
4266
|
+
const [query, setQuery] = (0, import_react25.useState)("");
|
|
4267
|
+
const [activeIndex, setActiveIndex] = (0, import_react25.useState)(-1);
|
|
4268
|
+
const [scrollTop, setScrollTop] = (0, import_react25.useState)(0);
|
|
4269
|
+
const [dropdownFontSize, setDropdownFontSize] = (0, import_react25.useState)();
|
|
4270
|
+
const pendingSelectedScroll = (0, import_react25.useRef)(false);
|
|
4271
|
+
const deferredQuery = (0, import_react25.useDeferredValue)(query.trim());
|
|
3997
4272
|
const initialValue = defaultValue === void 0 ? mode === "multiple" ? [] : null : defaultValue;
|
|
3998
4273
|
const [currentValue, setCurrentValue] = useControllableState({
|
|
3999
4274
|
value,
|
|
@@ -4008,20 +4283,20 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4008
4283
|
}
|
|
4009
4284
|
}
|
|
4010
4285
|
});
|
|
4011
|
-
const selectedValues = (0,
|
|
4286
|
+
const selectedValues = (0, import_react25.useMemo)(() => {
|
|
4012
4287
|
if (currentValue == null || currentValue === "" && !options.some((option) => option.value === "")) return [];
|
|
4013
4288
|
if (mode === "multiple") return Array.isArray(currentValue) ? currentValue : currentValue === null ? [] : [currentValue];
|
|
4014
4289
|
return Array.isArray(currentValue) ? currentValue.slice(0, 1) : currentValue === null ? [] : [currentValue];
|
|
4015
4290
|
}, [currentValue, mode, options]);
|
|
4016
|
-
const selectedValueSet = (0,
|
|
4017
|
-
const availableOptions = (0,
|
|
4291
|
+
const selectedValueSet = (0, import_react25.useMemo)(() => new Set(selectedValues), [selectedValues]);
|
|
4292
|
+
const availableOptions = (0, import_react25.useMemo)(() => {
|
|
4018
4293
|
if (!allowInput) return options;
|
|
4019
4294
|
const optionValueSet = new Set(options.map((option) => option.value));
|
|
4020
4295
|
const selectedCustomOptions = selectedValues.filter((selectedValue) => !optionValueSet.has(selectedValue)).map((selectedValue) => ({ label: String(selectedValue), value: selectedValue }));
|
|
4021
4296
|
return selectedCustomOptions.length ? [...selectedCustomOptions, ...options] : options;
|
|
4022
4297
|
}, [allowInput, options, selectedValues]);
|
|
4023
|
-
const selectedOptions = (0,
|
|
4024
|
-
const filteredOptions = (0,
|
|
4298
|
+
const selectedOptions = (0, import_react25.useMemo)(() => selectedValues.map((selectedValue) => availableOptions.find((option) => option.value === selectedValue)).filter((option) => option !== void 0), [availableOptions, selectedValues]);
|
|
4299
|
+
const filteredOptions = (0, import_react25.useMemo)(() => deferredQuery ? availableOptions.filter((option) => filterOption(deferredQuery, option)) : availableOptions, [availableOptions, deferredQuery, filterOption]);
|
|
4025
4300
|
const inputValue = query.trim();
|
|
4026
4301
|
const exactInputOption = inputValue ? availableOptions.find((option) => String(option.value).toLowerCase() === inputValue.toLowerCase() || typeof option.label === "string" && option.label.toLowerCase() === inputValue.toLowerCase()) : void 0;
|
|
4027
4302
|
const canSubmitInput = allowInput && Boolean(inputValue) && !exactInputOption;
|
|
@@ -4035,7 +4310,7 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4035
4310
|
const renderedOptions = virtualEnabled ? filteredOptions.slice(virtualStart, virtualEnd) : filteredOptions;
|
|
4036
4311
|
const enabledFilteredOptions = filteredOptions.filter((option) => !option.disabled);
|
|
4037
4312
|
const allFilteredSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => selectedValueSet.has(option.value));
|
|
4038
|
-
(0,
|
|
4313
|
+
(0, import_react25.useEffect)(() => {
|
|
4039
4314
|
if (!open || popupMode === "modal") return void 0;
|
|
4040
4315
|
function closeFromOutside(event) {
|
|
4041
4316
|
const target = event.target;
|
|
@@ -4044,13 +4319,13 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4044
4319
|
document.addEventListener("mousedown", closeFromOutside);
|
|
4045
4320
|
return () => document.removeEventListener("mousedown", closeFromOutside);
|
|
4046
4321
|
}, [open, popupMode]);
|
|
4047
|
-
(0,
|
|
4322
|
+
(0, import_react25.useEffect)(() => {
|
|
4048
4323
|
if (open && (showSearch || allowInput)) searchRef.current?.focus();
|
|
4049
4324
|
}, [allowInput, open, showSearch]);
|
|
4050
|
-
(0,
|
|
4325
|
+
(0, import_react25.useEffect)(() => {
|
|
4051
4326
|
if (disabled || loading) closeDropdown();
|
|
4052
4327
|
}, [disabled, loading]);
|
|
4053
|
-
(0,
|
|
4328
|
+
(0, import_react25.useEffect)(() => {
|
|
4054
4329
|
if (!open || popupMode !== "dropdown" || !pendingSelectedScroll.current || query) return;
|
|
4055
4330
|
const index = filteredOptions.findIndex((option) => selectedValueSet.has(option.value));
|
|
4056
4331
|
if (index < 0) return;
|
|
@@ -4065,7 +4340,7 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4065
4340
|
});
|
|
4066
4341
|
return () => cancelAnimationFrame(frame);
|
|
4067
4342
|
}, [open, popupMode, filteredOptions, selectedValueSet, virtualEnabled, optionHeight, query]);
|
|
4068
|
-
(0,
|
|
4343
|
+
(0, import_react25.useLayoutEffect)(() => {
|
|
4069
4344
|
if (!open || popupMode !== "dropdown") return;
|
|
4070
4345
|
const trigger = rootRef.current?.querySelector(".sia-select__trigger");
|
|
4071
4346
|
if (trigger) setDropdownFontSize(getComputedStyle(trigger).fontSize);
|
|
@@ -4216,7 +4491,7 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4216
4491
|
function renderOption(option, renderedIndex) {
|
|
4217
4492
|
const optionIndex = virtualEnabled ? virtualStart + renderedIndex : renderedIndex;
|
|
4218
4493
|
const selected = selectedValueSet.has(option.value);
|
|
4219
|
-
return /* @__PURE__ */ (0,
|
|
4494
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4220
4495
|
"div",
|
|
4221
4496
|
{
|
|
4222
4497
|
id: `${listboxId}-${optionIndex}`,
|
|
@@ -4229,11 +4504,11 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4229
4504
|
onMouseDown: (event) => event.preventDefault(),
|
|
4230
4505
|
onClick: () => selectOption(option),
|
|
4231
4506
|
children: [
|
|
4232
|
-
/* @__PURE__ */ (0,
|
|
4233
|
-
/* @__PURE__ */ (0,
|
|
4234
|
-
showValue ? /* @__PURE__ */ (0,
|
|
4507
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "sia-select__option-content", children: [
|
|
4508
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "sia-select__option-label", children: option.label }),
|
|
4509
|
+
showValue ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("small", { className: "sia-select__option-value", children: String(option.value) }) : null
|
|
4235
4510
|
] }),
|
|
4236
|
-
selected ? /* @__PURE__ */ (0,
|
|
4511
|
+
selected ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "check", size: 15 }) : null
|
|
4237
4512
|
]
|
|
4238
4513
|
},
|
|
4239
4514
|
`${typeof option.value}-${option.value}`
|
|
@@ -4247,8 +4522,8 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4247
4522
|
setModalValues([...modalValues.filter((value2) => !editable.has(value2)), ...modalEnabled.filter((option) => operation === "all" || operation === "invert" && !modalValues.includes(option.value)).map((option) => option.value)]);
|
|
4248
4523
|
}
|
|
4249
4524
|
const floating = useFloatingPlaceholder({ mode: placeholderMode, placeholder, filled: hasValue, active: open });
|
|
4250
|
-
return /* @__PURE__ */ (0,
|
|
4251
|
-
/* @__PURE__ */ (0,
|
|
4525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { ref: rootRef, className: `sia-select sia-select--${size} sia-select--${status}${open ? " is-open" : ""}${disabled ? " is-disabled" : ""}${multiple ? " sia-select--multiple" : ""} ${className}`.trim(), style, children: [
|
|
4526
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4252
4527
|
"button",
|
|
4253
4528
|
{
|
|
4254
4529
|
...withTitleTooltip(props),
|
|
@@ -4266,29 +4541,29 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4266
4541
|
onClick: () => open ? closeDropdown() : openDropdown(),
|
|
4267
4542
|
onKeyDown: handleTriggerKeyDown,
|
|
4268
4543
|
children: [
|
|
4269
|
-
multiple && hasValue ? /* @__PURE__ */ (0,
|
|
4270
|
-
loading ? /* @__PURE__ */ (0,
|
|
4544
|
+
multiple && hasValue ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(OverflowTags, { className: "sia-select__tags", tagClassName: "sia-select__tag", restClassName: "sia-select__tag--rest", maxCount: maxTagCount, items: selectedOptions.map((option) => ({ key: `${typeof option.value}-${option.value}`, label: option.label })) }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: `sia-select__value${hasValue ? "" : " is-placeholder"}`, children: selectedOptions[0]?.label ?? placeholder }),
|
|
4545
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "sia-select__spinner", "aria-hidden": "true" }) : null,
|
|
4271
4546
|
floating.label,
|
|
4272
|
-
/* @__PURE__ */ (0,
|
|
4547
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { className: "sia-select__arrow", name: "chevron-down", size: 15 })
|
|
4273
4548
|
]
|
|
4274
4549
|
}
|
|
4275
4550
|
),
|
|
4276
|
-
allowClear && hasValue && !disabled && !loading ? /* @__PURE__ */ (0,
|
|
4277
|
-
/* @__PURE__ */ (0,
|
|
4278
|
-
/* @__PURE__ */ (0,
|
|
4279
|
-
showSearch || allowInput ? /* @__PURE__ */ (0,
|
|
4280
|
-
/* @__PURE__ */ (0,
|
|
4281
|
-
/* @__PURE__ */ (0,
|
|
4551
|
+
allowClear && hasValue && !disabled && !loading ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { className: "sia-select__clear", type: "button", "aria-label": "\u6E05\u7A7A\u9009\u62E9", onClick: clearValue, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "circle-close", variant: "filled", size: 15 }) }) : null,
|
|
4552
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(PopupPortal, { ref: popupRef, anchorRef: rootRef, open: open && popupMode === "dropdown", style: { fontSize: dropdownFontSize }, className: `sia-select__dropdown${filteredOptions.length === 0 && !canSubmitInput ? " sia-select__dropdown--empty" : ""}`, children: [
|
|
4553
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FloatingScrollbarProvider, { targetRef: listRef }),
|
|
4554
|
+
showSearch || allowInput ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("label", { className: "sia-select__search", children: [
|
|
4555
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "search", size: 15 }),
|
|
4556
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("input", { ref: searchRef, value: query, maxLength: inputMaxLength, onChange: handleSearchChange, onKeyDown: (event) => handleInteractionKeyDown(event, true), placeholder: searchPlaceholder, "aria-label": searchPlaceholder })
|
|
4282
4557
|
] }) : null,
|
|
4283
|
-
canSubmitInput ? /* @__PURE__ */ (0,
|
|
4284
|
-
/* @__PURE__ */ (0,
|
|
4285
|
-
/* @__PURE__ */ (0,
|
|
4558
|
+
canSubmitInput ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("button", { type: "button", className: "sia-select__input-option", onMouseDown: (event) => event.preventDefault(), onClick: submitInputValue, children: [
|
|
4559
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "plus", size: 14 }),
|
|
4560
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { children: [
|
|
4286
4561
|
"\u4F7F\u7528\u201C",
|
|
4287
4562
|
inputValue,
|
|
4288
4563
|
"\u201D"
|
|
4289
4564
|
] })
|
|
4290
4565
|
] }) : null,
|
|
4291
|
-
/* @__PURE__ */ (0,
|
|
4566
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4292
4567
|
"div",
|
|
4293
4568
|
{
|
|
4294
4569
|
ref: listRef,
|
|
@@ -4299,23 +4574,23 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4299
4574
|
"aria-multiselectable": multiple || void 0,
|
|
4300
4575
|
style: { maxHeight: listHeight },
|
|
4301
4576
|
onScroll: handleListScroll,
|
|
4302
|
-
children: filteredOptions.length > 0 ? virtualEnabled ? /* @__PURE__ */ (0,
|
|
4577
|
+
children: filteredOptions.length > 0 ? virtualEnabled ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "sia-select__virtual-space", style: { height: filteredOptions.length * optionHeight }, children: renderedOptions.map(renderOption) }) : renderedOptions.map(renderOption) : canSubmitInput ? null : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "sia-select__empty", children: notFoundContent })
|
|
4303
4578
|
}
|
|
4304
4579
|
),
|
|
4305
|
-
showActions ? /* @__PURE__ */ (0,
|
|
4306
|
-
/* @__PURE__ */ (0,
|
|
4580
|
+
showActions ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "sia-select__actions", children: [
|
|
4581
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { children: [
|
|
4307
4582
|
"\u5171 ",
|
|
4308
4583
|
filteredOptions.length,
|
|
4309
4584
|
" \u6761"
|
|
4310
4585
|
] }),
|
|
4311
|
-
multiple && showSelectAll ? /* @__PURE__ */ (0,
|
|
4312
|
-
/* @__PURE__ */ (0,
|
|
4313
|
-
/* @__PURE__ */ (0,
|
|
4586
|
+
multiple && showSelectAll ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
4587
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "link", size: "small", disabled: allFilteredSelected || !enabledFilteredOptions.length, onClick: selectAllFiltered, children: "\u5168\u9009" }),
|
|
4588
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "link", size: "small", disabled: !enabledFilteredOptions.length, onClick: invertFiltered, children: "\u53CD\u9009" })
|
|
4314
4589
|
] }) : null,
|
|
4315
|
-
multiple || allowClear ? /* @__PURE__ */ (0,
|
|
4590
|
+
multiple || allowClear ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "link", size: "small", danger: true, disabled: !hasValue, onClick: clearSelection, children: "\u6E05\u7A7A" }) : null
|
|
4316
4591
|
] }) : null
|
|
4317
4592
|
] }),
|
|
4318
|
-
popupMode === "modal" ? /* @__PURE__ */ (0,
|
|
4593
|
+
popupMode === "modal" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4319
4594
|
Modal2,
|
|
4320
4595
|
{
|
|
4321
4596
|
className: "sia-select-modal",
|
|
@@ -4327,30 +4602,30 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4327
4602
|
if (!next) closeDropdown();
|
|
4328
4603
|
},
|
|
4329
4604
|
onCancel: closeDropdown,
|
|
4330
|
-
footer: /* @__PURE__ */ (0,
|
|
4331
|
-
/* @__PURE__ */ (0,
|
|
4332
|
-
/* @__PURE__ */ (0,
|
|
4333
|
-
/* @__PURE__ */ (0,
|
|
4334
|
-
/* @__PURE__ */ (0,
|
|
4605
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "sia-select-modal__footer", children: [
|
|
4606
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { children: modalConfig?.footerExtra }),
|
|
4607
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { children: [
|
|
4608
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { disabled: modalSubmitting, onClick: closeDropdown, children: "\u53D6\u6D88" }),
|
|
4609
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "primary", loading: modalSubmitting, disabled: disabled || loading, onClick: confirmModalSelection, children: "\u786E\u5B9A" })
|
|
4335
4610
|
] })
|
|
4336
4611
|
] }),
|
|
4337
|
-
children: open ? /* @__PURE__ */ (0,
|
|
4338
|
-
modalConfig?.headerExtra != null && modalConfig.headerExtra !== false ? /* @__PURE__ */ (0,
|
|
4339
|
-
/* @__PURE__ */ (0,
|
|
4340
|
-
/* @__PURE__ */ (0,
|
|
4341
|
-
/* @__PURE__ */ (0,
|
|
4342
|
-
/* @__PURE__ */ (0,
|
|
4612
|
+
children: open ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
4613
|
+
modalConfig?.headerExtra != null && modalConfig.headerExtra !== false ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "sia-select-modal__header-extra", children: modalConfig.headerExtra }) : null,
|
|
4614
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "sia-select-modal__heading", children: [
|
|
4615
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { role: "tablist", "aria-label": "\u9009\u9879\u8303\u56F4", children: [
|
|
4616
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { role: "tab", "aria-selected": !selectedOnly, variant: "link", onClick: () => setSelectedOnly(false), children: "\u5168\u90E8" }),
|
|
4617
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Button, { role: "tab", "aria-selected": selectedOnly, variant: "link", onClick: () => setSelectedOnly(true), children: [
|
|
4343
4618
|
"\u5DF2\u9009\u9879(",
|
|
4344
4619
|
modalValues.length,
|
|
4345
4620
|
")"
|
|
4346
4621
|
] })
|
|
4347
4622
|
] }),
|
|
4348
|
-
/* @__PURE__ */ (0,
|
|
4623
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4349
4624
|
Input,
|
|
4350
4625
|
{
|
|
4351
4626
|
"aria-label": searchPlaceholder,
|
|
4352
4627
|
placeholder: searchPlaceholder,
|
|
4353
|
-
prefix: /* @__PURE__ */ (0,
|
|
4628
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "search", size: 14 }),
|
|
4354
4629
|
value: query,
|
|
4355
4630
|
allowClear: true,
|
|
4356
4631
|
onChange: (event) => {
|
|
@@ -4360,8 +4635,8 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4360
4635
|
}
|
|
4361
4636
|
)
|
|
4362
4637
|
] }),
|
|
4363
|
-
multiple && showSelectAll ? /* @__PURE__ */ (0,
|
|
4364
|
-
/* @__PURE__ */ (0,
|
|
4638
|
+
multiple && showSelectAll ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "sia-select-modal__actions", children: [
|
|
4639
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4365
4640
|
Checkbox2,
|
|
4366
4641
|
{
|
|
4367
4642
|
checked: modalEnabled.length > 0 && modalEnabled.every((option) => modalValues.includes(option.value)),
|
|
@@ -4371,10 +4646,10 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4371
4646
|
children: "\u5168\u9009"
|
|
4372
4647
|
}
|
|
4373
4648
|
),
|
|
4374
|
-
/* @__PURE__ */ (0,
|
|
4375
|
-
/* @__PURE__ */ (0,
|
|
4649
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "link", size: "small", disabled: !modalEnabled.length, onClick: () => modalBatch("invert"), children: "\u53CD\u9009" }),
|
|
4650
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "link", size: "small", danger: true, disabled: !modalValues.length, onClick: () => setModalValues([]), children: "\u6E05\u7A7A" })
|
|
4376
4651
|
] }) : null,
|
|
4377
|
-
allowInput && canSubmitInput ? /* @__PURE__ */ (0,
|
|
4652
|
+
allowInput && canSubmitInput ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Button, { variant: "link", onClick: () => {
|
|
4378
4653
|
setModalValues(multiple ? [.../* @__PURE__ */ new Set([...modalValues, inputValue])] : [inputValue]);
|
|
4379
4654
|
setQuery("");
|
|
4380
4655
|
}, children: [
|
|
@@ -4382,7 +4657,7 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4382
4657
|
inputValue,
|
|
4383
4658
|
"\u201D"
|
|
4384
4659
|
] }) : null,
|
|
4385
|
-
/* @__PURE__ */ (0,
|
|
4660
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4386
4661
|
SelectionPanel,
|
|
4387
4662
|
{
|
|
4388
4663
|
options: modalFiltered,
|
|
@@ -4406,7 +4681,7 @@ var Select = (0, import_react24.forwardRef)(function Select2({
|
|
|
4406
4681
|
});
|
|
4407
4682
|
|
|
4408
4683
|
// src/components/Upload.tsx
|
|
4409
|
-
var
|
|
4684
|
+
var import_react26 = require("react");
|
|
4410
4685
|
|
|
4411
4686
|
// src/components/uploadFiles.ts
|
|
4412
4687
|
function acceptsUploadFile(file, accept) {
|
|
@@ -4538,7 +4813,7 @@ function isUploadImage(file, accept) {
|
|
|
4538
4813
|
|
|
4539
4814
|
// src/components/Message.tsx
|
|
4540
4815
|
var import_client4 = require("react-dom/client");
|
|
4541
|
-
var
|
|
4816
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4542
4817
|
var messageSeed = 0;
|
|
4543
4818
|
var messageRoot = null;
|
|
4544
4819
|
var messageContainer = null;
|
|
@@ -4547,11 +4822,11 @@ var defaultDuration = 3;
|
|
|
4547
4822
|
var maxCount = 5;
|
|
4548
4823
|
var messageTimers = /* @__PURE__ */ new Map();
|
|
4549
4824
|
var messageIcons = {
|
|
4550
|
-
info: /* @__PURE__ */ (0,
|
|
4551
|
-
success: /* @__PURE__ */ (0,
|
|
4552
|
-
warning: /* @__PURE__ */ (0,
|
|
4553
|
-
error: /* @__PURE__ */ (0,
|
|
4554
|
-
loading: /* @__PURE__ */ (0,
|
|
4825
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "info", size: 18 }),
|
|
4826
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "circle-check", size: 18 }),
|
|
4827
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "warning", size: 18 }),
|
|
4828
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "circle-close", size: 18 }),
|
|
4829
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "loader", size: 18, spin: true })
|
|
4555
4830
|
};
|
|
4556
4831
|
function ensureMessageRoot() {
|
|
4557
4832
|
if (typeof document === "undefined") return false;
|
|
@@ -4565,10 +4840,10 @@ function ensureMessageRoot() {
|
|
|
4565
4840
|
}
|
|
4566
4841
|
function renderMessages() {
|
|
4567
4842
|
if (!ensureMessageRoot()) return;
|
|
4568
|
-
messageRoot.render(/* @__PURE__ */ (0,
|
|
4569
|
-
/* @__PURE__ */ (0,
|
|
4570
|
-
/* @__PURE__ */ (0,
|
|
4571
|
-
item.closable ? /* @__PURE__ */ (0,
|
|
4843
|
+
messageRoot.render(/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "sia-message-list", "aria-live": "polite", children: messageItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: `sia-message sia-message--${item.type}`, role: item.type === "loading" ? "status" : "alert", children: [
|
|
4844
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "sia-message__icon", "aria-hidden": "true", children: messageIcons[item.type] }),
|
|
4845
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "sia-message__content", children: item.content }),
|
|
4846
|
+
item.closable ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("button", { type: "button", className: "sia-message__close", "aria-label": "\u5173\u95ED\u63D0\u793A", onClick: () => closeMessage(item.key), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "close", size: 14 }) }) : null
|
|
4572
4847
|
] }, item.key)) }));
|
|
4573
4848
|
}
|
|
4574
4849
|
function closeMessage(key) {
|
|
@@ -4642,11 +4917,11 @@ var message = {
|
|
|
4642
4917
|
};
|
|
4643
4918
|
|
|
4644
4919
|
// src/components/Upload.tsx
|
|
4645
|
-
var
|
|
4920
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
4646
4921
|
var LIST_IGNORE = /* @__PURE__ */ Symbol("SIA_UPLOAD_LIST_IGNORE");
|
|
4647
4922
|
function useThumbnail(file, accept) {
|
|
4648
|
-
const [local, setLocal] = (0,
|
|
4649
|
-
(0,
|
|
4923
|
+
const [local, setLocal] = (0, import_react26.useState)();
|
|
4924
|
+
(0, import_react26.useEffect)(() => {
|
|
4650
4925
|
if (!file?.thumbUrl && file?.originFileObj?.type.startsWith("image/")) {
|
|
4651
4926
|
const url = URL.createObjectURL(file.originFileObj);
|
|
4652
4927
|
setLocal(url);
|
|
@@ -4658,9 +4933,9 @@ function useThumbnail(file, accept) {
|
|
|
4658
4933
|
}
|
|
4659
4934
|
function UploadItem({ file, files, props, actions }) {
|
|
4660
4935
|
const source = useThumbnail(file, props.accept);
|
|
4661
|
-
const [failed, setFailed] = (0,
|
|
4662
|
-
const [downloading, setDownloading] = (0,
|
|
4663
|
-
const downloadingRef = (0,
|
|
4936
|
+
const [failed, setFailed] = (0, import_react26.useState)(false);
|
|
4937
|
+
const [downloading, setDownloading] = (0, import_react26.useState)(false);
|
|
4938
|
+
const downloadingRef = (0, import_react26.useRef)(false);
|
|
4664
4939
|
const canPreview = !!(source || file.url || file.originFileObj || props.onPreview);
|
|
4665
4940
|
const canDownload = !!(file.url || file.originFileObj || props.downloadRequest);
|
|
4666
4941
|
async function download() {
|
|
@@ -4676,29 +4951,29 @@ function UploadItem({ file, files, props, actions }) {
|
|
|
4676
4951
|
setDownloading(false);
|
|
4677
4952
|
}
|
|
4678
4953
|
}
|
|
4679
|
-
(0,
|
|
4680
|
-
const node = /* @__PURE__ */ (0,
|
|
4681
|
-
props.listType !== "text" ? /* @__PURE__ */ (0,
|
|
4682
|
-
/* @__PURE__ */ (0,
|
|
4683
|
-
/* @__PURE__ */ (0,
|
|
4684
|
-
/* @__PURE__ */ (0,
|
|
4685
|
-
/* @__PURE__ */ (0,
|
|
4686
|
-
/* @__PURE__ */ (0,
|
|
4954
|
+
(0, import_react26.useEffect)(() => setFailed(false), [source]);
|
|
4955
|
+
const node = /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: `sia-upload__item sia-upload__item--${file.status ?? "ready"}`, children: [
|
|
4956
|
+
props.listType !== "text" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { variant: "text", className: "sia-upload__thumbnail", "aria-label": `\u9884\u89C8\u7F29\u7565\u56FE ${file.name}`, onClick: actions.preview, disabled: !canPreview, children: source && !failed ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: source, alt: file.name, onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: file.type?.startsWith("image/") ? "image" : "file", size: 28 }) }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__file-icon", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: file.status === "done" ? "circle-check" : "file", size: 24 }) }),
|
|
4957
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__name", ...withTitleTooltip({ title: file.relativePath || file.name }), children: file.url ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("a", { href: file.url, target: "_blank", rel: "noreferrer", children: file.name }) : file.name }),
|
|
4958
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "sia-upload__actions", children: [
|
|
4959
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { variant: "text", title: "\u9884\u89C8", "aria-label": `\u9884\u89C8 ${file.name}`, disabled: !canPreview, onClick: actions.preview, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "eye", size: 14 }) }),
|
|
4960
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { variant: "text", title: "\u4E0B\u8F7D", "aria-label": `\u4E0B\u8F7D ${file.name}`, disabled: !canDownload, loading: downloading, onClick: () => void download(), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "download", size: 14 }) }),
|
|
4961
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { variant: "text", title: "\u79FB\u9664", className: "sia-upload__remove", disabled: props.disabled, "aria-label": `\u79FB\u9664 ${file.name}`, onClick: () => void actions.remove(), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "close", size: 14 }) })
|
|
4687
4962
|
] }),
|
|
4688
|
-
file.status === "uploading" && /* @__PURE__ */ (0,
|
|
4689
|
-
/* @__PURE__ */ (0,
|
|
4963
|
+
file.status === "uploading" && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "sia-upload__uploading", children: [
|
|
4964
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { children: [
|
|
4690
4965
|
"\u4E0A\u4F20\u4E2D ",
|
|
4691
4966
|
Math.round(file.percent ?? 0),
|
|
4692
4967
|
"%"
|
|
4693
4968
|
] }),
|
|
4694
|
-
/* @__PURE__ */ (0,
|
|
4969
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__progress", role: "progressbar", "aria-label": `${file.name} \u4E0A\u4F20\u8FDB\u5EA6`, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": file.percent ?? 0, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { style: { width: `${file.percent ?? 0}%` } }) })
|
|
4695
4970
|
] }),
|
|
4696
|
-
file.status === "error" && /* @__PURE__ */ (0,
|
|
4697
|
-
props.listType === "text" && (file.status === void 0 || file.status === "ready" || file.status === "done") && /* @__PURE__ */ (0,
|
|
4971
|
+
file.status === "error" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__error", children: "\u4E0A\u4F20\u5931\u8D25" }),
|
|
4972
|
+
props.listType === "text" && (file.status === void 0 || file.status === "ready" || file.status === "done") && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__status", children: file.status === "done" ? "\u4E0A\u4F20\u5B8C\u6210" : "\u5DF2\u9009\u62E9" })
|
|
4698
4973
|
] });
|
|
4699
|
-
return /* @__PURE__ */ (0,
|
|
4974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children: props.itemRender ? props.itemRender(node, file, files, actions) : node });
|
|
4700
4975
|
}
|
|
4701
|
-
var UploadRoot = (0,
|
|
4976
|
+
var UploadRoot = (0, import_react26.forwardRef)(function UploadRoot2({
|
|
4702
4977
|
accept,
|
|
4703
4978
|
multiple = false,
|
|
4704
4979
|
directory = false,
|
|
@@ -4737,19 +5012,19 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4737
5012
|
const cardWidth = cardDimension(typeof cardSize === "number" ? cardSize : cardSize?.width);
|
|
4738
5013
|
const cardHeight = cardDimension(typeof cardSize === "number" ? cardSize : cardSize?.height);
|
|
4739
5014
|
const compactCard = listType === "picture-card" && (cardWidth < 88 || cardHeight < 88);
|
|
4740
|
-
const inputRef = (0,
|
|
4741
|
-
const [internalFiles, setInternalFiles] = (0,
|
|
5015
|
+
const inputRef = (0, import_react26.useRef)(null);
|
|
5016
|
+
const [internalFiles, setInternalFiles] = (0, import_react26.useState)(defaultFileList);
|
|
4742
5017
|
const files = fileList ?? internalFiles;
|
|
4743
|
-
const filesRef = (0,
|
|
5018
|
+
const filesRef = (0, import_react26.useRef)(files);
|
|
4744
5019
|
filesRef.current = files;
|
|
4745
|
-
const tasks = (0,
|
|
4746
|
-
const mounted = (0,
|
|
4747
|
-
const [dragging, setDragging] = (0,
|
|
4748
|
-
const [preview, setPreview] = (0,
|
|
5020
|
+
const tasks = (0, import_react26.useRef)(/* @__PURE__ */ new Map());
|
|
5021
|
+
const mounted = (0, import_react26.useRef)(true);
|
|
5022
|
+
const [dragging, setDragging] = (0, import_react26.useState)(false);
|
|
5023
|
+
const [preview, setPreview] = (0, import_react26.useState)();
|
|
4749
5024
|
const previewSource = useThumbnail(preview, accept);
|
|
4750
5025
|
const limit = maxCount2 === void 0 || !Number.isFinite(maxCount2) ? Infinity : Math.max(0, Math.floor(maxCount2));
|
|
4751
5026
|
const full = files.length >= limit;
|
|
4752
|
-
const current = (0,
|
|
5027
|
+
const current = (0, import_react26.useRef)({ disabled, directory, recursive });
|
|
4753
5028
|
current.current = { disabled, directory, recursive };
|
|
4754
5029
|
function cancel(uid) {
|
|
4755
5030
|
const task = tasks.current.get(uid);
|
|
@@ -4761,14 +5036,14 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4761
5036
|
}
|
|
4762
5037
|
task?.finish();
|
|
4763
5038
|
}
|
|
4764
|
-
(0,
|
|
5039
|
+
(0, import_react26.useEffect)(() => {
|
|
4765
5040
|
mounted.current = true;
|
|
4766
5041
|
return () => {
|
|
4767
5042
|
mounted.current = false;
|
|
4768
5043
|
[...tasks.current.keys()].forEach(cancel);
|
|
4769
5044
|
};
|
|
4770
5045
|
}, []);
|
|
4771
|
-
(0,
|
|
5046
|
+
(0, import_react26.useEffect)(() => {
|
|
4772
5047
|
for (const uid of tasks.current.keys()) if (!files.some((file) => file.uid === uid)) cancel(uid);
|
|
4773
5048
|
if (preview && !files.some((file) => file.uid === preview.uid)) setPreview(void 0);
|
|
4774
5049
|
}, [files, preview]);
|
|
@@ -4874,7 +5149,7 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4874
5149
|
} catch {
|
|
4875
5150
|
}
|
|
4876
5151
|
}
|
|
4877
|
-
(0,
|
|
5152
|
+
(0, import_react26.useImperativeHandle)(ref, () => ({
|
|
4878
5153
|
upload: async (uid) => {
|
|
4879
5154
|
await Promise.all(filesRef.current.filter((file) => (!uid || file.uid === uid) && file.status !== "done").map(start));
|
|
4880
5155
|
},
|
|
@@ -4926,16 +5201,16 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4926
5201
|
event.preventDefault();
|
|
4927
5202
|
ingest(selected.map((file) => ({ file, path: file.name })));
|
|
4928
5203
|
}
|
|
4929
|
-
const trigger = !full && /* @__PURE__ */ (0,
|
|
5204
|
+
const trigger = !full && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "sia-upload__trigger", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Button, { className: "sia-upload__choose", "aria-label": compactCard ? directory ? "\u9009\u62E9\u6587\u4EF6\u5939" : "\u9009\u62E9\u6587\u4EF6" : void 0, disabled: disabled || full, onClick: () => {
|
|
4930
5205
|
if (!disabled && !full && onChoose?.() !== false) inputRef.current?.click();
|
|
4931
|
-
}, children: children ?? (listType === "picture-card" ? /* @__PURE__ */ (0,
|
|
4932
|
-
/* @__PURE__ */ (0,
|
|
4933
|
-
/* @__PURE__ */ (0,
|
|
4934
|
-
] }) : /* @__PURE__ */ (0,
|
|
4935
|
-
/* @__PURE__ */ (0,
|
|
5206
|
+
}, children: children ?? (listType === "picture-card" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
5207
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "plus", size: 24 }),
|
|
5208
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "\u4E0A\u4F20\u56FE\u7247" })
|
|
5209
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
5210
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "upload", size: 16 }),
|
|
4936
5211
|
directory ? "\u9009\u62E9\u6587\u4EF6\u5939" : "\u9009\u62E9\u6587\u4EF6"
|
|
4937
5212
|
] })) }) });
|
|
4938
|
-
return /* @__PURE__ */ (0,
|
|
5213
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4939
5214
|
"div",
|
|
4940
5215
|
{
|
|
4941
5216
|
...withTitleTooltip(props),
|
|
@@ -4956,7 +5231,7 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4956
5231
|
},
|
|
4957
5232
|
onDrop: (event) => void handleDrop(event),
|
|
4958
5233
|
children: [
|
|
4959
|
-
/* @__PURE__ */ (0,
|
|
5234
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4960
5235
|
"input",
|
|
4961
5236
|
{
|
|
4962
5237
|
ref: inputRef,
|
|
@@ -4973,12 +5248,12 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4973
5248
|
}
|
|
4974
5249
|
),
|
|
4975
5250
|
listType !== "picture-card" && trigger,
|
|
4976
|
-
showUploadList && listType === "text" && files.length > 0 && /* @__PURE__ */ (0,
|
|
5251
|
+
showUploadList && listType === "text" && files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "sia-upload__list-heading", role: "status", children: [
|
|
4977
5252
|
"\u5DF2\u9009\u6587\u4EF6 ",
|
|
4978
|
-
/* @__PURE__ */ (0,
|
|
5253
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sia-upload__count", children: files.length })
|
|
4979
5254
|
] }),
|
|
4980
|
-
/* @__PURE__ */ (0,
|
|
4981
|
-
showUploadList && files.map((file) => /* @__PURE__ */ (0,
|
|
5255
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "sia-upload__list", children: [
|
|
5256
|
+
showUploadList && files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(UploadItem, { file, files, props: { listType, disabled, itemRender, onPreview, downloadRequest, accept }, actions: {
|
|
4982
5257
|
upload: () => start(file),
|
|
4983
5258
|
abort: () => abort(file.uid),
|
|
4984
5259
|
remove: () => remove(file.uid),
|
|
@@ -4995,23 +5270,23 @@ var UploadRoot = (0, import_react25.forwardRef)(function UploadRoot2({
|
|
|
4995
5270
|
} }, file.uid)),
|
|
4996
5271
|
listType === "picture-card" && trigger
|
|
4997
5272
|
] }),
|
|
4998
|
-
/* @__PURE__ */ (0,
|
|
5273
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ImagePreview, { open: !!preview && !!(preview.url || previewSource), src: preview?.url || previewSource, alt: preview?.name, onOpenChange: (open) => {
|
|
4999
5274
|
if (!open) setPreview(void 0);
|
|
5000
5275
|
} })
|
|
5001
5276
|
]
|
|
5002
5277
|
}
|
|
5003
5278
|
);
|
|
5004
5279
|
});
|
|
5005
|
-
var UploadDragger = (0,
|
|
5006
|
-
return /* @__PURE__ */ (0,
|
|
5007
|
-
/* @__PURE__ */ (0,
|
|
5008
|
-
/* @__PURE__ */ (0,
|
|
5280
|
+
var UploadDragger = (0, import_react26.forwardRef)(function UploadDragger2({ hint = "\u652F\u6301\u5355\u4E2A\u6216\u6279\u91CF\u4E0A\u4F20", children, className = "", ...props }, ref) {
|
|
5281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(UploadRoot, { ...props, ref, className: `sia-upload-dragger ${className}`.trim(), children: children ?? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "sia-upload-dragger__content", children: [
|
|
5282
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "upload", size: 32 }),
|
|
5283
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("strong", { children: [
|
|
5009
5284
|
"\u70B9\u51FB\u6216\u62D6\u62FD",
|
|
5010
5285
|
props.directory ? "\u6587\u4EF6\u5939" : "\u6587\u4EF6",
|
|
5011
5286
|
"\u5230\u6B64\u533A\u57DF\u4E0A\u4F20"
|
|
5012
5287
|
] }),
|
|
5013
|
-
/* @__PURE__ */ (0,
|
|
5014
|
-
props.pastable && /* @__PURE__ */ (0,
|
|
5288
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: hint }),
|
|
5289
|
+
props.pastable && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "\u805A\u7126\u6B64\u533A\u57DF\u540E\u6309 Ctrl / \u2318 + V \u7C98\u8D34\u6587\u4EF6\u6216\u622A\u56FE" })
|
|
5015
5290
|
] }) });
|
|
5016
5291
|
});
|
|
5017
5292
|
var Upload = Object.assign(UploadRoot, {
|
|
@@ -5022,29 +5297,29 @@ var Upload = Object.assign(UploadRoot, {
|
|
|
5022
5297
|
});
|
|
5023
5298
|
|
|
5024
5299
|
// src/components/Breadcrumb.tsx
|
|
5025
|
-
var
|
|
5300
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
5026
5301
|
function Breadcrumb({ items, separator = "/", itemRender, className = "", ...props }) {
|
|
5027
|
-
return /* @__PURE__ */ (0,
|
|
5302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("nav", { "aria-label": "\u9762\u5305\u5C51\u5BFC\u822A", ...withTitleTooltip(props), className: `sia-breadcrumb ${className}`.trim(), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("ol", { className: "sia-breadcrumb__list", children: items.map((item, index) => {
|
|
5028
5303
|
const current = index === items.length - 1;
|
|
5029
|
-
const content = /* @__PURE__ */ (0,
|
|
5030
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
5031
|
-
/* @__PURE__ */ (0,
|
|
5304
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
5305
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__icon", "aria-hidden": "true", children: item.icon }) : null,
|
|
5306
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__title", children: item.title })
|
|
5032
5307
|
] });
|
|
5033
5308
|
const custom = itemRender?.(item, index, items);
|
|
5034
|
-
const label = item.disabled ? /* @__PURE__ */ (0,
|
|
5035
|
-
return /* @__PURE__ */ (0,
|
|
5036
|
-
/* @__PURE__ */ (0,
|
|
5309
|
+
const label = item.disabled ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__label", "aria-disabled": "true", children: content }) : custom !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__label", children: custom }) : item.href ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("a", { className: "sia-breadcrumb__label", href: item.href, target: item.target, rel: item.target === "_blank" ? "noopener noreferrer" : void 0, onClick: item.onClick, children: content }) : item.onClick ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button, { className: "sia-breadcrumb__label", variant: "text", onClick: item.onClick, children: content }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__label", children: content });
|
|
5310
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("li", { className: `sia-breadcrumb__item${current ? " is-current" : ""}${item.disabled ? " is-disabled" : ""}`, children: [
|
|
5311
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "sia-breadcrumb__entry", "aria-current": current ? "page" : void 0, children: [
|
|
5037
5312
|
label,
|
|
5038
|
-
item.menu?.items.length ? /* @__PURE__ */ (0,
|
|
5313
|
+
item.menu?.items.length ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Dropdown, { menu: item.menu, trigger: ["click"], disabled: item.disabled, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button, { className: "sia-breadcrumb__menu-trigger", variant: "text", size: "small", disabled: item.disabled, "aria-label": `\u5C55\u5F00${typeof item.title === "string" ? item.title : "\u5C42\u7EA7"}\u83DC\u5355`, icon: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon, { name: "chevron-down", size: 12 }) }) }) : null
|
|
5039
5314
|
] }),
|
|
5040
|
-
!current ? /* @__PURE__ */ (0,
|
|
5315
|
+
!current ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sia-breadcrumb__separator", "aria-hidden": "true", children: item.separator === void 0 ? separator : item.separator }) : null
|
|
5041
5316
|
] }, item.key ?? index);
|
|
5042
5317
|
}) }) });
|
|
5043
5318
|
}
|
|
5044
5319
|
|
|
5045
5320
|
// src/components/Typography.tsx
|
|
5046
|
-
var
|
|
5047
|
-
var
|
|
5321
|
+
var import_react27 = require("react");
|
|
5322
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
5048
5323
|
function TypographyContent({
|
|
5049
5324
|
as: Tag2 = "span",
|
|
5050
5325
|
type,
|
|
@@ -5063,26 +5338,26 @@ function TypographyContent({
|
|
|
5063
5338
|
className = "",
|
|
5064
5339
|
...props
|
|
5065
5340
|
}) {
|
|
5066
|
-
const contentRef = (0,
|
|
5067
|
-
const editRef = (0,
|
|
5068
|
-
const timer = (0,
|
|
5069
|
-
const [localText, setLocalText] = (0,
|
|
5070
|
-
const [draft, setDraft] = (0,
|
|
5071
|
-
const [editing, setEditing] = (0,
|
|
5072
|
-
const [copied, setCopied] = (0,
|
|
5073
|
-
const [copyError, setCopyError] = (0,
|
|
5074
|
-
const [expanded, setExpanded] = (0,
|
|
5075
|
-
const [overflow, setOverflow] = (0,
|
|
5341
|
+
const contentRef = (0, import_react27.useRef)(null);
|
|
5342
|
+
const editRef = (0, import_react27.useRef)(null);
|
|
5343
|
+
const timer = (0, import_react27.useRef)();
|
|
5344
|
+
const [localText, setLocalText] = (0, import_react27.useState)();
|
|
5345
|
+
const [draft, setDraft] = (0, import_react27.useState)("");
|
|
5346
|
+
const [editing, setEditing] = (0, import_react27.useState)(false);
|
|
5347
|
+
const [copied, setCopied] = (0, import_react27.useState)(false);
|
|
5348
|
+
const [copyError, setCopyError] = (0, import_react27.useState)(false);
|
|
5349
|
+
const [expanded, setExpanded] = (0, import_react27.useState)(false);
|
|
5350
|
+
const [overflow, setOverflow] = (0, import_react27.useState)(false);
|
|
5076
5351
|
const editConfig = typeof editable === "object" ? editable : void 0;
|
|
5077
5352
|
const content = editConfig?.text ?? localText ?? children;
|
|
5078
5353
|
const requestedRows = typeof ellipsis === "object" ? ellipsis.rows ?? 1 : 1;
|
|
5079
5354
|
const rows = Number.isFinite(requestedRows) ? Math.max(1, Math.floor(requestedRows)) : 1;
|
|
5080
5355
|
const expandable = typeof ellipsis === "object" && ellipsis.expandable;
|
|
5081
|
-
(0,
|
|
5356
|
+
(0, import_react27.useEffect)(() => {
|
|
5082
5357
|
setLocalText(void 0);
|
|
5083
5358
|
}, [children]);
|
|
5084
|
-
(0,
|
|
5085
|
-
(0,
|
|
5359
|
+
(0, import_react27.useEffect)(() => () => clearTimeout(timer.current), []);
|
|
5360
|
+
(0, import_react27.useLayoutEffect)(() => {
|
|
5086
5361
|
const element = contentRef.current;
|
|
5087
5362
|
if (!element || !ellipsis || !expandable || editing || expanded) return;
|
|
5088
5363
|
const measure = () => setOverflow(element.scrollHeight > element.clientHeight + 1 || element.scrollWidth > element.clientWidth + 1);
|
|
@@ -5113,15 +5388,15 @@ function TypographyContent({
|
|
|
5113
5388
|
requestAnimationFrame(() => editRef.current?.focus());
|
|
5114
5389
|
}
|
|
5115
5390
|
let formatted = content;
|
|
5116
|
-
if (strong) formatted = /* @__PURE__ */ (0,
|
|
5117
|
-
if (italic) formatted = /* @__PURE__ */ (0,
|
|
5118
|
-
if (underline) formatted = /* @__PURE__ */ (0,
|
|
5119
|
-
if (deleted) formatted = /* @__PURE__ */ (0,
|
|
5120
|
-
if (mark) formatted = /* @__PURE__ */ (0,
|
|
5121
|
-
if (code) formatted = /* @__PURE__ */ (0,
|
|
5122
|
-
if (keyboard) formatted = /* @__PURE__ */ (0,
|
|
5123
|
-
return /* @__PURE__ */ (0,
|
|
5124
|
-
/* @__PURE__ */ (0,
|
|
5391
|
+
if (strong) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("strong", { children: formatted });
|
|
5392
|
+
if (italic) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("em", { children: formatted });
|
|
5393
|
+
if (underline) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("u", { children: formatted });
|
|
5394
|
+
if (deleted) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("del", { children: formatted });
|
|
5395
|
+
if (mark) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("mark", { children: formatted });
|
|
5396
|
+
if (code) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("code", { children: formatted });
|
|
5397
|
+
if (keyboard) formatted = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("kbd", { children: formatted });
|
|
5398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Tag2, { ...withTitleTooltip(props), "aria-disabled": disabled || void 0, className: `sia-typography sia-typography--${Tag2}${type ? ` sia-typography--${type}` : ""}${disabled ? " is-disabled" : ""} ${className}`.trim(), children: editing ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "sia-typography__editor", children: [
|
|
5399
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
5125
5400
|
TextArea,
|
|
5126
5401
|
{
|
|
5127
5402
|
autoFocus: true,
|
|
@@ -5143,32 +5418,32 @@ function TypographyContent({
|
|
|
5143
5418
|
}
|
|
5144
5419
|
}
|
|
5145
5420
|
),
|
|
5146
|
-
/* @__PURE__ */ (0,
|
|
5147
|
-
/* @__PURE__ */ (0,
|
|
5148
|
-
/* @__PURE__ */ (0,
|
|
5421
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "sia-typography__edit-actions", children: [
|
|
5422
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { size: "small", onClick: () => finish(false), children: "\u53D6\u6D88" }),
|
|
5423
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { size: "small", variant: "primary", onClick: () => finish(true), children: "\u4FDD\u5B58" })
|
|
5149
5424
|
] })
|
|
5150
|
-
] }) : /* @__PURE__ */ (0,
|
|
5151
|
-
/* @__PURE__ */ (0,
|
|
5152
|
-
expandable && (overflow || expanded) ? /* @__PURE__ */ (0,
|
|
5153
|
-
editable ? /* @__PURE__ */ (0,
|
|
5425
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
5426
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { ref: contentRef, className: ellipsis && !expanded ? "sia-typography__ellipsis" : void 0, style: ellipsis && !expanded ? { "--sia-typography-rows": rows } : void 0, children: formatted }),
|
|
5427
|
+
expandable && (overflow || expanded) ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { variant: "link", size: "small", className: "sia-typography__action", "aria-expanded": expanded, disabled, onClick: () => setExpanded(!expanded), children: expanded ? "\u6536\u8D77" : "\u5C55\u5F00" }) : null,
|
|
5428
|
+
editable ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { ref: editRef, variant: "text", size: "small", className: "sia-typography__action", "aria-label": "\u7F16\u8F91\u6587\u672C", title: "\u7F16\u8F91", disabled, icon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "edit", size: 14 }), onClick: () => {
|
|
5154
5429
|
setDraft(contentRef.current?.textContent ?? "");
|
|
5155
5430
|
setEditing(true);
|
|
5156
5431
|
} }) : null,
|
|
5157
|
-
copyable ? /* @__PURE__ */ (0,
|
|
5158
|
-
copyError ? /* @__PURE__ */ (0,
|
|
5432
|
+
copyable ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button, { variant: "text", size: "small", className: "sia-typography__action", "aria-label": copied ? "\u5DF2\u590D\u5236" : "\u590D\u5236\u6587\u672C", title: copied ? "\u5DF2\u590D\u5236" : "\u590D\u5236", disabled, icon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: copied ? "check" : "copy", size: 14 }), onClick: () => void copy() }) : null,
|
|
5433
|
+
copyError ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { role: "status", className: "sia-typography--danger", children: "\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u62E9\u6587\u672C\u590D\u5236\u3002" }) : null
|
|
5159
5434
|
] }) });
|
|
5160
5435
|
}
|
|
5161
5436
|
function Title({ level = 1, ...props }) {
|
|
5162
|
-
return /* @__PURE__ */ (0,
|
|
5437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TypographyContent, { ...props, as: `h${level}` });
|
|
5163
5438
|
}
|
|
5164
5439
|
function Text(props) {
|
|
5165
|
-
return /* @__PURE__ */ (0,
|
|
5440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TypographyContent, { ...props });
|
|
5166
5441
|
}
|
|
5167
5442
|
function Paragraph(props) {
|
|
5168
|
-
return /* @__PURE__ */ (0,
|
|
5443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TypographyContent, { ...props, as: "p" });
|
|
5169
5444
|
}
|
|
5170
5445
|
function Link({ disabled, className = "", onClick, href, target, rel, ...props }) {
|
|
5171
|
-
return /* @__PURE__ */ (0,
|
|
5446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
5172
5447
|
"a",
|
|
5173
5448
|
{
|
|
5174
5449
|
...withTitleTooltip(props),
|
|
@@ -5186,7 +5461,7 @@ function Link({ disabled, className = "", onClick, href, target, rel, ...props }
|
|
|
5186
5461
|
);
|
|
5187
5462
|
}
|
|
5188
5463
|
function TypographyRoot({ className = "", ...props }) {
|
|
5189
|
-
return /* @__PURE__ */ (0,
|
|
5464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { ...withTitleTooltip(props), className: `sia-typography ${className}`.trim() });
|
|
5190
5465
|
}
|
|
5191
5466
|
var Typography = Object.assign(TypographyRoot, {
|
|
5192
5467
|
/** 语义化标题,支持标题级别、复制和编辑。 */
|
|
@@ -5200,10 +5475,10 @@ var Typography = Object.assign(TypographyRoot, {
|
|
|
5200
5475
|
});
|
|
5201
5476
|
|
|
5202
5477
|
// src/components/FloatButton.tsx
|
|
5203
|
-
var
|
|
5204
|
-
var
|
|
5205
|
-
var GroupShape = (0,
|
|
5206
|
-
var FloatButtonRoot = (0,
|
|
5478
|
+
var import_react28 = require("react");
|
|
5479
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
5480
|
+
var GroupShape = (0, import_react28.createContext)(void 0);
|
|
5481
|
+
var FloatButtonRoot = (0, import_react28.forwardRef)(function FloatButton({
|
|
5207
5482
|
icon,
|
|
5208
5483
|
description,
|
|
5209
5484
|
tooltip,
|
|
@@ -5216,9 +5491,9 @@ var FloatButtonRoot = (0, import_react27.forwardRef)(function FloatButton({
|
|
|
5216
5491
|
children,
|
|
5217
5492
|
...props
|
|
5218
5493
|
}, ref) {
|
|
5219
|
-
const groupShape = (0,
|
|
5494
|
+
const groupShape = (0, import_react28.useContext)(GroupShape);
|
|
5220
5495
|
const label = props["aria-label"] ?? (typeof tooltip === "string" ? tooltip : typeof description === "string" ? description : "\u60AC\u6D6E\u64CD\u4F5C");
|
|
5221
|
-
const button = /* @__PURE__ */ (0,
|
|
5496
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
5222
5497
|
"button",
|
|
5223
5498
|
{
|
|
5224
5499
|
...withTitleTooltip(props),
|
|
@@ -5226,13 +5501,13 @@ var FloatButtonRoot = (0, import_react27.forwardRef)(function FloatButton({
|
|
|
5226
5501
|
type: htmlType,
|
|
5227
5502
|
"aria-label": label,
|
|
5228
5503
|
className: `sia-float-button sia-float-button--${groupShape ?? shape} sia-float-button--${type} ${className}`.trim(),
|
|
5229
|
-
children: /* @__PURE__ */ (0,
|
|
5230
|
-
icon !== null ? /* @__PURE__ */ (0,
|
|
5231
|
-
description != null || children != null ? /* @__PURE__ */ (0,
|
|
5504
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Badge, { ...badge, className: "sia-float-button__badge", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "sia-float-button__body", children: [
|
|
5505
|
+
icon !== null ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sia-float-button__icon", children: icon ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "question", size: 20 }) }) : null,
|
|
5506
|
+
description != null || children != null ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sia-float-button__description", children: description ?? children }) : null
|
|
5232
5507
|
] }) })
|
|
5233
5508
|
}
|
|
5234
5509
|
);
|
|
5235
|
-
return /* @__PURE__ */ (0,
|
|
5510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "sia-float-button-root", style, children: tooltip ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Tooltip, { title: tooltip, placement: "left", children: button }) : button });
|
|
5236
5511
|
});
|
|
5237
5512
|
function FloatButtonGroup({
|
|
5238
5513
|
shape = "circle",
|
|
@@ -5254,10 +5529,10 @@ function FloatButtonGroup({
|
|
|
5254
5529
|
...props
|
|
5255
5530
|
}) {
|
|
5256
5531
|
const [visible, setVisible] = useControllableState({ value: open, defaultValue: defaultOpen, onChange: onOpenChange });
|
|
5257
|
-
const rootRef = (0,
|
|
5258
|
-
const triggerRef = (0,
|
|
5259
|
-
const id = (0,
|
|
5260
|
-
(0,
|
|
5532
|
+
const rootRef = (0, import_react28.useRef)(null);
|
|
5533
|
+
const triggerRef = (0, import_react28.useRef)(null);
|
|
5534
|
+
const id = (0, import_react28.useId)();
|
|
5535
|
+
(0, import_react28.useEffect)(() => {
|
|
5261
5536
|
if (!trigger || !visible) return;
|
|
5262
5537
|
const close = (event) => {
|
|
5263
5538
|
if (!rootRef.current?.contains(event.target)) setVisible(false);
|
|
@@ -5265,7 +5540,7 @@ function FloatButtonGroup({
|
|
|
5265
5540
|
document.addEventListener("pointerdown", close);
|
|
5266
5541
|
return () => document.removeEventListener("pointerdown", close);
|
|
5267
5542
|
}, [trigger, visible, setVisible]);
|
|
5268
|
-
return /* @__PURE__ */ (0,
|
|
5543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GroupShape.Provider, { value: shape, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
5269
5544
|
"div",
|
|
5270
5545
|
{
|
|
5271
5546
|
...withTitleTooltip(props),
|
|
@@ -5292,13 +5567,13 @@ function FloatButtonGroup({
|
|
|
5292
5567
|
}
|
|
5293
5568
|
},
|
|
5294
5569
|
children: [
|
|
5295
|
-
!trigger || visible ? /* @__PURE__ */ (0,
|
|
5296
|
-
trigger ? /* @__PURE__ */ (0,
|
|
5570
|
+
!trigger || visible ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { id, className: "sia-float-button-group__list", children }) : null,
|
|
5571
|
+
trigger ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
5297
5572
|
FloatButtonRoot,
|
|
5298
5573
|
{
|
|
5299
5574
|
ref: triggerRef,
|
|
5300
5575
|
type,
|
|
5301
|
-
icon: visible ? closeIcon ?? /* @__PURE__ */ (0,
|
|
5576
|
+
icon: visible ? closeIcon ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "close", size: 20 }) : icon ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "plus", size: 20 }),
|
|
5302
5577
|
tooltip,
|
|
5303
5578
|
"aria-label": visible ? "\u6536\u8D77\u60AC\u6D6E\u83DC\u5355" : "\u5C55\u5F00\u60AC\u6D6E\u83DC\u5355",
|
|
5304
5579
|
"aria-expanded": visible,
|
|
@@ -5311,8 +5586,8 @@ function FloatButtonGroup({
|
|
|
5311
5586
|
) });
|
|
5312
5587
|
}
|
|
5313
5588
|
function FloatButtonBackTop({ target, visibilityHeight = 400, behavior = "smooth", onClick, icon, tooltip = "\u8FD4\u56DE\u9876\u90E8", ...props }) {
|
|
5314
|
-
const [visible, setVisible] = (0,
|
|
5315
|
-
(0,
|
|
5589
|
+
const [visible, setVisible] = (0, import_react28.useState)(false);
|
|
5590
|
+
(0, import_react28.useEffect)(() => {
|
|
5316
5591
|
const element = target ? target() : window;
|
|
5317
5592
|
if (!element) return;
|
|
5318
5593
|
const update = () => setVisible((element === window ? window.scrollY : element.scrollTop) >= visibilityHeight);
|
|
@@ -5321,7 +5596,7 @@ function FloatButtonBackTop({ target, visibilityHeight = 400, behavior = "smooth
|
|
|
5321
5596
|
return () => element.removeEventListener("scroll", update);
|
|
5322
5597
|
}, [target, visibilityHeight]);
|
|
5323
5598
|
if (!visible) return null;
|
|
5324
|
-
return /* @__PURE__ */ (0,
|
|
5599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(FloatButtonRoot, { ...props, tooltip, icon: icon ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "arrow-up", size: 20 }), onClick: (event) => {
|
|
5325
5600
|
onClick?.(event);
|
|
5326
5601
|
if (event.defaultPrevented) return;
|
|
5327
5602
|
const element = target ? target() : window;
|