@sia.soul/sia-react-ui 0.1.60 → 0.1.63

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/index.cjs CHANGED
@@ -5112,6 +5112,7 @@ function Tour({ open = false, steps, current, defaultCurrent = 0, mask = true, c
5112
5112
  var import_react24 = require("react");
5113
5113
  var import_jsx_runtime22 = require("react/jsx-runtime");
5114
5114
  function Card({
5115
+ bordered = true,
5115
5116
  title,
5116
5117
  description,
5117
5118
  extra,
@@ -5163,7 +5164,7 @@ function Card({
5163
5164
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5164
5165
  "section",
5165
5166
  {
5166
- className: `sia-card${isCollapsed ? " sia-card--collapsed" : ""}${selectable ? " sia-card--selectable" : ""}${selectable && isSelected ? " sia-card--selected" : ""}${hoverActions ? " sia-card--hover-actions" : ""} ${className}`.trim(),
5167
+ 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(),
5167
5168
  style: mergedStyle,
5168
5169
  role: selectable ? "checkbox" : void 0,
5169
5170
  "aria-checked": selectable ? isSelected : void 0,
@@ -8735,7 +8736,7 @@ function UploadItem({ file, files, props, actions }) {
8735
8736
  }
8736
8737
  (0, import_react37.useEffect)(() => setFailed(false), [source]);
8737
8738
  const node = /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `sia-upload__item sia-upload__item--${file.status ?? "ready"}`, children: [
8738
- props.listType !== "text" ? /* @__PURE__ */ (0, import_jsx_runtime38.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_runtime38.jsx)("img", { src: source, alt: file.name, onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: file.type?.startsWith("image/") ? "image" : "file", size: 28 }) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: file.status === "done" ? "circle-check" : "file", size: 16 }),
8739
+ props.listType !== "text" ? /* @__PURE__ */ (0, import_jsx_runtime38.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_runtime38.jsx)("img", { src: source, alt: file.name, onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: file.type?.startsWith("image/") ? "image" : "file", size: 28 }) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__file-icon", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: file.status === "done" ? "circle-check" : "file", size: 24 }) }),
8739
8740
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__name", ...withTitleTooltip({ title: file.relativePath || file.name }), children: file.url ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("a", { href: file.url, target: "_blank", rel: "noreferrer", children: file.name }) : file.name }),
8740
8741
  /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "sia-upload__actions", children: [
8741
8742
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Button, { variant: "text", title: "\u9884\u89C8", "aria-label": `\u9884\u89C8 ${file.name}`, disabled: !canPreview, onClick: actions.preview, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: "eye", size: 14 }) }),
@@ -8750,7 +8751,8 @@ function UploadItem({ file, files, props, actions }) {
8750
8751
  ] }),
8751
8752
  /* @__PURE__ */ (0, import_jsx_runtime38.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_runtime38.jsx)("span", { style: { width: `${file.percent ?? 0}%` } }) })
8752
8753
  ] }),
8753
- file.status === "error" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__error", children: "\u4E0A\u4F20\u5931\u8D25" })
8754
+ file.status === "error" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__error", children: "\u4E0A\u4F20\u5931\u8D25" }),
8755
+ props.listType === "text" && (file.status === void 0 || file.status === "ready" || file.status === "done") && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__status", children: file.status === "done" ? "\u4E0A\u4F20\u5B8C\u6210" : "\u5DF2\u9009\u62E9" })
8754
8756
  ] });
8755
8757
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: props.itemRender ? props.itemRender(node, file, files, actions) : node });
8756
8758
  }
@@ -9029,6 +9031,10 @@ var UploadRoot = (0, import_react37.forwardRef)(function UploadRoot2({
9029
9031
  }
9030
9032
  ),
9031
9033
  listType !== "picture-card" && trigger,
9034
+ showUploadList && listType === "text" && files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "sia-upload__list-heading", role: "status", children: [
9035
+ "\u5DF2\u9009\u6587\u4EF6 ",
9036
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sia-upload__count", children: files.length })
9037
+ ] }),
9032
9038
  /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "sia-upload__list", children: [
9033
9039
  showUploadList && files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(UploadItem, { file, files, props: { listType, disabled, itemRender, onPreview, downloadRequest, accept }, actions: {
9034
9040
  upload: () => start(file),
@@ -9067,7 +9073,7 @@ var UploadDragger = (0, import_react37.forwardRef)(function UploadDragger2({ hin
9067
9073
  ] }) });
9068
9074
  });
