@sia.soul/sia-react-ui 0.1.70 → 0.1.72

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.
@@ -2,7 +2,7 @@ import {
2
2
  Dropdown,
3
3
  Icon,
4
4
  Input
5
- } from "./chunk-MKGTIW56.js";
5
+ } from "./chunk-YMOOL62S.js";
6
6
  import {
7
7
  Button
8
8
  } from "./chunk-IKAMZNCK.js";
@@ -2,7 +2,7 @@ import {
2
2
  Dropdown,
3
3
  Icon,
4
4
  Input
5
- } from "./chunk-MKGTIW56.js";
5
+ } from "./chunk-YMOOL62S.js";
6
6
  import {
7
7
  Button
8
8
  } from "./chunk-IKAMZNCK.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FloatingScrollbarProvider,
3
3
  Select
4
- } from "./chunk-L3OY6MWS.js";
4
+ } from "./chunk-KN6FDE2C.js";
5
5
  import {
6
6
  Icon
7
- } from "./chunk-MKGTIW56.js";
7
+ } from "./chunk-YMOOL62S.js";
8
8
  import {
9
9
  PopupPortal,
10
10
  useControlSize,
@@ -5,11 +5,11 @@ import {
5
5
  Popover,
6
6
  Tooltip,
7
7
  useOverlayLifecycle
8
- } from "./chunk-L3OY6MWS.js";
8
+ } from "./chunk-KN6FDE2C.js";
9
9
  import {
10
10
  Dropdown,
11
11
  Icon
12
- } from "./chunk-MKGTIW56.js";
12
+ } from "./chunk-YMOOL62S.js";
13
13
  import {
14
14
  Button
15
15
  } from "./chunk-IKAMZNCK.js";
@@ -503,6 +503,8 @@ var coreIconPaths = {
503
503
  /* @__PURE__ */ jsx2("path", { d: "m15.8 15.8 5.2 5.2" })
504
504
  ] }),
505
505
  plus: /* @__PURE__ */ jsx2("path", { d: "M12 4v16M4 12h16" }),
