@jirawatpyk/aura-react 5.11.0 → 5.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- /* @ds-bundle: {"format":4,"namespace":"Aura","components":[{"name":"Icon"},{"name":"Button"},{"name":"IconButton"},{"name":"Menu"},{"name":"DropdownMenu"},{"name":"Checkbox"},{"name":"StatusPill"},{"name":"TextField"},{"name":"Textarea"},{"name":"Select"},{"name":"RadioGroup"},{"name":"Switch"},{"name":"Combobox"},{"name":"DatePicker"},{"name":"DateRangePicker"},{"name":"Calendar"},{"name":"Alert"},{"name":"Toaster"},{"name":"PasswordField"},{"name":"FormErrorSummary"},{"name":"FilterBar"},{"name":"Command"},{"name":"Tooltip"},{"name":"Dialog"},{"name":"Drawer"},{"name":"DataTable"},{"name":"Card"},{"name":"Tabs"},{"name":"SideNav"},{"name":"Breadcrumb"},{"name":"Avatar"},{"name":"Stack"},{"name":"Grid"},{"name":"Container"},{"name":"AppShell"},{"name":"ActionBar"},{"name":"Separator"},{"name":"Table"},{"name":"Tr"},{"name":"Th"},{"name":"Td"},{"name":"BottomNav"},{"name":"Surface"},{"name":"Stat"},{"name":"TimePicker"},{"name":"FileUpload"},{"name":"ColorSchemeScript"},{"name":"ColorSchemeToggle"},{"name":"Badge"},{"name":"Tag"},{"name":"Progress"},{"name":"Skeleton"},{"name":"EmptyState"},{"name":"Pagination"},{"name":"Accordion"},{"name":"Popover"},{"name":"NumberField"},{"name":"Stepper"},{"name":"SegmentedControl"}]} */
1
+ /* @ds-bundle: {"format":4,"namespace":"Aura","components":[{"name":"Icon"},{"name":"Button"},{"name":"IconButton"},{"name":"Menu"},{"name":"DropdownMenu"},{"name":"Checkbox"},{"name":"StatusPill"},{"name":"TextField"},{"name":"Textarea"},{"name":"Select"},{"name":"FilterSelect"},{"name":"RadioGroup"},{"name":"Switch"},{"name":"Combobox"},{"name":"DatePicker"},{"name":"DateRangePicker"},{"name":"Calendar"},{"name":"Alert"},{"name":"Toaster"},{"name":"PasswordField"},{"name":"FormErrorSummary"},{"name":"FilterBar"},{"name":"Command"},{"name":"Tooltip"},{"name":"Dialog"},{"name":"Drawer"},{"name":"DataTable"},{"name":"Card"},{"name":"Tabs"},{"name":"SideNav"},{"name":"Breadcrumb"},{"name":"Avatar"},{"name":"Stack"},{"name":"Grid"},{"name":"Container"},{"name":"AppShell"},{"name":"ActionBar"},{"name":"Separator"},{"name":"Table"},{"name":"Tr"},{"name":"Th"},{"name":"Td"},{"name":"BottomNav"},{"name":"Surface"},{"name":"Stat"},{"name":"TimePicker"},{"name":"FileUpload"},{"name":"ColorSchemeScript"},{"name":"ColorSchemeToggle"},{"name":"Badge"},{"name":"Tag"},{"name":"Progress"},{"name":"Skeleton"},{"name":"EmptyState"},{"name":"Pagination"},{"name":"Accordion"},{"name":"Popover"},{"name":"NumberField"},{"name":"Stepper"},{"name":"SegmentedControl"}]} */
2
2
  window.Aura = (() => {
3
3
  var __create = Object.create;
4
4
  var __defProp = Object.defineProperty;
@@ -78,6 +78,7 @@ window.Aura = (() => {
78
78
  Field: () => Field,
79
79
  FileUpload: () => FileUpload,
80
80
  FilterBar: () => FilterBar,
81
+ FilterSelect: () => FilterSelect,
81
82
  FormErrorSummary: () => FormErrorSummary,
82
83
  Grid: () => Grid,
83
84
  ICONS: () => ICONS,
@@ -674,11 +675,30 @@ window.Aura = (() => {
674
675
  }
675
676
  function emptyStateElement(props, ref) {
676
677
  const HT = "h" + (props.headingLevel || 3);
678
+ const rest = omit(props, [
679
+ "title",
680
+ "description",
681
+ "icon",
682
+ "action",
683
+ "size",
684
+ "bordered",
685
+ "headingLevel",
686
+ "tone",
687
+ "className",
688
+ "children"
689
+ ]);
677
690
  return /* @__PURE__ */ React4.createElement(
678
691
  "div",
679
692
  {
693
+ ...rest,
680
694
  ref,
681
- className: cx("aura-empty", props.size === "sm" && "is-sm", props.bordered && "is-bordered", props.className)
695
+ className: cx(
696
+ "aura-empty",
697
+ props.size === "sm" && "is-sm",
698
+ props.bordered && "is-bordered",
699
+ props.tone === "danger" && "is-danger",
700
+ props.className
701
+ )
682
702
  },
683
703
  /* @__PURE__ */ React4.createElement("span", { className: "aura-empty__icon", "aria-hidden": true }, /* @__PURE__ */ React4.createElement(Icon, { name: props.icon || /* @__PURE__ */ React4.createElement(IconInbox, null), size: props.size === "sm" ? "md" : "lg" })),
684
704
  /* @__PURE__ */ React4.createElement(HT, { className: "aura-empty__title" }, props.title),
@@ -1654,6 +1674,7 @@ window.Aura = (() => {
1654
1674
  var React15 = __toESM(require_react(), 1);
1655
1675
  var import_react_dom2 = __toESM(require_react_dom(), 1);
1656
1676
  var h4 = React15.createElement;
1677
+ var FILTER_KEY = "__auraFilter";
1657
1678
  var FORM_KEYS = ["name", "form", "value", "defaultValue", "disabled", "autoComplete", "onInput", "onInvalid"];
1658
1679
  var HANDLED_KEYS = FORM_KEYS.concat([
1659
1680
  "onChange",
@@ -1687,20 +1708,49 @@ window.Aura = (() => {
1687
1708
  };
1688
1709
  });
1689
1710
  }
1690
- function initialLabel(props) {
1711
+ function textOf(n3) {
1712
+ if (n3 == null || typeof n3 === "boolean") return "";
1713
+ if (typeof n3 === "string" || typeof n3 === "number") return String(n3);
1714
+ if (Array.isArray(n3)) return n3.map(textOf).join("");
1715
+ return React15.isValidElement(n3) ? textOf(n3.props.children) : "";
1716
+ }
1717
+ function childOptions(children, off) {
1718
+ const out = [];
1719
+ React15.Children.forEach(children, function(c) {
1720
+ if (!React15.isValidElement(c)) return;
1721
+ const p = c.props;
1722
+ if (c.type === "optgroup" || c.type === React15.Fragment)
1723
+ out.push.apply(out, childOptions(p.children, off || c.type === "optgroup" && !!p.disabled));
1724
+ else if (c.type === "option") {
1725
+ const label = textOf(p.children);
1726
+ out.push({ value: p.value != null ? String(p.value) : label, label, disabled: off || !!p.disabled });
1727
+ }
1728
+ });
1729
+ return out;
1730
+ }
1731
+ function initialLabel(props, filter) {
1691
1732
  const opts = (props.options || []).map(function(o) {
1692
1733
  return typeof o === "object" ? o : { value: o, label: o };
1693
- });
1694
- const v = props.value !== void 0 && props.value !== null ? String(props.value) : props.defaultValue !== void 0 && props.defaultValue !== null ? String(props.defaultValue) : props.placeholder ? "" : opts[0] ? opts[0].value : "";
1734
+ }).concat(childOptions(props.children));
1735
+ const first = opts.filter(function(o) {
1736
+ return !o.disabled;
1737
+ })[0];
1738
+ const v = props.value !== void 0 && props.value !== null ? String(props.value) : props.defaultValue !== void 0 && props.defaultValue !== null ? String(props.defaultValue) : props.placeholder ? "" : first ? first.value : "";
1695
1739
  const hit = opts.filter(function(o) {
1696
1740
  return o.value === v;
1697
1741
  })[0];
1698
- if (hit) return { label: hit.label, empty: false };
1699
- return { label: props.placeholder || "", empty: true };
1742
+ if (hit)
1743
+ return {
1744
+ label: filter && filter.allLabel && opts[0] && hit.value === opts[0].value ? filter.allLabel : hit.label,
1745
+ full: hit.label,
1746
+ empty: false
1747
+ };
1748
+ return { label: props.placeholder || "", full: props.placeholder || "", empty: true };
1700
1749
  }
1701
1750
  var Select = React15.forwardRef(function Select2(props, ref) {
1702
1751
  const auto = uid(), id = props.id || auto;
1703
- const rest = omit(props, FIELD_KEYS.concat(["children"]));
1752
+ const filter = props[FILTER_KEY];
1753
+ const rest = omit(props, FIELD_KEYS.concat(["children", FILTER_KEY]));
1704
1754
  const opts = (props.options || []).map(function(o) {
1705
1755
  const v = typeof o === "object" ? o : { value: o, label: o };
1706
1756
  return /* @__PURE__ */ React15.createElement("option", { key: v.value, value: v.value, disabled: v.disabled }, v.label);
@@ -1715,7 +1765,7 @@ window.Aura = (() => {
1715
1765
  const live = !native && mounted;
1716
1766
  const density = useDensity();
1717
1767
  React15.useEffect(function() {
1718
- if (props.label || props["aria-label"] || props["aria-labelledby"] || props.title) return;
1768
+ if (filter || props.label || props["aria-label"] || props["aria-labelledby"] || props.title) return;
1719
1769
  if (document.querySelector('label[for="' + id.replace(/["\\]/g, "\\$&") + '"]')) return;
1720
1770
  devWarnOnce(
1721
1771
  "select-name",
@@ -1724,20 +1774,24 @@ window.Aura = (() => {
1724
1774
  }, []);
1725
1775
  const selRef = React15.useRef(null), trigRef = React15.useRef(null), listRef = React15.useRef(null);
1726
1776
  const shown = React15.useState(function() {
1727
- return initialLabel(props);
1777
+ return initialLabel(props, filter);
1728
1778
  });
1729
1779
  const openState = React15.useState(false), open = openState[0];
1730
1780
  const activeState = React15.useState(-1), active = activeState[0];
1731
1781
  const items2 = React15.useState([]);
1732
1782
  const pos = React15.useState(null);
1733
1783
  const typed = React15.useRef({ text: "", at: 0 });
1784
+ const allLabel = React15.useRef(void 0);
1785
+ allLabel.current = filter ? filter.allLabel : void 0;
1734
1786
  const sync = React15.useCallback(function() {
1735
1787
  const el = selRef.current;
1736
1788
  if (!el) return;
1737
1789
  const o = el.selectedIndex >= 0 ? el.options[el.selectedIndex] : null;
1738
- const next = o ? { label: o.textContent || "", empty: o.value === "" } : { label: "", empty: true };
1790
+ const text2 = o ? o.textContent || "" : "";
1791
+ const short = allLabel.current && el.selectedIndex === 0 ? allLabel.current : text2;
1792
+ const next = o ? { label: short, full: text2, empty: o.value === "" } : { label: "", full: "", empty: true };
1739
1793
  shown[1](function(cur) {
1740
- return cur.label === next.label && cur.empty === next.empty ? cur : next;
1794
+ return cur.label === next.label && cur.full === next.full && cur.empty === next.empty ? cur : next;
1741
1795
  });
1742
1796
  }, []);
1743
1797
  const hook = React15.useCallback(
@@ -1928,12 +1982,16 @@ window.Aura = (() => {
1928
1982
  const t = trigRef.current && trigRef.current.parentElement;
1929
1983
  if (!t) return;
1930
1984
  const r = t.getBoundingClientRect(), below2 = window.innerHeight - r.bottom - 8, above = r.top - 8, want = listRef.current ? listRef.current.scrollHeight : 320, up = below2 < Math.min(want, 200) && above > below2;
1985
+ const lw = listRef.current ? Math.max(r.width, listRef.current.offsetWidth) : r.width;
1986
+ const rtl = getComputedStyle(t).direction === "rtl";
1987
+ const left = lw <= r.width ? r.left : Math.max(8, Math.min(rtl ? r.right - lw : r.left, window.innerWidth - lw - 8));
1931
1988
  pos[1]({
1932
- left: r.left,
1989
+ left,
1933
1990
  width: r.width,
1934
1991
  top: up ? void 0 : r.bottom + 4,
1935
1992
  bottom: up ? window.innerHeight - r.top + 4 : void 0,
1936
- maxHeight: Math.min(320, (up ? above : below2) - 4)
1993
+ maxHeight: Math.min(320, (up ? above : below2) - 4),
1994
+ rtl
1937
1995
  });
1938
1996
  }
1939
1997
  place();
@@ -1966,7 +2024,7 @@ window.Aura = (() => {
1966
2024
  [open, active, pos[0] != null]
1967
2025
  );
1968
2026
  const described = [describedBy(id, props), rest["aria-describedby"]].filter(Boolean).join(" ") || void 0;
1969
- const field = (child) => /* @__PURE__ */ React15.createElement(
2027
+ const field = (child) => filter ? child : /* @__PURE__ */ React15.createElement(
1970
2028
  Field,
1971
2029
  {
1972
2030
  id,
@@ -1981,6 +2039,21 @@ window.Aura = (() => {
1981
2039
  },
1982
2040
  child
1983
2041
  );
2042
+ const nameId = id + "-name";
2043
+ const face = filter ? /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement("span", { id: nameId, className: "aura-filterselect__name", "aria-hidden": true }, filter.name), /* @__PURE__ */ React15.createElement("span", { className: "aura-filterselect__value", "aria-hidden": shown[0].label !== shown[0].full || void 0 }, shown[0].label || " "), shown[0].label !== shown[0].full ? /* @__PURE__ */ React15.createElement("span", { className: "aura-sr-only" }, shown[0].full) : null, /* @__PURE__ */ React15.createElement(Icon, { name: /* @__PURE__ */ React15.createElement(IconChevronDown, null), className: "aura-filterselect__chevron" })) : null;
2044
+ if (!live && filter)
2045
+ return /* @__PURE__ */ React15.createElement("div", { className: cx("aura-filterselect", props.disabled && "is-disabled", props.className) }, /* @__PURE__ */ React15.createElement("span", { className: "aura-filterselect__face", "aria-hidden": true, style: props.style }, face), h4(
2046
+ "select",
2047
+ Object.assign(extra, omit(rest, ["style"]), {
2048
+ ref: selMerged,
2049
+ id,
2050
+ className: "aura-filterselect__native",
2051
+ "aria-label": rest["aria-label"] || (rest["aria-labelledby"] ? void 0 : filter.name),
2052
+ "aria-describedby": described
2053
+ }),
2054
+ opts,
2055
+ props.children
2056
+ ));
1984
2057
  if (!live)
1985
2058
  return field(
1986
2059
  /* @__PURE__ */ React15.createElement("div", { className: cx("aura-input aura-select", props.icon && "has-icon") }, props.icon ? /* @__PURE__ */ React15.createElement(Icon, { name: props.icon, className: "aura-input__icon" }) : null, h4(
@@ -2001,7 +2074,7 @@ window.Aura = (() => {
2001
2074
  const optId = function(i) {
2002
2075
  return id + "-opt-" + i;
2003
2076
  };
2004
- const labelledBy = rest["aria-labelledby"] || (props.label ? labelId : void 0);
2077
+ const labelledBy = rest["aria-labelledby"] || (filter && !rest["aria-label"] ? nameId : props.label ? labelId : void 0);
2005
2078
  const selIndex = selRef.current ? selRef.current.selectedIndex : -1;
2006
2079
  const option = function(it) {
2007
2080
  const sel = selIndex === it.index;
@@ -2047,6 +2120,7 @@ window.Aura = (() => {
2047
2120
  {
2048
2121
  ref: listRef,
2049
2122
  "data-density": density,
2123
+ dir: pos[0] ? pos[0].rtl ? "rtl" : "ltr" : void 0,
2050
2124
  className: "aura-combo__popover aura-select__popover",
2051
2125
  style: pos[0] ? {
2052
2126
  left: pos[0].left,
@@ -2079,10 +2153,17 @@ window.Aura = (() => {
2079
2153
  /* @__PURE__ */ React15.createElement(
2080
2154
  "div",
2081
2155
  {
2082
- className: cx("aura-input aura-select aura-select--custom", props.icon && "has-icon", open && "is-open"),
2156
+ className: cx(
2157
+ filter ? "aura-filterselect" : "aura-input",
2158
+ "aura-select aura-select--custom",
2159
+ props.icon && "has-icon",
2160
+ open && "is-open",
2161
+ filter && props.disabled && "is-disabled",
2162
+ filter && props.className
2163
+ ),
2083
2164
  "data-invalid": props.error ? "" : void 0
2084
2165
  },
2085
- props.icon ? /* @__PURE__ */ React15.createElement(Icon, { name: props.icon, className: "aura-input__icon" }) : null,
2166
+ props.icon && !filter ? /* @__PURE__ */ React15.createElement(Icon, { name: props.icon, className: "aura-input__icon" }) : null,
2086
2167
  h4(
2087
2168
  "select",
2088
2169
  Object.assign(extra, pick(rest, FORM_KEYS), {
@@ -2116,7 +2197,7 @@ window.Aura = (() => {
2116
2197
  type: "button",
2117
2198
  role: "combobox",
2118
2199
  form: id + "-no-form",
2119
- className: "aura-input__control aura-select__trigger",
2200
+ className: filter ? "aura-select__trigger aura-filterselect__face" : "aura-input__control aura-select__trigger",
2120
2201
  disabled: props.disabled,
2121
2202
  tabIndex: rest.tabIndex,
2122
2203
  "aria-haspopup": "listbox",
@@ -2125,7 +2206,7 @@ window.Aura = (() => {
2125
2206
  "aria-activedescendant": open && active >= 0 ? optId(active) : void 0,
2126
2207
  id,
2127
2208
  "aria-label": rest["aria-label"],
2128
- "aria-labelledby": rest["aria-labelledby"],
2209
+ "aria-labelledby": rest["aria-labelledby"] || (filter && !rest["aria-label"] ? nameId : void 0),
2129
2210
  "aria-required": props.required || void 0,
2130
2211
  "aria-invalid": props.error ? true : void 0,
2131
2212
  "aria-describedby": described,
@@ -2148,17 +2229,30 @@ window.Aura = (() => {
2148
2229
  if (selRef.current) selRef.current.dispatchEvent(new FocusEvent("focusout", { bubbles: true }));
2149
2230
  }
2150
2231
  },
2151
- /* @__PURE__ */ React15.createElement("span", { id: id + "-value", className: cx("aura-select__value", shown[0].empty && "is-placeholder") }, shown[0].label || " ")
2232
+ face || /* @__PURE__ */ React15.createElement("span", { id: id + "-value", className: cx("aura-select__value", shown[0].empty && "is-placeholder") }, shown[0].label || " ")
2152
2233
  ),
2153
- /* @__PURE__ */ React15.createElement(Icon, { name: /* @__PURE__ */ React15.createElement(IconChevronDown, null), className: "aura-select__chevron" }),
2234
+ filter ? null : /* @__PURE__ */ React15.createElement(Icon, { name: /* @__PURE__ */ React15.createElement(IconChevronDown, null), className: "aura-select__chevron" }),
2154
2235
  popup
2155
2236
  )
2156
2237
  );
2157
2238
  });
2158
2239
 
2159
- // src/RadioGroup.tsx
2240
+ // src/FilterSelect.tsx
2160
2241
  var React16 = __toESM(require_react(), 1);
2161
- var RadioGroup = React16.forwardRef(function RadioGroup2(props, ref) {
2242
+ var FilterSelect = React16.forwardRef(function FilterSelect2(props, ref) {
2243
+ const onChange = props.onChange;
2244
+ const pass = Object.assign(omit(props, ["label", "allLabel", "onChange"]), {
2245
+ [FILTER_KEY]: { name: props.label, allLabel: props.allLabel },
2246
+ onChange: onChange ? function(e) {
2247
+ onChange(e.target.value);
2248
+ } : void 0
2249
+ });
2250
+ return /* @__PURE__ */ React16.createElement(Select, { ...pass, ref });
2251
+ });
2252
+
2253
+ // src/RadioGroup.tsx
2254
+ var React17 = __toESM(require_react(), 1);
2255
+ var RadioGroup = React17.forwardRef(function RadioGroup2(props, ref) {
2162
2256
  const auto = uid(), id = props.id || auto;
2163
2257
  const st = useMaybeControlled(
2164
2258
  props.value,
@@ -2166,7 +2260,7 @@ window.Aura = (() => {
2166
2260
  props.onChange
2167
2261
  );
2168
2262
  const name = props.name || id;
2169
- const setRef = React16.useCallback(
2263
+ const setRef = React17.useCallback(
2170
2264
  function(el) {
2171
2265
  if (el)
2172
2266
  el.focus = function(opts) {
@@ -2178,7 +2272,7 @@ window.Aura = (() => {
2178
2272
  },
2179
2273
  [ref]
2180
2274
  );
2181
- return /* @__PURE__ */ React16.createElement(
2275
+ return /* @__PURE__ */ React17.createElement(
2182
2276
  "fieldset",
2183
2277
  {
2184
2278
  ref: setRef,
@@ -2187,10 +2281,10 @@ window.Aura = (() => {
2187
2281
  "aria-invalid": props.error ? true : void 0,
2188
2282
  disabled: props.disabled
2189
2283
  },
2190
- props.label ? /* @__PURE__ */ React16.createElement("legend", { className: "aura-field__label" }, props.label, props.required ? /* @__PURE__ */ React16.createElement("span", { className: "aura-field__req", "aria-hidden": true }, " *") : null) : null,
2191
- /* @__PURE__ */ React16.createElement("div", { className: cx("aura-radio-group__list", props.orientation === "horizontal" && "is-horizontal") }, (props.options || []).map(function(o) {
2284
+ props.label ? /* @__PURE__ */ React17.createElement("legend", { className: "aura-field__label" }, props.label, props.required ? /* @__PURE__ */ React17.createElement("span", { className: "aura-field__req", "aria-hidden": true }, " *") : null) : null,
2285
+ /* @__PURE__ */ React17.createElement("div", { className: cx("aura-radio-group__list", props.orientation === "horizontal" && "is-horizontal") }, (props.options || []).map(function(o) {
2192
2286
  const v = typeof o === "object" ? o : { value: o, label: o };
2193
- return /* @__PURE__ */ React16.createElement("label", { key: v.value, className: cx("aura-choice", v.disabled && "is-disabled") }, /* @__PURE__ */ React16.createElement(
2287
+ return /* @__PURE__ */ React17.createElement("label", { key: v.value, className: cx("aura-choice", v.disabled && "is-disabled") }, /* @__PURE__ */ React17.createElement(
2194
2288
  "input",
2195
2289
  {
2196
2290
  type: "radio",
@@ -2204,19 +2298,19 @@ window.Aura = (() => {
2204
2298
  st[1](v.value);
2205
2299
  }
2206
2300
  }
2207
- ), /* @__PURE__ */ React16.createElement("span", { className: "aura-choice__text" }, /* @__PURE__ */ React16.createElement("span", { className: "aura-choice__label" }, v.label), v.description ? /* @__PURE__ */ React16.createElement("span", { className: "aura-choice__desc" }, v.description) : null));
2301
+ ), /* @__PURE__ */ React17.createElement("span", { className: "aura-choice__text" }, /* @__PURE__ */ React17.createElement("span", { className: "aura-choice__label" }, v.label), v.description ? /* @__PURE__ */ React17.createElement("span", { className: "aura-choice__desc" }, v.description) : null));
2208
2302
  })),
2209
- props.error ? /* @__PURE__ */ React16.createElement("p", { className: "aura-field__error", id: id + "-error" }, /* @__PURE__ */ React16.createElement(Icon, { name: /* @__PURE__ */ React16.createElement(IconCircleAlert, null), size: 14 }), props.error) : props.hint ? /* @__PURE__ */ React16.createElement("p", { className: "aura-field__hint", id: id + "-hint" }, props.hint) : null
2303
+ props.error ? /* @__PURE__ */ React17.createElement("p", { className: "aura-field__error", id: id + "-error" }, /* @__PURE__ */ React17.createElement(Icon, { name: /* @__PURE__ */ React17.createElement(IconCircleAlert, null), size: 14 }), props.error) : props.hint ? /* @__PURE__ */ React17.createElement("p", { className: "aura-field__hint", id: id + "-hint" }, props.hint) : null
2210
2304
  );
2211
2305
  });
2212
2306
 
2213
2307
  // src/Switch.tsx
2214
- var React17 = __toESM(require_react(), 1);
2215
- var Switch = React17.forwardRef(function Switch2(props, ref) {
2308
+ var React18 = __toESM(require_react(), 1);
2309
+ var Switch = React18.forwardRef(function Switch2(props, ref) {
2216
2310
  const auto = uid(), id = props.id || auto;
2217
2311
  const st = useMaybeControlled(props.checked, !!props.defaultChecked, props.onChange);
2218
2312
  const on = !!st[0];
2219
- return /* @__PURE__ */ React17.createElement(
2313
+ return /* @__PURE__ */ React18.createElement(
2220
2314
  "div",
2221
2315
  {
2222
2316
  className: cx("aura-switch-row", props.disabled && "is-disabled", props.className),
@@ -2226,7 +2320,7 @@ window.Aura = (() => {
2226
2320
  st[1](!on);
2227
2321
  }
2228
2322
  },
2229
- /* @__PURE__ */ React17.createElement(
2323
+ /* @__PURE__ */ React18.createElement(
2230
2324
  "button",
2231
2325
  {
2232
2326
  ref,
@@ -2243,14 +2337,14 @@ window.Aura = (() => {
2243
2337
  st[1](!on);
2244
2338
  }
2245
2339
  },
2246
- /* @__PURE__ */ React17.createElement("span", { className: "aura-switch__thumb" })
2340
+ /* @__PURE__ */ React18.createElement("span", { className: "aura-switch__thumb" })
2247
2341
  ),
2248
- props.label ? /* @__PURE__ */ React17.createElement("span", { className: "aura-choice__text" }, /* @__PURE__ */ React17.createElement("label", { className: "aura-choice__label", id: id + "-label", htmlFor: id }, props.label), props.description ? /* @__PURE__ */ React17.createElement("span", { className: "aura-choice__desc", id: id + "-desc" }, props.description) : null) : props.description ? /* @__PURE__ */ React17.createElement("span", { className: "aura-sr-only", id: id + "-desc" }, props.description) : null
2342
+ props.label ? /* @__PURE__ */ React18.createElement("span", { className: "aura-choice__text" }, /* @__PURE__ */ React18.createElement("label", { className: "aura-choice__label", id: id + "-label", htmlFor: id }, props.label), props.description ? /* @__PURE__ */ React18.createElement("span", { className: "aura-choice__desc", id: id + "-desc" }, props.description) : null) : props.description ? /* @__PURE__ */ React18.createElement("span", { className: "aura-sr-only", id: id + "-desc" }, props.description) : null
2249
2343
  );
2250
2344
  });
2251
2345
 
2252
2346
  // src/Combobox.tsx
2253
- var React18 = __toESM(require_react(), 1);
2347
+ var React19 = __toESM(require_react(), 1);
2254
2348
  var import_react_dom3 = __toESM(require_react_dom(), 1);
2255
2349
  function norm(s) {
2256
2350
  return String(s == null ? "" : s).normalize("NFC").toLocaleLowerCase("th");
@@ -2265,7 +2359,7 @@ window.Aura = (() => {
2265
2359
  return norm(k).indexOf(q) >= 0;
2266
2360
  });
2267
2361
  }
2268
- var Combobox = React18.forwardRef(
2362
+ var Combobox = React19.forwardRef(
2269
2363
  function Combobox2(all, ref) {
2270
2364
  const props = all;
2271
2365
  const multi = all.multiple === true;
@@ -2300,11 +2394,11 @@ window.Aura = (() => {
2300
2394
  return o.value === v;
2301
2395
  })[0];
2302
2396
  }).filter(Boolean) : [];
2303
- const openState = React18.useState(false), open = openState[0], setOpen = openState[1];
2304
- const qState = React18.useState(null), query = qState[0], setQuery = qState[1];
2305
- const aState = React18.useState(0), active = aState[0], setActive = aState[1];
2306
- const posState = React18.useState(null);
2307
- const inputRef = React18.useRef(null), inputMerged = useMergedRef(ref, inputRef), boxRef = React18.useRef(null), listRef = React18.useRef(null);
2397
+ const openState = React19.useState(false), open = openState[0], setOpen = openState[1];
2398
+ const qState = React19.useState(null), query = qState[0], setQuery = qState[1];
2399
+ const aState = React19.useState(0), active = aState[0], setActive = aState[1];
2400
+ const posState = React19.useState(null);
2401
+ const inputRef = React19.useRef(null), inputMerged = useMergedRef(ref, inputRef), boxRef = React19.useRef(null), listRef = React19.useRef(null);
2308
2402
  const mounted = useMounted();
2309
2403
  const limit = props.limit || 200;
2310
2404
  const filter = props.filter || defaultFilter;
@@ -2332,7 +2426,7 @@ window.Aura = (() => {
2332
2426
  },
2333
2427
  [open, shown.length, values.length]
2334
2428
  );
2335
- React18.useEffect(
2429
+ React19.useEffect(
2336
2430
  function() {
2337
2431
  if (!open) return;
2338
2432
  function outside(e) {
@@ -2354,7 +2448,7 @@ window.Aura = (() => {
2354
2448
  },
2355
2449
  [open]
2356
2450
  );
2357
- React18.useEffect(
2451
+ React19.useEffect(
2358
2452
  function() {
2359
2453
  if (!open || !listRef.current) return;
2360
2454
  const el = listRef.current.querySelector('[data-idx="' + activeIdx + '"]');
@@ -2435,7 +2529,7 @@ window.Aura = (() => {
2435
2529
  return id + "-opt-" + i;
2436
2530
  };
2437
2531
  const list = open && mounted && posState[0] ? (0, import_react_dom3.createPortal)(
2438
- /* @__PURE__ */ React18.createElement("div", { ref: listRef, "data-density": density, className: "aura-combo__popover", style: posState[0] }, live.length ? /* @__PURE__ */ React18.createElement(
2532
+ /* @__PURE__ */ React19.createElement("div", { ref: listRef, "data-density": density, className: "aura-combo__popover", style: posState[0] }, live.length ? /* @__PURE__ */ React19.createElement(
2439
2533
  "ul",
2440
2534
  {
2441
2535
  id: listId,
@@ -2447,7 +2541,7 @@ window.Aura = (() => {
2447
2541
  live.map(function(o, i) {
2448
2542
  const isSel = multi ? isPicked(o.value) : !!selected && o.value === selected.value;
2449
2543
  const blocked = o.disabled || multi && full && !isSel;
2450
- return /* @__PURE__ */ React18.createElement(
2544
+ return /* @__PURE__ */ React19.createElement(
2451
2545
  "li",
2452
2546
  {
2453
2547
  key: o.value,
@@ -2472,15 +2566,15 @@ window.Aura = (() => {
2472
2566
  if (activeIdx !== i) setActive(i);
2473
2567
  }
2474
2568
  },
2475
- o.icon ? /* @__PURE__ */ React18.createElement(Icon, { name: o.icon }) : null,
2476
- /* @__PURE__ */ React18.createElement("span", { className: "aura-combo__text" }, /* @__PURE__ */ React18.createElement("span", { className: "aura-combo__label" }, o.label), o.description ? /* @__PURE__ */ React18.createElement("span", { className: "aura-combo__desc" }, o.description) : null),
2477
- isSel ? /* @__PURE__ */ React18.createElement(Icon, { name: /* @__PURE__ */ React18.createElement(IconCheck, null), className: "aura-combo__check" }) : null
2569
+ o.icon ? /* @__PURE__ */ React19.createElement(Icon, { name: o.icon }) : null,
2570
+ /* @__PURE__ */ React19.createElement("span", { className: "aura-combo__text" }, /* @__PURE__ */ React19.createElement("span", { className: "aura-combo__label" }, o.label), o.description ? /* @__PURE__ */ React19.createElement("span", { className: "aura-combo__desc" }, o.description) : null),
2571
+ isSel ? /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconCheck, null), className: "aura-combo__check" }) : null
2478
2572
  );
2479
2573
  })
2480
- ) : null, props.loading || !live.length || more ? /* @__PURE__ */ React18.createElement("div", { className: "aura-combo__list", role: "status" }, props.loading ? /* @__PURE__ */ React18.createElement("div", { className: "aura-combo__note" }, /* @__PURE__ */ React18.createElement(Icon, { name: /* @__PURE__ */ React18.createElement(IconLoaderCircle, null), className: "aura-spin" }), props.loadingText || t.searching) : !live.length ? /* @__PURE__ */ React18.createElement("div", { className: "aura-combo__note" }, props.emptyText || t.noMatches) : /* @__PURE__ */ React18.createElement("div", { className: "aura-combo__note" }, t.keepTyping((props.options || []).length))) : null),
2574
+ ) : null, props.loading || !live.length || more ? /* @__PURE__ */ React19.createElement("div", { className: "aura-combo__list", role: "status" }, props.loading ? /* @__PURE__ */ React19.createElement("div", { className: "aura-combo__note" }, /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconLoaderCircle, null), className: "aura-spin" }), props.loadingText || t.searching) : !live.length ? /* @__PURE__ */ React19.createElement("div", { className: "aura-combo__note" }, props.emptyText || t.noMatches) : /* @__PURE__ */ React19.createElement("div", { className: "aura-combo__note" }, t.keepTyping((props.options || []).length))) : null),
2481
2575
  document.body
2482
2576
  ) : null;
2483
- return /* @__PURE__ */ React18.createElement(
2577
+ return /* @__PURE__ */ React19.createElement(
2484
2578
  Field,
2485
2579
  {
2486
2580
  id,
@@ -2492,8 +2586,8 @@ window.Aura = (() => {
2492
2586
  disabled: props.disabled,
2493
2587
  className: props.className
2494
2588
  },
2495
- /* @__PURE__ */ React18.createElement("div", { ref: boxRef, className: cx("aura-input aura-combo has-icon", open && "is-open", multi && "is-multi") }, /* @__PURE__ */ React18.createElement(Icon, { name: props.icon || /* @__PURE__ */ React18.createElement(IconSearch, null), className: "aura-input__icon" }), multi && picked.length ? /* @__PURE__ */ React18.createElement("span", { className: "aura-combo__chips" }, picked.map(function(o) {
2496
- return /* @__PURE__ */ React18.createElement("span", { key: o.value, className: "aura-combo__chip" }, /* @__PURE__ */ React18.createElement("span", { className: "aura-combo__chip-label" }, o.label), props.disabled || props.readOnly ? null : /* @__PURE__ */ React18.createElement(
2589
+ /* @__PURE__ */ React19.createElement("div", { ref: boxRef, className: cx("aura-input aura-combo has-icon", open && "is-open", multi && "is-multi") }, /* @__PURE__ */ React19.createElement(Icon, { name: props.icon || /* @__PURE__ */ React19.createElement(IconSearch, null), className: "aura-input__icon" }), multi && picked.length ? /* @__PURE__ */ React19.createElement("span", { className: "aura-combo__chips" }, picked.map(function(o) {
2590
+ return /* @__PURE__ */ React19.createElement("span", { key: o.value, className: "aura-combo__chip" }, /* @__PURE__ */ React19.createElement("span", { className: "aura-combo__chip-label" }, o.label), props.disabled || props.readOnly ? null : /* @__PURE__ */ React19.createElement(
2497
2591
  "button",
2498
2592
  {
2499
2593
  type: "button",
@@ -2512,13 +2606,13 @@ window.Aura = (() => {
2512
2606
  if (inputRef.current) inputRef.current.focus();
2513
2607
  }
2514
2608
  },
2515
- /* @__PURE__ */ React18.createElement(Icon, { name: /* @__PURE__ */ React18.createElement(IconX, null) })
2609
+ /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconX, null) })
2516
2610
  ));
2517
- })) : null, multi ? /* @__PURE__ */ React18.createElement("span", { id: summaryId, className: "aura-sr-only" }, picked.length ? t.selectedCount(picked.length) + ": " + picked.map(function(o) {
2611
+ })) : null, multi ? /* @__PURE__ */ React19.createElement("span", { id: summaryId, className: "aura-sr-only" }, picked.length ? t.selectedCount(picked.length) + ": " + picked.map(function(o) {
2518
2612
  return o.label;
2519
2613
  }).join(", ") : "") : null, props.name ? multi ? values.map(function(v) {
2520
- return /* @__PURE__ */ React18.createElement("input", { key: v, type: "hidden", name: props.name, value: v });
2521
- }) : /* @__PURE__ */ React18.createElement("input", { type: "hidden", name: props.name, value: value == null ? "" : value }) : null, /* @__PURE__ */ React18.createElement(
2614
+ return /* @__PURE__ */ React19.createElement("input", { key: v, type: "hidden", name: props.name, value: v });
2615
+ }) : /* @__PURE__ */ React19.createElement("input", { type: "hidden", name: props.name, value: value == null ? "" : value }) : null, /* @__PURE__ */ React19.createElement(
2522
2616
  "input",
2523
2617
  {
2524
2618
  ref: inputMerged,
@@ -2554,7 +2648,7 @@ window.Aura = (() => {
2554
2648
  }, 0);
2555
2649
  }
2556
2650
  }
2557
- ), props.clearable !== false && values.length && !props.disabled && !props.readOnly ? /* @__PURE__ */ React18.createElement(
2651
+ ), props.clearable !== false && values.length && !props.disabled && !props.readOnly ? /* @__PURE__ */ React19.createElement(
2558
2652
  "button",
2559
2653
  {
2560
2654
  type: "button",
@@ -2567,8 +2661,8 @@ window.Aura = (() => {
2567
2661
  if (inputRef.current) inputRef.current.focus();
2568
2662
  }
2569
2663
  },
2570
- /* @__PURE__ */ React18.createElement(Icon, { name: /* @__PURE__ */ React18.createElement(IconX, null) })
2571
- ) : null, /* @__PURE__ */ React18.createElement(
2664
+ /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconX, null) })
2665
+ ) : null, /* @__PURE__ */ React19.createElement(
2572
2666
  "button",
2573
2667
  {
2574
2668
  type: "button",
@@ -2586,7 +2680,7 @@ window.Aura = (() => {
2586
2680
  }
2587
2681
  }
2588
2682
  },
2589
- /* @__PURE__ */ React18.createElement(Icon, { name: /* @__PURE__ */ React18.createElement(IconChevronDown, null) })
2683
+ /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconChevronDown, null) })
2590
2684
  )),
2591
2685
  list
2592
2686
  );
@@ -2594,7 +2688,7 @@ window.Aura = (() => {
2594
2688
  );
2595
2689
 
2596
2690
  // src/DatePicker.tsx
2597
- var React19 = __toESM(require_react(), 1);
2691
+ var React20 = __toESM(require_react(), 1);
2598
2692
  var import_react_dom4 = __toESM(require_react_dom(), 1);
2599
2693
 
2600
2694
  // src/dates.ts
@@ -2778,7 +2872,7 @@ window.Aura = (() => {
2778
2872
  // src/DatePicker.tsx
2779
2873
  function useFormatDate() {
2780
2874
  const ctx = useAuraLocale(), locale = ctx.locale || "en", calendar = ctx.calendar;
2781
- return React19.useCallback(
2875
+ return React20.useCallback(
2782
2876
  function(iso, opts) {
2783
2877
  const o = opts || {}, loc = o.locale || locale;
2784
2878
  return formatDate(
@@ -2799,7 +2893,7 @@ window.Aura = (() => {
2799
2893
  if (hi && fromISO(hi) && iso > hi) return false;
2800
2894
  return !(o.isDateDisabled && o.isDateDisabled(iso));
2801
2895
  }
2802
- var Calendar = React19.forwardRef(function Calendar2(props, ref) {
2896
+ var Calendar = React20.forwardRef(function Calendar2(props, ref) {
2803
2897
  const ctx = useAuraLocale(), locale = props.locale || ctx.locale || "en", calendar = props.calendar || ctx.calendar || defaultCalendar(locale), tag = localeTag(locale, calendar);
2804
2898
  const weekStart = props.weekStartsOn == null ? locale === "sv" ? 1 : 0 : props.weekStartsOn;
2805
2899
  const given = props.today && fromISO(props.today) ? props.today : null, zone = props.timeZone || ctx.timeZone;
@@ -2814,7 +2908,7 @@ window.Aura = (() => {
2814
2908
  function select(iso) {
2815
2909
  if (props.onSelect) props.onSelect(iso);
2816
2910
  }
2817
- const focusState = React19.useState(function() {
2911
+ const focusState = React20.useState(function() {
2818
2912
  const d0 = fromISO(props.focus) || start || today;
2819
2913
  if (!disabledAt(d0)) return d0;
2820
2914
  for (let i = 1; i <= 366; i++) {
@@ -2824,21 +2918,21 @@ window.Aura = (() => {
2824
2918
  return d0;
2825
2919
  });
2826
2920
  const focusDate = focusState[0], setFocus = focusState[1];
2827
- const viewState = React19.useState("days"), view = viewState[0], setView = viewState[1];
2828
- const hoverState = React19.useState(null);
2829
- const gridRef = React19.useRef(null), gridMerged = useMergedRef(ref, gridRef), moved = React19.useRef(false);
2921
+ const viewState = React20.useState("days"), view = viewState[0], setView = viewState[1];
2922
+ const hoverState = React20.useState(null);
2923
+ const gridRef = React20.useRef(null), gridMerged = useMergedRef(ref, gridRef), moved = React20.useRef(false);
2830
2924
  const th2 = locale === "th";
2831
2925
  const dt = dateText(locale);
2832
2926
  function disabled(d) {
2833
2927
  return disabledAt(d);
2834
2928
  }
2835
- React19.useEffect(function() {
2929
+ React20.useEffect(function() {
2836
2930
  if (!moved.current) return;
2837
2931
  moved.current = false;
2838
2932
  const el = gridRef.current && gridRef.current.querySelector('[data-date="' + toISO(focusDate) + '"]');
2839
2933
  if (el) el.focus();
2840
2934
  });
2841
- React19.useEffect(
2935
+ React20.useEffect(
2842
2936
  function() {
2843
2937
  if (props.autoFocus === false) return;
2844
2938
  const el = gridRef.current && gridRef.current.querySelector('[tabindex="0"]');
@@ -2893,16 +2987,16 @@ window.Aura = (() => {
2893
2987
  const yr = focusDate.getFullYear(), base = yr - yr % 12;
2894
2988
  const years = [];
2895
2989
  for (let y = base; y < base + 12; y++) years.push(y);
2896
- return /* @__PURE__ */ React19.createElement("div", { className: "aura-cal", ref: gridMerged, key: gridKey }, /* @__PURE__ */ React19.createElement("div", { className: "aura-cal__head" }, /* @__PURE__ */ React19.createElement(
2990
+ return /* @__PURE__ */ React20.createElement("div", { className: "aura-cal", ref: gridMerged, key: gridKey }, /* @__PURE__ */ React20.createElement("div", { className: "aura-cal__head" }, /* @__PURE__ */ React20.createElement(
2897
2991
  IconButton,
2898
2992
  {
2899
- icon: /* @__PURE__ */ React19.createElement(IconChevronLeft, null),
2993
+ icon: /* @__PURE__ */ React20.createElement(IconChevronLeft, null),
2900
2994
  label: dt.prevYears,
2901
2995
  onClick: function() {
2902
2996
  setFocus(new Date(yr - 12, focusDate.getMonth(), 1));
2903
2997
  }
2904
2998
  }
2905
- ), /* @__PURE__ */ React19.createElement(
2999
+ ), /* @__PURE__ */ React20.createElement(
2906
3000
  "button",
2907
3001
  {
2908
3002
  type: "button",
@@ -2912,18 +3006,18 @@ window.Aura = (() => {
2912
3006
  }
2913
3007
  },
2914
3008
  fmt(tag, { year: "numeric" }, new Date(base, 0, 1)).replace(ERA, "") + " \u2013 " + fmt(tag, { year: "numeric" }, new Date(base + 11, 0, 1)).replace(ERA, "")
2915
- ), /* @__PURE__ */ React19.createElement(
3009
+ ), /* @__PURE__ */ React20.createElement(
2916
3010
  IconButton,
2917
3011
  {
2918
- icon: /* @__PURE__ */ React19.createElement(IconChevronRight, null),
3012
+ icon: /* @__PURE__ */ React20.createElement(IconChevronRight, null),
2919
3013
  label: dt.nextYears,
2920
3014
  onClick: function() {
2921
3015
  setFocus(new Date(yr + 12, focusDate.getMonth(), 1));
2922
3016
  }
2923
3017
  }
2924
- )), /* @__PURE__ */ React19.createElement("div", { className: "aura-cal__years" }, years.map(function(y) {
3018
+ )), /* @__PURE__ */ React20.createElement("div", { className: "aura-cal__years" }, years.map(function(y) {
2925
3019
  const d = new Date(y, focusDate.getMonth(), 1);
2926
- return /* @__PURE__ */ React19.createElement(
3020
+ return /* @__PURE__ */ React20.createElement(
2927
3021
  "button",
2928
3022
  {
2929
3023
  key: y,
@@ -2940,16 +3034,16 @@ window.Aura = (() => {
2940
3034
  );
2941
3035
  })));
2942
3036
  }
2943
- return /* @__PURE__ */ React19.createElement("div", { className: "aura-cal", ref: gridMerged, key: gridKey }, /* @__PURE__ */ React19.createElement("div", { className: "aura-cal__head" }, /* @__PURE__ */ React19.createElement(
3037
+ return /* @__PURE__ */ React20.createElement("div", { className: "aura-cal", ref: gridMerged, key: gridKey }, /* @__PURE__ */ React20.createElement("div", { className: "aura-cal__head" }, /* @__PURE__ */ React20.createElement(
2944
3038
  IconButton,
2945
3039
  {
2946
- icon: /* @__PURE__ */ React19.createElement(IconChevronLeft, null),
3040
+ icon: /* @__PURE__ */ React20.createElement(IconChevronLeft, null),
2947
3041
  label: dt.prevMonth,
2948
3042
  onClick: function() {
2949
3043
  setFocus(addMonths(focusDate, -1));
2950
3044
  }
2951
3045
  }
2952
- ), /* @__PURE__ */ React19.createElement(
3046
+ ), /* @__PURE__ */ React20.createElement(
2953
3047
  "button",
2954
3048
  {
2955
3049
  type: "button",
@@ -2960,19 +3054,19 @@ window.Aura = (() => {
2960
3054
  }
2961
3055
  },
2962
3056
  monthTitle,
2963
- /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconChevronDown, null), size: 14 })
2964
- ), /* @__PURE__ */ React19.createElement(
3057
+ /* @__PURE__ */ React20.createElement(Icon, { name: /* @__PURE__ */ React20.createElement(IconChevronDown, null), size: 14 })
3058
+ ), /* @__PURE__ */ React20.createElement(
2965
3059
  IconButton,
2966
3060
  {
2967
- icon: /* @__PURE__ */ React19.createElement(IconChevronRight, null),
3061
+ icon: /* @__PURE__ */ React20.createElement(IconChevronRight, null),
2968
3062
  label: dt.nextMonth,
2969
3063
  onClick: function() {
2970
3064
  setFocus(addMonths(focusDate, 1));
2971
3065
  }
2972
3066
  }
2973
- )), /* @__PURE__ */ React19.createElement("table", { role: "grid", className: "aura-cal__grid", "aria-label": monthTitle }, /* @__PURE__ */ React19.createElement("thead", null, /* @__PURE__ */ React19.createElement("tr", null, weekdayNames.map(function(n3, i) {
2974
- return /* @__PURE__ */ React19.createElement("th", { key: i, scope: "col", abbr: n3.long }, /* @__PURE__ */ React19.createElement("span", { "aria-hidden": true }, n3.short));
2975
- }))), /* @__PURE__ */ React19.createElement(
3067
+ )), /* @__PURE__ */ React20.createElement("table", { role: "grid", className: "aura-cal__grid", "aria-label": monthTitle }, /* @__PURE__ */ React20.createElement("thead", null, /* @__PURE__ */ React20.createElement("tr", null, weekdayNames.map(function(n3, i) {
3068
+ return /* @__PURE__ */ React20.createElement("th", { key: i, scope: "col", abbr: n3.long }, /* @__PURE__ */ React20.createElement("span", { "aria-hidden": true }, n3.short));
3069
+ }))), /* @__PURE__ */ React20.createElement(
2976
3070
  "tbody",
2977
3071
  {
2978
3072
  onMouseLeave: function() {
@@ -2980,11 +3074,11 @@ window.Aura = (() => {
2980
3074
  }
2981
3075
  },
2982
3076
  weeks.map(function(wk, wi) {
2983
- return /* @__PURE__ */ React19.createElement("tr", { key: wi }, wk.map(function(d) {
3077
+ return /* @__PURE__ */ React20.createElement("tr", { key: wi }, wk.map(function(d) {
2984
3078
  const iso = toISO(d), out = d.getMonth() !== focusDate.getMonth(), dis = disabled(d);
2985
3079
  const isStart = same(d, start), isEnd = same(d, end) || !end && props.range && same(d, hover) && start;
2986
3080
  const sel = isStart || same(d, end);
2987
- return /* @__PURE__ */ React19.createElement(
3081
+ return /* @__PURE__ */ React20.createElement(
2988
3082
  "td",
2989
3083
  {
2990
3084
  key: iso,
@@ -2996,7 +3090,7 @@ window.Aura = (() => {
2996
3090
  props.range && isEnd && start && "is-range-end"
2997
3091
  )
2998
3092
  },
2999
- /* @__PURE__ */ React19.createElement(
3093
+ /* @__PURE__ */ React20.createElement(
3000
3094
  "button",
3001
3095
  {
3002
3096
  type: "button",
@@ -3029,7 +3123,7 @@ window.Aura = (() => {
3029
3123
  );
3030
3124
  }));
3031
3125
  })
3032
- )), props.footer === false ? null : /* @__PURE__ */ React19.createElement("div", { className: "aura-cal__foot" }, /* @__PURE__ */ React19.createElement(
3126
+ )), props.footer === false ? null : /* @__PURE__ */ React20.createElement("div", { className: "aura-cal__foot" }, /* @__PURE__ */ React20.createElement(
3033
3127
  "button",
3034
3128
  {
3035
3129
  type: "button",
@@ -3041,11 +3135,11 @@ window.Aura = (() => {
3041
3135
  }
3042
3136
  },
3043
3137
  dt.today
3044
- ), props.onClear ? /* @__PURE__ */ React19.createElement("button", { type: "button", className: "aura-cal__link", onClick: props.onClear }, dt.clear) : null));
3138
+ ), props.onClear ? /* @__PURE__ */ React20.createElement("button", { type: "button", className: "aura-cal__link", onClick: props.onClear }, dt.clear) : null));
3045
3139
  });
3046
3140
  function useCalendarPopover(boxRef) {
3047
- const openState = React19.useState(false), open = openState[0], setOpen = openState[1];
3048
- const pos = React19.useState(null), popRef = React19.useRef(null), mounted = useMounted();
3141
+ const openState = React20.useState(false), open = openState[0], setOpen = openState[1];
3142
+ const pos = React20.useState(null), popRef = React20.useRef(null), mounted = useMounted();
3049
3143
  function place() {
3050
3144
  if (!boxRef.current) return;
3051
3145
  const el = popRef.current, r = boxRef.current.getBoundingClientRect(), W = el ? el.offsetWidth : 320, H = el ? el.offsetHeight : 380;
@@ -3059,7 +3153,7 @@ window.Aura = (() => {
3059
3153
  },
3060
3154
  [open, !!pos[0]]
3061
3155
  );
3062
- React19.useEffect(
3156
+ React20.useEffect(
3063
3157
  function() {
3064
3158
  if (!open) return;
3065
3159
  function outside(e) {
@@ -3081,8 +3175,8 @@ window.Aura = (() => {
3081
3175
  return { open, setOpen, pos: pos[0], popRef, mounted };
3082
3176
  }
3083
3177
  function DateField(props) {
3084
- const editState = React19.useState(null), editing = editState[0], setEditing = editState[1];
3085
- return /* @__PURE__ */ React19.createElement(
3178
+ const editState = React20.useState(null), editing = editState[0], setEditing = editState[1];
3179
+ return /* @__PURE__ */ React20.createElement(
3086
3180
  Field,
3087
3181
  {
3088
3182
  id: props.id,
@@ -3094,7 +3188,7 @@ window.Aura = (() => {
3094
3188
  disabled: props.disabled,
3095
3189
  className: props.className
3096
3190
  },
3097
- /* @__PURE__ */ React19.createElement("div", { ref: props.boxRef, className: cx("aura-input aura-date", props.open && "is-open") }, /* @__PURE__ */ React19.createElement(
3191
+ /* @__PURE__ */ React20.createElement("div", { ref: props.boxRef, className: cx("aura-input aura-date", props.open && "is-open") }, /* @__PURE__ */ React20.createElement(
3098
3192
  "input",
3099
3193
  {
3100
3194
  ref: props.inputRef,
@@ -3133,7 +3227,7 @@ window.Aura = (() => {
3133
3227
  }
3134
3228
  }
3135
3229
  }
3136
- ), props.clearable !== false && props.hasValue && !props.disabled ? /* @__PURE__ */ React19.createElement(
3230
+ ), props.clearable !== false && props.hasValue && !props.disabled ? /* @__PURE__ */ React20.createElement(
3137
3231
  "button",
3138
3232
  {
3139
3233
  type: "button",
@@ -3142,8 +3236,8 @@ window.Aura = (() => {
3142
3236
  "aria-label": props.clearLabel,
3143
3237
  onClick: props.onClear
3144
3238
  },
3145
- /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconX, null) })
3146
- ) : null, /* @__PURE__ */ React19.createElement(
3239
+ /* @__PURE__ */ React20.createElement(Icon, { name: /* @__PURE__ */ React20.createElement(IconX, null) })
3240
+ ) : null, /* @__PURE__ */ React20.createElement(
3147
3241
  "button",
3148
3242
  {
3149
3243
  type: "button",
@@ -3157,11 +3251,11 @@ window.Aura = (() => {
3157
3251
  props.onToggle(!props.open);
3158
3252
  }
3159
3253
  },
3160
- /* @__PURE__ */ React19.createElement(Icon, { name: /* @__PURE__ */ React19.createElement(IconCalendar, null) })
3254
+ /* @__PURE__ */ React20.createElement(Icon, { name: /* @__PURE__ */ React20.createElement(IconCalendar, null) })
3161
3255
  ))
3162
3256
  );
3163
3257
  }
3164
- var DatePicker = React19.forwardRef(function DatePicker2(props, ref) {
3258
+ var DatePicker = React20.forwardRef(function DatePicker2(props, ref) {
3165
3259
  const auto = uid(), id = props.id || auto, dialogId = id + "-cal";
3166
3260
  const ctx = useAuraLocale(), locale = props.locale || ctx.locale || "en", calendar = props.calendar || ctx.calendar || defaultCalendar(locale), dt = dateText(locale);
3167
3261
  const st = useMaybeControlled(
@@ -3169,7 +3263,7 @@ window.Aura = (() => {
3169
3263
  props.defaultValue == null ? null : props.defaultValue,
3170
3264
  props.onChange
3171
3265
  );
3172
- const boxRef = React19.useRef(null), inputRef = React19.useRef(null), inputMerged = useMergedRef(ref, inputRef);
3266
+ const boxRef = React20.useRef(null), inputRef = React20.useRef(null), inputMerged = useMergedRef(ref, inputRef);
3173
3267
  const pop = useCalendarPopover(boxRef);
3174
3268
  const limits = {
3175
3269
  min: props.min,
@@ -3178,8 +3272,8 @@ window.Aura = (() => {
3178
3272
  timeZone: props.timeZone || ctx.timeZone,
3179
3273
  isDateDisabled: props.isDateDisabled
3180
3274
  };
3181
- const bad = React19.useState(null);
3182
- React19.useEffect(
3275
+ const bad = React20.useState(null);
3276
+ React20.useEffect(
3183
3277
  function() {
3184
3278
  bad[1](null);
3185
3279
  },
@@ -3201,7 +3295,7 @@ window.Aura = (() => {
3201
3295
  if (inputRef.current) inputRef.current.focus();
3202
3296
  }
3203
3297
  const cal = pop.open && pop.mounted && pop.pos ? (0, import_react_dom4.createPortal)(
3204
- /* @__PURE__ */ React19.createElement(
3298
+ /* @__PURE__ */ React20.createElement(
3205
3299
  "div",
3206
3300
  {
3207
3301
  ref: pop.popRef,
@@ -3218,7 +3312,7 @@ window.Aura = (() => {
3218
3312
  } else trapTab(e, pop.popRef.current);
3219
3313
  }
3220
3314
  },
3221
- /* @__PURE__ */ React19.createElement(
3315
+ /* @__PURE__ */ React20.createElement(
3222
3316
  Calendar,
3223
3317
  {
3224
3318
  locale,
@@ -3241,7 +3335,7 @@ window.Aura = (() => {
3241
3335
  ),
3242
3336
  document.body
3243
3337
  ) : null;
3244
- return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
3338
+ return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
3245
3339
  DateField,
3246
3340
  {
3247
3341
  id,
@@ -3276,7 +3370,7 @@ window.Aura = (() => {
3276
3370
  }
3277
3371
  ), cal);
3278
3372
  });
3279
- var DateRangePicker = React19.forwardRef(
3373
+ var DateRangePicker = React20.forwardRef(
3280
3374
  function DateRangePicker2(props, ref) {
3281
3375
  const auto = uid(), id = props.id || auto, dialogId = id + "-cal";
3282
3376
  const ctx = useAuraLocale(), locale = props.locale || ctx.locale || "en", calendar = props.calendar || ctx.calendar || defaultCalendar(locale), dt = dateText(locale);
@@ -3286,8 +3380,8 @@ window.Aura = (() => {
3286
3380
  props.onChange
3287
3381
  );
3288
3382
  const v = st[0] || { start: null, end: null };
3289
- const draft = React19.useState(null);
3290
- const boxRef = React19.useRef(null), inputRef = React19.useRef(null), inputMerged = useMergedRef(ref, inputRef);
3383
+ const draft = React20.useState(null);
3384
+ const boxRef = React20.useRef(null), inputRef = React20.useRef(null), inputMerged = useMergedRef(ref, inputRef);
3291
3385
  const pop = useCalendarPopover(boxRef);
3292
3386
  const limits = {
3293
3387
  min: props.min,
@@ -3302,8 +3396,8 @@ window.Aura = (() => {
3302
3396
  if (!r.end) return formatDate(r.start, o) + " \u2013";
3303
3397
  return formatDate(r.start, o) + " \u2013 " + formatDate(r.end, o);
3304
3398
  }
3305
- const bad = React19.useState(null);
3306
- React19.useEffect(
3399
+ const bad = React20.useState(null);
3400
+ React20.useEffect(
3307
3401
  function() {
3308
3402
  bad[1](null);
3309
3403
  },
@@ -3336,7 +3430,7 @@ window.Aura = (() => {
3336
3430
  close();
3337
3431
  }
3338
3432
  const cal = pop.open && pop.mounted && pop.pos ? (0, import_react_dom4.createPortal)(
3339
- /* @__PURE__ */ React19.createElement(
3433
+ /* @__PURE__ */ React20.createElement(
3340
3434
  "div",
3341
3435
  {
3342
3436
  ref: pop.popRef,
@@ -3353,8 +3447,8 @@ window.Aura = (() => {
3353
3447
  } else trapTab(e, pop.popRef.current);
3354
3448
  }
3355
3449
  },
3356
- /* @__PURE__ */ React19.createElement("p", { className: "aura-cal__hint", "aria-live": "polite" }, draft[0] ? dt.chooseEnd : dt.chooseStart),
3357
- /* @__PURE__ */ React19.createElement(
3450
+ /* @__PURE__ */ React20.createElement("p", { className: "aura-cal__hint", "aria-live": "polite" }, draft[0] ? dt.chooseEnd : dt.chooseStart),
3451
+ /* @__PURE__ */ React20.createElement(
3358
3452
  Calendar,
3359
3453
  {
3360
3454
  range: true,
@@ -3375,7 +3469,7 @@ window.Aura = (() => {
3375
3469
  ),
3376
3470
  document.body
3377
3471
  ) : null;
3378
- return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
3472
+ return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
3379
3473
  DateField,
3380
3474
  {
3381
3475
  id,
@@ -3414,18 +3508,18 @@ window.Aura = (() => {
3414
3508
  );
3415
3509
 
3416
3510
  // src/Alert.tsx
3417
- var React20 = __toESM(require_react(), 1);
3418
- var Alert = React20.forwardRef(function Alert2(props, ref) {
3511
+ var React21 = __toESM(require_react(), 1);
3512
+ var Alert = React21.forwardRef(function Alert2(props, ref) {
3419
3513
  const t = useStrings();
3420
3514
  return alertElement(
3421
3515
  props,
3422
3516
  ref,
3423
- props.onDismiss ? /* @__PURE__ */ React20.createElement(IconButton, { icon: /* @__PURE__ */ React20.createElement(IconX, null), label: t.dismiss, className: "aura-alert__close", onClick: props.onDismiss }) : null
3517
+ props.onDismiss ? /* @__PURE__ */ React21.createElement(IconButton, { icon: /* @__PURE__ */ React21.createElement(IconX, null), label: t.dismiss, className: "aura-alert__close", onClick: props.onDismiss }) : null
3424
3518
  );
3425
3519
  });
3426
3520
 
3427
3521
  // src/Toaster.tsx
3428
- var React21 = __toESM(require_react(), 1);
3522
+ var React22 = __toESM(require_react(), 1);
3429
3523
  var import_react_dom5 = __toESM(require_react_dom(), 1);
3430
3524
  var MAX_VISIBLE = 3;
3431
3525
  var toastState = {
@@ -3501,8 +3595,8 @@ window.Aura = (() => {
3501
3595
  function ToastItem(props) {
3502
3596
  const str = useStrings();
3503
3597
  const Link = useLinkComponent();
3504
- const node = React21.useRef(null);
3505
- const origin = React21.useRef(null);
3598
+ const node = React22.useRef(null);
3599
+ const origin = React22.useRef(null);
3506
3600
  useIsoLayoutEffect(function() {
3507
3601
  origin.current = outsideToaster(document.activeElement);
3508
3602
  const el = node.current;
@@ -3518,8 +3612,8 @@ window.Aura = (() => {
3518
3612
  }, 0);
3519
3613
  };
3520
3614
  }, []);
3521
- const t = props.toast, timer = React21.useRef(null), left = React21.useRef(t.duration || 5e3), since = React21.useRef(0);
3522
- const hover = React21.useRef(false), focused = React21.useRef(false);
3615
+ const t = props.toast, timer = React22.useRef(null), left = React22.useRef(t.duration || 5e3), since = React22.useRef(0);
3616
+ const hover = React22.useRef(false), focused = React22.useRef(false);
3523
3617
  function syncFocus() {
3524
3618
  if (focused.current && !(node.current && node.current.contains(document.activeElement))) focused.current = false;
3525
3619
  }
@@ -3541,7 +3635,7 @@ window.Aura = (() => {
3541
3635
  left.current -= Date.now() - since.current;
3542
3636
  }
3543
3637
  }
3544
- React21.useEffect(
3638
+ React22.useEffect(
3545
3639
  function() {
3546
3640
  if (timer.current) clearTimeout(timer.current);
3547
3641
  timer.current = null;
@@ -3560,7 +3654,7 @@ window.Aura = (() => {
3560
3654
  if (a.onClick) a.onClick();
3561
3655
  if (a.dismiss !== false) toast.dismiss(t.id);
3562
3656
  }
3563
- return /* @__PURE__ */ React21.createElement(
3657
+ return /* @__PURE__ */ React22.createElement(
3564
3658
  "div",
3565
3659
  {
3566
3660
  ref: node,
@@ -3597,16 +3691,16 @@ window.Aura = (() => {
3597
3691
  resume();
3598
3692
  }
3599
3693
  },
3600
- /* @__PURE__ */ React21.createElement(
3694
+ /* @__PURE__ */ React22.createElement(
3601
3695
  Icon,
3602
3696
  {
3603
- name: t.loading ? /* @__PURE__ */ React21.createElement(IconLoaderCircle, null) : React21.createElement(ALERT_ICON[t.tone] || IconInfo),
3697
+ name: t.loading ? /* @__PURE__ */ React22.createElement(IconLoaderCircle, null) : React22.createElement(ALERT_ICON[t.tone] || IconInfo),
3604
3698
  className: cx("aura-toast__icon", t.loading && "aura-spin")
3605
3699
  }
3606
3700
  ),
3607
- /* @__PURE__ */ React21.createElement("div", { className: "aura-toast__body" }, /* @__PURE__ */ React21.createElement("p", { className: "aura-toast__title" }, t.title), rich ? /* @__PURE__ */ React21.createElement("div", { className: "aura-toast__text" }, t.description) : null),
3608
- actions.length ? /* @__PURE__ */ React21.createElement("div", { className: "aura-toast__actions" }, actions.map(function(a, i) {
3609
- return a.href ? /* @__PURE__ */ React21.createElement(
3701
+ /* @__PURE__ */ React22.createElement("div", { className: "aura-toast__body" }, /* @__PURE__ */ React22.createElement("p", { className: "aura-toast__title" }, t.title), rich ? /* @__PURE__ */ React22.createElement("div", { className: "aura-toast__text" }, t.description) : null),
3702
+ actions.length ? /* @__PURE__ */ React22.createElement("div", { className: "aura-toast__actions" }, actions.map(function(a, i) {
3703
+ return a.href ? /* @__PURE__ */ React22.createElement(
3610
3704
  Link,
3611
3705
  {
3612
3706
  key: i,
@@ -3618,7 +3712,7 @@ window.Aura = (() => {
3618
3712
  }
3619
3713
  },
3620
3714
  a.label
3621
- ) : /* @__PURE__ */ React21.createElement(
3715
+ ) : /* @__PURE__ */ React22.createElement(
3622
3716
  "button",
3623
3717
  {
3624
3718
  key: i,
@@ -3631,10 +3725,10 @@ window.Aura = (() => {
3631
3725
  a.label
3632
3726
  );
3633
3727
  })) : null,
3634
- /* @__PURE__ */ React21.createElement(
3728
+ /* @__PURE__ */ React22.createElement(
3635
3729
  IconButton,
3636
3730
  {
3637
- icon: /* @__PURE__ */ React21.createElement(IconX, null),
3731
+ icon: /* @__PURE__ */ React22.createElement(IconX, null),
3638
3732
  label: str.dismissToast,
3639
3733
  className: "aura-toast__close",
3640
3734
  onClick: function() {
@@ -3662,8 +3756,8 @@ window.Aura = (() => {
3662
3756
  function Toaster(props = {}) {
3663
3757
  const t = useStrings();
3664
3758
  const mounted = useMounted();
3665
- const s = React21.useState(toastState.list);
3666
- React21.useEffect(function() {
3759
+ const s = React22.useState(toastState.list);
3760
+ React22.useEffect(function() {
3667
3761
  toastState.subs.push(s[1]);
3668
3762
  s[1](toastState.list.slice());
3669
3763
  return function() {
@@ -3672,9 +3766,9 @@ window.Aura = (() => {
3672
3766
  });
3673
3767
  };
3674
3768
  }, []);
3675
- const region = React21.useRef(null);
3769
+ const region = React22.useRef(null);
3676
3770
  const hotkey = props.hotkey === void 0 ? "Alt+T" : props.hotkey;
3677
- React21.useEffect(
3771
+ React22.useEffect(
3678
3772
  function() {
3679
3773
  if (!hotkey) return;
3680
3774
  const match = hotkeyMatcher(hotkey);
@@ -3705,7 +3799,7 @@ window.Aura = (() => {
3705
3799
  const pos = props.position || "bottom";
3706
3800
  const offset = props.offset;
3707
3801
  return (0, import_react_dom5.createPortal)(
3708
- /* @__PURE__ */ React21.createElement(
3802
+ /* @__PURE__ */ React22.createElement(
3709
3803
  "div",
3710
3804
  {
3711
3805
  ref: region,
@@ -3717,7 +3811,7 @@ window.Aura = (() => {
3717
3811
  "aria-keyshortcuts": hotkey || void 0
3718
3812
  },
3719
3813
  s[0].map(function(t2) {
3720
- return /* @__PURE__ */ React21.createElement(ToastItem, { key: t2.id, toast: t2 });
3814
+ return /* @__PURE__ */ React22.createElement(ToastItem, { key: t2.id, toast: t2 });
3721
3815
  })
3722
3816
  ),
3723
3817
  document.body
@@ -3725,12 +3819,12 @@ window.Aura = (() => {
3725
3819
  }
3726
3820
 
3727
3821
  // src/PasswordField.tsx
3728
- var React22 = __toESM(require_react(), 1);
3729
- var PasswordField = React22.forwardRef(function PasswordField2(props, ref) {
3822
+ var React23 = __toESM(require_react(), 1);
3823
+ var PasswordField = React23.forwardRef(function PasswordField2(props, ref) {
3730
3824
  const t = useStrings();
3731
- const shown = React22.useState(false);
3825
+ const shown = React23.useState(false);
3732
3826
  const rest = omit(props, ["toggle", "className"]);
3733
- return /* @__PURE__ */ React22.createElement(
3827
+ return /* @__PURE__ */ React23.createElement(
3734
3828
  TextField,
3735
3829
  {
3736
3830
  autoComplete: "current-password",
@@ -3740,10 +3834,10 @@ window.Aura = (() => {
3740
3834
  spellCheck: false,
3741
3835
  autoCapitalize: "none",
3742
3836
  className: cx("aura-password", props.className),
3743
- suffix: props.toggle === false ? void 0 : /* @__PURE__ */ React22.createElement(
3837
+ suffix: props.toggle === false ? void 0 : /* @__PURE__ */ React23.createElement(
3744
3838
  IconButton,
3745
3839
  {
3746
- icon: shown[0] ? /* @__PURE__ */ React22.createElement(IconEyeOff, null) : /* @__PURE__ */ React22.createElement(IconEye, null),
3840
+ icon: shown[0] ? /* @__PURE__ */ React23.createElement(IconEyeOff, null) : /* @__PURE__ */ React23.createElement(IconEye, null),
3747
3841
  label: t.showPassword,
3748
3842
  "aria-pressed": shown[0],
3749
3843
  disabled: props.disabled,
@@ -3757,7 +3851,7 @@ window.Aura = (() => {
3757
3851
  });
3758
3852
 
3759
3853
  // src/FormErrorSummary.tsx
3760
- var React23 = __toESM(require_react(), 1);
3854
+ var React24 = __toESM(require_react(), 1);
3761
3855
  function items(errors) {
3762
3856
  if (Array.isArray(errors)) return errors;
3763
3857
  const out = [];
@@ -3786,16 +3880,16 @@ window.Aura = (() => {
3786
3880
  }
3787
3881
  return named;
3788
3882
  }
3789
- var FormErrorSummary = React23.forwardRef(
3883
+ var FormErrorSummary = React24.forwardRef(
3790
3884
  function FormErrorSummary2(props, ref) {
3791
3885
  const t = useStrings();
3792
3886
  const auto = uid(), id = props.id || auto;
3793
3887
  const list = items(props.errors);
3794
- const box = React23.useRef(null);
3888
+ const box = React24.useRef(null);
3795
3889
  const keyed = props.focusKey !== void 0;
3796
- const lastKey = React23.useRef(null), armed = React23.useRef(false), hadErrors = React23.useRef(false);
3890
+ const lastKey = React24.useRef(null), armed = React24.useRef(false), hadErrors = React24.useRef(false);
3797
3891
  const has = list.length > 0;
3798
- React23.useEffect(
3892
+ React24.useEffect(
3799
3893
  function() {
3800
3894
  const appeared = has && !hadErrors.current;
3801
3895
  hadErrors.current = has;
@@ -3819,7 +3913,7 @@ window.Aura = (() => {
3819
3913
  // eslint-disable-next-line react-hooks/exhaustive-deps
3820
3914
  [has, props.focusKey, keyed]
3821
3915
  );
3822
- React23.useEffect(
3916
+ React24.useEffect(
3823
3917
  function() {
3824
3918
  if (!keyed) return;
3825
3919
  function disarm() {
@@ -3838,7 +3932,7 @@ window.Aura = (() => {
3838
3932
  [keyed]
3839
3933
  );
3840
3934
  if (!list.length) return null;
3841
- return /* @__PURE__ */ React23.createElement(
3935
+ return /* @__PURE__ */ React24.createElement(
3842
3936
  "div",
3843
3937
  {
3844
3938
  ref: function(el) {
@@ -3852,9 +3946,9 @@ window.Aura = (() => {
3852
3946
  "aria-labelledby": id + "-title",
3853
3947
  className: cx("aura-alert aura-alert--danger aura-error-summary", props.className)
3854
3948
  },
3855
- /* @__PURE__ */ React23.createElement(Icon, { name: /* @__PURE__ */ React23.createElement(IconCircleAlert, null), className: "aura-alert__icon" }),
3856
- /* @__PURE__ */ React23.createElement("div", { className: "aura-alert__body" }, /* @__PURE__ */ React23.createElement("h2", { className: "aura-alert__title", id: id + "-title" }, props.title || t.errorSummary(list.length)), /* @__PURE__ */ React23.createElement("ul", { className: "aura-error-summary__list" }, list.map(function(e) {
3857
- return /* @__PURE__ */ React23.createElement("li", { key: e.field }, /* @__PURE__ */ React23.createElement(
3949
+ /* @__PURE__ */ React24.createElement(Icon, { name: /* @__PURE__ */ React24.createElement(IconCircleAlert, null), className: "aura-alert__icon" }),
3950
+ /* @__PURE__ */ React24.createElement("div", { className: "aura-alert__body" }, /* @__PURE__ */ React24.createElement("h2", { className: "aura-alert__title", id: id + "-title" }, props.title || t.errorSummary(list.length)), /* @__PURE__ */ React24.createElement("ul", { className: "aura-error-summary__list" }, list.map(function(e) {
3951
+ return /* @__PURE__ */ React24.createElement("li", { key: e.field }, /* @__PURE__ */ React24.createElement(
3858
3952
  "a",
3859
3953
  {
3860
3954
  href: "#" + e.field,
@@ -3879,30 +3973,30 @@ window.Aura = (() => {
3879
3973
  );
3880
3974
 
3881
3975
  // src/FilterBar.tsx
3882
- var React25 = __toESM(require_react(), 1);
3976
+ var React26 = __toESM(require_react(), 1);
3883
3977
 
3884
3978
  // src/Tag.tsx
3885
- var React24 = __toESM(require_react(), 1);
3886
- function textOf(node) {
3979
+ var React25 = __toESM(require_react(), 1);
3980
+ function textOf2(node) {
3887
3981
  if (node == null || typeof node === "boolean") return "";
3888
3982
  if (typeof node === "string" || typeof node === "number") return String(node);
3889
- if (Array.isArray(node)) return node.map(textOf).join("");
3890
- if (React24.isValidElement(node)) {
3983
+ if (Array.isArray(node)) return node.map(textOf2).join("");
3984
+ if (React25.isValidElement(node)) {
3891
3985
  const p = node.props;
3892
- return p["aria-hidden"] === true || p["aria-hidden"] === "true" ? "" : textOf(p.children);
3986
+ return p["aria-hidden"] === true || p["aria-hidden"] === "true" ? "" : textOf2(p.children);
3893
3987
  }
3894
3988
  return "";
3895
3989
  }
3896
- var Tag = React24.forwardRef(function Tag2(props, ref) {
3990
+ var Tag = React25.forwardRef(function Tag2(props, ref) {
3897
3991
  const t = useStrings();
3898
3992
  const selectable = props.onClick != null || props.selected != null;
3899
3993
  const rest = omit(props, ["onRemove", "selected", "icon", "className", "children", "disabled", "removeLabel"]);
3900
3994
  const inner = [
3901
- props.icon ? /* @__PURE__ */ React24.createElement(Icon, { key: "i", name: props.icon, size: 14 }) : null,
3902
- /* @__PURE__ */ React24.createElement("span", { key: "t", className: "aura-tag__text" }, props.children)
3995
+ props.icon ? /* @__PURE__ */ React25.createElement(Icon, { key: "i", name: props.icon, size: 14 }) : null,
3996
+ /* @__PURE__ */ React25.createElement("span", { key: "t", className: "aura-tag__text" }, props.children)
3903
3997
  ];
3904
3998
  if (selectable) {
3905
- return /* @__PURE__ */ React24.createElement(
3999
+ return /* @__PURE__ */ React25.createElement(
3906
4000
  "button",
3907
4001
  {
3908
4002
  ...rest,
@@ -3912,17 +4006,17 @@ window.Aura = (() => {
3912
4006
  disabled: props.disabled,
3913
4007
  className: cx("aura-tag is-selectable", props.selected && "is-selected", props.className)
3914
4008
  },
3915
- props.selected ? /* @__PURE__ */ React24.createElement(Icon, { name: /* @__PURE__ */ React24.createElement(IconCheck, null), size: 14 }) : inner[0],
4009
+ props.selected ? /* @__PURE__ */ React25.createElement(Icon, { name: /* @__PURE__ */ React25.createElement(IconCheck, null), size: 14 }) : inner[0],
3916
4010
  inner[1]
3917
4011
  );
3918
4012
  }
3919
- const name = props.onRemove && !props.removeLabel ? textOf(props.children).replace(/\s+/g, " ").trim() : "";
4013
+ const name = props.onRemove && !props.removeLabel ? textOf2(props.children).replace(/\s+/g, " ").trim() : "";
3920
4014
  if (props.onRemove && !props.disabled && !props.removeLabel && !name)
3921
4015
  devWarnOnce(
3922
4016
  "tag-remove-label",
3923
4017
  'Tag: the remove button has no name \u2014 its children have no text. Pass removeLabel (e.g. "Remove Acme AB").'
3924
4018
  );
3925
- return /* @__PURE__ */ React24.createElement("span", { ...rest, ref, className: cx("aura-tag", props.disabled && "is-disabled", props.className) }, inner, props.onRemove && !props.disabled ? /* @__PURE__ */ React24.createElement(
4019
+ return /* @__PURE__ */ React25.createElement("span", { ...rest, ref, className: cx("aura-tag", props.disabled && "is-disabled", props.className) }, inner, props.onRemove && !props.disabled ? /* @__PURE__ */ React25.createElement(
3926
4020
  "button",
3927
4021
  {
3928
4022
  type: "button",
@@ -3930,21 +4024,21 @@ window.Aura = (() => {
3930
4024
  "aria-label": props.removeLabel || t.remove(name),
3931
4025
  onClick: props.onRemove
3932
4026
  },
3933
- /* @__PURE__ */ React24.createElement(Icon, { name: /* @__PURE__ */ React24.createElement(IconX, null), size: 12 })
4027
+ /* @__PURE__ */ React25.createElement(Icon, { name: /* @__PURE__ */ React25.createElement(IconX, null), size: 12 })
3934
4028
  ) : null);
3935
4029
  });
3936
4030
 
3937
4031
  // src/FilterBar.tsx
3938
- var FilterBar = React25.forwardRef(function FilterBar2(props, ref) {
4032
+ var FilterBar = React26.forwardRef(function FilterBar2(props, ref) {
3939
4033
  const t = useStrings();
3940
4034
  const id = uid();
3941
4035
  const hasSearch = !!props.onSearchChange;
3942
- const draft = React25.useState(props.search || "");
3943
- const timer = React25.useRef(null);
3944
- const sent = React25.useRef(props.search || "");
3945
- const onChange = React25.useRef(props.onSearchChange);
4036
+ const draft = React26.useState(props.search || "");
4037
+ const timer = React26.useRef(null);
4038
+ const sent = React26.useRef(props.search || "");
4039
+ const onChange = React26.useRef(props.onSearchChange);
3946
4040
  onChange.current = props.onSearchChange;
3947
- React25.useEffect(
4041
+ React26.useEffect(
3948
4042
  function() {
3949
4043
  if ((props.search || "") !== sent.current) {
3950
4044
  sent.current = props.search || "";
@@ -3953,7 +4047,7 @@ window.Aura = (() => {
3953
4047
  },
3954
4048
  [props.search]
3955
4049
  );
3956
- React25.useEffect(function() {
4050
+ React26.useEffect(function() {
3957
4051
  return function() {
3958
4052
  if (timer.current) clearTimeout(timer.current);
3959
4053
  };
@@ -3978,15 +4072,15 @@ window.Aura = (() => {
3978
4072
  const filters = props.filters || [];
3979
4073
  const anything = filters.length > 0 || !!(props.search || draft[0]);
3980
4074
  const count = props.resultCount == null ? null : typeof props.resultCount === "number" ? t.results(props.resultCount) : props.resultCount;
3981
- return /* @__PURE__ */ React25.createElement(
4075
+ return /* @__PURE__ */ React26.createElement(
3982
4076
  "div",
3983
4077
  {
3984
4078
  ref,
3985
4079
  role: "region",
3986
4080
  "aria-label": props.label || t.filters,
3987
- className: cx("aura-filterbar", props.className)
4081
+ className: cx("aura-filterbar", props.searchGrow && "aura-filterbar--grow", props.className)
3988
4082
  },
3989
- /* @__PURE__ */ React25.createElement("div", { className: "aura-filterbar__row" }, hasSearch ? /* @__PURE__ */ React25.createElement("div", { className: "aura-input has-icon aura-filterbar__search" }, /* @__PURE__ */ React25.createElement(Icon, { name: /* @__PURE__ */ React25.createElement(IconSearch, null), className: "aura-input__icon" }), /* @__PURE__ */ React25.createElement(
4083
+ /* @__PURE__ */ React26.createElement("div", { className: "aura-filterbar__row" }, hasSearch ? /* @__PURE__ */ React26.createElement("div", { className: "aura-input has-icon aura-filterbar__search" }, /* @__PURE__ */ React26.createElement(Icon, { name: /* @__PURE__ */ React26.createElement(IconSearch, null), className: "aura-input__icon" }), /* @__PURE__ */ React26.createElement(
3990
4084
  "input",
3991
4085
  {
3992
4086
  id,
@@ -4007,10 +4101,10 @@ window.Aura = (() => {
4007
4101
  }
4008
4102
  }
4009
4103
  }
4010
- ), draft[0] ? /* @__PURE__ */ React25.createElement(
4104
+ ), draft[0] ? /* @__PURE__ */ React26.createElement(
4011
4105
  IconButton,
4012
4106
  {
4013
- icon: /* @__PURE__ */ React25.createElement(IconX, null),
4107
+ icon: /* @__PURE__ */ React26.createElement(IconX, null),
4014
4108
  label: t.clear((props.searchLabel || t.search).toLowerCase()),
4015
4109
  className: "aura-filterbar__clear-search",
4016
4110
  onClick: function() {
@@ -4018,10 +4112,10 @@ window.Aura = (() => {
4018
4112
  send("");
4019
4113
  }
4020
4114
  }
4021
- ) : null) : null, props.children ? /* @__PURE__ */ React25.createElement("div", { className: "aura-filterbar__controls" }, props.children) : null, /* @__PURE__ */ React25.createElement("span", { className: "aura-filterbar__spacer" }), count != null ? /* @__PURE__ */ React25.createElement("span", { className: "aura-filterbar__count", "aria-live": "polite" }, count) : null, props.actions ? /* @__PURE__ */ React25.createElement("div", { className: "aura-filterbar__actions" }, props.actions) : null),
4022
- filters.length || props.onClearAll && anything ? /* @__PURE__ */ React25.createElement("div", { className: "aura-filterbar__chips" }, filters.map(function(f) {
4023
- return /* @__PURE__ */ React25.createElement(Tag, { key: f.id, onRemove: f.onRemove }, f.label);
4024
- }), props.onClearAll && anything ? /* @__PURE__ */ React25.createElement(
4115
+ ) : null) : null, props.children ? /* @__PURE__ */ React26.createElement("div", { className: "aura-filterbar__controls" }, props.children) : null, /* @__PURE__ */ React26.createElement("span", { className: "aura-filterbar__spacer" }), count != null ? /* @__PURE__ */ React26.createElement("span", { className: "aura-filterbar__count", "aria-live": "polite" }, count) : null, props.actions ? /* @__PURE__ */ React26.createElement("div", { className: "aura-filterbar__actions" }, props.actions) : null),
4116
+ filters.length || props.onClearAll && anything ? /* @__PURE__ */ React26.createElement("div", { className: "aura-filterbar__chips" }, filters.map(function(f) {
4117
+ return /* @__PURE__ */ React26.createElement(Tag, { key: f.id, onRemove: f.onRemove }, f.label);
4118
+ }), props.onClearAll && anything ? /* @__PURE__ */ React26.createElement(
4025
4119
  "button",
4026
4120
  {
4027
4121
  type: "button",
@@ -4039,11 +4133,11 @@ window.Aura = (() => {
4039
4133
  });
4040
4134
 
4041
4135
  // src/Command.tsx
4042
- var React27 = __toESM(require_react(), 1);
4136
+ var React28 = __toESM(require_react(), 1);
4043
4137
  var import_react_dom6 = __toESM(require_react_dom(), 1);
4044
4138
 
4045
4139
  // src/useModal.tsx
4046
- var React26 = __toESM(require_react(), 1);
4140
+ var React27 = __toESM(require_react(), 1);
4047
4141
  var locks = 0;
4048
4142
  var savedOverflow = "";
4049
4143
  function lockScroll() {
@@ -4070,9 +4164,9 @@ window.Aura = (() => {
4070
4164
  }
4071
4165
  function useModal(open, ref, opts) {
4072
4166
  const mounted = useMounted();
4073
- const prev = React26.useRef(null);
4167
+ const prev = React27.useRef(null);
4074
4168
  const o = opts || {};
4075
- React26.useEffect(
4169
+ React27.useEffect(
4076
4170
  function() {
4077
4171
  if (!open || !mounted) return;
4078
4172
  prev.current = document.activeElement;
@@ -4130,21 +4224,21 @@ window.Aura = (() => {
4130
4224
  const t = useStrings();
4131
4225
  const density = useDensity();
4132
4226
  const id = uid(), listId = id + "-list";
4133
- const box = React27.useRef(null);
4134
- const input = React27.useRef(null);
4135
- const qState = React27.useState(""), act = React27.useState(null);
4227
+ const box = React28.useRef(null);
4228
+ const input = React28.useRef(null);
4229
+ const qState = React28.useState(""), act = React28.useState(null);
4136
4230
  const query = props.query !== void 0 ? props.query : qState[0];
4137
4231
  function setQuery(v) {
4138
4232
  if (props.query === void 0) qState[1](v);
4139
4233
  if (props.onQueryChange) props.onQueryChange(v);
4140
4234
  }
4141
- const openRef = React27.useRef(props.open);
4235
+ const openRef = React28.useRef(props.open);
4142
4236
  openRef.current = props.open;
4143
4237
  const close = function() {
4144
4238
  props.onOpenChange(false);
4145
4239
  };
4146
4240
  const modal = useModal(props.open, box, { onEscape: close });
4147
- React27.useEffect(
4241
+ React28.useEffect(
4148
4242
  function() {
4149
4243
  if (props.hotkey === false) return;
4150
4244
  function onKey2(e) {
@@ -4160,7 +4254,7 @@ window.Aura = (() => {
4160
4254
  },
4161
4255
  [props.hotkey, props.onOpenChange]
4162
4256
  );
4163
- React27.useEffect(
4257
+ React28.useEffect(
4164
4258
  function() {
4165
4259
  if (!props.open) {
4166
4260
  if (query) setQuery("");
@@ -4200,7 +4294,7 @@ window.Aura = (() => {
4200
4294
  const optId = function(i2) {
4201
4295
  return id + "-o" + i2;
4202
4296
  };
4203
- React27.useEffect(
4297
+ React28.useEffect(
4204
4298
  function() {
4205
4299
  if (!box.current || active < 0) return;
4206
4300
  const el = box.current.querySelector("#" + CSS.escape(optId(active)));
@@ -4245,7 +4339,7 @@ window.Aura = (() => {
4245
4339
  if (!modal.ready) return null;
4246
4340
  let i = -1;
4247
4341
  return (0, import_react_dom6.createPortal)(
4248
- /* @__PURE__ */ React27.createElement(
4342
+ /* @__PURE__ */ React28.createElement(
4249
4343
  "div",
4250
4344
  {
4251
4345
  className: "aura-dialog-layer aura-command-layer",
@@ -4255,8 +4349,8 @@ window.Aura = (() => {
4255
4349
  e.stopPropagation();
4256
4350
  }
4257
4351
  },
4258
- /* @__PURE__ */ React27.createElement("div", { className: "aura-scrim", onClick: close, "aria-hidden": true }),
4259
- /* @__PURE__ */ React27.createElement(
4352
+ /* @__PURE__ */ React28.createElement("div", { className: "aura-scrim", onClick: close, "aria-hidden": true }),
4353
+ /* @__PURE__ */ React28.createElement(
4260
4354
  "div",
4261
4355
  {
4262
4356
  ref: box,
@@ -4266,7 +4360,7 @@ window.Aura = (() => {
4266
4360
  tabIndex: -1,
4267
4361
  className: cx("aura-command", props.className)
4268
4362
  },
4269
- /* @__PURE__ */ React27.createElement("div", { className: "aura-command__search" }, /* @__PURE__ */ React27.createElement(Icon, { name: /* @__PURE__ */ React27.createElement(IconSearch, null), className: "aura-command__search-icon" }), /* @__PURE__ */ React27.createElement(
4363
+ /* @__PURE__ */ React28.createElement("div", { className: "aura-command__search" }, /* @__PURE__ */ React28.createElement(Icon, { name: /* @__PURE__ */ React28.createElement(IconSearch, null), className: "aura-command__search-icon" }), /* @__PURE__ */ React28.createElement(
4270
4364
  "input",
4271
4365
  {
4272
4366
  ref: input,
@@ -4289,8 +4383,8 @@ window.Aura = (() => {
4289
4383
  },
4290
4384
  onKeyDown: onKey
4291
4385
  }
4292
- ), /* @__PURE__ */ React27.createElement("kbd", { className: "aura-command__kbd" }, "Esc")),
4293
- /* @__PURE__ */ React27.createElement("div", { className: "aura-command__list", "aria-busy": props.loading || void 0 }, props.loading ? /* @__PURE__ */ React27.createElement("div", { className: "aura-command__loading" }, /* @__PURE__ */ React27.createElement(Icon, { name: /* @__PURE__ */ React27.createElement(IconLoaderCircle, null), className: "aura-spin" }), t.searching) : null, !flat2.length ? props.loading ? null : /* @__PURE__ */ React27.createElement("div", { className: "aura-command__empty" }, props.empty != null ? props.empty : props.emptyText || t.noMatches) : /* @__PURE__ */ React27.createElement(
4386
+ ), /* @__PURE__ */ React28.createElement("kbd", { className: "aura-command__kbd" }, "Esc")),
4387
+ /* @__PURE__ */ React28.createElement("div", { className: "aura-command__list", "aria-busy": props.loading || void 0 }, props.loading ? /* @__PURE__ */ React28.createElement("div", { className: "aura-command__loading" }, /* @__PURE__ */ React28.createElement(Icon, { name: /* @__PURE__ */ React28.createElement(IconLoaderCircle, null), className: "aura-spin" }), t.searching) : null, !flat2.length ? props.loading ? null : /* @__PURE__ */ React28.createElement("div", { className: "aura-command__empty" }, props.empty != null ? props.empty : props.emptyText || t.noMatches) : /* @__PURE__ */ React28.createElement(
4294
4388
  "div",
4295
4389
  {
4296
4390
  id: listId,
@@ -4300,7 +4394,7 @@ window.Aura = (() => {
4300
4394
  },
4301
4395
  groups.map(function(g, gi) {
4302
4396
  const gid = id + "-g" + gi;
4303
- return /* @__PURE__ */ React27.createElement(
4397
+ return /* @__PURE__ */ React28.createElement(
4304
4398
  "div",
4305
4399
  {
4306
4400
  key: g.name || gi,
@@ -4308,11 +4402,11 @@ window.Aura = (() => {
4308
4402
  "aria-labelledby": g.name ? gid : void 0,
4309
4403
  className: "aura-command__group"
4310
4404
  },
4311
- g.name ? /* @__PURE__ */ React27.createElement("div", { className: "aura-command__heading", id: gid, role: "presentation" }, g.name) : null,
4405
+ g.name ? /* @__PURE__ */ React28.createElement("div", { className: "aura-command__heading", id: gid, role: "presentation" }, g.name) : null,
4312
4406
  g.items.map(function(it) {
4313
4407
  i++;
4314
4408
  const n3 = i;
4315
- return /* @__PURE__ */ React27.createElement(
4409
+ return /* @__PURE__ */ React28.createElement(
4316
4410
  "div",
4317
4411
  {
4318
4412
  key: it.id,
@@ -4335,16 +4429,16 @@ window.Aura = (() => {
4335
4429
  run(it);
4336
4430
  }
4337
4431
  },
4338
- it.icon ? /* @__PURE__ */ React27.createElement(Icon, { name: it.icon }) : null,
4339
- /* @__PURE__ */ React27.createElement("span", { className: "aura-command__text" }, /* @__PURE__ */ React27.createElement("span", { className: "aura-command__label" }, it.label), it.description ? /* @__PURE__ */ React27.createElement("span", { className: "aura-command__desc" }, it.description) : null),
4340
- it.shortcut ? /* @__PURE__ */ React27.createElement("kbd", { className: "aura-command__kbd" }, it.shortcut) : null
4432
+ it.icon ? /* @__PURE__ */ React28.createElement(Icon, { name: it.icon }) : null,
4433
+ /* @__PURE__ */ React28.createElement("span", { className: "aura-command__text" }, /* @__PURE__ */ React28.createElement("span", { className: "aura-command__label" }, it.label), it.description ? /* @__PURE__ */ React28.createElement("span", { className: "aura-command__desc" }, it.description) : null),
4434
+ it.shortcut ? /* @__PURE__ */ React28.createElement("kbd", { className: "aura-command__kbd" }, it.shortcut) : null
4341
4435
  );
4342
4436
  })
4343
4437
  );
4344
4438
  })
4345
4439
  )),
4346
- /* @__PURE__ */ React27.createElement("span", { className: "aura-sr-only", role: "status" }, props.loading ? t.searching : query && !flat2.length ? t.noMatches : props.loading === false && query ? t.results(flat2.length) : ""),
4347
- /* @__PURE__ */ React27.createElement("div", { className: "aura-command__foot", "aria-hidden": true }, t.commandHint, /* @__PURE__ */ React27.createElement("span", { className: "aura-command__mod" }, isMac() ? "\u2318K" : "Ctrl K"))
4440
+ /* @__PURE__ */ React28.createElement("span", { className: "aura-sr-only", role: "status" }, props.loading ? t.searching : query && !flat2.length ? t.noMatches : props.loading === false && query ? t.results(flat2.length) : ""),
4441
+ /* @__PURE__ */ React28.createElement("div", { className: "aura-command__foot", "aria-hidden": true }, t.commandHint, /* @__PURE__ */ React28.createElement("span", { className: "aura-command__mod" }, isMac() ? "\u2318K" : "Ctrl K"))
4348
4442
  )
4349
4443
  ),
4350
4444
  document.body
@@ -4352,12 +4446,12 @@ window.Aura = (() => {
4352
4446
  }
4353
4447
 
4354
4448
  // src/Tooltip.tsx
4355
- var React28 = __toESM(require_react(), 1);
4449
+ var React29 = __toESM(require_react(), 1);
4356
4450
  var import_react_dom7 = __toESM(require_react_dom(), 1);
4357
- var Tooltip = React28.forwardRef(function Tooltip2(props, ref) {
4358
- const id = uid(), st = React28.useState(false), open = props.open !== void 0 ? props.open : st[0], set = st[1];
4359
- const anchor = React28.useRef(null), anchorMerged = useMergedRef(ref, anchor), tip = React28.useRef(null), timer = React28.useRef(void 0);
4360
- const pos = React28.useState(null), mounted = useMounted();
4451
+ var Tooltip = React29.forwardRef(function Tooltip2(props, ref) {
4452
+ const id = uid(), st = React29.useState(false), open = props.open !== void 0 ? props.open : st[0], set = st[1];
4453
+ const anchor = React29.useRef(null), anchorMerged = useMergedRef(ref, anchor), tip = React29.useRef(null), timer = React29.useRef(void 0);
4454
+ const pos = React29.useState(null), mounted = useMounted();
4361
4455
  function show2(now) {
4362
4456
  clearTimeout(timer.current);
4363
4457
  timer.current = setTimeout(
@@ -4377,7 +4471,7 @@ window.Aura = (() => {
4377
4471
  set(false);
4378
4472
  }, 120);
4379
4473
  }
4380
- React28.useEffect(function() {
4474
+ React29.useEffect(function() {
4381
4475
  return function() {
4382
4476
  clearTimeout(timer.current);
4383
4477
  };
@@ -4421,7 +4515,7 @@ window.Aura = (() => {
4421
4515
  },
4422
4516
  [open, mounted]
4423
4517
  );
4424
- React28.useEffect(
4518
+ React29.useEffect(
4425
4519
  function() {
4426
4520
  if (!open) return;
4427
4521
  function esc(e) {
@@ -4434,8 +4528,8 @@ window.Aura = (() => {
4434
4528
  },
4435
4529
  [open]
4436
4530
  );
4437
- const child = React28.Children.only(props.children);
4438
- const trigger = /* @__PURE__ */ React28.createElement(
4531
+ const child = React29.Children.only(props.children);
4532
+ const trigger = /* @__PURE__ */ React29.createElement(
4439
4533
  "span",
4440
4534
  {
4441
4535
  ref: anchorMerged,
@@ -4449,10 +4543,10 @@ window.Aura = (() => {
4449
4543
  },
4450
4544
  onBlur: hide
4451
4545
  },
4452
- React28.cloneElement(child, { "aria-describedby": open ? id : child.props["aria-describedby"] })
4546
+ React29.cloneElement(child, { "aria-describedby": open ? id : child.props["aria-describedby"] })
4453
4547
  );
4454
- return /* @__PURE__ */ React28.createElement(React28.Fragment, null, trigger, open && mounted ? (0, import_react_dom7.createPortal)(
4455
- /* @__PURE__ */ React28.createElement(
4548
+ return /* @__PURE__ */ React29.createElement(React29.Fragment, null, trigger, open && mounted ? (0, import_react_dom7.createPortal)(
4549
+ /* @__PURE__ */ React29.createElement(
4456
4550
  "div",
4457
4551
  {
4458
4552
  ref: tip,
@@ -4472,12 +4566,12 @@ window.Aura = (() => {
4472
4566
  });
4473
4567
 
4474
4568
  // src/Dialog.tsx
4475
- var React29 = __toESM(require_react(), 1);
4569
+ var React30 = __toESM(require_react(), 1);
4476
4570
  var import_react_dom8 = __toESM(require_react_dom(), 1);
4477
- var Dialog = React29.forwardRef(function Dialog2(props, ref) {
4571
+ var Dialog = React30.forwardRef(function Dialog2(props, ref) {
4478
4572
  const t = useStrings();
4479
4573
  const density = useDensity();
4480
- const own = React29.useRef(null), merged = useMergedRef(ref, own), titleId = uid(), descId = uid();
4574
+ const own = React30.useRef(null), merged = useMergedRef(ref, own), titleId = uid(), descId = uid();
4481
4575
  function close() {
4482
4576
  if (props.dismissible !== false && props.onClose) props.onClose();
4483
4577
  }
@@ -4490,7 +4584,7 @@ window.Aura = (() => {
4490
4584
  });
4491
4585
  if (!modal.ready) return null;
4492
4586
  return (0, import_react_dom8.createPortal)(
4493
- /* @__PURE__ */ React29.createElement("div", { className: "aura-dialog-layer", "data-density": density, onKeyDown: modal.onKeyDown }, /* @__PURE__ */ React29.createElement(
4587
+ /* @__PURE__ */ React30.createElement("div", { className: "aura-dialog-layer", "data-density": density, onKeyDown: modal.onKeyDown }, /* @__PURE__ */ React30.createElement(
4494
4588
  "div",
4495
4589
  {
4496
4590
  className: "aura-scrim",
@@ -4500,7 +4594,7 @@ window.Aura = (() => {
4500
4594
  },
4501
4595
  "aria-hidden": true
4502
4596
  }
4503
- ), /* @__PURE__ */ React29.createElement(
4597
+ ), /* @__PURE__ */ React30.createElement(
4504
4598
  "div",
4505
4599
  {
4506
4600
  ref: merged,
@@ -4511,18 +4605,18 @@ window.Aura = (() => {
4511
4605
  tabIndex: -1,
4512
4606
  className: cx("aura-dialog", "aura-dialog--" + (props.size || "md"), props.className)
4513
4607
  },
4514
- /* @__PURE__ */ React29.createElement("div", { className: "aura-dialog__head" }, /* @__PURE__ */ React29.createElement("h2", { className: "aura-dialog__title", id: titleId }, props.title), props.dismissible !== false ? /* @__PURE__ */ React29.createElement(IconButton, { icon: /* @__PURE__ */ React29.createElement(IconX, null), label: t.close, className: "aura-dialog__close", onClick: close }) : null),
4515
- props.description ? /* @__PURE__ */ React29.createElement("p", { className: "aura-dialog__desc", id: descId }, props.description) : null,
4516
- props.children ? /* @__PURE__ */ React29.createElement("div", { className: "aura-dialog__body" }, props.children) : null,
4517
- props.footer ? /* @__PURE__ */ React29.createElement("div", { className: "aura-dialog__foot" }, props.footer) : null
4608
+ /* @__PURE__ */ React30.createElement("div", { className: "aura-dialog__head" }, /* @__PURE__ */ React30.createElement("h2", { className: "aura-dialog__title", id: titleId }, props.title), props.dismissible !== false ? /* @__PURE__ */ React30.createElement(IconButton, { icon: /* @__PURE__ */ React30.createElement(IconX, null), label: t.close, className: "aura-dialog__close", onClick: close }) : null),
4609
+ props.description ? /* @__PURE__ */ React30.createElement("p", { className: "aura-dialog__desc", id: descId }, props.description) : null,
4610
+ props.children ? /* @__PURE__ */ React30.createElement("div", { className: "aura-dialog__body" }, props.children) : null,
4611
+ props.footer ? /* @__PURE__ */ React30.createElement("div", { className: "aura-dialog__foot" }, props.footer) : null
4518
4612
  )),
4519
4613
  document.body
4520
4614
  );
4521
4615
  });
4522
- var Drawer = React29.forwardRef(function Drawer2(props, ref) {
4616
+ var Drawer = React30.forwardRef(function Drawer2(props, ref) {
4523
4617
  const t = useStrings();
4524
4618
  const density = useDensity();
4525
- const own = React29.useRef(null), merged = useMergedRef(ref, own), titleId = uid(), descId = uid();
4619
+ const own = React30.useRef(null), merged = useMergedRef(ref, own), titleId = uid(), descId = uid();
4526
4620
  function close() {
4527
4621
  if (props.dismissible !== false && props.onClose) props.onClose();
4528
4622
  }
@@ -4555,7 +4649,7 @@ window.Aura = (() => {
4555
4649
  ]);
4556
4650
  const drawerScrimCloses = props.dismissible !== false && props.dismissOnScrim !== false;
4557
4651
  return (0, import_react_dom8.createPortal)(
4558
- /* @__PURE__ */ React29.createElement("div", { className: "aura-dialog-layer aura-drawer-layer", "data-density": density, onKeyDown: modal.onKeyDown }, /* @__PURE__ */ React29.createElement(
4652
+ /* @__PURE__ */ React30.createElement("div", { className: "aura-dialog-layer aura-drawer-layer", "data-density": density, onKeyDown: modal.onKeyDown }, /* @__PURE__ */ React30.createElement(
4559
4653
  "div",
4560
4654
  {
4561
4655
  className: "aura-scrim",
@@ -4565,7 +4659,7 @@ window.Aura = (() => {
4565
4659
  } : void 0,
4566
4660
  "aria-hidden": true
4567
4661
  }
4568
- ), /* @__PURE__ */ React29.createElement(
4662
+ ), /* @__PURE__ */ React30.createElement(
4569
4663
  "div",
4570
4664
  {
4571
4665
  ...rest,
@@ -4578,11 +4672,11 @@ window.Aura = (() => {
4578
4672
  tabIndex: -1,
4579
4673
  className: cx("aura-drawer", "aura-drawer--" + side, "aura-drawer--" + (props.size || "md"), props.className)
4580
4674
  },
4581
- props.title || props.dismissible !== false ? /* @__PURE__ */ React29.createElement("div", { className: "aura-drawer__head" }, props.title ? /* @__PURE__ */ React29.createElement("h2", { className: "aura-drawer__title", id: titleId }, props.title) : /* @__PURE__ */ React29.createElement("span", { style: { flex: 1 } }), props.dismissible !== false ? /* @__PURE__ */ React29.createElement(
4675
+ props.title || props.dismissible !== false ? /* @__PURE__ */ React30.createElement("div", { className: "aura-drawer__head" }, props.title ? /* @__PURE__ */ React30.createElement("h2", { className: "aura-drawer__title", id: titleId }, props.title) : /* @__PURE__ */ React30.createElement("span", { style: { flex: 1 } }), props.dismissible !== false ? /* @__PURE__ */ React30.createElement(
4582
4676
  IconButton,
4583
4677
  {
4584
4678
  ...props.closeProps,
4585
- icon: /* @__PURE__ */ React29.createElement(IconX, null),
4679
+ icon: /* @__PURE__ */ React30.createElement(IconX, null),
4586
4680
  label: props.closeLabel || t.close,
4587
4681
  onClick: function(e) {
4588
4682
  const own2 = props.closeProps && props.closeProps.onClick;
@@ -4591,16 +4685,16 @@ window.Aura = (() => {
4591
4685
  }
4592
4686
  }
4593
4687
  ) : null) : null,
4594
- props.description ? /* @__PURE__ */ React29.createElement("p", { className: "aura-drawer__desc", id: descId }, props.description) : null,
4595
- /* @__PURE__ */ React29.createElement("div", { className: "aura-drawer__body" }, props.children),
4596
- props.footer ? /* @__PURE__ */ React29.createElement("div", { className: "aura-drawer__foot" }, props.footer) : null
4688
+ props.description ? /* @__PURE__ */ React30.createElement("p", { className: "aura-drawer__desc", id: descId }, props.description) : null,
4689
+ /* @__PURE__ */ React30.createElement("div", { className: "aura-drawer__body" }, props.children),
4690
+ props.footer ? /* @__PURE__ */ React30.createElement("div", { className: "aura-drawer__foot" }, props.footer) : null
4597
4691
  )),
4598
4692
  document.body
4599
4693
  );
4600
4694
  });
4601
4695
 
4602
4696
  // src/DataTable.tsx
4603
- var React30 = __toESM(require_react(), 1);
4697
+ var React31 = __toESM(require_react(), 1);
4604
4698
  var import_react_dom9 = __toESM(require_react_dom(), 1);
4605
4699
  var BP = { sm: 640, md: 768, lg: 1024, xl: 1280 };
4606
4700
  var DEFAULT_COLUMNS = [
@@ -4623,7 +4717,7 @@ window.Aura = (() => {
4623
4717
  var ROW_H_DEFAULT = 48;
4624
4718
  var OVERSCAN = 8;
4625
4719
  var FLEX_MIN = 160;
4626
- var DataTableImpl = React30.forwardRef(function DataTable(props, ref) {
4720
+ var DataTableImpl = React31.forwardRef(function DataTable(props, ref) {
4627
4721
  const t = useStrings();
4628
4722
  const columns = props.columns || DEFAULT_COLUMNS;
4629
4723
  const byKey = {};
@@ -4662,7 +4756,7 @@ window.Aura = (() => {
4662
4756
  const droppedSig = selState[0].length === selected.length ? "" : "#" + selState[0].filter(function(k) {
4663
4757
  return rejected[String(k)];
4664
4758
  }).join("\0") + "#" + selected.join("\0");
4665
- React30.useEffect(
4759
+ React31.useEffect(
4666
4760
  function() {
4667
4761
  if (droppedSig !== "") setSelected(selected);
4668
4762
  },
@@ -4699,19 +4793,19 @@ window.Aura = (() => {
4699
4793
  }),
4700
4794
  props.onPinnedColumnsChange
4701
4795
  );
4702
- const widthState = React30.useState({});
4796
+ const widthState = React31.useState({});
4703
4797
  const widths = widthState[0], setWidths = widthState[1];
4704
- const activeState = React30.useState({ r: 1, c: 0 });
4705
- const scrollState = React30.useState(0);
4798
+ const activeState = React31.useState({ r: 1, c: 0 });
4799
+ const scrollState = React31.useState(0);
4706
4800
  const scrollTop = scrollState[0], setScrollTop = scrollState[1];
4707
- const scrolledX = React30.useState(false);
4708
- const menuState = React30.useState(null);
4801
+ const scrolledX = React31.useState(false);
4802
+ const menuState = React31.useState(null);
4709
4803
  const menu = menuState[0], setMenu = menuState[1];
4710
- const dragState = React30.useState(null);
4804
+ const dragState = React31.useState(null);
4711
4805
  const drag = dragState[0], setDrag = dragState[1];
4712
- const gridRef = React30.useRef(null);
4713
- const wrapRef = React30.useRef(null), wrapMerged = useMergedRef(ref, wrapRef);
4714
- const boxWidth = React30.useState(null);
4806
+ const gridRef = React31.useRef(null);
4807
+ const wrapRef = React31.useRef(null), wrapMerged = useMergedRef(ref, wrapRef);
4808
+ const boxWidth = React31.useState(null);
4715
4809
  const measure = !!props.stackBelow || columns.some(function(c) {
4716
4810
  return c.hideBelow != null;
4717
4811
  });
@@ -4721,7 +4815,7 @@ window.Aura = (() => {
4721
4815
  return px != null && a.indexOf(px) === i;
4722
4816
  }).length
4723
4817
  );
4724
- React30.useEffect(
4818
+ React31.useEffect(
4725
4819
  function() {
4726
4820
  if (!measure || !wrapRef.current || typeof ResizeObserver === "undefined") return;
4727
4821
  const ro = new ResizeObserver(function(en) {
@@ -4736,6 +4830,7 @@ window.Aura = (() => {
4736
4830
  [measure, levelShape]
4737
4831
  );
4738
4832
  const stacked = !!props.stackBelow && boxWidth[0] != null && below(boxWidth[0], props.stackBelow);
4833
+ const noCardSel = !!props.hideSelectionInCards && selectable;
4739
4834
  useIsoLayoutEffect(
4740
4835
  function() {
4741
4836
  if (measure && wrapRef.current) boxWidth[1](wrapRef.current.getBoundingClientRect().width);
@@ -4766,8 +4861,8 @@ window.Aura = (() => {
4766
4861
  const px = hidePx(c);
4767
4862
  return px != null && below(boxWidth[0], px);
4768
4863
  }
4769
- const scrollRef = React30.useRef(null);
4770
- const tipState = React30.useState(null), tip = tipState[0], setTip = tipState[1];
4864
+ const scrollRef = React31.useRef(null);
4865
+ const tipState = React31.useState(null), tip = tipState[0], setTip = tipState[1];
4771
4866
  function showFull(e) {
4772
4867
  const el = e.target.closest ? e.target.closest(".aura-table__td") : null;
4773
4868
  if (!el || el.scrollWidth <= el.clientWidth + 1 || el.querySelector("button, input, .aura-pill"))
@@ -4779,7 +4874,7 @@ window.Aura = (() => {
4779
4874
  setTip(null);
4780
4875
  }
4781
4876
  const tipEl = tip && typeof document !== "undefined" ? (0, import_react_dom9.createPortal)(
4782
- /* @__PURE__ */ React30.createElement(
4877
+ /* @__PURE__ */ React31.createElement(
4783
4878
  "div",
4784
4879
  {
4785
4880
  className: "aura-tooltip aura-tooltip--above",
@@ -4790,7 +4885,7 @@ window.Aura = (() => {
4790
4885
  ),
4791
4886
  document.body
4792
4887
  ) : null;
4793
- const rowH = React30.useState(ROW_H_DEFAULT);
4888
+ const rowH = React31.useState(ROW_H_DEFAULT);
4794
4889
  const ROW_H = rowH[0];
4795
4890
  useIsoLayoutEffect(function() {
4796
4891
  const el = wrapRef.current;
@@ -4798,8 +4893,8 @@ window.Aura = (() => {
4798
4893
  const v = parseFloat(getComputedStyle(el).getPropertyValue("--aura-table-row-height"));
4799
4894
  if (v > 0 && v !== rowH[0]) rowH[1](v);
4800
4895
  });
4801
- const pending = React30.useRef(null);
4802
- const resizing = React30.useRef(false);
4896
+ const pending = React31.useRef(null);
4897
+ const resizing = React31.useRef(false);
4803
4898
  useIsoLayoutEffect(function() {
4804
4899
  if (!gridRef.current) return;
4805
4900
  const els = gridRef.current.querySelectorAll(
@@ -4836,9 +4931,38 @@ window.Aura = (() => {
4836
4931
  const pillKey = (vis.filter(function(c, i) {
4837
4932
  return i > 0 && c.pill;
4838
4933
  })[0] || { key: "" }).key;
4839
- function cardPart(c, i) {
4840
- return i === 0 ? "title" : c.key === pillKey ? "pill" : c.actions ? "actions" : "field";
4934
+ const ownTitle = vis.some(function(c) {
4935
+ return c.card === "title";
4936
+ }), ownPill = vis.some(function(c) {
4937
+ return c.card === "pill";
4938
+ });
4939
+ let autoTitle = -1;
4940
+ if (!ownTitle) {
4941
+ for (let i = 0; i < vis.length; i++)
4942
+ if (!vis[i].card && (i === 0 || !vis[i].actions)) {
4943
+ autoTitle = i;
4944
+ break;
4945
+ }
4841
4946
  }
4947
+ function cardPart(c, i) {
4948
+ if (c.card) return c.card;
4949
+ if (i === autoTitle) return "title";
4950
+ if (c.key === pillKey && !ownPill) return "pill";
4951
+ return c.actions ? "actions" : "field";
4952
+ }
4953
+ const cardRank = {};
4954
+ if (vis.some(function(c) {
4955
+ return c.cardOrder != null;
4956
+ }))
4957
+ vis.map(function(c, i) {
4958
+ return { c, i, o: c.cardOrder != null ? c.cardOrder : i };
4959
+ }).filter(function(x) {
4960
+ return cardPart(x.c, x.i) === "field";
4961
+ }).sort(function(a, b) {
4962
+ return a.o - b.o || a.i - b.i;
4963
+ }).forEach(function(x, n3) {
4964
+ cardRank[x.c.key] = n3;
4965
+ });
4842
4966
  function cardAttrs(c, i) {
4843
4967
  const part = cardPart(c, i), lv = hideLevel(c);
4844
4968
  return {
@@ -4880,10 +5004,11 @@ window.Aura = (() => {
4880
5004
  s["--aura-cell-w"] = w + "px";
4881
5005
  }
4882
5006
  if (isPinned(c)) s["--aura-cell-left"] = "calc(var(--aura-space-6)" + selW + " + " + pinOffsets[c.key] + ")";
5007
+ if (cardRank[c.key] != null) s["--aura-card-order"] = String(5 + cardRank[c.key]);
4883
5008
  return s;
4884
5009
  }
4885
5010
  const sortCol = sort && sort.key ? byKey[sort.key] : void 0;
4886
- const view = React30.useMemo(
5011
+ const view = React31.useMemo(
4887
5012
  function() {
4888
5013
  if (manual || !sort || !sort.key || !byKey[sort.key]) return rows;
4889
5014
  const col = byKey[sort.key];
@@ -4925,8 +5050,8 @@ window.Aura = (() => {
4925
5050
  const pageRows = pageSize && !manual ? view.slice(first, first + pageSize) : view;
4926
5051
  const canSortAny = !busy && (manual ? total > 1 : rows.length > 1);
4927
5052
  const shownTotal = manual && props.totalRows == null ? first + rows.length : total;
4928
- const prevCount = React30.useRef(pageCount);
4929
- React30.useEffect(
5053
+ const prevCount = React31.useRef(pageCount);
5054
+ React31.useEffect(
4930
5055
  function() {
4931
5056
  if (busy) return;
4932
5057
  const before = prevCount.current;
@@ -4940,9 +5065,9 @@ window.Aura = (() => {
4940
5065
  [pageState[0], page, busy, pageCount]
4941
5066
  );
4942
5067
  const linkPaging = !!props.getPageHref && !props.onPageChange && !oneCallback;
4943
- const prevLink = React30.useRef(null), nextLink = React30.useRef(null), jumpLink = React30.useRef(null);
4944
- const jumpState = React30.useState(null);
4945
- React30.useEffect(
5068
+ const prevLink = React31.useRef(null), nextLink = React31.useRef(null), jumpLink = React31.useRef(null);
5069
+ const jumpState = React31.useState(null);
5070
+ React31.useEffect(
4946
5071
  function() {
4947
5072
  if (jumpState[0] == null) return;
4948
5073
  if (jumpLink.current) jumpLink.current.click();
@@ -4993,7 +5118,7 @@ window.Aura = (() => {
4993
5118
  );
4994
5119
  }
4995
5120
  function rowLinkWrap(r, content) {
4996
- return rowHref ? /* @__PURE__ */ React30.createElement(Link, { href: rowHref(r), className: "aura-table__row-link" }, content) : content;
5121
+ return rowHref ? /* @__PURE__ */ React31.createElement(Link, { href: rowHref(r), className: "aura-table__row-link" }, content) : content;
4997
5122
  }
4998
5123
  const height = props.height || 0;
4999
5124
  const autoRows = props.rowHeight === "auto" && !height;
@@ -5020,11 +5145,39 @@ window.Aura = (() => {
5020
5145
  function colAt(ci) {
5021
5146
  return selectable ? ci === 0 ? null : vis[ci - 1] : vis[ci];
5022
5147
  }
5148
+ const cardHidden = [];
5149
+ for (let ci = 0; ci < nCols; ci++) {
5150
+ const col = colAt(ci);
5151
+ cardHidden.push(stacked && (col ? cardPart(col, vis.indexOf(col)) === "hide" : noCardSel));
5152
+ }
5153
+ function nearestShown(c, dir, ok) {
5154
+ if (ok(c)) return c;
5155
+ for (let d = 1; d < nCols; d++) {
5156
+ const a = c + d * dir, b = c - d * dir;
5157
+ if (a >= 0 && a < nCols && ok(a)) return a;
5158
+ if (b >= 0 && b < nCols && ok(b)) return b;
5159
+ }
5160
+ return c;
5161
+ }
5162
+ const acShown = nearestShown(ac, 1, function(cc) {
5163
+ return !cardHidden[cc];
5164
+ });
5165
+ const lastFocus = React31.useRef(null);
5166
+ React31.useEffect(
5167
+ function() {
5168
+ const was = lastFocus.current, g = gridRef.current;
5169
+ if (!stacked || !was || !g || !g.contains(was) || was.getClientRects().length > 0) return;
5170
+ if (document.activeElement && document.activeElement !== document.body && document.activeElement !== was) return;
5171
+ const el = g.querySelector('[data-rc="' + Math.max(1, ar) + ":" + acShown + '"]');
5172
+ if (el && el.getClientRects().length > 0) el.focus();
5173
+ },
5174
+ [stacked]
5175
+ );
5023
5176
  function tabFor(r, c) {
5024
5177
  if (!activeRendered) return r === 0 && c === ac ? 0 : -1;
5025
- return r === ar && c === ac ? 0 : -1;
5178
+ return r === ar && c === acShown ? 0 : -1;
5026
5179
  }
5027
- React30.useEffect(function() {
5180
+ React31.useEffect(function() {
5028
5181
  const p = pending.current;
5029
5182
  if (!p || !gridRef.current) return;
5030
5183
  let c = p.c;
@@ -5046,26 +5199,17 @@ window.Aura = (() => {
5046
5199
  el.focus();
5047
5200
  }
5048
5201
  });
5049
- function focusCell(r, c) {
5202
+ function focusCell(r, c, dir) {
5050
5203
  r = Math.max(0, Math.min(r, lastR));
5051
5204
  c = Math.max(0, Math.min(c, nCols - 1));
5052
- if (stacked && r === 0 && nRows > 0 && !(selectable && c === 0)) r = 1;
5053
- if (gridRef.current && r === T && hasTotal) {
5205
+ if (stacked && r === 0 && nRows > 0 && (!(selectable && c === 0) || noCardSel)) r = 1;
5206
+ if (gridRef.current && (r === T && hasTotal || stacked)) {
5054
5207
  const shown2 = function(cc) {
5208
+ if (cardHidden[cc]) return false;
5055
5209
  const e = gridRef.current.querySelector('[data-rc="' + r + ":" + cc + '"]');
5056
5210
  return !!e && e.getClientRects().length > 0;
5057
5211
  };
5058
- if (!shown2(c))
5059
- for (let d = 1; d < nCols; d++) {
5060
- if (c + d < nCols && shown2(c + d)) {
5061
- c = c + d;
5062
- break;
5063
- }
5064
- if (c - d >= 0 && shown2(c - d)) {
5065
- c = c - d;
5066
- break;
5067
- }
5068
- }
5212
+ c = nearestShown(c, dir || 1, shown2);
5069
5213
  }
5070
5214
  activeState[1]({ r, c });
5071
5215
  pending.current = { r, c };
@@ -5224,14 +5368,14 @@ window.Aura = (() => {
5224
5368
  items2.push(
5225
5369
  {
5226
5370
  label: t.sortAsc,
5227
- icon: /* @__PURE__ */ React30.createElement(IconArrowUp, null),
5371
+ icon: /* @__PURE__ */ React31.createElement(IconArrowUp, null),
5228
5372
  onSelect: function() {
5229
5373
  applySort({ key: c.key, dir: "asc" });
5230
5374
  }
5231
5375
  },
5232
5376
  {
5233
5377
  label: t.sortDesc,
5234
- icon: /* @__PURE__ */ React30.createElement(IconArrowDown, null),
5378
+ icon: /* @__PURE__ */ React31.createElement(IconArrowDown, null),
5235
5379
  onSelect: function() {
5236
5380
  applySort({ key: c.key, dir: "desc" });
5237
5381
  }
@@ -5241,7 +5385,7 @@ window.Aura = (() => {
5241
5385
  if (c.width != null)
5242
5386
  items2.push({
5243
5387
  label: isPinned(c) ? t.unpin : t.pin,
5244
- icon: isPinned(c) ? /* @__PURE__ */ React30.createElement(IconPinOff, null) : /* @__PURE__ */ React30.createElement(IconPin, null),
5388
+ icon: isPinned(c) ? /* @__PURE__ */ React31.createElement(IconPinOff, null) : /* @__PURE__ */ React31.createElement(IconPin, null),
5245
5389
  onSelect: function() {
5246
5390
  togglePin(c.key);
5247
5391
  }
@@ -5250,7 +5394,7 @@ window.Aura = (() => {
5250
5394
  items2.push(
5251
5395
  {
5252
5396
  label: t.moveLeft,
5253
- icon: /* @__PURE__ */ React30.createElement(IconArrowLeft, null),
5397
+ icon: /* @__PURE__ */ React31.createElement(IconArrowLeft, null),
5254
5398
  disabled: gi <= 0,
5255
5399
  onSelect: function() {
5256
5400
  moveCol(c.key, -1);
@@ -5258,7 +5402,7 @@ window.Aura = (() => {
5258
5402
  },
5259
5403
  {
5260
5404
  label: t.moveRight,
5261
- icon: /* @__PURE__ */ React30.createElement(IconArrowRight, null),
5405
+ icon: /* @__PURE__ */ React31.createElement(IconArrowRight, null),
5262
5406
  disabled: gi >= group.length - 1,
5263
5407
  onSelect: function() {
5264
5408
  moveCol(c.key, 1);
@@ -5269,7 +5413,7 @@ window.Aura = (() => {
5269
5413
  { separator: true },
5270
5414
  {
5271
5415
  label: t.hideColumn,
5272
- icon: /* @__PURE__ */ React30.createElement(IconEyeOff, null),
5416
+ icon: /* @__PURE__ */ React31.createElement(IconEyeOff, null),
5273
5417
  disabled: shown.length <= 1,
5274
5418
  onSelect: function() {
5275
5419
  setHidden(c.key, true);
@@ -5290,7 +5434,7 @@ window.Aura = (() => {
5290
5434
  setHidden(k, on);
5291
5435
  }
5292
5436
  };
5293
- }).concat([{ separator: true }, { label: t.resetColumns, icon: /* @__PURE__ */ React30.createElement(IconRotateCcw, null), onSelect: resetColumns }]);
5437
+ }).concat([{ separator: true }, { label: t.resetColumns, icon: /* @__PURE__ */ React31.createElement(IconRotateCcw, null), onSelect: resetColumns }]);
5294
5438
  }
5295
5439
  function openMenu(kind, key, anchor, rc) {
5296
5440
  setMenu({ kind, key, anchor, rc });
@@ -5325,7 +5469,7 @@ window.Aura = (() => {
5325
5469
  } else if (r === 0 && col && (e.altKey && k === "ArrowDown" || k === "ContextMenu" || e.shiftKey && k === "F10") && controls)
5326
5470
  openMenu("col", col.key, target, { r: 0, c });
5327
5471
  else if (k === "ArrowRight") focusCell(r, c + 1);
5328
- else if (k === "ArrowLeft") focusCell(r, c - 1);
5472
+ else if (k === "ArrowLeft") focusCell(r, c - 1, -1);
5329
5473
  else if (k === "ArrowDown") {
5330
5474
  if (r < lastR) focusCell(r + 1, c);
5331
5475
  else if (pageSize && page < pageCount && goPage(page + 1, { r: 1, c })) activeState[1]({ r: 1, c });
@@ -5333,7 +5477,7 @@ window.Aura = (() => {
5333
5477
  if (r > 1 || r === 1 && !(pageSize && page > 1)) focusCell(r - 1, c);
5334
5478
  else if (r === 1 && goPage(page - 1, { r: pageSize, c })) activeState[1]({ r: pageSize, c });
5335
5479
  } else if (k === "Home") focusCell(e.ctrlKey ? 1 : r, 0);
5336
- else if (k === "End") focusCell(e.ctrlKey ? lastR : r, nCols - 1);
5480
+ else if (k === "End") focusCell(e.ctrlKey ? lastR : r, nCols - 1, -1);
5337
5481
  else if (k === "PageDown") {
5338
5482
  if (pageSize) {
5339
5483
  if (goPage(page + 1, { r: 1, c })) activeState[1]({ r: 1, c });
@@ -5353,7 +5497,7 @@ window.Aura = (() => {
5353
5497
  if (pageKeys.length) toggleAll();
5354
5498
  } else if (r === 0 && col && col.sortable && canSortAny) sortBy(col.key);
5355
5499
  else if (r > 0 && k === " " && selectable) {
5356
- if (canSelect(row)) toggle(row[rowKey], !selSet[row[rowKey]]);
5500
+ if (canSelect(row) && !(stacked && noCardSel)) toggle(row[rowKey], !selSet[row[rowKey]]);
5357
5501
  } else if (r > 0 && k === "Enter" && rowHref && !target.querySelector("button, a[href]:not(.aura-table__row-link), input, select, textarea"))
5358
5502
  followRow(target.closest('[role="row"]'), e);
5359
5503
  else if (r > 0 && k === "Enter" && target.querySelector("button, a[href], input, select, textarea"))
@@ -5366,10 +5510,10 @@ window.Aura = (() => {
5366
5510
  e.stopPropagation();
5367
5511
  }
5368
5512
  }
5369
- const head = [/* @__PURE__ */ React30.createElement("span", { key: "__gl", className: "aura-table__gutter", "aria-hidden": true })];
5513
+ const head = [/* @__PURE__ */ React31.createElement("span", { key: "__gl", className: "aura-table__gutter", "aria-hidden": true })];
5370
5514
  if (selectable)
5371
5515
  head.push(
5372
- /* @__PURE__ */ React30.createElement(
5516
+ /* @__PURE__ */ React31.createElement(
5373
5517
  "span",
5374
5518
  {
5375
5519
  key: "__sel",
@@ -5383,7 +5527,7 @@ window.Aura = (() => {
5383
5527
  activeState[1]({ r: 0, c: 0 });
5384
5528
  }
5385
5529
  },
5386
- pageKeys.length ? /* @__PURE__ */ React30.createElement(
5530
+ pageKeys.length ? /* @__PURE__ */ React31.createElement(
5387
5531
  Checkbox,
5388
5532
  {
5389
5533
  hideLabel: true,
@@ -5394,7 +5538,7 @@ window.Aura = (() => {
5394
5538
  onChange: toggleAll
5395
5539
  }
5396
5540
  ) : null,
5397
- pageKeys.length ? /* @__PURE__ */ React30.createElement("span", { className: "aura-table__sel-text" }, nSel ? t.selectedCount(nSel) : t.selectAll) : /* @__PURE__ */ React30.createElement("span", { className: "aura-sr-only" }, t.selectRows)
5541
+ pageKeys.length ? /* @__PURE__ */ React31.createElement("span", { className: "aura-table__sel-text" }, nSel ? t.selectedCount(nSel) : t.selectAll) : /* @__PURE__ */ React31.createElement("span", { className: "aura-sr-only" }, t.selectRows)
5398
5542
  )
5399
5543
  );
5400
5544
  vis.forEach(function(c, i) {
@@ -5404,7 +5548,7 @@ window.Aura = (() => {
5404
5548
  const ariaSort = isSorted && canSort ? sort.dir === "desc" ? "descending" : "ascending" : canSort ? "none" : void 0;
5405
5549
  const pin = isPinned(c), edge = pin && i === nPinned - 1;
5406
5550
  head.push(
5407
- /* @__PURE__ */ React30.createElement(
5551
+ /* @__PURE__ */ React31.createElement(
5408
5552
  "span",
5409
5553
  {
5410
5554
  key: c.key,
@@ -5413,6 +5557,7 @@ window.Aura = (() => {
5413
5557
  "aria-colindex": ci + 1,
5414
5558
  style: cellStyle(c, i),
5415
5559
  "data-hide": hideLevel(c) ? String(hideLevel(c)) : void 0,
5560
+ "data-card": cardPart(c, i) === "hide" ? "hide" : void 0,
5416
5561
  tabIndex: tabFor(0, ci),
5417
5562
  "data-rc": "0:" + ci,
5418
5563
  className: cx(
@@ -5454,7 +5599,7 @@ window.Aura = (() => {
5454
5599
  setDrag(null);
5455
5600
  }
5456
5601
  },
5457
- /* @__PURE__ */ React30.createElement("span", { className: "aura-table__th-inner" }, canSort ? /* @__PURE__ */ React30.createElement(
5602
+ /* @__PURE__ */ React31.createElement("span", { className: "aura-table__th-inner" }, canSort ? /* @__PURE__ */ React31.createElement(
5458
5603
  "button",
5459
5604
  {
5460
5605
  type: "button",
@@ -5466,14 +5611,14 @@ window.Aura = (() => {
5466
5611
  }
5467
5612
  },
5468
5613
  c.label,
5469
- /* @__PURE__ */ React30.createElement(
5614
+ /* @__PURE__ */ React31.createElement(
5470
5615
  Icon,
5471
5616
  {
5472
- name: isSorted ? sort.dir === "desc" ? /* @__PURE__ */ React30.createElement(IconArrowDown, null) : /* @__PURE__ */ React30.createElement(IconArrowUp, null) : /* @__PURE__ */ React30.createElement(IconArrowUpDown, null),
5617
+ name: isSorted ? sort.dir === "desc" ? /* @__PURE__ */ React31.createElement(IconArrowDown, null) : /* @__PURE__ */ React31.createElement(IconArrowUp, null) : /* @__PURE__ */ React31.createElement(IconArrowUpDown, null),
5473
5618
  size: 12
5474
5619
  }
5475
5620
  )
5476
- ) : /* @__PURE__ */ React30.createElement("span", { className: cx("aura-table__th-label", !c.label && "aura-sr-only") }, c.label || (c.actions ? t.actions : c.key)), pin ? /* @__PURE__ */ React30.createElement(Icon, { name: /* @__PURE__ */ React30.createElement(IconPin, null), size: 12, className: "aura-table__pin-icon", label: t.pinned }) : null, controls ? /* @__PURE__ */ React30.createElement(
5621
+ ) : /* @__PURE__ */ React31.createElement("span", { className: cx("aura-table__th-label", !c.label && "aura-sr-only") }, c.label || (c.actions ? t.actions : c.key)), pin ? /* @__PURE__ */ React31.createElement(Icon, { name: /* @__PURE__ */ React31.createElement(IconPin, null), size: 12, className: "aura-table__pin-icon", label: t.pinned }) : null, controls ? /* @__PURE__ */ React31.createElement(
5477
5622
  "button",
5478
5623
  {
5479
5624
  type: "button",
@@ -5487,9 +5632,9 @@ window.Aura = (() => {
5487
5632
  openMenu("col", c.key, e.currentTarget, { r: 0, c: ci });
5488
5633
  }
5489
5634
  },
5490
- /* @__PURE__ */ React30.createElement(Icon, { name: /* @__PURE__ */ React30.createElement(IconEllipsis, null) })
5635
+ /* @__PURE__ */ React31.createElement(Icon, { name: /* @__PURE__ */ React31.createElement(IconEllipsis, null) })
5491
5636
  ) : null),
5492
- canResize(c) ? /* @__PURE__ */ React30.createElement(
5637
+ canResize(c) ? /* @__PURE__ */ React31.createElement(
5493
5638
  "span",
5494
5639
  {
5495
5640
  className: "aura-table__resize",
@@ -5511,7 +5656,7 @@ window.Aura = (() => {
5511
5656
  );
5512
5657
  });
5513
5658
  head.push(
5514
- /* @__PURE__ */ React30.createElement(
5659
+ /* @__PURE__ */ React31.createElement(
5515
5660
  "span",
5516
5661
  {
5517
5662
  key: "__gr",
@@ -5522,15 +5667,15 @@ window.Aura = (() => {
5522
5667
  );
5523
5668
  function cellContent(c, r) {
5524
5669
  const v = r[c.key];
5525
- return c.render ? c.render(r) : c.pill ? /* @__PURE__ */ React30.createElement(StatusPill, { ...{ tone: c.tones && c.tones[v] } }, v) : v;
5670
+ return c.render ? c.render(r) : c.pill ? /* @__PURE__ */ React31.createElement(StatusPill, { ...{ tone: c.tones && c.tones[v] } }, v) : v;
5526
5671
  }
5527
5672
  function rowCells(r, i, k, isSel) {
5528
5673
  const ri = i + 1;
5529
5674
  const selLabel = selectable && canSelect(r) ? props.rowSelectLabel && props.rowSelectLabel(r) || t.selectRow(k) : void 0;
5530
- const cells = [/* @__PURE__ */ React30.createElement("span", { key: "__gl", className: "aura-table__gutter", "aria-hidden": true })];
5675
+ const cells = [/* @__PURE__ */ React31.createElement("span", { key: "__gl", className: "aura-table__gutter", "aria-hidden": true })];
5531
5676
  if (selectable)
5532
5677
  cells.push(
5533
- /* @__PURE__ */ React30.createElement(
5678
+ /* @__PURE__ */ React31.createElement(
5534
5679
  "span",
5535
5680
  {
5536
5681
  key: "__sel",
@@ -5544,7 +5689,7 @@ window.Aura = (() => {
5544
5689
  if (e.target === e.currentTarget) activeState[1]({ r: ri, c: 0 });
5545
5690
  }
5546
5691
  },
5547
- canSelect(r) ? /* @__PURE__ */ React30.createElement(
5692
+ canSelect(r) ? /* @__PURE__ */ React31.createElement(
5548
5693
  Checkbox,
5549
5694
  {
5550
5695
  hideLabel: true,
@@ -5561,7 +5706,7 @@ window.Aura = (() => {
5561
5706
  vis.forEach(function(c, j) {
5562
5707
  const ci = j + (selectable ? 1 : 0), v = r[c.key], pin = isPinned(c);
5563
5708
  cells.push(
5564
- /* @__PURE__ */ React30.createElement(
5709
+ /* @__PURE__ */ React31.createElement(
5565
5710
  "span",
5566
5711
  {
5567
5712
  key: c.key,
@@ -5583,13 +5728,13 @@ window.Aura = (() => {
5583
5728
  if (activeState[0].r !== ri || activeState[0].c !== ci) activeState[1]({ r: ri, c: ci });
5584
5729
  }
5585
5730
  },
5586
- autoRows ? /* @__PURE__ */ React30.createElement("span", { className: "aura-table__cell" }, j === 0 ? rowLinkWrap(r, cellContent(c, r)) : cellContent(c, r)) : j === 0 ? rowLinkWrap(r, cellContent(c, r)) : cellContent(c, r)
5731
+ autoRows ? /* @__PURE__ */ React31.createElement("span", { className: "aura-table__cell" }, j === 0 ? rowLinkWrap(r, cellContent(c, r)) : cellContent(c, r)) : j === 0 ? rowLinkWrap(r, cellContent(c, r)) : cellContent(c, r)
5587
5732
  )
5588
5733
  );
5589
5734
  });
5590
- if (hasFields) cells.push(/* @__PURE__ */ React30.createElement("span", { key: "__br", className: "aura-table__break", "aria-hidden": true }));
5735
+ if (hasFields) cells.push(/* @__PURE__ */ React31.createElement("span", { key: "__br", className: "aura-table__break", "aria-hidden": true }));
5591
5736
  cells.push(
5592
- /* @__PURE__ */ React30.createElement(
5737
+ /* @__PURE__ */ React31.createElement(
5593
5738
  "span",
5594
5739
  {
5595
5740
  key: "__gr",
@@ -5606,14 +5751,14 @@ window.Aura = (() => {
5606
5751
  const n3 = pageSize || props.skeletonRows || 5;
5607
5752
  const skRows = body = [];
5608
5753
  for (let i = 0; i < n3; i++) {
5609
- const sk = [/* @__PURE__ */ React30.createElement("span", { key: "__gl", className: "aura-table__gutter" })];
5754
+ const sk = [/* @__PURE__ */ React31.createElement("span", { key: "__gl", className: "aura-table__gutter" })];
5610
5755
  if (selectable)
5611
5756
  sk.push(
5612
- /* @__PURE__ */ React30.createElement("span", { key: "__sel", className: cx("aura-table__sel", nPinned && "is-pinned") }, /* @__PURE__ */ React30.createElement("span", { className: "aura-skel aura-skel--box" }))
5757
+ /* @__PURE__ */ React31.createElement("span", { key: "__sel", className: cx("aura-table__sel", nPinned && "is-pinned") }, /* @__PURE__ */ React31.createElement("span", { className: "aura-skel aura-skel--box" }))
5613
5758
  );
5614
5759
  vis.forEach(function(c, j) {
5615
5760
  sk.push(
5616
- /* @__PURE__ */ React30.createElement(
5761
+ /* @__PURE__ */ React31.createElement(
5617
5762
  "span",
5618
5763
  {
5619
5764
  key: c.key,
@@ -5622,7 +5767,7 @@ window.Aura = (() => {
5622
5767
  ...cardAttrs(c, j),
5623
5768
  "data-label": void 0
5624
5769
  },
5625
- /* @__PURE__ */ React30.createElement(
5770
+ /* @__PURE__ */ React31.createElement(
5626
5771
  "span",
5627
5772
  {
5628
5773
  className: cx("aura-skel", c.pill && "aura-skel--pill"),
@@ -5632,28 +5777,28 @@ window.Aura = (() => {
5632
5777
  )
5633
5778
  );
5634
5779
  });
5635
- if (hasFields) sk.push(/* @__PURE__ */ React30.createElement("span", { key: "__br", className: "aura-table__break" }));
5780
+ if (hasFields) sk.push(/* @__PURE__ */ React31.createElement("span", { key: "__br", className: "aura-table__break" }));
5636
5781
  sk.push(
5637
- /* @__PURE__ */ React30.createElement("span", { key: "__gr", className: cx("aura-table__gutter aura-table__gutter--end", controls && "has-picker") })
5782
+ /* @__PURE__ */ React31.createElement("span", { key: "__gr", className: cx("aura-table__gutter aura-table__gutter--end", controls && "has-picker") })
5638
5783
  );
5639
5784
  skRows.push(
5640
- /* @__PURE__ */ React30.createElement("div", { key: "sk" + i, className: "aura-table__row aura-table__row--skeleton", "aria-hidden": true, style: rowStyle }, sk)
5785
+ /* @__PURE__ */ React31.createElement("div", { key: "sk" + i, className: "aura-table__row aura-table__row--skeleton", "aria-hidden": true, style: rowStyle }, sk)
5641
5786
  );
5642
5787
  }
5643
5788
  } else if (!rows.length) {
5644
5789
  const em = props.empty || {};
5645
- body = /* @__PURE__ */ React30.createElement("div", { className: "aura-table__empty", role: "row" }, /* @__PURE__ */ React30.createElement("div", { role: "gridcell" }, /* @__PURE__ */ React30.createElement("span", { className: "aura-table__empty-icon" }, /* @__PURE__ */ React30.createElement(Icon, { name: em.icon || /* @__PURE__ */ React30.createElement(IconInbox, null), size: "lg" })), /* @__PURE__ */ React30.createElement("p", { className: "aura-table__empty-title" }, em.title || t.empty), em.description ? /* @__PURE__ */ React30.createElement("p", { className: "aura-table__empty-text" }, em.description) : null, em.action ? /* @__PURE__ */ React30.createElement("div", { className: "aura-table__empty-action" }, em.action) : null));
5790
+ body = /* @__PURE__ */ React31.createElement("div", { className: "aura-table__empty", role: "row" }, /* @__PURE__ */ React31.createElement("div", { role: "gridcell" }, /* @__PURE__ */ React31.createElement("span", { className: "aura-table__empty-icon" }, /* @__PURE__ */ React31.createElement(Icon, { name: em.icon || /* @__PURE__ */ React31.createElement(IconInbox, null), size: "lg" })), /* @__PURE__ */ React31.createElement("p", { className: "aura-table__empty-title" }, em.title || t.empty), em.description ? /* @__PURE__ */ React31.createElement("p", { className: "aura-table__empty-text" }, em.description) : null, em.action ? /* @__PURE__ */ React31.createElement("div", { className: "aura-table__empty-action" }, em.action) : null));
5646
5791
  } else {
5647
5792
  const bodyRows = body = [];
5648
5793
  if (virtual && start > 0)
5649
5794
  bodyRows.push(
5650
- /* @__PURE__ */ React30.createElement("div", { key: "__top", className: "aura-table__spacer", style: { height: start * ROW_H + "px" }, "aria-hidden": true })
5795
+ /* @__PURE__ */ React31.createElement("div", { key: "__top", className: "aura-table__spacer", style: { height: start * ROW_H + "px" }, "aria-hidden": true })
5651
5796
  );
5652
5797
  for (let ri = start; ri < end; ri++) {
5653
5798
  (function(r, i) {
5654
5799
  const k = r[rowKey], isSel = !!selSet[k];
5655
5800
  bodyRows.push(
5656
- /* @__PURE__ */ React30.createElement(
5801
+ /* @__PURE__ */ React31.createElement(
5657
5802
  "div",
5658
5803
  {
5659
5804
  key: k,
@@ -5681,7 +5826,7 @@ window.Aura = (() => {
5681
5826
  }
5682
5827
  if (virtual && end < pageRows.length)
5683
5828
  bodyRows.push(
5684
- /* @__PURE__ */ React30.createElement(
5829
+ /* @__PURE__ */ React31.createElement(
5685
5830
  "div",
5686
5831
  {
5687
5832
  key: "__bot",
@@ -5694,9 +5839,9 @@ window.Aura = (() => {
5694
5839
  }
5695
5840
  let foot = null;
5696
5841
  function pagerButton(dir) {
5697
- const p = page + dir, off = busy || (dir < 0 ? page <= 1 : page >= pageCount), label = dir < 0 ? t.prevPage : t.nextPage, icon = dir < 0 ? /* @__PURE__ */ React30.createElement(IconChevronLeft, null) : /* @__PURE__ */ React30.createElement(IconChevronRight, null);
5842
+ const p = page + dir, off = busy || (dir < 0 ? page <= 1 : page >= pageCount), label = dir < 0 ? t.prevPage : t.nextPage, icon = dir < 0 ? /* @__PURE__ */ React31.createElement(IconChevronLeft, null) : /* @__PURE__ */ React31.createElement(IconChevronRight, null);
5698
5843
  if (props.getPageHref && !off)
5699
- return /* @__PURE__ */ React30.createElement(
5844
+ return /* @__PURE__ */ React31.createElement(
5700
5845
  Link,
5701
5846
  {
5702
5847
  ref: dir < 0 ? prevLink : nextLink,
@@ -5711,9 +5856,9 @@ window.Aura = (() => {
5711
5856
  }
5712
5857
  }
5713
5858
  },
5714
- /* @__PURE__ */ React30.createElement(Icon, { name: icon })
5859
+ /* @__PURE__ */ React31.createElement(Icon, { name: icon })
5715
5860
  );
5716
- return /* @__PURE__ */ React30.createElement(
5861
+ return /* @__PURE__ */ React31.createElement(
5717
5862
  IconButton,
5718
5863
  {
5719
5864
  icon,
@@ -5728,11 +5873,11 @@ window.Aura = (() => {
5728
5873
  const openTotal = manual && props.totalRows == null && !!pageSize && rows.length >= pageSize;
5729
5874
  if (pageSize && (rows.length || busy || page > 1)) {
5730
5875
  const from = rows.length ? first + 1 : 0, to = manual ? first + rows.length : Math.min(first + pageSize, view.length);
5731
- foot = /* @__PURE__ */ React30.createElement("div", { className: "aura-table__foot" }, /* @__PURE__ */ React30.createElement("span", { "aria-live": "polite" }, busy ? t.loading : openTotal ? t.rangeOpen(from, to) : t.range(from, to, shownTotal)), /* @__PURE__ */ React30.createElement("span", { className: "aura-table__pager" }, /* @__PURE__ */ React30.createElement("span", null, openTotal ? t.pageOpen(page) : t.page(page, pageCount)), pagerButton(-1), pagerButton(1)));
5876
+ foot = /* @__PURE__ */ React31.createElement("div", { className: "aura-table__foot" }, /* @__PURE__ */ React31.createElement("span", { "aria-live": "polite" }, busy ? t.loading : openTotal ? t.rangeOpen(from, to) : t.range(from, to, shownTotal)), /* @__PURE__ */ React31.createElement("span", { className: "aura-table__pager" }, /* @__PURE__ */ React31.createElement("span", null, openTotal ? t.pageOpen(page) : t.page(page, pageCount)), pagerButton(-1), pagerButton(1)));
5732
5877
  } else if (height && rows.length && !loading) {
5733
- foot = /* @__PURE__ */ React30.createElement("div", { className: "aura-table__foot" }, /* @__PURE__ */ React30.createElement("span", null, t.rowCount(shownTotal)), selectable && selected.length ? /* @__PURE__ */ React30.createElement("span", null, t.selectedCount(selected.length)) : /* @__PURE__ */ React30.createElement("span", null));
5878
+ foot = /* @__PURE__ */ React31.createElement("div", { className: "aura-table__foot" }, /* @__PURE__ */ React31.createElement("span", null, t.rowCount(shownTotal)), selectable && selected.length ? /* @__PURE__ */ React31.createElement("span", null, t.selectedCount(selected.length)) : /* @__PURE__ */ React31.createElement("span", null));
5734
5879
  }
5735
- const totalRow = props.footer && rows.length && !loading ? /* @__PURE__ */ React30.createElement(
5880
+ const totalRow = props.footer && rows.length && !loading ? /* @__PURE__ */ React31.createElement(
5736
5881
  "div",
5737
5882
  {
5738
5883
  role: "row",
@@ -5741,8 +5886,8 @@ window.Aura = (() => {
5741
5886
  className: cx("aura-table__row aura-table__total", props.stickyFooter && "is-sticky"),
5742
5887
  style: rowStyle
5743
5888
  },
5744
- /* @__PURE__ */ React30.createElement("span", { className: "aura-table__gutter", "aria-hidden": true }),
5745
- selectable ? /* @__PURE__ */ React30.createElement(
5889
+ /* @__PURE__ */ React31.createElement("span", { className: "aura-table__gutter", "aria-hidden": true }),
5890
+ selectable ? /* @__PURE__ */ React31.createElement(
5746
5891
  "span",
5747
5892
  {
5748
5893
  role: "gridcell",
@@ -5757,7 +5902,7 @@ window.Aura = (() => {
5757
5902
  ) : null,
5758
5903
  vis.map(function(c, j) {
5759
5904
  const pin = isPinned(c), ci = j + (selectable ? 1 : 0);
5760
- return /* @__PURE__ */ React30.createElement(
5905
+ return /* @__PURE__ */ React31.createElement(
5761
5906
  "span",
5762
5907
  {
5763
5908
  key: c.key,
@@ -5778,13 +5923,13 @@ window.Aura = (() => {
5778
5923
  ),
5779
5924
  style: cellStyle(c, j),
5780
5925
  ...cardAttrs(c, j),
5781
- "data-label": j === 0 ? void 0 : c.label || t.totals
5926
+ "data-label": cardPart(c, j) === "title" ? void 0 : c.label || t.totals
5782
5927
  },
5783
5928
  props.footer[c.key]
5784
5929
  );
5785
5930
  }),
5786
- hasFields ? /* @__PURE__ */ React30.createElement("span", { className: "aura-table__break", "aria-hidden": true }) : null,
5787
- /* @__PURE__ */ React30.createElement(
5931
+ hasFields ? /* @__PURE__ */ React31.createElement("span", { className: "aura-table__break", "aria-hidden": true }) : null,
5932
+ /* @__PURE__ */ React31.createElement(
5788
5933
  "span",
5789
5934
  {
5790
5935
  className: cx("aura-table__gutter aura-table__gutter--end", controls && "has-picker"),
@@ -5798,7 +5943,7 @@ window.Aura = (() => {
5798
5943
  scrollPaddingBottom: stickyTotal ? ROW_H + "px" : void 0
5799
5944
  };
5800
5945
  if (height) scrollStyle["--aura-table-h"] = height + "px";
5801
- const gridEl = /* @__PURE__ */ React30.createElement(
5946
+ const gridEl = /* @__PURE__ */ React31.createElement(
5802
5947
  "div",
5803
5948
  {
5804
5949
  ref: levels.length ? wrapRef : wrapMerged,
@@ -5806,14 +5951,15 @@ window.Aura = (() => {
5806
5951
  className: cx(
5807
5952
  "aura-table",
5808
5953
  stacked && "aura-table--stacked",
5954
+ noCardSel && "aura-table--cards-nosel",
5809
5955
  scrolledX[0] && "is-scrolled-x",
5810
5956
  refreshing && "is-refreshing",
5811
5957
  !levels.length && props.className
5812
5958
  ),
5813
5959
  style: levels.length ? { ["--aura-q-back"]: String(levels[levels.length - 1].px / Q) } : void 0
5814
5960
  },
5815
- refreshing ? /* @__PURE__ */ React30.createElement("span", { className: "aura-table__busy-bar", "aria-hidden": true }) : null,
5816
- /* @__PURE__ */ React30.createElement(
5961
+ refreshing ? /* @__PURE__ */ React31.createElement("span", { className: "aura-table__busy-bar", "aria-hidden": true }) : null,
5962
+ /* @__PURE__ */ React31.createElement(
5817
5963
  "div",
5818
5964
  {
5819
5965
  ref: function(el) {
@@ -5823,8 +5969,16 @@ window.Aura = (() => {
5823
5969
  className: "aura-table__scroll",
5824
5970
  onMouseOver: showFull,
5825
5971
  onMouseLeave: hideFull,
5826
- onFocus: showFull,
5827
- onBlur: hideFull,
5972
+ onFocus: function(e) {
5973
+ lastFocus.current = e.target;
5974
+ showFull(e);
5975
+ },
5976
+ onBlur: function(e) {
5977
+ const to = e.relatedTarget;
5978
+ if ((!to || !e.currentTarget.contains(to)) && e.target.getClientRects().length > 0)
5979
+ lastFocus.current = null;
5980
+ hideFull();
5981
+ },
5828
5982
  style: scrollStyle,
5829
5983
  role: "grid",
5830
5984
  "aria-label": props.label,
@@ -5842,7 +5996,7 @@ window.Aura = (() => {
5842
5996
  if (sx !== scrolledX[0]) scrolledX[1](sx);
5843
5997
  }
5844
5998
  },
5845
- /* @__PURE__ */ React30.createElement(
5999
+ /* @__PURE__ */ React31.createElement(
5846
6000
  "div",
5847
6001
  {
5848
6002
  className: cx("aura-table__head", selectable && nRows > 0 && !busy && "has-select-all"),
@@ -5855,11 +6009,11 @@ window.Aura = (() => {
5855
6009
  body,
5856
6010
  totalRow
5857
6011
  ),
5858
- busy ? /* @__PURE__ */ React30.createElement("span", { className: "aura-sr-only", role: "status" }, t.loadingRows) : null,
5859
- controls ? /* @__PURE__ */ React30.createElement("div", { className: "aura-table__picker" }, /* @__PURE__ */ React30.createElement(
6012
+ busy ? /* @__PURE__ */ React31.createElement("span", { className: "aura-sr-only", role: "status" }, t.loadingRows) : null,
6013
+ controls ? /* @__PURE__ */ React31.createElement("div", { className: "aura-table__picker" }, /* @__PURE__ */ React31.createElement(
5860
6014
  IconButton,
5861
6015
  {
5862
- icon: /* @__PURE__ */ React30.createElement(IconColumns3, null),
6016
+ icon: /* @__PURE__ */ React31.createElement(IconColumns3, null),
5863
6017
  label: t.showHideColumns,
5864
6018
  "aria-haspopup": "menu",
5865
6019
  onClick: function(e) {
@@ -5868,7 +6022,7 @@ window.Aura = (() => {
5868
6022
  }
5869
6023
  )) : null,
5870
6024
  foot,
5871
- menu ? /* @__PURE__ */ React30.createElement(
6025
+ menu ? /* @__PURE__ */ React31.createElement(
5872
6026
  Menu,
5873
6027
  {
5874
6028
  anchor: menu.anchor,
@@ -5878,13 +6032,13 @@ window.Aura = (() => {
5878
6032
  }
5879
6033
  ) : null,
5880
6034
  tipEl,
5881
- jumpState[0] != null && props.getPageHref ? /* @__PURE__ */ React30.createElement(Link, { ref: jumpLink, href: props.getPageHref(jumpState[0]), hidden: true, tabIndex: -1, "aria-hidden": true }) : null
6035
+ jumpState[0] != null && props.getPageHref ? /* @__PURE__ */ React31.createElement(Link, { ref: jumpLink, href: props.getPageHref(jumpState[0]), hidden: true, tabIndex: -1, "aria-hidden": true }) : null
5882
6036
  );
5883
6037
  if (!levels.length) return gridEl;
5884
6038
  let out = gridEl;
5885
6039
  for (let i = levels.length - 1; i >= 0; i--) {
5886
6040
  const prev = i === 0 ? Q : levels[i - 1].px;
5887
- out = /* @__PURE__ */ React30.createElement(
6041
+ out = /* @__PURE__ */ React31.createElement(
5888
6042
  "div",
5889
6043
  {
5890
6044
  className: cx("aura-table-q", "aura-table-q--" + levels[i].name),
@@ -5893,19 +6047,19 @@ window.Aura = (() => {
5893
6047
  out
5894
6048
  );
5895
6049
  }
5896
- return /* @__PURE__ */ React30.createElement("div", { ref, className: cx("aura-table-box", props.className) }, out);
6050
+ return /* @__PURE__ */ React31.createElement("div", { ref, className: cx("aura-table-box", props.className) }, out);
5897
6051
  });
5898
6052
  var DataTable2 = DataTableImpl;
5899
6053
 
5900
6054
  // src/Card.tsx
5901
- var React31 = __toESM(require_react(), 1);
5902
- var Card = React31.forwardRef(function Card2(props, ref) {
6055
+ var React32 = __toESM(require_react(), 1);
6056
+ var Card = React32.forwardRef(function Card2(props, ref) {
5903
6057
  return cardElement(props, ref);
5904
6058
  });
5905
6059
 
5906
6060
  // src/Tabs.tsx
5907
- var React32 = __toESM(require_react(), 1);
5908
- var Tabs = React32.forwardRef(function Tabs2(props, ref) {
6061
+ var React33 = __toESM(require_react(), 1);
6062
+ var Tabs = React33.forwardRef(function Tabs2(props, ref) {
5909
6063
  const items2 = props.tabs || [], base = uid();
5910
6064
  const asLinks = items2.length > 0 && items2.every(function(t) {
5911
6065
  return !!t.href;
@@ -5919,7 +6073,7 @@ window.Aura = (() => {
5919
6073
  props.onChange
5920
6074
  );
5921
6075
  const cur = asLinks && "value" in props ? props.value : st[0];
5922
- const refs = React32.useRef({});
6076
+ const refs = React33.useRef({});
5923
6077
  const current2 = items2.filter(function(t) {
5924
6078
  return t.id === cur;
5925
6079
  })[0] || firstOn || items2[0];
@@ -5931,7 +6085,7 @@ window.Aura = (() => {
5931
6085
  return cx("aura-tab", on && "is-active", seg && "aura-segmented__option", seg && on && "is-selected", extra);
5932
6086
  };
5933
6087
  const rootCls = cx("aura-tabs", seg && "aura-tabs--segmented");
5934
- const [focusId, setFocusId] = React32.useState(null);
6088
+ const [focusId, setFocusId] = React33.useState(null);
5935
6089
  items2.forEach(function(t) {
5936
6090
  const al = t.tabProps && t.tabProps["aria-label"];
5937
6091
  if (al && al.toLowerCase().indexOf(String(t.label).toLowerCase()) !== 0)
@@ -5941,19 +6095,19 @@ window.Aura = (() => {
5941
6095
  );
5942
6096
  });
5943
6097
  if (asLinks)
5944
- return /* @__PURE__ */ React32.createElement(
6098
+ return /* @__PURE__ */ React33.createElement(
5945
6099
  "nav",
5946
6100
  {
5947
6101
  ref,
5948
6102
  "aria-label": props.label,
5949
6103
  className: cx(rootCls, "aura-tabs--links", props.className)
5950
6104
  },
5951
- /* @__PURE__ */ React32.createElement("div", { className: listCls }, items2.map(function(t) {
6105
+ /* @__PURE__ */ React33.createElement("div", { className: listCls }, items2.map(function(t) {
5952
6106
  const on = t.id === cur;
5953
6107
  const inner = [
5954
- t.icon ? /* @__PURE__ */ React32.createElement(Icon, { key: "i", name: t.icon }) : null,
6108
+ t.icon ? /* @__PURE__ */ React33.createElement(Icon, { key: "i", name: t.icon }) : null,
5955
6109
  t.label,
5956
- t.count != null ? /* @__PURE__ */ React32.createElement("span", { key: "c", className: "aura-tab__count" }, t.count) : null
6110
+ t.count != null ? /* @__PURE__ */ React33.createElement("span", { key: "c", className: "aura-tab__count" }, t.count) : null
5957
6111
  ];
5958
6112
  const own = omit(t.tabProps || {}, [
5959
6113
  "type",
@@ -5967,7 +6121,7 @@ window.Aura = (() => {
5967
6121
  "name",
5968
6122
  "value"
5969
6123
  ]);
5970
- return t.disabled ? /* @__PURE__ */ React32.createElement(
6124
+ return t.disabled ? /* @__PURE__ */ React33.createElement(
5971
6125
  "span",
5972
6126
  {
5973
6127
  ...omit(own, ["onClick"]),
@@ -5976,7 +6130,7 @@ window.Aura = (() => {
5976
6130
  "aria-disabled": true
5977
6131
  },
5978
6132
  inner
5979
- ) : /* @__PURE__ */ React32.createElement(
6133
+ ) : /* @__PURE__ */ React33.createElement(
5980
6134
  Link,
5981
6135
  {
5982
6136
  ...own,
@@ -6006,7 +6160,7 @@ window.Aura = (() => {
6006
6160
  const stop = manual && focusId && items2.filter(function(t) {
6007
6161
  return t.id === focusId && !t.disabled;
6008
6162
  })[0] || current2;
6009
- return /* @__PURE__ */ React32.createElement("div", { ref, className: cx(rootCls, props.className) }, /* @__PURE__ */ React32.createElement(
6163
+ return /* @__PURE__ */ React33.createElement("div", { ref, className: cx(rootCls, props.className) }, /* @__PURE__ */ React33.createElement(
6010
6164
  "div",
6011
6165
  {
6012
6166
  role: "tablist",
@@ -6039,7 +6193,7 @@ window.Aura = (() => {
6039
6193
  items2.map(function(t) {
6040
6194
  const on = current2 && t.id === current2.id;
6041
6195
  const own = t.tabProps || {};
6042
- return /* @__PURE__ */ React32.createElement(
6196
+ return /* @__PURE__ */ React33.createElement(
6043
6197
  "button",
6044
6198
  {
6045
6199
  ...own,
@@ -6066,9 +6220,9 @@ window.Aura = (() => {
6066
6220
  st[1](t.id);
6067
6221
  }
6068
6222
  },
6069
- t.icon ? /* @__PURE__ */ React32.createElement(Icon, { name: t.icon }) : null,
6223
+ t.icon ? /* @__PURE__ */ React33.createElement(Icon, { name: t.icon }) : null,
6070
6224
  t.label,
6071
- t.count != null ? /* @__PURE__ */ React32.createElement("span", { className: "aura-tab__count" }, t.count) : null
6225
+ t.count != null ? /* @__PURE__ */ React33.createElement("span", { className: "aura-tab__count" }, t.count) : null
6072
6226
  );
6073
6227
  })
6074
6228
  ), props.keepMounted ? (
@@ -6076,7 +6230,7 @@ window.Aura = (() => {
6076
6230
  items2.map(function(t) {
6077
6231
  if (t.content === void 0) return null;
6078
6232
  const on = current2 && t.id === current2.id;
6079
- return /* @__PURE__ */ React32.createElement(
6233
+ return /* @__PURE__ */ React33.createElement(
6080
6234
  "div",
6081
6235
  {
6082
6236
  key: t.id,
@@ -6090,7 +6244,7 @@ window.Aura = (() => {
6090
6244
  t.content
6091
6245
  );
6092
6246
  })
6093
- ) : current2 && current2.content !== void 0 ? /* @__PURE__ */ React32.createElement(
6247
+ ) : current2 && current2.content !== void 0 ? /* @__PURE__ */ React33.createElement(
6094
6248
  "div",
6095
6249
  {
6096
6250
  role: "tabpanel",
@@ -6104,14 +6258,14 @@ window.Aura = (() => {
6104
6258
  });
6105
6259
 
6106
6260
  // src/SideNav.tsx
6107
- var React33 = __toESM(require_react(), 1);
6261
+ var React34 = __toESM(require_react(), 1);
6108
6262
  var import_react_dom10 = __toESM(require_react_dom(), 1);
6109
6263
  function contains(it, id) {
6110
6264
  return !!id && !!it.children && it.children.some(function(c) {
6111
6265
  return c.id === id || contains(c, id);
6112
6266
  });
6113
6267
  }
6114
- var SideNav = React33.forwardRef(function SideNav2(props, ref) {
6268
+ var SideNav = React34.forwardRef(function SideNav2(props, ref) {
6115
6269
  const t = useStrings();
6116
6270
  const Link = useLinkComponent(props.linkComponent);
6117
6271
  const base = uid();
@@ -6123,14 +6277,14 @@ window.Aura = (() => {
6123
6277
  const active = st[0];
6124
6278
  const col = useMaybeControlled(props.collapsed, !!props.defaultCollapsed, props.onCollapsedChange);
6125
6279
  const collapsed = col[0];
6126
- const tipState = React33.useState(null), tip = tipState[0], setTip = tipState[1];
6127
- React33.useEffect(
6280
+ const tipState = React34.useState(null), tip = tipState[0], setTip = tipState[1];
6281
+ React34.useEffect(
6128
6282
  function() {
6129
6283
  if (!collapsed) setTip(null);
6130
6284
  },
6131
6285
  [collapsed]
6132
6286
  );
6133
- React33.useEffect(
6287
+ React34.useEffect(
6134
6288
  function() {
6135
6289
  if (!tip) return;
6136
6290
  function esc(e) {
@@ -6155,12 +6309,12 @@ window.Aura = (() => {
6155
6309
  return { onMouseEnter: show2, onFocus: show2, onMouseLeave: hide, onBlur: hide };
6156
6310
  }
6157
6311
  const sections = props.sections || [{ items: props.items || [] }];
6158
- const openState = React33.useState({}), toggled = openState[0], setToggled = openState[1];
6312
+ const openState = React34.useState({}), toggled = openState[0], setToggled = openState[1];
6159
6313
  function isOpen(it) {
6160
6314
  if (toggled[it.id] != null) return toggled[it.id];
6161
6315
  return !!it.defaultOpen || contains(it, active);
6162
6316
  }
6163
- React33.useEffect(
6317
+ React34.useEffect(
6164
6318
  function() {
6165
6319
  if (!active) return;
6166
6320
  const next = {};
@@ -6182,7 +6336,7 @@ window.Aura = (() => {
6182
6336
  },
6183
6337
  [active]
6184
6338
  );
6185
- const navRef = React33.useRef(null);
6339
+ const navRef = React34.useRef(null);
6186
6340
  function onKeyDown(e) {
6187
6341
  const k = e.key;
6188
6342
  if (k !== "ArrowDown" && k !== "ArrowUp" && k !== "Home" && k !== "End") return;
@@ -6201,12 +6355,12 @@ window.Aura = (() => {
6201
6355
  function inner(it, group, open) {
6202
6356
  const marked = it.count != null && it.count > 0 || it.badge != null;
6203
6357
  return [
6204
- it.icon ? /* @__PURE__ */ React33.createElement(Icon, { key: "i", name: it.icon }) : collapsed ? /* @__PURE__ */ React33.createElement("span", { key: "i", className: "aura-nav__initial", "aria-hidden": "true" }, it.label.charAt(0)) : null,
6205
- collapsed && marked ? /* @__PURE__ */ React33.createElement("span", { key: "d", className: "aura-nav__dot", "aria-hidden": "true" }) : null,
6206
- /* @__PURE__ */ React33.createElement("span", { key: "l", className: "aura-nav__label" }, it.label),
6207
- it.badge != null ? /* @__PURE__ */ React33.createElement("span", { key: "b", className: "aura-nav__badge" }, it.badge) : null,
6208
- it.count != null ? /* @__PURE__ */ React33.createElement("span", { key: "c", className: "aura-nav__count" }, it.count) : null,
6209
- group ? /* @__PURE__ */ React33.createElement(Icon, { key: "g", name: /* @__PURE__ */ React33.createElement(IconChevronDown, null), className: cx("aura-nav__chevron", open && "is-open") }) : null
6358
+ it.icon ? /* @__PURE__ */ React34.createElement(Icon, { key: "i", name: it.icon }) : collapsed ? /* @__PURE__ */ React34.createElement("span", { key: "i", className: "aura-nav__initial", "aria-hidden": "true" }, it.label.charAt(0)) : null,
6359
+ collapsed && marked ? /* @__PURE__ */ React34.createElement("span", { key: "d", className: "aura-nav__dot", "aria-hidden": "true" }) : null,
6360
+ /* @__PURE__ */ React34.createElement("span", { key: "l", className: "aura-nav__label" }, it.label),
6361
+ it.badge != null ? /* @__PURE__ */ React34.createElement("span", { key: "b", className: "aura-nav__badge" }, it.badge) : null,
6362
+ it.count != null ? /* @__PURE__ */ React34.createElement("span", { key: "c", className: "aura-nav__count" }, it.count) : null,
6363
+ group ? /* @__PURE__ */ React34.createElement(Icon, { key: "g", name: /* @__PURE__ */ React34.createElement(IconChevronDown, null), className: cx("aura-nav__chevron", open && "is-open") }) : null
6210
6364
  ];
6211
6365
  }
6212
6366
  function item(it, depth) {
@@ -6214,7 +6368,7 @@ window.Aura = (() => {
6214
6368
  const open = !collapsed && isOpen(it);
6215
6369
  const listId = base + "-" + it.id;
6216
6370
  const holdsActive = contains(it, active);
6217
- return /* @__PURE__ */ React33.createElement("li", { key: it.id, className: "aura-nav__group" }, /* @__PURE__ */ React33.createElement(
6371
+ return /* @__PURE__ */ React34.createElement("li", { key: it.id, className: "aura-nav__group" }, /* @__PURE__ */ React34.createElement(
6218
6372
  "button",
6219
6373
  {
6220
6374
  type: "button",
@@ -6243,7 +6397,7 @@ window.Aura = (() => {
6243
6397
  }
6244
6398
  },
6245
6399
  inner(it, true, open)
6246
- ), /* @__PURE__ */ React33.createElement("ul", { id: listId, className: "aura-nav__list aura-nav__sub", hidden: !open }, it.children.map(function(c) {
6400
+ ), /* @__PURE__ */ React34.createElement("ul", { id: listId, className: "aura-nav__list aura-nav__sub", hidden: !open }, it.children.map(function(c) {
6247
6401
  return item(c, depth + 1);
6248
6402
  })));
6249
6403
  }
@@ -6259,9 +6413,9 @@ window.Aura = (() => {
6259
6413
  st[1](it.id);
6260
6414
  }
6261
6415
  };
6262
- return /* @__PURE__ */ React33.createElement("li", { key: it.id }, it.href ? /* @__PURE__ */ React33.createElement(Link, { href: it.href, ...common }, inner(it, false, false)) : /* @__PURE__ */ React33.createElement("button", { type: "button", ...common }, inner(it, false, false)));
6416
+ return /* @__PURE__ */ React34.createElement("li", { key: it.id }, it.href ? /* @__PURE__ */ React34.createElement(Link, { href: it.href, ...common }, inner(it, false, false)) : /* @__PURE__ */ React34.createElement("button", { type: "button", ...common }, inner(it, false, false)));
6263
6417
  }
6264
- return /* @__PURE__ */ React33.createElement(
6418
+ return /* @__PURE__ */ React34.createElement(
6265
6419
  "nav",
6266
6420
  {
6267
6421
  ref: function(el) {
@@ -6279,17 +6433,17 @@ window.Aura = (() => {
6279
6433
  "aria-label": props.label || t.mainNav,
6280
6434
  onKeyDown
6281
6435
  },
6282
- props.header ? /* @__PURE__ */ React33.createElement("div", { className: "aura-nav__header" }, props.header) : null,
6283
- /* @__PURE__ */ React33.createElement("div", { className: "aura-nav__scroll" }, sections.map(function(s, i) {
6284
- return /* @__PURE__ */ React33.createElement("div", { key: i, className: "aura-nav__section" }, s.title ? /* @__PURE__ */ React33.createElement("p", { className: "aura-nav__title" }, s.title) : null, /* @__PURE__ */ React33.createElement("ul", { className: "aura-nav__list" }, s.items.map(function(it) {
6436
+ props.header ? /* @__PURE__ */ React34.createElement("div", { className: "aura-nav__header" }, props.header) : null,
6437
+ /* @__PURE__ */ React34.createElement("div", { className: "aura-nav__scroll" }, sections.map(function(s, i) {
6438
+ return /* @__PURE__ */ React34.createElement("div", { key: i, className: "aura-nav__section" }, s.title ? /* @__PURE__ */ React34.createElement("p", { className: "aura-nav__title" }, s.title) : null, /* @__PURE__ */ React34.createElement("ul", { className: "aura-nav__list" }, s.items.map(function(it) {
6285
6439
  return item(it, 0);
6286
6440
  })));
6287
6441
  })),
6288
- props.footer ? /* @__PURE__ */ React33.createElement("div", { className: "aura-nav__footer" }, props.footer) : null,
6289
- props.collapsible ? /* @__PURE__ */ React33.createElement("div", { className: "aura-nav__toggle" }, /* @__PURE__ */ React33.createElement(
6442
+ props.footer ? /* @__PURE__ */ React34.createElement("div", { className: "aura-nav__footer" }, props.footer) : null,
6443
+ props.collapsible ? /* @__PURE__ */ React34.createElement("div", { className: "aura-nav__toggle" }, /* @__PURE__ */ React34.createElement(
6290
6444
  IconButton,
6291
6445
  {
6292
- icon: collapsed ? /* @__PURE__ */ React33.createElement(IconPanelLeftOpen, null) : /* @__PURE__ */ React33.createElement(IconPanelLeftClose, null),
6446
+ icon: collapsed ? /* @__PURE__ */ React34.createElement(IconPanelLeftOpen, null) : /* @__PURE__ */ React34.createElement(IconPanelLeftClose, null),
6293
6447
  label: collapsed ? t.expandNav : t.collapseNav,
6294
6448
  size: "md",
6295
6449
  onClick: function() {
@@ -6299,7 +6453,7 @@ window.Aura = (() => {
6299
6453
  }
6300
6454
  )) : null,
6301
6455
  tip && typeof document !== "undefined" ? (0, import_react_dom10.createPortal)(
6302
- /* @__PURE__ */ React33.createElement(
6456
+ /* @__PURE__ */ React34.createElement(
6303
6457
  "div",
6304
6458
  {
6305
6459
  className: "aura-tooltip aura-tooltip--right",
@@ -6314,35 +6468,35 @@ window.Aura = (() => {
6314
6468
  });
6315
6469
 
6316
6470
  // src/Breadcrumb.tsx
6317
- var React34 = __toESM(require_react(), 1);
6318
- var Breadcrumb = React34.forwardRef(function Breadcrumb2(props, ref) {
6471
+ var React35 = __toESM(require_react(), 1);
6472
+ var Breadcrumb = React35.forwardRef(function Breadcrumb2(props, ref) {
6319
6473
  const t = useStrings();
6320
6474
  const Link = useLinkComponent(props.linkComponent);
6321
6475
  const items2 = props.items || [];
6322
- return /* @__PURE__ */ React34.createElement("nav", { ref, "aria-label": props.label || t.breadcrumb, className: cx("aura-crumbs", props.className) }, /* @__PURE__ */ React34.createElement("ol", null, items2.map(function(it, i) {
6476
+ return /* @__PURE__ */ React35.createElement("nav", { ref, "aria-label": props.label || t.breadcrumb, className: cx("aura-crumbs", props.className) }, /* @__PURE__ */ React35.createElement("ol", null, items2.map(function(it, i) {
6323
6477
  const last = i === items2.length - 1;
6324
- return /* @__PURE__ */ React34.createElement("li", { key: i }, last ? /* @__PURE__ */ React34.createElement("span", { "aria-current": "page", className: "aura-crumbs__current" }, it.label) : it.href ? /* @__PURE__ */ React34.createElement(Link, { href: it.href, onClick: it.onClick }, it.label) : it.onClick ? /* @__PURE__ */ React34.createElement("button", { type: "button", onClick: it.onClick }, it.label) : (
6478
+ return /* @__PURE__ */ React35.createElement("li", { key: i }, last ? /* @__PURE__ */ React35.createElement("span", { "aria-current": "page", className: "aura-crumbs__current" }, it.label) : it.href ? /* @__PURE__ */ React35.createElement(Link, { href: it.href, onClick: it.onClick }, it.label) : it.onClick ? /* @__PURE__ */ React35.createElement("button", { type: "button", onClick: it.onClick }, it.label) : (
6325
6479
  /* 5.7: a segment with no page and no action is text, not a button that does nothing. */
6326
- /* @__PURE__ */ React34.createElement("span", { className: "aura-crumbs__text" }, it.label)
6327
- ), last ? null : /* @__PURE__ */ React34.createElement(Icon, { name: /* @__PURE__ */ React34.createElement(IconChevronRight, null), size: 12, className: "aura-crumbs__sep" }));
6480
+ /* @__PURE__ */ React35.createElement("span", { className: "aura-crumbs__text" }, it.label)
6481
+ ), last ? null : /* @__PURE__ */ React35.createElement(Icon, { name: /* @__PURE__ */ React35.createElement(IconChevronRight, null), size: 12, className: "aura-crumbs__sep" }));
6328
6482
  })));
6329
6483
  });
6330
6484
 
6331
6485
  // src/Avatar.tsx
6332
- var React35 = __toESM(require_react(), 1);
6486
+ var React36 = __toESM(require_react(), 1);
6333
6487
  var AVATAR_TONES = ["progress", "ready", "neutral", "warning"];
6334
6488
  function initials(name) {
6335
6489
  const parts = String(name || "?").trim().split(/\s+/);
6336
6490
  return ((parts[0] || "?")[0] + (parts.length > 1 ? parts[parts.length - 1][0] : parts[0][1] || "")).toUpperCase();
6337
6491
  }
6338
- var Avatar = React35.forwardRef(function Avatar2(props, ref) {
6339
- const size = props.size || "md", errState = React35.useState(null);
6492
+ var Avatar = React36.forwardRef(function Avatar2(props, ref) {
6493
+ const size = props.size || "md", errState = React36.useState(null);
6340
6494
  let hash = 0;
6341
6495
  String(props.name || "").split("").forEach(function(ch) {
6342
6496
  hash = hash * 31 + ch.charCodeAt(0) >>> 0;
6343
6497
  });
6344
6498
  const tone2 = AVATAR_TONES[hash % AVATAR_TONES.length];
6345
- return /* @__PURE__ */ React35.createElement(
6499
+ return /* @__PURE__ */ React36.createElement(
6346
6500
  "span",
6347
6501
  {
6348
6502
  ref,
@@ -6350,7 +6504,7 @@ window.Aura = (() => {
6350
6504
  role: "img",
6351
6505
  "aria-label": props.name + (props.status ? ", " + props.status : "")
6352
6506
  },
6353
- props.src && errState[0] !== props.src ? /* @__PURE__ */ React35.createElement(
6507
+ props.src && errState[0] !== props.src ? /* @__PURE__ */ React36.createElement(
6354
6508
  "img",
6355
6509
  {
6356
6510
  key: props.src,
@@ -6360,16 +6514,16 @@ window.Aura = (() => {
6360
6514
  errState[1](props.src || null);
6361
6515
  }
6362
6516
  }
6363
- ) : /* @__PURE__ */ React35.createElement("span", { "aria-hidden": true }, initials(props.name)),
6364
- props.status === "online" ? /* @__PURE__ */ React35.createElement("span", { className: "aura-avatar__status", "aria-hidden": true }) : null
6517
+ ) : /* @__PURE__ */ React36.createElement("span", { "aria-hidden": true }, initials(props.name)),
6518
+ props.status === "online" ? /* @__PURE__ */ React36.createElement("span", { className: "aura-avatar__status", "aria-hidden": true }) : null
6365
6519
  );
6366
6520
  });
6367
6521
 
6368
6522
  // src/Stack.tsx
6369
- var React37 = __toESM(require_react(), 1);
6523
+ var React38 = __toESM(require_react(), 1);
6370
6524
 
6371
6525
  // src/responsive.tsx
6372
- var React36 = __toESM(require_react(), 1);
6526
+ var React37 = __toESM(require_react(), 1);
6373
6527
 
6374
6528
  // src/breakpoints.ts
6375
6529
  var breakpoints = { sm: 640, md: 768, lg: 1024, xl: 1280 };
@@ -6377,7 +6531,7 @@ window.Aura = (() => {
6377
6531
  // src/responsive.tsx
6378
6532
  var ORDER = ["base", "sm", "md", "lg", "xl"];
6379
6533
  function useBreakpoint() {
6380
- return React36.useSyncExternalStore(subscribe, current, function() {
6534
+ return React37.useSyncExternalStore(subscribe, current, function() {
6381
6535
  return "lg";
6382
6536
  });
6383
6537
  }
@@ -6417,8 +6571,8 @@ window.Aura = (() => {
6417
6571
  };
6418
6572
 
6419
6573
  // src/Stack.tsx
6420
- var h5 = React37.createElement;
6421
- var Stack = React37.forwardRef(function Stack2(props, ref) {
6574
+ var h5 = React38.createElement;
6575
+ var Stack = React38.forwardRef(function Stack2(props, ref) {
6422
6576
  const style = Object.assign(
6423
6577
  {},
6424
6578
  respVars("aura-stack-dir", props.direction || "column"),
@@ -6432,9 +6586,9 @@ window.Aura = (() => {
6432
6586
  });
6433
6587
 
6434
6588
  // src/Grid.tsx
6435
- var React38 = __toESM(require_react(), 1);
6436
- var h6 = React38.createElement;
6437
- var Grid = React38.forwardRef(function Grid2(props, ref) {
6589
+ var React39 = __toESM(require_react(), 1);
6590
+ var h6 = React39.createElement;
6591
+ var Grid = React39.forwardRef(function Grid2(props, ref) {
6438
6592
  const style = Object.assign(
6439
6593
  {},
6440
6594
  respVars("aura-grid-gap", props.gap == null ? 6 : props.gap, space),
@@ -6449,9 +6603,9 @@ window.Aura = (() => {
6449
6603
  });
6450
6604
 
6451
6605
  // src/Container.tsx
6452
- var React39 = __toESM(require_react(), 1);
6453
- var h7 = React39.createElement;
6454
- var Container = React39.forwardRef(function Container2(props, ref) {
6606
+ var React40 = __toESM(require_react(), 1);
6607
+ var h7 = React40.createElement;
6608
+ var Container = React40.forwardRef(function Container2(props, ref) {
6455
6609
  return h7(
6456
6610
  props.as || "div",
6457
6611
  {
@@ -6464,27 +6618,27 @@ window.Aura = (() => {
6464
6618
  });
6465
6619
 
6466
6620
  // src/AppShell.tsx
6467
- var React40 = __toESM(require_react(), 1);
6468
- var AppShell = React40.forwardRef(function AppShell2(props, ref) {
6621
+ var React41 = __toESM(require_react(), 1);
6622
+ var AppShell = React41.forwardRef(function AppShell2(props, ref) {
6469
6623
  const t = useStrings();
6470
6624
  const bp = useBreakpoint();
6471
6625
  const wide = bp === "lg" || bp === "xl";
6472
- const st = React40.useState(false), open = st[0], setOpen = st[1];
6473
- React40.useEffect(
6626
+ const st = React41.useState(false), open = st[0], setOpen = st[1];
6627
+ React41.useEffect(
6474
6628
  function() {
6475
6629
  if (wide) setOpen(false);
6476
6630
  },
6477
6631
  [wide]
6478
6632
  );
6479
- const navEl = props.nav && React40.isValidElement(props.nav) ? props.nav : null;
6633
+ const navEl = props.nav && React41.isValidElement(props.nav) ? props.nav : null;
6480
6634
  const shared = !!navEl && navEl.props.value === void 0 && (navEl.props.defaultValue !== void 0 || navEl.props.sections !== void 0 || navEl.props.items !== void 0);
6481
- const navState = React40.useState(navEl ? navEl.props.defaultValue : void 0);
6635
+ const navState = React41.useState(navEl ? navEl.props.defaultValue : void 0);
6482
6636
  function onNav(id) {
6483
6637
  if (shared) navState[1](id);
6484
6638
  if (navEl && navEl.props.onChange) navEl.props.onChange(id);
6485
6639
  }
6486
- const deskNav = navEl && shared ? React40.cloneElement(navEl, { value: navState[0], onChange: onNav }) : props.nav;
6487
- const drawerNav = navEl ? React40.cloneElement(navEl, {
6640
+ const deskNav = navEl && shared ? React41.cloneElement(navEl, { value: navState[0], onChange: onNav }) : props.nav;
6641
+ const drawerNav = navEl ? React41.cloneElement(navEl, {
6488
6642
  value: shared ? navState[0] : navEl.props.value,
6489
6643
  onChange: function(id) {
6490
6644
  onNav(id);
@@ -6494,7 +6648,7 @@ window.Aura = (() => {
6494
6648
  collapsed: false,
6495
6649
  collapsible: false
6496
6650
  }) : props.nav;
6497
- return /* @__PURE__ */ React40.createElement("div", { ref, className: cx("aura-shell", props.bottomNav && "aura-shell--bottomnav", props.className) }, props.nav ? /* @__PURE__ */ React40.createElement("div", { className: "aura-shell__nav" }, deskNav) : null, props.nav ? /* @__PURE__ */ React40.createElement(
6651
+ return /* @__PURE__ */ React41.createElement("div", { ref, className: cx("aura-shell", props.bottomNav && "aura-shell--bottomnav", props.className) }, props.nav ? /* @__PURE__ */ React41.createElement("div", { className: "aura-shell__nav" }, deskNav) : null, props.nav ? /* @__PURE__ */ React41.createElement(
6498
6652
  Drawer,
6499
6653
  {
6500
6654
  open,
@@ -6507,11 +6661,11 @@ window.Aura = (() => {
6507
6661
  dismissible: true
6508
6662
  },
6509
6663
  drawerNav
6510
- ) : null, /* @__PURE__ */ React40.createElement("div", { className: "aura-shell__main" }, props.header || props.nav ? /* @__PURE__ */ React40.createElement("header", { className: cx("aura-shell__bar", !props.header && "aura-shell__bar--menu-only") }, props.nav ? /* @__PURE__ */ React40.createElement(
6664
+ ) : null, /* @__PURE__ */ React41.createElement("div", { className: "aura-shell__main" }, props.header || props.nav ? /* @__PURE__ */ React41.createElement("header", { className: cx("aura-shell__bar", !props.header && "aura-shell__bar--menu-only") }, props.nav ? /* @__PURE__ */ React41.createElement(
6511
6665
  IconButton,
6512
6666
  {
6513
6667
  className: "aura-shell__menu",
6514
- icon: /* @__PURE__ */ React40.createElement(IconMenu, null),
6668
+ icon: /* @__PURE__ */ React41.createElement(IconMenu, null),
6515
6669
  label: props.menuLabel || t.openNav,
6516
6670
  size: "md",
6517
6671
  onClick: function() {
@@ -6519,18 +6673,18 @@ window.Aura = (() => {
6519
6673
  },
6520
6674
  "aria-expanded": open
6521
6675
  }
6522
- ) : null, /* @__PURE__ */ React40.createElement("div", { className: "aura-shell__bar-content" }, props.header)) : null, /* @__PURE__ */ React40.createElement("main", { className: "aura-shell__content", id: props.mainId || "main", tabIndex: -1 }, props.children), props.bottomNav || null));
6676
+ ) : null, /* @__PURE__ */ React41.createElement("div", { className: "aura-shell__bar-content" }, props.header)) : null, /* @__PURE__ */ React41.createElement("main", { className: "aura-shell__content", id: props.mainId || "main", tabIndex: -1 }, props.children), props.bottomNav || null));
6523
6677
  });
6524
6678
 
6525
6679
  // src/ActionBar.tsx
6526
- var React41 = __toESM(require_react(), 1);
6527
- var ActionBar = React41.forwardRef(function ActionBar2(props, ref) {
6680
+ var React42 = __toESM(require_react(), 1);
6681
+ var ActionBar = React42.forwardRef(function ActionBar2(props, ref) {
6528
6682
  const t = useStrings();
6529
6683
  const bulk = props.selected != null;
6530
6684
  const idle = bulk && !props.selected;
6531
6685
  const count = bulk && props.selected ? t.selectedCount(props.selected) : null;
6532
- const cameFrom = React41.useRef(null);
6533
- const own = React41.useRef(null);
6686
+ const cameFrom = React42.useRef(null);
6687
+ const own = React42.useRef(null);
6534
6688
  function clear() {
6535
6689
  props.onClearSelection();
6536
6690
  setTimeout(function() {
@@ -6539,7 +6693,7 @@ window.Aura = (() => {
6539
6693
  if ((!a || a === document.body || !a.isConnected) && back && back.isConnected) back.focus();
6540
6694
  }, 0);
6541
6695
  }
6542
- return /* @__PURE__ */ React41.createElement(
6696
+ return /* @__PURE__ */ React42.createElement(
6543
6697
  "div",
6544
6698
  {
6545
6699
  ref: function(el) {
@@ -6560,16 +6714,16 @@ window.Aura = (() => {
6560
6714
  props.className
6561
6715
  )
6562
6716
  },
6563
- /* @__PURE__ */ React41.createElement("div", { className: "aura-actionbar__inner" }, /* @__PURE__ */ React41.createElement("div", { className: "aura-actionbar__status", role: "status" }, count, count && props.status ? " \xB7 " : null, props.status), !idle ? /* @__PURE__ */ React41.createElement("div", { className: "aura-actionbar__actions" }, count && props.onClearSelection ? /* @__PURE__ */ React41.createElement(Button, { variant: "ghost", size: "sm", onClick: clear }, t.clear()) : null, props.children) : null)
6717
+ /* @__PURE__ */ React42.createElement("div", { className: "aura-actionbar__inner" }, /* @__PURE__ */ React42.createElement("div", { className: "aura-actionbar__status", role: "status" }, count, count && props.status ? " \xB7 " : null, props.status), !idle ? /* @__PURE__ */ React42.createElement("div", { className: "aura-actionbar__actions" }, count && props.onClearSelection ? /* @__PURE__ */ React42.createElement(Button, { variant: "ghost", size: "sm", onClick: clear }, t.clear()) : null, props.children) : null)
6564
6718
  );
6565
6719
  });
6566
6720
 
6567
6721
  // src/Separator.tsx
6568
- var React42 = __toESM(require_react(), 1);
6569
- var Separator = React42.forwardRef(function Separator2(props, ref) {
6722
+ var React43 = __toESM(require_react(), 1);
6723
+ var Separator = React43.forwardRef(function Separator2(props, ref) {
6570
6724
  const vertical = props.orientation === "vertical";
6571
6725
  const decorative = props.decorative !== false;
6572
- return /* @__PURE__ */ React42.createElement(
6726
+ return /* @__PURE__ */ React43.createElement(
6573
6727
  "div",
6574
6728
  {
6575
6729
  ref,
@@ -6582,13 +6736,13 @@ window.Aura = (() => {
6582
6736
  });
6583
6737
 
6584
6738
  // src/Table.tsx
6585
- var React43 = __toESM(require_react(), 1);
6586
- var StackLabels = React43.createContext(null);
6587
- var ColumnIndex = React43.createContext(-1);
6739
+ var React44 = __toESM(require_react(), 1);
6740
+ var StackLabels = React44.createContext(null);
6741
+ var ColumnIndex = React44.createContext(-1);
6588
6742
  function flat(children) {
6589
6743
  const out = [];
6590
- React43.Children.toArray(children).forEach(function(c) {
6591
- if (React43.isValidElement(c) && c.type === React43.Fragment)
6744
+ React44.Children.toArray(children).forEach(function(c) {
6745
+ if (React44.isValidElement(c) && c.type === React44.Fragment)
6592
6746
  out.push.apply(out, flat(c.props.children));
6593
6747
  else out.push(c);
6594
6748
  });
@@ -6602,7 +6756,7 @@ window.Aura = (() => {
6602
6756
  });
6603
6757
  return parts.length ? parts.join("") : void 0;
6604
6758
  }
6605
- if (React43.isValidElement(node)) {
6759
+ if (React44.isValidElement(node)) {
6606
6760
  const p = node.props;
6607
6761
  if (p["aria-hidden"] === true || p["aria-hidden"] === "true") return void 0;
6608
6762
  return text(p.children);
@@ -6612,13 +6766,13 @@ window.Aura = (() => {
6612
6766
  function headerLabels(children) {
6613
6767
  let out = [];
6614
6768
  flat(children).forEach(function(c) {
6615
- if (out.length || !React43.isValidElement(c) || c.type !== THead) return;
6769
+ if (out.length || !React44.isValidElement(c) || c.type !== THead) return;
6616
6770
  const row = flat(c.props.children).find(function(r) {
6617
- return React43.isValidElement(r);
6771
+ return React44.isValidElement(r);
6618
6772
  });
6619
6773
  if (!row) return;
6620
6774
  flat(row.props.children).forEach(function(cell) {
6621
- if (!React43.isValidElement(cell)) return;
6775
+ if (!React44.isValidElement(cell)) return;
6622
6776
  const p = cell.props;
6623
6777
  const t = text(p.children);
6624
6778
  const label = p.label != null ? p.label : t != null ? t.replace(/\s+/g, " ").trim() || void 0 : void 0;
@@ -6628,18 +6782,18 @@ window.Aura = (() => {
6628
6782
  });
6629
6783
  return out;
6630
6784
  }
6631
- var Table = React43.forwardRef(function Table2(props, ref) {
6632
- const { caption, captionHidden, density, stackBelow, className, children, ...rest } = props;
6785
+ var Table = React44.forwardRef(function Table2(props, ref) {
6786
+ const { caption, captionHidden, density, stackBelow, align, bordered, className, children, ...rest } = props;
6633
6787
  const labels = stackBelow ? headerLabels(children) : null;
6634
6788
  if (labels && !labels.length)
6635
6789
  devWarnOnce(
6636
6790
  "tbl-stack-labels",
6637
6791
  "Table stackBelow: no THead > Tr > Th found among its children, so cells have no labels. Pass `label` on each Td."
6638
6792
  );
6639
- const outer = React43.useContext(StackLabels);
6793
+ const outer = React44.useContext(StackLabels);
6640
6794
  const capId = uid();
6641
- const wrap = React43.useRef(null);
6642
- const sc = React43.useState(false), scrolls = sc[0];
6795
+ const wrap = React44.useRef(null);
6796
+ const sc = React44.useState(false), scrolls = sc[0];
6643
6797
  useIsoLayoutEffect(function() {
6644
6798
  const el = wrap.current;
6645
6799
  if (!el || typeof ResizeObserver === "undefined") return;
@@ -6653,35 +6807,40 @@ window.Aura = (() => {
6653
6807
  ro.disconnect();
6654
6808
  };
6655
6809
  }, []);
6656
- return /* @__PURE__ */ React43.createElement(
6810
+ return /* @__PURE__ */ React44.createElement(
6657
6811
  "div",
6658
6812
  {
6659
6813
  ref: wrap,
6660
- className: cx("aura-tbl-wrap", stackBelow && "is-stackable"),
6814
+ className: cx("aura-tbl-wrap", stackBelow && "is-stackable", bordered === false && "is-flush"),
6661
6815
  "data-density": density,
6662
6816
  tabIndex: scrolls ? 0 : void 0,
6663
6817
  role: scrolls && (caption != null || rest["aria-label"]) ? "region" : void 0,
6664
6818
  "aria-labelledby": scrolls && caption != null ? capId : void 0,
6665
6819
  "aria-label": scrolls && caption == null ? rest["aria-label"] : void 0
6666
6820
  },
6667
- /* @__PURE__ */ React43.createElement(
6821
+ /* @__PURE__ */ React44.createElement(
6668
6822
  "table",
6669
6823
  {
6670
6824
  ref,
6671
- className: cx("aura-tbl", stackBelow && "aura-tbl--stack-" + stackBelow, className),
6825
+ className: cx(
6826
+ "aura-tbl",
6827
+ stackBelow && "aura-tbl--stack-" + stackBelow,
6828
+ align === "middle" && "aura-tbl--middle",
6829
+ className
6830
+ ),
6672
6831
  role: stackBelow ? "table" : void 0,
6673
6832
  ...rest
6674
6833
  },
6675
- caption != null ? /* @__PURE__ */ React43.createElement("caption", { id: capId, className: cx("aura-tbl__caption", captionHidden && "aura-sr-only") }, caption) : null,
6676
- labels ? /* @__PURE__ */ React43.createElement(StackLabels.Provider, { value: labels }, children) : outer ? /* @__PURE__ */ React43.createElement(StackLabels.Provider, { value: null }, children) : children
6834
+ caption != null ? /* @__PURE__ */ React44.createElement("caption", { id: capId, className: cx("aura-tbl__caption", captionHidden && "aura-sr-only") }, caption) : null,
6835
+ labels ? /* @__PURE__ */ React44.createElement(StackLabels.Provider, { value: labels }, children) : outer ? /* @__PURE__ */ React44.createElement(StackLabels.Provider, { value: null }, children) : children
6677
6836
  )
6678
6837
  );
6679
6838
  });
6680
6839
  function section(tag, cls) {
6681
- const C = React43.forwardRef(function TableSection(props, ref) {
6840
+ const C = React44.forwardRef(function TableSection(props, ref) {
6682
6841
  const { className, ...rest } = props;
6683
- const stacked = React43.useContext(StackLabels) != null;
6684
- return React43.createElement(
6842
+ const stacked = React44.useContext(StackLabels) != null;
6843
+ return React44.createElement(
6685
6844
  tag,
6686
6845
  Object.assign({ ref, className: cx(cls, className), role: stacked ? "rowgroup" : void 0 }, rest)
6687
6846
  );
@@ -6694,14 +6853,14 @@ window.Aura = (() => {
6694
6853
  TBody.displayName = "TBody";
6695
6854
  var TFoot = section("tfoot", "aura-tbl__foot");
6696
6855
  TFoot.displayName = "TFoot";
6697
- var Tr = React43.forwardRef(function Tr2(props, ref) {
6856
+ var Tr = React44.forwardRef(function Tr2(props, ref) {
6698
6857
  const { className, children, ...rest } = props;
6699
- const stacked = React43.useContext(StackLabels) != null;
6858
+ const stacked = React44.useContext(StackLabels) != null;
6700
6859
  let col = 0;
6701
- return /* @__PURE__ */ React43.createElement("tr", { ref, className: cx("aura-tbl__row", className), role: stacked ? "row" : void 0, ...rest }, stacked ? flat(children).map(function(c) {
6860
+ return /* @__PURE__ */ React44.createElement("tr", { ref, className: cx("aura-tbl__row", className), role: stacked ? "row" : void 0, ...rest }, stacked ? flat(children).map(function(c) {
6702
6861
  const at = col;
6703
- if (React43.isValidElement(c)) col += Math.max(1, Number(c.props.colSpan) || 1);
6704
- return /* @__PURE__ */ React43.createElement(ColumnIndex.Provider, { key: React43.isValidElement(c) && c.key != null ? c.key : at, value: at }, c);
6862
+ if (React44.isValidElement(c)) col += Math.max(1, Number(c.props.colSpan) || 1);
6863
+ return /* @__PURE__ */ React44.createElement(ColumnIndex.Provider, { key: React44.isValidElement(c) && c.key != null ? c.key : at, value: at }, c);
6705
6864
  }) : children);
6706
6865
  });
6707
6866
  function cellClass(base, p) {
@@ -6715,39 +6874,42 @@ window.Aura = (() => {
6715
6874
  p.className
6716
6875
  );
6717
6876
  }
6718
- var Th = React43.forwardRef(function Th2(props, ref) {
6719
- const { align, numeric, mono, className, scope, label, ...rest } = props;
6720
- const stacked = React43.useContext(StackLabels) != null;
6721
- return /* @__PURE__ */ React43.createElement(
6877
+ var Th = React44.forwardRef(function Th2(props, ref) {
6878
+ const { align, numeric, mono, className, scope, label, card, ...rest } = props;
6879
+ const stacked = React44.useContext(StackLabels) != null;
6880
+ return /* @__PURE__ */ React44.createElement(
6722
6881
  "th",
6723
6882
  {
6724
6883
  ref,
6725
6884
  scope: scope || "col",
6726
6885
  className: cellClass("aura-tbl__th", props),
6727
6886
  role: stacked ? scope === "row" ? "rowheader" : "columnheader" : void 0,
6887
+ "data-card": stacked && (card === "title" || card === "action") ? card : void 0,
6728
6888
  ...rest
6729
6889
  }
6730
6890
  );
6731
6891
  });
6732
- var Td = React43.forwardRef(function Td2(props, ref) {
6733
- const { align, numeric, mono, className, scope, label, ...rest } = props;
6734
- const labels = React43.useContext(StackLabels), col = React43.useContext(ColumnIndex);
6735
- const shown = labels ? label != null ? label : col >= 0 ? labels[col] : void 0 : void 0;
6736
- return /* @__PURE__ */ React43.createElement(
6892
+ var Td = React44.forwardRef(function Td2(props, ref) {
6893
+ const { align, numeric, mono, className, scope, label, card, ...rest } = props;
6894
+ const labels = React44.useContext(StackLabels), col = React44.useContext(ColumnIndex);
6895
+ const slot = labels && (card === "title" || card === "action") ? card : void 0;
6896
+ const shown = labels && !slot ? label != null ? label : col >= 0 ? labels[col] : void 0 : void 0;
6897
+ return /* @__PURE__ */ React44.createElement(
6737
6898
  "td",
6738
6899
  {
6739
6900
  ref,
6740
6901
  className: cellClass("aura-tbl__td", props),
6741
6902
  role: labels ? "cell" : void 0,
6742
6903
  "data-label": shown || void 0,
6904
+ "data-card": slot,
6743
6905
  ...rest
6744
6906
  }
6745
6907
  );
6746
6908
  });
6747
6909
 
6748
6910
  // src/BottomNav.tsx
6749
- var React44 = __toESM(require_react(), 1);
6750
- var BottomNav = React44.forwardRef(function BottomNav2(props, ref) {
6911
+ var React45 = __toESM(require_react(), 1);
6912
+ var BottomNav = React45.forwardRef(function BottomNav2(props, ref) {
6751
6913
  const t = useStrings();
6752
6914
  const Link = useLinkComponent(props.linkComponent);
6753
6915
  const st = useMaybeControlled(
@@ -6757,14 +6919,14 @@ window.Aura = (() => {
6757
6919
  );
6758
6920
  const active = st[0];
6759
6921
  const hide = props.hideFrom === false ? "always" : "below-" + (props.hideFrom || "lg");
6760
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: cx("aura-bottomnav-spacer", "aura-bottomnav--" + hide), "aria-hidden": "true" }), /* @__PURE__ */ React44.createElement(
6922
+ return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement("div", { className: cx("aura-bottomnav-spacer", "aura-bottomnav--" + hide), "aria-hidden": "true" }), /* @__PURE__ */ React45.createElement(
6761
6923
  "nav",
6762
6924
  {
6763
6925
  ref,
6764
6926
  className: cx("aura-bottomnav", "aura-bottomnav--" + hide, props.className),
6765
6927
  "aria-label": props.label || t.mainNav
6766
6928
  },
6767
- /* @__PURE__ */ React44.createElement("ul", { className: "aura-bottomnav__list" }, props.items.map(function(it) {
6929
+ /* @__PURE__ */ React45.createElement("ul", { className: "aura-bottomnav__list" }, props.items.map(function(it) {
6768
6930
  const on = active === it.id;
6769
6931
  const count = it.count != null && it.count > 0 ? it.count > 99 ? "99+" : String(it.count) : null;
6770
6932
  const suffix = count || it.badge && it.badgeLabel ? " (" + (count || it.badgeLabel) + ")" : "";
@@ -6780,19 +6942,19 @@ window.Aura = (() => {
6780
6942
  }
6781
6943
  };
6782
6944
  const inner = [
6783
- /* @__PURE__ */ React44.createElement("span", { key: "i", className: "aura-bottomnav__icon" }, /* @__PURE__ */ React44.createElement(Icon, { name: it.icon, size: "md" }), count ? /* @__PURE__ */ React44.createElement("span", { className: "aura-bottomnav__count", "aria-hidden": "true" }, count) : it.badge ? /* @__PURE__ */ React44.createElement("span", { className: "aura-bottomnav__dot", "aria-hidden": "true" }) : null),
6784
- /* @__PURE__ */ React44.createElement("span", { key: "l", className: "aura-bottomnav__label" }, it.label),
6785
- suffix && !it.ariaLabel ? /* @__PURE__ */ React44.createElement("span", { key: "s", className: "aura-sr-only" }, suffix) : null
6945
+ /* @__PURE__ */ React45.createElement("span", { key: "i", className: "aura-bottomnav__icon" }, /* @__PURE__ */ React45.createElement(Icon, { name: it.icon, size: "md" }), count ? /* @__PURE__ */ React45.createElement("span", { className: "aura-bottomnav__count", "aria-hidden": "true" }, count) : it.badge ? /* @__PURE__ */ React45.createElement("span", { className: "aura-bottomnav__dot", "aria-hidden": "true" }) : null),
6946
+ /* @__PURE__ */ React45.createElement("span", { key: "l", className: "aura-bottomnav__label" }, it.label),
6947
+ suffix && !it.ariaLabel ? /* @__PURE__ */ React45.createElement("span", { key: "s", className: "aura-sr-only" }, suffix) : null
6786
6948
  ];
6787
- return /* @__PURE__ */ React44.createElement("li", { key: it.id, className: "aura-bottomnav__cell" }, it.href ? /* @__PURE__ */ React44.createElement(Link, { href: it.href, ...common }, inner) : /* @__PURE__ */ React44.createElement("button", { type: "button", ...common }, inner));
6949
+ return /* @__PURE__ */ React45.createElement("li", { key: it.id, className: "aura-bottomnav__cell" }, it.href ? /* @__PURE__ */ React45.createElement(Link, { href: it.href, ...common }, inner) : /* @__PURE__ */ React45.createElement("button", { type: "button", ...common }, inner));
6788
6950
  }))
6789
6951
  ));
6790
6952
  });
6791
6953
 
6792
6954
  // src/Surface.tsx
6793
- var React45 = __toESM(require_react(), 1);
6794
- var h8 = React45.createElement;
6795
- var Surface = React45.forwardRef(function Surface2(props, ref) {
6955
+ var React46 = __toESM(require_react(), 1);
6956
+ var h8 = React46.createElement;
6957
+ var Surface = React46.forwardRef(function Surface2(props, ref) {
6796
6958
  const t = props.texture || "mesh";
6797
6959
  const rest = omit(props, ["texture", "className", "children", "as"]);
6798
6960
  return h8(
@@ -6813,8 +6975,8 @@ window.Aura = (() => {
6813
6975
  });
6814
6976
 
6815
6977
  // src/Stat.tsx
6816
- var React46 = __toESM(require_react(), 1);
6817
- var Stat = React46.forwardRef(function Stat2(props, ref) {
6978
+ var React47 = __toESM(require_react(), 1);
6979
+ var Stat = React47.forwardRef(function Stat2(props, ref) {
6818
6980
  const ch = props.change;
6819
6981
  const dir = ch && (ch.direction || "flat");
6820
6982
  const tone2 = ch && (ch.tone || (dir === "up" ? "positive" : dir === "down" ? "negative" : "neutral"));
@@ -6823,7 +6985,7 @@ window.Aura = (() => {
6823
6985
  const numeric = typeof v === "number" || typeof v === "string" && /\d/.test(v) && /^[\s\d.,:+\-\u2212%()\u0E3F$\u20AC\u00A3\u00A5kKmMbB]+$/.test(v.replace(/\b[A-Z]{3}\b/g, ""));
6824
6986
  const Tag3 = props.href ? Link : props.onClick ? "button" : "div";
6825
6987
  const interactive = !!(props.href || props.onClick);
6826
- return /* @__PURE__ */ React46.createElement(
6988
+ return /* @__PURE__ */ React47.createElement(
6827
6989
  Tag3,
6828
6990
  {
6829
6991
  ref,
@@ -6833,20 +6995,20 @@ window.Aura = (() => {
6833
6995
  type: Tag3 === "button" ? "button" : void 0,
6834
6996
  "aria-busy": props.loading || void 0
6835
6997
  },
6836
- /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__head" }, /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__label" }, props.label), props.icon ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__icon" }, /* @__PURE__ */ React46.createElement(Icon, { name: props.icon })) : null),
6837
- props.loading ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__value" }, /* @__PURE__ */ React46.createElement("span", { className: "aura-skel aura-stat__skel" })) : /* @__PURE__ */ React46.createElement("span", { className: cx("aura-stat__value", numeric && "is-numeric") }, props.value, props.unit ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__unit" }, props.unit) : null),
6838
- ch && !props.loading || props.caption ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__foot" }, ch && !props.loading ? /* @__PURE__ */ React46.createElement("span", { className: cx("aura-stat__change", "is-" + tone2) }, /* @__PURE__ */ React46.createElement(
6998
+ /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__head" }, /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__label" }, props.label), props.icon ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__icon" }, /* @__PURE__ */ React47.createElement(Icon, { name: props.icon })) : null),
6999
+ props.loading ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__value" }, /* @__PURE__ */ React47.createElement("span", { className: "aura-skel aura-stat__skel" })) : /* @__PURE__ */ React47.createElement("span", { className: cx("aura-stat__value", numeric && "is-numeric") }, props.value, props.unit ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__unit" }, props.unit) : null),
7000
+ ch && !props.loading || props.caption ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__foot" }, ch && !props.loading ? /* @__PURE__ */ React47.createElement("span", { className: cx("aura-stat__change", "is-" + tone2) }, /* @__PURE__ */ React47.createElement(
6839
7001
  Icon,
6840
7002
  {
6841
- name: dir === "up" ? /* @__PURE__ */ React46.createElement(IconTrendingUp, null) : dir === "down" ? /* @__PURE__ */ React46.createElement(IconTrendingDown, null) : /* @__PURE__ */ React46.createElement(IconMinus, null),
7003
+ name: dir === "up" ? /* @__PURE__ */ React47.createElement(IconTrendingUp, null) : dir === "down" ? /* @__PURE__ */ React47.createElement(IconTrendingDown, null) : /* @__PURE__ */ React47.createElement(IconMinus, null),
6842
7004
  size: 14
6843
7005
  }
6844
- ), /* @__PURE__ */ React46.createElement("span", null, ch.value)) : null, ch && ch.label && !props.loading ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__caption" }, ch.label) : null, props.caption ? /* @__PURE__ */ React46.createElement("span", { className: "aura-stat__caption" }, props.caption) : null) : null
7006
+ ), /* @__PURE__ */ React47.createElement("span", null, ch.value)) : null, ch && ch.label && !props.loading ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__caption" }, ch.label) : null, props.caption ? /* @__PURE__ */ React47.createElement("span", { className: "aura-stat__caption" }, props.caption) : null) : null
6845
7007
  );
6846
7008
  });
6847
7009
 
6848
7010
  // src/TimePicker.tsx
6849
- var React47 = __toESM(require_react(), 1);
7011
+ var React48 = __toESM(require_react(), 1);
6850
7012
  var import_react_dom11 = __toESM(require_react_dom(), 1);
6851
7013
 
6852
7014
  // src/text.ts
@@ -6888,7 +7050,7 @@ window.Aura = (() => {
6888
7050
  function fromMin(n3) {
6889
7051
  return pad3(Math.floor(n3 / 60)) + ":" + pad3(n3 % 60);
6890
7052
  }
6891
- var TimePicker = React47.forwardRef(function TimePicker2(props, ref) {
7053
+ var TimePicker = React48.forwardRef(function TimePicker2(props, ref) {
6892
7054
  const t = useStrings();
6893
7055
  const auto = uid(), id = props.id || auto, listId = id + "-list";
6894
7056
  const st = useMaybeControlled(
@@ -6898,7 +7060,7 @@ window.Aura = (() => {
6898
7060
  );
6899
7061
  const value = st[0];
6900
7062
  const step = props.step || 30, lo = toMin(props.min) != null ? toMin(props.min) : 0, hi = toMin(props.max) != null ? toMin(props.max) : 24 * 60 - 1;
6901
- const slots = React47.useMemo(
7063
+ const slots = React48.useMemo(
6902
7064
  function() {
6903
7065
  const out = [];
6904
7066
  for (let m = lo; m <= hi; m += step) out.push(fromMin(m));
@@ -6910,12 +7072,12 @@ window.Aura = (() => {
6910
7072
  const n3 = toMin(v);
6911
7073
  return n3 == null || n3 < lo || n3 > hi || props.isTimeDisabled && props.isTimeDisabled(v);
6912
7074
  }
6913
- const openState = React47.useState(false), open = openState[0], setOpen = openState[1];
6914
- const editState = React47.useState(null), editing = editState[0], setEditing = editState[1];
6915
- const aState = React47.useState(0), active = aState[0], setActive = aState[1];
6916
- const errState = React47.useState(null);
6917
- const pos = React47.useState(null);
6918
- const boxRef = React47.useRef(null), inputRef = React47.useRef(null), listRef = React47.useRef(null), inputMerged = useMergedRef(ref, inputRef);
7075
+ const openState = React48.useState(false), open = openState[0], setOpen = openState[1];
7076
+ const editState = React48.useState(null), editing = editState[0], setEditing = editState[1];
7077
+ const aState = React48.useState(0), active = aState[0], setActive = aState[1];
7078
+ const errState = React48.useState(null);
7079
+ const pos = React48.useState(null);
7080
+ const boxRef = React48.useRef(null), inputRef = React48.useRef(null), listRef = React48.useRef(null), inputMerged = useMergedRef(ref, inputRef);
6919
7081
  const mounted = useMounted();
6920
7082
  function nearest(v) {
6921
7083
  const n3 = toMin(v);
@@ -6943,7 +7105,7 @@ window.Aura = (() => {
6943
7105
  },
6944
7106
  [open]
6945
7107
  );
6946
- React47.useEffect(
7108
+ React48.useEffect(
6947
7109
  function() {
6948
7110
  if (!open) return;
6949
7111
  function outside(e) {
@@ -6965,7 +7127,7 @@ window.Aura = (() => {
6965
7127
  },
6966
7128
  [open]
6967
7129
  );
6968
- React47.useEffect(
7130
+ React48.useEffect(
6969
7131
  function() {
6970
7132
  if (!open || !listRef.current) return;
6971
7133
  const el = listRef.current.querySelector('[data-idx="' + active + '"]');
@@ -7064,9 +7226,9 @@ window.Aura = (() => {
7064
7226
  }
7065
7227
  const error = errState[0] || props.error;
7066
7228
  const list = open && mounted && pos[0] ? (0, import_react_dom11.createPortal)(
7067
- /* @__PURE__ */ React47.createElement("div", { ref: listRef, className: "aura-combo__popover aura-time__popover", style: pos[0] }, /* @__PURE__ */ React47.createElement("ul", { id: listId, role: "listbox", "aria-label": props.label, className: "aura-combo__list" }, slots.map(function(s, i) {
7229
+ /* @__PURE__ */ React48.createElement("div", { ref: listRef, className: "aura-combo__popover aura-time__popover", style: pos[0] }, /* @__PURE__ */ React48.createElement("ul", { id: listId, role: "listbox", "aria-label": props.label, className: "aura-combo__list" }, slots.map(function(s, i) {
7068
7230
  const dis = blocked(s), sel = s === value;
7069
- return /* @__PURE__ */ React47.createElement(
7231
+ return /* @__PURE__ */ React48.createElement(
7070
7232
  "li",
7071
7233
  {
7072
7234
  key: s,
@@ -7091,13 +7253,13 @@ window.Aura = (() => {
7091
7253
  if (active !== i) setActive(i);
7092
7254
  }
7093
7255
  },
7094
- /* @__PURE__ */ React47.createElement("span", { className: "aura-combo__label" }, s),
7095
- sel ? /* @__PURE__ */ React47.createElement(Icon, { name: /* @__PURE__ */ React47.createElement(IconCheck, null), className: "aura-combo__check" }) : null
7256
+ /* @__PURE__ */ React48.createElement("span", { className: "aura-combo__label" }, s),
7257
+ sel ? /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconCheck, null), className: "aura-combo__check" }) : null
7096
7258
  );
7097
7259
  }))),
7098
7260
  document.body
7099
7261
  ) : null;
7100
- return /* @__PURE__ */ React47.createElement(
7262
+ return /* @__PURE__ */ React48.createElement(
7101
7263
  Field,
7102
7264
  {
7103
7265
  id,
@@ -7109,7 +7271,7 @@ window.Aura = (() => {
7109
7271
  disabled: props.disabled,
7110
7272
  className: props.className
7111
7273
  },
7112
- /* @__PURE__ */ React47.createElement("div", { ref: boxRef, className: cx("aura-input aura-combo aura-time has-icon", open && "is-open") }, /* @__PURE__ */ React47.createElement(Icon, { name: /* @__PURE__ */ React47.createElement(IconClock, null), className: "aura-input__icon" }), /* @__PURE__ */ React47.createElement(
7274
+ /* @__PURE__ */ React48.createElement("div", { ref: boxRef, className: cx("aura-input aura-combo aura-time has-icon", open && "is-open") }, /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconClock, null), className: "aura-input__icon" }), /* @__PURE__ */ React48.createElement(
7113
7275
  "input",
7114
7276
  {
7115
7277
  ref: inputMerged,
@@ -7149,7 +7311,7 @@ window.Aura = (() => {
7149
7311
  }, 0);
7150
7312
  }
7151
7313
  }
7152
- ), props.clearable !== false && value != null && !props.disabled ? /* @__PURE__ */ React47.createElement(
7314
+ ), props.clearable !== false && value != null && !props.disabled ? /* @__PURE__ */ React48.createElement(
7153
7315
  "button",
7154
7316
  {
7155
7317
  type: "button",
@@ -7162,8 +7324,8 @@ window.Aura = (() => {
7162
7324
  if (inputRef.current) inputRef.current.focus();
7163
7325
  }
7164
7326
  },
7165
- /* @__PURE__ */ React47.createElement(Icon, { name: /* @__PURE__ */ React47.createElement(IconX, null) })
7166
- ) : null, /* @__PURE__ */ React47.createElement(
7327
+ /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconX, null) })
7328
+ ) : null, /* @__PURE__ */ React48.createElement(
7167
7329
  "button",
7168
7330
  {
7169
7331
  type: "button",
@@ -7181,14 +7343,14 @@ window.Aura = (() => {
7181
7343
  }
7182
7344
  }
7183
7345
  },
7184
- /* @__PURE__ */ React47.createElement(Icon, { name: /* @__PURE__ */ React47.createElement(IconChevronDown, null) })
7346
+ /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconChevronDown, null) })
7185
7347
  )),
7186
7348
  list
7187
7349
  );
7188
7350
  });
7189
7351
 
7190
7352
  // src/FileUpload.tsx
7191
- var React48 = __toESM(require_react(), 1);
7353
+ var React49 = __toESM(require_react(), 1);
7192
7354
  function matches(file, accept) {
7193
7355
  if (!accept) return true;
7194
7356
  const name = (file.name || "").toLowerCase(), type = (file.type || "").toLowerCase();
@@ -7212,24 +7374,24 @@ window.Aura = (() => {
7212
7374
  }).join(", ");
7213
7375
  }
7214
7376
  var seq = 0;
7215
- var FileUpload = React48.forwardRef(function FileUpload2(props, ref) {
7377
+ var FileUpload = React49.forwardRef(function FileUpload2(props, ref) {
7216
7378
  const t = useStrings();
7217
7379
  const auto = uid(), id = props.id || auto;
7218
7380
  const st = useMaybeControlled(props.value, props.defaultValue || [], props.onChange);
7219
7381
  const items2 = st[0] || [];
7220
- const dragState = React48.useState(false), over = dragState[0];
7221
- const inputRef = React48.useRef(null), inputMerged = useMergedRef(ref, inputRef);
7222
- const urls = React48.useRef({});
7382
+ const dragState = React49.useState(false), over = dragState[0];
7383
+ const inputRef = React49.useRef(null), inputMerged = useMergedRef(ref, inputRef);
7384
+ const urls = React49.useRef({});
7223
7385
  const maxFiles = props.multiple ? props.maxFiles : 1;
7224
7386
  const note = t.accepts(describeAccept(props.accept, t), props.maxSize ? formatBytes(props.maxSize) : "");
7225
- React48.useEffect(function() {
7387
+ React49.useEffect(function() {
7226
7388
  return function() {
7227
7389
  Object.keys(urls.current).forEach(function(k) {
7228
7390
  URL.revokeObjectURL(urls.current[k]);
7229
7391
  });
7230
7392
  };
7231
7393
  }, []);
7232
- React48.useEffect(
7394
+ React49.useEffect(
7233
7395
  function() {
7234
7396
  const el = inputRef.current;
7235
7397
  if (!el || !props.name || typeof DataTransfer === "undefined") return;
@@ -7289,7 +7451,7 @@ window.Aura = (() => {
7289
7451
  if (inputRef.current) inputRef.current.focus();
7290
7452
  }
7291
7453
  const error = props.error;
7292
- return /* @__PURE__ */ React48.createElement(
7454
+ return /* @__PURE__ */ React49.createElement(
7293
7455
  Field,
7294
7456
  {
7295
7457
  id,
@@ -7301,7 +7463,7 @@ window.Aura = (() => {
7301
7463
  disabled: props.disabled,
7302
7464
  className: props.className
7303
7465
  },
7304
- /* @__PURE__ */ React48.createElement(
7466
+ /* @__PURE__ */ React49.createElement(
7305
7467
  "div",
7306
7468
  {
7307
7469
  className: cx("aura-upload", over && "is-over", props.disabled && "is-disabled", error && "is-invalid"),
@@ -7322,9 +7484,9 @@ window.Aura = (() => {
7322
7484
  add(e.dataTransfer && e.dataTransfer.files);
7323
7485
  }
7324
7486
  },
7325
- /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconCloudUpload, null), size: "lg", className: "aura-upload__icon" }),
7326
- /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__text" }, t.dropFiles, " "),
7327
- /* @__PURE__ */ React48.createElement(
7487
+ /* @__PURE__ */ React49.createElement(Icon, { name: /* @__PURE__ */ React49.createElement(IconCloudUpload, null), size: "lg", className: "aura-upload__icon" }),
7488
+ /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__text" }, t.dropFiles, " "),
7489
+ /* @__PURE__ */ React49.createElement(
7328
7490
  "input",
7329
7491
  {
7330
7492
  ref: inputMerged,
@@ -7346,12 +7508,12 @@ window.Aura = (() => {
7346
7508
  }
7347
7509
  }
7348
7510
  ),
7349
- /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__browse", "aria-hidden": true }, props.multiple ? t.browse : t.browseOne),
7350
- note ? /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__note", id: id + "-note" }, note) : null
7511
+ /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__browse", "aria-hidden": true }, props.multiple ? t.browse : t.browseOne),
7512
+ note ? /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__note", id: id + "-note" }, note) : null
7351
7513
  ),
7352
- items2.length ? /* @__PURE__ */ React48.createElement("ul", { className: "aura-upload__list", "aria-live": "polite" }, items2.map(function(it) {
7514
+ items2.length ? /* @__PURE__ */ React49.createElement("ul", { className: "aura-upload__list", "aria-live": "polite" }, items2.map(function(it) {
7353
7515
  const src = thumb(it);
7354
- return /* @__PURE__ */ React48.createElement("li", { key: it.id, className: cx("aura-upload__item", it.error && "is-error") }, src ? /* @__PURE__ */ React48.createElement("img", { className: "aura-upload__thumb", src, alt: "" }) : /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__thumb is-icon", "aria-hidden": true }, /* @__PURE__ */ React48.createElement(Icon, { name: /^image\//.test(it.type || "") ? /* @__PURE__ */ React48.createElement(IconImage, null) : /* @__PURE__ */ React48.createElement(IconFile, null), size: "md" })), /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__meta" }, it.url && !it.error ? /* @__PURE__ */ React48.createElement("a", { className: "aura-upload__name", href: it.url, target: "_blank", rel: "noreferrer" }, it.name) : /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__name" }, it.name), /* @__PURE__ */ React48.createElement("span", { className: "aura-upload__sub" }, it.error ? /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconCircleAlert, null), size: 12 }), it.error) : it.status === "uploading" ? t.uploading + (it.progress != null ? " " + Math.round(it.progress) + "%" : "") : it.status === "done" ? /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(Icon, { name: /* @__PURE__ */ React48.createElement(IconCircleCheck, null), size: 12 }), formatBytes(it.size)) : formatBytes(it.size)), it.status === "uploading" ? /* @__PURE__ */ React48.createElement(
7516
+ return /* @__PURE__ */ React49.createElement("li", { key: it.id, className: cx("aura-upload__item", it.error && "is-error") }, src ? /* @__PURE__ */ React49.createElement("img", { className: "aura-upload__thumb", src, alt: "" }) : /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__thumb is-icon", "aria-hidden": true }, /* @__PURE__ */ React49.createElement(Icon, { name: /^image\//.test(it.type || "") ? /* @__PURE__ */ React49.createElement(IconImage, null) : /* @__PURE__ */ React49.createElement(IconFile, null), size: "md" })), /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__meta" }, it.url && !it.error ? /* @__PURE__ */ React49.createElement("a", { className: "aura-upload__name", href: it.url, target: "_blank", rel: "noreferrer" }, it.name) : /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__name" }, it.name), /* @__PURE__ */ React49.createElement("span", { className: "aura-upload__sub" }, it.error ? /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(Icon, { name: /* @__PURE__ */ React49.createElement(IconCircleAlert, null), size: 12 }), it.error) : it.status === "uploading" ? t.uploading + (it.progress != null ? " " + Math.round(it.progress) + "%" : "") : it.status === "done" ? /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(Icon, { name: /* @__PURE__ */ React49.createElement(IconCircleCheck, null), size: 12 }), formatBytes(it.size)) : formatBytes(it.size)), it.status === "uploading" ? /* @__PURE__ */ React49.createElement(
7355
7517
  "span",
7356
7518
  {
7357
7519
  className: "aura-upload__bar",
@@ -7361,11 +7523,11 @@ window.Aura = (() => {
7361
7523
  "aria-valuemax": 100,
7362
7524
  "aria-valuenow": it.progress != null ? Math.round(it.progress) : void 0
7363
7525
  },
7364
- /* @__PURE__ */ React48.createElement("span", { style: { width: (it.progress || 0) + "%" } })
7365
- ) : null), /* @__PURE__ */ React48.createElement(
7526
+ /* @__PURE__ */ React49.createElement("span", { style: { width: (it.progress || 0) + "%" } })
7527
+ ) : null), /* @__PURE__ */ React49.createElement(
7366
7528
  IconButton,
7367
7529
  {
7368
- icon: /* @__PURE__ */ React48.createElement(IconX, null),
7530
+ icon: /* @__PURE__ */ React49.createElement(IconX, null),
7369
7531
  label: t.remove(it.name),
7370
7532
  onClick: function() {
7371
7533
  remove(it);
@@ -7650,9 +7812,9 @@ window.Aura = (() => {
7650
7812
  }
7651
7813
 
7652
7814
  // src/ThemeStyle.tsx
7653
- var React49 = __toESM(require_react(), 1);
7815
+ var React50 = __toESM(require_react(), 1);
7654
7816
  function ThemeStyle(props) {
7655
- const css = React49.useMemo(
7817
+ const css = React50.useMemo(
7656
7818
  function() {
7657
7819
  try {
7658
7820
  return createTheme({
@@ -7669,11 +7831,11 @@ window.Aura = (() => {
7669
7831
  [props.brand, props.signal, props.primary, props.name, props.selector]
7670
7832
  );
7671
7833
  if (css === null) return null;
7672
- return /* @__PURE__ */ React49.createElement("style", { "data-aura-theme": props.name || props.brand, dangerouslySetInnerHTML: { __html: css } });
7834
+ return /* @__PURE__ */ React50.createElement("style", { "data-aura-theme": props.name || props.brand, dangerouslySetInnerHTML: { __html: css } });
7673
7835
  }
7674
7836
 
7675
7837
  // src/colorScheme.tsx
7676
- var React50 = __toESM(require_react(), 1);
7838
+ var React51 = __toESM(require_react(), 1);
7677
7839
 
7678
7840
  // src/colorSchemeScript.ts
7679
7841
  var DEFAULT_KEY = "aura-color-scheme";
@@ -7690,7 +7852,7 @@ window.Aura = (() => {
7690
7852
 
7691
7853
  // src/colorScheme.tsx
7692
7854
  function ColorSchemeScript(props) {
7693
- return /* @__PURE__ */ React50.createElement(
7855
+ return /* @__PURE__ */ React51.createElement(
7694
7856
  "script",
7695
7857
  {
7696
7858
  "data-aura-color-scheme": "",
@@ -7715,7 +7877,7 @@ window.Aura = (() => {
7715
7877
  function useColorScheme(options) {
7716
7878
  const key = options && options.storageKey || DEFAULT_KEY;
7717
7879
  const fallback = options && options.defaultScheme || "system";
7718
- const subscribe2 = React50.useCallback(
7880
+ const subscribe2 = React51.useCallback(
7719
7881
  function(cb) {
7720
7882
  const mq = window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
7721
7883
  function onSystem() {
@@ -7737,7 +7899,7 @@ window.Aura = (() => {
7737
7899
  },
7738
7900
  [fallback, key]
7739
7901
  );
7740
- const snapshot = React50.useSyncExternalStore(
7902
+ const snapshot = React51.useSyncExternalStore(
7741
7903
  subscribe2,
7742
7904
  function() {
7743
7905
  const s = readScheme(fallback);
@@ -7748,7 +7910,7 @@ window.Aura = (() => {
7748
7910
  }
7749
7911
  );
7750
7912
  const parts = snapshot.split("|");
7751
- const setScheme = React50.useCallback(
7913
+ const setScheme = React51.useCallback(
7752
7914
  function(next) {
7753
7915
  if (!valid(next)) return;
7754
7916
  try {
@@ -7767,14 +7929,14 @@ window.Aura = (() => {
7767
7929
  const cs = useColorScheme(props);
7768
7930
  const names = { light: t.schemeLight, dark: t.schemeDark, system: t.schemeSystem };
7769
7931
  const label = props.label || t.colorScheme;
7770
- return /* @__PURE__ */ React50.createElement(
7932
+ return /* @__PURE__ */ React51.createElement(
7771
7933
  DropdownMenu,
7772
7934
  {
7773
7935
  label,
7774
- trigger: /* @__PURE__ */ React50.createElement(
7936
+ trigger: /* @__PURE__ */ React51.createElement(
7775
7937
  IconButton,
7776
7938
  {
7777
- icon: cs.resolved === "dark" ? /* @__PURE__ */ React50.createElement(IconMoon, null) : /* @__PURE__ */ React50.createElement(IconSun, null),
7939
+ icon: cs.resolved === "dark" ? /* @__PURE__ */ React51.createElement(IconMoon, null) : /* @__PURE__ */ React51.createElement(IconSun, null),
7778
7940
  label: label + ": " + names[cs.scheme]
7779
7941
  }
7780
7942
  ),
@@ -7792,19 +7954,19 @@ window.Aura = (() => {
7792
7954
  }
7793
7955
 
7794
7956
  // src/Badge.tsx
7795
- var React51 = __toESM(require_react(), 1);
7796
- var Badge = React51.forwardRef(function Badge2(props, ref) {
7957
+ var React52 = __toESM(require_react(), 1);
7958
+ var Badge = React52.forwardRef(function Badge2(props, ref) {
7797
7959
  return badgeElement(props, ref);
7798
7960
  });
7799
7961
 
7800
7962
  // src/Progress.tsx
7801
- var React52 = __toESM(require_react(), 1);
7802
- var Progress = React52.forwardRef(function Progress2(props, ref) {
7963
+ var React53 = __toESM(require_react(), 1);
7964
+ var Progress = React53.forwardRef(function Progress2(props, ref) {
7803
7965
  const auto = uid(), id = props.id || auto;
7804
7966
  const max = props.max || 100, det = props.value != null;
7805
7967
  const pct = det ? Math.max(0, Math.min(100, props.value / max * 100)) : 0;
7806
7968
  const shown = props.valueLabel != null ? props.valueLabel : det ? Math.round(pct) + "%" : null;
7807
- return /* @__PURE__ */ React52.createElement(
7969
+ return /* @__PURE__ */ React53.createElement(
7808
7970
  "div",
7809
7971
  {
7810
7972
  ref,
@@ -7815,8 +7977,8 @@ window.Aura = (() => {
7815
7977
  props.className
7816
7978
  )
7817
7979
  },
7818
- props.label || props.showValue && shown ? /* @__PURE__ */ React52.createElement("div", { className: "aura-progress__head" }, props.label ? /* @__PURE__ */ React52.createElement("span", { className: "aura-progress__label", id: id + "-label" }, props.label) : /* @__PURE__ */ React52.createElement("span", null), props.showValue && shown ? /* @__PURE__ */ React52.createElement("span", { className: "aura-progress__value" }, shown) : null) : null,
7819
- /* @__PURE__ */ React52.createElement(
7980
+ props.label || props.showValue && shown ? /* @__PURE__ */ React53.createElement("div", { className: "aura-progress__head" }, props.label ? /* @__PURE__ */ React53.createElement("span", { className: "aura-progress__label", id: id + "-label" }, props.label) : /* @__PURE__ */ React53.createElement("span", null), props.showValue && shown ? /* @__PURE__ */ React53.createElement("span", { className: "aura-progress__value" }, shown) : null) : null,
7981
+ /* @__PURE__ */ React53.createElement(
7820
7982
  "div",
7821
7983
  {
7822
7984
  className: cx("aura-progress__track", !det && "is-indeterminate"),
@@ -7828,21 +7990,21 @@ window.Aura = (() => {
7828
7990
  "aria-valuenow": det ? props.value : void 0,
7829
7991
  "aria-valuetext": det && props.valueLabel != null ? String(props.valueLabel) : void 0
7830
7992
  },
7831
- /* @__PURE__ */ React52.createElement("span", { className: "aura-progress__bar", style: det ? { width: pct + "%" } : void 0 })
7993
+ /* @__PURE__ */ React53.createElement("span", { className: "aura-progress__bar", style: det ? { width: pct + "%" } : void 0 })
7832
7994
  ),
7833
- props.hint ? /* @__PURE__ */ React52.createElement("p", { className: "aura-progress__hint" }, props.hint) : null
7995
+ props.hint ? /* @__PURE__ */ React53.createElement("p", { className: "aura-progress__hint" }, props.hint) : null
7834
7996
  );
7835
7997
  });
7836
7998
 
7837
7999
  // src/Skeleton.tsx
7838
- var React53 = __toESM(require_react(), 1);
7839
- var Skeleton = React53.forwardRef(function Skeleton2(props, ref) {
8000
+ var React54 = __toESM(require_react(), 1);
8001
+ var Skeleton = React54.forwardRef(function Skeleton2(props, ref) {
7840
8002
  const v = props.variant || "text";
7841
8003
  if (v === "text" && (props.lines || 1) > 1) {
7842
8004
  const n3 = props.lines, rows = [];
7843
8005
  for (let i = 0; i < n3; i++)
7844
- rows.push(/* @__PURE__ */ React53.createElement("span", { key: i, className: "aura-skel aura-skel--text", style: { width: i === n3 - 1 ? "60%" : "100%" } }));
7845
- return /* @__PURE__ */ React53.createElement(
8006
+ rows.push(/* @__PURE__ */ React54.createElement("span", { key: i, className: "aura-skel aura-skel--text", style: { width: i === n3 - 1 ? "60%" : "100%" } }));
8007
+ return /* @__PURE__ */ React54.createElement(
7846
8008
  "span",
7847
8009
  {
7848
8010
  ref,
@@ -7860,17 +8022,17 @@ window.Aura = (() => {
7860
8022
  if (v === "circle") {
7861
8023
  style.width = style.height = props.size || props.width || 40;
7862
8024
  }
7863
- return /* @__PURE__ */ React53.createElement("span", { ref, "aria-hidden": true, className: cx("aura-skel", "aura-skel--" + v, props.className), style });
8025
+ return /* @__PURE__ */ React54.createElement("span", { ref, "aria-hidden": true, className: cx("aura-skel", "aura-skel--" + v, props.className), style });
7864
8026
  });
7865
8027
 
7866
8028
  // src/EmptyState.tsx
7867
- var React54 = __toESM(require_react(), 1);
7868
- var EmptyState = React54.forwardRef(function EmptyState2(props, ref) {
8029
+ var React55 = __toESM(require_react(), 1);
8030
+ var EmptyState = React55.forwardRef(function EmptyState2(props, ref) {
7869
8031
  return emptyStateElement(props, ref);
7870
8032
  });
7871
8033
 
7872
8034
  // src/Pagination.tsx
7873
- var React55 = __toESM(require_react(), 1);
8035
+ var React56 = __toESM(require_react(), 1);
7874
8036
  function pageList(page, count, sib) {
7875
8037
  let out = [], lo = Math.max(2, page - sib), hi = Math.min(count - 1, page + sib);
7876
8038
  if (page - sib <= 3) {
@@ -7890,7 +8052,7 @@ window.Aura = (() => {
7890
8052
  if (count > 1) out.push(count);
7891
8053
  return out;
7892
8054
  }
7893
- var Pagination = React55.forwardRef(function Pagination2(props, ref) {
8055
+ var Pagination = React56.forwardRef(function Pagination2(props, ref) {
7894
8056
  const t = useStrings();
7895
8057
  const count = Math.max(1, props.pageCount || 1);
7896
8058
  const st = useMaybeControlled(props.page, props.defaultPage || 1, props.onChange);
@@ -7909,7 +8071,7 @@ window.Aura = (() => {
7909
8071
  },
7910
8072
  extra
7911
8073
  );
7912
- return link ? /* @__PURE__ */ React55.createElement(
8074
+ return link ? /* @__PURE__ */ React56.createElement(
7913
8075
  Link,
7914
8076
  {
7915
8077
  href: link(p),
@@ -7922,7 +8084,7 @@ window.Aura = (() => {
7922
8084
  ...common
7923
8085
  },
7924
8086
  label
7925
- ) : /* @__PURE__ */ React55.createElement(
8087
+ ) : /* @__PURE__ */ React56.createElement(
7926
8088
  "button",
7927
8089
  {
7928
8090
  type: "button",
@@ -7936,7 +8098,7 @@ window.Aura = (() => {
7936
8098
  }
7937
8099
  function arrow(p, icon, label, rel, disabled) {
7938
8100
  if (!link || disabled)
7939
- return /* @__PURE__ */ React55.createElement(
8101
+ return /* @__PURE__ */ React56.createElement(
7940
8102
  IconButton,
7941
8103
  {
7942
8104
  icon,
@@ -7947,7 +8109,7 @@ window.Aura = (() => {
7947
8109
  }
7948
8110
  }
7949
8111
  );
7950
- return /* @__PURE__ */ React55.createElement(
8112
+ return /* @__PURE__ */ React56.createElement(
7951
8113
  Link,
7952
8114
  {
7953
8115
  href: link(p),
@@ -7962,17 +8124,17 @@ window.Aura = (() => {
7962
8124
  }
7963
8125
  }
7964
8126
  },
7965
- /* @__PURE__ */ React55.createElement(Icon, { name: icon, size: "sm" })
8127
+ /* @__PURE__ */ React56.createElement(Icon, { name: icon, size: "sm" })
7966
8128
  );
7967
8129
  }
7968
- return /* @__PURE__ */ React55.createElement("nav", { ref, className: cx("aura-pagination", props.className), "aria-label": props.label || t.pagination }, arrow(page - 1, /* @__PURE__ */ React55.createElement(IconChevronLeft, null), t.prevPage, "prev", page <= 1), /* @__PURE__ */ React55.createElement("ol", { className: "aura-pagination__list" }, pageList(page, count, props.siblingCount == null ? 1 : props.siblingCount).map(function(p) {
7969
- return typeof p === "number" ? /* @__PURE__ */ React55.createElement("li", { key: p }, item(p, p)) : /* @__PURE__ */ React55.createElement("li", { key: p, className: "aura-pagination__gap", "aria-hidden": true }, "\u2026");
7970
- })), /* @__PURE__ */ React55.createElement("span", { className: "aura-pagination__compact", "aria-hidden": true }, t.page(page, count)), arrow(page + 1, /* @__PURE__ */ React55.createElement(IconChevronRight, null), t.nextPage, "next", page >= count));
8130
+ return /* @__PURE__ */ React56.createElement("nav", { ref, className: cx("aura-pagination", props.className), "aria-label": props.label || t.pagination }, arrow(page - 1, /* @__PURE__ */ React56.createElement(IconChevronLeft, null), t.prevPage, "prev", page <= 1), /* @__PURE__ */ React56.createElement("ol", { className: "aura-pagination__list" }, pageList(page, count, props.siblingCount == null ? 1 : props.siblingCount).map(function(p) {
8131
+ return typeof p === "number" ? /* @__PURE__ */ React56.createElement("li", { key: p }, item(p, p)) : /* @__PURE__ */ React56.createElement("li", { key: p, className: "aura-pagination__gap", "aria-hidden": true }, "\u2026");
8132
+ })), /* @__PURE__ */ React56.createElement("span", { className: "aura-pagination__compact", "aria-hidden": true }, t.page(page, count)), arrow(page + 1, /* @__PURE__ */ React56.createElement(IconChevronRight, null), t.nextPage, "next", page >= count));
7971
8133
  });
7972
8134
 
7973
8135
  // src/Accordion.tsx
7974
- var React56 = __toESM(require_react(), 1);
7975
- var Accordion = React56.forwardRef(function Accordion2(props, ref) {
8136
+ var React57 = __toESM(require_react(), 1);
8137
+ var Accordion = React57.forwardRef(function Accordion2(props, ref) {
7976
8138
  const auto = uid(), base = props.id || auto;
7977
8139
  const multiple = props.type === "multiple";
7978
8140
  const st = useMaybeControlled(
@@ -8010,9 +8172,9 @@ window.Aura = (() => {
8010
8172
  n3.focus();
8011
8173
  }
8012
8174
  }
8013
- return /* @__PURE__ */ React56.createElement("div", { ref, className: cx("aura-accordion", props.className), onKeyDown: onKey }, items2.map(function(it) {
8175
+ return /* @__PURE__ */ React57.createElement("div", { ref, className: cx("aura-accordion", props.className), onKeyDown: onKey }, items2.map(function(it) {
8014
8176
  const on = open.indexOf(it.id) >= 0, bid = base + "-btn-" + it.id, pid = base + "-panel-" + it.id;
8015
- return /* @__PURE__ */ React56.createElement("div", { key: it.id, className: cx("aura-accordion__item", on && "is-open") }, /* @__PURE__ */ React56.createElement(HT, { className: "aura-accordion__heading" }, /* @__PURE__ */ React56.createElement(
8177
+ return /* @__PURE__ */ React57.createElement("div", { key: it.id, className: cx("aura-accordion__item", on && "is-open") }, /* @__PURE__ */ React57.createElement(HT, { className: "aura-accordion__heading" }, /* @__PURE__ */ React57.createElement(
8016
8178
  "button",
8017
8179
  {
8018
8180
  type: "button",
@@ -8024,15 +8186,15 @@ window.Aura = (() => {
8024
8186
  toggle(it.id);
8025
8187
  }
8026
8188
  },
8027
- it.icon ? /* @__PURE__ */ React56.createElement(Icon, { name: it.icon, className: "aura-accordion__lead" }) : null,
8028
- /* @__PURE__ */ React56.createElement("span", { className: "aura-accordion__title" }, it.title, it.description ? /* @__PURE__ */ React56.createElement("span", { className: "aura-accordion__desc" }, it.description) : null),
8029
- /* @__PURE__ */ React56.createElement(Icon, { name: /* @__PURE__ */ React56.createElement(IconChevronDown, null), className: "aura-accordion__chevron" })
8030
- )), /* @__PURE__ */ React56.createElement("div", { id: pid, role: "region", "aria-labelledby": bid, className: "aura-accordion__panel", hidden: !on }, it.content));
8189
+ it.icon ? /* @__PURE__ */ React57.createElement(Icon, { name: it.icon, className: "aura-accordion__lead" }) : null,
8190
+ /* @__PURE__ */ React57.createElement("span", { className: "aura-accordion__title" }, it.title, it.description ? /* @__PURE__ */ React57.createElement("span", { className: "aura-accordion__desc" }, it.description) : null),
8191
+ /* @__PURE__ */ React57.createElement(Icon, { name: /* @__PURE__ */ React57.createElement(IconChevronDown, null), className: "aura-accordion__chevron" })
8192
+ )), /* @__PURE__ */ React57.createElement("div", { id: pid, role: "region", "aria-labelledby": bid, className: "aura-accordion__panel", hidden: !on }, it.content));
8031
8193
  }));
8032
8194
  });
8033
8195
 
8034
8196
  // src/Popover.tsx
8035
- var React57 = __toESM(require_react(), 1);
8197
+ var React58 = __toESM(require_react(), 1);
8036
8198
  var import_react_dom12 = __toESM(require_react_dom(), 1);
8037
8199
  function position(anchor, pop, placement) {
8038
8200
  const r = anchor.getBoundingClientRect(), pw = pop.offsetWidth, ph = pop.scrollHeight, vw = window.innerWidth, vh = window.innerHeight, gap = 6;
@@ -8050,15 +8212,15 @@ window.Aura = (() => {
8050
8212
  const left = align === "end" ? r.right - pw : align === "center" ? r.left + r.width / 2 - pw / 2 : r.left;
8051
8213
  return { top: Math.max(8, top), left: Math.max(8, Math.min(left, vw - pw - 8)), side, maxHeight };
8052
8214
  }
8053
- var Popover = React57.forwardRef(function Popover2(props, ref) {
8215
+ var Popover = React58.forwardRef(function Popover2(props, ref) {
8054
8216
  const t = useStrings();
8055
8217
  const density = useDensity();
8056
8218
  const auto = uid(), id = props.id || auto;
8057
8219
  const st = useMaybeControlled(props.open, !!props.defaultOpen, props.onOpenChange);
8058
8220
  const open = !!st[0];
8059
- const wrap = React57.useRef(null), pop = React57.useRef(null), popMerged = useMergedRef(ref, pop);
8060
- const pos = React57.useState(null), mounted = useMounted();
8061
- const inTree = React57.useRef(false);
8221
+ const wrap = React58.useRef(null), pop = React58.useRef(null), popMerged = useMergedRef(ref, pop);
8222
+ const pos = React58.useState(null), mounted = useMounted();
8223
+ const inTree = React58.useRef(false);
8062
8224
  function trigger() {
8063
8225
  return wrap.current && (wrap.current.querySelector('button, [role="button"], a, input') || wrap.current.firstElementChild);
8064
8226
  }
@@ -8085,7 +8247,7 @@ window.Aura = (() => {
8085
8247
  },
8086
8248
  [open, mounted, props.placement]
8087
8249
  );
8088
- React57.useEffect(
8250
+ React58.useEffect(
8089
8251
  function() {
8090
8252
  if (!open || !mounted) return;
8091
8253
  if (props.autoFocus !== false && pop.current) {
@@ -8110,9 +8272,9 @@ window.Aura = (() => {
8110
8272
  },
8111
8273
  [open, mounted]
8112
8274
  );
8113
- const child = React57.Children.only(props.trigger);
8275
+ const child = React58.Children.only(props.trigger);
8114
8276
  const panel = open && mounted ? (0, import_react_dom12.createPortal)(
8115
- /* @__PURE__ */ React57.createElement(
8277
+ /* @__PURE__ */ React58.createElement(
8116
8278
  "div",
8117
8279
  {
8118
8280
  ref: popMerged,
@@ -8142,17 +8304,17 @@ window.Aura = (() => {
8142
8304
  } else trapTab(e, pop.current);
8143
8305
  }
8144
8306
  },
8145
- props.title ? /* @__PURE__ */ React57.createElement("div", { className: "aura-popover__head" }, /* @__PURE__ */ React57.createElement("p", { className: "aura-popover__title", id: id + "-title" }, props.title), /* @__PURE__ */ React57.createElement(
8307
+ props.title ? /* @__PURE__ */ React58.createElement("div", { className: "aura-popover__head" }, /* @__PURE__ */ React58.createElement("p", { className: "aura-popover__title", id: id + "-title" }, props.title), /* @__PURE__ */ React58.createElement(
8146
8308
  IconButton,
8147
8309
  {
8148
- icon: /* @__PURE__ */ React57.createElement(IconX, null),
8310
+ icon: /* @__PURE__ */ React58.createElement(IconX, null),
8149
8311
  label: t.close,
8150
8312
  onClick: function() {
8151
8313
  close(true);
8152
8314
  }
8153
8315
  }
8154
8316
  )) : null,
8155
- /* @__PURE__ */ React57.createElement("div", { className: "aura-popover__body" }, typeof props.children === "function" ? props.children({
8317
+ /* @__PURE__ */ React58.createElement("div", { className: "aura-popover__body" }, typeof props.children === "function" ? props.children({
8156
8318
  close: function() {
8157
8319
  close(true);
8158
8320
  }
@@ -8160,7 +8322,7 @@ window.Aura = (() => {
8160
8322
  ),
8161
8323
  document.body
8162
8324
  ) : null;
8163
- return /* @__PURE__ */ React57.createElement("span", { ref: wrap, className: "aura-popover-anchor" }, React57.cloneElement(child, {
8325
+ return /* @__PURE__ */ React58.createElement("span", { ref: wrap, className: "aura-popover-anchor" }, React58.cloneElement(child, {
8164
8326
  onClick: function(e) {
8165
8327
  if (child.props.onClick) child.props.onClick(e);
8166
8328
  st[1](!open);
@@ -8172,7 +8334,7 @@ window.Aura = (() => {
8172
8334
  });
8173
8335
 
8174
8336
  // src/NumberField.tsx
8175
- var React58 = __toESM(require_react(), 1);
8337
+ var React59 = __toESM(require_react(), 1);
8176
8338
  function decimalsOf(n3) {
8177
8339
  const s = String(n3);
8178
8340
  const i = s.indexOf(".");
@@ -8185,7 +8347,7 @@ window.Aura = (() => {
8185
8347
  if (!/^-?(\d+\.?\d*|\.\d+)$/.test(s)) return NaN;
8186
8348
  return Number(s);
8187
8349
  }
8188
- var NumberField = React58.forwardRef(function NumberField2(props, ref) {
8350
+ var NumberField = React59.forwardRef(function NumberField2(props, ref) {
8189
8351
  const t = useStrings();
8190
8352
  const auto = uid(), id = props.id || auto;
8191
8353
  const step = props.step || 1;
@@ -8196,7 +8358,7 @@ window.Aura = (() => {
8196
8358
  props.onChange
8197
8359
  );
8198
8360
  const value = st[0], setValue = st[1];
8199
- const draftState = React58.useState(null), draft = draftState[0], setDraft = draftState[1];
8361
+ const draftState = React59.useState(null), draft = draftState[0], setDraft = draftState[1];
8200
8362
  function fmt2(n3) {
8201
8363
  if (n3 == null || isNaN(n3)) return "";
8202
8364
  return n3.toLocaleString("en", { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
@@ -8245,7 +8407,7 @@ window.Aura = (() => {
8245
8407
  };
8246
8408
  const valueText = value == null ? void 0 : [affixText(props.prefix), fmt2(value), affixText(props.suffix)].join(" ").trim();
8247
8409
  const stepper = props.stepper !== false && !props.readOnly;
8248
- return /* @__PURE__ */ React58.createElement(
8410
+ return /* @__PURE__ */ React59.createElement(
8249
8411
  Field,
8250
8412
  {
8251
8413
  id,
@@ -8257,7 +8419,7 @@ window.Aura = (() => {
8257
8419
  disabled: props.disabled,
8258
8420
  className: props.className
8259
8421
  },
8260
- /* @__PURE__ */ React58.createElement("div", { className: cx("aura-input aura-number", stepper && "has-stepper") }, props.prefix != null ? /* @__PURE__ */ React58.createElement("span", { className: "aura-number__affix", "aria-hidden": true }, props.prefix) : null, /* @__PURE__ */ React58.createElement(
8422
+ /* @__PURE__ */ React59.createElement("div", { className: cx("aura-input aura-number", stepper && "has-stepper") }, props.prefix != null ? /* @__PURE__ */ React59.createElement("span", { className: "aura-number__affix", "aria-hidden": true }, props.prefix) : null, /* @__PURE__ */ React59.createElement(
8261
8423
  "input",
8262
8424
  {
8263
8425
  ref,
@@ -8304,7 +8466,7 @@ window.Aura = (() => {
8304
8466
  },
8305
8467
  onKeyDown
8306
8468
  }
8307
- ), props.suffix != null ? /* @__PURE__ */ React58.createElement("span", { className: "aura-number__affix", "aria-hidden": true }, props.suffix) : null, stepper ? /* @__PURE__ */ React58.createElement("span", { className: "aura-number__steps" }, /* @__PURE__ */ React58.createElement(
8469
+ ), props.suffix != null ? /* @__PURE__ */ React59.createElement("span", { className: "aura-number__affix", "aria-hidden": true }, props.suffix) : null, stepper ? /* @__PURE__ */ React59.createElement("span", { className: "aura-number__steps" }, /* @__PURE__ */ React59.createElement(
8308
8470
  "button",
8309
8471
  {
8310
8472
  type: "button",
@@ -8320,8 +8482,8 @@ window.Aura = (() => {
8320
8482
  nudge(-step);
8321
8483
  }
8322
8484
  },
8323
- /* @__PURE__ */ React58.createElement(Icon, { name: /* @__PURE__ */ React58.createElement(IconMinus, null) })
8324
- ), /* @__PURE__ */ React58.createElement(
8485
+ /* @__PURE__ */ React59.createElement(Icon, { name: /* @__PURE__ */ React59.createElement(IconMinus, null) })
8486
+ ), /* @__PURE__ */ React59.createElement(
8325
8487
  "button",
8326
8488
  {
8327
8489
  type: "button",
@@ -8337,14 +8499,14 @@ window.Aura = (() => {
8337
8499
  nudge(step);
8338
8500
  }
8339
8501
  },
8340
- /* @__PURE__ */ React58.createElement(Icon, { name: /* @__PURE__ */ React58.createElement(IconPlus, null) })
8502
+ /* @__PURE__ */ React59.createElement(Icon, { name: /* @__PURE__ */ React59.createElement(IconPlus, null) })
8341
8503
  )) : null)
8342
8504
  );
8343
8505
  });
8344
8506
 
8345
8507
  // src/Stepper.tsx
8346
- var React59 = __toESM(require_react(), 1);
8347
- var Stepper = React59.forwardRef(function Stepper2(props, ref) {
8508
+ var React60 = __toESM(require_react(), 1);
8509
+ var Stepper = React60.forwardRef(function Stepper2(props, ref) {
8348
8510
  const t = useStrings();
8349
8511
  const steps = props.steps || [];
8350
8512
  let at = -1;
@@ -8354,26 +8516,26 @@ window.Aura = (() => {
8354
8516
  if (at < 0) at = 0;
8355
8517
  const vertical = props.orientation === "vertical";
8356
8518
  const cur = steps[at];
8357
- return /* @__PURE__ */ React59.createElement(
8519
+ return /* @__PURE__ */ React60.createElement(
8358
8520
  "nav",
8359
8521
  {
8360
8522
  ref,
8361
8523
  "aria-label": props.label,
8362
8524
  className: cx("aura-stepper", vertical ? "aura-stepper--vertical" : "aura-stepper--horizontal", props.className)
8363
8525
  },
8364
- /* @__PURE__ */ React59.createElement("ol", { className: "aura-stepper__list" }, steps.map(function(s, i) {
8526
+ /* @__PURE__ */ React60.createElement("ol", { className: "aura-stepper__list" }, steps.map(function(s, i) {
8365
8527
  const state = i < at ? "done" : i === at ? "current" : "upcoming";
8366
- const marker = /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__marker", "aria-hidden": true }, state === "done" ? /* @__PURE__ */ React59.createElement(Icon, { name: /* @__PURE__ */ React59.createElement(IconCheck, null) }) : i + 1);
8367
- const text2 = /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__text" }, /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__label" }, s.label, state === "done" ? /* @__PURE__ */ React59.createElement("span", { className: "aura-sr-only" }, ", " + t.stepDone) : null), s.description ? /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__desc" }, s.description) : null);
8528
+ const marker = /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__marker", "aria-hidden": true }, state === "done" ? /* @__PURE__ */ React60.createElement(Icon, { name: /* @__PURE__ */ React60.createElement(IconCheck, null) }) : i + 1);
8529
+ const text2 = /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__text" }, /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__label" }, s.label, state === "done" ? /* @__PURE__ */ React60.createElement("span", { className: "aura-sr-only" }, ", " + t.stepDone) : null), s.description ? /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__desc" }, s.description) : null);
8368
8530
  const clickable = state === "done" && !!props.onStepClick;
8369
- return /* @__PURE__ */ React59.createElement(
8531
+ return /* @__PURE__ */ React60.createElement(
8370
8532
  "li",
8371
8533
  {
8372
8534
  key: s.id,
8373
8535
  className: cx("aura-stepper__item", "is-" + state),
8374
8536
  "aria-current": state === "current" ? "step" : void 0
8375
8537
  },
8376
- clickable ? /* @__PURE__ */ React59.createElement(
8538
+ clickable ? /* @__PURE__ */ React60.createElement(
8377
8539
  "button",
8378
8540
  {
8379
8541
  type: "button",
@@ -8384,19 +8546,19 @@ window.Aura = (() => {
8384
8546
  },
8385
8547
  marker,
8386
8548
  text2
8387
- ) : /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__step" }, marker, text2)
8549
+ ) : /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__step" }, marker, text2)
8388
8550
  );
8389
8551
  })),
8390
- !vertical && cur ? /* @__PURE__ */ React59.createElement("p", { className: "aura-stepper__compact", "aria-hidden": true }, /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__count" }, t.stepOf(at + 1, steps.length)), /* @__PURE__ */ React59.createElement("span", { className: "aura-stepper__compact-label" }, cur.label)) : null
8552
+ !vertical && cur ? /* @__PURE__ */ React60.createElement("p", { className: "aura-stepper__compact", "aria-hidden": true }, /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__count" }, t.stepOf(at + 1, steps.length)), /* @__PURE__ */ React60.createElement("span", { className: "aura-stepper__compact-label" }, cur.label)) : null
8391
8553
  );
8392
8554
  });
8393
8555
 
8394
8556
  // src/SegmentedControl.tsx
8395
- var React60 = __toESM(require_react(), 1);
8557
+ var React61 = __toESM(require_react(), 1);
8396
8558
  function toOpt2(o) {
8397
8559
  return typeof o === "object" ? o : { value: o, label: o };
8398
8560
  }
8399
- var SegmentedControl = React60.forwardRef(
8561
+ var SegmentedControl = React61.forwardRef(
8400
8562
  function SegmentedControl2(props, ref) {
8401
8563
  const options = (props.options || []).map(toOpt2);
8402
8564
  const firstEnabled = options.filter(function(o) {
@@ -8409,7 +8571,7 @@ window.Aura = (() => {
8409
8571
  );
8410
8572
  const value = st[0], setValue = st[1];
8411
8573
  const auto = uid(), id = props.id || auto;
8412
- const refs = React60.useRef([]);
8574
+ const refs = React61.useRef([]);
8413
8575
  const selIdx = options.findIndex(function(o) {
8414
8576
  return o.value === value;
8415
8577
  });
@@ -8442,7 +8604,7 @@ window.Aura = (() => {
8442
8604
  move(options.length, -1);
8443
8605
  }
8444
8606
  }
8445
- return /* @__PURE__ */ React60.createElement(
8607
+ return /* @__PURE__ */ React61.createElement(
8446
8608
  "div",
8447
8609
  {
8448
8610
  ref,
@@ -8461,7 +8623,7 @@ window.Aura = (() => {
8461
8623
  options.map(function(o, i) {
8462
8624
  const on = o.value === value;
8463
8625
  const off = props.disabled || o.disabled;
8464
- return /* @__PURE__ */ React60.createElement(
8626
+ return /* @__PURE__ */ React61.createElement(
8465
8627
  "button",
8466
8628
  {
8467
8629
  key: o.value,
@@ -8483,8 +8645,8 @@ window.Aura = (() => {
8483
8645
  onKeyDown(e, i);
8484
8646
  }
8485
8647
  },
8486
- o.icon ? /* @__PURE__ */ React60.createElement(Icon, { name: o.icon }) : null,
8487
- o.iconOnly ? null : /* @__PURE__ */ React60.createElement("span", null, o.label)
8648
+ o.icon ? /* @__PURE__ */ React61.createElement(Icon, { name: o.icon }) : null,
8649
+ o.iconOnly ? null : /* @__PURE__ */ React61.createElement("span", null, o.label)
8488
8650
  );
8489
8651
  })
8490
8652
  );