9069
9075
  var Upload = Object.assign(UploadRoot, {
9070
- /** 可点击、键盘操作和拖拽的上传区域,ref 支持手动上传、取消及移除。 */
9076
+ /** 可点击、键盘操作和拖拽的上传区域,ref 支持手动上传、取消及移除;默认内容在文字或图片列表非空且可见时收紧高度,清空后恢复。 */
9071
9077
  Dragger: UploadDragger,
9072
9078
  /** beforeUpload 返回时移除该文件,不进行上传。 */
9073
9079
  LIST_IGNORE
@@ -23459,7 +23465,15 @@ function QueryForm({
23459
23465
  const snapshot = (0, import_react94.useRef)();
23460
23466
  const busy = disabled || loading || searching;
23461
23467
  const shortcutBusy = busy || shortcutsLoading || saving || removing;
23462
- const entries = fields ? fields.map(({ key, width, ...item }) => ({ key, width, content: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Form.Item, { noStyle: true, ...item }) })) : import_react94.Children.toArray(children).map((content, index) => ({ key: String(index), width: void 0, content }));
23468
+ const entries = fields ? fields.map(({ key, width, ...item }) => ({
23469
+ key,
23470
+ width,
23471
+ content: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Form.Item, { noStyle: true, ...item })
23472
+ })) : import_react94.Children.toArray(children).map((content, index) => ({
23473
+ key: String(index),
23474
+ width: void 0,
23475
+ content
23476
+ }));
23463
23477
  const limit = Math.max(1, Math.floor(collapsedCount));
23464
23478
  const rowRef = (0, import_react94.useRef)(null);
23465
23479
  const actionsRef = (0, import_react94.useRef)(null);
@@ -23472,7 +23486,9 @@ function QueryForm({
23472
23486
  function measure() {
23473
23487
  if (!row || !actions) return;
23474
23488
  const gap = parseFloat(getComputedStyle(row).columnGap) || 0;
23475
- const allFields = Array.from(row.querySelectorAll(":scope > .sia-query-form__field"));
23489
+ const allFields = Array.from(
23490
+ row.querySelectorAll(":scope > .sia-query-form__field")
23491
+ );
23476
23492
  const hiddenFields = allFields.filter((field) => field.hidden);
23477
23493
  const wasCollapsed = row.classList.contains("is-collapsed");
23478
23494
  const toggle = toggleRef.current;
@@ -23482,8 +23498,13 @@ function QueryForm({
23482
23498
  field.hidden = false;
23483
23499
  });
23484
23500
  if (toggle) toggle.hidden = true;
23485
- const requiredWidth = allFields.reduce((total, field) => total + field.getBoundingClientRect().width + gap, actions.getBoundingClientRect().width);
23486
- setNeedsCollapse(allFields.length > 0 && requiredWidth > row.clientWidth + 0.5);
23501
+ const requiredWidth = allFields.reduce(
23502
+ (total, field) => total + field.getBoundingClientRect().width + gap,
23503
+ actions.getBoundingClientRect().width
23504
+ );
23505
+ setNeedsCollapse(
23506
+ allFields.length > 0 && requiredWidth > row.clientWidth + 0.5
23507
+ );
23487
23508
  if (toggle) toggle.hidden = Boolean(toggleHidden);
23488
23509
  hiddenFields.forEach((field) => {
23489
23510
  field.hidden = true;
@@ -23492,7 +23513,9 @@ function QueryForm({
23492
23513
  if (!collapsed) return;
23493
23514
  let remaining = row.clientWidth - actions.getBoundingClientRect().width;
23494
23515
  let count = 0;
23495
- for (const field of Array.from(row.querySelectorAll(":scope > .sia-query-form__field")).slice(0, limit)) {
23516
+ for (const field of Array.from(
23517
+ row.querySelectorAll(":scope > .sia-query-form__field")
23518
+ ).slice(0, limit)) {
23496
23519
  const width = parseFloat(getComputedStyle(field).width) || 220;
23497
23520
  if (remaining + 0.5 < width + gap) break;
23498
23521
  remaining -= width + gap;
@@ -23506,7 +23529,20 @@ function QueryForm({
23506
23529
  observer.observe(actions);
23507
23530
  row.querySelectorAll(":scope > .sia-query-form__field").forEach((field) => observer.observe(field));
23508
23531
  return () => observer.disconnect();
23509
- }, [collapsed, needsCollapse, collapsible, limit, fieldWidth, fields, children, actionsExtra, onSaveQuery, searchText, resetText, saveText]);
23532
+ }, [
23533
+ collapsed,
23534
+ needsCollapse,
23535
+ collapsible,
23536
+ limit,
23537
+ fieldWidth,
23538
+ fields,
23539
+ children,
23540
+ actionsExtra,
23541
+ onSaveQuery,
23542
+ searchText,
23543
+ resetText,
23544
+ saveText
23545
+ ]);
23510
23546
  async function search(values) {
23511
23547
  const info = source.current;
23512
23548
  source.current = { source: "submit" };
@@ -23557,7 +23593,9 @@ function QueryForm({
23557
23593
  await onSaveQuery({ name, values: snapshot.current });
23558
23594
  setSaveOpen(false);
23559
23595
  } catch (reason) {
23560
- setSaveError(reason instanceof Error ? reason.message : "\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
23596
+ setSaveError(
23597
+ reason instanceof Error ? reason.message : "\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"
23598
+ );
23561
23599
  onError?.(reason, "save");
23562
23600
  return false;
23563
23601
  } finally {
@@ -23602,58 +23640,98 @@ function QueryForm({
23602
23640
  },
23603
23641
  children: [
23604
23642
  quickQueries.length ? /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "sia-query-form__quick", "aria-label": "\u9884\u8BBE\u5FEB\u6377\u67E5\u8BE2", children: [
23605
- quickQueries.map((query) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Badge, { className: "sia-query-form__quick-badge", showZero: true, size: "small", title: query.count === void 0 ? void 0 : `\u5171 ${query.count} \u6761`, ...query.badgeProps, count: query.count, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23606
- Button,
23643
+ quickQueries.map((query) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23644
+ Badge,
23607
23645
  {
23608
- size: query.size ?? quickQuerySize,
23609
- "aria-pressed": activeShortcut === `quick:${query.key}`,
23610
- variant: activeShortcut === `quick:${query.key}` ? "primary" : "default",
23611
- disabled: shortcutBusy || query.disabled,
23612
- onClick: () => applyShortcut(query, "quick"),
23613
- children: query.label
23614
- }
23615
- ) }, query.key)),
23646
+ className: "sia-query-form__quick-badge",
23647
+ showZero: true,
23648
+ size: "small",
23649
+ title: query.count === void 0 ? void 0 : `\u5171 ${query.count} \u6761`,
23650
+ ...query.badgeProps,
23651
+ count: query.count,
23652
+ children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23653
+ Button,
23654
+ {
23655
+ size: query.size ?? quickQuerySize,
23656
+ "aria-pressed": activeShortcut === `quick:${query.key}`,
23657
+ variant: activeShortcut === `quick:${query.key}` ? "primary" : "default",
23658
+ disabled: shortcutBusy || query.disabled,
23659
+ onClick: () => applyShortcut(query, "quick"),
23660
+ children: query.label
23661
+ }
23662
+ )
23663
+ },
23664
+ query.key
23665
+ )),
23616
23666
  " "
23617
23667
  ] }) : null,
23618
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { ref: rowRef, className: `sia-query-form__fields${collapsed ? " is-collapsed" : ""}`, style: { "--sia-query-field-width": typeof fieldWidth === "number" ? `${fieldWidth}px` : fieldWidth }, children: [
23619
- entries.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23620
- "div",
23621
- {
23622
- className: "sia-query-form__field",
23623
- hidden: collapsed && index >= Math.min(limit, fittingCount),
23624
- style: entry.width !== void 0 ? { "--sia-query-item-width": typeof entry.width === "number" ? `${entry.width}px` : entry.width } : void 0,
23625
- children: entry.content
23668
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
23669
+ "div",
23670
+ {
23671
+ ref: rowRef,
23672
+ className: `sia-query-form__fields${collapsed ? " is-collapsed" : ""}`,
23673
+ style: {
23674
+ "--sia-query-field-width": typeof fieldWidth === "number" ? `${fieldWidth}px` : fieldWidth
23626
23675
  },
23627
- entry.key
23628
- )),
23629
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { ref: actionsRef, className: "sia-query-form__actions", children: [
23630
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Space.Compact, { children: [
23631
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Button, { type: "submit", variant: "primary", loading: loading || searching, disabled, children: searchText }),
23632
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Button, { disabled: busy, onClick: reset, children: resetText }),
23633
- onSaveQuery ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Button, { disabled: shortcutBusy, onClick: () => {
23634
- snapshot.current = form.getFieldsValue();
23635
- setSaveName("");
23636
- setSaveError("");
23637
- setSaveOpen(true);
23638
- }, children: saveText }) : null
23639
- ] }),
23640
- collapsible && entries.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("span", { ref: toggleRef, hidden: !needsCollapse, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23641
- Button,
23642
- {
23643
- variant: "link",
23644
- "aria-expanded": !collapsed,
23645
- icon: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Icon, { name: collapsed ? "chevron-down" : "chevron-up" }),
23646
- iconPosition: "end",
23647
- onClick: () => {
23648
- setInternalCollapsed(!collapsed);
23649
- onCollapsedChange?.(!collapsed);
23676
+ children: [
23677
+ entries.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23678
+ "div",
23679
+ {
23680
+ className: "sia-query-form__field",
23681
+ hidden: collapsed && index >= Math.min(limit, fittingCount),
23682
+ style: entry.width !== void 0 ? {
23683
+ "--sia-query-item-width": typeof entry.width === "number" ? `${entry.width}px` : entry.width
23684
+ } : void 0,
23685
+ children: entry.content
23650
23686
  },
23651
- children: collapsed ? "\u5C55\u5F00" : "\u6536\u8D77"
23652
- }
23653
- ) }) : null,
23654
- actionsExtra
23655
- ] })
23656
- ] }),
23687
+ entry.key
23688
+ )),
23689
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { ref: actionsRef, className: "sia-query-form__actions", children: [
23690
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Space.Compact, { children: [
23691
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23692
+ Button,
23693
+ {
23694
+ type: "submit",
23695
+ variant: "primary",
23696
+ loading: loading || searching,
23697
+ disabled,
23698
+ children: searchText
23699
+ }
23700
+ ),
23701
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Button, { disabled: busy, onClick: reset, children: resetText }),
23702
+ onSaveQuery ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23703
+ Button,
23704
+ {
23705
+ disabled: shortcutBusy,
23706
+ onClick: () => {
23707
+ snapshot.current = form.getFieldsValue();
23708
+ setSaveName("");
23709
+ setSaveError("");
23710
+ setSaveOpen(true);
23711
+ },
23712
+ children: saveText
23713
+ }
23714
+ ) : null
23715
+ ] }),
23716
+ collapsible && entries.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("span", { ref: toggleRef, hidden: !needsCollapse, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23717
+ Button,
23718
+ {
23719
+ variant: "link",
23720
+ "aria-expanded": !collapsed,
23721
+ icon: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Icon, { name: collapsed ? "chevron-down" : "chevron-up" }),
23722
+ iconPosition: "end",
23723
+ onClick: () => {
23724
+ setInternalCollapsed(!collapsed);
23725
+ onCollapsedChange?.(!collapsed);
23726
+ },
23727
+ children: collapsed ? "\u5C55\u5F00" : "\u6536\u8D77"
23728
+ }
23729
+ ) }) : null,
23730
+ actionsExtra
23731
+ ] })
23732
+ ]
23733
+ }
23734
+ ),
23657
23735
  savedQueries.length && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "sia-query-form__saved", "aria-label": "\u5DF2\u4FDD\u5B58\u5FEB\u6377\u67E5\u8BE2", children: [
23658
23736
  savedQueries.map((query, index) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23659
23737
  Tag,
@@ -23685,30 +23763,41 @@ function QueryForm({
23685
23763
  ]
23686
23764
  }
23687
23765
  ),
23688
- /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Modal2, { open: saveOpen, title: "\u53E6\u5B58\u4E3A\u5FEB\u6377\u67E5\u8BE2", width: 420, confirmLoading: saving, onOk: save, onOpenChange: (next) => {
23689
- if (!saveLock.current) setSaveOpen(next);
23690
- }, children: [
23691
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23692
- Input,
23693
- {
23694
- autoFocus: true,
23695
- "aria-label": "\u5FEB\u6377\u67E5\u8BE2\u540D\u79F0",
23696
- placeholder: "\u5FEB\u6377\u67E5\u8BE2\u540D\u79F0",
23697
- value: saveName,
23698
- maxLength: 80,
23699
- disabled: saving,
23700
- status: saveError ? "error" : "default",
23701
- onChange: (event) => setSaveName(event.target.value),
23702
- onKeyDown: (event) => {
23703
- if (event.key === "Enter") {
23704
- event.preventDefault();
23705
- void save();
23766
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
23767
+ Modal2,
23768
+ {
23769
+ open: saveOpen,
23770
+ title: "\u53E6\u5B58\u4E3A\u5FEB\u6377\u67E5\u8BE2",
23771
+ width: 420,
23772
+ confirmLoading: saving,
23773
+ onOk: save,
23774
+ onOpenChange: (next) => {
23775
+ if (!saveLock.current) setSaveOpen(next);
23776
+ },
23777
+ children: [
23778
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23779
+ Input,
23780
+ {
23781
+ autoFocus: true,
23782
+ "aria-label": "\u5FEB\u6377\u67E5\u8BE2\u540D\u79F0",
23783
+ placeholder: "\u5FEB\u6377\u67E5\u8BE2\u540D\u79F0",
23784
+ value: saveName,
23785
+ maxLength: 80,
23786
+ disabled: saving,
23787
+ status: saveError ? "error" : "default",
23788
+ onChange: (event) => setSaveName(event.target.value),
23789
+ onKeyDown: (event) => {
23790
+ if (event.key === "Enter") {
23791
+ event.preventDefault();
23792
+ void save();
23793
+ }
23794
+ }
23706
23795
  }
23707
- }
23708
- }
23709
- ),
23710
- saveError ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("p", { className: "sia-query-form__error", role: "alert", children: saveError }) : null
23711
- ] })
23796
+ ),
23797
+ saveError ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("p", { className: "sia-query-form__error", role: "alert", children: saveError }) : null
23798
+ ]
23799
+ }
23800
+ )
23712
23801
  ] });