506
+ // 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
507
+ tilde: /* @__PURE__ */ jsx2("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
506
508
  minus: /* @__PURE__ */ jsx2("path", { d: "M4 12h16" }),
507
509
  close: /* @__PURE__ */ jsx2("path", { d: "m5 5 14 14M19 5 5 19" }),
508
510
  check: /* @__PURE__ */ jsx2("path", { d: "m4 12.5 5.2 5L20 6.5" }),
@@ -259,6 +259,7 @@ declare const iconPaths: {
259
259
  "game-qi": react.JSX.Element;
260
260
  search: react.JSX.Element;
261
261
  plus: react.JSX.Element;
262
+ tilde: react.JSX.Element;
262
263
  minus: react.JSX.Element;
263
264
  close: react.JSX.Element;
264
265
  check: react.JSX.Element;
@@ -334,7 +335,7 @@ declare const iconPaths: {
334
335
  /** 可用的线框图标名称。 */
335
336
  type IconName = keyof typeof iconPaths;
336
337
  /** 可用线框图标名称集合。 */
337
- declare const ICON_NAMES: readonly ("search" | "bold" | "link" | "copy" | "move" | "zoom-in" | "zoom-out" | "table" | "italic" | "underline" | "menu" | "send" | "close" | "pause" | "play" | "message" | "code" | "video" | "filter" | "image" | "stop" | "warning" | "notepad-file" | "notepad-folder" | "notepad-virtual-folder" | "step-backward" | "step-forward" | "fast-backward" | "fast-forward" | "corner-up-left" | "corner-up-right" | "swap-horizontal" | "swap-vertical" | "expand" | "shrink" | "fullscreen" | "fullscreen-exit" | "menu-fold" | "menu-unfold" | "login" | "logout" | "vertical-align-top" | "vertical-align-middle" | "vertical-align-bottom" | "square-plus" | "square-minus" | "square-check" | "square-close" | "tab-plus" | "folder-plus" | "pin" | "pin-off" | "help-circle" | "save" | "clipboard" | "clipboard-check" | "file-plus" | "file-check" | "file-warning" | "file-spreadsheet" | "align-left" | "align-center" | "align-right" | "align-justify" | "strikethrough" | "list-ordered" | "list-unordered" | "eraser" | "highlighter" | "columns" | "rows" | "bar-chart" | "line-chart" | "pie-chart" | "area-chart" | "activity" | "trending-up" | "trending-down" | "database" | "cloud" | "cloud-download" | "cloud-upload" | "server" | "desktop" | "laptop" | "mobile" | "tablet" | "printer" | "camera" | "microphone" | "volume-up" | "volume-off" | "speaker-wave" | "speaker-muted" | "wifi" | "power" | "key" | "shield" | "shield-check" | "bug" | "bulb" | "rocket" | "target" | "trophy" | "shopping-cart" | "shopping-bag" | "shop" | "wallet" | "bank" | "calculator" | "tag" | "tags" | "comments" | "share" | "paperclip" | "location" | "compass" | "car" | "truck" | "gift" | "coffee" | "experiment" | "tool" | "appstore" | "puzzle" | "partition" | "branches" | "scan" | "qr-code" | "barcode" | "user-plus" | "user-minus" | "smile" | "meh" | "frown" | "game-cultivator" | "game-swordsman" | "game-spirit-wolf" | "game-gem" | "game-ingot" | "game-sword" | "game-robe" | "game-pants" | "game-pendant" | "game-necklace" | "game-pill" | "game-potion" | "game-elixir-jar" | "game-flame" | "game-soul-elixir" | "game-herb" | "game-meditate" | "game-backpack" | "game-qi" | "plus" | "minus" | "check" | "info" | "question" | "circle-check" | "circle-close" | "circle-plus" | "circle-minus" | "chevron-left" | "chevron-right" | "chevron-up" | "chevron-down" | "double-left" | "double-right" | "arrow-left" | "arrow-right" | "arrow-up" | "arrow-down" | "more-horizontal" | "more-vertical" | "home" | "user" | "users" | "settings" | "edit" | "trash" | "scissors" | "undo" | "redo" | "flip-horizontal" | "flip-vertical" | "rotate-left" | "rotate-right" | "download" | "upload" | "refresh" | "loader" | "calendar" | "clock" | "mail" | "phone" | "external-link" | "eye" | "eye-off" | "lock" | "unlock" | "bell" | "star" | "heart" | "file" | "folder" | "sort-ascending" | "sort-descending" | "book" | "component" | "token" | "sun" | "moon" | "github")[];
338
+ declare const ICON_NAMES: readonly ("search" | "bold" | "link" | "copy" | "move" | "zoom-in" | "zoom-out" | "table" | "italic" | "underline" | "menu" | "send" | "close" | "pause" | "play" | "message" | "code" | "video" | "filter" | "image" | "stop" | "warning" | "notepad-file" | "notepad-folder" | "notepad-virtual-folder" | "step-backward" | "step-forward" | "fast-backward" | "fast-forward" | "corner-up-left" | "corner-up-right" | "swap-horizontal" | "swap-vertical" | "expand" | "shrink" | "fullscreen" | "fullscreen-exit" | "menu-fold" | "menu-unfold" | "login" | "logout" | "vertical-align-top" | "vertical-align-middle" | "vertical-align-bottom" | "square-plus" | "square-minus" | "square-check" | "square-close" | "tab-plus" | "folder-plus" | "pin" | "pin-off" | "help-circle" | "save" | "clipboard" | "clipboard-check" | "file-plus" | "file-check" | "file-warning" | "file-spreadsheet" | "align-left" | "align-center" | "align-right" | "align-justify" | "strikethrough" | "list-ordered" | "list-unordered" | "eraser" | "highlighter" | "columns" | "rows" | "bar-chart" | "line-chart" | "pie-chart" | "area-chart" | "activity" | "trending-up" | "trending-down" | "database" | "cloud" | "cloud-download" | "cloud-upload" | "server" | "desktop" | "laptop" | "mobile" | "tablet" | "printer" | "camera" | "microphone" | "volume-up" | "volume-off" | "speaker-wave" | "speaker-muted" | "wifi" | "power" | "key" | "shield" | "shield-check" | "bug" | "bulb" | "rocket" | "target" | "trophy" | "shopping-cart" | "shopping-bag" | "shop" | "wallet" | "bank" | "calculator" | "tag" | "tags" | "comments" | "share" | "paperclip" | "location" | "compass" | "car" | "truck" | "gift" | "coffee" | "experiment" | "tool" | "appstore" | "puzzle" | "partition" | "branches" | "scan" | "qr-code" | "barcode" | "user-plus" | "user-minus" | "smile" | "meh" | "frown" | "game-cultivator" | "game-swordsman" | "game-spirit-wolf" | "game-gem" | "game-ingot" | "game-sword" | "game-robe" | "game-pants" | "game-pendant" | "game-necklace" | "game-pill" | "game-potion" | "game-elixir-jar" | "game-flame" | "game-soul-elixir" | "game-herb" | "game-meditate" | "game-backpack" | "game-qi" | "plus" | "tilde" | "minus" | "check" | "info" | "question" | "circle-check" | "circle-close" | "circle-plus" | "circle-minus" | "chevron-left" | "chevron-right" | "chevron-up" | "chevron-down" | "double-left" | "double-right" | "arrow-left" | "arrow-right" | "arrow-up" | "arrow-down" | "more-horizontal" | "more-vertical" | "home" | "user" | "users" | "settings" | "edit" | "trash" | "scissors" | "undo" | "redo" | "flip-horizontal" | "flip-vertical" | "rotate-left" | "rotate-right" | "download" | "upload" | "refresh" | "loader" | "calendar" | "clock" | "mail" | "phone" | "external-link" | "eye" | "eye-off" | "lock" | "unlock" | "bell" | "star" | "heart" | "file" | "folder" | "sort-ascending" | "sort-descending" | "book" | "component" | "token" | "sun" | "moon" | "github")[];
338
339
  declare const filledIconPaths: {
339
340
  info: react.JSX.Element;
340
341
  question: react.JSX.Element;
@@ -259,6 +259,7 @@ declare const iconPaths: {
259
259
  "game-qi": react.JSX.Element;
260
260
  search: react.JSX.Element;
261
261
  plus: react.JSX.Element;
262
+ tilde: react.JSX.Element;
262
263
  minus: react.JSX.Element;
263
264
  close: react.JSX.Element;
264
265
  check: react.JSX.Element;
@@ -334,7 +335,7 @@ declare const iconPaths: {
334
335
  /** 可用的线框图标名称。 */
335
336
  type IconName = keyof typeof iconPaths;
336
337
  /** 可用线框图标名称集合。 */
337
- declare const ICON_NAMES: readonly ("search" | "bold" | "link" | "copy" | "move" | "zoom-in" | "zoom-out" | "table" | "italic" | "underline" | "menu" | "send" | "close" | "pause" | "play" | "message" | "code" | "video" | "filter" | "image" | "stop" | "warning" | "notepad-file" | "notepad-folder" | "notepad-virtual-folder" | "step-backward" | "step-forward" | "fast-backward" | "fast-forward" | "corner-up-left" | "corner-up-right" | "swap-horizontal" | "swap-vertical" | "expand" | "shrink" | "fullscreen" | "fullscreen-exit" | "menu-fold" | "menu-unfold" | "login" | "logout" | "vertical-align-top" | "vertical-align-middle" | "vertical-align-bottom" | "square-plus" | "square-minus" | "square-check" | "square-close" | "tab-plus" | "folder-plus" | "pin" | "pin-off" | "help-circle" | "save" | "clipboard" | "clipboard-check" | "file-plus" | "file-check" | "file-warning" | "file-spreadsheet" | "align-left" | "align-center" | "align-right" | "align-justify" | "strikethrough" | "list-ordered" | "list-unordered" | "eraser" | "highlighter" | "columns" | "rows" | "bar-chart" | "line-chart" | "pie-chart" | "area-chart" | "activity" | "trending-up" | "trending-down" | "database" | "cloud" | "cloud-download" | "cloud-upload" | "server" | "desktop" | "laptop" | "mobile" | "tablet" | "printer" | "camera" | "microphone" | "volume-up" | "volume-off" | "speaker-wave" | "speaker-muted" | "wifi" | "power" | "key" | "shield" | "shield-check" | "bug" | "bulb" | "rocket" | "target" | "trophy" | "shopping-cart" | "shopping-bag" | "shop" | "wallet" | "bank" | "calculator" | "tag" | "tags" | "comments" | "share" | "paperclip" | "location" | "compass" | "car" | "truck" | "gift" | "coffee" | "experiment" | "tool" | "appstore" | "puzzle" | "partition" | "branches" | "scan" | "qr-code" | "barcode" | "user-plus" | "user-minus" | "smile" | "meh" | "frown" | "game-cultivator" | "game-swordsman" | "game-spirit-wolf" | "game-gem" | "game-ingot" | "game-sword" | "game-robe" | "game-pants" | "game-pendant" | "game-necklace" | "game-pill" | "game-potion" | "game-elixir-jar" | "game-flame" | "game-soul-elixir" | "game-herb" | "game-meditate" | "game-backpack" | "game-qi" | "plus" | "minus" | "check" | "info" | "question" | "circle-check" | "circle-close" | "circle-plus" | "circle-minus" | "chevron-left" | "chevron-right" | "chevron-up" | "chevron-down" | "double-left" | "double-right" | "arrow-left" | "arrow-right" | "arrow-up" | "arrow-down" | "more-horizontal" | "more-vertical" | "home" | "user" | "users" | "settings" | "edit" | "trash" | "scissors" | "undo" | "redo" | "flip-horizontal" | "flip-vertical" | "rotate-left" | "rotate-right" | "download" | "upload" | "refresh" | "loader" | "calendar" | "clock" | "mail" | "phone" | "external-link" | "eye" | "eye-off" | "lock" | "unlock" | "bell" | "star" | "heart" | "file" | "folder" | "sort-ascending" | "sort-descending" | "book" | "component" | "token" | "sun" | "moon" | "github")[];
338
+ declare const ICON_NAMES: readonly ("search" | "bold" | "link" | "copy" | "move" | "zoom-in" | "zoom-out" | "table" | "italic" | "underline" | "menu" | "send" | "close" | "pause" | "play" | "message" | "code" | "video" | "filter" | "image" | "stop" | "warning" | "notepad-file" | "notepad-folder" | "notepad-virtual-folder" | "step-backward" | "step-forward" | "fast-backward" | "fast-forward" | "corner-up-left" | "corner-up-right" | "swap-horizontal" | "swap-vertical" | "expand" | "shrink" | "fullscreen" | "fullscreen-exit" | "menu-fold" | "menu-unfold" | "login" | "logout" | "vertical-align-top" | "vertical-align-middle" | "vertical-align-bottom" | "square-plus" | "square-minus" | "square-check" | "square-close" | "tab-plus" | "folder-plus" | "pin" | "pin-off" | "help-circle" | "save" | "clipboard" | "clipboard-check" | "file-plus" | "file-check" | "file-warning" | "file-spreadsheet" | "align-left" | "align-center" | "align-right" | "align-justify" | "strikethrough" | "list-ordered" | "list-unordered" | "eraser" | "highlighter" | "columns" | "rows" | "bar-chart" | "line-chart" | "pie-chart" | "area-chart" | "activity" | "trending-up" | "trending-down" | "database" | "cloud" | "cloud-download" | "cloud-upload" | "server" | "desktop" | "laptop" | "mobile" | "tablet" | "printer" | "camera" | "microphone" | "volume-up" | "volume-off" | "speaker-wave" | "speaker-muted" | "wifi" | "power" | "key" | "shield" | "shield-check" | "bug" | "bulb" | "rocket" | "target" | "trophy" | "shopping-cart" | "shopping-bag" | "shop" | "wallet" | "bank" | "calculator" | "tag" | "tags" | "comments" | "share" | "paperclip" | "location" | "compass" | "car" | "truck" | "gift" | "coffee" | "experiment" | "tool" | "appstore" | "puzzle" | "partition" | "branches" | "scan" | "qr-code" | "barcode" | "user-plus" | "user-minus" | "smile" | "meh" | "frown" | "game-cultivator" | "game-swordsman" | "game-spirit-wolf" | "game-gem" | "game-ingot" | "game-sword" | "game-robe" | "game-pants" | "game-pendant" | "game-necklace" | "game-pill" | "game-potion" | "game-elixir-jar" | "game-flame" | "game-soul-elixir" | "game-herb" | "game-meditate" | "game-backpack" | "game-qi" | "plus" | "tilde" | "minus" | "check" | "info" | "question" | "circle-check" | "circle-close" | "circle-plus" | "circle-minus" | "chevron-left" | "chevron-right" | "chevron-up" | "chevron-down" | "double-left" | "double-right" | "arrow-left" | "arrow-right" | "arrow-up" | "arrow-down" | "more-horizontal" | "more-vertical" | "home" | "user" | "users" | "settings" | "edit" | "trash" | "scissors" | "undo" | "redo" | "flip-horizontal" | "flip-vertical" | "rotate-left" | "rotate-right" | "download" | "upload" | "refresh" | "loader" | "calendar" | "clock" | "mail" | "phone" | "external-link" | "eye" | "eye-off" | "lock" | "unlock" | "bell" | "star" | "heart" | "file" | "folder" | "sort-ascending" | "sort-descending" | "book" | "component" | "token" | "sun" | "moon" | "github")[];
338
339
  declare const filledIconPaths: {
339
340
  info: react.JSX.Element;
340
341
  question: react.JSX.Element;
package/dist/core.cjs CHANGED
@@ -874,6 +874,8 @@ var coreIconPaths = {
874
874
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m15.8 15.8 5.2 5.2" })
875
875
  ] }),
876
876
  plus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 4v16M4 12h16" }),
877
+ // 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
878
+ tilde: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
877
879
  minus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 12h16" }),
878
880
  close: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m5 5 14 14M19 5 5 19" }),
879
881
  check: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m4 12.5 5.2 5L20 6.5" }),
package/dist/core.css CHANGED
@@ -5034,13 +5034,13 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5034
5034
  min-width: 0;
5035
5035
  max-width: 100%;
5036
5036
  }
5037
- .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)) {
5037
+ .sia-query-form__field:has(.sia-number-range, .sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical) > :nth-child(2)) {
5038
5038
  --sia-query-item-width: calc(var(--sia-query-field-width, 220px) + var(--sia-query-field-width, 220px) + var(--sia-query-field-gap, 8px));
5039
5039
  }
5040
5040
  .sia-query-form .sia-query-form__fields > .sia-query-form__field:has(.sia-select-date-range) {
5041
5041
  --sia-query-item-width: calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 8px) * 2);
5042
5042
  }
