@aloudata/aloudata-design 3.0.16 → 3.0.18-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -59
- package/dist/Alert/index.js +1 -1
- package/dist/Alert/index.js.map +1 -1
- package/dist/Avatar/component/Avatar/index.js +2 -2
- package/dist/Avatar/component/Avatar/index.js.map +1 -1
- package/dist/Avatar/component/Avatar/type.js +3 -3
- package/dist/Avatar/component/Avatar/type.js.map +1 -1
- package/dist/Badge/index.js +5 -5
- package/dist/Badge/index.js.map +1 -1
- package/dist/Breadcrumb/index.js +4 -4
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Button/index.js +8 -8
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/index.js +1 -1
- package/dist/Card/index.js.map +1 -1
- package/dist/Checkbox/index.js +3 -3
- package/dist/Checkbox/index.js.map +1 -1
- package/dist/Collapse/index.js +1 -1
- package/dist/Collapse/index.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js +1 -1
- package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js.map +1 -1
- package/dist/ColorPicker/ComplexColorPicker/index.js +2 -2
- package/dist/ColorPicker/ComplexColorPicker/index.js.map +1 -1
- package/dist/ColorPicker/index.js +11 -11
- package/dist/ColorPicker/index.js.map +1 -1
- package/dist/ColorPicker/util.d.ts +1 -1
- package/dist/ColorPicker/util.js.map +1 -1
- package/dist/DataPreviewTable/components/Body/Cell.js +2 -2
- package/dist/DataPreviewTable/components/Body/Cell.js.map +1 -1
- package/dist/DataPreviewTable/components/Body/index.js +1 -1
- package/dist/DataPreviewTable/components/Body/index.js.map +1 -1
- package/dist/DataPreviewTable/components/DragBar/index.js +1 -1
- package/dist/DataPreviewTable/components/DragBar/index.js.map +1 -1
- package/dist/DataPreviewTable/components/Header/index.js +3 -3
- package/dist/DataPreviewTable/components/Header/index.js.map +1 -1
- package/dist/DataPreviewTable/index.js +1 -1
- package/dist/DataPreviewTable/index.js.map +1 -1
- package/dist/Divider/index.js +1 -1
- package/dist/Divider/index.js.map +1 -1
- package/dist/Drawer/index.js +3 -3
- package/dist/Drawer/index.js.map +1 -1
- package/dist/Dropdown/index.js +2 -0
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Empty/image/Data.js +16 -16
- package/dist/Empty/image/Data.js.map +1 -1
- package/dist/Empty/image/User.js +16 -16
- package/dist/Empty/image/User.js.map +1 -1
- package/dist/Empty/image/WorkBook.js +17 -17
- package/dist/Empty/image/WorkBook.js.map +1 -1
- package/dist/Form/index.js +3 -3
- package/dist/Form/index.js.map +1 -1
- package/dist/Icon/components/SortAscendingOrderColor.js +1 -1
- package/dist/Icon/components/SortAscendingOrderColor.js.map +1 -1
- package/dist/Icon/components/SortDescendingOrderColor.js +1 -1
- package/dist/Icon/components/SortDescendingOrderColor.js.map +1 -1
- package/dist/Icon/components/User.js +2 -2
- package/dist/Icon/components/User.js.map +1 -1
- package/dist/Icon/components/UserGroup.js +2 -2
- package/dist/Icon/components/UserGroup.js.map +1 -1
- package/dist/Input/components/Input/index.js +3 -3
- package/dist/Input/components/Input/index.js.map +1 -1
- package/dist/Input/components/TextArea/index.js +3 -3
- package/dist/Input/components/TextArea/index.js.map +1 -1
- package/dist/InputNumber/index.js +4 -4
- package/dist/InputNumber/index.js.map +1 -1
- package/dist/LogicTree/components/LogicItem/index.js +2 -2
- package/dist/LogicTree/components/LogicItem/index.js.map +1 -1
- package/dist/MemberPicker/components/SelectedMemberTags.js +1 -1
- package/dist/MemberPicker/components/SelectedMemberTags.js.map +1 -1
- package/dist/Modal/index.js +8 -8
- package/dist/Modal/index.js.map +1 -1
- package/dist/Popconfirm/index.js +1 -1
- package/dist/Popconfirm/index.js.map +1 -1
- package/dist/Popover/index.js +2 -2
- package/dist/Popover/index.js.map +1 -1
- package/dist/Progress/index.js +1 -1
- package/dist/Progress/index.js.map +1 -1
- package/dist/RenameInput/index.js +4 -4
- package/dist/RenameInput/index.js.map +1 -1
- package/dist/Result/index.js +4 -4
- package/dist/Result/index.js.map +1 -1
- package/dist/Select/components/Suffix.js +3 -3
- package/dist/Select/components/Suffix.js.map +1 -1
- package/dist/Slider/index.js +4 -4
- package/dist/Slider/index.js.map +1 -1
- package/dist/Spin/CustomIcon/index.js +2 -2
- package/dist/Spin/CustomIcon/index.js.map +1 -1
- package/dist/StatusLight/index.js +15 -15
- package/dist/StatusLight/index.js.map +1 -1
- package/dist/Steps/components/CustomDot/index.js +9 -2
- package/dist/Steps/components/CustomDot/index.js.map +1 -0
- package/dist/Steps/components/ProcessIcon/index.d.ts +2 -1
- package/dist/Steps/components/ProcessIcon/index.js +33 -12
- package/dist/Steps/components/ProcessIcon/index.js.map +1 -1
- package/dist/Steps/index.js +67 -49
- package/dist/Steps/index.js.map +1 -1
- package/dist/Switch/index.js +3 -3
- package/dist/Switch/index.js.map +1 -1
- package/dist/Table/components/Header.js +3 -3
- package/dist/Table/components/Header.js.map +1 -1
- package/dist/Tabs/index.js +9 -9
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Tag/index.js +11 -11
- package/dist/Tag/index.js.map +1 -1
- package/dist/TextLink/index.js +2 -2
- package/dist/TextLink/index.js.map +1 -1
- package/dist/Tooltip/index.js +3 -3
- package/dist/Tooltip/index.js.map +1 -1
- package/dist/Tour/index.js +1 -1
- package/dist/Tour/index.js.map +1 -1
- package/dist/Tree/Tree2.js +2 -2
- package/dist/Tree/Tree2.js.map +1 -1
- package/dist/Typography/index.js +1 -1
- package/dist/Typography/index.js.map +1 -1
- package/dist/User/index.js +1 -1
- package/dist/User/index.js.map +1 -1
- package/dist/Watermark/index.js +2 -1
- package/dist/Watermark/index.js.map +1 -1
- package/dist/_utils/weakRefFallback.d.ts +1 -0
- package/dist/_utils/weakRefFallback.js +21 -0
- package/dist/_utils/weakRefFallback.js.map +1 -0
- package/dist/aloudata-design.css +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -5
- package/dist/message/index.js +1 -1
- package/dist/message/index.js.map +1 -1
- package/dist/notification/index.js +5 -5
- package/dist/notification/index.js.map +1 -1
- package/dist/theme/contract/shadowGeneratorSpecification.d.ts +37 -0
- package/dist/theme/contract/tokenCssBridge.d.ts +60 -0
- package/dist/theme/contract/tokenCssBridge.js +2 -0
- package/dist/theme/contract/tokenOutputContract.d.ts +35 -0
- package/dist/theme/contract/tokenOutputContract.js +198 -0
- package/dist/theme/contract/tokenOutputContract.js.map +1 -0
- package/dist/theme/generator/acceptedColorValues.d.ts +97 -0
- package/dist/theme/generator/acceptedColorValues.js +2 -0
- package/dist/theme/generator/cssArtifactEmitter.d.ts +62 -0
- package/dist/theme/generator/cssArtifactEmitter.js +2 -0
- package/dist/theme/generator/generator.d.ts +41 -0
- package/dist/theme/generator/generator.js +2 -0
- package/dist/theme/generator/generatorDiff.d.ts +53 -0
- package/dist/theme/generator/generatorDiff.js +2 -0
- package/dist/theme/generator/generatorEmitter.d.ts +73 -0
- package/dist/theme/generator/generatorEmitter.js +2 -0
- package/dist/theme/generator/generatorMappingStrategy.d.ts +43 -0
- package/dist/theme/generator/generatorMappingStrategy.js +2 -0
- package/dist/theme/generator/generatorOutputSchema.d.ts +80 -0
- package/dist/theme/generator/generatorOutputSchema.js +2 -0
- package/dist/theme/generator/minimalAcceptedColorValues.d.ts +27 -0
- package/dist/theme/generator/minimalAcceptedColorValues.js +2 -0
- package/dist/theme/generator/valueResolver.d.ts +64 -0
- package/dist/theme/generator/valueResolver.js +2 -0
- package/dist/theme/governance/migrationMappingRegistry.d.ts +22 -0
- package/dist/theme/governance/migrationMappingRegistry.js +459 -0
- package/dist/theme/governance/migrationMappingRegistry.js.map +1 -0
- package/dist/theme/governance/reviewGate.d.ts +33 -0
- package/dist/theme/governance/reviewGate.js +116 -0
- package/dist/theme/governance/reviewGate.js.map +1 -0
- package/dist/theme/governance/validateMigrationMapping.d.ts +50 -0
- package/dist/theme/governance/validateMigrationMapping.js +157 -0
- package/dist/theme/governance/validateMigrationMapping.js.map +1 -0
- package/dist/theme/index.d.ts +16 -5
- package/dist/theme/index.js +10 -4
- package/dist/theme/runtime/colorValueMode/index.d.ts +5 -0
- package/dist/theme/runtime/colorValueMode/index.js +49 -0
- package/dist/theme/runtime/colorValueMode/index.js.map +1 -0
- package/dist/theme/runtime/colorValueMode/registry.d.ts +29 -0
- package/dist/theme/runtime/colorValueMode/registry.js +39 -0
- package/dist/theme/runtime/colorValueMode/registry.js.map +1 -0
- package/dist/theme/runtime/colorValueMode/v3.d.ts +98 -0
- package/dist/theme/runtime/colorValueMode/v3.js +230 -0
- package/dist/theme/runtime/colorValueMode/v3.js.map +1 -0
- package/dist/theme/runtime/colorValueMode.d.ts +2 -0
- package/dist/theme/{createTheme.js → runtime/createTheme.js} +1 -1
- package/dist/theme/runtime/createTheme.js.map +1 -0
- package/dist/theme/{defaultTheme.js → runtime/defaultTheme.js} +1 -1
- package/dist/theme/runtime/defaultTheme.js.map +1 -0
- package/dist/theme/{initAldTheme.js → runtime/initAldTheme.js} +1 -1
- package/dist/theme/runtime/initAldTheme.js.map +1 -0
- package/dist/theme/runtime/integrationController.d.ts +26 -0
- package/dist/theme/runtime/integrationController.js +2 -0
- package/dist/theme/runtime/runtimeAdapter.d.ts +31 -0
- package/dist/theme/runtime/runtimeAdapter.js +2 -0
- package/dist/theme/{themeToCssVars.js → runtime/themeToCssVars.js} +1 -1
- package/dist/theme/runtime/themeToCssVars.js.map +1 -0
- package/dist/theme/{tokenMap.js → runtime/tokenMap.js} +1 -1
- package/dist/theme/runtime/tokenMap.js.map +1 -0
- package/dist/theme/runtime/types.js +2 -0
- package/package.json +1 -1
- package/dist/theme/createTheme.js.map +0 -1
- package/dist/theme/defaultTheme.js.map +0 -1
- package/dist/theme/initAldTheme.js.map +0 -1
- package/dist/theme/themeToCssVars.js.map +0 -1
- package/dist/theme/tokenMap.js.map +0 -1
- /package/dist/theme/{types.js → contract/shadowGeneratorSpecification.js} +0 -0
- /package/dist/theme/{createTheme.d.ts → runtime/createTheme.d.ts} +0 -0
- /package/dist/theme/{defaultTheme.d.ts → runtime/defaultTheme.d.ts} +0 -0
- /package/dist/theme/{initAldTheme.d.ts → runtime/initAldTheme.d.ts} +0 -0
- /package/dist/theme/{themeToCssVars.d.ts → runtime/themeToCssVars.d.ts} +0 -0
- /package/dist/theme/{tokenMap.d.ts → runtime/tokenMap.d.ts} +0 -0
- /package/dist/theme/{types.d.ts → runtime/types.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Spin/CustomIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { SizeType } from '../../ConfigProvider/sizeContext';\nimport { LoadingDuotone } from '../../Icon';\nimport { cn } from '../../lib/utils';\nimport { getUUID } from '../../_utils/hooks/useId';\nimport { TDirection } from '..';\n\ninterface ICustomIconProps {\n size?: SizeType;\n tip?: React.ReactNode;\n direction: TDirection;\n spinning?: boolean;\n className?: string;\n inContainer?: boolean;\n}\n\nconst Icon = (props: ICustomIconProps) => {\n const {\n size,\n tip,\n direction,\n spinning = true,\n className,\n inContainer,\n } = props;\n if (!spinning) return null;\n return (\n <React.Fragment key={getUUID().toString()}>\n {inContainer && (\n <div className=\"spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/Spin/CustomIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { SizeType } from '../../ConfigProvider/sizeContext';\nimport { LoadingDuotone } from '../../Icon';\nimport { cn } from '../../lib/utils';\nimport { getUUID } from '../../_utils/hooks/useId';\nimport { TDirection } from '..';\n\ninterface ICustomIconProps {\n size?: SizeType;\n tip?: React.ReactNode;\n direction: TDirection;\n spinning?: boolean;\n className?: string;\n inContainer?: boolean;\n}\n\nconst Icon = (props: ICustomIconProps) => {\n const {\n size,\n tip,\n direction,\n spinning = true,\n className,\n inContainer,\n } = props;\n if (!spinning) return null;\n return (\n <React.Fragment key={getUUID().toString()}>\n {inContainer && (\n <div className=\"spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--background-default)] tw-opacity-40\" />\n )}\n <div\n className={cn(\n 'spinner tw-flex tw-h-full tw-flex-col tw-items-center tw-justify-center tw-gap-4',\n direction === 'horizontal' &&\n 'spinner-horizontal tw-flex-row tw-gap-[6px]',\n inContainer &&\n 'spinner-center tw-absolute tw-left-1/2 tw-top-1/2 tw--translate-x-1/2 tw--translate-y-1/2',\n className,\n )}\n >\n <div\n className={cn(\n 'spinner-inner tw-flex tw-animate-spin tw-items-center',\n size === 'small' && 'spinner-inner-small tw-size-5',\n size === 'large' && 'spinner-inner-large tw-size-16',\n size !== 'small' &&\n size !== 'large' &&\n 'spinner-inner-middle tw-size-10',\n )}\n >\n {size === 'small' && <LoadingDuotone size={20} />}\n {size === 'large' && <LoadingDuotone size={64} />}\n {size !== 'small' && size !== 'large' && <LoadingDuotone size={40} />}\n </div>\n {tip && (\n <div className=\"ald-spinner-text tw-text-[var(--content-secondary)]\">\n {tip}\n </div>\n )}\n </div>\n </React.Fragment>\n );\n};\nexport default Icon;\n"],"mappings":";;;;;;AAgBA,IAAM,QAAQ,UAA4B;CACxC,MAAM,EACJ,MACA,KACA,WACA,WAAW,MACX,WACA,gBACE;AACJ,KAAI,CAAC,SAAU,QAAO;AACtB,QACE,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,eACC,oBAAC,OAAD,EAAK,WAAU,oGAAqG,CAAA,EAEtH,qBAAC,OAAD;EACE,WAAW,GACT,oFACA,cAAc,gBACZ,+CACF,eACE,6FACF,UACD;YARH,CAUE,qBAAC,OAAD;GACE,WAAW,GACT,yDACA,SAAS,WAAW,iCACpB,SAAS,WAAW,kCACpB,SAAS,WACP,SAAS,WACT,kCACH;aARH;IAUG,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IACjE;MACL,OACC,oBAAC,OAAD;GAAK,WAAU;aACZ;GACG,CAAA,CAEJ;IACS,EAAA,EAlCI,SAAS,CAAC,UAAU,CAkCxB"}
|
|
@@ -8,18 +8,18 @@ import "react";
|
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/StatusLight/index.tsx
|
|
10
10
|
var statusDotColors = {
|
|
11
|
-
info: "var(--
|
|
12
|
-
neutral: "var(--
|
|
13
|
-
danger: "var(--
|
|
14
|
-
success: "var(--
|
|
15
|
-
warning: "var(--
|
|
11
|
+
info: "var(--background-informative-strong)",
|
|
12
|
+
neutral: "var(--background-neutral-strong)",
|
|
13
|
+
danger: "var(--background-negative-strong)",
|
|
14
|
+
success: "var(--background-positive-strong)",
|
|
15
|
+
warning: "var(--background-warning-strong)"
|
|
16
16
|
};
|
|
17
17
|
var statusTextColors = {
|
|
18
|
-
info: "var(--
|
|
19
|
-
neutral: "var(--
|
|
20
|
-
danger: "var(--
|
|
21
|
-
success: "var(--
|
|
22
|
-
warning: "var(--
|
|
18
|
+
info: "var(--content-informative-primary)",
|
|
19
|
+
neutral: "var(--content-primary)",
|
|
20
|
+
danger: "var(--content-negative-primary)",
|
|
21
|
+
success: "var(--content-positive-primary)",
|
|
22
|
+
warning: "var(--content-warning-primary)"
|
|
23
23
|
};
|
|
24
24
|
function StatusLight({ size = "middle", style = "dot", dotColor, icon, text, status = "info", className }) {
|
|
25
25
|
const getIcon = () => {
|
|
@@ -27,23 +27,23 @@ function StatusLight({ size = "middle", style = "dot", dotColor, icon, text, sta
|
|
|
27
27
|
const iconSize = size === "middle" ? 20 : 16;
|
|
28
28
|
switch (status) {
|
|
29
29
|
case "info": return /* @__PURE__ */ jsx(Memo$4, {
|
|
30
|
-
color: "var(--
|
|
30
|
+
color: "var(--background-informative-strong)",
|
|
31
31
|
size: iconSize
|
|
32
32
|
});
|
|
33
33
|
case "neutral": return /* @__PURE__ */ jsx(Memo$1, {
|
|
34
|
-
color: "var(--
|
|
34
|
+
color: "var(--background-neutral-strong)",
|
|
35
35
|
size: iconSize
|
|
36
36
|
});
|
|
37
37
|
case "danger": return /* @__PURE__ */ jsx(Memo$3, {
|
|
38
|
-
color: "var(--
|
|
38
|
+
color: "var(--background-negative-strong)",
|
|
39
39
|
size: iconSize
|
|
40
40
|
});
|
|
41
41
|
case "success": return /* @__PURE__ */ jsx(Memo$2, {
|
|
42
|
-
color: "var(--
|
|
42
|
+
color: "var(--background-positive-strong)",
|
|
43
43
|
size: iconSize
|
|
44
44
|
});
|
|
45
45
|
case "warning": return /* @__PURE__ */ jsx(Memo, {
|
|
46
|
-
color: "var(--
|
|
46
|
+
color: "var(--background-warning-strong)",
|
|
47
47
|
size: iconSize
|
|
48
48
|
});
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/StatusLight/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AttentionCircleFill,\n CancelledCircleFill,\n CheckCircleFill,\n CloseCircleFill,\n InProgressFill,\n} from '../Icon';\nimport { cn } from '../lib/utils';\n\nexport interface IProps {\n size?: 'middle' | 'small';\n style?: 'dot' | 'icon';\n dotColor?: string;\n icon?: React.ReactNode;\n text: string;\n status?: 'info' | 'neutral' | 'danger' | 'success' | 'warning';\n className?: string;\n}\n\nconst statusDotColors: Record<string, string> = {\n info: 'var(--
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/StatusLight/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AttentionCircleFill,\n CancelledCircleFill,\n CheckCircleFill,\n CloseCircleFill,\n InProgressFill,\n} from '../Icon';\nimport { cn } from '../lib/utils';\n\nexport interface IProps {\n size?: 'middle' | 'small';\n style?: 'dot' | 'icon';\n dotColor?: string;\n icon?: React.ReactNode;\n text: string;\n status?: 'info' | 'neutral' | 'danger' | 'success' | 'warning';\n className?: string;\n}\n\nconst statusDotColors: Record<string, string> = {\n info: 'var(--background-informative-strong)',\n neutral: 'var(--background-neutral-strong)',\n danger: 'var(--background-negative-strong)',\n success: 'var(--background-positive-strong)',\n warning: 'var(--background-warning-strong)',\n};\n\nconst statusTextColors: Record<string, string> = {\n info: 'var(--content-informative-primary)',\n neutral: 'var(--content-primary)',\n danger: 'var(--content-negative-primary)',\n success: 'var(--content-positive-primary)',\n warning: 'var(--content-warning-primary)',\n};\n\nfunction StatusLight({\n size = 'middle',\n style = 'dot',\n dotColor,\n icon,\n text,\n status = 'info',\n className,\n}: IProps) {\n const getIcon = () => {\n if (icon) return icon;\n\n const iconSize = size === 'middle' ? 20 : 16;\n\n switch (status) {\n case 'info':\n return (\n <InProgressFill\n color=\"var(--background-informative-strong)\"\n size={iconSize}\n />\n );\n case 'neutral':\n return (\n <CancelledCircleFill\n color=\"var(--background-neutral-strong)\"\n size={iconSize}\n />\n );\n case 'danger':\n return (\n <CloseCircleFill\n color=\"var(--background-negative-strong)\"\n size={iconSize}\n />\n );\n case 'success':\n return (\n <CheckCircleFill\n color=\"var(--background-positive-strong)\"\n size={iconSize}\n />\n );\n case 'warning':\n return (\n <AttentionCircleFill\n color=\"var(--background-warning-strong)\"\n size={iconSize}\n />\n );\n }\n };\n\n const isSmall = size === 'small';\n\n return (\n <div\n className={cn(\n 'ald-status-light tw-flex tw-cursor-default tw-items-center tw-justify-start',\n `ald-status-light-${size}`,\n `ald-status-light-${status}`,\n isSmall ? 'tw-gap-1' : 'tw-gap-[6px]',\n className,\n )}\n >\n {style === 'dot' && (\n <div\n className={cn(\n 'ald-prefix-dot tw-shrink-0 tw-rounded-full',\n isSmall\n ? 'tw-size-[var(--global-grid-75)]'\n : 'tw-size-[var(--global-grid-100)]',\n )}\n style={{\n backgroundColor: dotColor || statusDotColors[status],\n }}\n />\n )}\n {style === 'icon' && (\n <div className=\"ald-prefix-icon tw-flex tw-h-full tw-items-center\">\n {getIcon()}\n </div>\n )}\n <div\n className={cn(\n 'ald-text tw-font-normal',\n isSmall ? 'tw-text-xs tw-leading-4' : 'tw-text-sm tw-leading-5',\n )}\n style={{ color: statusTextColors[status] }}\n >\n {text}\n </div>\n </div>\n );\n}\n\nexport default StatusLight;\n"],"mappings":";;;;;;;;;AAoBA,IAAM,kBAA0C;CAC9C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,IAAM,mBAA2C;CAC/C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,SAAS,YAAY,EACnB,OAAO,UACP,QAAQ,OACR,UACA,MACA,MACA,SAAS,QACT,aACS;CACT,MAAM,gBAAgB;AACpB,MAAI,KAAM,QAAO;EAEjB,MAAM,WAAW,SAAS,WAAW,KAAK;AAE1C,UAAQ,QAAR;GACE,KAAK,OACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,SACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,MAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;;;CAKV,MAAM,UAAU,SAAS;AAEzB,QACE,qBAAC,OAAD;EACE,WAAW,GACT,+EACA,oBAAoB,QACpB,oBAAoB,UACpB,UAAU,aAAa,gBACvB,UACD;YAPH;GASG,UAAU,SACT,oBAAC,OAAD;IACE,WAAW,GACT,8CACA,UACI,oCACA,mCACL;IACD,OAAO,EACL,iBAAiB,YAAY,gBAAgB,SAC9C;IACD,CAAA;GAEH,UAAU,UACT,oBAAC,OAAD;IAAK,WAAU;cACZ,SAAS;IACN,CAAA;GAER,oBAAC,OAAD;IACE,WAAW,GACT,2BACA,UAAU,4BAA4B,0BACvC;IACD,OAAO,EAAE,OAAO,iBAAiB,SAAS;cAEzC;IACG,CAAA;GACF"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ProcessIcon } from "../ProcessIcon/index.js";
|
|
2
|
+
import "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/Steps/components/CustomDot/index.tsx
|
|
5
|
+
var CustomDot = (_dot, { status }) => /* @__PURE__ */ jsx(ProcessIcon, { type: status });
|
|
6
|
+
//#endregion
|
|
7
|
+
export { CustomDot };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/CustomDot/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ProcessIcon } from '../ProcessIcon';\n\nexport const CustomDot = (\n _dot: React.ReactNode,\n { status }: { status: string },\n) => <ProcessIcon type={status as 'process' | 'wait' | 'finish' | 'error'} />;\n"],"mappings":";;;;AAGA,IAAa,aACX,MACA,EAAE,aACC,oBAAC,aAAD,EAAa,MAAM,QAAqD,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
interface IProcessIconProps {
|
|
2
|
+
size?: number;
|
|
2
3
|
type: 'process' | 'wait' | 'finish' | 'error';
|
|
3
4
|
}
|
|
4
|
-
export declare function ProcessIcon({ type }: IProcessIconProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function ProcessIcon({ size, type }: IProcessIconProps): import("react/jsx-runtime").JSX.Element;
|
|
5
6
|
export {};
|
|
@@ -2,35 +2,56 @@ import { cn } from "../../../lib/utils.js";
|
|
|
2
2
|
import "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region src/Steps/components/ProcessIcon/index.tsx
|
|
5
|
-
function ProcessIcon({ type }) {
|
|
6
|
-
const baseClass = "tw-flex tw-
|
|
5
|
+
function ProcessIcon({ size = 16, type }) {
|
|
6
|
+
const baseClass = "tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]";
|
|
7
|
+
const iconStyle = {
|
|
8
|
+
height: size,
|
|
9
|
+
width: size
|
|
10
|
+
};
|
|
11
|
+
const innerDotSize = Math.max(6, Math.round(size * .375));
|
|
7
12
|
if (type === "finish") return /* @__PURE__ */ jsx("span", {
|
|
8
|
-
className: cn(baseClass, "tw-bg-[var(--
|
|
13
|
+
className: cn(`${type}-icon-box icon-box`, baseClass, "tw-bg-[var(--border-brand-strong)]"),
|
|
14
|
+
style: iconStyle,
|
|
9
15
|
children: /* @__PURE__ */ jsx("img", {
|
|
10
16
|
style: {
|
|
11
|
-
|
|
12
|
-
|
|
17
|
+
height: Math.round(size * .5),
|
|
18
|
+
width: Math.round(size * .625)
|
|
13
19
|
},
|
|
14
20
|
src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDExIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zLjc1IDcuOTQzMjVMMCA0LjE5MzI1TDEuMTkzMjUgM0wzLjc1IDUuNTU2NzVMOS4zMDc1IDBMMTAuNTAzNyAxLjE4ODc1TDMuNzUgNy45NDMyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="
|
|
15
21
|
})
|
|
16
22
|
});
|
|
17
23
|
if (type === "error") return /* @__PURE__ */ jsx("span", {
|
|
18
|
-
className: cn(baseClass, "tw-bg-[var(--background-negative-strong
|
|
24
|
+
className: cn(`${type}-icon-box icon-box`, baseClass, "tw-bg-[var(--background-negative-strong)]"),
|
|
25
|
+
style: iconStyle,
|
|
19
26
|
children: /* @__PURE__ */ jsx("img", {
|
|
20
27
|
style: {
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
height: Math.round(size * .625),
|
|
29
|
+
width: Math.round(size * .188)
|
|
23
30
|
},
|
|
24
31
|
src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMyIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDMgMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjI4MTI1IDBIMS45Njg3NVY2LjVIMC4yODEyNVYwWk0xLjEyNSAxMEMwLjkwMjUgMTAgMC42ODQ5OSA5LjkzNDA0IDAuNDk5OTggOS44MTA0MkMwLjMxNDk4IDkuNjg2OCAwLjE3MDc4IDkuNTExMTMgMC4wODU2NCA5LjMwNTU1QzAuMDAwNDkgOS4wOTk5OCAtMC4wMjE3OSA4Ljg3Mzc4IDAuMDIxNjIgOC42NTU1NUMwLjA2NTAzIDguNDM3MzIgMC4xNzIxNyA4LjIzNjg0IDAuMzI5NTEgOC4wNzk1MUMwLjQ4Njg0IDcuOTIyMTcgMC42ODczIDcuODE1MDQgMC45MDU1MiA3Ljc3MTYzQzEuMTIzNzUgNy43MjgyMiAxLjM0OTk1IDcuNzUwNTEgMS41NTU1MiA3LjgzNTY0QzEuNzYxMDkgNy45MjA3OCAxLjkzNjc5IDguMDY0OTggMi4wNjA0IDguMjVDMi4xODQwMiA4LjQzNTAyIDIuMjUgOC42NTI1MSAyLjI1IDguODc1QzIuMjUgOS4xNzMzNyAyLjEzMTQ3IDkuNDU5NTIgMS45MjA1IDkuNjcwNDlDMS43MDk1MiA5Ljg4MTQ3IDEuNDIzMzcgMTAgMS4xMjUgMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"
|
|
25
32
|
})
|
|
26
33
|
});
|
|
27
34
|
if (type === "process") return /* @__PURE__ */ jsx("span", {
|
|
28
|
-
className: cn(baseClass, "tw-relative tw-bg-[var(--
|
|
29
|
-
|
|
35
|
+
className: cn(`${type}-icon-box icon-box`, baseClass, "tw-relative tw-bg-[var(--border-brand-strong)]"),
|
|
36
|
+
style: iconStyle,
|
|
37
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
38
|
+
className: "tw-rounded-full tw-bg-[var(--background-default)]",
|
|
39
|
+
style: {
|
|
40
|
+
height: innerDotSize,
|
|
41
|
+
width: innerDotSize
|
|
42
|
+
}
|
|
43
|
+
})
|
|
30
44
|
});
|
|
31
45
|
return /* @__PURE__ */ jsx("span", {
|
|
32
|
-
className: cn(baseClass, "tw-relative tw-bg-[var(--
|
|
33
|
-
|
|
46
|
+
className: cn(`${type}-icon-box icon-box`, baseClass, "tw-relative tw-bg-[var(--content-secondary)]"),
|
|
47
|
+
style: iconStyle,
|
|
48
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
49
|
+
className: "tw-rounded-full tw-bg-[var(--background-default)]",
|
|
50
|
+
style: {
|
|
51
|
+
height: innerDotSize,
|
|
52
|
+
width: innerDotSize
|
|
53
|
+
}
|
|
54
|
+
})
|
|
34
55
|
});
|
|
35
56
|
}
|
|
36
57
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/ProcessIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\n\ninterface IProcessIconProps {\n type: 'process' | 'wait' | 'finish' | 'error';\n}\n\nexport function ProcessIcon({ type }: IProcessIconProps) {\n const baseClass =\n 'tw-flex tw-
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/ProcessIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\n\ninterface IProcessIconProps {\n size?: number;\n type: 'process' | 'wait' | 'finish' | 'error';\n}\n\nexport function ProcessIcon({ size = 16, type }: IProcessIconProps) {\n const baseClass =\n 'tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]';\n const iconStyle = { height: size, width: size };\n const innerDotSize = Math.max(6, Math.round(size * 0.375));\n\n if (type === 'finish')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-bg-[var(--border-brand-strong)]',\n )}\n style={iconStyle}\n >\n <img\n style={{\n height: Math.round(size * 0.5),\n width: Math.round(size * 0.625),\n }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDExIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zLjc1IDcuOTQzMjVMMCA0LjE5MzI1TDEuMTkzMjUgM0wzLjc1IDUuNTU2NzVMOS4zMDc1IDBMMTAuNTAzNyAxLjE4ODc1TDMuNzUgNy45NDMyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"\n />\n </span>\n );\n\n if (type === 'error')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-bg-[var(--background-negative-strong)]',\n )}\n style={iconStyle}\n >\n <img\n style={{\n height: Math.round(size * 0.625),\n width: Math.round(size * 0.188),\n }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMyIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDMgMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjI4MTI1IDBIMS45Njg3NVY2LjVIMC4yODEyNVYwWk0xLjEyNSAxMEMwLjkwMjUgMTAgMC42ODQ5OSA5LjkzNDA0IDAuNDk5OTggOS44MTA0MkMwLjMxNDk4IDkuNjg2OCAwLjE3MDc4IDkuNTExMTMgMC4wODU2NCA5LjMwNTU1QzAuMDAwNDkgOS4wOTk5OCAtMC4wMjE3OSA4Ljg3Mzc4IDAuMDIxNjIgOC42NTU1NUMwLjA2NTAzIDguNDM3MzIgMC4xNzIxNyA4LjIzNjg0IDAuMzI5NTEgOC4wNzk1MUMwLjQ4Njg0IDcuOTIyMTcgMC42ODczIDcuODE1MDQgMC45MDU1MiA3Ljc3MTYzQzEuMTIzNzUgNy43MjgyMiAxLjM0OTk1IDcuNzUwNTEgMS41NTU1MiA3LjgzNTY0QzEuNzYxMDkgNy45MjA3OCAxLjkzNjc5IDguMDY0OTggMi4wNjA0IDguMjVDMi4xODQwMiA4LjQzNTAyIDIuMjUgOC42NTI1MSAyLjI1IDguODc1QzIuMjUgOS4xNzMzNyAyLjEzMTQ3IDkuNDU5NTIgMS45MjA1IDkuNjcwNDlDMS43MDk1MiA5Ljg4MTQ3IDEuNDIzMzcgMTAgMS4xMjUgMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\"\n />\n </span>\n );\n\n if (type === 'process')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-relative tw-bg-[var(--border-brand-strong)]',\n )}\n style={iconStyle}\n >\n <span\n className=\"tw-rounded-full tw-bg-[var(--background-default)]\"\n style={{ height: innerDotSize, width: innerDotSize }}\n />\n </span>\n );\n\n // wait\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-relative tw-bg-[var(--content-secondary)]',\n )}\n style={iconStyle}\n >\n <span\n className=\"tw-rounded-full tw-bg-[var(--background-default)]\"\n style={{ height: innerDotSize, width: innerDotSize }}\n />\n </span>\n );\n}\n"],"mappings":";;;;AAQA,SAAgB,YAAY,EAAE,OAAO,IAAI,QAA2B;CAClE,MAAM,YACJ;CACF,MAAM,YAAY;EAAE,QAAQ;EAAM,OAAO;EAAM;CAC/C,MAAM,eAAe,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO,KAAM,CAAC;AAE1D,KAAI,SAAS,SACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,qCACD;EACD,OAAO;YAEP,oBAAC,OAAD;GACE,OAAO;IACL,QAAQ,KAAK,MAAM,OAAO,GAAI;IAC9B,OAAO,KAAK,MAAM,OAAO,KAAM;IAChC;GACD,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,QACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,4CACD;EACD,OAAO;YAEP,oBAAC,OAAD;GACE,OAAO;IACL,QAAQ,KAAK,MAAM,OAAO,KAAM;IAChC,OAAO,KAAK,MAAM,OAAO,KAAM;IAChC;GACD,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,UACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,iDACD;EACD,OAAO;YAEP,oBAAC,QAAD;GACE,WAAU;GACV,OAAO;IAAE,QAAQ;IAAc,OAAO;IAAc;GACpD,CAAA;EACG,CAAA;AAIX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,+CACD;EACD,OAAO;YAEP,oBAAC,QAAD;GACE,WAAU;GACV,OAAO;IAAE,QAAQ;IAAc,OAAO;IAAc;GACpD,CAAA;EACG,CAAA"}
|
package/dist/Steps/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CustomDot } from "./components/CustomDot/index.js";
|
|
3
3
|
import { Step } from "./components/Step/index.js";
|
|
4
4
|
import React from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/Steps/index.tsx
|
|
7
7
|
function getStepStatus(index, current, globalStatus) {
|
|
8
8
|
if (index < current) return "finish";
|
|
@@ -19,59 +19,77 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
|
|
|
19
19
|
icon: child.props.icon
|
|
20
20
|
}));
|
|
21
21
|
return /* @__PURE__ */ jsx("div", {
|
|
22
|
-
className: cn("ald-steps tw-flex", direction === "vertical" ? "tw-flex-col" : "tw-flex-row tw-items-start", className),
|
|
22
|
+
className: cn("ald-steps ant-steps ant-steps-dot ant-steps-label-vertical tw-flex", direction === "vertical" ? "ant-steps-vertical" : "ant-steps-horizontal", direction === "vertical" ? "tw-flex-col" : "tw-flex-row tw-items-start", className),
|
|
23
23
|
children: resolvedItems.map((item, index) => {
|
|
24
24
|
const stepStatus = item.status || getStepStatus(index, current, status);
|
|
25
25
|
const isLast = index === resolvedItems.length - 1;
|
|
26
26
|
return /* @__PURE__ */ jsx("div", {
|
|
27
|
-
className: cn("ald-steps-item tw-flex", direction === "horizontal" ? "tw-flex-1 tw-flex-col tw-items-center tw-text-center" : "tw-flex-row tw-gap-3 tw-py-2", `ald-steps-item-${stepStatus}`, item.disabled && "ald-steps-item-disabled tw-pointer-events-none tw-opacity-50"),
|
|
28
|
-
children: direction === "horizontal" ? /* @__PURE__ */ jsxs(
|
|
29
|
-
className: "tw-flex tw-w-full tw-items-center",
|
|
30
|
-
children: [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
27
|
+
className: cn("ald-steps-item ant-steps-item tw-flex", direction === "horizontal" ? "tw-flex-1 tw-flex-col tw-items-center tw-text-center" : "tw-flex-row tw-gap-3 tw-py-2", `ald-steps-item-${stepStatus}`, `ant-steps-item-${stepStatus}`, item.disabled && "ald-steps-item-disabled tw-pointer-events-none tw-opacity-50", item.disabled && "ant-steps-item-disabled"),
|
|
28
|
+
children: direction === "horizontal" ? /* @__PURE__ */ jsxs("div", {
|
|
29
|
+
className: "ant-steps-item-container tw-flex tw-w-full tw-flex-col tw-items-center",
|
|
30
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
31
|
+
className: "tw-flex tw-w-full tw-items-center",
|
|
32
|
+
children: [
|
|
33
|
+
index > 0 && /* @__PURE__ */ jsx("div", {
|
|
34
|
+
className: cn("ant-steps-item-tail tw-flex-1", index <= current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
|
|
35
|
+
style: { height: 1.5 }
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx("div", {
|
|
38
|
+
className: "ald-steps-item-icon ant-steps-item-icon tw-shrink-0",
|
|
39
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
40
|
+
className: "ant-steps-icon",
|
|
41
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
42
|
+
className: "ant-steps-icon-dot",
|
|
43
|
+
children: item.icon || CustomDot(null, { status: stepStatus })
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
}),
|
|
47
|
+
!isLast && /* @__PURE__ */ jsx("div", {
|
|
48
|
+
className: cn(index === 0 && "ant-steps-item-tail", "tw-flex-1", index < current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
|
|
49
|
+
style: { height: 1.5 }
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
53
|
+
className: "ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center",
|
|
54
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
55
|
+
className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--content-tertiary)]", stepStatus === "process" && "tw-text-[var(--content-brand-primary)]", stepStatus === "wait" && "tw-text-[var(--content-primary)]", stepStatus === "error" && "tw-text-[var(--content-negative-secondary)]"),
|
|
56
|
+
children: item.title
|
|
57
|
+
}), item.description && /* @__PURE__ */ jsx("div", {
|
|
58
|
+
className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4", stepStatus === "finish" || stepStatus === "error" ? "tw-text-[var(--content-tertiary)]" : "tw-text-[var(--content-secondary)]"),
|
|
59
|
+
children: item.description
|
|
60
|
+
})]
|
|
52
61
|
})]
|
|
53
|
-
})
|
|
54
|
-
className: "
|
|
55
|
-
children: [/* @__PURE__ */
|
|
56
|
-
className: "ald-steps-item-
|
|
57
|
-
children:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
62
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
63
|
+
className: "ant-steps-item-container tw-flex tw-min-h-16 tw-flex-row tw-gap-3",
|
|
64
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
65
|
+
className: "ald-steps-item-axis tw-relative tw-flex tw-w-4 tw-shrink-0 tw-justify-center",
|
|
66
|
+
children: [!isLast && /* @__PURE__ */ jsx("div", {
|
|
67
|
+
className: cn("ald-steps-item-tail ant-steps-item-tail", index < current ? "ald-steps-item-tail-finish" : "ald-steps-item-tail-wait", "tw-absolute tw-left-1/2 tw-top-2 tw-z-0 tw--translate-x-1/2", index < current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
|
|
68
|
+
style: {
|
|
69
|
+
width: 1.5,
|
|
70
|
+
bottom: -24
|
|
71
|
+
}
|
|
72
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
73
|
+
className: "ald-steps-item-icon ant-steps-item-icon tw-relative tw-z-[1] tw-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-leading-none",
|
|
74
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
75
|
+
className: "ant-steps-icon tw-flex tw-size-4 tw-items-center tw-justify-center tw-leading-none",
|
|
76
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
77
|
+
className: "ant-steps-icon-dot tw-flex tw-size-4 tw-items-center tw-justify-center",
|
|
78
|
+
children: item.icon || CustomDot(null, { status: stepStatus })
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
})]
|
|
82
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
83
|
+
className: "ald-steps-item-content ant-steps-item-content",
|
|
84
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
85
|
+
className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--content-tertiary)]", stepStatus === "process" && "tw-text-[var(--content-brand-primary)]", stepStatus === "wait" && "tw-text-[var(--content-primary)]", stepStatus === "error" && "tw-text-[var(--content-negative-secondary)]"),
|
|
86
|
+
children: item.title
|
|
87
|
+
}), item.description && /* @__PURE__ */ jsx("div", {
|
|
88
|
+
className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]"),
|
|
89
|
+
children: item.description
|
|
90
|
+
})]
|
|
64
91
|
})]
|
|
65
|
-
})
|
|
66
|
-
className: "ald-steps-item-content ant-steps-item-content",
|
|
67
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
68
|
-
className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--alias-colors-text-subtlest)]", stepStatus === "process" && "tw-text-[var(--alias-colors-text-selected)]", stepStatus === "wait" && "tw-text-[var(--alias-colors-text-default)]", stepStatus === "error" && "tw-text-[var(--alias-colors-text-danger)]"),
|
|
69
|
-
children: item.title
|
|
70
|
-
}), item.description && /* @__PURE__ */ jsx("div", {
|
|
71
|
-
className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]"),
|
|
72
|
-
children: item.description
|
|
73
|
-
})]
|
|
74
|
-
})] })
|
|
92
|
+
})
|
|
75
93
|
}, index);
|
|
76
94
|
})
|
|
77
95
|
});
|
package/dist/Steps/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/Steps/index.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode } from 'react';\nimport { cn } from '../lib/utils';\nimport { ProcessIcon } from './components/ProcessIcon';\nimport { IStepProps, Step } from './components/Step';\n\nexport type { IStepProps };\nexport type TStatus = 'wait' | 'process' | 'finish' | 'error';\n\nexport interface IStepItem {\n description?: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n status?: TStatus;\n subTitle?: ReactNode;\n title: ReactNode;\n}\n\nexport interface IStepsProps {\n className?: string;\n current?: number;\n direction?: 'horizontal' | 'vertical';\n defaultCurrent?: number;\n status?: TStatus;\n items?: IStepItem[];\n children?: ReactElement<IStepProps>[] | ReactElement<IStepProps>;\n}\n\nfunction getStepStatus(\n index: number,\n current: number,\n globalStatus?: TStatus,\n): TStatus {\n if (index < current) return 'finish';\n if (index === current) return globalStatus || 'process';\n return 'wait';\n}\n\nfunction Steps({\n className,\n current: controlledCurrent,\n direction = 'horizontal',\n defaultCurrent = 0,\n status,\n items,\n children,\n}: IStepsProps) {\n const current = controlledCurrent ?? defaultCurrent;\n // Support children-based API: convert children to items\n const resolvedItems: IStepItem[] =\n items ||\n React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child: any) => ({\n title: child.props.title,\n description: child.props.description,\n disabled: child.props.disabled,\n status: child.props.status,\n icon: child.props.icon,\n }));\n\n return (\n <div\n className={cn(\n 'ald-steps tw-flex',\n direction === 'vertical' ? 'tw-flex-col' : 'tw-flex-row tw-items-start',\n className,\n )}\n >\n {resolvedItems.map((item, index) => {\n const stepStatus = item.status || getStepStatus(index, current, status);\n const isLast = index === resolvedItems.length - 1;\n\n return (\n <div\n key={index}\n className={cn(\n 'ald-steps-item tw-flex',\n direction === 'horizontal'\n ? 'tw-flex-1 tw-flex-col tw-items-center tw-text-center'\n : 'tw-flex-row tw-gap-3 tw-py-2',\n `ald-steps-item-${stepStatus}`,\n item.disabled &&\n 'ald-steps-item-disabled tw-pointer-events-none tw-opacity-50',\n )}\n >\n {direction === 'horizontal' ? (\n <>\n <div className=\"tw-flex tw-w-full tw-items-center\">\n {index > 0 && (\n <div\n className={cn(\n 'tw-flex-1',\n index <= current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n <div className=\"ald-steps-item-icon tw-shrink-0\">\n {item.icon || <ProcessIcon type={stepStatus} />}\n </div>\n {!isLast && (\n <div\n className={cn(\n 'tw-flex-1',\n index < current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--alias-colors-text-subtlest)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--alias-colors-text-selected)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--alias-colors-text-default)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--alias-colors-text-danger)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4',\n stepStatus === 'finish' || stepStatus === 'error'\n ? 'tw-text-[var(--alias-colors-text-subtlest)]'\n : 'tw-text-[var(--alias-colors-text-subtle)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </>\n ) : (\n <>\n <div className=\"tw-relative tw-flex tw-flex-col tw-items-center\">\n <div className=\"ald-steps-item-icon tw-shrink-0\">\n {item.icon || <ProcessIcon type={stepStatus} />}\n </div>\n {!isLast && (\n <div\n className={cn(\n 'tw-mt-1 tw-flex-1',\n index < current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ width: 1.5, minHeight: 24 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--alias-colors-text-subtlest)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--alias-colors-text-selected)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--alias-colors-text-default)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--alias-colors-text-danger)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nSteps.Step = Step;\n\nexport default Steps;\n"],"mappings":";;;;;;AA2BA,SAAS,cACP,OACA,SACA,cACS;AACT,KAAI,QAAQ,QAAS,QAAO;AAC5B,KAAI,UAAU,QAAS,QAAO,gBAAgB;AAC9C,QAAO;;AAGT,SAAS,MAAM,EACb,WACA,SAAS,mBACT,YAAY,cACZ,iBAAiB,GACjB,QACA,OACA,YACc;CACd,MAAM,UAAU,qBAAqB;CAErC,MAAM,gBACJ,SACA,MAAM,SAAS,QAAQ,SAAS,CAC7B,OAAO,MAAM,eAAe,CAC5B,KAAK,WAAgB;EACpB,OAAO,MAAM,MAAM;EACnB,aAAa,MAAM,MAAM;EACzB,UAAU,MAAM,MAAM;EACtB,QAAQ,MAAM,MAAM;EACpB,MAAM,MAAM,MAAM;EACnB,EAAE;AAEP,QACE,oBAAC,OAAD;EACE,WAAW,GACT,qBACA,cAAc,aAAa,gBAAgB,8BAC3C,UACD;YAEA,cAAc,KAAK,MAAM,UAAU;GAClC,MAAM,aAAa,KAAK,UAAU,cAAc,OAAO,SAAS,OAAO;GACvE,MAAM,SAAS,UAAU,cAAc,SAAS;AAEhD,UACE,oBAAC,OAAD;IAEE,WAAW,GACT,0BACA,cAAc,eACV,yDACA,gCACJ,kBAAkB,cAClB,KAAK,YACH,+DACH;cAEA,cAAc,eACb,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;KAAK,WAAU;eAAf;MACG,QAAQ,KACP,oBAAC,OAAD;OACE,WAAW,GACT,aACA,SAAS,UACL,gDACA,6CACL;OACD,OAAO,EAAE,QAAQ,KAAK;OACtB,CAAA;MAEJ,oBAAC,OAAD;OAAK,WAAU;iBACZ,KAAK,QAAQ,oBAAC,aAAD,EAAa,MAAM,YAAc,CAAA;OAC3C,CAAA;MACL,CAAC,UACA,oBAAC,OAAD;OACE,WAAW,GACT,aACA,QAAQ,UACJ,gDACA,6CACL;OACD,OAAO,EAAE,QAAQ,KAAK;OACtB,CAAA;MAEA;QAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MACE,WAAW,GAET,oFACA,eAAe,YACb,+CACF,eAAe,aACb,+CACF,eAAe,UACb,8CACF,eAAe,WACb,4CACH;gBAEA,KAAK;MACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;MACE,WAAW,GAET,uHACA,eAAe,YAAY,eAAe,UACtC,gDACA,4CACL;gBAEA,KAAK;MACF,CAAA,CAEJ;OACL,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,WAAU;gBACZ,KAAK,QAAQ,oBAAC,aAAD,EAAa,MAAM,YAAc,CAAA;MAC3C,CAAA,EACL,CAAC,UACA,oBAAC,OAAD;MACE,WAAW,GACT,qBACA,QAAQ,UACJ,gDACA,6CACL;MACD,OAAO;OAAE,OAAO;OAAK,WAAW;OAAI;MACpC,CAAA,CAEA;QAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MACE,WAAW,GAET,oFACA,eAAe,YACb,+CACF,eAAe,aACb,+CACF,eAAe,UACb,8CACF,eAAe,WACb,4CACH;gBAEA,KAAK;MACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;MACE,WAAW,GAET,yJACD;gBAEA,KAAK;MACF,CAAA,CAEJ;OACL,EAAA,CAAA;IAED,EA1HC,MA0HD;IAER;EACE,CAAA;;AAIV,MAAM,OAAO"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/Steps/index.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode } from 'react';\nimport { cn } from '../lib/utils';\nimport { CustomDot } from './components/CustomDot';\nimport { IStepProps, Step } from './components/Step';\n\nexport type { IStepProps };\nexport type TStatus = 'wait' | 'process' | 'finish' | 'error';\n\nexport interface IStepItem {\n description?: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n status?: TStatus;\n subTitle?: ReactNode;\n title: ReactNode;\n}\n\nexport interface IStepsProps {\n className?: string;\n current?: number;\n direction?: 'horizontal' | 'vertical';\n defaultCurrent?: number;\n status?: TStatus;\n items?: IStepItem[];\n children?: ReactElement<IStepProps>[] | ReactElement<IStepProps>;\n}\n\nfunction getStepStatus(\n index: number,\n current: number,\n globalStatus?: TStatus,\n): TStatus {\n if (index < current) return 'finish';\n if (index === current) return globalStatus || 'process';\n return 'wait';\n}\n\nfunction Steps({\n className,\n current: controlledCurrent,\n direction = 'horizontal',\n defaultCurrent = 0,\n status,\n items,\n children,\n}: IStepsProps) {\n const current = controlledCurrent ?? defaultCurrent;\n // Support children-based API: convert children to items\n const resolvedItems: IStepItem[] =\n items ||\n React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child: any) => ({\n title: child.props.title,\n description: child.props.description,\n disabled: child.props.disabled,\n status: child.props.status,\n icon: child.props.icon,\n }));\n\n return (\n <div\n className={cn(\n 'ald-steps ant-steps ant-steps-dot ant-steps-label-vertical tw-flex',\n direction === 'vertical'\n ? 'ant-steps-vertical'\n : 'ant-steps-horizontal',\n direction === 'vertical' ? 'tw-flex-col' : 'tw-flex-row tw-items-start',\n className,\n )}\n >\n {resolvedItems.map((item, index) => {\n const stepStatus = item.status || getStepStatus(index, current, status);\n const isLast = index === resolvedItems.length - 1;\n\n return (\n <div\n key={index}\n className={cn(\n 'ald-steps-item ant-steps-item tw-flex',\n direction === 'horizontal'\n ? 'tw-flex-1 tw-flex-col tw-items-center tw-text-center'\n : 'tw-flex-row tw-gap-3 tw-py-2',\n `ald-steps-item-${stepStatus}`,\n `ant-steps-item-${stepStatus}`,\n item.disabled &&\n 'ald-steps-item-disabled tw-pointer-events-none tw-opacity-50',\n item.disabled && 'ant-steps-item-disabled',\n )}\n >\n {direction === 'horizontal' ? (\n <div className=\"ant-steps-item-container tw-flex tw-w-full tw-flex-col tw-items-center\">\n <div className=\"tw-flex tw-w-full tw-items-center\">\n {index > 0 && (\n <div\n className={cn(\n 'ant-steps-item-tail tw-flex-1',\n index <= current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n <div className=\"ald-steps-item-icon ant-steps-item-icon tw-shrink-0\">\n <span className=\"ant-steps-icon\">\n <span className=\"ant-steps-icon-dot\">\n {item.icon || CustomDot(null, { status: stepStatus })}\n </span>\n </span>\n </div>\n {!isLast && (\n <div\n className={cn(\n index === 0 && 'ant-steps-item-tail',\n 'tw-flex-1',\n index < current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--content-tertiary)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--content-brand-primary)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--content-primary)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--content-negative-secondary)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4',\n stepStatus === 'finish' || stepStatus === 'error'\n ? 'tw-text-[var(--content-tertiary)]'\n : 'tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n ) : (\n <div className=\"ant-steps-item-container tw-flex tw-min-h-16 tw-flex-row tw-gap-3\">\n <div className=\"ald-steps-item-axis tw-relative tw-flex tw-w-4 tw-shrink-0 tw-justify-center\">\n {!isLast && (\n <div\n className={cn(\n 'ald-steps-item-tail ant-steps-item-tail',\n index < current\n ? 'ald-steps-item-tail-finish'\n : 'ald-steps-item-tail-wait',\n 'tw-absolute tw-left-1/2 tw-top-2 tw-z-0 tw--translate-x-1/2',\n index < current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ width: 1.5, bottom: -24 }}\n />\n )}\n <div className=\"ald-steps-item-icon ant-steps-item-icon tw-relative tw-z-[1] tw-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-leading-none\">\n <span className=\"ant-steps-icon tw-flex tw-size-4 tw-items-center tw-justify-center tw-leading-none\">\n <span className=\"ant-steps-icon-dot tw-flex tw-size-4 tw-items-center tw-justify-center\">\n {item.icon || CustomDot(null, { status: stepStatus })}\n </span>\n </span>\n </div>\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--content-tertiary)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--content-brand-primary)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--content-primary)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--content-negative-secondary)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nSteps.Step = Step;\n\nexport default Steps;\n"],"mappings":";;;;;;AA2BA,SAAS,cACP,OACA,SACA,cACS;AACT,KAAI,QAAQ,QAAS,QAAO;AAC5B,KAAI,UAAU,QAAS,QAAO,gBAAgB;AAC9C,QAAO;;AAGT,SAAS,MAAM,EACb,WACA,SAAS,mBACT,YAAY,cACZ,iBAAiB,GACjB,QACA,OACA,YACc;CACd,MAAM,UAAU,qBAAqB;CAErC,MAAM,gBACJ,SACA,MAAM,SAAS,QAAQ,SAAS,CAC7B,OAAO,MAAM,eAAe,CAC5B,KAAK,WAAgB;EACpB,OAAO,MAAM,MAAM;EACnB,aAAa,MAAM,MAAM;EACzB,UAAU,MAAM,MAAM;EACtB,QAAQ,MAAM,MAAM;EACpB,MAAM,MAAM,MAAM;EACnB,EAAE;AAEP,QACE,oBAAC,OAAD;EACE,WAAW,GACT,sEACA,cAAc,aACV,uBACA,wBACJ,cAAc,aAAa,gBAAgB,8BAC3C,UACD;YAEA,cAAc,KAAK,MAAM,UAAU;GAClC,MAAM,aAAa,KAAK,UAAU,cAAc,OAAO,SAAS,OAAO;GACvE,MAAM,SAAS,UAAU,cAAc,SAAS;AAEhD,UACE,oBAAC,OAAD;IAEE,WAAW,GACT,yCACA,cAAc,eACV,yDACA,gCACJ,kBAAkB,cAClB,kBAAkB,cAClB,KAAK,YACH,gEACF,KAAK,YAAY,0BAClB;cAEA,cAAc,eACb,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,QAAQ,KACP,oBAAC,OAAD;QACE,WAAW,GACT,iCACA,SAAS,UACL,uCACA,gCACL;QACD,OAAO,EAAE,QAAQ,KAAK;QACtB,CAAA;OAEJ,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,QAAD;SAAM,WAAU;mBACd,oBAAC,QAAD;UAAM,WAAU;oBACb,KAAK,QAAQ,UAAU,MAAM,EAAE,QAAQ,YAAY,CAAC;UAChD,CAAA;SACF,CAAA;QACH,CAAA;OACL,CAAC,UACA,oBAAC,OAAD;QACE,WAAW,GACT,UAAU,KAAK,uBACf,aACA,QAAQ,UACJ,uCACA,gCACL;QACD,OAAO,EAAE,QAAQ,KAAK;QACtB,CAAA;OAEA;SAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD;OACE,WAAW,GAET,oFACA,eAAe,YACb,qCACF,eAAe,aACb,0CACF,eAAe,UACb,oCACF,eAAe,WACb,8CACH;iBAEA,KAAK;OACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;OACE,WAAW,GAET,uHACA,eAAe,YAAY,eAAe,UACtC,sCACA,qCACL;iBAEA,KAAK;OACF,CAAA,CAEJ;QACF;SAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,CAAC,UACA,oBAAC,OAAD;OACE,WAAW,GACT,2CACA,QAAQ,UACJ,+BACA,4BACJ,+DACA,QAAQ,UACJ,uCACA,gCACL;OACD,OAAO;QAAE,OAAO;QAAK,QAAQ;QAAK;OAClC,CAAA,EAEJ,oBAAC,OAAD;OAAK,WAAU;iBACb,oBAAC,QAAD;QAAM,WAAU;kBACd,oBAAC,QAAD;SAAM,WAAU;mBACb,KAAK,QAAQ,UAAU,MAAM,EAAE,QAAQ,YAAY,CAAC;SAChD,CAAA;QACF,CAAA;OACH,CAAA,CACF;SAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD;OACE,WAAW,GAET,oFACA,eAAe,YACb,qCACF,eAAe,aACb,0CACF,eAAe,UACb,oCACF,eAAe,WACb,8CACH;iBAEA,KAAK;OACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;OACE,WAAW,GAET,yJACD;iBAEA,KAAK;OACF,CAAA,CAEJ;QACF;;IAEJ,EAzIC,MAyID;IAER;EACE,CAAA;;AAIV,MAAM,OAAO"}
|
package/dist/Switch/index.js
CHANGED
|
@@ -52,14 +52,14 @@ var Switch = ({ className = "", disabled: customDisabled, loading = false, size:
|
|
|
52
52
|
"data-testid": dataTestid,
|
|
53
53
|
"aria-label": ariaLabel,
|
|
54
54
|
disabled: currentDisabled,
|
|
55
|
-
className: cn("ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200", userChecked ? "tw-bg-[var(--
|
|
55
|
+
className: cn("ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200", userChecked ? "tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]" : "tw-bg-[var(--action-neutral-subtle-normal)] hover:tw-bg-[var(--action-neutral-subtle-hover)]", currentDisabled && "tw-cursor-not-allowed tw-opacity-40"),
|
|
56
56
|
style: {
|
|
57
57
|
width: trackW,
|
|
58
58
|
height: trackH
|
|
59
59
|
},
|
|
60
60
|
onClick: handleClick,
|
|
61
61
|
children: /* @__PURE__ */ jsx("span", {
|
|
62
|
-
className: cn("tw-block tw-rounded-full tw-bg-
|
|
62
|
+
className: cn("tw-block tw-rounded-full tw-bg-[var(--background-default)] tw-shadow-sm tw-transition-transform tw-duration-200"),
|
|
63
63
|
style: {
|
|
64
64
|
width: thumbSize,
|
|
65
65
|
height: thumbSize,
|
|
@@ -68,7 +68,7 @@ var Switch = ({ className = "", disabled: customDisabled, loading = false, size:
|
|
|
68
68
|
}
|
|
69
69
|
})
|
|
70
70
|
}), children && /* @__PURE__ */ jsx("span", {
|
|
71
|
-
className: cn("ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--
|
|
71
|
+
className: cn("ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--content-primary)]", size === "large" && "tw-h-5 tw-text-base tw-leading-5", size === "middle" && "tw-h-4 tw-text-sm tw-leading-4", size === "small" && "tw-h-3 tw-text-xs tw-leading-3", currentDisabled && "tw-opacity-50"),
|
|
72
72
|
children
|
|
73
73
|
})]
|
|
74
74
|
});
|
package/dist/Switch/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/Switch/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport DisabledContext from '../ConfigProvider/DisabledContext';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { cn } from '../lib/utils';\n\nexport type SwitchChangeEventHandler = (\n checked: boolean,\n event: React.MouseEvent<HTMLButtonElement>,\n) => void;\nexport type SwitchClickEventHandler = SwitchChangeEventHandler;\nexport type SwitchSize = 'large' | 'middle' | 'small';\n\nexport interface ISwitchProps {\n className?: string;\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n loading?: boolean;\n size?: SwitchSize;\n onClick?: SwitchChangeEventHandler;\n onChange?: SwitchChangeEventHandler;\n children?: React.ReactNode;\n /** 透传到内部 switch 按钮元素的 data-testid,用于自动化测试定位 */\n 'data-testid'?: string;\n /** 透传到内部 switch 按钮元素的 aria-label,用于可访问性与自动化测试定位 */\n 'aria-label'?: string;\n}\n\nconst switchSizeConfig: Record<\n SwitchSize,\n {\n trackW: number;\n trackH: number;\n thumbSize: number;\n }\n> = {\n large: {\n trackW: 36,\n trackH: 20,\n thumbSize: 16,\n },\n middle: {\n trackW: 28,\n trackH: 16,\n thumbSize: 12,\n },\n small: {\n trackW: 22,\n trackH: 12,\n thumbSize: 8,\n },\n};\n\nconst Switch: React.FC<ISwitchProps> = ({\n className = '',\n disabled: customDisabled,\n loading = false,\n size: customSize,\n checked,\n defaultChecked,\n onChange,\n onClick,\n children,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n}) => {\n const contentSize = useContext(SizeContext);\n const size = customSize || contentSize || 'middle';\n\n const [userChecked, setUserChecked] = useState(\n typeof checked === 'undefined' ? defaultChecked : checked,\n );\n\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled ?? disabled;\n\n const currentDisabled = loading ? true : mergedDisabled;\n\n useEffect(() => {\n if (typeof checked === 'boolean') {\n setUserChecked(checked);\n }\n }, [checked]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (currentDisabled) return;\n const newChecked = !userChecked;\n if (checked === undefined) {\n setUserChecked(newChecked);\n }\n onChange?.(newChecked, e);\n onClick?.(newChecked, e);\n };\n\n const { trackW, trackH, thumbSize } = switchSizeConfig[size];\n const thumbOffset = 2;\n const thumbTranslate = trackW - thumbSize - thumbOffset * 2;\n\n return (\n <span\n className={cn(\n className,\n 'ald-switch tw-inline-flex tw-items-center tw-gap-1.5 tw-text-[0]',\n `ald-switch-${size}`,\n currentDisabled && 'tw-pointer-events-none tw-cursor-default',\n {\n 'ald-switch-disabled': currentDisabled,\n 'ald-switch-checked': userChecked,\n },\n )}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!userChecked}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n disabled={currentDisabled}\n className={cn(\n 'ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200',\n userChecked\n ? 'tw-bg-[var(--
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/Switch/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport DisabledContext from '../ConfigProvider/DisabledContext';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { cn } from '../lib/utils';\n\nexport type SwitchChangeEventHandler = (\n checked: boolean,\n event: React.MouseEvent<HTMLButtonElement>,\n) => void;\nexport type SwitchClickEventHandler = SwitchChangeEventHandler;\nexport type SwitchSize = 'large' | 'middle' | 'small';\n\nexport interface ISwitchProps {\n className?: string;\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n loading?: boolean;\n size?: SwitchSize;\n onClick?: SwitchChangeEventHandler;\n onChange?: SwitchChangeEventHandler;\n children?: React.ReactNode;\n /** 透传到内部 switch 按钮元素的 data-testid,用于自动化测试定位 */\n 'data-testid'?: string;\n /** 透传到内部 switch 按钮元素的 aria-label,用于可访问性与自动化测试定位 */\n 'aria-label'?: string;\n}\n\nconst switchSizeConfig: Record<\n SwitchSize,\n {\n trackW: number;\n trackH: number;\n thumbSize: number;\n }\n> = {\n large: {\n trackW: 36,\n trackH: 20,\n thumbSize: 16,\n },\n middle: {\n trackW: 28,\n trackH: 16,\n thumbSize: 12,\n },\n small: {\n trackW: 22,\n trackH: 12,\n thumbSize: 8,\n },\n};\n\nconst Switch: React.FC<ISwitchProps> = ({\n className = '',\n disabled: customDisabled,\n loading = false,\n size: customSize,\n checked,\n defaultChecked,\n onChange,\n onClick,\n children,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n}) => {\n const contentSize = useContext(SizeContext);\n const size = customSize || contentSize || 'middle';\n\n const [userChecked, setUserChecked] = useState(\n typeof checked === 'undefined' ? defaultChecked : checked,\n );\n\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled ?? disabled;\n\n const currentDisabled = loading ? true : mergedDisabled;\n\n useEffect(() => {\n if (typeof checked === 'boolean') {\n setUserChecked(checked);\n }\n }, [checked]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (currentDisabled) return;\n const newChecked = !userChecked;\n if (checked === undefined) {\n setUserChecked(newChecked);\n }\n onChange?.(newChecked, e);\n onClick?.(newChecked, e);\n };\n\n const { trackW, trackH, thumbSize } = switchSizeConfig[size];\n const thumbOffset = 2;\n const thumbTranslate = trackW - thumbSize - thumbOffset * 2;\n\n return (\n <span\n className={cn(\n className,\n 'ald-switch tw-inline-flex tw-items-center tw-gap-1.5 tw-text-[0]',\n `ald-switch-${size}`,\n currentDisabled && 'tw-pointer-events-none tw-cursor-default',\n {\n 'ald-switch-disabled': currentDisabled,\n 'ald-switch-checked': userChecked,\n },\n )}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!userChecked}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n disabled={currentDisabled}\n className={cn(\n 'ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200',\n userChecked\n ? 'tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]'\n : 'tw-bg-[var(--action-neutral-subtle-normal)] hover:tw-bg-[var(--action-neutral-subtle-hover)]',\n currentDisabled && 'tw-cursor-not-allowed tw-opacity-40',\n )}\n style={{ width: trackW, height: trackH }}\n onClick={handleClick}\n >\n <span\n className={cn(\n 'tw-block tw-rounded-full tw-bg-[var(--background-default)] tw-shadow-sm tw-transition-transform tw-duration-200',\n )}\n style={{\n width: thumbSize,\n height: thumbSize,\n marginLeft: thumbOffset,\n transform: userChecked\n ? `translateX(${thumbTranslate}px)`\n : 'translateX(0)',\n }}\n />\n </button>\n {children && (\n <span\n className={cn(\n 'ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--content-primary)]',\n size === 'large' && 'tw-h-5 tw-text-base tw-leading-5',\n size === 'middle' && 'tw-h-4 tw-text-sm tw-leading-4',\n size === 'small' && 'tw-h-3 tw-text-xs tw-leading-3',\n currentDisabled && 'tw-opacity-50',\n )}\n >\n {children}\n </span>\n )}\n </span>\n );\n};\n\nexport default Switch;\n"],"mappings":";;;;;;AA4BA,IAAM,mBAOF;CACF,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACF;AAED,IAAM,UAAkC,EACtC,YAAY,IACZ,UAAU,gBACV,UAAU,OACV,MAAM,YACN,SACA,gBACA,UACA,SACA,UACA,eAAe,YACf,cAAc,gBACV;CACJ,MAAM,cAAc,WAAW,YAAY;CAC3C,MAAM,OAAO,cAAc,eAAe;CAE1C,MAAM,CAAC,aAAa,kBAAkB,SACpC,OAAO,YAAY,cAAc,iBAAiB,QACnD;CAED,MAAM,WAAW,WAAW,gBAAgB;CAG5C,MAAM,kBAAkB,UAAU,OAFX,kBAAkB;AAIzC,iBAAgB;AACd,MAAI,OAAO,YAAY,UACrB,gBAAe,QAAQ;IAExB,CAAC,QAAQ,CAAC;CAEb,MAAM,eAAe,MAA2C;AAC9D,MAAI,gBAAiB;EACrB,MAAM,aAAa,CAAC;AACpB,MAAI,YAAY,OACd,gBAAe,WAAW;AAE5B,aAAW,YAAY,EAAE;AACzB,YAAU,YAAY,EAAE;;CAG1B,MAAM,EAAE,QAAQ,QAAQ,cAAc,iBAAiB;CACvD,MAAM,cAAc;CACpB,MAAM,iBAAiB,SAAS,YAAY,cAAc;AAE1D,QACE,qBAAC,QAAD;EACE,WAAW,GACT,WACA,oEACA,cAAc,QACd,mBAAmB,4CACnB;GACE,uBAAuB;GACvB,sBAAsB;GACvB,CACF;YAVH,CAYE,oBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,gBAAc,CAAC,CAAC;GAChB,eAAa;GACb,cAAY;GACZ,UAAU;GACV,WAAW,GACT,uJACA,cACI,mFACA,gGACJ,mBAAmB,sCACpB;GACD,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,SAAS;aAET,oBAAC,QAAD;IACE,WAAW,GACT,kHACD;IACD,OAAO;KACL,OAAO;KACP,QAAQ;KACR,YAAY;KACZ,WAAW,cACP,cAAc,eAAe,OAC7B;KACL;IACD,CAAA;GACK,CAAA,EACR,YACC,oBAAC,QAAD;GACE,WAAW,GACT,mGACA,SAAS,WAAW,oCACpB,SAAS,YAAY,kCACrB,SAAS,WAAW,kCACpB,mBAAmB,gBACpB;GAEA;GACI,CAAA,CAEJ"}
|
|
@@ -11,15 +11,15 @@ function Header(props) {
|
|
|
11
11
|
const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column.columnDef.meta;
|
|
12
12
|
let sortIcon = /* @__PURE__ */ jsx(Memo$1, {
|
|
13
13
|
size: 20,
|
|
14
|
-
color: "var(
|
|
14
|
+
color: "var(--action-neutral-normal)"
|
|
15
15
|
});
|
|
16
16
|
if (sortOrder === "ascend") sortIcon = /* @__PURE__ */ jsx(Memo, {
|
|
17
17
|
size: 20,
|
|
18
|
-
color: "var(
|
|
18
|
+
color: "var(--action-primary-normal)"
|
|
19
19
|
});
|
|
20
20
|
else if (sortOrder === "descend") sortIcon = /* @__PURE__ */ jsx(Memo$2, {
|
|
21
21
|
size: 20,
|
|
22
|
-
color: "var(
|
|
22
|
+
color: "var(--action-primary-normal)"
|
|
23
23
|
});
|
|
24
24
|
const onClickTh = useCallback((e) => {
|
|
25
25
|
if (sortOrder === void 0 || !dataIndex || typeof onSort !== "function") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","names":[],"sources":["../../../src/Table/components/Header.tsx"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { cn } from '../../lib/utils';\nimport React, { MouseEventHandler, useCallback } from 'react';\nimport SortAscIcon from '../../Icon/components/SortAscendingOrderColor';\nimport SortIcon from '../../Icon/components/SortColor';\nimport SortDescIcon from '../../Icon/components/SortDescendingOrderColor';\nimport { prefixCls } from '../helper';\nimport { ITableColumn, ITableProps } from '../types';\n\nexport default function Header<T extends object>(props: IProps<T>) {\n const { column } = props;\n const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column\n .columnDef.meta as ITableColumn & { onSort: ITableProps<T>['onSort'] };\n\n let sortIcon =
|
|
1
|
+
{"version":3,"file":"Header.js","names":[],"sources":["../../../src/Table/components/Header.tsx"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { cn } from '../../lib/utils';\nimport React, { MouseEventHandler, useCallback } from 'react';\nimport SortAscIcon from '../../Icon/components/SortAscendingOrderColor';\nimport SortIcon from '../../Icon/components/SortColor';\nimport SortDescIcon from '../../Icon/components/SortDescendingOrderColor';\nimport { prefixCls } from '../helper';\nimport { ITableColumn, ITableProps } from '../types';\n\nexport default function Header<T extends object>(props: IProps<T>) {\n const { column } = props;\n const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column\n .columnDef.meta as ITableColumn & { onSort: ITableProps<T>['onSort'] };\n\n let sortIcon = <SortIcon size={20} color={'var(--action-neutral-normal)'} />;\n if (sortOrder === 'ascend') {\n sortIcon = <SortAscIcon size={20} color={'var(--action-primary-normal)'} />;\n } else if (sortOrder === 'descend') {\n sortIcon = (\n <SortDescIcon size={20} color={'var(--action-primary-normal)'} />\n );\n }\n\n const onClickTh = useCallback<MouseEventHandler>(\n (e) => {\n if (\n sortOrder === undefined ||\n !dataIndex ||\n typeof onSort !== 'function'\n ) {\n return;\n }\n e.stopPropagation();\n\n let newSortOrder: typeof sortOrder;\n if (sortOrder === 'ascend') {\n newSortOrder = 'descend';\n } else if (sortOrder === 'descend') {\n newSortOrder = null;\n } else {\n newSortOrder = 'ascend';\n }\n onSort(dataIndex, newSortOrder);\n },\n [dataIndex, onSort, sortOrder],\n );\n\n let content = title;\n if (typeof content === 'string') {\n if (sortOrder !== undefined) {\n content = (\n <span className={prefixCls('sort-th-inner')}>\n <span className={prefixCls('sort-title')}>{title}</span>\n <span className={prefixCls('sort-btn')}>{sortIcon}</span>\n </span>\n );\n }\n }\n\n return typeof title === 'string' ? (\n <div\n key={dataIndex}\n className={cn(prefixCls('th-default'), prefixCls(`align-${align}`), {\n [prefixCls('td-ellipsis-content')]: ellipsis,\n [prefixCls('th-sortable')]: sortOrder !== undefined,\n })}\n onClick={onClickTh}\n >\n {content}\n </div>\n ) : (\n <>{title}</>\n );\n}\n\nexport interface IProps<T> {\n column: Column<T>;\n}\n"],"mappings":";;;;;;;;AASA,SAAwB,OAAyB,OAAkB;CACjE,MAAM,EAAE,WAAW;CACnB,MAAM,EAAE,OAAO,WAAW,OAAO,UAAU,WAAW,WAAW,OAC9D,UAAU;CAEb,IAAI,WAAW,oBAAC,QAAD;EAAU,MAAM;EAAI,OAAO;EAAkC,CAAA;AAC5E,KAAI,cAAc,SAChB,YAAW,oBAAC,MAAD;EAAa,MAAM;EAAI,OAAO;EAAkC,CAAA;UAClE,cAAc,UACvB,YACE,oBAAC,QAAD;EAAc,MAAM;EAAI,OAAO;EAAkC,CAAA;CAIrE,MAAM,YAAY,aACf,MAAM;AACL,MACE,cAAc,UACd,CAAC,aACD,OAAO,WAAW,WAElB;AAEF,IAAE,iBAAiB;EAEnB,IAAI;AACJ,MAAI,cAAc,SAChB,gBAAe;WACN,cAAc,UACvB,gBAAe;MAEf,gBAAe;AAEjB,SAAO,WAAW,aAAa;IAEjC;EAAC;EAAW;EAAQ;EAAU,CAC/B;CAED,IAAI,UAAU;AACd,KAAI,OAAO,YAAY,UACrB;MAAI,cAAc,OAChB,WACE,qBAAC,QAAD;GAAM,WAAW,UAAU,gBAAgB;aAA3C,CACE,oBAAC,QAAD;IAAM,WAAW,UAAU,aAAa;cAAG;IAAa,CAAA,EACxD,oBAAC,QAAD;IAAM,WAAW,UAAU,WAAW;cAAG;IAAgB,CAAA,CACpD;;;AAKb,QAAO,OAAO,UAAU,WACtB,oBAAC,OAAD;EAEE,WAAW,GAAG,UAAU,aAAa,EAAE,UAAU,SAAS,QAAQ,EAAE;IACjE,UAAU,sBAAsB,GAAG;IACnC,UAAU,cAAc,GAAG,cAAc;GAC3C,CAAC;EACF,SAAS;YAER;EACG,EARC,UAQD,GAEN,oBAAA,UAAA,EAAA,UAAG,OAAS,CAAA"}
|