23713
23802
  }
23714
23803
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.css CHANGED
@@ -2593,6 +2593,18 @@ fieldset:disabled .sia-input-number__floating-placeholder {
2593
2593
  border-color: var(--sia-color-primary);
2594
2594
  box-shadow: inset 0 0 0 1px var(--sia-color-primary);
2595
2595
  }
2596
+ .sia-card.sia-card--borderless {
2597
+ border: 0;
2598
+ box-shadow: none;
2599
+ }
2600
+ .sia-card--borderless > .sia-card__header {
2601
+ margin-inline: 0;
2602
+ }
2603
+ .sia-card--borderless > .sia-card__description,
2604
+ .sia-card--borderless > .sia-card__body,
2605
+ .sia-card--borderless > .sia-card__hover-actions {
2606
+ padding: 0;
2607
+ }
2596
2608
  .sia-card--selectable:focus-visible {
2597
2609
  outline: 2px solid var(--sia-color-primary);
2598
2610
  outline-offset: 2px;
@@ -5009,7 +5021,7 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5009
5021
  display: flex;
5010
5022
  flex-wrap: wrap;
5011
5023
  align-items: center;
5012
- gap: var(--sia-query-field-gap, 6px);
5024
+ gap: var(--sia-query-field-gap, 8px);
5013
5025
  padding-top: 8px;
5014
5026
  }