5043
- .sia-query-form__field :is(.sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical)) {
5043
+ .sia-query-form__field :is(.sia-number-range, .sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical)) {
5044
5044
  width: 100%;
5045
5045
  }
5046
5046
  .sia-query-form__field[hidden] {
@@ -5231,6 +5231,71 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5231
5231
  color: var(--sia-color-primary);
5232
5232
  background: var(--sia-color-primary-light);
5233
5233
  }
5234
+ .sia-number-range {
5235
+ display: inline-flex;
5236
+ align-items: center;
5237
+ box-sizing: border-box;
5238
+ width: 100%;
5239
+ min-width: 0;
5240
+ height: var(--sia-control-height);
5241
+ border: 1px solid var(--sia-color-border);
5242
+ border-radius: var(--sia-radius);
5243
+ background: var(--sia-color-surface);
5244
+ color: var(--sia-color-text);
5245
+ }
5246
+ .sia-number-range--small {
5247
+ height: var(--sia-control-height-small);
5248
+ }
5249
+ .sia-number-range--large {
5250
+ height: var(--sia-control-height-large);
5251
+ }
5252
+ .sia-number-range:hover:not(.is-disabled) {
5253
+ border-color: var(--sia-color-primary-hover);
5254
+ }
5255
+ .sia-number-range:focus-within:not(.is-disabled) {
5256
+ border-color: var(--sia-color-primary);
5257
+ }
5258
+ .sia-number-range--warning {
5259
+ border-color: var(--sia-color-warning);
5260
+ }
5261
+ .sia-number-range--error,
5262
+ .sia-number-range--error:hover:not(.is-disabled),
5263
+ .sia-number-range--error:focus-within:not(.is-disabled) {
5264
+ border-color: var(--sia-color-error);
5265
+ }
5266
+ .sia-number-range.is-disabled {
5267
+ background: var(--sia-color-control-hover);
5268
+ color: var(--sia-color-text-secondary);
5269
+ cursor: not-allowed;
5270
+ }
5271
+ .sia-number-range > .sia-input-number {
5272
+ flex: 1 1 0;
5273
+ width: 0;
5274
+ min-width: 0;
5275
+ height: 100%;
5276
+ border: 0;
5277
+ background: transparent;
5278
+ box-shadow: none;
5279
+ }
5280
+ .sia-number-range__separator {
5281
+ flex: 0 0 auto;
5282
+ color: var(--sia-color-text-secondary);
5283
+ }
5284
+ .sia-number-range__clear {
5285
+ display: inline-flex;
5286
+ align-items: center;
5287
+ justify-content: center;
5288
+ flex: 0 0 24px;
5289
+ align-self: stretch;
5290
+ padding: 0;
5291
+ border: 0;
5292
+ background: transparent;
5293
+ color: var(--sia-color-text-secondary);
5294
+ cursor: pointer;
5295
+ }
5296
+ .sia-number-range__clear:hover {
5297
+ color: var(--sia-color-text);
5298
+ }
5234
5299
 
5235
5300
  /* src/components-extra.css */
5236
5301
  .sia-flex {
package/dist/core.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, h as Card, i as CardAccent, j as CardProps, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, K as Icon, L as IconName, M as IconProps, N as IconVariant, U as Input, V as InputProps, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, aq as TabItem, ar as Tabs, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, T as TagStatus, aA as TagVariant, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, 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, b1 as UploadProps, b5 as UploadRequestOptions, b9 as message } from './core-WhigQGy_.cjs';
1
+ export { d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, h as Card, i as CardAccent, j as CardProps, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, K as Icon, L as IconName, M as IconProps, N as IconVariant, U as Input, V as InputProps, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, aq as TabItem, ar as Tabs, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, T as TagStatus, aA as TagVariant, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, 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, b1 as UploadProps, b5 as UploadRequestOptions, b9 as message } from './core-CpZqKpbl.cjs';
2
2
  export { f as Button, B as ButtonProps, e as ButtonSize, g as ButtonVariant, h as Modal, d as ModalActionResult, M as ModalOpenConfig, i as ModalProps, j as ModalType, a as OverlayApiHandle, k as Select, S as SelectOption, c as SelectProps, m as SelectValue } from './Select-DBw1N_mj.cjs';
3
3
  import 'react';
4
4
  import './shared-Bx4B28Wh.cjs';
package/dist/core.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, h as Card, i as CardAccent, j as CardProps, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, K as Icon, L as IconName, M as IconProps, N as IconVariant, U as Input, V as InputProps, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, aq as TabItem, ar as Tabs, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, T as TagStatus, aA as TagVariant, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, 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, b1 as UploadProps, b5 as UploadRequestOptions, b9 as message } from './core-Bv6nXYgH.js';
1
+ export { d as Breadcrumb, e as BreadcrumbItem, f as BreadcrumbProps, h as Card, i as CardAccent, j as CardProps, n as Collapse, o as CollapseItem, p as CollapseKey, q as CollapseProps, x as FilledIconName, y as FloatButton, z as FloatButtonBackTopProps, A as FloatButtonGroupProps, E as FloatButtonProps, G as FloatButtonShape, K as Icon, L as IconName, M as IconProps, N as IconVariant, U as Input, V as InputProps, a0 as MessageConfig, a1 as MessageHandle, a2 as MessageKey, a3 as MessageType, ab as Progress, ac as ProgressProps, ad as ProgressStatus, ag as Segmented, ah as SegmentedOption, ai as SegmentedProps, aj as SegmentedValue, aq as TabItem, ar as Tabs, at as TabsOrientation, au as TabsPosition, av as TabsProps, aw as TabsType, ax as Tag, ay as TagProps, az as TagSize, T as TagStatus, aA as TagVariant, aE as Toolbar, aF as ToolbarItem, aG as ToolbarProps, 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, b1 as UploadProps, b5 as UploadRequestOptions, b9 as message } from './core-BlcyqiYZ.js';
2
2
  export { f as Button, B as ButtonProps, e as ButtonSize, g as ButtonVariant, h as Modal, d as ModalActionResult, M as ModalOpenConfig, i as ModalProps, j as ModalType, a as OverlayApiHandle, k as Select, S as SelectOption, c as SelectProps, m as SelectValue } from './Select-DxrU73F5.js';
3
3
  import 'react';
4
4
  import './shared-Bx4B28Wh.js';
package/dist/core.js CHANGED
@@ -10,17 +10,17 @@ import {
10
10
  Typography,
11
11
  Upload,
12
12
  message
13
- } from "./chunk-5IOLMU5Q.js";
13
+ } from "./chunk-SN3I2TKG.js";
14
14
  import "./chunk-SMCYEPBL.js";
15
15
  import {
16
16
  Modal,
17
17
  Select
18
- } from "./chunk-L3OY6MWS.js";
18
+ } from "./chunk-KN6FDE2C.js";
19
19
  import {
20
20
  Icon,
21
21
  Input,
22
22
  Segmented
23
- } from "./chunk-MKGTIW56.js";
23
+ } from "./chunk-YMOOL62S.js";
24
24
  import {
25
25
  Button
26
26
  } from "./chunk-IKAMZNCK.js";
package/dist/index.cjs CHANGED
@@ -96,6 +96,7 @@ __export(index_exports, {
96
96
  Menu: () => Menu,
97
97
  MixedChart: () => MixedChart,
98
98
  Modal: () => Modal2,
99
+ NumberRange: () => NumberRange,
99
100
  Pagination: () => Pagination,
100
101
  PieChart: () => PieChart,
101
102
  Popconfirm: () => Popconfirm,
@@ -1022,6 +1023,8 @@ var coreIconPaths = {
1022
1023
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m15.8 15.8 5.2 5.2" })
1023
1024
  ] }),
1024
1025
  plus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 4v16M4 12h16" }),
1026
+ // 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
1027
+ tilde: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
1025
1028
  minus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 12h16" }),
1026
1029
  close: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m5 5 14 14M19 5 5 19" }),
1027
1030
  check: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m4 12.5 5.2 5L20 6.5" }),
@@ -23844,7 +23847,7 @@ function QueryForm({
23844
23847
  ]
23845
23848
  }
23846
23849
  ),
