@bysages/svelte 0.2.1 → 0.2.2

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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as useMentions } from "./use-mentions-DeF_38di.mjs";
1
+ import { C as DateInputRoot, D as CheckboxRoot, E as ClipboardRoot, O as AngleSliderRoot, S as DatePickerRoot, T as ColorPickerRoot, _ as MenuRoot, a as SwitchRoot, b as FileUploadRoot, c as SelectRoot, d as RadioGroupRoot, f as ProgressRoot, g as NumberInputRoot, h as PaginationRoot, i as TabsRoot, k as useMentions, l as SegmentGroupRoot, m as PasswordInputRoot, n as ToggleGroupRoot, o as StepsRoot, p as PinInputRoot, r as TagsInputRoot, s as SliderRoot, t as TreeViewRoot, u as RatingGroupRoot, v as MenuContent, w as ComboboxRoot, x as EditableRoot, y as ListboxRoot } from "./TreeViewRoot-CWHR4O1k.mjs";
2
2
  import { injectComponentStyle } from "@bysages/core";
3
3
  import { Accordion as Accordion$1 } from "@ark-ui/svelte/accordion";
4
4
  import "svelte/internal/disclose-version";
@@ -11,7 +11,7 @@ import { Collapsible as Collapsible$1 } from "@ark-ui/svelte/collapsible";
11
11
  import "svelte/internal/flags/legacy";
12
12
  import { renderHtml } from "@tanstack/markdown/html";
13
13
  import { Combobox as Combobox$1 } from "@ark-ui/svelte/combobox";
14
- import { createFileTreeCollection, createGridCollection, createTreeCollection, useAsyncList, useListCollection, useListCollection as useListCollection$1, useListSelection } from "@ark-ui/svelte/collection";
14
+ import { createFileTreeCollection, createGridCollection, createListCollection, createTreeCollection, useAsyncList, useListCollection, useListCollection as useListCollection$1, useListSelection } from "@ark-ui/svelte/collection";
15
15
  import { AngleSlider as AngleSlider$1 } from "@ark-ui/svelte/angle-slider";
16
16
  import { Avatar as Avatar$1 } from "@ark-ui/svelte/avatar";
17
17
  import { DatePicker as DatePicker$1 } from "@ark-ui/svelte/date-picker";
@@ -37,6 +37,7 @@ import { Format as Format$1 } from "@ark-ui/svelte/format";
37
37
  import { Frame as Frame$1 } from "@ark-ui/svelte/frame";
38
38
  import { Highlight as Highlight$1 } from "@ark-ui/svelte/highlight";
39
39
  import { HoverCard as HoverCard$1 } from "@ark-ui/svelte/hover-card";
40
+ import { getIcon } from "@bysages/icons";
40
41
  import { ImageCropper as ImageCropper$1 } from "@ark-ui/svelte/image-cropper";
41
42
  import { JsonTreeView as JsonTreeView$1 } from "@ark-ui/svelte/json-tree-view";
42
43
  import { Listbox as Listbox$1 } from "@ark-ui/svelte/listbox";
@@ -54,7 +55,7 @@ import { RadioGroup as RadioGroup$1 } from "@ark-ui/svelte/radio-group";
54
55
  import { RatingGroup as RatingGroup$1 } from "@ark-ui/svelte/rating-group";
55
56
  import { ScrollArea as ScrollArea$1 } from "@ark-ui/svelte/scroll-area";
56
57
  import { SegmentGroup as SegmentGroup$1 } from "@ark-ui/svelte/segment-group";
57
- import { Select as Select$1, createListCollection } from "@ark-ui/svelte/select";
58
+ import { Select as Select$1, createListCollection as createListCollection$1 } from "@ark-ui/svelte/select";
58
59
  import { SignaturePad as SignaturePad$1 } from "@ark-ui/svelte/signature-pad";
59
60
  import { Slider as Slider$1 } from "@ark-ui/svelte/slider";
60
61
  import { Splitter as Splitter$1 } from "@ark-ui/svelte/splitter";
@@ -244,10 +245,10 @@ injectComponentStyle("field");
244
245
  //#endregion
245
246
  //#region src/components/mentions/MentionsVessel.svelte
246
247
  var root$123 = $.from_html(`<div data-scope="mentions" data-part="option"> </div>`);