5015
5027
  .sia-query-form__field {
@@ -5020,10 +5032,10 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5020
5032
  max-width: 100%;
5021
5033
  }
5022
5034
  .sia-query-form__field:has(.sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical) > :nth-child(2)) {
5023
- --sia-query-item-width: calc(var(--sia-query-field-width, 220px) + var(--sia-query-field-width, 220px) + var(--sia-query-field-gap, 6px));
5035
+ --sia-query-item-width: calc(var(--sia-query-field-width, 220px) + var(--sia-query-field-width, 220px) + var(--sia-query-field-gap, 8px));
5024
5036
  }
5025
5037
  .sia-query-form .sia-query-form__fields > .sia-query-form__field:has(.sia-select-date-range) {
5026
- --sia-query-item-width: calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 6px) * 2);
5038
+ --sia-query-item-width: calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 8px) * 2);
5027
5039
  }
5028
5040
  .sia-query-form__field :is(.sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical)) {
5029
5041
  width: 100%;
@@ -6642,7 +6654,7 @@ fieldset:disabled .sia-input-number__floating-placeholder {
6642
6654
  box-sizing: border-box;
6643
6655
  display: inline-flex;
6644
6656
  align-items: stretch;
6645
- width: min(calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 6px) * 2), 100%);
6657
+ width: min(calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 8px) * 2), 100%);
6646
6658
  min-width: 0;