23847
- 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: [
23850
+ savedQueries.length ? /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "sia-query-form__saved", "aria-label": "\u5DF2\u4FDD\u5B58\u5FEB\u6377\u67E5\u8BE2", children: [
23848
23851
  savedQueries.map((query, index) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
23849
23852
  Tag,
23850
23853
  {
@@ -23912,6 +23915,77 @@ function QueryForm({
23912
23915
  )
23913
23916
  ] });
23914
23917
  }
23918
+
23919
+ // src/components/NumberRange.tsx
23920
+ var import_react95 = require("react");
23921
+ var import_jsx_runtime92 = require("react/jsx-runtime");
23922
+ var NumberRange = (0, import_react95.forwardRef)(function NumberRange2({
23923
+ value,
23924
+ defaultValue = [null, null],
23925
+ onChange,
23926
+ placeholder = ["\u6700\u5C0F\u503C", "\u6700\u5927\u503C"],
23927
+ inputLabels,
23928
+ min,
23929
+ max,
23930
+ step = 1,
23931
+ precision,
23932
+ size: sizeProp,
23933
+ status = "default",
23934
+ disabled = false,
23935
+ readOnly = false,
23936
+ allowClear = true,
23937
+ placeholderMode,
23938
+ className = "",
23939
+ id,
23940
+ ...props
23941
+ }, ref) {
23942
+ const size = useControlSize(sizeProp);
23943
+ const [currentValue, setValue2] = useControllableState({ value, defaultValue, onChange: (next) => onChange?.(next ?? [null, null]) });
23944
+ const range = Array.isArray(currentValue) ? [currentValue[0] ?? null, currentValue[1] ?? null] : [null, null];
23945
+ function change(index, next) {
23946
+ if (disabled || readOnly || range[index] === next) return;
23947
+ setValue2(index === 0 ? [next, range[1]] : [range[0], next]);
23948
+ }
23949
+ const inputProps = { min, max, step, precision, size, status, disabled, readOnly, placeholderMode, controls: false };
23950
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
23951
+ "span",
23952
+ {
23953
+ ...props,
23954
+ ref,
23955
+ role: props.role ?? "group",
23956
+ "aria-disabled": disabled || void 0,
23957
+ className: `sia-number-range sia-number-range--${size} sia-number-range--${status}${disabled ? " is-disabled" : ""} ${className}`.trim(),
23958
+ children: [
23959
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
23960
+ InputNumber,
23961
+ {
23962
+ ...inputProps,
23963
+ id,
23964
+ "aria-label": inputLabels?.[0] ?? placeholder[0],
23965
+ "aria-describedby": props["aria-describedby"],
23966
+ value: range[0],
23967
+ placeholder: placeholder[0],
23968
+ onChange: (next) => change(0, next)
23969
+ }
23970
+ ),
23971
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Icon, { className: "sia-number-range__separator", name: "tilde", size: 16, "aria-hidden": "true" }),
23972
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
23973
+ InputNumber,
23974
+ {
23975
+ ...inputProps,
23976
+ id: id ? `${id}-end` : void 0,
23977
+ "aria-label": inputLabels?.[1] ?? placeholder[1],
23978
+ "aria-describedby": props["aria-describedby"],
23979
+ value: range[1],
23980
+ placeholder: placeholder[1],
23981
+ onChange: (next) => change(1, next)
23982
+ }
23983
+ ),
23984
+ allowClear && !disabled && !readOnly && range.some((item) => item !== null) ? /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("button", { type: "button", className: "sia-number-range__clear", "aria-label": "\u6E05\u9664\u6570\u5B57\u533A\u95F4", onClick: () => setValue2([null, null]), children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Icon, { name: "circle-close", variant: "filled", size: 15 }) }) : null
23985
+ ]
23986
+ }
23987
+ );
23988
+ });
23915
23989
  // Annotate the CommonJS export names for ESM import in node:
23916
23990
  0 && (module.exports = {
23917
23991
  Alert,
@@ -23980,6 +24054,7 @@ function QueryForm({
23980
24054
  Menu,
23981
24055
  MixedChart,
23982
24056
  Modal,
24057
+ NumberRange,
23983
24058
  Pagination,
23984
24059
  PieChart,
23985
24060
  Popconfirm,
package/dist/index.css CHANGED
@@ -5034,13 +5034,13 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5034
5034
  min-width: 0;
5035
5035
  max-width: 100%;
5036
5036
  }
5037
- .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)) {
5037
+ .sia-query-form__field:has(.sia-number-range, .sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical) > :nth-child(2)) {
5038
5038
  --sia-query-item-width: calc(var(--sia-query-field-width, 220px) + var(--sia-query-field-width, 220px) + var(--sia-query-field-gap, 8px));
5039
5039
  }
5040
5040
  .sia-query-form .sia-query-form__fields > .sia-query-form__field:has(.sia-select-date-range) {
5041
5041
  --sia-query-item-width: calc(var(--sia-query-field-width, 220px) * 3 + var(--sia-query-field-gap, 8px) * 2);
5042
5042
  }
5043
- .sia-query-form__field :is(.sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical)) {
5043
+ .sia-query-form__field :is(.sia-number-range, .sia-picker-range-control, .sia-time-range, .sia-select-date-range, .sia-space-compact:not(.sia-space-compact--vertical)) {
5044
5044
  width: 100%;
5045
5045
  }
5046
5046
  .sia-query-form__field[hidden] {
@@ -5231,6 +5231,71 @@ fieldset:disabled .sia-input-number__floating-placeholder {
5231
5231
  color: var(--sia-color-primary);
5232
5232
  background: var(--sia-color-primary-light);
5233
5233
  }
5234
+ .sia-number-range {
5235
+ display: inline-flex;
5236
+ align-items: center;
5237
+ box-sizing: border-box;
5238
+ width: 100%;
5239
+ min-width: 0;
5240
+ height: var(--sia-control-height);
5241
+ border: 1px solid var(--sia-color-border);
5242
+ border-radius: var(--sia-radius);
5243
+ background: var(--sia-color-surface);
5244
+ color: var(--sia-color-text);
5245
+ }
5246
+ .sia-number-range--small {
5247
+ height: var(--sia-control-height-small);
5248
+ }
5249
+ .sia-number-range--large {
5250
+ height: var(--sia-control-height-large);
5251
+ }
5252
+ .sia-number-range:hover:not(.is-disabled) {
5253
+ border-color: var(--sia-color-primary-hover);
5254
+ }
5255
+ .sia-number-range:focus-within:not(.is-disabled) {
5256
+ border-color: var(--sia-color-primary);
5257
+ }
5258
+ .sia-number-range--warning {
5259
+ border-color: var(--sia-color-warning);
5260
+ }
5261
+ .sia-number-range--error,
5262
+ .sia-number-range--error:hover:not(.is-disabled),
5263
+ .sia-number-range--error:focus-within:not(.is-disabled) {
5264
+ border-color: var(--sia-color-error);
5265
+ }
5266
+ .sia-number-range.is-disabled {
5267
+ background: var(--sia-color-control-hover);
5268
+ color: var(--sia-color-text-secondary);
5269
+ cursor: not-allowed;
5270
+ }
5271
+ .sia-number-range > .sia-input-number {
5272
+ flex: 1 1 0;
5273
+ width: 0;
5274
+ min-width: 0;
5275
+ height: 100%;
5276
+ border: 0;
5277
+ background: transparent;
5278
+ box-shadow: none;
5279
+ }
5280
+ .sia-number-range__separator {
5281
+ flex: 0 0 auto;
5282
+ color: var(--sia-color-text-secondary);
5283
+ }
5284
+ .sia-number-range__clear {
5285
+ display: inline-flex;
5286
+ align-items: center;
5287
+ justify-content: center;
5288
+ flex: 0 0 24px;
5289
+ align-self: stretch;
5290
+ padding: 0;
5291
+ border: 0;
5292
+ background: transparent;
5293
+ color: var(--sia-color-text-secondary);
5294
+ cursor: pointer;
5295
+ }
5296
+ .sia-number-range__clear:hover {
5297
+ color: var(--sia-color-text);
5298
+ }
5234
5299
 
5235
5300
  /* src/components-extra.css */
5236
5301
  .sia-flex {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { T as TagStatus, B as BadgeProps } from './core-WhigQGy_.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-WhigQGy_.cjs';
1
+ import { T as TagStatus, B as BadgeProps } from './core-CpZqKpbl.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-CpZqKpbl.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';
@@ -3126,7 +3126,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3126
3126
  * @defaultValue true
3127
3127
  */
3128
3128
  collapsible?: boolean;
3129
- /** 受控收起状态,需在 onCollapsedChange 中更新;全部字段能单行显示时不执行收起。收起时保留字段挂载和值,只隐藏放不下的字段和底部快捷标签。 */
3129
+ /** 受控收起状态,需在 onCollapsedChange 中更新;全部字段能单行显示时不执行收起。收起时保留字段挂载和值,只隐藏放不下的字段,底部快捷标签始终保留。 */
3130
3130
  collapsed?: boolean;
3131
3131
  /**
3132
3132
  * 非受控模式的初始收起状态;默认展开全部查询条件,即使条件超过一行也不自动收起。显式传 true 时才初始收起。
@@ -3151,7 +3151,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3151
3151
  */
3152
3152
  quickQuerySize?: ButtonSize;
3153
3153
  /**
3154
- * 底部已保存快捷查询标签。点击回填该项条件并查询;收起时隐藏。业务方负责加载数据,并在保存或删除成功后更新此数组。
3154
+ * 底部已保存快捷查询标签。点击回填该项条件并查询;收起时仍可使用。业务方负责加载数据,并在保存或删除成功后更新此数组。
3155
3155
  * @defaultValue []
3156
3156
  */
3157
3157
  savedQueries?: readonly QueryFormShortcut<T>[];
@@ -3197,4 +3197,42 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3197
3197
  /** 可复用的业务查询表单;快捷查询的存储和结果数据由业务方管理。 */
3198
3198
  declare function QueryForm<T extends FormValues = FormValues>({ fields, children, form: providedForm, onSearch, loading, fieldWidth, collapsible, collapsed: controlledCollapsed, defaultCollapsed, collapsedCount, onCollapsedChange, quickQueries, quickQuerySize, savedQueries, shortcutsLoading, onSaveQuery, onRemoveQuery, onError, searchText, resetText, saveText, resetSearch, actionsExtra, disabled, className, placeholderMode, onValuesChange, onFinishFailed, ...formProps }: QueryFormProps<T>): react.JSX.Element;
3199
3199
 
3200
- export { Alert, type AlertProps, type AlertStatus, type AnyTablePlugin, BadgeProps, ButtonProps, ButtonSize, Cascader, type CascaderFieldNames, type CascaderOption, type CascaderProps, type CascaderValue, Checkbox, type CheckboxGroupProps, type CheckboxOption, type CheckboxProps, type CheckboxValue, Col, type ColProps, type ColSize, ColorPicker, type ColorPickerMode, type ColorPickerPreset, type ColorPickerProps, ControlSize, ControlStatus, DEFAULT_PAGE_SIZE_OPTIONS, Divider, type DividerProps, Drawer, type DrawerOpenConfig, type DrawerPlacement, type DrawerProps, type DrawerPush, type DrawerPushConfig, Editor, type EditorCommand, type EditorCompletionContext, type EditorCompletionItem, type EditorCompletionItemKind, type EditorCompletionProvider, type EditorContextMenuItem, type EditorHandle, type EditorKeyDownEvent, type EditorLanguage, type EditorMarker, type EditorProps, type EditorRange, type EditorSelectionChange, type EditorTheme, type FlatTreeNode, type FlatTreeOptions, Flex, type FlexProps, FloatingScrollbarProvider, type FloatingScrollbarProviderProps, Form, type FormErrorField, type FormInstance, type FormItemProps, type FormListField, type FormListOperation, type FormListProps, type FormProps, type FormRule, type FormValues, type GridBreakpoint, InputNumber, type InputNumberProps, InputPlaceholderMode, InputSelect, type InputSelectProps, type LayoutGap, Markdown, type MarkdownProps, ModalActionResult, ModalOpenConfig, type NamePath, OverlayApiHandle, Pagination, type PaginationProps, QueryForm, type QueryFormField, type QueryFormProps, type QueryFormSearchInfo, type QueryFormShortcut, Radio, type RadioGroupProps, type RadioOption, type RadioProps, type RadioValue, Row, type RowProps, SIA_THEME, SelectChangeValue, type SelectModalConfig, SelectOption, SelectProps, type SelectionOption, SelectionPanel, type SelectionPanelProps, type SelectionValue, type SiaThemeMode, Slider, type SliderMark, type SliderProps, type SliderValue, Space, type SpaceCompactProps, type SpaceProps, Splitter, type SplitterPanelProps, type SplitterProps, Switch, type SwitchProps, type SwitchVariant, Table, type TableAlign, type TableCanvasCell, type TableCellAddress, type TableCellRange, type TableCellRenderInfo, type TableCellSelectionApi, type TableCellSelectionPluginOptions, type TableColumn, type TableColumnSettingApi, type TableColumnSettingItem, type TableColumnSettingPluginOptions, type TableColumnTransformPluginOptions, type TableEditableApi, type TableEditableCellConfig, type TableEditableCellType, type TableEditablePluginOptions, type TableExportApi, type TableExportPluginOptions, type TableExportScope, type TableFilterApi, type TableFilterPluginOptions, type TableFilterValues, type TableFixed, type TableHighlightPluginOptions, type TableHighlightValue, type TableIndexPluginOptions, type TableKey, type TableMergeStickyConfig, type TablePageParams, type TablePaginationApi, type TablePaginationPluginOptions, type TablePlugin, type TablePluginCellProps, type TablePluginContext, type TablePluginEvent, type TableProps, type TableRef, type TableResizeApi, type TableResizePluginOptions, type TableRow, type TableRowSpanPluginOptions, type TableSelectedCell, type TableSelectionApi, type TableSelectionMode, type TableSelectionPluginOptions, type TableSettingsAdapter, type TableSettingsSnapshot, type TableSize, type TableSortApi, type TableSortInfo, type TableSortPluginOptions, type TableSummaryPluginOptions, type TableSummaryRow, type TableToolbarItem, type TableToolbarPluginOptions, type TableTreeApi, type TableTreePluginOptions, TagStatus, TextArea, type TextAreaProps, ThemeSwitch, type ThemeSwitchProps, TimePicker, type TimePickerProps, type TimeRangePickerProps, ToolPanel, type ToolPanelItem, type ToolPanelPlacement, type ToolPanelProps, TreeSelect, type TreeSelectNode, type TreeSelectProps, type TreeSelectValue, Treemap, type TreemapNode, type TreemapNodeClickInfo, type TreemapNodeKind, type TreemapProps, type WindowAction, type WindowActionHandler, type WindowControlAction, type WindowControlLabels, WindowControls, type WindowControlsProps, WindowFrame, type WindowFrameProps, WindowTitleBar, type WindowTitleBarActionsAlign, type WindowTitleBarProps, applySiaTheme, buildFlatTree, createCellSelectionPlugin, createColumnSettingPlugin, createColumnTransformPlugin, createEditablePlugin, createExportPlugin, createFilterPlugin, createHighlightPlugin, createIndexPlugin, createLocalStorageTableSettingsAdapter, createPaginationPlugin, createResizePlugin, createRowSpanPlugin, createSelectionPlugin, createSortPlugin, createSummaryPlugin, createToolbarPlugin, createTreePlugin, openSelectModal, useForm };
3200
+ /** 数字区间,依次为下限和上限;null 表示该端未填写,0 是有效数值。 */
3201
+ type NumberRangeValue = [number | null, number | null];
3202
+ /** 数字区间输入属性;两端独立录入,不自动交换上下限,大小关系由业务校验。 */
3203
+ interface NumberRangeProps extends Omit<HTMLAttributes<HTMLSpanElement>, "onChange" | "defaultValue"> {
3204
+ /** 当前区间(受控),需在 onChange 中更新;null 清空两端。 */
3205
+ value?: NumberRangeValue | null;
3206
+ /** 非受控初始区间。@defaultValue [null, null] */
3207
+ defaultValue?: NumberRangeValue;
3208
+ /** 一端失焦、按 Enter 或方向键提交时返回完整区间;清空返回 [null, null]。 */
3209
+ onChange?: (value: NumberRangeValue) => void;
3210
+ /** 两端占位文案。@defaultValue ["最小值", "最大值"] */
3211
+ placeholder?: [string, string];
3212
+ /** 两端可访问名称;未提供时使用各自占位文案。 */
3213
+ inputLabels?: [string, string];
3214
+ /** 两端允许的最小数值,提交时按 InputNumber 规则截断。 */
3215
+ min?: number;
3216
+ /** 两端允许的最大数值,提交时按 InputNumber 规则截断。 */
3217
+ max?: number;
3218
+ /** 键盘上下方向键步长。@defaultValue 1 */
3219
+ step?: number;
3220
+ /** 固定小数位数,沿用 InputNumber 的四舍五入规则。 */
3221
+ precision?: number;
3222
+ /** small / medium / large 高度为 22 / 30 / 38px,未指定时继承 Form。 */
3223
+ size?: ControlSize;
3224
+ /** 校验状态。@defaultValue "default" */
3225
+ status?: ControlStatus;
3226
+ /** 禁用两端输入及清空。@defaultValue false */
3227
+ disabled?: boolean;
3228
+ /** 只读显示,不能输入、步进或清空。@defaultValue false */
3229
+ readOnly?: boolean;
3230
+ /** 有数值时显示清空入口,禁用和只读时隐藏。@defaultValue true */
3231
+ allowClear?: boolean;
3232
+ /** 占位模式,未指定时继承 Form 或 QueryForm。 */
3233
+ placeholderMode?: InputPlaceholderMode;
3234
+ }
3235
+ /** 日期区间风格的双数字输入框,使用波浪线分隔;可直接绑定 Form.Item。 */
3236
+ declare const NumberRange: react.ForwardRefExoticComponent<NumberRangeProps & react.RefAttributes<HTMLSpanElement>>;
3237
+
3238
+ export { Alert, type AlertProps, type AlertStatus, type AnyTablePlugin, BadgeProps, ButtonProps, ButtonSize, Cascader, type CascaderFieldNames, type CascaderOption, type CascaderProps, type CascaderValue, Checkbox, type CheckboxGroupProps, type CheckboxOption, type CheckboxProps, type CheckboxValue, Col, type ColProps, type ColSize, ColorPicker, type ColorPickerMode, type ColorPickerPreset, type ColorPickerProps, ControlSize, ControlStatus, DEFAULT_PAGE_SIZE_OPTIONS, Divider, type DividerProps, Drawer, type DrawerOpenConfig, type DrawerPlacement, type DrawerProps, type DrawerPush, type DrawerPushConfig, Editor, type EditorCommand, type EditorCompletionContext, type EditorCompletionItem, type EditorCompletionItemKind, type EditorCompletionProvider, type EditorContextMenuItem, type EditorHandle, type EditorKeyDownEvent, type EditorLanguage, type EditorMarker, type EditorProps, type EditorRange, type EditorSelectionChange, type EditorTheme, type FlatTreeNode, type FlatTreeOptions, Flex, type FlexProps, FloatingScrollbarProvider, type FloatingScrollbarProviderProps, Form, type FormErrorField, type FormInstance, type FormItemProps, type FormListField, type FormListOperation, type FormListProps, type FormProps, type FormRule, type FormValues, type GridBreakpoint, InputNumber, type InputNumberProps, InputPlaceholderMode, InputSelect, type InputSelectProps, type LayoutGap, Markdown, type MarkdownProps, ModalActionResult, ModalOpenConfig, type NamePath, NumberRange, type NumberRangeProps, type NumberRangeValue, OverlayApiHandle, Pagination, type PaginationProps, QueryForm, type QueryFormField, type QueryFormProps, type QueryFormSearchInfo, type QueryFormShortcut, Radio, type RadioGroupProps, type RadioOption, type RadioProps, type RadioValue, Row, type RowProps, SIA_THEME, SelectChangeValue, type SelectModalConfig, SelectOption, SelectProps, type SelectionOption, SelectionPanel, type SelectionPanelProps, type SelectionValue, type SiaThemeMode, Slider, type SliderMark, type SliderProps, type SliderValue, Space, type SpaceCompactProps, type SpaceProps, Splitter, type SplitterPanelProps, type SplitterProps, Switch, type SwitchProps, type SwitchVariant, Table, type TableAlign, type TableCanvasCell, type TableCellAddress, type TableCellRange, type TableCellRenderInfo, type TableCellSelectionApi, type TableCellSelectionPluginOptions, type TableColumn, type TableColumnSettingApi, type TableColumnSettingItem, type TableColumnSettingPluginOptions, type TableColumnTransformPluginOptions, type TableEditableApi, type TableEditableCellConfig, type TableEditableCellType, type TableEditablePluginOptions, type TableExportApi, type TableExportPluginOptions, type TableExportScope, type TableFilterApi, type TableFilterPluginOptions, type TableFilterValues, type TableFixed, type TableHighlightPluginOptions, type TableHighlightValue, type TableIndexPluginOptions, type TableKey, type TableMergeStickyConfig, type TablePageParams, type TablePaginationApi, type TablePaginationPluginOptions, type TablePlugin, type TablePluginCellProps, type TablePluginContext, type TablePluginEvent, type TableProps, type TableRef, type TableResizeApi, type TableResizePluginOptions, type TableRow, type TableRowSpanPluginOptions, type TableSelectedCell, type TableSelectionApi, type TableSelectionMode, type TableSelectionPluginOptions, type TableSettingsAdapter, type TableSettingsSnapshot, type TableSize, type TableSortApi, type TableSortInfo, type TableSortPluginOptions, type TableSummaryPluginOptions, type TableSummaryRow, type TableToolbarItem, type TableToolbarPluginOptions, type TableTreeApi, type TableTreePluginOptions, TagStatus, TextArea, type TextAreaProps, ThemeSwitch, type ThemeSwitchProps, TimePicker, type TimePickerProps, type TimeRangePickerProps, ToolPanel, type ToolPanelItem, type ToolPanelPlacement, type ToolPanelProps, TreeSelect, type TreeSelectNode, type TreeSelectProps, type TreeSelectValue, Treemap, type TreemapNode, type TreemapNodeClickInfo, type TreemapNodeKind, type TreemapProps, type WindowAction, type WindowActionHandler, type WindowControlAction, type WindowControlLabels, WindowControls, type WindowControlsProps, WindowFrame, type WindowFrameProps, WindowTitleBar, type WindowTitleBarActionsAlign, type WindowTitleBarProps, applySiaTheme, buildFlatTree, createCellSelectionPlugin, createColumnSettingPlugin, createColumnTransformPlugin, createEditablePlugin, createExportPlugin, createFilterPlugin, createHighlightPlugin, createIndexPlugin, createLocalStorageTableSettingsAdapter, createPaginationPlugin, createResizePlugin, createRowSpanPlugin, createSelectionPlugin, createSortPlugin, createSummaryPlugin, createToolbarPlugin, createTreePlugin, openSelectModal, useForm };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { T as TagStatus, B as BadgeProps } from './core-Bv6nXYgH.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-Bv6nXYgH.js';
1
+ import { T as TagStatus, B as BadgeProps } from './core-BlcyqiYZ.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-BlcyqiYZ.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';
@@ -3126,7 +3126,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3126
3126
  * @defaultValue true
3127
3127
  */
3128
3128
  collapsible?: boolean;
3129
- /** 受控收起状态,需在 onCollapsedChange 中更新;全部字段能单行显示时不执行收起。收起时保留字段挂载和值,只隐藏放不下的字段和底部快捷标签。 */
3129
+ /** 受控收起状态,需在 onCollapsedChange 中更新;全部字段能单行显示时不执行收起。收起时保留字段挂载和值,只隐藏放不下的字段,底部快捷标签始终保留。 */
3130
3130
  collapsed?: boolean;
3131
3131
  /**
3132
3132
  * 非受控模式的初始收起状态;默认展开全部查询条件,即使条件超过一行也不自动收起。显式传 true 时才初始收起。
@@ -3151,7 +3151,7 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3151
3151
  */
3152
3152
  quickQuerySize?: ButtonSize;
3153
3153
  /**
3154
- * 底部已保存快捷查询标签。点击回填该项条件并查询;收起时隐藏。业务方负责加载数据,并在保存或删除成功后更新此数组。
3154
+ * 底部已保存快捷查询标签。点击回填该项条件并查询;收起时仍可使用。业务方负责加载数据,并在保存或删除成功后更新此数组。
3155
3155
  * @defaultValue []
3156
3156
  */
3157
3157
  savedQueries?: readonly QueryFormShortcut<T>[];
@@ -3197,4 +3197,42 @@ interface QueryFormProps<T extends FormValues = FormValues> extends Omit<FormPro
3197
3197
  /** 可复用的业务查询表单;快捷查询的存储和结果数据由业务方管理。 */
3198
3198
  declare function QueryForm<T extends FormValues = FormValues>({ fields, children, form: providedForm, onSearch, loading, fieldWidth, collapsible, collapsed: controlledCollapsed, defaultCollapsed, collapsedCount, onCollapsedChange, quickQueries, quickQuerySize, savedQueries, shortcutsLoading, onSaveQuery, onRemoveQuery, onError, searchText, resetText, saveText, resetSearch, actionsExtra, disabled, className, placeholderMode, onValuesChange, onFinishFailed, ...formProps }: QueryFormProps<T>): react.JSX.Element;
3199
3199
 
3200
- export { Alert, type AlertProps, type AlertStatus, type AnyTablePlugin, BadgeProps, ButtonProps, ButtonSize, Cascader, type CascaderFieldNames, type CascaderOption, type CascaderProps, type CascaderValue, Checkbox, type CheckboxGroupProps, type CheckboxOption, type CheckboxProps, type CheckboxValue, Col, type ColProps, type ColSize, ColorPicker, type ColorPickerMode, type ColorPickerPreset, type ColorPickerProps, ControlSize, ControlStatus, DEFAULT_PAGE_SIZE_OPTIONS, Divider, type DividerProps, Drawer, type DrawerOpenConfig, type DrawerPlacement, type DrawerProps, type DrawerPush, type DrawerPushConfig, Editor, type EditorCommand, type EditorCompletionContext, type EditorCompletionItem, type EditorCompletionItemKind, type EditorCompletionProvider, type EditorContextMenuItem, type EditorHandle, type EditorKeyDownEvent, type EditorLanguage, type EditorMarker, type EditorProps, type EditorRange, type EditorSelectionChange, type EditorTheme, type FlatTreeNode, type FlatTreeOptions, Flex, type FlexProps, FloatingScrollbarProvider, type FloatingScrollbarProviderProps, Form, type FormErrorField, type FormInstance, type FormItemProps, type FormListField, type FormListOperation, type FormListProps, type FormProps, type FormRule, type FormValues, type GridBreakpoint, InputNumber, type InputNumberProps, InputPlaceholderMode, InputSelect, type InputSelectProps, type LayoutGap, Markdown, type MarkdownProps, ModalActionResult, ModalOpenConfig, type NamePath, OverlayApiHandle, Pagination, type PaginationProps, QueryForm, type QueryFormField, type QueryFormProps, type QueryFormSearchInfo, type QueryFormShortcut, Radio, type RadioGroupProps, type RadioOption, type RadioProps, type RadioValue, Row, type RowProps, SIA_THEME, SelectChangeValue, type SelectModalConfig, SelectOption, SelectProps, type SelectionOption, SelectionPanel, type SelectionPanelProps, type SelectionValue, type SiaThemeMode, Slider, type SliderMark, type SliderProps, type SliderValue, Space, type SpaceCompactProps, type SpaceProps, Splitter, type SplitterPanelProps, type SplitterProps, Switch, type SwitchProps, type SwitchVariant, Table, type TableAlign, type TableCanvasCell, type TableCellAddress, type TableCellRange, type TableCellRenderInfo, type TableCellSelectionApi, type TableCellSelectionPluginOptions, type TableColumn, type TableColumnSettingApi, type TableColumnSettingItem, type TableColumnSettingPluginOptions, type TableColumnTransformPluginOptions, type TableEditableApi, type TableEditableCellConfig, type TableEditableCellType, type TableEditablePluginOptions, type TableExportApi, type TableExportPluginOptions, type TableExportScope, type TableFilterApi, type TableFilterPluginOptions, type TableFilterValues, type TableFixed, type TableHighlightPluginOptions, type TableHighlightValue, type TableIndexPluginOptions, type TableKey, type TableMergeStickyConfig, type TablePageParams, type TablePaginationApi, type TablePaginationPluginOptions, type TablePlugin, type TablePluginCellProps, type TablePluginContext, type TablePluginEvent, type TableProps, type TableRef, type TableResizeApi, type TableResizePluginOptions, type TableRow, type TableRowSpanPluginOptions, type TableSelectedCell, type TableSelectionApi, type TableSelectionMode, type TableSelectionPluginOptions, type TableSettingsAdapter, type TableSettingsSnapshot, type TableSize, type TableSortApi, type TableSortInfo, type TableSortPluginOptions, type TableSummaryPluginOptions, type TableSummaryRow, type TableToolbarItem, type TableToolbarPluginOptions, type TableTreeApi, type TableTreePluginOptions, TagStatus, TextArea, type TextAreaProps, ThemeSwitch, type ThemeSwitchProps, TimePicker, type TimePickerProps, type TimeRangePickerProps, ToolPanel, type ToolPanelItem, type ToolPanelPlacement, type ToolPanelProps, TreeSelect, type TreeSelectNode, type TreeSelectProps, type TreeSelectValue, Treemap, type TreemapNode, type TreemapNodeClickInfo, type TreemapNodeKind, type TreemapProps, type WindowAction, type WindowActionHandler, type WindowControlAction, type WindowControlLabels, WindowControls, type WindowControlsProps, WindowFrame, type WindowFrameProps, WindowTitleBar, type WindowTitleBarActionsAlign, type WindowTitleBarProps, applySiaTheme, buildFlatTree, createCellSelectionPlugin, createColumnSettingPlugin, createColumnTransformPlugin, createEditablePlugin, createExportPlugin, createFilterPlugin, createHighlightPlugin, createIndexPlugin, createLocalStorageTableSettingsAdapter, createPaginationPlugin, createResizePlugin, createRowSpanPlugin, createSelectionPlugin, createSortPlugin, createSummaryPlugin, createToolbarPlugin, createTreePlugin, openSelectModal, useForm };
3200
+ /** 数字区间,依次为下限和上限;null 表示该端未填写,0 是有效数值。 */
3201
+ type NumberRangeValue = [number | null, number | null];
3202
+ /** 数字区间输入属性;两端独立录入,不自动交换上下限,大小关系由业务校验。 */
3203
+ interface NumberRangeProps extends Omit<HTMLAttributes<HTMLSpanElement>, "onChange" | "defaultValue"> {
3204
+ /** 当前区间(受控),需在 onChange 中更新;null 清空两端。 */
3205
+ value?: NumberRangeValue | null;
3206
+ /** 非受控初始区间。@defaultValue [null, null] */
3207
+ defaultValue?: NumberRangeValue;
3208
+ /** 一端失焦、按 Enter 或方向键提交时返回完整区间;清空返回 [null, null]。 */
3209
+ onChange?: (value: NumberRangeValue) => void;
3210
+ /** 两端占位文案。@defaultValue ["最小值", "最大值"] */
3211
+ placeholder?: [string, string];
3212
+ /** 两端可访问名称;未提供时使用各自占位文案。 */
3213
+ inputLabels?: [string, string];
3214
+ /** 两端允许的最小数值,提交时按 InputNumber 规则截断。 */
3215
+ min?: number;
3216
+ /** 两端允许的最大数值,提交时按 InputNumber 规则截断。 */
3217
+ max?: number;
3218
+ /** 键盘上下方向键步长。@defaultValue 1 */
3219
+ step?: number;
3220
+ /** 固定小数位数,沿用 InputNumber 的四舍五入规则。 */
3221
+ precision?: number;
3222
+ /** small / medium / large 高度为 22 / 30 / 38px,未指定时继承 Form。 */
3223
+ size?: ControlSize;
3224
+ /** 校验状态。@defaultValue "default" */
3225
+ status?: ControlStatus;
3226
+ /** 禁用两端输入及清空。@defaultValue false */
3227
+ disabled?: boolean;
3228
+ /** 只读显示,不能输入、步进或清空。@defaultValue false */
3229
+ readOnly?: boolean;
3230
+ /** 有数值时显示清空入口,禁用和只读时隐藏。@defaultValue true */
3231
+ allowClear?: boolean;
3232
+ /** 占位模式,未指定时继承 Form 或 QueryForm。 */
3233
+ placeholderMode?: InputPlaceholderMode;
3234
+ }
3235
+ /** 日期区间风格的双数字输入框,使用波浪线分隔;可直接绑定 Form.Item。 */
3236
+ declare const NumberRange: react.ForwardRefExoticComponent<NumberRangeProps & react.RefAttributes<HTMLSpanElement>>;
3237
+
3238
+ export { Alert, type AlertProps, type AlertStatus, type AnyTablePlugin, BadgeProps, ButtonProps, ButtonSize, Cascader, type CascaderFieldNames, type CascaderOption, type CascaderProps, type CascaderValue, Checkbox, type CheckboxGroupProps, type CheckboxOption, type CheckboxProps, type CheckboxValue, Col, type ColProps, type ColSize, ColorPicker, type ColorPickerMode, type ColorPickerPreset, type ColorPickerProps, ControlSize, ControlStatus, DEFAULT_PAGE_SIZE_OPTIONS, Divider, type DividerProps, Drawer, type DrawerOpenConfig, type DrawerPlacement, type DrawerProps, type DrawerPush, type DrawerPushConfig, Editor, type EditorCommand, type EditorCompletionContext, type EditorCompletionItem, type EditorCompletionItemKind, type EditorCompletionProvider, type EditorContextMenuItem, type EditorHandle, type EditorKeyDownEvent, type EditorLanguage, type EditorMarker, type EditorProps, type EditorRange, type EditorSelectionChange, type EditorTheme, type FlatTreeNode, type FlatTreeOptions, Flex, type FlexProps, FloatingScrollbarProvider, type FloatingScrollbarProviderProps, Form, type FormErrorField, type FormInstance, type FormItemProps, type FormListField, type FormListOperation, type FormListProps, type FormProps, type FormRule, type FormValues, type GridBreakpoint, InputNumber, type InputNumberProps, InputPlaceholderMode, InputSelect, type InputSelectProps, type LayoutGap, Markdown, type MarkdownProps, ModalActionResult, ModalOpenConfig, type NamePath, NumberRange, type NumberRangeProps, type NumberRangeValue, OverlayApiHandle, Pagination, type PaginationProps, QueryForm, type QueryFormField, type QueryFormProps, type QueryFormSearchInfo, type QueryFormShortcut, Radio, type RadioGroupProps, type RadioOption, type RadioProps, type RadioValue, Row, type RowProps, SIA_THEME, SelectChangeValue, type SelectModalConfig, SelectOption, SelectProps, type SelectionOption, SelectionPanel, type SelectionPanelProps, type SelectionValue, type SiaThemeMode, Slider, type SliderMark, type SliderProps, type SliderValue, Space, type SpaceCompactProps, type SpaceProps, Splitter, type SplitterPanelProps, type SplitterProps, Switch, type SwitchProps, type SwitchVariant, Table, type TableAlign, type TableCanvasCell, type TableCellAddress, type TableCellRange, type TableCellRenderInfo, type TableCellSelectionApi, type TableCellSelectionPluginOptions, type TableColumn, type TableColumnSettingApi, type TableColumnSettingItem, type TableColumnSettingPluginOptions, type TableColumnTransformPluginOptions, type TableEditableApi, type TableEditableCellConfig, type TableEditableCellType, type TableEditablePluginOptions, type TableExportApi, type TableExportPluginOptions, type TableExportScope, type TableFilterApi, type TableFilterPluginOptions, type TableFilterValues, type TableFixed, type TableHighlightPluginOptions, type TableHighlightValue, type TableIndexPluginOptions, type TableKey, type TableMergeStickyConfig, type TablePageParams, type TablePaginationApi, type TablePaginationPluginOptions, type TablePlugin, type TablePluginCellProps, type TablePluginContext, type TablePluginEvent, type TableProps, type TableRef, type TableResizeApi, type TableResizePluginOptions, type TableRow, type TableRowSpanPluginOptions, type TableSelectedCell, type TableSelectionApi, type TableSelectionMode, type TableSelectionPluginOptions, type TableSettingsAdapter, type TableSettingsSnapshot, type TableSize, type TableSortApi, type TableSortInfo, type TableSortPluginOptions, type TableSummaryPluginOptions, type TableSummaryRow, type TableToolbarItem, type TableToolbarPluginOptions, type TableTreeApi, type TableTreePluginOptions, TagStatus, TextArea, type TextAreaProps, ThemeSwitch, type ThemeSwitchProps, TimePicker, type TimePickerProps, type TimeRangePickerProps, ToolPanel, type ToolPanelItem, type ToolPanelPlacement, type ToolPanelProps, TreeSelect, type TreeSelectNode, type TreeSelectProps, type TreeSelectValue, Treemap, type TreemapNode, type TreemapNodeClickInfo, type TreemapNodeKind, type TreemapProps, type WindowAction, type WindowActionHandler, type WindowControlAction, type WindowControlLabels, WindowControls, type WindowControlsProps, WindowFrame, type WindowFrameProps, WindowTitleBar, type WindowTitleBarActionsAlign, type WindowTitleBarProps, applySiaTheme, buildFlatTree, createCellSelectionPlugin, createColumnSettingPlugin, createColumnTransformPlugin, createEditablePlugin, createExportPlugin, createFilterPlugin, createHighlightPlugin, createIndexPlugin, createLocalStorageTableSettingsAdapter, createPaginationPlugin, createResizePlugin, createRowSpanPlugin, createSelectionPlugin, createSortPlugin, createSummaryPlugin, createToolbarPlugin, createTreePlugin, openSelectModal, useForm };
package/dist/index.js CHANGED
@@ -80,7 +80,7 @@ import {
80
80
  Watermark,
81
81
  message,
82
82
  notification
83
- } from "./chunk-5IOLMU5Q.js";
83
+ } from "./chunk-SN3I2TKG.js";
84
84
  import {
85
85
  TextArea
86
86
  } from "./chunk-SMCYEPBL.js";
@@ -90,12 +90,12 @@ import {
90
90
  import {
91
91
  RichTextContent,
92
92
  RichTextEditor
93
- } from "./chunk-JPSNW2GV.js";
93
+ } from "./chunk-JNZXYBGM.js";
94
94
  import {
95
95
  DatePicker,
96
96
  SelectDateRange,
97
97
  TimePanel
98
- } from "./chunk-FIYHM6JU.js";
98
+ } from "./chunk-RRAXLKS6.js";
99
99
  import {
100
100
  Checkbox,
101
101
  FloatingScrollbarProvider,
@@ -110,7 +110,7 @@ import {
110
110
  Tree,
111
111
  useOverlayLifecycle,
112
112
  useScrollbarProximity
113
- } from "./chunk-L3OY6MWS.js";
113
+ } from "./chunk-KN6FDE2C.js";
114
114
  import {
115
115
  Dropdown,
116
116
  FILLED_ICON_NAMES,
@@ -120,7 +120,7 @@ import {
120
120
  Menu,
121
121
  Segmented,
122
122
  Steps
123
- } from "./chunk-MKGTIW56.js";
123
+ } from "./chunk-YMOOL62S.js";
124
124
  import {
125
125
  Button
126
126
  } from "./chunk-IKAMZNCK.js";
@@ -8888,7 +8888,7 @@ function QueryForm({
8888
8888
  ]
8889
8889
  }
8890
8890
  ),