247
- var root_1$26 = $.from_html(`<div></div>`);
248
+ var root_1$27 = $.from_html(`<div></div>`);
248
249
  function MentionsVessel$1($$anchor, $$props) {
249
250
  $.push($$props, true);
250
- let open = $.prop($$props, "open", 3, false), matches = $.prop($$props, "matches", 19, () => []), active = $.prop($$props, "active", 3, 0), anchor = $.prop($$props, "anchor", 3, null);
251
+ let open = $.prop($$props, "open", 3, false), matches = $.prop($$props, "matches", 19, () => []), active = $.prop($$props, "active", 3, 0), anchor = $.prop($$props, "anchor", 3, null), size = $.prop($$props, "size", 3, "md");
251
252
  var fragment = $.comment();
252
253
  var node = $.first_child(fragment);
253
254
  $.component(node, () => Popover$1.Root, ($$anchor, ArkPopover_Root) => {
@@ -272,11 +273,12 @@ function MentionsVessel$1($$anchor, $$props) {
272
273
  var node_2 = $.first_child(fragment_3);
273
274
  {
274
275
  const asChild = ($$anchor, contentProps = $.noop) => {
275
- var div = root_1$26();
276
+ var div = root_1$27();
276
277
  $.attribute_effect(div, ($0) => ({
277
278
  ...$0,
278
279
  "data-scope": "mentions",
279
- "data-part": "popup"
280
+ "data-part": "popup",
281
+ "data-size": size()
280
282
  }), [() => contentProps()()]);
281
283
  $.each(div, 23, matches, (entry) => entry.value, ($$anchor, entry, index) => {
282
284
  var div_1 = root$123();
@@ -329,12 +331,13 @@ var rest_excludes$122 = /* @__PURE__ */ new Set([
329
331
  "placeholder",
330
332
  "autoresize",
331
333
  "invalid",
334
+ "size",
332
335
  "onValueChange"
333
336
  ]);
334
337
  var root$122 = $.from_html(`<div><!> <!></div>`);
335
338
  function Mentions$1($$anchor, $$props) {
336
339
  $.push($$props, true);
337
- let items = $.prop($$props, "items", 19, () => []), value = $.prop($$props, "value", 15, ""), trigger = $.prop($$props, "trigger", 3, "@"), autoresize = $.prop($$props, "autoresize", 3, false), invalid = $.prop($$props, "invalid", 3, false), rest = $.rest_props($$props, rest_excludes$122);
340
+ let items = $.prop($$props, "items", 19, () => []), value = $.prop($$props, "value", 15, ""), trigger = $.prop($$props, "trigger", 3, "@"), autoresize = $.prop($$props, "autoresize", 3, false), invalid = $.prop($$props, "invalid", 3, false), size = $.prop($$props, "size", 3, "md"), rest = $.rest_props($$props, rest_excludes$122);
338
341
  let textareaEl = $.state(null);
339
342
  const mentions = useMentions(() => ({
340
343
  items: items(),
@@ -354,7 +357,8 @@ function Mentions$1($$anchor, $$props) {
354
357
  $.attribute_effect(div, () => ({
355
358
  ...rest,
356
359
  "data-scope": "mentions",
357
- "data-part": "root"
360
+ "data-part": "root",
361
+ "data-size": size()
358
362
  }));
359
363
  var node = $.child(div);
360
364
  {
@@ -405,6 +409,9 @@ function Mentions$1($$anchor, $$props) {
405
409
  get anchor() {
406
410
  return $.get(textareaEl);
407
411
  },
412
+ get size() {
413
+ return size();
414
+ },
408
415
  get onInsert() {
409
416
  return mentions.insert;
410
417
  },
@@ -451,7 +458,7 @@ var rest_excludes$121 = /* @__PURE__ */ new Set([
451
458
  "footerEnd"
452
459
  ]);
453
460
  var root$121 = $.from_svg(`<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><rect x="4.5" y="4.5" width="7" height="7" fill="currentColor"></rect></svg>`);
454
- var root_1$25 = $.from_svg(`<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><path d="M8 13V3M3.5 7.5 8 3l4.5 4.5"></path></svg>`);
461
+ var root_1$26 = $.from_svg(`<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><path d="M8 13V3M3.5 7.5 8 3l4.5 4.5"></path></svg>`);
455
462
  var root_2$19 = $.from_html(`<div data-scope="ai" data-part="prompt-header"><!></div>`);
456
463
  var root_3$11 = $.from_html(`<div data-scope="ai" data-part="prompt-leading"><!></div>`);
457
464
  var root_4$9 = $.from_html(`<div data-scope="ai" data-part="prompt-trailing"><!> <!></div>`);
@@ -493,7 +500,7 @@ function AiPromptInput$1($$anchor, $$props) {
493
500
  return $.get($0);
494
501
  },
495
502
  children: ($$anchor, $$slotProps) => {
496
- var svg_1 = root_1$25();
503
+ var svg_1 = root_1$26();
497
504
  $.append($$anchor, svg_1);
498
505
  },
499
506
  $$slots: { default: true }
@@ -717,7 +724,7 @@ var rest_excludes$120 = /* @__PURE__ */ new Set([
717
724
  "children"
718
725
  ]);
719
726
  var root$119 = $.from_html(`<span> </span> <!>`, 1);
720
- var root_1$24 = $.from_html(`<div data-scope="ai" data-part="reasoning-content"><!></div>`);
727
+ var root_1$25 = $.from_html(`<div data-scope="ai" data-part="reasoning-content"><!></div>`);
721
728
  var root_2$18 = $.from_html(`<!> <!>`, 1);
722
729
  function AiReasoning$1($$anchor, $$props) {
723
730
  let label = $.prop($$props, "label", 3, "Thinking"), rest = $.rest_props($$props, rest_excludes$120);
@@ -754,7 +761,7 @@ function AiReasoning$1($$anchor, $$props) {
754
761
  $.component(node_3, () => Collapsible.Content, ($$anchor, Collapsible_Content) => {
755
762
  Collapsible_Content($$anchor, {
756
763
  children: ($$anchor, $$slotProps) => {
757
- var div = root_1$24();
764
+ var div = root_1$25();
758
765
  var node_4 = $.child(div);
759
766
  $.snippet(node_4, () => $$props.children ?? $.noop);
760
767
  $.reset(div);
@@ -834,6 +841,45 @@ async function clickCodeCopy(event, copyLabel, copiedLabel) {
834
841
  }, REVERT_MS);
835
842
  }
836
843
  //#endregion
844
+ //#region src/components/ai-response/tables.ts
845
+ /** Wide tables ride a scrolling lane instead of bursting the column.
846
+ * The lane is a plain div: the table-as-scroll-container form is what
847
+ * ate the mouse wheel over plain tables. Idempotent, so it can run
848
+ * after every stream patch. */
849
+ const lanes = /* @__PURE__ */ new Set();
850
+ let laneObserver;
851
+ /** A lane's verdict must follow its box — the panel around it can
852
+ * resize at any moment, so each lane stays observed and re-decided
853
+ * whenever its width changes. */
854
+ function watchLane(lane) {
855
+ if (lanes.has(lane)) return;
856
+ lanes.add(lane);
857
+ laneObserver ??= new ResizeObserver(() => {
858
+ for (const lane of lanes) {
859
+ if (!lane.isConnected) {
860
+ laneObserver.unobserve(lane);
861
+ lanes.delete(lane);
862
+ continue;
863
+ }
864
+ lane.toggleAttribute("data-scrollable", lane.scrollWidth > lane.clientWidth);
865
+ }
866
+ });
867
+ laneObserver.observe(lane);
868
+ }
869
+ function wrapResponseTables(root) {
870
+ for (const table of root.querySelectorAll("table")) {
871
+ if (table.parentElement?.hasAttribute("data-table-scroll")) continue;
872
+ const lane = document.createElement("div");
873
+ lane.setAttribute("data-table-scroll", "");
874
+ table.replaceWith(lane);
875
+ lane.append(table);
876
+ }
877
+ for (const lane of root.querySelectorAll("[data-table-scroll]")) {
878
+ lane.toggleAttribute("data-scrollable", lane.scrollWidth > lane.clientWidth);
879
+ watchLane(lane);
880
+ }
881
+ }
882
+ //#endregion
837
883
  //#region src/components/ai-response/AiResponse.svelte
838
884
  var rest_excludes$119 = /* @__PURE__ */ new Set([
839
885
  "$$slots",
@@ -845,7 +891,7 @@ var rest_excludes$119 = /* @__PURE__ */ new Set([
845
891
  "copiedLabel",
846
892
  "onclick"
847
893
  ]);
848
- var root_1$23 = $.from_html(`<div></div>`);
894
+ var root_1$24 = $.from_html(`<div></div>`);
849
895
  function AiResponse$1($$anchor, $$props) {
850
896
  $.push($$props, true);
851
897
  let copyLabel = $.prop($$props, "copyLabel", 3, "Copy code"), copiedLabel = $.prop($$props, "copiedLabel", 3, "Copied"), rest = $.rest_props($$props, rest_excludes$119);
@@ -854,12 +900,13 @@ function AiResponse$1($$anchor, $$props) {
854
900
  $.user_effect(() => {
855
901
  $.get(html);
856
902
  if (root) decorateCodeCopy(root, copyLabel());
903
+ if (root) wrapResponseTables(root);
857
904
  });
858
905
  const handleClick = (event) => {
859
906
  clickCodeCopy(event, copyLabel(), copiedLabel());
860
907
  $$props.onclick?.(event);
861
908
  };
862
- var div = root_1$23();
909
+ var div = root_1$24();
863
910
  $.attribute_effect(div, () => ({
864
911
  ...rest,
865
912
  "data-scope": "ai",
@@ -992,7 +1039,7 @@ var rest_excludes$115 = /* @__PURE__ */ new Set([
992
1039
  "output"
993
1040
  ]);
994
1041
  var root$116 = $.from_html(`<span data-scope="ai" data-part="tool-status"> </span>`);
995
- var root_1$22 = $.from_html(`<span> </span> <!> <!>`, 1);
1042
+ var root_1$23 = $.from_html(`<span> </span> <!> <!>`, 1);
996
1043
  var root_2$17 = $.from_html(`<span data-scope="ai" data-part="tool-label">Input</span> <pre> </pre>`, 1);
997
1044
  var root_3$10 = $.from_html(`<span data-scope="ai" data-part="tool-label">Output</span> <pre> </pre>`, 1);
998
1045
  var root_4$8 = $.from_html(`<div data-scope="ai" data-part="tool-body"><!> <!></div>`);
@@ -1014,7 +1061,7 @@ function AiTool$1($$anchor, $$props) {
1014
1061
  $.component(node_1, () => Collapsible.Trigger, ($$anchor, Collapsible_Trigger) => {
1015
1062
  Collapsible_Trigger($$anchor, {
1016
1063
  children: ($$anchor, $$slotProps) => {
1017
- var fragment_2 = root_1$22();
1064
+ var fragment_2 = root_1$23();
1018
1065
  var span = $.first_child(fragment_2);
1019
1066
  var text = $.only_child(span, true);
1020
1067
  var node_2 = $.sibling(span, 2);
@@ -1219,7 +1266,7 @@ var rest_excludes$110 = /* @__PURE__ */ new Set([
1219
1266
  "onRemove"
1220
1267
  ]);
1221
1268
  var root$111 = $.from_svg(`<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><rect x="2.5" y="3.5" width="11" height="9"></rect><path d="M2.5 10.5 6 7l3 3 2-1.5 2.5 2"></path><circle cx="6" cy="6" r="0.75" fill="currentColor" stroke="none"></circle></svg>`);
1222
- var root_1$21 = $.from_svg(`<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><path d="M4 2.5h5l3 3V13.5H4z"></path><path d="M9 2.5v3h3"></path></svg>`);
1269
+ var root_1$22 = $.from_svg(`<svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><path d="M4 2.5h5l3 3V13.5H4z"></path><path d="M9 2.5v3h3"></path></svg>`);
1223
1270
  var root_2$16 = $.from_html(`<span> </span>`);
1224
1271
  var root_3$9 = $.from_html(`<span><!> <span> </span> <!> <button type="button" data-remove=""><svg viewBox="0 0 16 16" width="12" height="12" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"><path d="M4 4l8 8M12 4l-8 8"></path></svg></button></span>`);
1225
1272
  function Attachment$1($$anchor, $$props) {
@@ -1266,7 +1313,7 @@ function Attachment$1($$anchor, $$props) {
1266
1313
  };
1267
1314
  var d = $.derived(() => isImage($$props.name));
1268
1315
  var alternate = ($$anchor) => {
1269
- var svg_1 = root_1$21();
1316
+ var svg_1 = root_1$22();
1270
1317
  $.append($$anchor, svg_1);
1271
1318
  };
1272
1319
  $.if(node, ($$render) => {
@@ -1473,12 +1520,13 @@ var rest_excludes$103 = /* @__PURE__ */ new Set([
1473
1520
  "value",
1474
1521
  "items",
1475
1522
  "placeholder",
1523
+ "size",
1476
1524
  "filter"
1477
1525
  ]);
1478
1526
  var root$104 = $.from_html(`<!> <!>`, 1);
1479
1527
  function AutoComplete$1($$anchor, $$props) {
1480
1528
  $.push($$props, true);
1481
- let value = $.prop($$props, "value", 15, ""), items = $.prop($$props, "items", 19, () => []), rest = $.rest_props($$props, rest_excludes$103);
1529
+ let value = $.prop($$props, "value", 15, ""), items = $.prop($$props, "items", 19, () => []), size = $.prop($$props, "size", 3, "md"), rest = $.rest_props($$props, rest_excludes$103);
1482
1530
  const { collection, filter: filterItems } = useListCollection$1({
1483
1531
  initialItems: items(),
1484
1532
  filter: (item, input) => $$props.filter ? $$props.filter(item, input) : item.toLowerCase().includes(input.toLowerCase())
@@ -1490,6 +1538,9 @@ function AutoComplete$1($$anchor, $$props) {
1490
1538
  get collection() {
1491
1539
  return collection;
1492
1540
  },
1541
+ get "data-size"() {
1542
+ return size();
1543
+ },
1493
1544
  get inputValue() {
1494
1545
  return value();
1495
1546
  },
@@ -1612,7 +1663,10 @@ injectComponentStyle("combobox");
1612
1663
  * the thumb sweeps as a pigment needle over hairline degree ticks. The API
1613
1664
  * is Ark's own — Root, Label, ValueText, Control, Thumb, MarkerGroup,
1614
1665
  * Marker, HiddenInput. */
1615
- const AngleSlider = AngleSlider$1;
1666
+ const AngleSlider = {
1667
+ ...AngleSlider$1,
1668
+ Root: AngleSliderRoot
1669
+ };
1616
1670
  injectComponentStyle("angle-slider");
1617
1671
  //#endregion
1618
1672
  //#region src/components/aspect-ratio/AspectRatio.svelte
@@ -1688,6 +1742,7 @@ var rest_excludes$100 = /* @__PURE__ */ new Set([
1688
1742
  "$$slots",
1689
1743
  "$$events",
1690
1744
  "$$legacy",
1745
+ "size",
1691
1746
  "children"
1692
1747
  ]);
1693
1748
  var root$102 = $.from_html(`<div><!></div>`);
@@ -1697,7 +1752,8 @@ function AvatarGroup$1($$anchor, $$props) {
1697
1752
  $.attribute_effect(div, () => ({
1698
1753
  ...rest,
1699
1754
  "data-scope": "avatar-group",
1700
- "data-part": "root"
1755
+ "data-part": "root",
1756
+ "data-size": $$props.size
1701
1757
  }));
1702
1758
  var node = $.child(div);
1703
1759
  $.snippet(node, () => $$props.children ?? $.noop);
@@ -1722,7 +1778,7 @@ var rest_excludes$99 = /* @__PURE__ */ new Set([
1722
1778
  "children"
1723
1779
  ]);
1724
1780
  var root$101 = $.from_svg(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 14 6-6 6 6"></path></svg>`);
1725
- var root_1$20 = $.from_html(`<div><!></div>`);
1781
+ var root_1$21 = $.from_html(`<div><!></div>`);
1726
1782
  function BackTop$1($$anchor, $$props) {
1727
1783
  $.push($$props, true);
1728
1784
  let threshold = $.prop($$props, "threshold", 3, 400), label = $.prop($$props, "label", 3, "Back to top"), rest = $.rest_props($$props, rest_excludes$99);
@@ -1751,7 +1807,7 @@ function BackTop$1($$anchor, $$props) {
1751
1807
  behavior: reduce ? "auto" : "smooth"
1752
1808
  });
1753
1809
  };
1754
- var div = root_1$20();
1810
+ var div = root_1$21();
1755
1811
  $.attribute_effect(div, () => ({
1756
1812
  "data-scope": "back-top",
1757
1813
  "data-part": "root",
@@ -2293,7 +2349,7 @@ const header = ($$anchor) => {
2293
2349
  $.component(node_5, () => DatePicker$1.NextTrigger, ($$anchor, ArkDatePicker_NextTrigger) => {
2294
2350
  ArkDatePicker_NextTrigger($$anchor, {
2295
2351
  children: ($$anchor, $$slotProps) => {
2296
- var svg_1 = root_1$19();
2352
+ var svg_1 = root_1$20();
2297
2353
  $.append($$anchor, svg_1);
2298
2354
  },
2299
2355
  $$slots: { default: true }
@@ -2318,7 +2374,7 @@ var rest_excludes$83 = /* @__PURE__ */ new Set([
2318
2374
  "children"
2319
2375
  ]);
2320
2376
  var root$85 = $.from_svg(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true" style="transform: rotate(180deg)"><path d="m9 5 7 7-7 7"></path></svg>`);
2321
- var root_1$19 = $.from_svg(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><path d="m9 5 7 7-7 7"></path></svg>`);
2377
+ var root_1$20 = $.from_svg(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><path d="m9 5 7 7-7 7"></path></svg>`);
2322
2378
  var root_2$15 = $.from_html(`<!> <!> <!>`, 1);
2323
2379
  var root_3$8 = $.from_html(`<div data-scope="calendar" data-part="header"><!></div>`);
2324
2380
  var root_4$7 = $.from_html(`<!> <!>`, 1);
@@ -2875,11 +2931,12 @@ var rest_excludes$75 = /* @__PURE__ */ new Set([
2875
2931
  "placeholder",
2876
2932
  "highlightTrigger",
2877
2933
  "filterable",
2934
+ "size",
2878
2935
  "multiple",
2879
2936
  "disabled"
2880
2937
  ]);
2881
2938
  var root$77 = $.from_html(`<span data-part="branch-indicator" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></span>`);
2882
- var root_1$18 = $.from_html(`<li><span> </span> <!> <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12.5 5 5L19 7"></path></svg></span></li>`);
2939
+ var root_1$19 = $.from_html(`<li><span> </span> <!> <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12.5 5 5L19 7"></path></svg></span></li>`);
2883
2940
  var root_2$14 = $.from_html(`<ul></ul> <!>`, 1);
2884
2941
  var root_3$7 = $.from_html(`<div data-part="search"><!></div>`);
2885
2942
  var root_4$6 = $.from_html(`<p data-part="empty">Nothing matches</p>`);
@@ -2911,7 +2968,7 @@ function CascadeSelect$1($$anchor, $$props) {
2911
2968
  value: [...valuePath(), $.get(itemValue)]
2912
2969
  }));
2913
2970
  const itemState = $.derived(() => $.get(api).getItemState($.get(itemProps)));
2914
- var li = root_1$18();
2971
+ var li = root_1$19();
2915
2972
  $.attribute_effect(li, ($0) => ({ ...$0 }), [() => $.get(api).getItemProps($.get(itemProps))]);
2916
2973
  var span = $.child(li);
2917
2974
  $.attribute_effect(span, ($0) => ({ ...$0 }), [() => $.get(api).getItemTextProps($.get(itemProps))]);
@@ -2945,7 +3002,7 @@ function CascadeSelect$1($$anchor, $$props) {
2945
3002
  });
2946
3003
  $.append($$anchor, fragment);
2947
3004
  };
2948
- let value = $.prop($$props, "value", 15), placeholder = $.prop($$props, "placeholder", 3, "Select…"), filterable = $.prop($$props, "filterable", 3, false), multiple = $.prop($$props, "multiple", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$75);
3005
+ let value = $.prop($$props, "value", 15), placeholder = $.prop($$props, "placeholder", 3, "Select…"), filterable = $.prop($$props, "filterable", 3, false), size = $.prop($$props, "size", 3, "md"), multiple = $.prop($$props, "multiple", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$75);
2949
3006
  const locale = useLocaleContext();
2950
3007
  const env = useEnvironmentContext();
2951
3008
  const collection = $.derived(() => cascade.collection({
@@ -3029,7 +3086,8 @@ function CascadeSelect$1($$anchor, $$props) {
3029
3086
  var div = root_7$4();
3030
3087
  $.attribute_effect(div, ($0) => ({
3031
3088
  ...rest,
3032
- ...$0
3089
+ ...$0,
3090
+ "data-size": size()
3033
3091
  }), [() => $.get(api).getRootProps()]);
3034
3092
  var div_1 = $.child(div);
3035
3093
  $.attribute_effect(div_1, ($0) => ({ ...$0 }), [() => $.get(api).getControlProps()]);
@@ -3056,7 +3114,10 @@ function CascadeSelect$1($$anchor, $$props) {
3056
3114
  var div_2 = root_6$5();
3057
3115
  $.attribute_effect(div_2, ($0) => ({ ...$0 }), [() => $.get(api).getPositionerProps()]);
3058
3116
  var div_3 = $.child(div_2);
3059
- $.attribute_effect(div_3, ($0) => ({ ...$0 }), [() => $.get(api).getContentProps()]);
3117
+ $.attribute_effect(div_3, ($0) => ({
3118
+ ...$0,
3119
+ "data-size": size()
3120
+ }), [() => $.get(api).getContentProps()]);
3060
3121
  var node_4 = $.child(div_3);
3061
3122
  var consequent_2 = ($$anchor) => {
3062
3123
  var div_4 = root_3$7();
@@ -3147,7 +3208,10 @@ injectComponentStyle("carousel");
3147
3208
  * that fills flat with primary ink when ticked, the mark springing into
3148
3209
  * place. The API is Ark's own — Root, Label, Control, Indicator,
3149
3210
  * HiddenInput. */
3150
- const Checkbox = Checkbox$1;
3211
+ const Checkbox = {
3212
+ ...Checkbox$1,
3213
+ Root: CheckboxRoot
3214
+ };
3151
3215
  injectComponentStyle("checkbox");
3152
3216
  //#endregion
3153
3217
  //#region src/components/checkbox-group/CheckboxGroup.svelte
@@ -3158,15 +3222,17 @@ var rest_excludes$74 = /* @__PURE__ */ new Set([
3158
3222
  "value",
3159
3223
  "options",
3160
3224
  "layout",
3225
+ "size",
3161
3226
  "invalid",
3162
3227
  "disabled"
3163
3228
  ]);
3164
3229
  var root$76 = $.from_svg(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12.5 5 5L19 7"></path></svg>`);
3165
- var root_1$17 = $.from_html(`<!> <!> <!>`, 1);
3230
+ var root_1$18 = $.from_html(`<!> <!> <!>`, 1);
3166
3231
  var root_2$13 = $.from_html(`<div></div>`);
3167
3232
  function CheckboxGroup$1($$anchor, $$props) {
3233
+ const uid = $.props_id();
3168
3234
  $.push($$props, true);
3169
- let value = $.prop($$props, "value", 31, () => $.proxy([])), layout = $.prop($$props, "layout", 3, "vertical"), invalid = $.prop($$props, "invalid", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$74);
3235
+ let value = $.prop($$props, "value", 31, () => $.proxy([])), layout = $.prop($$props, "layout", 3, "vertical"), size = $.prop($$props, "size", 3, "md"), invalid = $.prop($$props, "invalid", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$74);
3170
3236
  const field = useFieldContext();
3171
3237
  const selected = $.derived(() => new Set(value()));
3172
3238
  const isInvalid = $.derived(() => invalid() || field?.()?.invalid === true);
@@ -3190,22 +3256,32 @@ function CheckboxGroup$1($$anchor, $$props) {
3190
3256
  var fragment = $.comment();
3191
3257
  var node = $.first_child(fragment);
3192
3258
  {
3193
- let $0 = $.derived(() => $.get(selected).has($.get(option).value));
3194
- let $1 = $.derived(() => $.get(isDisabled) || $.get(option).disabled === true);
3259
+ let $0 = $.derived(() => ({
3260
+ label: `${uid}:${$.get(option).value}:label`,
3261
+ hiddenInput: `${uid}:${$.get(option).value}:input`
3262
+ }));
3263
+ let $1 = $.derived(() => $.get(selected).has($.get(option).value));
3264
+ let $2 = $.derived(() => $.get(isDisabled) || $.get(option).disabled === true);
3195
3265
  $.component(node, () => Checkbox$1.Root, ($$anchor, ArkCheckbox_Root) => {
3196
3266
  ArkCheckbox_Root($$anchor, {
3197
- get checked() {
3267
+ get ids() {
3198
3268
  return $.get($0);
3199
3269
  },
3270
+ get checked() {
3271
+ return $.get($1);
3272
+ },
3200
3273
  get invalid() {
3201
3274
  return $.get(isInvalid);
3202
3275
  },
3276
+ get "data-size"() {
3277
+ return size();
3278
+ },
3203
3279
  get disabled() {
3204
- return $.get($1);
3280
+ return $.get($2);
3205
3281
  },
3206
3282
  onCheckedChange: () => toggle($.get(option).value),
3207
3283
  children: ($$anchor, $$slotProps) => {
3208
- var fragment_1 = root_1$17();
3284
+ var fragment_1 = root_1$18();
3209
3285
  var node_1 = $.first_child(fragment_1);
3210
3286
  $.component(node_1, () => Checkbox$1.Control, ($$anchor, ArkCheckbox_Control) => {
3211
3287
  ArkCheckbox_Control($$anchor, {
@@ -3299,7 +3375,10 @@ injectComponentStyle("chip");
3299
3375
  * field beside an icon-sized copy trigger whose ink turns bamboo while the
3300
3376
  * copy is confirmed. The API is Ark's own — Root, Label, Control, Input,
3301
3377
  * Trigger, Indicator, Context, HiddenInput. */
3302
- const Clipboard = Clipboard$1;
3378
+ const Clipboard = {
3379
+ ...Clipboard$1,
3380
+ Root: ClipboardRoot
3381
+ };
3303
3382
  injectComponentStyle("clipboard");
3304
3383
  //#endregion
3305
3384
  //#region src/components/color-picker/index.ts
@@ -3311,7 +3390,10 @@ injectComponentStyle("clipboard");
3311
3390
  * ChannelSliderValueText, ChannelInput, TransparencyGrid, SwatchGroup,
3312
3391
  * SwatchTrigger, SwatchIndicator, Swatch, EyeDropperTrigger, FormatTrigger,
3313
3392
  * FormatSelect, HiddenInput, Context. */
3314
- const ColorPicker = ColorPicker$1;
3393
+ const ColorPicker = {
3394
+ ...ColorPicker$1,
3395
+ Root: ColorPickerRoot
3396
+ };
3315
3397
  injectComponentStyle("color-picker");
3316
3398
  //#endregion
3317
3399
  //#region src/components/combobox/index.ts
@@ -3320,7 +3402,10 @@ injectComponentStyle("color-picker");
3320
3402
  * checked row taking the flat ink fill. The API is Ark's own — Root, Label,
3321
3403
  * Control, Input, Trigger, ClearTrigger, Positioner, Content, List, Empty,
3322
3404
  * Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
3323
- const Combobox = Combobox$1;
3405
+ const Combobox = {
3406
+ ...Combobox$1,
3407
+ Root: ComboboxRoot
3408
+ };
3324
3409
  injectComponentStyle("combobox");
3325
3410
  //#endregion
3326
3411
  //#region src/components/command/Command.svelte
@@ -3357,7 +3442,7 @@ const row$1 = ($$anchor, entry = $.noop) => {
3357
3442
  }
3358
3443
  var node_2 = $.sibling(node_1, 2);
3359
3444
  var consequent = ($$anchor) => {
3360
- var span_1 = root_1$16();
3445
+ var span_1 = root_1$17();
3361
3446
  var text_1 = $.only_child(span_1, true);
3362
3447
  $.template_effect(() => $.set_text(text_1, entry().hint));
3363
3448
  $.append($$anchor, span_1);
@@ -3381,7 +3466,7 @@ const row$1 = ($$anchor, entry = $.noop) => {
3381
3466
  $.append($$anchor, fragment);
3382
3467
  };
3383
3468
  var root$74 = $.from_html(`<span> </span>`);
3384
- var root_1$16 = $.from_html(`<span data-scope="command" data-part="item-hint"> </span>`);
3469
+ var root_1$17 = $.from_html(`<span data-scope="command" data-part="item-hint"> </span>`);
3385
3470
  var root_2$12 = $.from_html(`<div><!> <!></div>`);
3386
3471
  var root_3$6 = $.from_html(`<input/>`);
3387
3472
  var root_4$5 = $.from_html(`<div> </div>`);
@@ -3669,7 +3754,7 @@ var rest_excludes$72 = /* @__PURE__ */ new Set([
3669
3754
  "children"
3670
3755
  ]);
3671
3756
  var root$73 = $.from_html(`<div data-scope="comment" data-part="avatar"><!></div>`);
3672
- var root_1$15 = $.from_html(`<span data-scope="comment" data-part="author"> </span>`);
3757
+ var root_1$16 = $.from_html(`<span data-scope="comment" data-part="author"> </span>`);
3673
3758
  var root_2$11 = $.from_html(`<time data-scope="comment" data-part="datetime"> </time>`);
3674
3759
  var root_3$5 = $.from_html(`<header data-scope="comment" data-part="header"><!> <!></header>`);
3675
3760
  var root_4$4 = $.from_html(`<div data-scope="comment" data-part="actions"><!></div>`);
@@ -3699,7 +3784,7 @@ function Comment$1($$anchor, $$props) {
3699
3784
  var header = root_3$5();
3700
3785
  var node_3 = $.child(header);
3701
3786
  var consequent_1 = ($$anchor) => {
3702
- var span = root_1$15();
3787
+ var span = root_1$16();
3703
3788
  var text = $.only_child(span, true);
3704
3789
  $.template_effect(() => $.set_text(text, $$props.author));
3705
3790
  $.append($$anchor, span);
@@ -3857,7 +3942,10 @@ injectComponentStyle("container");
3857
3942
  * field where the focused segment takes the flat ink fill. The API is
3858
3943
  * Ark's own — Root, Label, Control, SegmentGroup, Segment, SegmentContext,
3859
3944
  * HiddenInput. */
3860
- const DateInput = DateInput$1;
3945
+ const DateInput = {
3946
+ ...DateInput$1,
3947
+ Root: DateInputRoot
3948
+ };
3861
3949
  injectComponentStyle("date-input");
3862
3950
  //#endregion
3863
3951
  //#region src/components/date-picker/index.ts
@@ -3867,7 +3955,10 @@ injectComponentStyle("date-input");
3867
3955
  * Root, Label, Control, Input, Trigger, ClearTrigger, Positioner,
3868
3956
  * Content, View, ViewControl, ViewTrigger, RangeText, PrevTrigger,
3869
3957
  * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
3870
- const DatePicker = DatePicker$1;
3958
+ const DatePicker = {
3959
+ ...DatePicker$1,
3960
+ Root: DatePickerRoot
3961
+ };
3871
3962
  injectComponentStyle("date-picker");
3872
3963
  //#endregion
3873
3964
  //#region src/components/descriptions/Descriptions.svelte
@@ -4006,15 +4097,16 @@ var rest_excludes$65 = /* @__PURE__ */ new Set([
4006
4097
  "max",
4007
4098
  "placeholder",
4008
4099
  "addLabel",
4100
+ "size",
4009
4101
  "disabled",
4010
4102
  "invalid"
4011
4103
  ]);
4012
4104
  var root$66 = $.from_svg(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"></path></svg>`);
4013
- var root_1$14 = $.from_html(`<div data-scope="dynamic-input" data-part="row"><!> <!></div>`);
4105
+ var root_1$15 = $.from_html(`<div data-scope="dynamic-input" data-part="row"><!> <!></div>`);
4014
4106
  var root_2$10 = $.from_html(`<div><!> <div data-scope="dynamic-input" data-part="add"><!></div></div>`);
4015
4107
  function DynamicInput$1($$anchor, $$props) {
4016
4108
  $.push($$props, true);
4017
- let value = $.prop($$props, "value", 31, () => $.proxy([""])), min = $.prop($$props, "min", 3, 0), addLabel = $.prop($$props, "addLabel", 3, "Add entry"), disabled = $.prop($$props, "disabled", 3, false), invalid = $.prop($$props, "invalid", 3, false), rest = $.rest_props($$props, rest_excludes$65);
4109
+ let value = $.prop($$props, "value", 31, () => $.proxy([""])), min = $.prop($$props, "min", 3, 0), addLabel = $.prop($$props, "addLabel", 3, "Add entry"), size = $.prop($$props, "size", 3, "md"), disabled = $.prop($$props, "disabled", 3, false), invalid = $.prop($$props, "invalid", 3, false), rest = $.rest_props($$props, rest_excludes$65);
4018
4110
  const canRemove = $.derived(() => value().length > Math.max(min(), 1));
4019
4111
  const canAdd = $.derived(() => $$props.max === void 0 || value().length < $$props.max);
4020
4112
  function update(index, next) {
@@ -4037,7 +4129,7 @@ function DynamicInput$1($$anchor, $$props) {
4037
4129
  }));
4038
4130
  var node = $.child(div);
4039
4131
  $.each(node, 17, value, $.index, ($$anchor, entry, index) => {
4040
- var div_1 = root_1$14();
4132
+ var div_1 = root_1$15();
4041
4133
  var node_1 = $.child(div_1);
4042
4134
  Input(node_1, {
4043
4135
  get value() {
@@ -4052,6 +4144,9 @@ function DynamicInput$1($$anchor, $$props) {
4052
4144
  get invalid() {
4053
4145
  return invalid();
4054
4146
  },
4147
+ get size() {
4148
+ return size();
4149
+ },
4055
4150
  oninput: (event) => update(index, event.currentTarget.value)
4056
4151
  });
4057
4152
  var node_2 = $.sibling(node_1, 2);
@@ -4060,6 +4155,9 @@ function DynamicInput$1($$anchor, $$props) {
4060
4155
  Button(node_2, {
4061
4156
  variant: "ghost",
4062
4157
  square: true,
4158
+ get size() {
4159
+ return size();
4160
+ },
4063
4161
  get disabled() {
4064
4162
  return $.get($0);
4065
4163
  },
@@ -4081,6 +4179,9 @@ function DynamicInput$1($$anchor, $$props) {
4081
4179
  let $0 = $.derived(() => disabled() || !$.get(canAdd));
4082
4180
  Button(node_3, {
4083
4181
  variant: "ghost",
4182
+ get size() {
4183
+ return size();
4184
+ },
4084
4185
  get disabled() {
4085
4186
  return $.get($0);
4086
4187
  },
@@ -4112,7 +4213,10 @@ injectComponentStyle("dynamic-input");
4112
4213
  * reading, the full field recipe while editing. The API is Ark's own —
4113
4214
  * Root, Area, Label, Preview, Input, EditTrigger, SubmitTrigger,
4114
4215
  * CancelTrigger, Control. */
4115
- const Editable = Editable$1;
4216
+ const Editable = {
4217
+ ...Editable$1,
4218
+ Root: EditableRoot
4219
+ };
4116
4220
  injectComponentStyle("editable");
4117
4221
  //#endregion
4118
4222
  //#region src/components/ellipsis/Ellipsis.svelte
@@ -4285,7 +4389,10 @@ injectComponentStyle("fieldset");
4285
4389
  * Dropzone, HiddenInput, ItemGroup, Item, ItemName, ItemSizeText,
4286
4390
  * ItemPreview, ItemPreviewImage, ItemDeleteTrigger, ClearTrigger,
4287
4391
  * Context. */
4288
- const FileUpload = FileUpload$1;
4392
+ const FileUpload = {
4393
+ ...FileUpload$1,
4394
+ Root: FileUploadRoot
4395
+ };
4289
4396
  injectComponentStyle("file-upload");
4290
4397
  //#endregion
4291
4398
  //#region src/components/float-button/context.ts
@@ -4303,16 +4410,18 @@ var rest_excludes$58 = /* @__PURE__ */ new Set([
4303
4410
  "$$legacy",
4304
4411
  "open",
4305
4412
  "placement",
4413
+ "size",
4306
4414
  "children"
4307
4415
  ]);
4308
4416
  var root$59 = $.from_html(`<div><!></div>`);
4309
4417
  function FloatButton$1($$anchor, $$props) {
4310
4418
  $.push($$props, true);
4311
- let open = $.prop($$props, "open", 15, false), placement = $.prop($$props, "placement", 3, "bottom-end"), rest = $.rest_props($$props, rest_excludes$58);
4419
+ let open = $.prop($$props, "open", 15, false), placement = $.prop($$props, "placement", 3, "bottom-end"), size = $.prop($$props, "size", 3, "lg"), rest = $.rest_props($$props, rest_excludes$58);
4312
4420
  setContext(FLOAT_BUTTON_KEY, {
4313
4421
  get open() {
4314
4422
  return open();
4315
4423
  },
4424
+ size: size(),
4316
4425
  toggle: () => open(!open()),
4317
4426
  close: () => open(false)
4318
4427
  });
@@ -4337,30 +4446,40 @@ function FloatButtonItem($$anchor, $$props) {
4337
4446
  $.push($$props, true);
4338
4447
  let disabled = $.prop($$props, "disabled", 3, false);
4339
4448
  const context = useFloatButton();
4449
+ const STEP_DOWN = {
4450
+ lg: "md",
4451
+ md: "sm",
4452
+ sm: "sm"
4453
+ };
4340
4454
  var div = root$58();
4341
4455
  var node = $.child(div);
4342
- Button(node, {
4343
- variant: "outline",
4344
- square: true,
4345
- size: "md",
4346
- get disabled() {
4347
- return disabled();
4348
- },
4349
- get "aria-label"() {
4350
- return $$props.label;
4351
- },
4352
- onclick: () => {
4353
- $$props.onclick?.();
4354
- context?.close();
4355
- },
4356
- children: ($$anchor, $$slotProps) => {
4357
- var fragment = $.comment();
4358
- var node_1 = $.first_child(fragment);
4359
- $.snippet(node_1, () => $$props.children ?? $.noop);
4360
- $.append($$anchor, fragment);
4361
- },
4362
- $$slots: { default: true }
4363
- });
4456
+ {
4457
+ let $0 = $.derived(() => context ? STEP_DOWN[context.size] : "md");
4458
+ Button(node, {
4459
+ variant: "outline",
4460
+ square: true,
4461
+ get size() {
4462
+ return $.get($0);
4463
+ },
4464
+ get disabled() {
4465
+ return disabled();
4466
+ },
4467
+ get "aria-label"() {
4468
+ return $$props.label;
4469
+ },
4470
+ onclick: () => {
4471
+ $$props.onclick?.();
4472
+ context?.close();
4473
+ },
4474
+ children: ($$anchor, $$slotProps) => {
4475
+ var fragment = $.comment();
4476
+ var node_1 = $.first_child(fragment);
4477
+ $.snippet(node_1, () => $$props.children ?? $.noop);
4478
+ $.append($$anchor, fragment);
4479
+ },
4480
+ $$slots: { default: true }
4481
+ });
4482
+ }
4364
4483
  var span = $.sibling(node, 2);
4365
4484
  var text = $.only_child(span, true);
4366
4485
  $.reset(div);
@@ -4374,18 +4493,21 @@ function FloatButtonTrigger($$anchor, $$props) {
4374
4493
  $.push($$props, true);
4375
4494
  const context = useFloatButton();
4376
4495
  {
4377
- let $0 = $.derived(() => $$props.label || "Actions");
4378
- let $1 = $.derived(() => context?.open ?? false);
4496
+ let $0 = $.derived(() => context?.size ?? "lg");
4497
+ let $1 = $.derived(() => $$props.label || "Actions");
4498
+ let $2 = $.derived(() => context?.open ?? false);
4379
4499
  Button($$anchor, {
4380
4500
  variant: "solid",
4381
4501
  square: true,
4382
- size: "lg",
4502
+ get size() {
4503
+ return $.get($0);
4504
+ },
4383
4505
  onclick: () => context?.toggle(),
4384
4506
  get "aria-label"() {
4385
- return $.get($0);
4507
+ return $.get($1);
4386
4508
  },
4387
4509
  get "aria-expanded"() {
4388
- return $.get($1);
4510
+ return $.get($2);
4389
4511
  },
4390
4512
  children: ($$anchor, $$slotProps) => {
4391
4513
  var fragment_1 = $.comment();
@@ -4481,7 +4603,12 @@ function Form$1($$anchor, $$props) {
4481
4603
  return (issue.path ?? []).map((segment) => typeof segment === "object" ? segment.key : segment).join(".");
4482
4604
  }
4483
4605
  let run = 0;
4484
- async function runValidate() {
4606
+ /** A field owns the issues that live at its name or deeper inside it
4607
+ * ("topics.0" belongs to the "topics" field). */
4608
+ function inScope(name, scope) {
4609
+ return name === scope || name.startsWith(scope + ".");
4610
+ }
4611
+ async function runValidate(scope) {
4485
4612
  const seq = ++run;
4486
4613
  const next = /* @__PURE__ */ new Map();
4487
4614
  if ($$props.validate) for (const error of await $$props.validate($$props.state)) next.set(error.name, error.message);
@@ -4492,6 +4619,13 @@ function Form$1($$anchor, $$props) {
4492
4619
  if (!next.has(name)) next.set(name, issue.message);
4493
4620
  }
4494
4621
  }
4622
+ if (scope != null) {
4623
+ const merged = /* @__PURE__ */ new Map();
4624
+ for (const [name, message] of errors) if (!inScope(name, scope)) merged.set(name, message);
4625
+ for (const [name, message] of next) if (inScope(name, scope)) merged.set(name, message);
4626
+ if (seq === run) errors = merged;
4627
+ return merged;
4628
+ }
4495
4629
  if (seq === run) errors = next;
4496
4630
  return next;
4497
4631
  }
@@ -4518,8 +4652,9 @@ function Form$1($$anchor, $$props) {
4518
4652
  if (!validateOn().includes(event.type)) return;
4519
4653
  const target = event.target;
4520
4654
  if (!target || !("value" in target)) return;
4655
+ const scope = target.closest?.("[data-form-field]")?.getAttribute("data-form-field") ?? void 0;
4521
4656
  clearTimeout(timer);
4522
- timer = setTimeout(() => void runValidate(), event.type === "input" ? 300 : 0);
4657
+ timer = setTimeout(() => void runValidate(scope), event.type === "input" ? 300 : 0);
4523
4658
  }
4524
4659
  var $$exports = { validate };
4525
4660
  var form = root$57();
@@ -4556,7 +4691,7 @@ var rest_excludes$56 = /* @__PURE__ */ new Set([
4556
4691
  "children"
4557
4692
  ]);
4558
4693
  var root$56 = $.from_html(`<!> <!> <!> <!>`, 1);
4559
- var root_1$13 = $.from_html(`<div><!></div>`);
4694
+ var root_1$14 = $.from_html(`<div><!></div>`);
4560
4695
  function FormField$1($$anchor, $$props) {
4561
4696
  $.push($$props, true);
4562
4697
  let required = $.prop($$props, "required", 3, false), invalid = $.prop($$props, "invalid", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$56);
@@ -4564,7 +4699,7 @@ function FormField$1($$anchor, $$props) {
4564
4699
  const formError = $.derived(() => $$props.name ? form?.errors().get($$props.name) : void 0);
4565
4700
  const fieldInvalid = $.derived(() => invalid() || $.get(formError) != null);
4566
4701
  const fieldDisabled = $.derived(() => disabled() || (form?.disabled ?? false));
4567
- var div = root_1$13();
4702
+ var div = root_1$14();
4568
4703
  $.attribute_effect(div, () => ({
4569
4704
  ...rest,
4570
4705
  "data-form-field": $$props.name
@@ -4733,12 +4868,17 @@ var rest_excludes$54 = /* @__PURE__ */ new Set([
4733
4868
  "$$legacy",
4734
4869
  "size",
4735
4870
  "label",
4871
+ "name",
4736
4872
  "children"
4737
4873
  ]);
4738
- var root$54 = $.from_html(`<span><!></span>`);
4874
+ var root$54 = $.from_svg(`<svg fill="currentColor" aria-hidden="true"></svg>`);
4875
+ var root_1$13 = $.from_html(`<span><!></span>`);
4739
4876
  function Icon$1($$anchor, $$props) {
4877
+ $.push($$props, true);
4740
4878
  let size = $.prop($$props, "size", 3, "inherit"), rest = $.rest_props($$props, rest_excludes$54);
4741
- var span = root$54();
4879
+ const glyph = $$props.name && $$props.children == null ? getIcon($$props.name) : void 0;
4880
+ if ($$props.name && $$props.children == null && !glyph) console.error(`[icons] unknown icon name "${$$props.name}" — extend packages/icons/icons.config.json and rerun the generator`);
4881
+ var span = root_1$13();
4742
4882
  $.attribute_effect(span, () => ({
4743
4883
  ...rest,
4744
4884
  role: $$props.label != null ? "img" : void 0,
@@ -4749,9 +4889,26 @@ function Icon$1($$anchor, $$props) {
4749
4889
  "data-size": size()
4750
4890
  }));
4751
4891
  var node = $.child(span);
4752
- $.snippet(node, () => $$props.children ?? $.noop);
4892
+ var consequent = ($$anchor) => {
4893
+ var fragment = $.comment();
4894
+ var node_1 = $.first_child(fragment);
4895
+ $.snippet(node_1, () => $$props.children);
4896
+ $.append($$anchor, fragment);
4897
+ };
4898
+ var consequent_1 = ($$anchor) => {
4899
+ var svg = root$54();
4900
+ $.html(svg, () => glyph.body, true);
4901
+ $.reset(svg);
4902
+ $.template_effect(() => $.set_attribute(svg, "viewBox", `0 0 ${glyph.width ?? 24 ?? ""} ${glyph.height ?? 24 ?? ""}`));
4903
+ $.append($$anchor, svg);
4904
+ };
4905
+ $.if(node, ($$render) => {
4906
+ if ($$props.children) $$render(consequent);
4907
+ else if (glyph) $$render(consequent_1, 1);
4908
+ });
4753
4909
  $.reset(span);
4754
4910
  $.append($$anchor, span);
4911
+ $.pop();
4755
4912
  }
4756
4913
  //#endregion
4757
4914
  //#region src/components/icon/index.ts
@@ -5513,7 +5670,10 @@ injectComponentStyle("list");
5513
5670
  * Ark's own — Root, Label, Input, Content, Empty, Item, ItemText,
5514
5671
  * ItemIndicator, ItemGroup, ItemGroupLabel, ValueText, plus
5515
5672
  * createListCollection. */
5516
- const Listbox = Listbox$1;
5673
+ const Listbox = {
5674
+ ...Listbox$1,
5675
+ Root: ListboxRoot
5676
+ };
5517
5677
  injectComponentStyle("listbox");
5518
5678
  //#endregion
5519
5679
  //#region src/components/marquee/index.ts
@@ -5574,8 +5734,14 @@ injectComponentStyle("masonry");
5574
5734
  * elevation, hover as light on the row, checked items as the flat ink fill.
5575
5735
  * The API is Ark's own — Root, Trigger, ContextTrigger, Indicator, Positioner,
5576
5736
  * Content, Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel,
5577
- * TriggerItem, Separator, Arrow, ArrowTip. */
5578
- const Menu = Menu$1;
5737
+ * TriggerItem, Separator, Arrow, ArrowTip. Ark's namespace is frozen —
5738
+ * spread copies the members so Root and Content can be the sized
5739
+ * wrappers while the rest stay Ark's own parts. */
5740
+ const Menu = {
5741
+ ...Menu$1,
5742
+ Root: MenuRoot,
5743
+ Content: MenuContent
5744
+ };
5579
5745
  injectComponentStyle("menu");
5580
5746
  //#endregion
5581
5747
  //#region src/components/menubar/Menubar.svelte
@@ -5793,13 +5959,14 @@ var rest_excludes$33 = /* @__PURE__ */ new Set([
5793
5959
  "max",
5794
5960
  "level",
5795
5961
  "label",
5962
+ "size",
5796
5963
  "children"
5797
5964
  ]);
5798
5965
  var root$32 = $.from_html(`<!> <!> <!>`, 1);
5799
5966
  var root_1$7 = $.from_html(`<div><!></div>`);
5800
5967
  function Meter$1($$anchor, $$props) {
5801
5968
  $.push($$props, true);
5802
- let min = $.prop($$props, "min", 3, 0), max = $.prop($$props, "max", 3, 100), level = $.prop($$props, "level", 3, "normal"), rest = $.rest_props($$props, rest_excludes$33);
5969
+ let min = $.prop($$props, "min", 3, 0), max = $.prop($$props, "max", 3, 100), level = $.prop($$props, "level", 3, "normal"), size = $.prop($$props, "size", 3, "md"), rest = $.rest_props($$props, rest_excludes$33);
5803
5970
  const ratio = $.derived(() => {
5804
5971
  const span = max() - min();
5805
5972
  return span > 0 ? Math.min(Math.max(($$props.value - min()) / span, 0), 1) : 0;
@@ -5815,6 +5982,7 @@ function Meter$1($$anchor, $$props) {
5815
5982
  "data-scope": "meter",
5816
5983
  "data-part": "root",
5817
5984
  "data-level": level() !== "normal" ? level() : void 0,
5985
+ "data-size": size(),
5818
5986
  [$.STYLE]: { "--_percent": `${$.get(ratio) * 100}%` }
5819
5987
  }));
5820
5988
  var node = $.child(div);
@@ -5882,7 +6050,10 @@ injectComponentStyle("navigation-menu");
5882
6050
  * rides inside the field as one seal split by a hairline, numbers set in
5883
6051
  * tabular figures. The API is Ark's own — Root, Label, Control, Input,
5884
6052
  * ValueText, IncrementTrigger, DecrementTrigger, Scrubber. */
5885
- const NumberInput = NumberInput$1;
6053
+ const NumberInput = {
6054
+ ...NumberInput$1,
6055
+ Root: NumberInputRoot
6056
+ };
5886
6057
  injectComponentStyle("number-input");
5887
6058
  //#endregion
5888
6059
  //#region src/components/pagination/index.ts
@@ -5892,7 +6063,10 @@ injectComponentStyle("number-input");
5892
6063
  * Parts: Root, Item (page seals), Ellipsis, PrevTrigger, NextTrigger,
5893
6064
  * FirstTrigger, LastTrigger. Items carry data-selected.
5894
6065
  */
5895
- const Pagination = Pagination$1;
6066
+ const Pagination = {
6067
+ ...Pagination$1,
6068
+ Root: PaginationRoot
6069
+ };
5896
6070
  injectComponentStyle("pagination");
5897
6071
  //#endregion
5898
6072
  //#region src/components/password-input/index.ts
@@ -5900,14 +6074,20 @@ injectComponentStyle("pagination");
5900
6074
  * eye sits quiet at the field's edge and swaps in place — no shift, no
5901
6075
  * noise. The API is Ark's own — Root, Label, Control, Input, Indicator,
5902
6076
  * VisibilityTrigger. */
5903
- const PasswordInput = PasswordInput$1;
6077
+ const PasswordInput = {
6078
+ ...PasswordInput$1,
6079
+ Root: PasswordInputRoot
6080
+ };
5904
6081
  injectComponentStyle("password-input");
5905
6082
  //#endregion
5906
6083
  //#region src/components/pin-input/index.ts
5907
6084
  /** Ark's PinInput, dressed in the paper-and-ink system: one character per
5908
6085
  * square-cut seal, centered ink in tabular figures. The API is Ark's own —
5909
6086
  * Root, Label, Control, Input, HiddenInput. */
5910
- const PinInput = PinInput$1;
6087
+ const PinInput = {
6088
+ ...PinInput$1,
6089
+ Root: PinInputRoot
6090
+ };
5911
6091
  injectComponentStyle("pin-input");
5912
6092
  //#endregion
5913
6093
  //#region src/components/popconfirm/Popconfirm.svelte
@@ -6052,7 +6232,10 @@ injectComponentStyle("popover");
6052
6232
  * groove that the primary ink fills at the machine's pace. The API is
6053
6233
  * Ark's own — Root, Label, ValueText, Track, Range, View, Circle,
6054
6234
  * CircleTrack, CircleRange. */
6055
- const Progress = Progress$1;
6235
+ const Progress = {
6236
+ ...Progress$1,
6237
+ Root: ProgressRoot
6238
+ };
6056
6239
  injectComponentStyle("progress");
6057
6240
  //#endregion
6058
6241
  //#region src/components/progress-group/ProgressGroup.svelte
@@ -6145,7 +6328,10 @@ injectComponentStyle("qr-code");
6145
6328
  * full-circle seals that fill flat with primary ink when chosen, the dot
6146
6329
  * punched through as paper. The API is Ark's own — Root, Label, Item,
6147
6330
  * ItemText, ItemControl, Indicator, ItemHiddenInput. */
6148
- const RadioGroup = RadioGroup$1;
6331
+ const RadioGroup = {
6332
+ ...RadioGroup$1,
6333
+ Root: RadioGroupRoot
6334
+ };
6149
6335
  injectComponentStyle("radio-group");
6150
6336
  //#endregion
6151
6337
  //#region src/components/rating-group/index.ts
@@ -6153,7 +6339,10 @@ injectComponentStyle("radio-group");
6153
6339
  * seals whose glyphs take the primary pigment as they light up. The API is
6154
6340
  * Ark's own — Root, Label, Control, Item, HiddenInput (plus the Context and
6155
6341
  * ItemContext render helpers). */
6156
- const RatingGroup = RatingGroup$1;
6342
+ const RatingGroup = {
6343
+ ...RatingGroup$1,
6344
+ Root: RatingGroupRoot
6345
+ };
6157
6346
  injectComponentStyle("rating-group");
6158
6347
  //#endregion
6159
6348
  //#region src/components/scroll-area/index.ts
@@ -6164,11 +6353,13 @@ const ScrollArea = ScrollArea$1;
6164
6353
  injectComponentStyle("scroll-area");
6165
6354
  //#endregion
6166
6355
  //#region src/components/segment-group/index.ts
6167
- /** Ark's SegmentGroup, dressed in the paper-and-ink system: a hairline tray
6168
- * where one flat ink plate travels beneath the checked seal. The API is
6169
- * Ark's own — Root, Label, Indicator, Item, ItemText, ItemControl,
6356
+ /** SegmentGroup, dressed in the paper-and-ink system: a hairline tray
6357
+ * where one flat ink plate travels beneath the checked seal. The parts - Root, Label, Indicator, Item, ItemText, ItemControl,
6170
6358
  * ItemHiddenInput. */
6171
- const SegmentGroup = SegmentGroup$1;
6359
+ const SegmentGroup = {
6360
+ ...SegmentGroup$1,
6361
+ Root: SegmentGroupRoot
6362
+ };
6172
6363
  injectComponentStyle("segment-group");
6173
6364
  //#endregion
6174
6365
  //#region src/components/select/index.ts
@@ -6177,7 +6368,10 @@ injectComponentStyle("segment-group");
6177
6368
  * row taking the flat ink fill. The API is Ark's own — Root, Label, Control,
6178
6369
  * Trigger, ValueText, Indicator, ClearTrigger, HiddenSelect, Positioner,
6179
6370
  * Content, List, Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
6180
- const Select = Select$1;
6371
+ const Select = {
6372
+ ...Select$1,
6373
+ Root: SelectRoot
6374
+ };
6181
6375
  injectComponentStyle("select");
6182
6376
  //#endregion
6183
6377
  //#region src/components/separator/Separator.svelte
@@ -6247,7 +6441,10 @@ injectComponentStyle("skeleton");
6247
6441
  * primary ink runs along, a paper-seal thumb, and hairline tick markers.
6248
6442
  * The API is Ark's own — Root, Label, ValueText, Control, Track, Range,
6249
6443
  * Thumb, MarkerGroup, Marker, DraggingIndicator, HiddenInput. */
6250
- const Slider = Slider$1;
6444
+ const Slider = {
6445
+ ...Slider$1,
6446
+ Root: SliderRoot
6447
+ };
6251
6448
  injectComponentStyle("slider");
6252
6449
  //#endregion
6253
6450
  //#region src/components/split-button/SplitButton.svelte
@@ -6787,7 +6984,10 @@ injectComponentStyle("stat");
6787
6984
  * PrevTrigger, NextTrigger, Progress. Indicator and Separator carry
6788
6985
  * data-complete / data-current / data-incomplete.
6789
6986
  */
6790
- const Steps = Steps$1;
6987
+ const Steps = {
6988
+ ...Steps$1,
6989
+ Root: StepsRoot
6990
+ };
6791
6991
  injectComponentStyle("steps");
6792
6992
  //#endregion
6793
6993
  //#region src/components/swap/index.ts
@@ -6803,7 +7003,10 @@ injectComponentStyle("swap");
6803
7003
  * in the inset shade of the paper and fills flat with primary ink when on,
6804
7004
  * the thumb sliding on the spring. The API is Ark's own — Root, Label,
6805
7005
  * Control, Thumb, HiddenInput. */
6806
- const Switch = Switch$1;
7006
+ const Switch = {
7007
+ ...Switch$1,
7008
+ Root: SwitchRoot
7009
+ };
6807
7010
  injectComponentStyle("switch");
6808
7011
  //#endregion
6809
7012
  //#region src/components/table/table-utils.ts
@@ -7505,7 +7708,7 @@ function DataTable$1($$anchor, $$props) {
7505
7708
  var node_14 = $.sibling(div_5, 2);
7506
7709
  var consequent_12 = ($$anchor) => {
7507
7710
  const pagination = $.derived(() => table.atoms.pagination.get());
7508
- const sizeItems = $.derived(() => createListCollection({ items: pageSizeOptions().map((size) => ({
7711
+ const sizeItems = $.derived(() => createListCollection$1({ items: pageSizeOptions().map((size) => ({
7509
7712
  label: `${size} / page`,
7510
7713
  value: String(size)
7511
7714
  })) }));
@@ -7778,7 +7981,10 @@ injectComponentStyle("table");
7778
7981
  * Parts: Root, List, Trigger, Content, Indicator (machine-positioned ink
7779
7982
  * bar on the list rule).
7780
7983
  */
7781
- const Tabs = Tabs$1;
7984
+ const Tabs = {
7985
+ ...Tabs$1,
7986
+ Root: TabsRoot
7987
+ };
7782
7988
  injectComponentStyle("tabs");
7783
7989
  //#endregion
7784
7990
  //#region src/components/tags-input/index.ts
@@ -7787,7 +7993,10 @@ injectComponentStyle("tabs");
7787
7993
  * is Ark's own — Root, Label, Control, Input, ClearTrigger, Item,
7788
7994
  * ItemPreview, ItemText, ItemInput, ItemDeleteTrigger, HiddenInput,
7789
7995
  * Context. */
7790
- const TagsInput = TagsInput$1;
7996
+ const TagsInput = {
7997
+ ...TagsInput$1,
7998
+ Root: TagsInputRoot
7999
+ };
7791
8000
  injectComponentStyle("tags-input");
7792
8001
  //#endregion
7793
8002
  //#region src/components/textarea/Textarea.svelte
@@ -8339,7 +8548,10 @@ injectComponentStyle("checkbox");
8339
8548
  /** Ark's ToggleGroup, dressed in the paper-and-ink system: a hairline tray
8340
8549
  * of quiet seals where the pressed item takes the flat ink fill. The API is
8341
8550
  * Ark's own — Root, Item. */
8342
- const ToggleGroup = ToggleGroup$1;
8551
+ const ToggleGroup = {
8552
+ ...ToggleGroup$1,
8553
+ Root: ToggleGroupRoot
8554
+ };
8343
8555
  injectComponentStyle("toggle-group");
8344
8556
  //#endregion
8345
8557
  //#region src/components/tooltip/index.ts
@@ -8494,6 +8706,7 @@ var rest_excludes$1 = /* @__PURE__ */ new Set([
8494
8706
  "data",
8495
8707
  "placeholder",
8496
8708
  "filterable",
8709
+ "size",
8497
8710
  "disabled"
8498
8711
  ]);
8499
8712
  var root = $.from_svg(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg>`);
@@ -8505,7 +8718,7 @@ var root_5 = $.from_html(`<p data-scope="tree-select" data-part="empty">Nothing
8505
8718
  var root_6 = $.from_html(`<!> <div data-scope="tree-select" data-part="body"><!></div>`, 1);
8506
8719
  function TreeSelect$1($$anchor, $$props) {
8507
8720
  $.push($$props, true);
8508
- let value = $.prop($$props, "value", 15), placeholder = $.prop($$props, "placeholder", 3, "Select…"), filterable = $.prop($$props, "filterable", 3, false), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$1);
8721
+ let value = $.prop($$props, "value", 15), placeholder = $.prop($$props, "placeholder", 3, "Select…"), filterable = $.prop($$props, "filterable", 3, false), size = $.prop($$props, "size", 3, "md"), disabled = $.prop($$props, "disabled", 3, false), rest = $.rest_props($$props, rest_excludes$1);
8509
8722
  let open = $.state(false);
8510
8723
  let query = $.state("");
8511
8724
  const filterFns = useFilter({ sensitivity: "base" });
@@ -8579,6 +8792,7 @@ function TreeSelect$1($$anchor, $$props) {
8579
8792
  type: "button",
8580
8793
  "data-scope": "tree-select",
8581
8794
  "data-part": "control",
8795
+ "data-size": size(),
8582
8796
  "data-open": $.get(open) ? "" : void 0,
8583
8797
  "data-placeholder": $.get(label) == null ? "" : void 0,
8584
8798
  disabled: disabled()
@@ -8613,6 +8827,9 @@ function TreeSelect$1($$anchor, $$props) {
8613
8827
  ArkPopover_Content($$anchor, {
8614
8828
  "data-scope": "tree-select",
8615
8829
  "data-part": "content",
8830
+ get "data-size"() {
8831
+ return size();
8832
+ },
8616
8833
  children: ($$anchor, $$slotProps) => {
8617
8834
  var fragment_14 = root_6();
8618
8835
  var node_17 = $.first_child(fragment_14);
@@ -8731,7 +8948,10 @@ injectComponentStyle("tree-view");
8731
8948
  * BranchTrigger, BranchIndicator, BranchText, BranchContent,
8732
8949
  * BranchIndentGuide, Item, ItemText, ItemIndicator, NodeCheckbox,
8733
8950
  * NodeRenameInput, plus createTreeCollection. */
8734
- const TreeView = TreeView$1;
8951
+ const TreeView = {
8952
+ ...TreeView$1,
8953
+ Root: TreeViewRoot
8954
+ };
8735
8955
  injectComponentStyle("tree-view");
8736
8956
  //#endregion
8737
8957
  //#region src/components/watermark/Watermark.svelte
@@ -8820,4 +9040,4 @@ function Watermark$1($$anchor, $$props) {
8820
9040
  const Watermark = Watermark$1;
8821
9041
  injectComponentStyle("watermark");
8822
9042
  //#endregion
8823
- export { Accordion, Affix, Ai, AiAction, Attachment as AiAttachment, Attachment, Attachments as AiAttachments, Attachments, AiMessage, AiPromptInput, AiReasoning, AiResponse, AiSource, AiSources, AiSuggestion, AiTool, Alert, AngleSlider, AspectRatio, AutoComplete, Avatar, AvatarGroup, BackTop, Badge, Banner, Breadcrumb, Button, ButtonGroup, Calendar, Card, Carousel, CascadeSelect, Checkbox, CheckboxGroup, Chip, ClientOnly, Clipboard, Collapsible, ColorPicker, Combobox, Command, Comment, ConfigProvider, Container, DataTable, DateInput, DatePicker, Descriptions, Dialog, DownloadTrigger, Drawer, DynamicInput, Editable, Ellipsis, Empty, FLOAT_BUTTON_KEY, Field, Fieldset, FileUpload, FlexRender, FloatButton, FloatingPanel, FocusTrap, Form, FormField, Format, Frame, Grid, Highlight, HoverCard, Icon, Image, ImageCropper, ImageViewer, Input, InputGroup, JsonTreeView, Kbd, Layout, Link, List, Listbox, Marquee, Masonry, Mentions, MentionsVessel, Menu, Menubar, Meter, NavigationMenu, NumberInput, PageHeader, Pagination, PasswordInput, PinInput, Popconfirm, Popover, Presence, PresenceProvider, Progress, ProgressGroup, QrCode, RadioGroup, RatingGroup, ScrollArea, SegmentGroup, Select, Separator, SignaturePad, Skeleton, Slider, Spinner, SplitButton, Splitter, Stack, Stat, Steps, Swap, Switch, Tabs, TagsInput, Textarea, Timeline, Timer, Toast, Toaster, Toc, Toggle, ToggleGroup, Tooltip, Tour, Transfer, TreeSelect, TreeView, Typography, Watermark, createColumnHelper, createFileTreeCollection, createGridCollection, createToaster, createTreeCollection, splitPresenceProps, useAsyncList, useConfig, useDownload, useListCollection, useListSelection, useMentions, usePresence, usePresenceContext, useTour };
9043
+ export { Accordion, Affix, Ai, AiAction, Attachment as AiAttachment, Attachment, Attachments as AiAttachments, Attachments, AiMessage, AiPromptInput, AiReasoning, AiResponse, AiSource, AiSources, AiSuggestion, AiTool, Alert, AngleSlider, AspectRatio, AutoComplete, Avatar, AvatarGroup, BackTop, Badge, Banner, Breadcrumb, Button, ButtonGroup, Calendar, Card, Carousel, CascadeSelect, Checkbox, CheckboxGroup, Chip, ClientOnly, Clipboard, Collapsible, ColorPicker, Combobox, Command, Comment, ConfigProvider, Container, DataTable, DateInput, DatePicker, Descriptions, Dialog, DownloadTrigger, Drawer, DynamicInput, Editable, Ellipsis, Empty, FLOAT_BUTTON_KEY, Field, Fieldset, FileUpload, FlexRender, FloatButton, FloatingPanel, FocusTrap, Form, FormField, Format, Frame, Grid, Highlight, HoverCard, Icon, Image, ImageCropper, ImageViewer, Input, InputGroup, JsonTreeView, Kbd, Layout, Link, List, Listbox, Marquee, Masonry, Mentions, MentionsVessel, Menu, Menubar, Meter, NavigationMenu, NumberInput, PageHeader, Pagination, PasswordInput, PinInput, Popconfirm, Popover, Presence, PresenceProvider, Progress, ProgressGroup, QrCode, RadioGroup, RatingGroup, ScrollArea, SegmentGroup, Select, Separator, SignaturePad, Skeleton, Slider, Spinner, SplitButton, Splitter, Stack, Stat, Steps, Swap, Switch, Tabs, TagsInput, Textarea, Timeline, Timer, Toast, Toaster, Toc, Toggle, ToggleGroup, Tooltip, Tour, Transfer, TreeSelect, TreeView, Typography, Watermark, createColumnHelper, createFileTreeCollection, createGridCollection, createListCollection, createToaster, createTreeCollection, splitPresenceProps, useAsyncList, useConfig, useDownload, useListCollection, useListSelection, useMentions, usePresence, usePresenceContext, useTour };