6647
6659
  vertical-align: middle;
6648
6660
  }
@@ -7336,6 +7348,91 @@ fieldset:disabled .sia-input-number__floating-placeholder {
7336
7348
  .sia-upload__item--error .sia-upload__remove {
7337
7349
  color: var(--sia-color-error);
7338
7350
  }
7351
+ .sia-upload__list-heading {
7352
+ display: flex;
7353
+ align-items: center;
7354
+ gap: 8px;
7355
+ margin-top: 4px;
7356
+ font-size: 14px;
7357
+ font-weight: 600;
7358
+ }
7359
+ .sia-upload__count {
7360
+ display: inline-grid;
7361
+ place-items: center;
7362
+ min-width: 24px;
7363
+ height: 24px;
7364
+ padding: 0 6px;
7365
+ box-sizing: border-box;
7366
+ color: var(--sia-color-primary-text);
7367
+ background: var(--sia-color-control-hover);
7368
+ border-radius: 12px;
7369
+ font-size: 12px;
7370
+ }
7371
+ .sia-upload--text .sia-upload__list {
7372
+ gap: 8px;
7373
+ }
7374
+ .sia-upload--text .sia-upload__item {
7375
+ box-sizing: border-box;
7376
+ min-height: 72px;
7377
+ padding: 12px;
7378
+ column-gap: 12px;
7379
+ row-gap: 4px;
7380
+ border: 1px solid var(--sia-color-border);
7381
+ border-radius: 8px;
7382
+ background: var(--sia-color-control-hover);
7383
+ }
7384
+ .sia-upload--text .sia-upload__name {
7385
+ font-size: 14px;
7386
+ font-weight: 500;
7387
+ }
7388
+ .sia-upload__file-icon {
7389
+ display: grid;
7390
+ place-items: center;
7391
+ grid-column: 1;
7392
+ grid-row: 1 / 3;
7393
+ width: 40px;
7394
+ height: 40px;
7395
+ color: var(--sia-color-primary-text);
7396
+ background: var(--sia-color-surface);
7397
+ border-radius: 8px;
7398
+ }
7399
+ .sia-upload__status {
7400
+ grid-column: 2;
7401
+ font-size: 12px;
7402
+ color: var(--sia-color-text-secondary);
7403
+ }
7404
+ .sia-upload--text .sia-upload__actions {
7405
+ grid-row: 1 / 3;
7406
+ gap: 4px;
7407
+ }
7408
+ .sia-upload--text .sia-upload__actions > .sia-button {
7409
+ width: 30px;
7410
+ height: 30px;
7411
+ }
7412
+ .sia-upload--text .sia-upload__uploading,
7413
+ .sia-upload--text .sia-upload__error {
7414
+ grid-column: 2;
7415
+ }
7416
+ .sia-upload--text .sia-upload__item--done .sia-upload__file-icon,
7417
+ .sia-upload--text .sia-upload__item--done .sia-upload__status {
7418
+ color: var(--sia-color-success);
7419
+ }
7420
+ .sia-upload--text .sia-upload__item--error {
7421
+ border-color: var(--sia-color-error);
7422
+ }
7423
+ .sia-upload--text .sia-upload__item--error .sia-upload__file-icon {
7424
+ color: var(--sia-color-error);
7425
+ }
7426
+ @media (max-width: 480px) {
7427
+ .sia-upload--text .sia-upload__item {
7428
+ grid-template-columns: auto minmax(0, 1fr);
7429
+ }
7430
+ .sia-upload--text .sia-upload__actions {
7431
+ grid-column: 2;
7432
+ grid-row: 3;
7433
+ justify-self: end;
7434
+ }
7435
+ }
7339
7436
  .sia-upload__thumbnail.sia-button {
7340
7437
  display: grid;
7341
7438
  place-items: center;
@@ -7502,6 +7599,16 @@ fieldset:disabled .sia-input-number__floating-placeholder {
7502
7599
  .sia-upload-dragger__content > .sia-icon {
7503
7600
  color: var(--sia-color-primary);
7504
7601
  }
7602
+ .sia-upload-dragger:not(.sia-upload--picture-card):has(.sia-upload__list:not(:empty)) .sia-upload-dragger__content {
7603
+ min-height: 104px;
7604
+ padding: 16px;
7605
+ gap: 6px;
7606
+ }
7607
+ .sia-upload-dragger:not(.sia-upload--picture-card):has(.sia-upload__list:not(:empty)) .sia-upload-dragger__content > .sia-icon {
7608
+ width: 24px;
7609
+ height: 24px;
7610
+ font-size: 24px;
7611
+ }
7505
7612
  .sia-upload.is-dragging .sia-upload__choose {
7506
7613
  outline: 2px solid var(--sia-color-primary);
7507
7614
  outline-offset: 2px;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { T as TagStatus, B as BadgeProps } from './core-MTKdBVk3.cjs';
2
- export { a as Badge, b as BadgeRibbonProps, c as BadgeStatus, d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, C as Calendar, g as CalendarProps, h as Card, i as CardAccent, j as CardProps, k as Carousel, l as CarouselProps, m as CarouselRef, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, D as Dropdown, r as DropdownButtonProps, s as DropdownMenuProps, t as DropdownOpenSource, u as DropdownPlacement, v as DropdownProps, w as DropdownTrigger, F as FILLED_ICON_NAMES, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, H as FloatingPlacement, I as FloatingTrigger, J as ICON_NAMES, K as Icon, L as IconName, M as IconProps, N as IconVariant, O as Image, P as ImagePreview, Q as ImagePreviewConfig, R as ImagePreviewProps, S as ImageProps, U as Input, V as InputProps, W as Menu, X as MenuClickInfo, Y as MenuItem, Z as MenuMode, _ as MenuProps, $ as MenuTheme, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, a4 as NotificationConfig, a5 as NotificationPlacement, a6 as NotificationType, a7 as Popconfirm, a8 as PopconfirmProps, a9 as Popover, aa as PopoverProps, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ae as Rate, af as RateProps, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, ak as Spin, al as SpinProps, am as StepItem, an as StepStatus, ao as Steps, ap as StepsProps, aq as TabItem, ar as Tabs, as as TabsContextMenuClickInfo, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, aA as TagVariant, aB as Timeline, aC as TimelineItem, aD as TimelineProps, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, aH as Tooltip, aI as TooltipProps, aJ as Tour, aK as TourProps, aL as TourStep, aM as Tree, aN as TreeDropPosition, aO as TreeKey, aP as TreeNode, aQ as TreeProps, aR as Typography, aS as TypographyLinkProps, aT as TypographyProps, aU as TypographyTitleProps, aV as TypographyType, aW as Upload, aX as UploadChangeInfo, aY as UploadDraggerProps, aZ as UploadFile, a_ as UploadFileStatus, a$ as UploadHttpRequest, b0 as UploadItemActions, b1 as UploadProps, b2 as UploadRef, b3 as UploadRejectInfo, b4 as UploadRequestHandle, b5 as UploadRequestOptions, b6 as Watermark, b7 as WatermarkFont, b8 as WatermarkProps, b9 as message, ba as notification } from './core-MTKdBVk3.cjs';
1
+ import { T as TagStatus, B as BadgeProps } from './core-C4ayGoM8.cjs';
2
+ export { a as Badge, b as BadgeRibbonProps, c as BadgeStatus, d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, C as Calendar, g as CalendarProps, h as Card, i as CardAccent, j as CardProps, k as Carousel, l as CarouselProps, m as CarouselRef, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, D as Dropdown, r as DropdownButtonProps, s as DropdownMenuProps, t as DropdownOpenSource, u as DropdownPlacement, v as DropdownProps, w as DropdownTrigger, F as FILLED_ICON_NAMES, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, H as FloatingPlacement, I as FloatingTrigger, J as ICON_NAMES, K as Icon, L as IconName, M as IconProps, N as IconVariant, O as Image, P as ImagePreview, Q as ImagePreviewConfig, R as ImagePreviewProps, S as ImageProps, U as Input, V as InputProps, W as Menu, X as MenuClickInfo, Y as MenuItem, Z as MenuMode, _ as MenuProps, $ as MenuTheme, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, a4 as NotificationConfig, a5 as NotificationPlacement, a6 as NotificationType, a7 as Popconfirm, a8 as PopconfirmProps, a9 as Popover, aa as PopoverProps, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ae as Rate, af as RateProps, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, ak as Spin, al as SpinProps, am as StepItem, an as StepStatus, ao as Steps, ap as StepsProps, aq as TabItem, ar as Tabs, as as TabsContextMenuClickInfo, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, aA as TagVariant, aB as Timeline, aC as TimelineItem, aD as TimelineProps, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, aH as Tooltip, aI as TooltipProps, aJ as Tour, aK as TourProps, aL as TourStep, aM as Tree, aN as TreeDropPosition, aO as TreeKey, aP as TreeNode, aQ as TreeProps, aR as Typography, aS as TypographyLinkProps, aT as TypographyProps, aU as TypographyTitleProps, aV as TypographyType, aW as Upload, aX as UploadChangeInfo, aY as UploadDraggerProps, aZ as UploadFile, a_ as UploadFileStatus, a$ as UploadHttpRequest, b0 as UploadItemActions, b1 as UploadProps, b2 as UploadRef, b3 as UploadRejectInfo, b4 as UploadRequestHandle, b5 as UploadRequestOptions, b6 as Watermark, b7 as WatermarkFont, b8 as WatermarkProps, b9 as message, ba as notification } from './core-C4ayGoM8.cjs';
3
3
  import * as react from 'react';
4
4
  import { HTMLAttributes, ReactNode, CSSProperties, ElementType, FormHTMLAttributes, InputHTMLAttributes, ChangeEvent, TextareaHTMLAttributes, MouseEvent, Key, PointerEvent, Ref, ReactElement, ButtonHTMLAttributes, RefObject } from 'react';
5
5
  import { C as ControlSize, I as InputPlaceholderMode, a as ControlStatus } from './shared-Bx4B28Wh.cjs';
@@ -3113,7 +3113,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3113
3113
  */
3114
3114
  loading?: boolean;
3115
3115
  /**
3116
- * 单列查询字段的默认宽度,数值单位为像素,可传 CSS 尺寸字符串。区间及横向组合控件默认占两列,SelectDateRange 占三列,均包含跨列间距;行列间距可通过 --sia-query-field-gap 调整(默认 6px)。
3116
+ * 单列查询字段的默认宽度,数值单位为像素,可传 CSS 尺寸字符串。区间及横向组合控件默认占两列,SelectDateRange 占三列,均包含跨列间距;行列间距可通过 --sia-query-field-gap 调整(默认 8px)。
3117
3117
  * @defaultValue 220
3118
3118
  */
3119
3119
  fieldWidth?: number | string;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { T as TagStatus, B as BadgeProps } from './core-BrQetGru.js';
2
- export { a as Badge, b as BadgeRibbonProps, c as BadgeStatus, d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, C as Calendar, g as CalendarProps, h as Card, i as CardAccent, j as CardProps, k as Carousel, l as CarouselProps, m as CarouselRef, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, D as Dropdown, r as DropdownButtonProps, s as DropdownMenuProps, t as DropdownOpenSource, u as DropdownPlacement, v as DropdownProps, w as DropdownTrigger, F as FILLED_ICON_NAMES, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, H as FloatingPlacement, I as FloatingTrigger, J as ICON_NAMES, K as Icon, L as IconName, M as IconProps, N as IconVariant, O as Image, P as ImagePreview, Q as ImagePreviewConfig, R as ImagePreviewProps, S as ImageProps, U as Input, V as InputProps, W as Menu, X as MenuClickInfo, Y as MenuItem, Z as MenuMode, _ as MenuProps, $ as MenuTheme, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, a4 as NotificationConfig, a5 as NotificationPlacement, a6 as NotificationType, a7 as Popconfirm, a8 as PopconfirmProps, a9 as Popover, aa as PopoverProps, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ae as Rate, af as RateProps, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, ak as Spin, al as SpinProps, am as StepItem, an as StepStatus, ao as Steps, ap as StepsProps, aq as TabItem, ar as Tabs, as as TabsContextMenuClickInfo, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, aA as TagVariant, aB as Timeline, aC as TimelineItem, aD as TimelineProps, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, aH as Tooltip, aI as TooltipProps, aJ as Tour, aK as TourProps, aL as TourStep, aM as Tree, aN as TreeDropPosition, aO as TreeKey, aP as TreeNode, aQ as TreeProps, aR as Typography, aS as TypographyLinkProps, aT as TypographyProps, aU as TypographyTitleProps, aV as TypographyType, aW as Upload, aX as UploadChangeInfo, aY as UploadDraggerProps, aZ as UploadFile, a_ as UploadFileStatus, a$ as UploadHttpRequest, b0 as UploadItemActions, b1 as UploadProps, b2 as UploadRef, b3 as UploadRejectInfo, b4 as UploadRequestHandle, b5 as UploadRequestOptions, b6 as Watermark, b7 as WatermarkFont, b8 as WatermarkProps, b9 as message, ba as notification } from './core-BrQetGru.js';
1
+ import { T as TagStatus, B as BadgeProps } from './core-BemUqBUF.js';
2
+ export { a as Badge, b as BadgeRibbonProps, c as BadgeStatus, d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, C as Calendar, g as CalendarProps, h as Card, i as CardAccent, j as CardProps, k as Carousel, l as CarouselProps, m as CarouselRef, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, D as Dropdown, r as DropdownButtonProps, s as DropdownMenuProps, t as DropdownOpenSource, u as DropdownPlacement, v as DropdownProps, w as DropdownTrigger, F as FILLED_ICON_NAMES, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, H as FloatingPlacement, I as FloatingTrigger, J as ICON_NAMES, K as Icon, L as IconName, M as IconProps, N as IconVariant, O as Image, P as ImagePreview, Q as ImagePreviewConfig, R as ImagePreviewProps, S as ImageProps, U as Input, V as InputProps, W as Menu, X as MenuClickInfo, Y as MenuItem, Z as MenuMode, _ as MenuProps, $ as MenuTheme, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, a4 as NotificationConfig, a5 as NotificationPlacement, a6 as NotificationType, a7 as Popconfirm, a8 as PopconfirmProps, a9 as Popover, aa as PopoverProps, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ae as Rate, af as RateProps, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, ak as Spin, al as SpinProps, am as StepItem, an as StepStatus, ao as Steps, ap as StepsProps, aq as TabItem, ar as Tabs, as as TabsContextMenuClickInfo, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, aA as TagVariant, aB as Timeline, aC as TimelineItem, aD as TimelineProps, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, aH as Tooltip, aI as TooltipProps, aJ as Tour, aK as TourProps, aL as TourStep, aM as Tree, aN as TreeDropPosition, aO as TreeKey, aP as TreeNode, aQ as TreeProps, aR as Typography, aS as TypographyLinkProps, aT as TypographyProps, aU as TypographyTitleProps, aV as TypographyType, aW as Upload, aX as UploadChangeInfo, aY as UploadDraggerProps, aZ as UploadFile, a_ as UploadFileStatus, a$ as UploadHttpRequest, b0 as UploadItemActions, b1 as UploadProps, b2 as UploadRef, b3 as UploadRejectInfo, b4 as UploadRequestHandle, b5 as UploadRequestOptions, b6 as Watermark, b7 as WatermarkFont, b8 as WatermarkProps, b9 as message, ba as notification } from './core-BemUqBUF.js';
3
3
  import * as react from 'react';
4
4
  import { HTMLAttributes, ReactNode, CSSProperties, ElementType, FormHTMLAttributes, InputHTMLAttributes, ChangeEvent, TextareaHTMLAttributes, MouseEvent, Key, PointerEvent, Ref, ReactElement, ButtonHTMLAttributes, RefObject } from 'react';
5
5
  import { C as ControlSize, I as InputPlaceholderMode, a as ControlStatus } from './shared-Bx4B28Wh.js';
@@ -3113,7 +3113,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3113
3113
  */
3114
3114
  loading?: boolean;
3115
3115
  /**
3116
- * 单列查询字段的默认宽度,数值单位为像素,可传 CSS 尺寸字符串。区间及横向组合控件默认占两列,SelectDateRange 占三列,均包含跨列间距;行列间距可通过 --sia-query-field-gap 调整(默认 6px)。
3116
+ * 单列查询字段的默认宽度,数值单位为像素,可传 CSS 尺寸字符串。区间及横向组合控件默认占两列,SelectDateRange 占三列,均包含跨列间距;行列间距可通过 --sia-query-field-gap 调整(默认 8px)。
3117
3117
  * @defaultValue 220
3118
3118
  */
3119
3119
  fieldWidth?: number | string;