8891
- savedQueries.length && !collapsed ? /* @__PURE__ */ jsxs24("div", { className: "sia-query-form__saved", "aria-label": "\u5DF2\u4FDD\u5B58\u5FEB\u6377\u67E5\u8BE2", children: [
8891
+ savedQueries.length ? /* @__PURE__ */ jsxs24("div", { className: "sia-query-form__saved", "aria-label": "\u5DF2\u4FDD\u5B58\u5FEB\u6377\u67E5\u8BE2", children: [
8892
8892
  savedQueries.map((query, index) => /* @__PURE__ */ jsx26(
8893
8893
  Tag,
8894
8894
  {
@@ -8956,6 +8956,77 @@ function QueryForm({
8956
8956
  )
8957
8957
  ] });
8958
8958
  }
8959
+
8960
+ // src/components/NumberRange.tsx
8961
+ import { forwardRef as forwardRef8 } from "react";
8962
+ import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
8963
+ var NumberRange = forwardRef8(function NumberRange2({
8964
+ value,
8965
+ defaultValue = [null, null],
8966
+ onChange,
8967
+ placeholder = ["\u6700\u5C0F\u503C", "\u6700\u5927\u503C"],
8968
+ inputLabels,
8969
+ min,
8970
+ max,
8971
+ step = 1,
8972
+ precision,
8973
+ size: sizeProp,
8974
+ status = "default",
8975
+ disabled = false,
8976
+ readOnly = false,
8977
+ allowClear = true,
8978
+ placeholderMode,
8979
+ className = "",
8980
+ id,
8981
+ ...props
8982
+ }, ref) {
8983
+ const size = useControlSize(sizeProp);
8984
+ const [currentValue, setValue2] = useControllableState({ value, defaultValue, onChange: (next) => onChange?.(next ?? [null, null]) });
8985
+ const range = Array.isArray(currentValue) ? [currentValue[0] ?? null, currentValue[1] ?? null] : [null, null];
8986
+ function change(index, next) {
8987
+ if (disabled || readOnly || range[index] === next) return;
8988
+ setValue2(index === 0 ? [next, range[1]] : [range[0], next]);
8989
+ }
8990
+ const inputProps = { min, max, step, precision, size, status, disabled, readOnly, placeholderMode, controls: false };
8991
+ return /* @__PURE__ */ jsxs25(
8992
+ "span",
8993
+ {
8994
+ ...props,
8995
+ ref,
8996
+ role: props.role ?? "group",
8997
+ "aria-disabled": disabled || void 0,
8998
+ className: `sia-number-range sia-number-range--${size} sia-number-range--${status}${disabled ? " is-disabled" : ""} ${className}`.trim(),
8999
+ children: [
9000
+ /* @__PURE__ */ jsx27(
9001
+ InputNumber,
9002
+ {
9003
+ ...inputProps,
9004
+ id,
9005
+ "aria-label": inputLabels?.[0] ?? placeholder[0],
9006
+ "aria-describedby": props["aria-describedby"],
9007
+ value: range[0],
9008
+ placeholder: placeholder[0],
9009
+ onChange: (next) => change(0, next)
9010
+ }
9011
+ ),
9012
+ /* @__PURE__ */ jsx27(Icon, { className: "sia-number-range__separator", name: "tilde", size: 16, "aria-hidden": "true" }),
9013
+ /* @__PURE__ */ jsx27(
9014
+ InputNumber,
9015
+ {
9016
+ ...inputProps,
9017
+ id: id ? `${id}-end` : void 0,
9018
+ "aria-label": inputLabels?.[1] ?? placeholder[1],
9019
+ "aria-describedby": props["aria-describedby"],
9020
+ value: range[1],
9021
+ placeholder: placeholder[1],
9022
+ onChange: (next) => change(1, next)
9023
+ }
9024
+ ),
9025
+ allowClear && !disabled && !readOnly && range.some((item) => item !== null) ? /* @__PURE__ */ jsx27("button", { type: "button", className: "sia-number-range__clear", "aria-label": "\u6E05\u9664\u6570\u5B57\u533A\u95F4", onClick: () => setValue2([null, null]), children: /* @__PURE__ */ jsx27(Icon, { name: "circle-close", variant: "filled", size: 15 }) }) : null
9026
+ ]
9027
+ }
9028
+ );
9029
+ });
8959
9030
  export {
8960
9031
  Alert,
8961
9032
  Badge,
@@ -9023,6 +9094,7 @@ export {
9023
9094
  Menu,
9024
9095
  MixedChart,
9025
9096
  Modal,
9097
+ NumberRange,
9026
9098
  Pagination,
9027
9099
  PieChart,
9028
9100
  Popconfirm,
@@ -892,6 +892,8 @@ var coreIconPaths = {
892
892
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m15.8 15.8 5.2 5.2" })
893
893
  ] }),
894
894
  plus: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M12 4v16M4 12h16" }),
895
+ // 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
896
+ tilde: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
895
897
  minus: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 12h16" }),
896
898
  close: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m5 5 14 14M19 5 5 19" }),
897
899
  check: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "m4 12.5 5.2 5L20 6.5" }),
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  RichTextContent,
3
3
  RichTextEditor
4
- } from "./chunk-JPSNW2GV.js";
5
- import "./chunk-MKGTIW56.js";
4
+ } from "./chunk-JNZXYBGM.js";
5
+ import "./chunk-YMOOL62S.js";
6
6
  import "./chunk-IKAMZNCK.js";
7
7
  import "./chunk-H7IAG72O.js";
8
8
  export {
@@ -809,6 +809,8 @@ var coreIconPaths = {
809
809
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m15.8 15.8 5.2 5.2" })
810
810
  ] }),
811
811
  plus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 4v16M4 12h16" }),
812
+ // 数字区间用波浪线表达范围,避免箭头暗示跳转方向。
813
+ tilde: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M3 14c3-8 6-4 9-2s6 4 9-2" }),
812
814
  minus: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 12h16" }),
813
815
  close: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m5 5 14 14M19 5 5 19" }),
814
816
  check: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "m4 12.5 5.2 5L20 6.5" }),
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SelectDateRange
3
- } from "./chunk-FIYHM6JU.js";
4
- import "./chunk-L3OY6MWS.js";
5
- import "./chunk-MKGTIW56.js";
3
+ } from "./chunk-RRAXLKS6.js";
4
+ import "./chunk-KN6FDE2C.js";
5
+ import "./chunk-YMOOL62S.js";
6
6
  import "./chunk-IKAMZNCK.js";
7
7
  import "./chunk-H7IAG72O.js";
8
8
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sia.soul/sia-react-ui",
3
- "version": "0.1.70",
3
+ "version": "0.1.72",
4
4
  "description": "Sia Design components and tokens for React",
5
5
  "publishConfig": {
6
6
  "access": "public",