@platned/ui 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1644,7 +1644,7 @@ var SelectControl = forwardRef7(
1644
1644
  "aria-required": field["aria-required"],
1645
1645
  "aria-invalid": field["aria-invalid"],
1646
1646
  style: { ...floatingStyles, width: "var(--panel-anchor-width)" },
1647
- className: clsx14("z-dropdown", OVERLAY_PANEL, OVERLAY_PANEL_SCROLL),
1647
+ className: clsx14("z-popover", OVERLAY_PANEL, OVERLAY_PANEL_SCROLL),
1648
1648
  ...roving.containerProps,
1649
1649
  onKeyDown: (event) => {
1650
1650
  roving.containerProps.onKeyDown(event);
@@ -2835,7 +2835,7 @@ function Combobox({
2835
2835
  role: "listbox",
2836
2836
  "aria-label": label,
2837
2837
  style: { ...floatingStyles, width: "var(--panel-anchor-width)" },
2838
- className: clsx25("z-dropdown", OVERLAY_PANEL, OVERLAY_PANEL_SCROLL),
2838
+ className: clsx25("z-popover", OVERLAY_PANEL, OVERLAY_PANEL_SCROLL),
2839
2839
  children: [
2840
2840
  matches.length === 0 && /* @__PURE__ */ jsx22("p", { className: "px-2.5 py-2 text-body-xs text-default-secondary", children: emptyMessage }),
2841
2841
  matches.map((option, index) => {
@@ -2929,11 +2929,128 @@ function RoleComboBox({
2929
2929
  );
2930
2930
  }
2931
2931
 
2932
+ // src/components/forms/country-select.tsx
2933
+ import { useMemo as useMemo3 } from "react";
2934
+ import { jsx as jsx24 } from "react/jsx-runtime";
2935
+ var ISO_3166_ALPHA_2 = "AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW";
2936
+ var COUNTRY_CODES = ISO_3166_ALPHA_2.split(" ");
2937
+ function countryOptions(codes = COUNTRY_CODES, locale) {
2938
+ let names = null;
2939
+ try {
2940
+ names = new Intl.DisplayNames(locale ? [locale] : void 0, { type: "region" });
2941
+ } catch {
2942
+ }
2943
+ return codes.map((code) => ({ value: code, label: names?.of(code) ?? code, description: code })).sort((a, b) => a.label.localeCompare(b.label, locale));
2944
+ }
2945
+ function CountrySelect({
2946
+ countries,
2947
+ locale,
2948
+ placeholder = "Select a country\u2026",
2949
+ emptyMessage = "No countries match",
2950
+ ...props
2951
+ }) {
2952
+ const keep = [props.value, props.defaultValue].filter((v) => !!v);
2953
+ const keepKey = keep.join("|");
2954
+ const options = useMemo3(() => {
2955
+ const list = countryOptions(countries, locale);
2956
+ const missing = keep.filter((v) => !list.some((o) => o.value === v));
2957
+ return [...countryOptions(missing, locale), ...list];
2958
+ }, [countries, locale, keepKey]);
2959
+ return /* @__PURE__ */ jsx24(
2960
+ Combobox,
2961
+ {
2962
+ ...props,
2963
+ options,
2964
+ placeholder,
2965
+ emptyMessage,
2966
+ filter: (option, query) => {
2967
+ const q = query.trim().toLowerCase();
2968
+ return option.label.toLowerCase().includes(q) || option.value.toLowerCase() === q;
2969
+ }
2970
+ }
2971
+ );
2972
+ }
2973
+
2974
+ // src/components/forms/time-zone-select.tsx
2975
+ import { useMemo as useMemo4 } from "react";
2976
+ import { jsx as jsx25 } from "react/jsx-runtime";
2977
+ var RENAMED = {
2978
+ "America/Godthab": "America/Nuuk",
2979
+ "Asia/Calcutta": "Asia/Kolkata",
2980
+ "Asia/Katmandu": "Asia/Kathmandu",
2981
+ "Asia/Rangoon": "Asia/Yangon",
2982
+ "Asia/Saigon": "Asia/Ho_Chi_Minh",
2983
+ "Atlantic/Faeroe": "Atlantic/Faroe",
2984
+ "Europe/Kiev": "Europe/Kyiv",
2985
+ "Pacific/Enderbury": "Pacific/Kanton",
2986
+ "Pacific/Ponape": "Pacific/Pohnpei",
2987
+ "Pacific/Truk": "Pacific/Chuuk"
2988
+ };
2989
+ var currentZoneName = (zone) => RENAMED[zone] ?? zone;
2990
+ function supportedTimeZones() {
2991
+ const intl = Intl;
2992
+ try {
2993
+ const zones = intl.supportedValuesOf?.("timeZone");
2994
+ if (zones && zones.length > 0) return zones;
2995
+ } catch {
2996
+ }
2997
+ return ["UTC"];
2998
+ }
2999
+ function timeZoneOffset(timeZone, at = /* @__PURE__ */ new Date()) {
3000
+ try {
3001
+ const part = new Intl.DateTimeFormat("en-US", { timeZone, timeZoneName: "longOffset" }).formatToParts(at).find((p) => p.type === "timeZoneName")?.value;
3002
+ const match = part?.match(/GMT([+-])(\d{2}):(\d{2})/);
3003
+ if (!match) return { label: "+00:00", minutes: 0 };
3004
+ const [, sign, hh, mm] = match;
3005
+ const minutes = (Number(hh) * 60 + Number(mm)) * (sign === "-" ? -1 : 1);
3006
+ return { label: `${sign}${hh}:${mm}`, minutes };
3007
+ } catch {
3008
+ return { label: "+00:00", minutes: 0 };
3009
+ }
3010
+ }
3011
+ function timeZoneOptions(zones = supportedTimeZones(), at = /* @__PURE__ */ new Date()) {
3012
+ return Array.from(new Set(zones.map(currentZoneName))).map((zone) => ({ zone, minutes: timeZoneOffset(zone, at).minutes })).sort((a, b) => a.minutes - b.minutes || a.zone.localeCompare(b.zone)).map(({ zone }) => zoneOption(zone, at));
3013
+ }
3014
+ var zoneOption = (zone, at) => ({
3015
+ value: zone,
3016
+ label: `(UTC${timeZoneOffset(zone, at).label}) ${zone.replace(/_/g, " ")}`
3017
+ });
3018
+ function TimeZoneSelect({
3019
+ timeZones,
3020
+ at,
3021
+ placeholder = "Select a time zone\u2026",
3022
+ emptyMessage = "No time zones match",
3023
+ ...props
3024
+ }) {
3025
+ const atTime = at?.getTime();
3026
+ const keep = [props.value, props.defaultValue].filter((v) => !!v);
3027
+ const keepKey = keep.join("|");
3028
+ const options = useMemo4(() => {
3029
+ const when = atTime === void 0 ? /* @__PURE__ */ new Date() : new Date(atTime);
3030
+ const list = timeZoneOptions(timeZones, when);
3031
+ const missing = keep.filter((v) => !list.some((o) => o.value === v));
3032
+ return [...missing.map((v) => zoneOption(v, when)), ...list];
3033
+ }, [timeZones, atTime, keepKey]);
3034
+ return /* @__PURE__ */ jsx25(
3035
+ Combobox,
3036
+ {
3037
+ ...props,
3038
+ options,
3039
+ placeholder,
3040
+ emptyMessage,
3041
+ filter: (option, query) => {
3042
+ const q = query.trim().toLowerCase();
3043
+ return option.label.toLowerCase().includes(q) || option.value.toLowerCase().includes(q);
3044
+ }
3045
+ }
3046
+ );
3047
+ }
3048
+
2932
3049
  // src/components/forms/command.tsx
2933
- import { useEffect as useEffect7, useId as useId6, useMemo as useMemo3, useRef as useRef11, useState as useState9 } from "react";
3050
+ import { useEffect as useEffect7, useId as useId6, useMemo as useMemo5, useRef as useRef11, useState as useState9 } from "react";
2934
3051
  import clsx26 from "clsx";
2935
3052
  import { LuSearch } from "react-icons/lu";
2936
- import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
3053
+ import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
2937
3054
  function Command({
2938
3055
  items,
2939
3056
  label = "Command palette",
@@ -2949,7 +3066,7 @@ function Command({
2949
3066
  const listboxId = `${baseId}-listbox`;
2950
3067
  const optionId = (index) => `${baseId}-option-${index}`;
2951
3068
  const listRef = useRef11(null);
2952
- const matches = useMemo3(() => {
3069
+ const matches = useMemo5(() => {
2953
3070
  if (!query) return items;
2954
3071
  const q = query.toLowerCase();
2955
3072
  return items.filter((item) => {
@@ -2986,8 +3103,8 @@ function Command({
2986
3103
  let renderedGroup;
2987
3104
  return /* @__PURE__ */ jsxs18("div", { className: clsx26("flex w-full flex-col", className), children: [
2988
3105
  /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 border-b border-default px-3.5 py-3", children: [
2989
- /* @__PURE__ */ jsx24(LuSearch, { "aria-hidden": true, className: "size-4 shrink-0 text-icon-default-secondary" }),
2990
- /* @__PURE__ */ jsx24(
3106
+ /* @__PURE__ */ jsx26(LuSearch, { "aria-hidden": true, className: "size-4 shrink-0 text-icon-default-secondary" }),
3107
+ /* @__PURE__ */ jsx26(
2991
3108
  "input",
2992
3109
  {
2993
3110
  role: "combobox",
@@ -3043,13 +3160,13 @@ function Command({
3043
3160
  "aria-label": label,
3044
3161
  className: clsx26("max-h-80 overflow-y-auto p-1.5", SCROLLBAR_CLASSES),
3045
3162
  children: [
3046
- matches.length === 0 && /* @__PURE__ */ jsx24("p", { className: "px-2.5 py-6 text-center text-body-sm text-default-secondary", children: emptyMessage }),
3163
+ matches.length === 0 && /* @__PURE__ */ jsx26("p", { className: "px-2.5 py-6 text-center text-body-sm text-default-secondary", children: emptyMessage }),
3047
3164
  matches.map((item, index) => {
3048
3165
  const isActive = index === activeIndex;
3049
3166
  const groupHeading = item.group !== renderedGroup ? item.group : void 0;
3050
3167
  renderedGroup = item.group;
3051
3168
  return /* @__PURE__ */ jsxs18("div", { children: [
3052
- groupHeading && /* @__PURE__ */ jsx24(
3169
+ groupHeading && /* @__PURE__ */ jsx26(
3053
3170
  "div",
3054
3171
  {
3055
3172
  role: "presentation",
@@ -3074,12 +3191,12 @@ function Command({
3074
3191
  item.disabled ? "cursor-not-allowed text-disabled" : isActive ? clsx26(OVERLAY_ITEM_ACTIVE, "text-default") : "text-default"
3075
3192
  ),
3076
3193
  children: [
3077
- item.icon && /* @__PURE__ */ jsx24("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: item.icon }),
3194
+ item.icon && /* @__PURE__ */ jsx26("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: item.icon }),
3078
3195
  /* @__PURE__ */ jsxs18("span", { className: "min-w-0 flex-1", children: [
3079
- /* @__PURE__ */ jsx24("span", { className: "block truncate", children: item.label }),
3080
- item.description && /* @__PURE__ */ jsx24("span", { className: "block truncate text-body-tiny text-default-secondary", children: item.description })
3196
+ /* @__PURE__ */ jsx26("span", { className: "block truncate", children: item.label }),
3197
+ item.description && /* @__PURE__ */ jsx26("span", { className: "block truncate text-body-tiny text-default-secondary", children: item.description })
3081
3198
  ] }),
3082
- item.shortcut && /* @__PURE__ */ jsx24("span", { className: "ml-auto flex shrink-0 items-center gap-1", children: item.shortcut })
3199
+ item.shortcut && /* @__PURE__ */ jsx26("span", { className: "ml-auto flex shrink-0 items-center gap-1", children: item.shortcut })
3083
3200
  ]
3084
3201
  }
3085
3202
  )
@@ -3088,13 +3205,13 @@ function Command({
3088
3205
  ]
3089
3206
  }
3090
3207
  ),
3091
- /* @__PURE__ */ jsx24("span", { "aria-live": "polite", className: "sr-only", children: `${matches.length} ${matches.length === 1 ? "result" : "results"}` })
3208
+ /* @__PURE__ */ jsx26("span", { "aria-live": "polite", className: "sr-only", children: `${matches.length} ${matches.length === 1 ? "result" : "results"}` })
3092
3209
  ] });
3093
3210
  }
3094
3211
 
3095
3212
  // src/components/status/status-badge.tsx
3096
3213
  import clsx27 from "clsx";
3097
- import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
3214
+ import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
3098
3215
  var TONE_STYLES2 = {
3099
3216
  neutral: "bg-status-neutral text-status-neutral",
3100
3217
  info: "bg-status-info text-status-info",
@@ -3135,7 +3252,7 @@ function StatusBadge({
3135
3252
  className
3136
3253
  ),
3137
3254
  children: [
3138
- icon ? /* @__PURE__ */ jsx25("span", { className: "shrink-0", children: icon }) : dot && /* @__PURE__ */ jsx25("span", { className: clsx27("size-1.5 shrink-0 rounded-full", DOT_STYLES[tone]) }),
3255
+ icon ? /* @__PURE__ */ jsx27("span", { className: "shrink-0", children: icon }) : dot && /* @__PURE__ */ jsx27("span", { className: clsx27("size-1.5 shrink-0 rounded-full", DOT_STYLES[tone]) }),
3139
3256
  label
3140
3257
  ]
3141
3258
  }
@@ -3144,7 +3261,7 @@ function StatusBadge({
3144
3261
 
3145
3262
  // src/components/status/status-dot.tsx
3146
3263
  import clsx28 from "clsx";
3147
- import { jsx as jsx26 } from "react/jsx-runtime";
3264
+ import { jsx as jsx28 } from "react/jsx-runtime";
3148
3265
  var dotTones = {
3149
3266
  brand: "bg-brand",
3150
3267
  positive: "bg-positive",
@@ -3154,7 +3271,7 @@ var dotTones = {
3154
3271
  default: "bg-default-tertiary"
3155
3272
  };
3156
3273
  function StatusDot({ tone = "default", color, className }) {
3157
- return /* @__PURE__ */ jsx26(
3274
+ return /* @__PURE__ */ jsx28(
3158
3275
  "span",
3159
3276
  {
3160
3277
  className: clsx28("inline-block size-1.5 shrink-0 rounded-full", !color && dotTones[tone], className),
@@ -3165,7 +3282,7 @@ function StatusDot({ tone = "default", color, className }) {
3165
3282
 
3166
3283
  // src/components/status/status-chip.tsx
3167
3284
  import clsx29 from "clsx";
3168
- import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
3285
+ import { jsx as jsx29, jsxs as jsxs20 } from "react/jsx-runtime";
3169
3286
  function StatusChip({ label, count, tone = "default", dotColor, bg, className }) {
3170
3287
  return /* @__PURE__ */ jsxs20(
3171
3288
  "span",
@@ -3177,9 +3294,9 @@ function StatusChip({ label, count, tone = "default", dotColor, bg, className })
3177
3294
  ),
3178
3295
  style: bg ? { backgroundColor: bg } : void 0,
3179
3296
  children: [
3180
- /* @__PURE__ */ jsx27(StatusDot, { tone, color: dotColor }),
3181
- /* @__PURE__ */ jsx27("span", { className: "text-body-xs font-medium text-default", children: count }),
3182
- /* @__PURE__ */ jsx27("span", { className: "text-body-xs text-default-secondary", children: label })
3297
+ /* @__PURE__ */ jsx29(StatusDot, { tone, color: dotColor }),
3298
+ /* @__PURE__ */ jsx29("span", { className: "text-body-xs font-medium text-default", children: count }),
3299
+ /* @__PURE__ */ jsx29("span", { className: "text-body-xs text-default-secondary", children: label })
3183
3300
  ]
3184
3301
  }
3185
3302
  );
@@ -3187,7 +3304,7 @@ function StatusChip({ label, count, tone = "default", dotColor, bg, className })
3187
3304
 
3188
3305
  // src/components/status/count-badge.tsx
3189
3306
  import clsx30 from "clsx";
3190
- import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
3307
+ import { jsx as jsx30, jsxs as jsxs21 } from "react/jsx-runtime";
3191
3308
  function CountBadge({ count, label, tone = "positive", className }) {
3192
3309
  return /* @__PURE__ */ jsxs21(
3193
3310
  "span",
@@ -3197,9 +3314,9 @@ function CountBadge({ count, label, tone = "positive", className }) {
3197
3314
  className
3198
3315
  ),
3199
3316
  children: [
3200
- /* @__PURE__ */ jsx28(StatusDot, { tone }),
3317
+ /* @__PURE__ */ jsx30(StatusDot, { tone }),
3201
3318
  count,
3202
- label && /* @__PURE__ */ jsx28("span", { className: "text-default-secondary", children: label })
3319
+ label && /* @__PURE__ */ jsx30("span", { className: "text-default-secondary", children: label })
3203
3320
  ]
3204
3321
  }
3205
3322
  );
@@ -3207,7 +3324,7 @@ function CountBadge({ count, label, tone = "positive", className }) {
3207
3324
 
3208
3325
  // src/components/status/tag-pill.tsx
3209
3326
  import clsx31 from "clsx";
3210
- import { jsx as jsx29 } from "react/jsx-runtime";
3327
+ import { jsx as jsx31 } from "react/jsx-runtime";
3211
3328
  var toneStyles = {
3212
3329
  default: "bg-default-secondary text-default-secondary",
3213
3330
  brand: "bg-brand-tertiary text-brand",
@@ -3216,7 +3333,7 @@ var toneStyles = {
3216
3333
  danger: "bg-danger-tertiary text-danger"
3217
3334
  };
3218
3335
  function TagPill({ label, tone = "default", bg, color, className }) {
3219
- return /* @__PURE__ */ jsx29(
3336
+ return /* @__PURE__ */ jsx31(
3220
3337
  "span",
3221
3338
  {
3222
3339
  className: clsx31(
@@ -3235,7 +3352,7 @@ function TagPill({ label, tone = "default", bg, color, className }) {
3235
3352
 
3236
3353
  // src/components/status/trail-chip.tsx
3237
3354
  import clsx32 from "clsx";
3238
- import { jsx as jsx30, jsxs as jsxs22 } from "react/jsx-runtime";
3355
+ import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
3239
3356
  var DOT = {
3240
3357
  neutral: "bg-status-dot-neutral",
3241
3358
  info: "bg-status-dot-info",
@@ -3254,22 +3371,22 @@ function TrailChip({ label, value, tone = "info", dotColor, className }) {
3254
3371
  className
3255
3372
  ),
3256
3373
  children: [
3257
- /* @__PURE__ */ jsx30(
3374
+ /* @__PURE__ */ jsx32(
3258
3375
  "span",
3259
3376
  {
3260
3377
  className: clsx32("size-1.5 shrink-0 rounded-full", !dotColor && DOT[tone]),
3261
3378
  style: dotColor ? { backgroundColor: dotColor } : void 0
3262
3379
  }
3263
3380
  ),
3264
- /* @__PURE__ */ jsx30("span", { className: "text-body-tiny font-semibold uppercase tracking-wide text-default-secondary", children: label }),
3265
- /* @__PURE__ */ jsx30("span", { className: "text-body-xs font-medium text-default", children: value })
3381
+ /* @__PURE__ */ jsx32("span", { className: "text-body-tiny font-semibold uppercase tracking-wide text-default-secondary", children: label }),
3382
+ /* @__PURE__ */ jsx32("span", { className: "text-body-xs font-medium text-default", children: value })
3266
3383
  ]
3267
3384
  }
3268
3385
  );
3269
3386
  }
3270
3387
 
3271
3388
  // src/components/status/user-status-pill.tsx
3272
- import { jsx as jsx31 } from "react/jsx-runtime";
3389
+ import { jsx as jsx33 } from "react/jsx-runtime";
3273
3390
  var STATUS_META = {
3274
3391
  active: { label: "Active", tone: "positive" },
3275
3392
  // `caution` (pale yellow), not `warning` (orange) — Pending is one step below a
@@ -3279,13 +3396,13 @@ var STATUS_META = {
3279
3396
  };
3280
3397
  function UserStatusPill({ status }) {
3281
3398
  const { label, tone } = STATUS_META[status];
3282
- return /* @__PURE__ */ jsx31(StatusBadge, { label, tone });
3399
+ return /* @__PURE__ */ jsx33(StatusBadge, { label, tone });
3283
3400
  }
3284
3401
 
3285
3402
  // src/components/status/check-indicator.tsx
3286
3403
  import clsx33 from "clsx";
3287
3404
  import { LuCheck as LuCheck5, LuCircleAlert, LuLoaderCircle, LuMinus, LuX as LuX2 } from "react-icons/lu";
3288
- import { jsx as jsx32 } from "react/jsx-runtime";
3405
+ import { jsx as jsx34 } from "react/jsx-runtime";
3289
3406
  var STATUS_STYLES = {
3290
3407
  passed: "bg-status-check-passed border-status-check-passed text-status-check-passed",
3291
3408
  in_progress: "bg-status-check-progress border-status-check-progress text-status-check-progress",
@@ -3297,21 +3414,21 @@ var STATUS_STYLES = {
3297
3414
  function StatusGlyph({ status }) {
3298
3415
  switch (status) {
3299
3416
  case "passed":
3300
- return /* @__PURE__ */ jsx32(LuCheck5, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3417
+ return /* @__PURE__ */ jsx34(LuCheck5, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3301
3418
  case "failed":
3302
- return /* @__PURE__ */ jsx32(LuX2, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3419
+ return /* @__PURE__ */ jsx34(LuX2, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3303
3420
  case "waived":
3304
- return /* @__PURE__ */ jsx32(LuMinus, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3421
+ return /* @__PURE__ */ jsx34(LuMinus, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3305
3422
  case "in_progress":
3306
- return /* @__PURE__ */ jsx32(LuLoaderCircle, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3423
+ return /* @__PURE__ */ jsx34(LuLoaderCircle, { className: "size-3", strokeWidth: 3, "aria-hidden": true });
3307
3424
  case "action_required":
3308
- return /* @__PURE__ */ jsx32(LuCircleAlert, { className: "size-3.5", strokeWidth: 2.5, "aria-hidden": true });
3425
+ return /* @__PURE__ */ jsx34(LuCircleAlert, { className: "size-3.5", strokeWidth: 2.5, "aria-hidden": true });
3309
3426
  case "pending":
3310
3427
  return null;
3311
3428
  }
3312
3429
  }
3313
3430
  function CheckIndicator({ status, label, className }) {
3314
- return /* @__PURE__ */ jsx32(
3431
+ return /* @__PURE__ */ jsx34(
3315
3432
  "div",
3316
3433
  {
3317
3434
  className: clsx33(
@@ -3322,14 +3439,14 @@ function CheckIndicator({ status, label, className }) {
3322
3439
  role: label ? "img" : void 0,
3323
3440
  "aria-label": label,
3324
3441
  "aria-hidden": label ? void 0 : true,
3325
- children: /* @__PURE__ */ jsx32(StatusGlyph, { status })
3442
+ children: /* @__PURE__ */ jsx34(StatusGlyph, { status })
3326
3443
  }
3327
3444
  );
3328
3445
  }
3329
3446
 
3330
3447
  // src/components/status/entity-icon-badge.tsx
3331
3448
  import clsx34 from "clsx";
3332
- import { jsx as jsx33 } from "react/jsx-runtime";
3449
+ import { jsx as jsx35 } from "react/jsx-runtime";
3333
3450
  var sizeStyles4 = {
3334
3451
  sm: "size-8",
3335
3452
  md: "size-10"
@@ -3347,7 +3464,7 @@ var toneStyles2 = {
3347
3464
  neutral: "bg-neutral-tertiary text-icon-neutral"
3348
3465
  };
3349
3466
  function EntityIconBadge({ size: size2 = "sm", tone = "default", shape = "square", bg, iconColor, children, className }) {
3350
- return /* @__PURE__ */ jsx33(
3467
+ return /* @__PURE__ */ jsx35(
3351
3468
  "span",
3352
3469
  {
3353
3470
  className: clsx34(
@@ -3373,7 +3490,7 @@ import clsx36 from "clsx";
3373
3490
  // src/components/forms/check-control.tsx
3374
3491
  import clsx35 from "clsx";
3375
3492
  import { LuCheck as LuCheck6, LuMinus as LuMinus2 } from "react-icons/lu";
3376
- import { jsx as jsx34 } from "react/jsx-runtime";
3493
+ import { jsx as jsx36 } from "react/jsx-runtime";
3377
3494
  var CHECK_SIZE = {
3378
3495
  sm: { box: "size-4", glyph: "size-2.5", dot: "size-1.5" },
3379
3496
  md: { box: "size-[18px]", glyph: "size-3", dot: "size-2" }
@@ -3388,7 +3505,7 @@ function CheckControl({
3388
3505
  }) {
3389
3506
  const s = CHECK_SIZE[size2];
3390
3507
  const on = checked || indeterminate;
3391
- return /* @__PURE__ */ jsx34(
3508
+ return /* @__PURE__ */ jsx36(
3392
3509
  "span",
3393
3510
  {
3394
3511
  "aria-hidden": true,
@@ -3401,13 +3518,13 @@ function CheckControl({
3401
3518
  "peer-focus-visible:ring-2 peer-focus-visible:ring-brand peer-focus-visible:ring-offset-1 peer-focus-visible:ring-offset-default",
3402
3519
  disabled ? on ? "border-disabled bg-disabled text-disabled-on-disabled" : "border-disabled bg-disabled" : on ? "border-brand-emphasis bg-brand text-brand-on-brand" : invalid ? "border-danger bg-default" : "border-default-secondary bg-default"
3403
3520
  ),
3404
- children: type === "checkbox" ? indeterminate ? /* @__PURE__ */ jsx34(LuMinus2, { className: s.glyph, strokeWidth: 3 }) : checked ? /* @__PURE__ */ jsx34(LuCheck6, { className: s.glyph, strokeWidth: 3 }) : null : checked ? /* @__PURE__ */ jsx34("span", { className: clsx35("rounded-full bg-current", s.dot) }) : null
3521
+ children: type === "checkbox" ? indeterminate ? /* @__PURE__ */ jsx36(LuMinus2, { className: s.glyph, strokeWidth: 3 }) : checked ? /* @__PURE__ */ jsx36(LuCheck6, { className: s.glyph, strokeWidth: 3 }) : null : checked ? /* @__PURE__ */ jsx36("span", { className: clsx35("rounded-full bg-current", s.dot) }) : null
3405
3522
  }
3406
3523
  );
3407
3524
  }
3408
3525
 
3409
3526
  // src/components/forms/checkbox.tsx
3410
- import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
3527
+ import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
3411
3528
  var LABEL_TEXT2 = {
3412
3529
  sm: "text-body-tiny",
3413
3530
  md: "text-body-xs"
@@ -3448,7 +3565,7 @@ var Checkbox = forwardRef12(function Checkbox2({
3448
3565
  disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer"
3449
3566
  ),
3450
3567
  children: [
3451
- /* @__PURE__ */ jsx35(
3568
+ /* @__PURE__ */ jsx37(
3452
3569
  "input",
3453
3570
  {
3454
3571
  ref: composeRefs(inputRef, ref),
@@ -3463,7 +3580,7 @@ var Checkbox = forwardRef12(function Checkbox2({
3463
3580
  ...props
3464
3581
  }
3465
3582
  ),
3466
- /* @__PURE__ */ jsx35(
3583
+ /* @__PURE__ */ jsx37(
3467
3584
  CheckControl,
3468
3585
  {
3469
3586
  type: "checkbox",
@@ -3474,11 +3591,11 @@ var Checkbox = forwardRef12(function Checkbox2({
3474
3591
  size: size2
3475
3592
  }
3476
3593
  ),
3477
- label && /* @__PURE__ */ jsx35("span", { className: clsx36(LABEL_TEXT2[size2], "text-default"), children: label })
3594
+ label && /* @__PURE__ */ jsx37("span", { className: clsx36(LABEL_TEXT2[size2], "text-default"), children: label })
3478
3595
  ]
3479
3596
  }
3480
3597
  ),
3481
- description && /* @__PURE__ */ jsx35(
3598
+ description && /* @__PURE__ */ jsx37(
3482
3599
  "span",
3483
3600
  {
3484
3601
  id: descriptionId,
@@ -3501,7 +3618,7 @@ import {
3501
3618
  useId as useId8
3502
3619
  } from "react";
3503
3620
  import clsx37 from "clsx";
3504
- import { jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
3621
+ import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
3505
3622
  var RadioGroupContext = createContext4(null);
3506
3623
  var RadioGroup = forwardRef13(function RadioGroup2({
3507
3624
  children,
@@ -3524,7 +3641,7 @@ var RadioGroup = forwardRef13(function RadioGroup2({
3524
3641
  defaultValue,
3525
3642
  onChange: onValueChange
3526
3643
  });
3527
- return /* @__PURE__ */ jsx36(
3644
+ return /* @__PURE__ */ jsx38(
3528
3645
  RadioGroupContext.Provider,
3529
3646
  {
3530
3647
  value: {
@@ -3535,7 +3652,7 @@ var RadioGroup = forwardRef13(function RadioGroup2({
3535
3652
  disabled,
3536
3653
  invalid
3537
3654
  },
3538
- children: /* @__PURE__ */ jsx36(
3655
+ children: /* @__PURE__ */ jsx38(
3539
3656
  "div",
3540
3657
  {
3541
3658
  ref,
@@ -3579,7 +3696,7 @@ var Radio = forwardRef13(function Radio2({ value, label, description, disabled,
3579
3696
  isDisabled ? "cursor-not-allowed opacity-60" : "cursor-pointer"
3580
3697
  ),
3581
3698
  children: [
3582
- /* @__PURE__ */ jsx36(
3699
+ /* @__PURE__ */ jsx38(
3583
3700
  "input",
3584
3701
  {
3585
3702
  ref,
@@ -3595,7 +3712,7 @@ var Radio = forwardRef13(function Radio2({ value, label, description, disabled,
3595
3712
  ...props
3596
3713
  }
3597
3714
  ),
3598
- /* @__PURE__ */ jsx36(
3715
+ /* @__PURE__ */ jsx38(
3599
3716
  CheckControl,
3600
3717
  {
3601
3718
  type: "radio",
@@ -3605,11 +3722,11 @@ var Radio = forwardRef13(function Radio2({ value, label, description, disabled,
3605
3722
  size: group.size
3606
3723
  }
3607
3724
  ),
3608
- label && /* @__PURE__ */ jsx36("span", { className: clsx37(LABEL_TEXT3[group.size], "text-default"), children: label })
3725
+ label && /* @__PURE__ */ jsx38("span", { className: clsx37(LABEL_TEXT3[group.size], "text-default"), children: label })
3609
3726
  ]
3610
3727
  }
3611
3728
  ),
3612
- description && /* @__PURE__ */ jsx36(
3729
+ description && /* @__PURE__ */ jsx38(
3613
3730
  "span",
3614
3731
  {
3615
3732
  id: descriptionId,
@@ -3626,7 +3743,7 @@ var Radio = forwardRef13(function Radio2({ value, label, description, disabled,
3626
3743
 
3627
3744
  // src/components/forms/segmented-control.tsx
3628
3745
  import clsx38 from "clsx";
3629
- import { jsx as jsx37 } from "react/jsx-runtime";
3746
+ import { jsx as jsx39 } from "react/jsx-runtime";
3630
3747
  function SegmentedControl({
3631
3748
  options,
3632
3749
  value: valueProp,
@@ -3649,7 +3766,7 @@ function SegmentedControl({
3649
3766
  loop: true,
3650
3767
  defaultIndex: selectedIndex
3651
3768
  });
3652
- return /* @__PURE__ */ jsx37(
3769
+ return /* @__PURE__ */ jsx39(
3653
3770
  "div",
3654
3771
  {
3655
3772
  role: "radiogroup",
@@ -3665,7 +3782,7 @@ function SegmentedControl({
3665
3782
  disabled: option.disabled,
3666
3783
  label: option.label
3667
3784
  });
3668
- return /* @__PURE__ */ jsx37(
3785
+ return /* @__PURE__ */ jsx39(
3669
3786
  "button",
3670
3787
  {
3671
3788
  type: "button",
@@ -3697,7 +3814,7 @@ function SegmentedControl({
3697
3814
  // src/components/forms/slider.tsx
3698
3815
  import { forwardRef as forwardRef14, useId as useId9 } from "react";
3699
3816
  import clsx39 from "clsx";
3700
- import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
3817
+ import { jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
3701
3818
  var Slider = forwardRef14(function Slider2({
3702
3819
  value,
3703
3820
  defaultValue,
@@ -3721,7 +3838,7 @@ var Slider = forwardRef14(function Slider2({
3721
3838
  const display = formatValue ? formatValue(current) : String(current);
3722
3839
  return /* @__PURE__ */ jsxs25("div", { className: clsx39("flex w-full flex-col gap-1.5", className), children: [
3723
3840
  (label || showValue) && /* @__PURE__ */ jsxs25("div", { className: "flex items-baseline justify-between gap-2", children: [
3724
- label && /* @__PURE__ */ jsx38(
3841
+ label && /* @__PURE__ */ jsx40(
3725
3842
  "label",
3726
3843
  {
3727
3844
  htmlFor: controlId,
@@ -3729,9 +3846,9 @@ var Slider = forwardRef14(function Slider2({
3729
3846
  children: label
3730
3847
  }
3731
3848
  ),
3732
- showValue && /* @__PURE__ */ jsx38("span", { className: "text-body-sm font-medium tabular-nums text-default", children: display })
3849
+ showValue && /* @__PURE__ */ jsx40("span", { className: "text-body-sm font-medium tabular-nums text-default", children: display })
3733
3850
  ] }),
3734
- description && /* @__PURE__ */ jsx38(
3851
+ description && /* @__PURE__ */ jsx40(
3735
3852
  "p",
3736
3853
  {
3737
3854
  id: descriptionId,
@@ -3739,7 +3856,7 @@ var Slider = forwardRef14(function Slider2({
3739
3856
  children: description
3740
3857
  }
3741
3858
  ),
3742
- /* @__PURE__ */ jsx38(
3859
+ /* @__PURE__ */ jsx40(
3743
3860
  "input",
3744
3861
  {
3745
3862
  ref,
@@ -3780,7 +3897,7 @@ var Slider = forwardRef14(function Slider2({
3780
3897
  // src/components/forms/label.tsx
3781
3898
  import { forwardRef as forwardRef15 } from "react";
3782
3899
  import clsx40 from "clsx";
3783
- import { jsx as jsx39 } from "react/jsx-runtime";
3900
+ import { jsx as jsx41 } from "react/jsx-runtime";
3784
3901
  var SIZE6 = {
3785
3902
  lg: "text-body",
3786
3903
  md: "text-body-sm",
@@ -3789,7 +3906,7 @@ var SIZE6 = {
3789
3906
  var Label = forwardRef15(function Label2({ children, size: size2, className, htmlFor, ...rest }, ref) {
3790
3907
  const field = useFieldContext();
3791
3908
  const resolvedSize = size2 ?? field?.size ?? "md";
3792
- return /* @__PURE__ */ jsx39(
3909
+ return /* @__PURE__ */ jsx41(
3793
3910
  "label",
3794
3911
  {
3795
3912
  ref,
@@ -3812,13 +3929,13 @@ import {
3812
3929
  useCallback as useCallback4,
3813
3930
  useEffect as useEffect9,
3814
3931
  useId as useId10,
3815
- useMemo as useMemo4,
3932
+ useMemo as useMemo6,
3816
3933
  useRef as useRef13,
3817
3934
  useState as useState10
3818
3935
  } from "react";
3819
3936
  import clsx41 from "clsx";
3820
3937
  import { LuChevronLeft, LuChevronRight as LuChevronRight2 } from "react-icons/lu";
3821
- import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
3938
+ import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
3822
3939
  var startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());
3823
3940
  var sameDay = (a, b) => !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
3824
3941
  var addDays = (d, n) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + n);
@@ -3848,7 +3965,7 @@ function Calendar({
3848
3965
  className,
3849
3966
  ...rest
3850
3967
  }) {
3851
- const today = useMemo4(() => startOfDay(/* @__PURE__ */ new Date()), []);
3968
+ const today = useMemo6(() => startOfDay(/* @__PURE__ */ new Date()), []);
3852
3969
  const gridId = useId10();
3853
3970
  const [month, setMonth] = useState10(
3854
3971
  () => defaultMonth ?? value ?? range?.from ?? today
@@ -3857,15 +3974,15 @@ function Calendar({
3857
3974
  () => value ?? range?.from ?? today
3858
3975
  );
3859
3976
  const cellRefs = useRef13(/* @__PURE__ */ new Map());
3860
- const monthFormatter = useMemo4(
3977
+ const monthFormatter = useMemo6(
3861
3978
  () => new Intl.DateTimeFormat(locale, { month: "long", year: "numeric" }),
3862
3979
  [locale]
3863
3980
  );
3864
- const dayNameFormatter = useMemo4(
3981
+ const dayNameFormatter = useMemo6(
3865
3982
  () => new Intl.DateTimeFormat(locale, { weekday: "short" }),
3866
3983
  [locale]
3867
3984
  );
3868
- const fullDateFormatter = useMemo4(
3985
+ const fullDateFormatter = useMemo6(
3869
3986
  () => new Intl.DateTimeFormat(locale, { weekday: "long", day: "numeric", month: "long", year: "numeric" }),
3870
3987
  [locale]
3871
3988
  );
@@ -3935,7 +4052,7 @@ function Calendar({
3935
4052
  ...rest,
3936
4053
  children: [
3937
4054
  /* @__PURE__ */ jsxs26("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
3938
- /* @__PURE__ */ jsx40(
4055
+ /* @__PURE__ */ jsx42(
3939
4056
  IconButton,
3940
4057
  {
3941
4058
  variant: "subtle",
@@ -3943,11 +4060,11 @@ function Calendar({
3943
4060
  "aria-label": "Previous month",
3944
4061
  disabled: !!min && isBefore(addMonths(month, -1), new Date(min.getFullYear(), min.getMonth(), 1)),
3945
4062
  onClick: () => setMonth(addMonths(month, -1)),
3946
- children: /* @__PURE__ */ jsx40(LuChevronLeft, { "aria-hidden": true, size: 16 })
4063
+ children: /* @__PURE__ */ jsx42(LuChevronLeft, { "aria-hidden": true, size: 16 })
3947
4064
  }
3948
4065
  ),
3949
- /* @__PURE__ */ jsx40("span", { "aria-live": "polite", className: "text-body-sm font-semibold text-default", children: monthFormatter.format(month) }),
3950
- /* @__PURE__ */ jsx40(
4066
+ /* @__PURE__ */ jsx42("span", { "aria-live": "polite", className: "text-body-sm font-semibold text-default", children: monthFormatter.format(month) }),
4067
+ /* @__PURE__ */ jsx42(
3951
4068
  IconButton,
3952
4069
  {
3953
4070
  variant: "subtle",
@@ -3955,7 +4072,7 @@ function Calendar({
3955
4072
  "aria-label": "Next month",
3956
4073
  disabled: !!max && isAfter(addMonths(month, 1), new Date(max.getFullYear(), max.getMonth(), 1)),
3957
4074
  onClick: () => setMonth(addMonths(month, 1)),
3958
- children: /* @__PURE__ */ jsx40(LuChevronRight2, { "aria-hidden": true, size: 16 })
4075
+ children: /* @__PURE__ */ jsx42(LuChevronRight2, { "aria-hidden": true, size: 16 })
3959
4076
  }
3960
4077
  )
3961
4078
  ] }),
@@ -3968,7 +4085,7 @@ function Calendar({
3968
4085
  tabIndex: -1,
3969
4086
  onKeyDown,
3970
4087
  children: [
3971
- /* @__PURE__ */ jsx40("div", { role: "row", className: "mb-1 grid grid-cols-7", children: weekdayNames.map((name) => /* @__PURE__ */ jsx40(
4088
+ /* @__PURE__ */ jsx42("div", { role: "row", className: "mb-1 grid grid-cols-7", children: weekdayNames.map((name) => /* @__PURE__ */ jsx42(
3972
4089
  "div",
3973
4090
  {
3974
4091
  role: "columnheader",
@@ -3977,13 +4094,13 @@ function Calendar({
3977
4094
  },
3978
4095
  name
3979
4096
  )) }),
3980
- Array.from({ length: 6 }, (_, week) => /* @__PURE__ */ jsx40("div", { role: "row", className: "grid grid-cols-7", children: days.slice(week * 7, week * 7 + 7).map((date) => {
4097
+ Array.from({ length: 6 }, (_, week) => /* @__PURE__ */ jsx42("div", { role: "row", className: "grid grid-cols-7", children: days.slice(week * 7, week * 7 + 7).map((date) => {
3981
4098
  const outside = date.getMonth() !== month.getMonth();
3982
4099
  const isDisabled = disabled(date);
3983
4100
  const selected = mode === "single" ? sameDay(date, value) : sameDay(date, range?.from) || sameDay(date, range?.to);
3984
4101
  const between = mode === "range" && range?.from && range?.to ? inRange(date, range.from, range.to) : false;
3985
4102
  const isFocused = sameDay(date, focusedDate);
3986
- return /* @__PURE__ */ jsx40("div", { role: "gridcell", "aria-selected": selected || void 0, children: /* @__PURE__ */ jsx40(
4103
+ return /* @__PURE__ */ jsx42("div", { role: "gridcell", "aria-selected": selected || void 0, children: /* @__PURE__ */ jsx42(
3987
4104
  "button",
3988
4105
  {
3989
4106
  ref: (node) => {
@@ -4022,7 +4139,7 @@ function Calendar({
4022
4139
  import { forwardRef as forwardRef16 } from "react";
4023
4140
  import clsx42 from "clsx";
4024
4141
  import { LuSearch as LuSearch2, LuX as LuX3 } from "react-icons/lu";
4025
- import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
4142
+ import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
4026
4143
  var HEIGHT2 = {
4027
4144
  lg: "h-12 text-body",
4028
4145
  md: "h-9 text-body-sm",
@@ -4035,7 +4152,7 @@ var PAD = {
4035
4152
  };
4036
4153
  var InputGroup = forwardRef16(function InputGroup2({ children, size: sizeProp, invalid = false, disabled = false, className, ...rest }, ref) {
4037
4154
  const size2 = useControlSize(sizeProp);
4038
- return /* @__PURE__ */ jsx41(
4155
+ return /* @__PURE__ */ jsx43(
4039
4156
  "div",
4040
4157
  {
4041
4158
  ref,
@@ -4060,7 +4177,7 @@ var InputGroup = forwardRef16(function InputGroup2({ children, size: sizeProp, i
4060
4177
  var InputGroupInput = forwardRef16(
4061
4178
  function InputGroupInput2({ className, ...props }, ref) {
4062
4179
  const field = useFieldControl();
4063
- return /* @__PURE__ */ jsx41(
4180
+ return /* @__PURE__ */ jsx43(
4064
4181
  "input",
4065
4182
  {
4066
4183
  ref,
@@ -4078,7 +4195,7 @@ var InputGroupInput = forwardRef16(
4078
4195
  );
4079
4196
  var InputGroupAddon = forwardRef16(
4080
4197
  function InputGroupAddon2({ children, align = "inline-start", decorative = true, className, ...rest }, ref) {
4081
- return /* @__PURE__ */ jsx41(
4198
+ return /* @__PURE__ */ jsx43(
4082
4199
  "span",
4083
4200
  {
4084
4201
  ref,
@@ -4099,7 +4216,7 @@ var InputGroupAddon = forwardRef16(
4099
4216
  );
4100
4217
  var InputGroupText = forwardRef16(
4101
4218
  function InputGroupText2({ children, className, ...rest }, ref) {
4102
- return /* @__PURE__ */ jsx41(
4219
+ return /* @__PURE__ */ jsx43(
4103
4220
  "span",
4104
4221
  {
4105
4222
  ref,
@@ -4114,8 +4231,8 @@ var SearchInput = forwardRef16(function SearchInput2({ size: sizeProp, onClear,
4114
4231
  const size2 = useControlSize(sizeProp);
4115
4232
  const hasValue = value !== void 0 && value !== "";
4116
4233
  return /* @__PURE__ */ jsxs27(InputGroup, { size: size2, disabled, className, children: [
4117
- /* @__PURE__ */ jsx41(InputGroupAddon, { children: /* @__PURE__ */ jsx41(LuSearch2, { className: size2 === "sm" ? "size-3" : "size-4" }) }),
4118
- /* @__PURE__ */ jsx41(
4234
+ /* @__PURE__ */ jsx43(InputGroupAddon, { children: /* @__PURE__ */ jsx43(LuSearch2, { className: size2 === "sm" ? "size-3" : "size-4" }) }),
4235
+ /* @__PURE__ */ jsx43(
4119
4236
  InputGroupInput,
4120
4237
  {
4121
4238
  ref,
@@ -4127,7 +4244,7 @@ var SearchInput = forwardRef16(function SearchInput2({ size: sizeProp, onClear,
4127
4244
  ...props
4128
4245
  }
4129
4246
  ),
4130
- onClear && hasValue && /* @__PURE__ */ jsx41(InputGroupAddon, { align: "inline-end", decorative: false, children: /* @__PURE__ */ jsx41(
4247
+ onClear && hasValue && /* @__PURE__ */ jsx43(InputGroupAddon, { align: "inline-end", decorative: false, children: /* @__PURE__ */ jsx43(
4131
4248
  "button",
4132
4249
  {
4133
4250
  type: "button",
@@ -4135,7 +4252,7 @@ var SearchInput = forwardRef16(function SearchInput2({ size: sizeProp, onClear,
4135
4252
  onClick: onClear,
4136
4253
  disabled,
4137
4254
  className: "flex items-center justify-center rounded transition-colors hover:text-default focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand",
4138
- children: /* @__PURE__ */ jsx41(LuX3, { "aria-hidden": true, className: size2 === "sm" ? "size-3" : "size-4" })
4255
+ children: /* @__PURE__ */ jsx43(LuX3, { "aria-hidden": true, className: size2 === "sm" ? "size-3" : "size-4" })
4139
4256
  }
4140
4257
  ) })
4141
4258
  ] });
@@ -4151,7 +4268,7 @@ import {
4151
4268
  useState as useState11
4152
4269
  } from "react";
4153
4270
  import { LuCircleCheckBig, LuInfo, LuOctagonAlert, LuTriangleAlert, LuX as LuX4 } from "react-icons/lu";
4154
- import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
4271
+ import { jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
4155
4272
  var SIZE7 = {
4156
4273
  sm: "sm:max-w-[420px]",
4157
4274
  md: "sm:max-w-[540px]",
@@ -4159,10 +4276,10 @@ var SIZE7 = {
4159
4276
  xl: "sm:max-w-[800px]"
4160
4277
  };
4161
4278
  var TONE_ICON = {
4162
- info: /* @__PURE__ */ jsx42(LuInfo, { "aria-hidden": true, className: "size-5" }),
4163
- positive: /* @__PURE__ */ jsx42(LuCircleCheckBig, { "aria-hidden": true, className: "size-5" }),
4164
- warning: /* @__PURE__ */ jsx42(LuTriangleAlert, { "aria-hidden": true, className: "size-5" }),
4165
- danger: /* @__PURE__ */ jsx42(LuOctagonAlert, { "aria-hidden": true, className: "size-5" })
4279
+ info: /* @__PURE__ */ jsx44(LuInfo, { "aria-hidden": true, className: "size-5" }),
4280
+ positive: /* @__PURE__ */ jsx44(LuCircleCheckBig, { "aria-hidden": true, className: "size-5" }),
4281
+ warning: /* @__PURE__ */ jsx44(LuTriangleAlert, { "aria-hidden": true, className: "size-5" }),
4282
+ danger: /* @__PURE__ */ jsx44(LuOctagonAlert, { "aria-hidden": true, className: "size-5" })
4166
4283
  };
4167
4284
  var TONE_BADGE = {
4168
4285
  info: "brand",
@@ -4178,7 +4295,7 @@ var FOOTER_ALIGN = {
4178
4295
  var ModalNaming = createContext5(null);
4179
4296
  function Modal(props) {
4180
4297
  if (!props.open) return null;
4181
- return /* @__PURE__ */ jsx42(Portal, { children: /* @__PURE__ */ jsx42(ModalShell, { ...props }) });
4298
+ return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(ModalShell, { ...props }) });
4182
4299
  }
4183
4300
  function ModalShell({
4184
4301
  onOpenChange,
@@ -4205,7 +4322,7 @@ function ModalShell({
4205
4322
  onEscapeKeyDown,
4206
4323
  onInteractOutside
4207
4324
  });
4208
- return /* @__PURE__ */ jsx42(
4325
+ return /* @__PURE__ */ jsx44(
4209
4326
  "div",
4210
4327
  {
4211
4328
  className: cn(
@@ -4232,7 +4349,7 @@ function ModalShell({
4232
4349
  className
4233
4350
  ),
4234
4351
  children: [
4235
- showClose && /* @__PURE__ */ jsx42(
4352
+ showClose && /* @__PURE__ */ jsx44(
4236
4353
  IconButton,
4237
4354
  {
4238
4355
  variant: "subtle",
@@ -4240,10 +4357,10 @@ function ModalShell({
4240
4357
  "aria-label": "Close dialog",
4241
4358
  onClick: () => onOpenChange(false),
4242
4359
  className: "absolute right-6 top-5 z-raised",
4243
- children: /* @__PURE__ */ jsx42(LuX4, { size: 16, "aria-hidden": true })
4360
+ children: /* @__PURE__ */ jsx44(LuX4, { size: 16, "aria-hidden": true })
4244
4361
  }
4245
4362
  ),
4246
- /* @__PURE__ */ jsx42(
4363
+ /* @__PURE__ */ jsx44(
4247
4364
  ModalNaming.Provider,
4248
4365
  {
4249
4366
  value: {
@@ -4280,8 +4397,8 @@ function ModalHeader({
4280
4397
  ),
4281
4398
  ...rest,
4282
4399
  children: [
4283
- tone !== "default" && /* @__PURE__ */ jsx42(EntityIconBadge, { size: "md", shape: "circle", tone: TONE_BADGE[tone], children: TONE_ICON[tone] }),
4284
- /* @__PURE__ */ jsx42("div", { className: "min-w-0 flex-1", children })
4400
+ tone !== "default" && /* @__PURE__ */ jsx44(EntityIconBadge, { size: "md", shape: "circle", tone: TONE_BADGE[tone], children: TONE_ICON[tone] }),
4401
+ /* @__PURE__ */ jsx44("div", { className: "min-w-0 flex-1", children })
4285
4402
  ]
4286
4403
  }
4287
4404
  );
@@ -4292,7 +4409,7 @@ function ModalTitle({ children, className, id, ...rest }) {
4292
4409
  naming?.registerTitle(true);
4293
4410
  return () => naming?.registerTitle(false);
4294
4411
  }, [naming]);
4295
- return /* @__PURE__ */ jsx42(
4412
+ return /* @__PURE__ */ jsx44(
4296
4413
  "h2",
4297
4414
  {
4298
4415
  id: id ?? naming?.titleId,
@@ -4308,7 +4425,7 @@ function ModalDescription({ children, className, id, ...rest }) {
4308
4425
  naming?.registerDescription(true);
4309
4426
  return () => naming?.registerDescription(false);
4310
4427
  }, [naming]);
4311
- return /* @__PURE__ */ jsx42(
4428
+ return /* @__PURE__ */ jsx44(
4312
4429
  "p",
4313
4430
  {
4314
4431
  id: id ?? naming?.descriptionId,
@@ -4319,7 +4436,7 @@ function ModalDescription({ children, className, id, ...rest }) {
4319
4436
  );
4320
4437
  }
4321
4438
  function ModalBody({ children, className, ...rest }) {
4322
- return /* @__PURE__ */ jsx42("div", { className: cn("px-6 py-5", className), ...rest, children });
4439
+ return /* @__PURE__ */ jsx44("div", { className: cn("px-6 py-5", className), ...rest, children });
4323
4440
  }
4324
4441
  function ModalFooter({
4325
4442
  children,
@@ -4328,7 +4445,7 @@ function ModalFooter({
4328
4445
  className,
4329
4446
  ...rest
4330
4447
  }) {
4331
- return /* @__PURE__ */ jsx42(
4448
+ return /* @__PURE__ */ jsx44(
4332
4449
  "div",
4333
4450
  {
4334
4451
  className: cn(
@@ -4354,7 +4471,7 @@ import {
4354
4471
  useState as useState12
4355
4472
  } from "react";
4356
4473
  import clsx43 from "clsx";
4357
- import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
4474
+ import { Fragment as Fragment6, jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
4358
4475
  function Tooltip({
4359
4476
  children,
4360
4477
  title,
@@ -4446,7 +4563,7 @@ function Tooltip({
4446
4563
  });
4447
4564
  return /* @__PURE__ */ jsxs29(Fragment6, { children: [
4448
4565
  trigger,
4449
- (open || association === "labelledby") && /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsxs29(
4566
+ (open || association === "labelledby") && /* @__PURE__ */ jsx45(Portal, { children: /* @__PURE__ */ jsxs29(
4450
4567
  "div",
4451
4568
  {
4452
4569
  ref: refs.setFloating,
@@ -4460,8 +4577,8 @@ function Tooltip({
4460
4577
  className
4461
4578
  ),
4462
4579
  children: [
4463
- title && /* @__PURE__ */ jsx43("p", { className: "font-semibold", children: title }),
4464
- body && /* @__PURE__ */ jsx43("p", { className: clsx43(title && "mt-0.5 opacity-80"), children: body })
4580
+ title && /* @__PURE__ */ jsx45("p", { className: "font-semibold", children: title }),
4581
+ body && /* @__PURE__ */ jsx45("p", { className: clsx43(title && "mt-0.5 opacity-80"), children: body })
4465
4582
  ]
4466
4583
  }
4467
4584
  ) })
@@ -4474,12 +4591,12 @@ import {
4474
4591
  useContext as useContext6,
4475
4592
  useEffect as useEffect12,
4476
4593
  useId as useId13,
4477
- useMemo as useMemo5,
4594
+ useMemo as useMemo7,
4478
4595
  useRef as useRef16,
4479
4596
  useState as useState13
4480
4597
  } from "react";
4481
4598
  import clsx44 from "clsx";
4482
- import { jsx as jsx44 } from "react/jsx-runtime";
4599
+ import { jsx as jsx46 } from "react/jsx-runtime";
4483
4600
  var PopoverContext = createContext6(null);
4484
4601
  function usePopover(part) {
4485
4602
  const value = useContext6(PopoverContext);
@@ -4500,7 +4617,7 @@ function Popover({
4500
4617
  });
4501
4618
  const baseId = useId13();
4502
4619
  const [triggerNode, setTriggerNode] = useState13(null);
4503
- const context = useMemo5(
4620
+ const context = useMemo7(
4504
4621
  () => ({
4505
4622
  open,
4506
4623
  setOpen,
@@ -4512,7 +4629,7 @@ function Popover({
4512
4629
  }),
4513
4630
  [open, setOpen, baseId, triggerNode, modal]
4514
4631
  );
4515
- return /* @__PURE__ */ jsx44(PopoverContext.Provider, { value: context, children });
4632
+ return /* @__PURE__ */ jsx46(PopoverContext.Provider, { value: context, children });
4516
4633
  }
4517
4634
  function PopoverTrigger({
4518
4635
  children,
@@ -4532,9 +4649,9 @@ function PopoverTrigger({
4532
4649
  ...rest
4533
4650
  };
4534
4651
  if (asChild) {
4535
- return /* @__PURE__ */ jsx44(Slot, { ref: composeRefs(popover.setTriggerNode), ...triggerProps, children });
4652
+ return /* @__PURE__ */ jsx46(Slot, { ref: composeRefs(popover.setTriggerNode), ...triggerProps, children });
4536
4653
  }
4537
- return /* @__PURE__ */ jsx44(
4654
+ return /* @__PURE__ */ jsx46(
4538
4655
  "button",
4539
4656
  {
4540
4657
  ref: composeRefs(popover.setTriggerNode),
@@ -4576,7 +4693,7 @@ function PopoverContent({
4576
4693
  inertBackground: popover.modal
4577
4694
  });
4578
4695
  if (!popover.open) return null;
4579
- return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(
4696
+ return /* @__PURE__ */ jsx46(Portal, { children: /* @__PURE__ */ jsx46(
4580
4697
  "div",
4581
4698
  {
4582
4699
  ref: composeRefs(panelRef, refs.setFloating),
@@ -4607,7 +4724,7 @@ import {
4607
4724
  useState as useState14
4608
4725
  } from "react";
4609
4726
  import clsx45 from "clsx";
4610
- import { Fragment as Fragment7, jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
4727
+ import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs30 } from "react/jsx-runtime";
4611
4728
  function HoverCard({
4612
4729
  children,
4613
4730
  content,
@@ -4692,7 +4809,7 @@ function HoverCard({
4692
4809
  });
4693
4810
  return /* @__PURE__ */ jsxs30(Fragment7, { children: [
4694
4811
  trigger,
4695
- open && /* @__PURE__ */ jsx45(Portal, { children: /* @__PURE__ */ jsx45(
4812
+ open && /* @__PURE__ */ jsx47(Portal, { children: /* @__PURE__ */ jsx47(
4696
4813
  "div",
4697
4814
  {
4698
4815
  ref: refs.setFloating,
@@ -4717,7 +4834,7 @@ import {
4717
4834
  createContext as createContext8,
4718
4835
  useContext as useContext8,
4719
4836
  useEffect as useEffect14,
4720
- useMemo as useMemo7,
4837
+ useMemo as useMemo9,
4721
4838
  useRef as useRef19,
4722
4839
  useState as useState15
4723
4840
  } from "react";
@@ -4729,12 +4846,12 @@ import {
4729
4846
  useCallback as useCallback7,
4730
4847
  useContext as useContext7,
4731
4848
  useId as useId15,
4732
- useMemo as useMemo6,
4849
+ useMemo as useMemo8,
4733
4850
  useRef as useRef18
4734
4851
  } from "react";
4735
4852
  import clsx46 from "clsx";
4736
4853
  import { LuCheck as LuCheck7 } from "react-icons/lu";
4737
- import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
4854
+ import { jsx as jsx48, jsxs as jsxs31 } from "react/jsx-runtime";
4738
4855
  var MenuContext = createContext7(null);
4739
4856
  function useMenu(part) {
4740
4857
  const context = useContext7(MenuContext);
@@ -4757,7 +4874,7 @@ function useMenuState({ open, setOpen }) {
4757
4874
  const resetIndices = useCallback7(() => {
4758
4875
  cursor.current = 0;
4759
4876
  }, []);
4760
- return useMemo6(
4877
+ return useMemo8(
4761
4878
  () => ({
4762
4879
  open,
4763
4880
  setOpen,
@@ -4817,12 +4934,12 @@ function MenuItem({
4817
4934
  },
4818
4935
  ...rest,
4819
4936
  children: [
4820
- icon && /* @__PURE__ */ jsx46("span", { "aria-hidden": true, className: "mt-0.5 flex size-4 shrink-0 items-center justify-center", children: icon }),
4937
+ icon && /* @__PURE__ */ jsx48("span", { "aria-hidden": true, className: "mt-0.5 flex size-4 shrink-0 items-center justify-center", children: icon }),
4821
4938
  /* @__PURE__ */ jsxs31("span", { className: "min-w-0 flex-1", children: [
4822
- /* @__PURE__ */ jsx46("span", { className: "block truncate", children }),
4823
- description && /* @__PURE__ */ jsx46("span", { id: descriptionId, className: "mt-0.5 block text-body-tiny text-default-secondary", children: description })
4939
+ /* @__PURE__ */ jsx48("span", { className: "block truncate", children }),
4940
+ description && /* @__PURE__ */ jsx48("span", { id: descriptionId, className: "mt-0.5 block text-body-tiny text-default-secondary", children: description })
4824
4941
  ] }),
4825
- shortcut && /* @__PURE__ */ jsx46("span", { className: "ml-auto shrink-0 pl-4 text-body-tiny text-default-tertiary", children: shortcut })
4942
+ shortcut && /* @__PURE__ */ jsx48("span", { className: "ml-auto shrink-0 pl-4 text-body-tiny text-default-tertiary", children: shortcut })
4826
4943
  ]
4827
4944
  }
4828
4945
  );
@@ -4867,17 +4984,17 @@ function MenuCheckboxItem({
4867
4984
  },
4868
4985
  ...rest,
4869
4986
  children: [
4870
- /* @__PURE__ */ jsx46("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: checked && /* @__PURE__ */ jsx46(LuCheck7, { className: "size-3.5", strokeWidth: 3 }) }),
4871
- /* @__PURE__ */ jsx46("span", { className: "min-w-0 flex-1 truncate", children }),
4872
- shortcut && /* @__PURE__ */ jsx46("span", { className: "ml-auto shrink-0 pl-4 text-body-tiny text-default-tertiary", children: shortcut })
4987
+ /* @__PURE__ */ jsx48("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: checked && /* @__PURE__ */ jsx48(LuCheck7, { className: "size-3.5", strokeWidth: 3 }) }),
4988
+ /* @__PURE__ */ jsx48("span", { className: "min-w-0 flex-1 truncate", children }),
4989
+ shortcut && /* @__PURE__ */ jsx48("span", { className: "ml-auto shrink-0 pl-4 text-body-tiny text-default-tertiary", children: shortcut })
4873
4990
  ]
4874
4991
  }
4875
4992
  );
4876
4993
  }
4877
4994
  var MenuRadioContext = createContext7(null);
4878
4995
  function MenuRadioGroup({ children, value, onValueChange }) {
4879
- const context = useMemo6(() => ({ value, onValueChange }), [value, onValueChange]);
4880
- return /* @__PURE__ */ jsx46(MenuRadioContext.Provider, { value: context, children: /* @__PURE__ */ jsx46("div", { role: "group", children }) });
4996
+ const context = useMemo8(() => ({ value, onValueChange }), [value, onValueChange]);
4997
+ return /* @__PURE__ */ jsx48(MenuRadioContext.Provider, { value: context, children: /* @__PURE__ */ jsx48("div", { role: "group", children }) });
4881
4998
  }
4882
4999
  function MenuRadioItem({
4883
5000
  children,
@@ -4920,8 +5037,8 @@ function MenuRadioItem({
4920
5037
  },
4921
5038
  ...rest,
4922
5039
  children: [
4923
- /* @__PURE__ */ jsx46("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: checked && /* @__PURE__ */ jsx46("span", { className: "size-1.5 rounded-full bg-current" }) }),
4924
- /* @__PURE__ */ jsx46("span", { className: "min-w-0 flex-1 truncate", children })
5040
+ /* @__PURE__ */ jsx48("span", { "aria-hidden": true, className: "flex size-4 shrink-0 items-center justify-center", children: checked && /* @__PURE__ */ jsx48("span", { className: "size-1.5 rounded-full bg-current" }) }),
5041
+ /* @__PURE__ */ jsx48("span", { className: "min-w-0 flex-1 truncate", children })
4925
5042
  ]
4926
5043
  }
4927
5044
  );
@@ -4930,15 +5047,15 @@ var HEADING_CLASSES = OVERLAY_HEADING;
4930
5047
  function MenuGroup({ children, label, className, ...rest }) {
4931
5048
  const labelId = useId15();
4932
5049
  return /* @__PURE__ */ jsxs31("div", { role: "group", "aria-labelledby": label ? labelId : void 0, className, ...rest, children: [
4933
- label && /* @__PURE__ */ jsx46("div", { id: labelId, className: HEADING_CLASSES, children: label }),
5050
+ label && /* @__PURE__ */ jsx48("div", { id: labelId, className: HEADING_CLASSES, children: label }),
4934
5051
  children
4935
5052
  ] });
4936
5053
  }
4937
5054
  function MenuLabel({ children, className, ...rest }) {
4938
- return /* @__PURE__ */ jsx46("div", { className: clsx46(HEADING_CLASSES, className), ...rest, children });
5055
+ return /* @__PURE__ */ jsx48("div", { className: clsx46(HEADING_CLASSES, className), ...rest, children });
4939
5056
  }
4940
5057
  function MenuSeparator({ className, ...rest }) {
4941
- return /* @__PURE__ */ jsx46(
5058
+ return /* @__PURE__ */ jsx48(
4942
5059
  "div",
4943
5060
  {
4944
5061
  role: "separator",
@@ -4949,7 +5066,7 @@ function MenuSeparator({ className, ...rest }) {
4949
5066
  );
4950
5067
  }
4951
5068
  function MenuShortcut({ children, className, ...rest }) {
4952
- return /* @__PURE__ */ jsx46(
5069
+ return /* @__PURE__ */ jsx48(
4953
5070
  "span",
4954
5071
  {
4955
5072
  className: clsx46("ml-auto pl-4 text-body-tiny text-default-tertiary", className),
@@ -4960,7 +5077,7 @@ function MenuShortcut({ children, className, ...rest }) {
4960
5077
  }
4961
5078
 
4962
5079
  // src/components/overlays/context-menu.tsx
4963
- import { jsx as jsx47 } from "react/jsx-runtime";
5080
+ import { jsx as jsx49 } from "react/jsx-runtime";
4964
5081
  var PositionContext = createContext8(null);
4965
5082
  function usePosition() {
4966
5083
  const value = useContext8(PositionContext);
@@ -4980,8 +5097,8 @@ function ContextMenu({
4980
5097
  });
4981
5098
  const menu = useMenuState({ open, setOpen });
4982
5099
  const [point, setPoint] = useState15(null);
4983
- const position = useMemo7(() => ({ point, setPoint }), [point]);
4984
- return /* @__PURE__ */ jsx47(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx47(PositionContext.Provider, { value: position, children }) });
5100
+ const position = useMemo9(() => ({ point, setPoint }), [point]);
5101
+ return /* @__PURE__ */ jsx49(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx49(PositionContext.Provider, { value: position, children }) });
4985
5102
  }
4986
5103
  function ContextMenuTrigger({
4987
5104
  children,
@@ -5003,7 +5120,7 @@ function ContextMenuTrigger({
5003
5120
  // (see the note on `ContextMenu`), and a tab stop here would put an unexplained one in
5004
5121
  // the middle of a table row.
5005
5122
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
5006
- /* @__PURE__ */ jsx47(
5123
+ /* @__PURE__ */ jsx49(
5007
5124
  "div",
5008
5125
  {
5009
5126
  "data-slot": "context-menu-trigger",
@@ -5065,7 +5182,7 @@ function ContextMenuContent({
5065
5182
  });
5066
5183
  }, [panelNode, position.point, collisionPadding]);
5067
5184
  if (!menu.open || !position.point) return null;
5068
- return /* @__PURE__ */ jsx47(Portal, { children: /* @__PURE__ */ jsx47(
5185
+ return /* @__PURE__ */ jsx49(Portal, { children: /* @__PURE__ */ jsx49(
5069
5186
  "div",
5070
5187
  {
5071
5188
  ref: composeRefs(panelRef, (node) => setPanelNode(node)),
@@ -5096,12 +5213,12 @@ import {
5096
5213
  useContext as useContext9,
5097
5214
  useEffect as useEffect15,
5098
5215
  useId as useId16,
5099
- useMemo as useMemo8,
5216
+ useMemo as useMemo10,
5100
5217
  useRef as useRef20,
5101
5218
  useState as useState16
5102
5219
  } from "react";
5103
5220
  import clsx48 from "clsx";
5104
- import { jsx as jsx48 } from "react/jsx-runtime";
5221
+ import { jsx as jsx50 } from "react/jsx-runtime";
5105
5222
  var MenubarContext = createContext9(null);
5106
5223
  function useMenubar(part) {
5107
5224
  const value = useContext9(MenubarContext);
@@ -5117,7 +5234,7 @@ function Menubar({ children, label, className, ...rest }) {
5117
5234
  loop: true,
5118
5235
  onEscape: () => setOpenValue(null)
5119
5236
  });
5120
- const context = useMemo8(
5237
+ const context = useMemo10(
5121
5238
  () => ({
5122
5239
  openValue,
5123
5240
  setOpenValue,
@@ -5131,7 +5248,7 @@ function Menubar({ children, label, className, ...rest }) {
5131
5248
  [openValue, barRoving, baseId]
5132
5249
  );
5133
5250
  context.resetMenuIndices();
5134
- return /* @__PURE__ */ jsx48(MenubarContext.Provider, { value: context, children: /* @__PURE__ */ jsx48(
5251
+ return /* @__PURE__ */ jsx50(MenubarContext.Provider, { value: context, children: /* @__PURE__ */ jsx50(
5135
5252
  "div",
5136
5253
  {
5137
5254
  role: "menubar",
@@ -5153,8 +5270,8 @@ function MenubarMenu({ children, value }) {
5153
5270
  open,
5154
5271
  setOpen: (next) => bar.setOpenValue(next ? value : null)
5155
5272
  });
5156
- const scope = useMemo8(() => ({ value, index }), [value, index]);
5157
- return /* @__PURE__ */ jsx48(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx48(MenubarMenuScope.Provider, { value: scope, children }) });
5273
+ const scope = useMemo10(() => ({ value, index }), [value, index]);
5274
+ return /* @__PURE__ */ jsx50(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx50(MenubarMenuScope.Provider, { value: scope, children }) });
5158
5275
  }
5159
5276
  var MenubarMenuScope = createContext9(null);
5160
5277
  function useMenubarMenu(part) {
@@ -5176,7 +5293,7 @@ function MenubarTrigger({ children, className, ...rest }) {
5176
5293
  triggerNodes.delete(scope.value);
5177
5294
  };
5178
5295
  }, [scope.value, node]);
5179
- return /* @__PURE__ */ jsx48(
5296
+ return /* @__PURE__ */ jsx50(
5180
5297
  "button",
5181
5298
  {
5182
5299
  ref: composeRefs(setNode, rovingRef),
@@ -5256,7 +5373,7 @@ function MenubarContent({ children, className, ...rest }) {
5256
5373
  if (!menu.open) wasOpen.current = false;
5257
5374
  }, [menu.open, panelNode, menu.roving, menu.pendingEdge]);
5258
5375
  if (!menu.open) return null;
5259
- return /* @__PURE__ */ jsx48(Portal, { children: /* @__PURE__ */ jsx48(
5376
+ return /* @__PURE__ */ jsx50(Portal, { children: /* @__PURE__ */ jsx50(
5260
5377
  "div",
5261
5378
  {
5262
5379
  ref: composeRefs(panelRef, (node) => setPanelNode(node), refs.setFloating),
@@ -5266,7 +5383,7 @@ function MenubarContent({ children, className, ...rest }) {
5266
5383
  "aria-orientation": "vertical",
5267
5384
  "aria-labelledby": menu.triggerId,
5268
5385
  style: floatingStyles,
5269
- className: clsx48("z-dropdown", MENU_PANEL_CLASSES, className),
5386
+ className: clsx48("z-popover", MENU_PANEL_CLASSES, className),
5270
5387
  ...menu.roving.containerProps,
5271
5388
  onKeyDown: (event) => {
5272
5389
  menu.roving.containerProps.onKeyDown(event);
@@ -5294,7 +5411,7 @@ import { LuX as LuX5 } from "react-icons/lu";
5294
5411
  // src/components/cards/scroll-area.tsx
5295
5412
  import { forwardRef as forwardRef17, useEffect as useEffect16, useRef as useRef21, useState as useState17 } from "react";
5296
5413
  import clsx49 from "clsx";
5297
- import { jsx as jsx49 } from "react/jsx-runtime";
5414
+ import { jsx as jsx51 } from "react/jsx-runtime";
5298
5415
  var OVERFLOW = {
5299
5416
  vertical: "overflow-y-auto overflow-x-hidden",
5300
5417
  horizontal: "overflow-x-auto overflow-y-hidden",
@@ -5320,7 +5437,7 @@ var ScrollArea = forwardRef17(function ScrollArea2({ children, axis = "vertical"
5320
5437
  if (node.firstElementChild) observer.observe(node.firstElementChild);
5321
5438
  return () => observer.disconnect();
5322
5439
  }, [axis, children]);
5323
- return /* @__PURE__ */ jsx49(
5440
+ return /* @__PURE__ */ jsx51(
5324
5441
  "div",
5325
5442
  {
5326
5443
  ref: composeRefs(localRef, ref),
@@ -5341,10 +5458,10 @@ var ScrollArea = forwardRef17(function ScrollArea2({ children, axis = "vertical"
5341
5458
  });
5342
5459
 
5343
5460
  // src/components/overlays/drawer.tsx
5344
- import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
5461
+ import { jsx as jsx52, jsxs as jsxs32 } from "react/jsx-runtime";
5345
5462
  function Drawer(props) {
5346
5463
  if (!props.open) return null;
5347
- return /* @__PURE__ */ jsx50(Portal, { children: /* @__PURE__ */ jsx50(DrawerShell, { ...props }) });
5464
+ return /* @__PURE__ */ jsx52(Portal, { children: /* @__PURE__ */ jsx52(DrawerShell, { ...props }) });
5348
5465
  }
5349
5466
  function DrawerShell({
5350
5467
  onOpenChange,
@@ -5368,7 +5485,7 @@ function DrawerShell({
5368
5485
  onEscapeKeyDown,
5369
5486
  onInteractOutside
5370
5487
  });
5371
- return /* @__PURE__ */ jsx50(
5488
+ return /* @__PURE__ */ jsx52(
5372
5489
  "div",
5373
5490
  {
5374
5491
  className: clsx50(
@@ -5386,20 +5503,20 @@ function DrawerShell({
5386
5503
  className: clsx50("relative flex h-full flex-col bg-default shadow-500", width, className),
5387
5504
  children: [
5388
5505
  /* @__PURE__ */ jsxs32("div", { className: "flex items-start justify-between gap-3 border-b border-default p-6", children: [
5389
- /* @__PURE__ */ jsx50("div", { className: "min-w-0", children: header }),
5390
- /* @__PURE__ */ jsx50(
5506
+ /* @__PURE__ */ jsx52("div", { className: "min-w-0", children: header }),
5507
+ /* @__PURE__ */ jsx52(
5391
5508
  IconButton,
5392
5509
  {
5393
5510
  variant: "subtle",
5394
5511
  size: "sm",
5395
5512
  "aria-label": "Close",
5396
5513
  onClick: () => onOpenChange(false),
5397
- children: /* @__PURE__ */ jsx50(LuX5, { size: 18, "aria-hidden": true })
5514
+ children: /* @__PURE__ */ jsx52(LuX5, { size: 18, "aria-hidden": true })
5398
5515
  }
5399
5516
  )
5400
5517
  ] }),
5401
- /* @__PURE__ */ jsx50(ScrollArea, { axis: "vertical", label, className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx50("div", { className: "space-y-6 p-6", children }) }),
5402
- footer && /* @__PURE__ */ jsx50(
5518
+ /* @__PURE__ */ jsx52(ScrollArea, { axis: "vertical", label, className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx52("div", { className: "space-y-6 p-6", children }) }),
5519
+ footer && /* @__PURE__ */ jsx52(
5403
5520
  "div",
5404
5521
  {
5405
5522
  className: clsx50(
@@ -5417,7 +5534,7 @@ function DrawerShell({
5417
5534
  }
5418
5535
 
5419
5536
  // src/components/overlays/confirm-dialog.tsx
5420
- import { jsx as jsx51, jsxs as jsxs33 } from "react/jsx-runtime";
5537
+ import { jsx as jsx53, jsxs as jsxs33 } from "react/jsx-runtime";
5421
5538
  function ConfirmDialog({
5422
5539
  open,
5423
5540
  title,
@@ -5448,13 +5565,13 @@ function ConfirmDialog({
5448
5565
  className,
5449
5566
  children: [
5450
5567
  /* @__PURE__ */ jsxs33(ModalHeader, { tone, divider: Boolean(children), children: [
5451
- /* @__PURE__ */ jsx51(ModalTitle, { children: title }),
5452
- subtitle && /* @__PURE__ */ jsx51(ModalDescription, { children: subtitle })
5568
+ /* @__PURE__ */ jsx53(ModalTitle, { children: title }),
5569
+ subtitle && /* @__PURE__ */ jsx53(ModalDescription, { children: subtitle })
5453
5570
  ] }),
5454
- children && /* @__PURE__ */ jsx51(ModalBody, { children }),
5571
+ children && /* @__PURE__ */ jsx53(ModalBody, { children }),
5455
5572
  /* @__PURE__ */ jsxs33(ModalFooter, { children: [
5456
- /* @__PURE__ */ jsx51(Button, { variant: "neutral", size: "md", onClick: () => onOpenChange(false), children: cancelLabel }),
5457
- /* @__PURE__ */ jsx51(Button, { variant: confirmVariant, size: "md", disabled: isConfirming, onClick: onConfirm, children: isConfirming ? confirmingLabel : confirmLabel })
5573
+ /* @__PURE__ */ jsx53(Button, { variant: "neutral", size: "md", onClick: () => onOpenChange(false), children: cancelLabel }),
5574
+ /* @__PURE__ */ jsx53(Button, { variant: confirmVariant, size: "md", disabled: isConfirming, onClick: onConfirm, children: isConfirming ? confirmingLabel : confirmLabel })
5458
5575
  ] })
5459
5576
  ]
5460
5577
  }
@@ -5464,10 +5581,10 @@ function ConfirmDialog({
5464
5581
 
5465
5582
  // src/components/overlays/note-confirm-modal.tsx
5466
5583
  import { useState as useState18 } from "react";
5467
- import { jsx as jsx52, jsxs as jsxs34 } from "react/jsx-runtime";
5584
+ import { jsx as jsx54, jsxs as jsxs34 } from "react/jsx-runtime";
5468
5585
  function NoteConfirmModal({ open, ...rest }) {
5469
5586
  if (!open) return null;
5470
- return /* @__PURE__ */ jsx52(NoteConfirmModalShell, { ...rest });
5587
+ return /* @__PURE__ */ jsx54(NoteConfirmModalShell, { ...rest });
5471
5588
  }
5472
5589
  function NoteConfirmModalShell({
5473
5590
  title,
@@ -5504,10 +5621,10 @@ function NoteConfirmModalShell({
5504
5621
  onInteractOutside: guardDiscard,
5505
5622
  children: [
5506
5623
  /* @__PURE__ */ jsxs34(ModalHeader, { tone, children: [
5507
- /* @__PURE__ */ jsx52(ModalTitle, { children: title }),
5508
- subtitle && /* @__PURE__ */ jsx52(ModalDescription, { children: subtitle })
5624
+ /* @__PURE__ */ jsx54(ModalTitle, { children: title }),
5625
+ subtitle && /* @__PURE__ */ jsx54(ModalDescription, { children: subtitle })
5509
5626
  ] }),
5510
- /* @__PURE__ */ jsx52(ModalBody, { children: /* @__PURE__ */ jsx52(
5627
+ /* @__PURE__ */ jsx54(ModalBody, { children: /* @__PURE__ */ jsx54(
5511
5628
  Textarea,
5512
5629
  {
5513
5630
  value: note,
@@ -5517,8 +5634,8 @@ function NoteConfirmModalShell({
5517
5634
  }
5518
5635
  ) }),
5519
5636
  /* @__PURE__ */ jsxs34(ModalFooter, { children: [
5520
- /* @__PURE__ */ jsx52(Button, { variant: "neutral", size: "md", onClick: () => onOpenChange(false), children: cancelLabel }),
5521
- /* @__PURE__ */ jsx52(Button, { variant: confirmVariant, size: "md", disabled, onClick: () => onConfirm(note.trim()), children: isSubmitting ? submittingLabel : confirmLabel })
5637
+ /* @__PURE__ */ jsx54(Button, { variant: "neutral", size: "md", onClick: () => onOpenChange(false), children: cancelLabel }),
5638
+ /* @__PURE__ */ jsx54(Button, { variant: confirmVariant, size: "md", disabled, onClick: () => onConfirm(note.trim()), children: isSubmitting ? submittingLabel : confirmLabel })
5522
5639
  ] })
5523
5640
  ]
5524
5641
  }
@@ -5530,13 +5647,13 @@ import {
5530
5647
  createContext as createContext10,
5531
5648
  useContext as useContext10,
5532
5649
  useEffect as useEffect17,
5533
- useMemo as useMemo9,
5650
+ useMemo as useMemo11,
5534
5651
  useRef as useRef23,
5535
5652
  useState as useState19
5536
5653
  } from "react";
5537
5654
  import clsx51 from "clsx";
5538
5655
  import { LuEllipsis } from "react-icons/lu";
5539
- import { jsx as jsx53 } from "react/jsx-runtime";
5656
+ import { jsx as jsx55 } from "react/jsx-runtime";
5540
5657
  var TriggerNodeContext = createContext10(null);
5541
5658
  function useTriggerNode() {
5542
5659
  const value = useContext10(TriggerNodeContext);
@@ -5556,8 +5673,8 @@ function DropdownMenu({
5556
5673
  });
5557
5674
  const menu = useMenuState({ open, setOpen });
5558
5675
  const [triggerNode, setTriggerNode] = useState19(null);
5559
- const anchor = useMemo9(() => ({ triggerNode, setTriggerNode }), [triggerNode]);
5560
- return /* @__PURE__ */ jsx53(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx53(TriggerNodeContext.Provider, { value: anchor, children }) });
5676
+ const anchor = useMemo11(() => ({ triggerNode, setTriggerNode }), [triggerNode]);
5677
+ return /* @__PURE__ */ jsx55(MenuContext.Provider, { value: menu, children: /* @__PURE__ */ jsx55(TriggerNodeContext.Provider, { value: anchor, children }) });
5561
5678
  }
5562
5679
  function DropdownMenuTrigger({
5563
5680
  children,
@@ -5589,9 +5706,9 @@ function DropdownMenuTrigger({
5589
5706
  ...rest
5590
5707
  };
5591
5708
  if (asChild) {
5592
- return /* @__PURE__ */ jsx53(Slot, { ref: composeRefs(anchor.setTriggerNode), ...triggerProps, children });
5709
+ return /* @__PURE__ */ jsx55(Slot, { ref: composeRefs(anchor.setTriggerNode), ...triggerProps, children });
5593
5710
  }
5594
- return /* @__PURE__ */ jsx53(
5711
+ return /* @__PURE__ */ jsx55(
5595
5712
  IconButton,
5596
5713
  {
5597
5714
  ref: composeRefs(anchor.setTriggerNode),
@@ -5599,7 +5716,7 @@ function DropdownMenuTrigger({
5599
5716
  size: "sm",
5600
5717
  "aria-label": label,
5601
5718
  ...triggerProps,
5602
- children: children ?? /* @__PURE__ */ jsx53(LuEllipsis, { className: "size-4", "aria-hidden": true })
5719
+ children: children ?? /* @__PURE__ */ jsx55(LuEllipsis, { className: "size-4", "aria-hidden": true })
5603
5720
  }
5604
5721
  );
5605
5722
  }
@@ -5649,7 +5766,7 @@ function DropdownMenuContent({
5649
5766
  if (!menu.open) wasOpen.current = false;
5650
5767
  }, [menu.open, panelNode, menu.roving, menu.pendingEdge]);
5651
5768
  if (!menu.open) return null;
5652
- return /* @__PURE__ */ jsx53(Portal, { children: /* @__PURE__ */ jsx53(
5769
+ return /* @__PURE__ */ jsx55(Portal, { children: /* @__PURE__ */ jsx55(
5653
5770
  "div",
5654
5771
  {
5655
5772
  ref: composeRefs(
@@ -5663,7 +5780,7 @@ function DropdownMenuContent({
5663
5780
  "aria-orientation": "vertical",
5664
5781
  "aria-labelledby": menu.triggerId,
5665
5782
  style: floatingStyles,
5666
- className: clsx51("z-dropdown", MENU_PANEL_CLASSES, className),
5783
+ className: clsx51("z-popover", MENU_PANEL_CLASSES, className),
5667
5784
  ...menu.roving.containerProps,
5668
5785
  onKeyDown: (event) => {
5669
5786
  menu.roving.containerProps.onKeyDown(event);
@@ -5677,7 +5794,7 @@ function DropdownMenuContent({
5677
5794
 
5678
5795
  // src/components/cards/card.tsx
5679
5796
  import { createContext as createContext11, useContext as useContext11 } from "react";
5680
- import { jsx as jsx54 } from "react/jsx-runtime";
5797
+ import { jsx as jsx56 } from "react/jsx-runtime";
5681
5798
  var RADIUS = {
5682
5799
  lg: "rounded-lg",
5683
5800
  xl: "rounded-xl",
@@ -5720,7 +5837,7 @@ var FOOTER_ALIGN2 = {
5720
5837
  };
5721
5838
  var CardHeaderContext = createContext11("md");
5722
5839
  function Card({ children, radius = "2xl", tone = "default", className, ...rest }) {
5723
- return /* @__PURE__ */ jsx54(
5840
+ return /* @__PURE__ */ jsx56(
5724
5841
  "div",
5725
5842
  {
5726
5843
  "data-slot": "card",
@@ -5737,7 +5854,7 @@ function CardHeader({
5737
5854
  className,
5738
5855
  ...rest
5739
5856
  }) {
5740
- return /* @__PURE__ */ jsx54(CardHeaderContext.Provider, { value: size2, children: /* @__PURE__ */ jsx54(
5857
+ return /* @__PURE__ */ jsx56(CardHeaderContext.Provider, { value: size2, children: /* @__PURE__ */ jsx56(
5741
5858
  "div",
5742
5859
  {
5743
5860
  "data-slot": "card-header",
@@ -5754,7 +5871,7 @@ function CardHeader({
5754
5871
  ) });
5755
5872
  }
5756
5873
  function CardTitle({ children, size: size2 = "md", as: Tag = "p", className, ...rest }) {
5757
- return /* @__PURE__ */ jsx54(
5874
+ return /* @__PURE__ */ jsx56(
5758
5875
  Tag,
5759
5876
  {
5760
5877
  "data-slot": "card-title",
@@ -5766,7 +5883,7 @@ function CardTitle({ children, size: size2 = "md", as: Tag = "p", className, ...
5766
5883
  }
5767
5884
  function CardDescription({ children, size: size2, className, ...rest }) {
5768
5885
  const inherited = useContext11(CardHeaderContext);
5769
- return /* @__PURE__ */ jsx54(
5886
+ return /* @__PURE__ */ jsx56(
5770
5887
  "p",
5771
5888
  {
5772
5889
  "data-slot": "card-description",
@@ -5781,7 +5898,7 @@ function CardDescription({ children, size: size2, className, ...rest }) {
5781
5898
  );
5782
5899
  }
5783
5900
  function CardAction({ children, className, ...rest }) {
5784
- return /* @__PURE__ */ jsx54(
5901
+ return /* @__PURE__ */ jsx56(
5785
5902
  "div",
5786
5903
  {
5787
5904
  "data-slot": "card-action",
@@ -5792,7 +5909,7 @@ function CardAction({ children, className, ...rest }) {
5792
5909
  );
5793
5910
  }
5794
5911
  function CardBody({ children, size: size2 = "md", className, ...rest }) {
5795
- return /* @__PURE__ */ jsx54("div", { "data-slot": "card-body", className: cn("flex flex-col", BODY_BOX[size2], className), ...rest, children });
5912
+ return /* @__PURE__ */ jsx56("div", { "data-slot": "card-body", className: cn("flex flex-col", BODY_BOX[size2], className), ...rest, children });
5796
5913
  }
5797
5914
  function CardFooter({
5798
5915
  children,
@@ -5802,7 +5919,7 @@ function CardFooter({
5802
5919
  className,
5803
5920
  ...rest
5804
5921
  }) {
5805
- return /* @__PURE__ */ jsx54(
5922
+ return /* @__PURE__ */ jsx56(
5806
5923
  "div",
5807
5924
  {
5808
5925
  "data-slot": "card-footer",
@@ -5825,12 +5942,12 @@ import {
5825
5942
  useCallback as useCallback8,
5826
5943
  useContext as useContext12,
5827
5944
  useId as useId17,
5828
- useMemo as useMemo10,
5945
+ useMemo as useMemo12,
5829
5946
  useRef as useRef24
5830
5947
  } from "react";
5831
5948
  import clsx52 from "clsx";
5832
5949
  import { LuChevronDown as LuChevronDown3 } from "react-icons/lu";
5833
- import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
5950
+ import { jsx as jsx57, jsxs as jsxs35 } from "react/jsx-runtime";
5834
5951
  var AccordionContext = createContext12(null);
5835
5952
  var AccordionItemContext = createContext12(null);
5836
5953
  function useAccordion(part) {
@@ -5875,11 +5992,11 @@ function Accordion({
5875
5992
  const roving = useRovingFocus({ orientation: "vertical", loop: true });
5876
5993
  cursor.current = 0;
5877
5994
  const claimIndex = useCallback8(() => cursor.current++, []);
5878
- const context = useMemo10(
5995
+ const context = useMemo12(
5879
5996
  () => ({ isOpen, toggle, baseId, claimIndex, roving, headingLevel }),
5880
5997
  [isOpen, toggle, baseId, claimIndex, roving, headingLevel]
5881
5998
  );
5882
- return /* @__PURE__ */ jsx55(AccordionContext.Provider, { value: context, children: /* @__PURE__ */ jsx55(
5999
+ return /* @__PURE__ */ jsx57(AccordionContext.Provider, { value: context, children: /* @__PURE__ */ jsx57(
5883
6000
  "div",
5884
6001
  {
5885
6002
  "data-slot": "accordion",
@@ -5898,8 +6015,8 @@ function AccordionItem({
5898
6015
  ...rest
5899
6016
  }) {
5900
6017
  const ctx = useAccordion("AccordionItem");
5901
- const itemContext = useMemo10(() => ({ value, disabled }), [value, disabled]);
5902
- return /* @__PURE__ */ jsx55(AccordionItemContext.Provider, { value: itemContext, children: /* @__PURE__ */ jsx55(
6018
+ const itemContext = useMemo12(() => ({ value, disabled }), [value, disabled]);
6019
+ return /* @__PURE__ */ jsx57(AccordionItemContext.Provider, { value: itemContext, children: /* @__PURE__ */ jsx57(
5903
6020
  "div",
5904
6021
  {
5905
6022
  "data-slot": "accordion-item",
@@ -5929,7 +6046,7 @@ function AccordionTrigger({
5929
6046
  return (
5930
6047
  // The heading carries no styling of its own — it exists so the accordion shows up in
5931
6048
  // the document outline, which is how screen reader users navigate between sections.
5932
- /* @__PURE__ */ jsx55(Heading2, { className: "m-0", children: /* @__PURE__ */ jsxs35(
6049
+ /* @__PURE__ */ jsx57(Heading2, { className: "m-0", children: /* @__PURE__ */ jsxs35(
5933
6050
  "button",
5934
6051
  {
5935
6052
  type: "button",
@@ -5950,8 +6067,8 @@ function AccordionTrigger({
5950
6067
  ),
5951
6068
  ...rest,
5952
6069
  children: [
5953
- /* @__PURE__ */ jsx55("span", { className: "min-w-0 flex-1", children }),
5954
- !hideIndicator && /* @__PURE__ */ jsx55(
6070
+ /* @__PURE__ */ jsx57("span", { className: "min-w-0 flex-1", children }),
6071
+ !hideIndicator && /* @__PURE__ */ jsx57(
5955
6072
  LuChevronDown3,
5956
6073
  {
5957
6074
  "aria-hidden": true,
@@ -5971,7 +6088,7 @@ function AccordionContent({ children, className, ...rest }) {
5971
6088
  const item = useContext12(AccordionItemContext);
5972
6089
  if (!item) throw new Error("<AccordionContent> must be used inside <AccordionItem>");
5973
6090
  if (!ctx.isOpen(item.value)) return null;
5974
- return /* @__PURE__ */ jsx55(
6091
+ return /* @__PURE__ */ jsx57(
5975
6092
  "div",
5976
6093
  {
5977
6094
  id: `${ctx.baseId}-content-${item.value}`,
@@ -5991,7 +6108,7 @@ import {
5991
6108
  useContext as useContext13,
5992
6109
  useId as useId18
5993
6110
  } from "react";
5994
- import { jsx as jsx56 } from "react/jsx-runtime";
6111
+ import { jsx as jsx58 } from "react/jsx-runtime";
5995
6112
  var CollapsibleContext = createContext13(null);
5996
6113
  function useCollapsible(part) {
5997
6114
  const context = useContext13(CollapsibleContext);
@@ -6013,7 +6130,7 @@ function Collapsible({
6013
6130
  onChange: onOpenChange
6014
6131
  });
6015
6132
  const baseId = useId18();
6016
- return /* @__PURE__ */ jsx56(
6133
+ return /* @__PURE__ */ jsx58(
6017
6134
  CollapsibleContext.Provider,
6018
6135
  {
6019
6136
  value: {
@@ -6023,7 +6140,7 @@ function Collapsible({
6023
6140
  contentId: `${baseId}-content`,
6024
6141
  disabled
6025
6142
  },
6026
- children: /* @__PURE__ */ jsx56("div", { "data-slot": "collapsible", "data-state": open ? "open" : "closed", className, ...rest, children })
6143
+ children: /* @__PURE__ */ jsx58("div", { "data-slot": "collapsible", "data-state": open ? "open" : "closed", className, ...rest, children })
6027
6144
  }
6028
6145
  );
6029
6146
  }
@@ -6044,9 +6161,9 @@ function CollapsibleTrigger({
6044
6161
  ...rest
6045
6162
  };
6046
6163
  if (asChild) {
6047
- return /* @__PURE__ */ jsx56(Slot, { "aria-disabled": ctx.disabled || void 0, ...triggerProps, children });
6164
+ return /* @__PURE__ */ jsx58(Slot, { "aria-disabled": ctx.disabled || void 0, ...triggerProps, children });
6048
6165
  }
6049
- return /* @__PURE__ */ jsx56("button", { type: "button", disabled: ctx.disabled, ...triggerProps, children });
6166
+ return /* @__PURE__ */ jsx58("button", { type: "button", disabled: ctx.disabled, ...triggerProps, children });
6050
6167
  }
6051
6168
  function CollapsibleContent({
6052
6169
  children,
@@ -6056,7 +6173,7 @@ function CollapsibleContent({
6056
6173
  }) {
6057
6174
  const ctx = useCollapsible("CollapsibleContent");
6058
6175
  if (!ctx.open && !keepMounted) return null;
6059
- return /* @__PURE__ */ jsx56(
6176
+ return /* @__PURE__ */ jsx58(
6060
6177
  "div",
6061
6178
  {
6062
6179
  id: ctx.contentId,
@@ -6074,9 +6191,9 @@ function CollapsibleContent({
6074
6191
  // src/components/cards/aspect-ratio.tsx
6075
6192
  import { forwardRef as forwardRef18 } from "react";
6076
6193
  import clsx53 from "clsx";
6077
- import { jsx as jsx57 } from "react/jsx-runtime";
6194
+ import { jsx as jsx59 } from "react/jsx-runtime";
6078
6195
  var AspectRatio = forwardRef18(function AspectRatio2({ children, ratio = 1, className, style, ...rest }, ref) {
6079
- return /* @__PURE__ */ jsx57(
6196
+ return /* @__PURE__ */ jsx59(
6080
6197
  "div",
6081
6198
  {
6082
6199
  ref,
@@ -6096,13 +6213,13 @@ import {
6096
6213
  useContext as useContext14,
6097
6214
  useEffect as useEffect18,
6098
6215
  useId as useId19,
6099
- useMemo as useMemo11,
6216
+ useMemo as useMemo13,
6100
6217
  useRef as useRef25,
6101
6218
  useState as useState20
6102
6219
  } from "react";
6103
6220
  import clsx54 from "clsx";
6104
6221
  import { LuChevronLeft as LuChevronLeft2, LuChevronRight as LuChevronRight3 } from "react-icons/lu";
6105
- import { jsx as jsx58, jsxs as jsxs36 } from "react/jsx-runtime";
6222
+ import { jsx as jsx60, jsxs as jsxs36 } from "react/jsx-runtime";
6106
6223
  var CarouselContext = createContext14(null);
6107
6224
  function useCarousel(part) {
6108
6225
  const value = useContext14(CarouselContext);
@@ -6131,7 +6248,7 @@ function Carousel({
6131
6248
  const [paused, setPaused] = useState20(false);
6132
6249
  const [userTookControl, setUserTookControl] = useState20(false);
6133
6250
  const hasAutoplay = autoplayInterval !== void 0 && autoplayInterval > 0;
6134
- const context = useMemo11(
6251
+ const context = useMemo13(
6135
6252
  () => ({
6136
6253
  index,
6137
6254
  setIndex: (next) => {
@@ -6160,7 +6277,7 @@ function Carousel({
6160
6277
  }, autoplayInterval);
6161
6278
  return () => clearInterval(timer);
6162
6279
  }, [hasAutoplay, paused, userTookControl, autoplayInterval, index, count, loop, setIndex]);
6163
- return /* @__PURE__ */ jsx58(CarouselContext.Provider, { value: context, children: /* @__PURE__ */ jsx58(
6280
+ return /* @__PURE__ */ jsx60(CarouselContext.Provider, { value: context, children: /* @__PURE__ */ jsx60(
6164
6281
  "div",
6165
6282
  {
6166
6283
  role: "region",
@@ -6193,7 +6310,7 @@ function Carousel({
6193
6310
  }
6194
6311
  function CarouselViewport({ children, className, ...rest }) {
6195
6312
  const carousel = useCarousel("CarouselViewport");
6196
- return /* @__PURE__ */ jsx58(
6313
+ return /* @__PURE__ */ jsx60(
6197
6314
  "div",
6198
6315
  {
6199
6316
  id: `${carousel.baseId}-viewport`,
@@ -6208,7 +6325,7 @@ function CarouselSlide({ children, className, ...rest }) {
6208
6325
  const carousel = useCarousel("CarouselSlide");
6209
6326
  const slideIndex = carousel.registerSlide();
6210
6327
  const active = slideIndex === carousel.index;
6211
- return /* @__PURE__ */ jsx58(
6328
+ return /* @__PURE__ */ jsx60(
6212
6329
  "div",
6213
6330
  {
6214
6331
  role: "group",
@@ -6238,7 +6355,7 @@ function CarouselControls({ showDots = true, className, ...rest }) {
6238
6355
  className: clsx54("mt-3 flex items-center justify-between gap-3", className),
6239
6356
  ...rest,
6240
6357
  children: [
6241
- /* @__PURE__ */ jsx58(
6358
+ /* @__PURE__ */ jsx60(
6242
6359
  IconButton,
6243
6360
  {
6244
6361
  variant: "neutral",
@@ -6247,10 +6364,10 @@ function CarouselControls({ showDots = true, className, ...rest }) {
6247
6364
  "aria-controls": `${carousel.baseId}-viewport`,
6248
6365
  disabled: !loop && index === 0,
6249
6366
  onClick: () => go(index - 1),
6250
- children: /* @__PURE__ */ jsx58(LuChevronLeft2, { "aria-hidden": true, size: 16 })
6367
+ children: /* @__PURE__ */ jsx60(LuChevronLeft2, { "aria-hidden": true, size: 16 })
6251
6368
  }
6252
6369
  ),
6253
- showDots && /* @__PURE__ */ jsx58("div", { role: "group", "aria-label": `Slide ${index + 1} of ${count}`, className: "flex items-center gap-2", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx58(
6370
+ showDots && /* @__PURE__ */ jsx60("div", { role: "group", "aria-label": `Slide ${index + 1} of ${count}`, className: "flex items-center gap-2", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx60(
6254
6371
  "button",
6255
6372
  {
6256
6373
  type: "button",
@@ -6266,17 +6383,17 @@ function CarouselControls({ showDots = true, className, ...rest }) {
6266
6383
  i
6267
6384
  )) }),
6268
6385
  /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-1.5", children: [
6269
- carousel.hasAutoplay && /* @__PURE__ */ jsx58(
6386
+ carousel.hasAutoplay && /* @__PURE__ */ jsx60(
6270
6387
  IconButton,
6271
6388
  {
6272
6389
  variant: "neutral",
6273
6390
  size: "sm",
6274
6391
  "aria-label": carousel.paused ? "Start automatic slide show" : "Stop automatic slide show",
6275
6392
  onClick: () => carousel.setPaused(!carousel.paused),
6276
- children: /* @__PURE__ */ jsx58("span", { "aria-hidden": true, className: "text-body-tiny font-semibold", children: carousel.paused ? "\u25B6" : "\u275A\u275A" })
6393
+ children: /* @__PURE__ */ jsx60("span", { "aria-hidden": true, className: "text-body-tiny font-semibold", children: carousel.paused ? "\u25B6" : "\u275A\u275A" })
6277
6394
  }
6278
6395
  ),
6279
- /* @__PURE__ */ jsx58(
6396
+ /* @__PURE__ */ jsx60(
6280
6397
  IconButton,
6281
6398
  {
6282
6399
  variant: "neutral",
@@ -6285,7 +6402,7 @@ function CarouselControls({ showDots = true, className, ...rest }) {
6285
6402
  "aria-controls": `${carousel.baseId}-viewport`,
6286
6403
  disabled: !loop && index === count - 1,
6287
6404
  onClick: () => go(index + 1),
6288
- children: /* @__PURE__ */ jsx58(LuChevronRight3, { "aria-hidden": true, size: 16 })
6405
+ children: /* @__PURE__ */ jsx60(LuChevronRight3, { "aria-hidden": true, size: 16 })
6289
6406
  }
6290
6407
  )
6291
6408
  ] })
@@ -6301,12 +6418,12 @@ import {
6301
6418
  useContext as useContext15,
6302
6419
  useEffect as useEffect19,
6303
6420
  useId as useId20,
6304
- useMemo as useMemo12,
6421
+ useMemo as useMemo14,
6305
6422
  useRef as useRef26,
6306
6423
  useState as useState21
6307
6424
  } from "react";
6308
6425
  import clsx55 from "clsx";
6309
- import { jsx as jsx59, jsxs as jsxs37 } from "react/jsx-runtime";
6426
+ import { jsx as jsx61, jsxs as jsxs37 } from "react/jsx-runtime";
6310
6427
  var ResizableContext = createContext15(null);
6311
6428
  function useResizable(part) {
6312
6429
  const value = useContext15(ResizableContext);
@@ -6332,7 +6449,7 @@ function Resizable({
6332
6449
  const containerRef = useRef26(null);
6333
6450
  const baseId = useId20();
6334
6451
  const [dragging, setDragging] = useState21(false);
6335
- const context = useMemo12(
6452
+ const context = useMemo14(
6336
6453
  () => ({
6337
6454
  direction,
6338
6455
  size: size2,
@@ -6346,7 +6463,7 @@ function Resizable({
6346
6463
  }),
6347
6464
  [direction, size2, setSize, min, max, baseId, dragging]
6348
6465
  );
6349
- return /* @__PURE__ */ jsx59(ResizableContext.Provider, { value: context, children: /* @__PURE__ */ jsx59(
6466
+ return /* @__PURE__ */ jsx61(ResizableContext.Provider, { value: context, children: /* @__PURE__ */ jsx61(
6350
6467
  "div",
6351
6468
  {
6352
6469
  ref: containerRef,
@@ -6370,7 +6487,7 @@ function ResizablePanel({ children, which, className, ...rest }) {
6370
6487
  return (
6371
6488
  // A panel holds arbitrary content, which may be entirely static — so it needs the tab
6372
6489
  // stop `ScrollArea` adds while overflowing, not just the scrollbar styling.
6373
- /* @__PURE__ */ jsx59(
6490
+ /* @__PURE__ */ jsx61(
6374
6491
  ScrollArea,
6375
6492
  {
6376
6493
  axis: "both",
@@ -6474,14 +6591,14 @@ function ResizableHandle({
6474
6591
  ),
6475
6592
  ...rest,
6476
6593
  children: [
6477
- /* @__PURE__ */ jsx59(
6594
+ /* @__PURE__ */ jsx61(
6478
6595
  "span",
6479
6596
  {
6480
6597
  "aria-hidden": true,
6481
6598
  className: clsx55("absolute", horizontal ? "inset-y-0 -inset-x-1.5" : "-inset-y-1.5 inset-x-0")
6482
6599
  }
6483
6600
  ),
6484
- withGrip && /* @__PURE__ */ jsx59(
6601
+ withGrip && /* @__PURE__ */ jsx61(
6485
6602
  "span",
6486
6603
  {
6487
6604
  "aria-hidden": true,
@@ -6490,7 +6607,7 @@ function ResizableHandle({
6490
6607
  "opacity-0 transition-opacity group-hover:opacity-100 group-focus-visible:opacity-100",
6491
6608
  horizontal ? "h-6 w-2.5" : "h-2.5 w-6"
6492
6609
  ),
6493
- children: /* @__PURE__ */ jsx59("span", { className: clsx55("rounded-full bg-default-tertiary", horizontal ? "h-2.5 w-px" : "h-px w-2.5") })
6610
+ children: /* @__PURE__ */ jsx61("span", { className: clsx55("rounded-full bg-default-tertiary", horizontal ? "h-2.5 w-px" : "h-px w-2.5") })
6494
6611
  }
6495
6612
  )
6496
6613
  ]
@@ -6501,7 +6618,7 @@ function ResizableHandle({
6501
6618
 
6502
6619
  // src/components/chrome/page-heading.tsx
6503
6620
  import clsx56 from "clsx";
6504
- import { jsx as jsx60, jsxs as jsxs38 } from "react/jsx-runtime";
6621
+ import { jsx as jsx62, jsxs as jsxs38 } from "react/jsx-runtime";
6505
6622
  var TITLE = {
6506
6623
  // `text-2xl` was stock Tailwind rather than the design tokens. Same 24px, now on-token.
6507
6624
  page: "text-heading font-semibold text-default",
@@ -6527,25 +6644,25 @@ function PageHeading({
6527
6644
  }) {
6528
6645
  const Tag = as ?? (size2 === "section" ? "h2" : "h1");
6529
6646
  const heading = /* @__PURE__ */ jsxs38("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
6530
- /* @__PURE__ */ jsx60(Tag, { className: clsx56(TITLE[size2], truncateTitle && "truncate"), children: title }),
6531
- subtitle && /* @__PURE__ */ jsx60("p", { className: SUBTITLE[size2], children: subtitle })
6647
+ /* @__PURE__ */ jsx62(Tag, { className: clsx56(TITLE[size2], truncateTitle && "truncate"), children: title }),
6648
+ subtitle && /* @__PURE__ */ jsx62("p", { className: SUBTITLE[size2], children: subtitle })
6532
6649
  ] });
6533
- if (!actions) return className ? /* @__PURE__ */ jsx60("div", { className, children: heading }) : heading;
6650
+ if (!actions) return className ? /* @__PURE__ */ jsx62("div", { className, children: heading }) : heading;
6534
6651
  return /* @__PURE__ */ jsxs38("div", { className: clsx56("flex items-start justify-between gap-4", className), children: [
6535
6652
  heading,
6536
- /* @__PURE__ */ jsx60("div", { className: "flex shrink-0 items-center gap-2", children: actions })
6653
+ /* @__PURE__ */ jsx62("div", { className: "flex shrink-0 items-center gap-2", children: actions })
6537
6654
  ] });
6538
6655
  }
6539
6656
 
6540
6657
  // src/components/chrome/page-toolbar.tsx
6541
6658
  import clsx57 from "clsx";
6542
- import { jsx as jsx61 } from "react/jsx-runtime";
6659
+ import { jsx as jsx63 } from "react/jsx-runtime";
6543
6660
  var SIZE8 = {
6544
6661
  sm: "min-h-[56px] px-4 py-3 md:px-7",
6545
6662
  md: "min-h-[72px] px-4 py-4 md:px-7"
6546
6663
  };
6547
6664
  function PageToolbar({ children, wrap, size: size2 = "md", className }) {
6548
- return /* @__PURE__ */ jsx61(
6665
+ return /* @__PURE__ */ jsx63(
6549
6666
  "div",
6550
6667
  {
6551
6668
  className: clsx57(
@@ -6561,22 +6678,22 @@ function PageToolbar({ children, wrap, size: size2 = "md", className }) {
6561
6678
 
6562
6679
  // src/components/chrome/filter-bar.tsx
6563
6680
  import clsx58 from "clsx";
6564
- import { jsx as jsx62, jsxs as jsxs39 } from "react/jsx-runtime";
6681
+ import { jsx as jsx64, jsxs as jsxs39 } from "react/jsx-runtime";
6565
6682
  var GAP2 = {
6566
6683
  sm: "gap-2",
6567
6684
  md: "gap-3"
6568
6685
  };
6569
6686
  function FilterBar({ children, trailing, size: size2 = "md", className }) {
6570
- return /* @__PURE__ */ jsx62(ControlSizeProvider, { size: size2, children: /* @__PURE__ */ jsxs39("div", { className: clsx58("flex flex-wrap items-center", GAP2[size2], className), children: [
6687
+ return /* @__PURE__ */ jsx64(ControlSizeProvider, { size: size2, children: /* @__PURE__ */ jsxs39("div", { className: clsx58("flex flex-wrap items-center", GAP2[size2], className), children: [
6571
6688
  children,
6572
- trailing && /* @__PURE__ */ jsx62("div", { className: clsx58("ml-auto flex items-center", GAP2[size2]), children: trailing })
6689
+ trailing && /* @__PURE__ */ jsx64("div", { className: clsx58("ml-auto flex items-center", GAP2[size2]), children: trailing })
6573
6690
  ] }) });
6574
6691
  }
6575
6692
 
6576
6693
  // src/components/chrome/tabs.tsx
6577
6694
  import { useId as useId21 } from "react";
6578
6695
  import clsx59 from "clsx";
6579
- import { jsx as jsx63, jsxs as jsxs40 } from "react/jsx-runtime";
6696
+ import { jsx as jsx65, jsxs as jsxs40 } from "react/jsx-runtime";
6580
6697
  var SIZE9 = {
6581
6698
  underline: {
6582
6699
  sm: { strip: "gap-4", tab: "px-0.5 py-1.5 text-body-xs" },
@@ -6620,7 +6737,7 @@ function Tabs({
6620
6737
  loop: true,
6621
6738
  defaultIndex: selectedIndex
6622
6739
  });
6623
- return /* @__PURE__ */ jsx63(
6740
+ return /* @__PURE__ */ jsx65(
6624
6741
  "div",
6625
6742
  {
6626
6743
  role: "tablist",
@@ -6675,7 +6792,7 @@ function Tabs({
6675
6792
  ),
6676
6793
  children: [
6677
6794
  tab.label,
6678
- tab.count !== void 0 && /* @__PURE__ */ jsx63(
6795
+ tab.count !== void 0 && /* @__PURE__ */ jsx65(
6679
6796
  "span",
6680
6797
  {
6681
6798
  className: clsx59(
@@ -6703,7 +6820,7 @@ function TabsPanel({
6703
6820
  ...rest
6704
6821
  }) {
6705
6822
  if (!active && !keepMounted) return null;
6706
- return /* @__PURE__ */ jsx63(
6823
+ return /* @__PURE__ */ jsx65(
6707
6824
  "div",
6708
6825
  {
6709
6826
  role: "tabpanel",
@@ -6720,7 +6837,7 @@ function TabsPanel({
6720
6837
 
6721
6838
  // src/components/chrome/nav-item.tsx
6722
6839
  import clsx60 from "clsx";
6723
- import { Fragment as Fragment8, jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
6840
+ import { Fragment as Fragment8, jsx as jsx66, jsxs as jsxs41 } from "react/jsx-runtime";
6724
6841
  var SIZE10 = {
6725
6842
  sm: { box: "h-9 gap-2 rounded-lg px-3 py-1.5", label: "text-body-xs", square: "w-9" },
6726
6843
  md: { box: "h-11 gap-3 rounded-xl px-3.5 py-2.5", label: "text-body-sm", square: "w-11" }
@@ -6799,13 +6916,13 @@ function NavItem({
6799
6916
  ...rest
6800
6917
  };
6801
6918
  const content = /* @__PURE__ */ jsxs41(Fragment8, { children: [
6802
- icon != null ? /* @__PURE__ */ jsx64("span", { "aria-hidden": true, className: "shrink-0 [&_svg]:size-4", children: icon }) : (
6919
+ icon != null ? /* @__PURE__ */ jsx66("span", { "aria-hidden": true, className: "shrink-0 [&_svg]:size-4", children: icon }) : (
6803
6920
  // Icons are optional, but the collapsed rail hides the label — so a row with neither
6804
6921
  // renders as an empty box. Through 0.5.0 that is exactly what a nav without icons
6805
6922
  // collapsed to, the docs site's own 36-row sidebar included. The monogram is
6806
6923
  // decorative in the same way the icon is: the `sr-only` label below still names the
6807
6924
  // row.
6808
- collapsed && /* @__PURE__ */ jsx64(
6925
+ collapsed && /* @__PURE__ */ jsx66(
6809
6926
  "span",
6810
6927
  {
6811
6928
  "aria-hidden": true,
@@ -6814,7 +6931,7 @@ function NavItem({
6814
6931
  }
6815
6932
  )
6816
6933
  ),
6817
- /* @__PURE__ */ jsx64(
6934
+ /* @__PURE__ */ jsx66(
6818
6935
  "span",
6819
6936
  {
6820
6937
  className: clsx60(
@@ -6825,7 +6942,7 @@ function NavItem({
6825
6942
  children: label
6826
6943
  }
6827
6944
  ),
6828
- indicator && /* @__PURE__ */ jsx64(
6945
+ indicator && /* @__PURE__ */ jsx66(
6829
6946
  "span",
6830
6947
  {
6831
6948
  role: "status",
@@ -6835,16 +6952,16 @@ function NavItem({
6835
6952
  )
6836
6953
  ] });
6837
6954
  if (asChild) {
6838
- return /* @__PURE__ */ jsx64(Slot, { wrapChildren: () => content, ...rootProps, children });
6955
+ return /* @__PURE__ */ jsx66(Slot, { wrapChildren: () => content, ...rootProps, children });
6839
6956
  }
6840
- return /* @__PURE__ */ jsx64("span", { ...rootProps, children: content });
6957
+ return /* @__PURE__ */ jsx66("span", { ...rootProps, children: content });
6841
6958
  }
6842
6959
 
6843
6960
  // src/components/chrome/eyebrow-label.tsx
6844
6961
  import clsx61 from "clsx";
6845
- import { jsx as jsx65 } from "react/jsx-runtime";
6962
+ import { jsx as jsx67 } from "react/jsx-runtime";
6846
6963
  function EyebrowLabel({ children, variant = "uppercase", className }) {
6847
- return /* @__PURE__ */ jsx65(
6964
+ return /* @__PURE__ */ jsx67(
6848
6965
  "p",
6849
6966
  {
6850
6967
  className: clsx61(
@@ -6860,9 +6977,9 @@ function EyebrowLabel({ children, variant = "uppercase", className }) {
6860
6977
  // src/components/chrome/separator.tsx
6861
6978
  import { forwardRef as forwardRef19 } from "react";
6862
6979
  import clsx62 from "clsx";
6863
- import { jsx as jsx66 } from "react/jsx-runtime";
6980
+ import { jsx as jsx68 } from "react/jsx-runtime";
6864
6981
  var Separator = forwardRef19(function Separator2({ orientation = "horizontal", decorative = true, className, ...rest }, ref) {
6865
- return /* @__PURE__ */ jsx66(
6982
+ return /* @__PURE__ */ jsx68(
6866
6983
  "div",
6867
6984
  {
6868
6985
  ref,
@@ -6882,13 +6999,13 @@ var Separator = forwardRef19(function Separator2({ orientation = "horizontal", d
6882
6999
  // src/components/chrome/kbd.tsx
6883
7000
  import { forwardRef as forwardRef20 } from "react";
6884
7001
  import clsx63 from "clsx";
6885
- import { jsx as jsx67 } from "react/jsx-runtime";
7002
+ import { jsx as jsx69 } from "react/jsx-runtime";
6886
7003
  var SIZE11 = {
6887
7004
  sm: "h-4 min-w-4 px-1 text-body-tiny",
6888
7005
  md: "h-5 min-w-5 px-1.5 text-body-xs"
6889
7006
  };
6890
7007
  var Kbd = forwardRef20(function Kbd2({ children, size: size2 = "md", className, ...rest }, ref) {
6891
- return /* @__PURE__ */ jsx67(
7008
+ return /* @__PURE__ */ jsx69(
6892
7009
  "kbd",
6893
7010
  {
6894
7011
  ref,
@@ -6909,15 +7026,15 @@ var Kbd = forwardRef20(function Kbd2({ children, size: size2 = "md", className,
6909
7026
  import { forwardRef as forwardRef21 } from "react";
6910
7027
  import clsx64 from "clsx";
6911
7028
  import { LuChevronRight as LuChevronRight4 } from "react-icons/lu";
6912
- import { jsx as jsx68, jsxs as jsxs42 } from "react/jsx-runtime";
7029
+ import { jsx as jsx70, jsxs as jsxs42 } from "react/jsx-runtime";
6913
7030
  var Breadcrumb = forwardRef21(function Breadcrumb2({ children, label = "Breadcrumb", className, ...rest }, ref) {
6914
- return /* @__PURE__ */ jsx68("nav", { ref, "aria-label": label, "data-slot": "breadcrumb", ...rest, children: /* @__PURE__ */ jsx68("ol", { className: clsx64("flex flex-wrap items-center gap-1.5 p-0 text-body-xs", className), children }) });
7031
+ return /* @__PURE__ */ jsx70("nav", { ref, "aria-label": label, "data-slot": "breadcrumb", ...rest, children: /* @__PURE__ */ jsx70("ol", { className: clsx64("flex flex-wrap items-center gap-1.5 p-0 text-body-xs", className), children }) });
6915
7032
  });
6916
7033
  var BreadcrumbItem = forwardRef21(
6917
7034
  function BreadcrumbItem2({ children, current = false, asChild = false, first = false, className, ...rest }, ref) {
6918
7035
  return /* @__PURE__ */ jsxs42("li", { className: "flex items-center gap-1.5", children: [
6919
- !first && /* @__PURE__ */ jsx68(LuChevronRight4, { "aria-hidden": true, className: "size-3.5 shrink-0 text-icon-default-tertiary" }),
6920
- current ? /* @__PURE__ */ jsx68("span", { "aria-current": "page", className: clsx64("font-medium text-default", className), children }) : asChild ? /* @__PURE__ */ jsx68(
7036
+ !first && /* @__PURE__ */ jsx70(LuChevronRight4, { "aria-hidden": true, className: "size-3.5 shrink-0 text-icon-default-tertiary" }),
7037
+ current ? /* @__PURE__ */ jsx70("span", { "aria-current": "page", className: clsx64("font-medium text-default", className), children }) : asChild ? /* @__PURE__ */ jsx70(
6921
7038
  Slot,
6922
7039
  {
6923
7040
  className: clsx64(
@@ -6928,7 +7045,7 @@ var BreadcrumbItem = forwardRef21(
6928
7045
  ...rest,
6929
7046
  children
6930
7047
  }
6931
- ) : /* @__PURE__ */ jsx68(
7048
+ ) : /* @__PURE__ */ jsx70(
6932
7049
  "a",
6933
7050
  {
6934
7051
  ref,
@@ -6947,8 +7064,8 @@ var BreadcrumbItem = forwardRef21(
6947
7064
  var BreadcrumbEllipsis = forwardRef21(
6948
7065
  function BreadcrumbEllipsis2({ className, ...rest }, ref) {
6949
7066
  return /* @__PURE__ */ jsxs42("li", { className: "flex items-center gap-1.5", children: [
6950
- /* @__PURE__ */ jsx68(LuChevronRight4, { "aria-hidden": true, className: "size-3.5 shrink-0 text-icon-default-tertiary" }),
6951
- /* @__PURE__ */ jsx68(
7067
+ /* @__PURE__ */ jsx70(LuChevronRight4, { "aria-hidden": true, className: "size-3.5 shrink-0 text-icon-default-tertiary" }),
7068
+ /* @__PURE__ */ jsx70(
6952
7069
  "span",
6953
7070
  {
6954
7071
  ref,
@@ -6966,7 +7083,7 @@ var BreadcrumbEllipsis = forwardRef21(
6966
7083
  import { forwardRef as forwardRef22 } from "react";
6967
7084
  import clsx65 from "clsx";
6968
7085
  import { LuChevronLeft as LuChevronLeft3, LuChevronRight as LuChevronRight5 } from "react-icons/lu";
6969
- import { jsx as jsx69, jsxs as jsxs43 } from "react/jsx-runtime";
7086
+ import { jsx as jsx71, jsxs as jsxs43 } from "react/jsx-runtime";
6970
7087
  var GAP3 = "\u2026";
6971
7088
  function paginationRange(page, pageCount, siblingCount = 1) {
6972
7089
  const totalSlots = siblingCount * 2 + 5;
@@ -7023,7 +7140,7 @@ var Pagination = forwardRef22(function Pagination2({
7023
7140
  className: clsx65("flex items-center gap-1.5", className),
7024
7141
  ...rest,
7025
7142
  children: [
7026
- /* @__PURE__ */ jsx69(
7143
+ /* @__PURE__ */ jsx71(
7027
7144
  "button",
7028
7145
  {
7029
7146
  type: "button",
@@ -7031,19 +7148,19 @@ var Pagination = forwardRef22(function Pagination2({
7031
7148
  disabled: page <= 1,
7032
7149
  onClick: () => go(page - 1),
7033
7150
  className: ARROW_BASE,
7034
- children: /* @__PURE__ */ jsx69(LuChevronLeft3, { "aria-hidden": true, className: "size-4" })
7151
+ children: /* @__PURE__ */ jsx71(LuChevronLeft3, { "aria-hidden": true, className: "size-4" })
7035
7152
  }
7036
7153
  ),
7037
7154
  type === "dots" ? (
7038
7155
  // The dots form has no room for numbers, so the list itself is the only place the
7039
7156
  // position can be stated — hence the live-region-free but explicitly named group.
7040
- /* @__PURE__ */ jsx69(
7157
+ /* @__PURE__ */ jsx71(
7041
7158
  "span",
7042
7159
  {
7043
7160
  role: "group",
7044
7161
  "aria-label": `Page ${page} of ${pageCount}`,
7045
7162
  className: "flex items-center gap-2 px-2",
7046
- children: Array.from({ length: pageCount }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx69(
7163
+ children: Array.from({ length: pageCount }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx71(
7047
7164
  "button",
7048
7165
  {
7049
7166
  type: "button",
@@ -7061,7 +7178,7 @@ var Pagination = forwardRef22(function Pagination2({
7061
7178
  }
7062
7179
  )
7063
7180
  ) : paginationRange(page, pageCount, siblingCount).map(
7064
- (entry, index) => entry === GAP3 ? /* @__PURE__ */ jsx69(
7181
+ (entry, index) => entry === GAP3 ? /* @__PURE__ */ jsx71(
7065
7182
  "span",
7066
7183
  {
7067
7184
  "aria-hidden": true,
@@ -7069,7 +7186,7 @@ var Pagination = forwardRef22(function Pagination2({
7069
7186
  children: GAP3
7070
7187
  },
7071
7188
  `gap-${index}`
7072
- ) : /* @__PURE__ */ jsx69(
7189
+ ) : /* @__PURE__ */ jsx71(
7073
7190
  "button",
7074
7191
  {
7075
7192
  type: "button",
@@ -7086,7 +7203,7 @@ var Pagination = forwardRef22(function Pagination2({
7086
7203
  entry
7087
7204
  )
7088
7205
  ),
7089
- /* @__PURE__ */ jsx69(
7206
+ /* @__PURE__ */ jsx71(
7090
7207
  "button",
7091
7208
  {
7092
7209
  type: "button",
@@ -7094,7 +7211,7 @@ var Pagination = forwardRef22(function Pagination2({
7094
7211
  disabled: page >= pageCount,
7095
7212
  onClick: () => go(page + 1),
7096
7213
  className: ARROW_BASE,
7097
- children: /* @__PURE__ */ jsx69(LuChevronRight5, { "aria-hidden": true, className: "size-4" })
7214
+ children: /* @__PURE__ */ jsx71(LuChevronRight5, { "aria-hidden": true, className: "size-4" })
7098
7215
  }
7099
7216
  )
7100
7217
  ]
@@ -7105,10 +7222,10 @@ var Pagination = forwardRef22(function Pagination2({
7105
7222
  // src/components/chrome/navigation-menu.tsx
7106
7223
  import { forwardRef as forwardRef23 } from "react";
7107
7224
  import clsx66 from "clsx";
7108
- import { Fragment as Fragment9, jsx as jsx70, jsxs as jsxs44 } from "react/jsx-runtime";
7225
+ import { Fragment as Fragment9, jsx as jsx72, jsxs as jsxs44 } from "react/jsx-runtime";
7109
7226
  var NavigationMenu = forwardRef23(
7110
7227
  function NavigationMenu2({ children, orientation = "horizontal", label, className, ...rest }, ref) {
7111
- return /* @__PURE__ */ jsx70("nav", { ref, "aria-label": label, "data-slot": "navigation-menu", ...rest, children: /* @__PURE__ */ jsx70(
7228
+ return /* @__PURE__ */ jsx72("nav", { ref, "aria-label": label, "data-slot": "navigation-menu", ...rest, children: /* @__PURE__ */ jsx72(
7112
7229
  "ul",
7113
7230
  {
7114
7231
  className: clsx66(
@@ -7124,8 +7241,8 @@ var NavigationMenu = forwardRef23(
7124
7241
  var NavigationMenuItem = forwardRef23(
7125
7242
  function NavigationMenuItem2({ children, active = false, variant = "pill", asChild = false, icon, className, ...rest }, ref) {
7126
7243
  const content = /* @__PURE__ */ jsxs44(Fragment9, { children: [
7127
- icon && /* @__PURE__ */ jsx70("span", { "aria-hidden": true, className: "shrink-0 [&_svg]:size-4", children: icon }),
7128
- /* @__PURE__ */ jsx70("span", { className: "min-w-0 truncate", children })
7244
+ icon && /* @__PURE__ */ jsx72("span", { "aria-hidden": true, className: "shrink-0 [&_svg]:size-4", children: icon }),
7245
+ /* @__PURE__ */ jsx72("span", { className: "min-w-0 truncate", children })
7129
7246
  ] });
7130
7247
  const linkProps = {
7131
7248
  "aria-current": active ? "page" : void 0,
@@ -7143,18 +7260,18 @@ var NavigationMenuItem = forwardRef23(
7143
7260
  ),
7144
7261
  ...rest
7145
7262
  };
7146
- return /* @__PURE__ */ jsx70("li", { children: asChild ? /* @__PURE__ */ jsx70(Slot, { wrapChildren: () => content, ...linkProps, children }) : /* @__PURE__ */ jsx70("a", { ref, ...linkProps, children: content }) });
7263
+ return /* @__PURE__ */ jsx72("li", { children: asChild ? /* @__PURE__ */ jsx72(Slot, { wrapChildren: () => content, ...linkProps, children }) : /* @__PURE__ */ jsx72("a", { ref, ...linkProps, children: content }) });
7147
7264
  }
7148
7265
  );
7149
7266
 
7150
7267
  // src/components/chrome/typography.tsx
7151
7268
  import { forwardRef as forwardRef24 } from "react";
7152
7269
  import clsx67 from "clsx";
7153
- import { jsx as jsx71 } from "react/jsx-runtime";
7270
+ import { jsx as jsx73 } from "react/jsx-runtime";
7154
7271
  function textComponent(displayName, defaultElement, classes) {
7155
7272
  const Component = forwardRef24(function TextComponent({ children, asChild = false, className, ...rest }, ref) {
7156
7273
  const Root = asChild ? Slot : defaultElement;
7157
- return /* @__PURE__ */ jsx71(Root, { ref, className: clsx67(classes, className), ...rest, children });
7274
+ return /* @__PURE__ */ jsx73(Root, { ref, className: clsx67(classes, className), ...rest, children });
7158
7275
  });
7159
7276
  Component.displayName = displayName;
7160
7277
  return Component;
@@ -7176,7 +7293,7 @@ var Heading = textComponent("Heading", "h2", "text-heading font-semibold text-de
7176
7293
  var Subheading = textComponent("Subheading", "h3", "text-subheading text-default");
7177
7294
  var TextLink = forwardRef24(function TextLink2({ children, asChild = false, className, ...rest }, ref) {
7178
7295
  const Root = asChild ? Slot : "a";
7179
- return /* @__PURE__ */ jsx71(
7296
+ return /* @__PURE__ */ jsx73(
7180
7297
  Root,
7181
7298
  {
7182
7299
  ref,
@@ -7198,7 +7315,7 @@ var LIST_MARKER = {
7198
7315
  };
7199
7316
  var TextList = forwardRef24(function TextList2({ children, variant = "bulleted", density = "default", className, ...rest }, ref) {
7200
7317
  const Root = variant === "numbered" ? "ol" : "ul";
7201
- return /* @__PURE__ */ jsx71(
7318
+ return /* @__PURE__ */ jsx73(
7202
7319
  Root,
7203
7320
  {
7204
7321
  ref,
@@ -7214,7 +7331,7 @@ var TextList = forwardRef24(function TextList2({ children, variant = "bulleted",
7214
7331
  );
7215
7332
  });
7216
7333
  var TextListItem = forwardRef24(function TextListItem2({ children, className, ...rest }, ref) {
7217
- return /* @__PURE__ */ jsx71("li", { ref, className: clsx67("text-body text-default", className), ...rest, children });
7334
+ return /* @__PURE__ */ jsx73("li", { ref, className: clsx67("text-body text-default", className), ...rest, children });
7218
7335
  });
7219
7336
 
7220
7337
  // src/components/widgets/widget-header.tsx
@@ -7222,7 +7339,7 @@ import clsx69 from "clsx";
7222
7339
 
7223
7340
  // src/components/widgets/widget-title.tsx
7224
7341
  import clsx68 from "clsx";
7225
- import { jsx as jsx72 } from "react/jsx-runtime";
7342
+ import { jsx as jsx74 } from "react/jsx-runtime";
7226
7343
  var sizeStyles5 = {
7227
7344
  sm: "text-subheading-sm font-semibold leading-none",
7228
7345
  // Was `text-[18px]`, which had no step on the type scale (Scale 04 = 16, Scale 05 = 20).
@@ -7232,11 +7349,11 @@ var sizeStyles5 = {
7232
7349
  lg: "text-subheading font-semibold leading-[1.2]"
7233
7350
  };
7234
7351
  function WidgetTitle({ children, size: size2 = "sm", className }) {
7235
- return /* @__PURE__ */ jsx72("h3", { className: clsx68(sizeStyles5[size2], "text-default", className), children });
7352
+ return /* @__PURE__ */ jsx74("h3", { className: clsx68(sizeStyles5[size2], "text-default", className), children });
7236
7353
  }
7237
7354
 
7238
7355
  // src/components/widgets/widget-header.tsx
7239
- import { jsx as jsx73, jsxs as jsxs45 } from "react/jsx-runtime";
7356
+ import { jsx as jsx75, jsxs as jsxs45 } from "react/jsx-runtime";
7240
7357
  var eyebrowStyles = {
7241
7358
  uppercase: "text-body-tiny font-medium uppercase tracking-[0.66px] text-default-secondary",
7242
7359
  plain: "text-body-xs leading-[1.4] text-default-secondary"
@@ -7253,9 +7370,9 @@ function WidgetHeader({
7253
7370
  }) {
7254
7371
  return /* @__PURE__ */ jsxs45("div", { className: clsx69("flex items-start justify-between gap-2", className), children: [
7255
7372
  /* @__PURE__ */ jsxs45("div", { className: "min-w-0 flex-1", children: [
7256
- eyebrow && /* @__PURE__ */ jsx73("p", { className: eyebrowStyles[eyebrowVariant], children: eyebrow }),
7257
- /* @__PURE__ */ jsx73(WidgetTitle, { size: titleSize, children: title }),
7258
- subtitle && /* @__PURE__ */ jsx73("p", { className: "mt-1 text-body-xs text-default-secondary leading-snug", children: subtitle })
7373
+ eyebrow && /* @__PURE__ */ jsx75("p", { className: eyebrowStyles[eyebrowVariant], children: eyebrow }),
7374
+ /* @__PURE__ */ jsx75(WidgetTitle, { size: titleSize, children: title }),
7375
+ subtitle && /* @__PURE__ */ jsx75("p", { className: "mt-1 text-body-xs text-default-secondary leading-snug", children: subtitle })
7259
7376
  ] }),
7260
7377
  /* @__PURE__ */ jsxs45("div", { className: "flex shrink-0 items-center gap-2", children: [
7261
7378
  badge,
@@ -7266,23 +7383,23 @@ function WidgetHeader({
7266
7383
 
7267
7384
  // src/components/widgets/widget-footer.tsx
7268
7385
  import clsx70 from "clsx";
7269
- import { jsx as jsx74, jsxs as jsxs46 } from "react/jsx-runtime";
7386
+ import { jsx as jsx76, jsxs as jsxs46 } from "react/jsx-runtime";
7270
7387
  function WidgetFooter({ caption, subcaption, action, className }) {
7271
7388
  return /* @__PURE__ */ jsxs46("div", { className: clsx70("flex items-center gap-3", className), children: [
7272
7389
  caption && /* @__PURE__ */ jsxs46("div", { className: "flex items-stretch gap-3 flex-1 min-w-0", children: [
7273
- /* @__PURE__ */ jsx74("div", { className: "w-0.5 shrink-0 self-stretch rounded-full bg-brand" }),
7390
+ /* @__PURE__ */ jsx76("div", { className: "w-0.5 shrink-0 self-stretch rounded-full bg-brand" }),
7274
7391
  /* @__PURE__ */ jsxs46("div", { className: "min-w-0", children: [
7275
- /* @__PURE__ */ jsx74("p", { className: "text-body-sm font-medium text-default leading-snug", children: caption }),
7276
- subcaption && /* @__PURE__ */ jsx74("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: subcaption })
7392
+ /* @__PURE__ */ jsx76("p", { className: "text-body-sm font-medium text-default leading-snug", children: caption }),
7393
+ subcaption && /* @__PURE__ */ jsx76("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: subcaption })
7277
7394
  ] })
7278
7395
  ] }),
7279
- action && /* @__PURE__ */ jsx74("div", { className: "ml-auto shrink-0", children: action })
7396
+ action && /* @__PURE__ */ jsx76("div", { className: "ml-auto shrink-0", children: action })
7280
7397
  ] });
7281
7398
  }
7282
7399
 
7283
7400
  // src/components/stats/stat-tile.tsx
7284
7401
  import clsx71 from "clsx";
7285
- import { jsx as jsx75, jsxs as jsxs47 } from "react/jsx-runtime";
7402
+ import { jsx as jsx77, jsxs as jsxs47 } from "react/jsx-runtime";
7286
7403
  var DOT_TONE = {
7287
7404
  neutral: "bg-status-dot-neutral",
7288
7405
  info: "bg-status-dot-info",
@@ -7303,16 +7420,16 @@ function StatTile({ label, value, tone, dotColor, className }) {
7303
7420
  ),
7304
7421
  children: [
7305
7422
  /* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-1.5", children: [
7306
- showDot && /* @__PURE__ */ jsx75(
7423
+ showDot && /* @__PURE__ */ jsx77(
7307
7424
  "span",
7308
7425
  {
7309
7426
  className: clsx71("size-2 shrink-0 rounded-full", tone && DOT_TONE[tone]),
7310
7427
  style: tone ? void 0 : { backgroundColor: dotColor }
7311
7428
  }
7312
7429
  ),
7313
- /* @__PURE__ */ jsx75("span", { className: "text-body-xs font-medium text-default-secondary whitespace-nowrap", children: label })
7430
+ /* @__PURE__ */ jsx77("span", { className: "text-body-xs font-medium text-default-secondary whitespace-nowrap", children: label })
7314
7431
  ] }),
7315
- /* @__PURE__ */ jsx75("span", { className: "text-heading font-semibold text-default leading-none", children: value })
7432
+ /* @__PURE__ */ jsx77("span", { className: "text-heading font-semibold text-default leading-none", children: value })
7316
7433
  ]
7317
7434
  }
7318
7435
  );
@@ -7320,7 +7437,7 @@ function StatTile({ label, value, tone, dotColor, className }) {
7320
7437
 
7321
7438
  // src/components/stats/stat-number.tsx
7322
7439
  import clsx72 from "clsx";
7323
- import { jsx as jsx76, jsxs as jsxs48 } from "react/jsx-runtime";
7440
+ import { jsx as jsx78, jsxs as jsxs48 } from "react/jsx-runtime";
7324
7441
  var sizeStyles6 = {
7325
7442
  sm: "text-subtitle",
7326
7443
  md: "text-subtitle-lg",
@@ -7338,7 +7455,7 @@ function StatNumber({ value, unit, size: size2 = "md", weight = "bold", color, c
7338
7455
  style: color ? { color } : void 0,
7339
7456
  children: [
7340
7457
  value,
7341
- unit && /* @__PURE__ */ jsx76("span", { className: "ml-1 text-subheading font-medium text-default-secondary", children: unit })
7458
+ unit && /* @__PURE__ */ jsx78("span", { className: "ml-1 text-subheading font-medium text-default-secondary", children: unit })
7342
7459
  ]
7343
7460
  }
7344
7461
  );
@@ -7346,7 +7463,7 @@ function StatNumber({ value, unit, size: size2 = "md", weight = "bold", color, c
7346
7463
 
7347
7464
  // src/components/stats/score-value.tsx
7348
7465
  import clsx73 from "clsx";
7349
- import { jsx as jsx77, jsxs as jsxs49 } from "react/jsx-runtime";
7466
+ import { jsx as jsx79, jsxs as jsxs49 } from "react/jsx-runtime";
7350
7467
  var DEFAULT_SCORE_THRESHOLDS = { danger: 80, warning: 65, neutral: 50 };
7351
7468
  function getScoreTone(score, {
7352
7469
  direction = "higher-is-worse",
@@ -7391,14 +7508,14 @@ function ScoreValue({
7391
7508
  const numeric = typeof value === "number" ? value : Number(value);
7392
7509
  const resolved = tone === "auto" ? Number.isFinite(numeric) ? getScoreTone(numeric, { direction, thresholds }) : "default" : tone;
7393
7510
  return /* @__PURE__ */ jsxs49("span", { className: clsx73("inline-flex items-baseline gap-1", className), children: [
7394
- /* @__PURE__ */ jsx77("span", { className: clsx73(SIZE12[size2], WEIGHT[weight], TONE2[resolved]), children: value }),
7395
- label && /* @__PURE__ */ jsx77("span", { className: "text-body-xs text-default-secondary whitespace-nowrap", children: label })
7511
+ /* @__PURE__ */ jsx79("span", { className: clsx73(SIZE12[size2], WEIGHT[weight], TONE2[resolved]), children: value }),
7512
+ label && /* @__PURE__ */ jsx79("span", { className: "text-body-xs text-default-secondary whitespace-nowrap", children: label })
7396
7513
  ] });
7397
7514
  }
7398
7515
 
7399
7516
  // src/components/stats/tile-grid.tsx
7400
7517
  import clsx74 from "clsx";
7401
- import { jsx as jsx78 } from "react/jsx-runtime";
7518
+ import { jsx as jsx80 } from "react/jsx-runtime";
7402
7519
  var COLUMNS = {
7403
7520
  sm: {
7404
7521
  2: "grid-cols-2",
@@ -7428,7 +7545,7 @@ function TileGrid({
7428
7545
  at = "lg",
7429
7546
  className
7430
7547
  }) {
7431
- return /* @__PURE__ */ jsx78("div", { className: clsx74("grid gap-3", COLUMNS[at][columns], className), children });
7548
+ return /* @__PURE__ */ jsx80("div", { className: clsx74("grid gap-3", COLUMNS[at][columns], className), children });
7432
7549
  }
7433
7550
 
7434
7551
  // src/components/charts/chart-tone.ts
@@ -7450,7 +7567,7 @@ function resolveChartColor(color, tone, index = 0) {
7450
7567
 
7451
7568
  // src/components/charts/bar-chart.tsx
7452
7569
  import clsx75 from "clsx";
7453
- import { jsx as jsx79, jsxs as jsxs50 } from "react/jsx-runtime";
7570
+ import { jsx as jsx81, jsxs as jsxs50 } from "react/jsx-runtime";
7454
7571
  var SIZE13 = {
7455
7572
  sm: { band: 14, gap: 6, label: "text-body-tiny" },
7456
7573
  md: { band: 20, gap: 8, label: "text-body-xs" },
@@ -7477,7 +7594,7 @@ function BarChart({
7477
7594
  );
7478
7595
  const max = Math.max(...categoryTotals, 1);
7479
7596
  const horizontal = orientation === "horizontal";
7480
- return /* @__PURE__ */ jsx79(
7597
+ return /* @__PURE__ */ jsx81(
7481
7598
  "div",
7482
7599
  {
7483
7600
  className: clsx75("flex w-full min-w-0", horizontal ? "flex-col gap-2" : "flex-row items-end gap-3", className),
@@ -7496,14 +7613,14 @@ function BarChart({
7496
7613
  className: clsx75("flex min-w-0", horizontal ? "flex-col gap-1" : "h-full flex-col justify-end gap-1.5"),
7497
7614
  style: horizontal ? void 0 : { width: perCategory },
7498
7615
  children: [
7499
- showLabels && horizontal && /* @__PURE__ */ jsx79("span", { className: clsx75("truncate text-default-secondary", labelClass2), children: category }),
7616
+ showLabels && horizontal && /* @__PURE__ */ jsx81("span", { className: clsx75("truncate text-default-secondary", labelClass2), children: category }),
7500
7617
  /* @__PURE__ */ jsxs50(
7501
7618
  "div",
7502
7619
  {
7503
7620
  className: clsx75("flex", horizontal ? "items-center gap-2" : "w-full flex-1 items-end justify-center"),
7504
7621
  style: horizontal ? void 0 : { height: length },
7505
7622
  children: [
7506
- /* @__PURE__ */ jsx79(
7623
+ /* @__PURE__ */ jsx81(
7507
7624
  "div",
7508
7625
  {
7509
7626
  className: clsx75("flex min-w-0", stacked ? "gap-0" : ""),
@@ -7516,7 +7633,7 @@ function BarChart({
7516
7633
  },
7517
7634
  children: bars.map((bar) => {
7518
7635
  const extent = `${bar.value / max * 100}%`;
7519
- return /* @__PURE__ */ jsx79(
7636
+ return /* @__PURE__ */ jsx81(
7520
7637
  "div",
7521
7638
  {
7522
7639
  title: `${category} \xB7 ${bar.key}: ${bar.value}`,
@@ -7532,11 +7649,11 @@ function BarChart({
7532
7649
  })
7533
7650
  }
7534
7651
  ),
7535
- showValues && horizontal && /* @__PURE__ */ jsx79("span", { className: clsx75("shrink-0 tabular-nums text-default-secondary", labelClass2), children: categoryTotals[ci] })
7652
+ showValues && horizontal && /* @__PURE__ */ jsx81("span", { className: clsx75("shrink-0 tabular-nums text-default-secondary", labelClass2), children: categoryTotals[ci] })
7536
7653
  ]
7537
7654
  }
7538
7655
  ),
7539
- showLabels && !horizontal && /* @__PURE__ */ jsx79("span", { className: clsx75("truncate text-center text-default-secondary", labelClass2), children: category })
7656
+ showLabels && !horizontal && /* @__PURE__ */ jsx81("span", { className: clsx75("truncate text-center text-default-secondary", labelClass2), children: category })
7540
7657
  ]
7541
7658
  },
7542
7659
  category
@@ -7548,7 +7665,7 @@ function BarChart({
7548
7665
 
7549
7666
  // src/components/charts/donut-chart.tsx
7550
7667
  import clsx76 from "clsx";
7551
- import { jsx as jsx80, jsxs as jsxs51 } from "react/jsx-runtime";
7668
+ import { jsx as jsx82, jsxs as jsxs51 } from "react/jsx-runtime";
7552
7669
  var SIZE14 = {
7553
7670
  sm: { box: 88, thickness: 10 },
7554
7671
  md: { box: 128, thickness: 14 },
@@ -7584,7 +7701,7 @@ function DonutChart({
7584
7701
  "aria-hidden": label ? void 0 : true,
7585
7702
  className: "block -rotate-90",
7586
7703
  children: [
7587
- /* @__PURE__ */ jsx80("circle", { cx: box / 2, cy: box / 2, r: radius, fill: "none", stroke: CHART_TRACK, strokeWidth: ring }),
7704
+ /* @__PURE__ */ jsx82("circle", { cx: box / 2, cy: box / 2, r: radius, fill: "none", stroke: CHART_TRACK, strokeWidth: ring }),
7588
7705
  total > 0 && segments.map((segment, i) => {
7589
7706
  const fraction = Math.max(0, segment.value) / total;
7590
7707
  const length = Math.max(0, fraction * circumference - gapLength);
@@ -7592,7 +7709,7 @@ function DonutChart({
7592
7709
  const thisOffset = offset2;
7593
7710
  offset2 += fraction * circumference;
7594
7711
  if (segment.value <= 0) return null;
7595
- return /* @__PURE__ */ jsx80(
7712
+ return /* @__PURE__ */ jsx82(
7596
7713
  "circle",
7597
7714
  {
7598
7715
  cx: box / 2,
@@ -7612,15 +7729,15 @@ function DonutChart({
7612
7729
  }
7613
7730
  ),
7614
7731
  (centerValue != null || centerLabel != null) && /* @__PURE__ */ jsxs51("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: [
7615
- centerValue != null && /* @__PURE__ */ jsx80("span", { className: "text-subheading-sm font-bold leading-none text-default", children: centerValue }),
7616
- centerLabel != null && /* @__PURE__ */ jsx80("span", { className: "mt-0.5 text-body-tiny text-default-secondary", children: centerLabel })
7732
+ centerValue != null && /* @__PURE__ */ jsx82("span", { className: "text-subheading-sm font-bold leading-none text-default", children: centerValue }),
7733
+ centerLabel != null && /* @__PURE__ */ jsx82("span", { className: "mt-0.5 text-body-tiny text-default-secondary", children: centerLabel })
7617
7734
  ] })
7618
7735
  ] });
7619
7736
  }
7620
7737
 
7621
7738
  // src/components/charts/radial-gauge.tsx
7622
7739
  import clsx77 from "clsx";
7623
- import { jsx as jsx81, jsxs as jsxs52 } from "react/jsx-runtime";
7740
+ import { jsx as jsx83, jsxs as jsxs52 } from "react/jsx-runtime";
7624
7741
  var SIZE15 = {
7625
7742
  sm: { box: 72, thickness: 8, value: "text-body-sm" },
7626
7743
  md: { box: 104, thickness: 11, value: "text-subheading-sm" },
@@ -7662,7 +7779,7 @@ function RadialGauge({
7662
7779
  className: "block",
7663
7780
  style: { transform: `rotate(${rotation}deg)` },
7664
7781
  children: [
7665
- /* @__PURE__ */ jsx81(
7782
+ /* @__PURE__ */ jsx83(
7666
7783
  "circle",
7667
7784
  {
7668
7785
  cx: box / 2,
@@ -7675,7 +7792,7 @@ function RadialGauge({
7675
7792
  strokeLinecap: "round"
7676
7793
  }
7677
7794
  ),
7678
- /* @__PURE__ */ jsx81(
7795
+ /* @__PURE__ */ jsx83(
7679
7796
  "circle",
7680
7797
  {
7681
7798
  cx: box / 2,
@@ -7693,8 +7810,8 @@ function RadialGauge({
7693
7810
  }
7694
7811
  ),
7695
7812
  /* @__PURE__ */ jsxs52("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: [
7696
- children === void 0 ? /* @__PURE__ */ jsx81("span", { className: clsx77("font-bold leading-none text-default", preset.value), children: value }) : children,
7697
- centerLabel != null && /* @__PURE__ */ jsx81("span", { className: "mt-0.5 text-body-tiny text-default-secondary", children: centerLabel })
7813
+ children === void 0 ? /* @__PURE__ */ jsx83("span", { className: clsx77("font-bold leading-none text-default", preset.value), children: value }) : children,
7814
+ centerLabel != null && /* @__PURE__ */ jsx83("span", { className: "mt-0.5 text-body-tiny text-default-secondary", children: centerLabel })
7698
7815
  ] })
7699
7816
  ] });
7700
7817
  }
@@ -7702,7 +7819,7 @@ function RadialGauge({
7702
7819
  // src/components/charts/sparkline.tsx
7703
7820
  import { useId as useId22 } from "react";
7704
7821
  import clsx78 from "clsx";
7705
- import { Fragment as Fragment10, jsx as jsx82, jsxs as jsxs53 } from "react/jsx-runtime";
7822
+ import { Fragment as Fragment10, jsx as jsx84, jsxs as jsxs53 } from "react/jsx-runtime";
7706
7823
  var SIZE16 = {
7707
7824
  sm: { width: 80, height: 24 },
7708
7825
  md: { width: 120, height: 36 },
@@ -7754,13 +7871,13 @@ function Sparkline({
7754
7871
  className: clsx78("block", stretch ? "h-full w-full" : "shrink-0", className),
7755
7872
  children: [
7756
7873
  variant === "area" && /* @__PURE__ */ jsxs53(Fragment10, { children: [
7757
- /* @__PURE__ */ jsx82("defs", { children: /* @__PURE__ */ jsxs53("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
7758
- /* @__PURE__ */ jsx82("stop", { offset: "0%", stopColor: stroke, stopOpacity: 0.24 }),
7759
- /* @__PURE__ */ jsx82("stop", { offset: "100%", stopColor: stroke, stopOpacity: 0 })
7874
+ /* @__PURE__ */ jsx84("defs", { children: /* @__PURE__ */ jsxs53("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
7875
+ /* @__PURE__ */ jsx84("stop", { offset: "0%", stopColor: stroke, stopOpacity: 0.24 }),
7876
+ /* @__PURE__ */ jsx84("stop", { offset: "100%", stopColor: stroke, stopOpacity: 0 })
7760
7877
  ] }) }),
7761
- /* @__PURE__ */ jsx82("path", { d: areaPath, fill: `url(#${gradientId})` })
7878
+ /* @__PURE__ */ jsx84("path", { d: areaPath, fill: `url(#${gradientId})` })
7762
7879
  ] }),
7763
- /* @__PURE__ */ jsx82(
7880
+ /* @__PURE__ */ jsx84(
7764
7881
  "polyline",
7765
7882
  {
7766
7883
  points,
@@ -7772,7 +7889,7 @@ function Sparkline({
7772
7889
  fill: "none"
7773
7890
  }
7774
7891
  ),
7775
- showEndDot && /* @__PURE__ */ jsx82(
7892
+ showEndDot && /* @__PURE__ */ jsx84(
7776
7893
  "circle",
7777
7894
  {
7778
7895
  cx: last.x,
@@ -7790,7 +7907,7 @@ function Sparkline({
7790
7907
 
7791
7908
  // src/components/charts/mini-bar-chart.tsx
7792
7909
  import clsx79 from "clsx";
7793
- import { jsx as jsx83 } from "react/jsx-runtime";
7910
+ import { jsx as jsx85 } from "react/jsx-runtime";
7794
7911
  var SIZE17 = {
7795
7912
  sm: { width: 80, height: 32, gap: 2 },
7796
7913
  md: { width: 120, height: 48, gap: 3 },
@@ -7826,7 +7943,7 @@ function MiniBarChart({
7826
7943
  const span = vertical ? w : h;
7827
7944
  const extent = vertical ? h : w;
7828
7945
  const barThickness = (span - g * (bars.length - 1)) / bars.length;
7829
- return /* @__PURE__ */ jsx83(
7946
+ return /* @__PURE__ */ jsx85(
7830
7947
  "svg",
7831
7948
  {
7832
7949
  width: stretch ? void 0 : w,
@@ -7841,7 +7958,7 @@ function MiniBarChart({
7841
7958
  children: bars.map((v, i) => {
7842
7959
  const magnitude = Math.max(2, v / max * extent);
7843
7960
  const offset2 = i * (barThickness + g);
7844
- return /* @__PURE__ */ jsx83(
7961
+ return /* @__PURE__ */ jsx85(
7845
7962
  "rect",
7846
7963
  {
7847
7964
  x: (vertical ? offset2 : 0).toFixed(2),
@@ -7863,14 +7980,14 @@ import clsx81 from "clsx";
7863
7980
 
7864
7981
  // src/components/charts/legend-dot.tsx
7865
7982
  import clsx80 from "clsx";
7866
- import { jsx as jsx84 } from "react/jsx-runtime";
7983
+ import { jsx as jsx86 } from "react/jsx-runtime";
7867
7984
  var SHAPE = {
7868
7985
  dot: { sm: "size-1.5 rounded-full", md: "size-2 rounded-full" },
7869
7986
  square: { sm: "size-1.5 rounded-[2px]", md: "size-2 rounded-[3px]" },
7870
7987
  line: { sm: "h-0.5 w-3 rounded-full", md: "h-0.5 w-4 rounded-full" }
7871
7988
  };
7872
7989
  function LegendDot({ tone, color, size: size2 = "md", shape = "dot", className }) {
7873
- return /* @__PURE__ */ jsx84(
7990
+ return /* @__PURE__ */ jsx86(
7874
7991
  "span",
7875
7992
  {
7876
7993
  className: clsx80("inline-block shrink-0", SHAPE[shape][size2], className),
@@ -7881,7 +7998,7 @@ function LegendDot({ tone, color, size: size2 = "md", shape = "dot", className }
7881
7998
  }
7882
7999
 
7883
8000
  // src/components/charts/chart-legend.tsx
7884
- import { jsx as jsx85, jsxs as jsxs54 } from "react/jsx-runtime";
8001
+ import { jsx as jsx87, jsxs as jsxs54 } from "react/jsx-runtime";
7885
8002
  function ChartLegend({
7886
8003
  items,
7887
8004
  orientation = "vertical",
@@ -7890,7 +8007,7 @@ function ChartLegend({
7890
8007
  className
7891
8008
  }) {
7892
8009
  const horizontal = orientation === "horizontal";
7893
- return /* @__PURE__ */ jsx85(
8010
+ return /* @__PURE__ */ jsx87(
7894
8011
  "div",
7895
8012
  {
7896
8013
  className: clsx81(
@@ -7903,10 +8020,10 @@ function ChartLegend({
7903
8020
  className: clsx81("flex items-center gap-2", horizontal ? "min-w-0" : "justify-between"),
7904
8021
  children: [
7905
8022
  /* @__PURE__ */ jsxs54("div", { className: "flex min-w-0 items-center gap-2", children: [
7906
- /* @__PURE__ */ jsx85(LegendDot, { color: resolveChartColor(item.color, item.tone, i), size: size2, shape }),
7907
- /* @__PURE__ */ jsx85("span", { className: "truncate text-body-xs text-default-secondary", children: item.label })
8023
+ /* @__PURE__ */ jsx87(LegendDot, { color: resolveChartColor(item.color, item.tone, i), size: size2, shape }),
8024
+ /* @__PURE__ */ jsx87("span", { className: "truncate text-body-xs text-default-secondary", children: item.label })
7908
8025
  ] }),
7909
- item.count != null && /* @__PURE__ */ jsx85("span", { className: "shrink-0 text-body-xs font-semibold tabular-nums text-default", children: item.count })
8026
+ item.count != null && /* @__PURE__ */ jsx87("span", { className: "shrink-0 text-body-xs font-semibold tabular-nums text-default", children: item.count })
7910
8027
  ]
7911
8028
  },
7912
8029
  item.label
@@ -7918,7 +8035,7 @@ function ChartLegend({
7918
8035
  // src/components/charts/trend-label.tsx
7919
8036
  import clsx82 from "clsx";
7920
8037
  import { LuTrendingDown, LuTrendingUp } from "react-icons/lu";
7921
- import { jsx as jsx86, jsxs as jsxs55 } from "react/jsx-runtime";
8038
+ import { jsx as jsx88, jsxs as jsxs55 } from "react/jsx-runtime";
7922
8039
  var SIZE18 = {
7923
8040
  sm: "text-body-xs",
7924
8041
  md: "text-body-sm",
@@ -7964,7 +8081,7 @@ function TrendLabel({
7964
8081
  ),
7965
8082
  style: color ? { color } : void 0,
7966
8083
  children: [
7967
- showArrow && !flat && /* @__PURE__ */ jsx86(Arrow, { className: clsx82("shrink-0", ICON_SIZE[size2]), "aria-hidden": true }),
8084
+ showArrow && !flat && /* @__PURE__ */ jsx88(Arrow, { className: clsx82("shrink-0", ICON_SIZE[size2]), "aria-hidden": true }),
7968
8085
  rising ? "+" : "",
7969
8086
  value,
7970
8087
  suffix
@@ -7975,7 +8092,7 @@ function TrendLabel({
7975
8092
 
7976
8093
  // src/components/lists/list-row.tsx
7977
8094
  import clsx83 from "clsx";
7978
- import { jsx as jsx87, jsxs as jsxs56 } from "react/jsx-runtime";
8095
+ import { jsx as jsx89, jsxs as jsxs56 } from "react/jsx-runtime";
7979
8096
  var DENSITY = {
7980
8097
  default: {
7981
8098
  pad: "py-4",
@@ -8037,19 +8154,19 @@ function ListRow({
8037
8154
  hasTitleLine && /* @__PURE__ */ jsxs56("div", { className: "flex items-center justify-between gap-2", children: [
8038
8155
  /* @__PURE__ */ jsxs56("div", { className: "flex min-w-0 items-center gap-2", children: [
8039
8156
  leading,
8040
- title != null && /* @__PURE__ */ jsx87("span", { className: clsx83("truncate", d.title), children: title }),
8041
- titleMeta && /* @__PURE__ */ jsx87("span", { className: "shrink-0", children: titleMeta })
8157
+ title != null && /* @__PURE__ */ jsx89("span", { className: clsx83("truncate", d.title), children: title }),
8158
+ titleMeta && /* @__PURE__ */ jsx89("span", { className: "shrink-0", children: titleMeta })
8042
8159
  ] }),
8043
- meta && /* @__PURE__ */ jsx87("span", { className: "shrink-0", children: meta })
8160
+ meta && /* @__PURE__ */ jsx89("span", { className: "shrink-0", children: meta })
8044
8161
  ] }),
8045
- description && /* @__PURE__ */ jsx87("p", { className: d.description, children: description }),
8162
+ description && /* @__PURE__ */ jsx89("p", { className: d.description, children: description }),
8046
8163
  footer && // These two wrappers are propagation barriers, not controls — they add no
8047
8164
  // behaviour of their own and must not be focusable or take a role.
8048
8165
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
8049
- /* @__PURE__ */ jsx87("div", { onClick: stopIfInteractive, onKeyDown: stopIfInteractive, children: footer })
8166
+ /* @__PURE__ */ jsx89("div", { onClick: stopIfInteractive, onKeyDown: stopIfInteractive, children: footer })
8050
8167
  ] }),
8051
8168
  trailing && // eslint-disable-next-line jsx-a11y/no-static-element-interactions
8052
- /* @__PURE__ */ jsx87(
8169
+ /* @__PURE__ */ jsx89(
8053
8170
  "div",
8054
8171
  {
8055
8172
  className: "ml-3 flex shrink-0 items-center self-center",
@@ -8068,9 +8185,9 @@ function stopIfInteractive(event) {
8068
8185
 
8069
8186
  // src/components/lists/file-row.tsx
8070
8187
  import clsx84 from "clsx";
8071
- import { jsx as jsx88, jsxs as jsxs57 } from "react/jsx-runtime";
8188
+ import { jsx as jsx90, jsxs as jsxs57 } from "react/jsx-runtime";
8072
8189
  function FileTypeBadge({ type }) {
8073
- return /* @__PURE__ */ jsx88("span", { className: "flex size-[34px] shrink-0 items-center justify-center rounded-md bg-brand-tertiary text-body-tiny font-semibold text-brand", children: type });
8190
+ return /* @__PURE__ */ jsx90("span", { className: "flex size-[34px] shrink-0 items-center justify-center rounded-md bg-brand-tertiary text-body-tiny font-semibold text-brand", children: type });
8074
8191
  }
8075
8192
  function FileRow({
8076
8193
  name,
@@ -8082,7 +8199,7 @@ function FileRow({
8082
8199
  actions,
8083
8200
  className
8084
8201
  }) {
8085
- const lead = leading ?? (fileType ? /* @__PURE__ */ jsx88(FileTypeBadge, { type: fileType }) : null);
8202
+ const lead = leading ?? (fileType ? /* @__PURE__ */ jsx90(FileTypeBadge, { type: fileType }) : null);
8086
8203
  return /* @__PURE__ */ jsxs57(
8087
8204
  "div",
8088
8205
  {
@@ -8093,11 +8210,11 @@ function FileRow({
8093
8210
  children: [
8094
8211
  lead,
8095
8212
  /* @__PURE__ */ jsxs57("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
8096
- /* @__PURE__ */ jsx88("span", { className: "truncate text-body-sm font-medium text-default", children: name }),
8097
- detail && /* @__PURE__ */ jsx88("span", { className: "text-body-xs text-default-secondary", children: detail })
8213
+ /* @__PURE__ */ jsx90("span", { className: "truncate text-body-sm font-medium text-default", children: name }),
8214
+ detail && /* @__PURE__ */ jsx90("span", { className: "text-body-xs text-default-secondary", children: detail })
8098
8215
  ] }),
8099
8216
  (onDownload || actions) && /* @__PURE__ */ jsxs57("div", { className: "flex shrink-0 items-center gap-3", children: [
8100
- onDownload && /* @__PURE__ */ jsx88(
8217
+ onDownload && /* @__PURE__ */ jsx90(
8101
8218
  "button",
8102
8219
  {
8103
8220
  type: "button",
@@ -8115,7 +8232,7 @@ function FileRow({
8115
8232
 
8116
8233
  // src/components/lists/scored-row.tsx
8117
8234
  import clsx85 from "clsx";
8118
- import { jsx as jsx89, jsxs as jsxs58 } from "react/jsx-runtime";
8235
+ import { jsx as jsx91, jsxs as jsxs58 } from "react/jsx-runtime";
8119
8236
  var GAP4 = {
8120
8237
  sm: "gap-2",
8121
8238
  md: "gap-3",
@@ -8156,13 +8273,13 @@ function ScoredRow({
8156
8273
  children: [
8157
8274
  leading,
8158
8275
  /* @__PURE__ */ jsxs58("div", { className: "min-w-0 flex-1", children: [
8159
- /* @__PURE__ */ jsx89("p", { className: "truncate text-body-sm font-medium leading-none text-default", children: title }),
8160
- subtitle && /* @__PURE__ */ jsx89("p", { className: "mt-0.5 truncate text-body-xs text-default-secondary", children: subtitle })
8276
+ /* @__PURE__ */ jsx91("p", { className: "truncate text-body-sm font-medium leading-none text-default", children: title }),
8277
+ subtitle && /* @__PURE__ */ jsx91("p", { className: "mt-0.5 truncate text-body-xs text-default-secondary", children: subtitle })
8161
8278
  ] })
8162
8279
  ]
8163
8280
  }
8164
8281
  ),
8165
- aside && /* @__PURE__ */ jsx89(
8282
+ aside && /* @__PURE__ */ jsx91(
8166
8283
  "div",
8167
8284
  {
8168
8285
  className: clsx85("min-w-0", asideWidth ? "shrink-0" : "flex-1"),
@@ -8170,7 +8287,7 @@ function ScoredRow({
8170
8287
  children: aside
8171
8288
  }
8172
8289
  ),
8173
- meter && /* @__PURE__ */ jsx89(
8290
+ meter && /* @__PURE__ */ jsx91(
8174
8291
  "div",
8175
8292
  {
8176
8293
  className: clsx85("min-w-0", meterWidth ? "shrink-0" : "flex-1"),
@@ -8178,7 +8295,7 @@ function ScoredRow({
8178
8295
  children: meter
8179
8296
  }
8180
8297
  ),
8181
- trailing && /* @__PURE__ */ jsx89("div", { className: "shrink-0 text-right", style: trailingWidth ? { width: trailingWidth } : void 0, children: trailing })
8298
+ trailing && /* @__PURE__ */ jsx91("div", { className: "shrink-0 text-right", style: trailingWidth ? { width: trailingWidth } : void 0, children: trailing })
8182
8299
  ] });
8183
8300
  }
8184
8301
 
@@ -8187,7 +8304,7 @@ import clsx86 from "clsx";
8187
8304
 
8188
8305
  // src/components/feedback/progress-bar.tsx
8189
8306
  import { useId as useId23 } from "react";
8190
- import { jsx as jsx90, jsxs as jsxs59 } from "react/jsx-runtime";
8307
+ import { jsx as jsx92, jsxs as jsxs59 } from "react/jsx-runtime";
8191
8308
  var SIZE19 = {
8192
8309
  xs: "h-1",
8193
8310
  sm: "h-1.5",
@@ -8214,7 +8331,7 @@ function ProgressBar({
8214
8331
  const clamped = Math.min(100, Math.max(0, value));
8215
8332
  const rounded = radius ? void 0 : "rounded-full";
8216
8333
  const labelId = useId23();
8217
- const track = /* @__PURE__ */ jsx90(
8334
+ const track = /* @__PURE__ */ jsx92(
8218
8335
  "div",
8219
8336
  {
8220
8337
  role: "progressbar",
@@ -8225,7 +8342,7 @@ function ProgressBar({
8225
8342
  "aria-label": label ? void 0 : ariaLabel,
8226
8343
  className: cn("w-full overflow-hidden bg-default-tertiary", SIZE19[size2], rounded, className),
8227
8344
  style: radius ? { borderRadius: radius } : void 0,
8228
- children: /* @__PURE__ */ jsx90(
8345
+ children: /* @__PURE__ */ jsx92(
8229
8346
  "div",
8230
8347
  {
8231
8348
  className: cn("h-full transition-all", rounded, FILL[tone]),
@@ -8237,7 +8354,7 @@ function ProgressBar({
8237
8354
  if (!label && !showValue) return track;
8238
8355
  return /* @__PURE__ */ jsxs59("div", { children: [
8239
8356
  /* @__PURE__ */ jsxs59("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [
8240
- label && /* @__PURE__ */ jsx90("span", { id: labelId, className: "text-body-xs text-default-secondary", children: label }),
8357
+ label && /* @__PURE__ */ jsx92("span", { id: labelId, className: "text-body-xs text-default-secondary", children: label }),
8241
8358
  showValue && /* @__PURE__ */ jsxs59("span", { className: "ml-auto text-body-xs font-medium tabular-nums text-default", children: [
8242
8359
  Math.round(clamped),
8243
8360
  "%"
@@ -8248,7 +8365,7 @@ function ProgressBar({
8248
8365
  }
8249
8366
 
8250
8367
  // src/components/lists/numbered-list.tsx
8251
- import { jsx as jsx91, jsxs as jsxs60 } from "react/jsx-runtime";
8368
+ import { jsx as jsx93, jsxs as jsxs60 } from "react/jsx-runtime";
8252
8369
  var GAP5 = {
8253
8370
  sm: "gap-2",
8254
8371
  md: "gap-3"
@@ -8262,18 +8379,18 @@ function NumberedList({
8262
8379
  gap = "md",
8263
8380
  className
8264
8381
  }) {
8265
- return /* @__PURE__ */ jsx91("ol", { className: clsx86("flex list-none flex-col p-0", GAP5[gap], className), children: items.map((item, index) => {
8382
+ return /* @__PURE__ */ jsx93("ol", { className: clsx86("flex list-none flex-col p-0", GAP5[gap], className), children: items.map((item, index) => {
8266
8383
  const tone = !item.tone || item.tone === "auto" ? getScoreTone(item.score, { direction }) : item.tone;
8267
8384
  return /* @__PURE__ */ jsxs60("li", { className: "flex w-full shrink-0 flex-col gap-1.5", children: [
8268
8385
  /* @__PURE__ */ jsxs60("div", { className: "flex w-full items-center justify-between", children: [
8269
8386
  /* @__PURE__ */ jsxs60("div", { className: "flex min-w-0 items-center gap-2.5", children: [
8270
- /* @__PURE__ */ jsx91("span", { className: "w-[14px] shrink-0 text-body-xs font-bold text-default-secondary", children: startAt + index }),
8387
+ /* @__PURE__ */ jsx93("span", { className: "w-[14px] shrink-0 text-body-xs font-bold text-default-secondary", children: startAt + index }),
8271
8388
  /* @__PURE__ */ jsxs60("div", { className: "flex min-w-0 flex-col gap-px", children: [
8272
- /* @__PURE__ */ jsx91("span", { className: "truncate text-body-sm font-medium leading-none text-default", children: item.title }),
8273
- item.subtitle && /* @__PURE__ */ jsx91("span", { className: "text-body-tiny text-default-tertiary", children: item.subtitle })
8389
+ /* @__PURE__ */ jsx93("span", { className: "truncate text-body-sm font-medium leading-none text-default", children: item.title }),
8390
+ item.subtitle && /* @__PURE__ */ jsx93("span", { className: "text-body-tiny text-default-tertiary", children: item.subtitle })
8274
8391
  ] })
8275
8392
  ] }),
8276
- /* @__PURE__ */ jsx91(
8393
+ /* @__PURE__ */ jsx93(
8277
8394
  ScoreValue,
8278
8395
  {
8279
8396
  value: item.score,
@@ -8284,20 +8401,20 @@ function NumberedList({
8284
8401
  }
8285
8402
  )
8286
8403
  ] }),
8287
- /* @__PURE__ */ jsx91(ProgressBar, { value: item.score, tone, "aria-label": `${item.title} score` })
8404
+ /* @__PURE__ */ jsx93(ProgressBar, { value: item.score, tone, "aria-label": `${item.title} score` })
8288
8405
  ] }, `${item.title}-${index}`);
8289
8406
  }) });
8290
8407
  }
8291
8408
 
8292
8409
  // src/components/lists/icon-text-row.tsx
8293
8410
  import clsx87 from "clsx";
8294
- import { jsx as jsx92, jsxs as jsxs61 } from "react/jsx-runtime";
8411
+ import { jsx as jsx94, jsxs as jsxs61 } from "react/jsx-runtime";
8295
8412
  function IconTextRow({ icon, title, detail, className }) {
8296
8413
  return /* @__PURE__ */ jsxs61("div", { className: clsx87("flex items-start gap-3", className), children: [
8297
- /* @__PURE__ */ jsx92("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-brand-tertiary text-brand", children: icon }),
8414
+ /* @__PURE__ */ jsx94("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-brand-tertiary text-brand", children: icon }),
8298
8415
  /* @__PURE__ */ jsxs61("div", { className: "min-w-0", children: [
8299
- /* @__PURE__ */ jsx92("p", { className: "text-body-sm font-semibold text-default", children: title }),
8300
- /* @__PURE__ */ jsx92("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: detail })
8416
+ /* @__PURE__ */ jsx94("p", { className: "text-body-sm font-semibold text-default", children: title }),
8417
+ /* @__PURE__ */ jsx94("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: detail })
8301
8418
  ] })
8302
8419
  ] });
8303
8420
  }
@@ -8305,10 +8422,10 @@ function IconTextRow({ icon, title, detail, className }) {
8305
8422
  // src/components/lists/checklist-row.tsx
8306
8423
  import clsx88 from "clsx";
8307
8424
  import { LuCheck as LuCheck8 } from "react-icons/lu";
8308
- import { jsx as jsx93, jsxs as jsxs62 } from "react/jsx-runtime";
8425
+ import { jsx as jsx95, jsxs as jsxs62 } from "react/jsx-runtime";
8309
8426
  function ChecklistRow({ label, state, className }) {
8310
8427
  return /* @__PURE__ */ jsxs62("li", { className: clsx88("flex items-center gap-3", className), children: [
8311
- /* @__PURE__ */ jsx93("span", { className: "flex size-5 shrink-0 items-center justify-center", children: state === "done" ? /* @__PURE__ */ jsx93(LuCheck8, { className: "size-4 text-positive", strokeWidth: 2.5, "aria-hidden": true }) : /* @__PURE__ */ jsx93(
8428
+ /* @__PURE__ */ jsx95("span", { className: "flex size-5 shrink-0 items-center justify-center", children: state === "done" ? /* @__PURE__ */ jsx95(LuCheck8, { className: "size-4 text-positive", strokeWidth: 2.5, "aria-hidden": true }) : /* @__PURE__ */ jsx95(
8312
8429
  "span",
8313
8430
  {
8314
8431
  className: clsx88(
@@ -8317,7 +8434,7 @@ function ChecklistRow({ label, state, className }) {
8317
8434
  )
8318
8435
  }
8319
8436
  ) }),
8320
- /* @__PURE__ */ jsx93(
8437
+ /* @__PURE__ */ jsx95(
8321
8438
  "span",
8322
8439
  {
8323
8440
  className: clsx88(
@@ -8332,13 +8449,13 @@ function ChecklistRow({ label, state, className }) {
8332
8449
 
8333
8450
  // src/components/lists/steps-list.tsx
8334
8451
  import clsx89 from "clsx";
8335
- import { jsx as jsx94, jsxs as jsxs63 } from "react/jsx-runtime";
8452
+ import { jsx as jsx96, jsxs as jsxs63 } from "react/jsx-runtime";
8336
8453
  function StepsList({ steps, className }) {
8337
- return /* @__PURE__ */ jsx94("ol", { className: clsx89("flex flex-col gap-1.5", className), children: steps.map((step, i) => (
8454
+ return /* @__PURE__ */ jsx96("ol", { className: clsx89("flex flex-col gap-1.5", className), children: steps.map((step, i) => (
8338
8455
  // `text-[12px]` was off the type scale; 12 sits midway between Scale 01 (11) and
8339
8456
  // Scale 02 (13), so it rounds up to 13 like every other snap in this pass.
8340
8457
  /* @__PURE__ */ jsxs63("li", { className: "flex items-start gap-2 text-body-xs text-default", children: [
8341
- /* @__PURE__ */ jsx94("span", { className: "mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full bg-brand-tertiary text-[9px] font-bold text-brand", children: i + 1 }),
8458
+ /* @__PURE__ */ jsx96("span", { className: "mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full bg-brand-tertiary text-[9px] font-bold text-brand", children: i + 1 }),
8342
8459
  step
8343
8460
  ] }, i)
8344
8461
  )) });
@@ -8346,7 +8463,7 @@ function StepsList({ steps, className }) {
8346
8463
 
8347
8464
  // src/components/lists/detail-item.tsx
8348
8465
  import clsx90 from "clsx";
8349
- import { jsx as jsx95, jsxs as jsxs64 } from "react/jsx-runtime";
8466
+ import { jsx as jsx97, jsxs as jsxs64 } from "react/jsx-runtime";
8350
8467
  var SPAN = {
8351
8468
  1: "",
8352
8469
  2: "sm:col-span-2",
@@ -8364,17 +8481,17 @@ function DetailItem({
8364
8481
  const shown = value === null || value === void 0 || value === "" ? "\u2014" : value;
8365
8482
  if (layout === "inline") {
8366
8483
  return /* @__PURE__ */ jsxs64("div", { className: clsx90("flex gap-3 text-body-xs", SPAN[span], className), children: [
8367
- /* @__PURE__ */ jsx95("span", { className: clsx90("shrink-0 text-default-secondary", labelWidth), children: label }),
8484
+ /* @__PURE__ */ jsx97("span", { className: clsx90("shrink-0 text-default-secondary", labelWidth), children: label }),
8368
8485
  /* @__PURE__ */ jsxs64("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
8369
- /* @__PURE__ */ jsx95("span", { className: "text-default", children: shown }),
8370
- detail && /* @__PURE__ */ jsx95("span", { className: "text-default-secondary", children: detail })
8486
+ /* @__PURE__ */ jsx97("span", { className: "text-default", children: shown }),
8487
+ detail && /* @__PURE__ */ jsx97("span", { className: "text-default-secondary", children: detail })
8371
8488
  ] })
8372
8489
  ] });
8373
8490
  }
8374
8491
  return /* @__PURE__ */ jsxs64("div", { className: clsx90("flex min-w-0 flex-col gap-0.5", SPAN[span], className), children: [
8375
- /* @__PURE__ */ jsx95("p", { className: "text-body-tiny font-medium text-default-secondary", children: label }),
8376
- /* @__PURE__ */ jsx95("p", { className: "text-body-sm font-medium text-default", children: shown }),
8377
- detail && /* @__PURE__ */ jsx95("p", { className: "text-body-xs text-default-secondary", children: detail })
8492
+ /* @__PURE__ */ jsx97("p", { className: "text-body-tiny font-medium text-default-secondary", children: label }),
8493
+ /* @__PURE__ */ jsx97("p", { className: "text-body-sm font-medium text-default", children: shown }),
8494
+ detail && /* @__PURE__ */ jsx97("p", { className: "text-body-xs text-default-secondary", children: detail })
8378
8495
  ] });
8379
8496
  }
8380
8497
  var COLUMNS2 = {
@@ -8385,13 +8502,13 @@ var COLUMNS2 = {
8385
8502
  4: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4"
8386
8503
  };
8387
8504
  function DetailGrid({ children, columns = "auto", className }) {
8388
- return /* @__PURE__ */ jsx95("div", { className: clsx90("grid gap-x-4 gap-y-4", COLUMNS2[columns], className), children });
8505
+ return /* @__PURE__ */ jsx97("div", { className: clsx90("grid gap-x-4 gap-y-4", COLUMNS2[columns], className), children });
8389
8506
  }
8390
8507
 
8391
8508
  // src/components/lists/checked-group-list.tsx
8392
8509
  import clsx91 from "clsx";
8393
8510
  import { LuCheck as LuCheck9 } from "react-icons/lu";
8394
- import { jsx as jsx96, jsxs as jsxs65 } from "react/jsx-runtime";
8511
+ import { jsx as jsx98, jsxs as jsxs65 } from "react/jsx-runtime";
8395
8512
  var COLUMNS3 = {
8396
8513
  1: "columns-1",
8397
8514
  2: "columns-2",
@@ -8405,23 +8522,204 @@ function CheckedGroupList({
8405
8522
  className
8406
8523
  }) {
8407
8524
  if (groups.length === 0) {
8408
- return /* @__PURE__ */ jsx96("p", { className: clsx91("text-body-xs text-default-secondary", className), children: emptyLabel });
8525
+ return /* @__PURE__ */ jsx98("p", { className: clsx91("text-body-xs text-default-secondary", className), children: emptyLabel });
8409
8526
  }
8410
- const glyph = icon === void 0 ? /* @__PURE__ */ jsx96(LuCheck9, { className: "size-3.5", strokeWidth: 2.5, "aria-hidden": true }) : icon;
8411
- return /* @__PURE__ */ jsx96("div", { className: clsx91(COLUMNS3[columns], "gap-x-6", className), children: groups.map((group) => /* @__PURE__ */ jsxs65("div", { className: "mb-5 break-inside-avoid last:mb-0", children: [
8412
- /* @__PURE__ */ jsx96("p", { className: "mb-2 text-body-tiny font-semibold uppercase tracking-wide text-default-secondary", children: group.label }),
8413
- /* @__PURE__ */ jsx96("ul", { className: "space-y-1.5", children: group.items.map((item) => /* @__PURE__ */ jsxs65("li", { className: "flex items-center gap-2 text-body-xs text-default", children: [
8414
- glyph && /* @__PURE__ */ jsx96("span", { className: "shrink-0", children: glyph }),
8527
+ const glyph = icon === void 0 ? /* @__PURE__ */ jsx98(LuCheck9, { className: "size-3.5", strokeWidth: 2.5, "aria-hidden": true }) : icon;
8528
+ return /* @__PURE__ */ jsx98("div", { className: clsx91(COLUMNS3[columns], "gap-x-6", className), children: groups.map((group) => /* @__PURE__ */ jsxs65("div", { className: "mb-5 break-inside-avoid last:mb-0", children: [
8529
+ /* @__PURE__ */ jsx98("p", { className: "mb-2 text-body-tiny font-semibold uppercase tracking-wide text-default-secondary", children: group.label }),
8530
+ /* @__PURE__ */ jsx98("ul", { className: "space-y-1.5", children: group.items.map((item) => /* @__PURE__ */ jsxs65("li", { className: "flex items-center gap-2 text-body-xs text-default", children: [
8531
+ glyph && /* @__PURE__ */ jsx98("span", { className: "shrink-0", children: glyph }),
8415
8532
  item
8416
8533
  ] }, item)) })
8417
8534
  ] }, group.label)) });
8418
8535
  }
8419
8536
 
8537
+ // src/components/lists/tree-view.tsx
8538
+ import { useMemo as useMemo15, useRef as useRef27, useState as useState22 } from "react";
8539
+ import clsx92 from "clsx";
8540
+ import { LuChevronRight as LuChevronRight6 } from "react-icons/lu";
8541
+ import { jsx as jsx99, jsxs as jsxs66 } from "react/jsx-runtime";
8542
+ var ROW = {
8543
+ sm: "min-h-8 py-1 text-body-xs",
8544
+ md: "min-h-10 py-2 text-body-sm"
8545
+ };
8546
+ var INDENT = 18;
8547
+ function TreeView({
8548
+ items,
8549
+ getId,
8550
+ getChildren,
8551
+ renderItem,
8552
+ label,
8553
+ expanded: expandedProp,
8554
+ defaultExpanded = [],
8555
+ onExpandedChange,
8556
+ selected: selectedProp,
8557
+ defaultSelected = null,
8558
+ onSelect,
8559
+ size: size2 = "md",
8560
+ className
8561
+ }) {
8562
+ const [expanded, setExpanded] = useControllableState({
8563
+ value: expandedProp,
8564
+ defaultValue: defaultExpanded,
8565
+ onChange: onExpandedChange
8566
+ });
8567
+ const [selected, setSelected] = useControllableState({
8568
+ value: selectedProp,
8569
+ defaultValue: defaultSelected
8570
+ });
8571
+ const [focusedId, setFocusedId] = useState22(null);
8572
+ const rowRefs = useRef27(/* @__PURE__ */ new Map());
8573
+ const expandedSet = useMemo15(() => new Set(expanded), [expanded]);
8574
+ const visible = useMemo15(() => {
8575
+ const out = [];
8576
+ const walk = (nodes, level, parentId) => {
8577
+ for (const item of nodes) {
8578
+ const id = getId(item);
8579
+ const children = getChildren?.(item) ?? [];
8580
+ const isOpen = children.length > 0 && expandedSet.has(id);
8581
+ out.push({ id, item, level, parentId, hasChildren: children.length > 0, expanded: isOpen });
8582
+ if (isOpen) walk(children, level + 1, id);
8583
+ }
8584
+ };
8585
+ walk(items, 1, null);
8586
+ return out;
8587
+ }, [items, getId, getChildren, expandedSet]);
8588
+ const tabStop = visible.find((n) => n.id === focusedId)?.id ?? visible.find((n) => n.id === selected)?.id ?? visible[0]?.id;
8589
+ const focus = (id) => {
8590
+ if (!id) return;
8591
+ setFocusedId(id);
8592
+ rowRefs.current.get(id)?.focus();
8593
+ };
8594
+ const toggle = (id, open) => {
8595
+ setExpanded((prev) => open ? [...prev.filter((x) => x !== id), id] : prev.filter((x) => x !== id));
8596
+ };
8597
+ const choose = (node) => {
8598
+ setSelected(node.id);
8599
+ onSelect?.(node.id, node.item);
8600
+ };
8601
+ const onKeyDown = (event, node) => {
8602
+ const index = visible.findIndex((n) => n.id === node.id);
8603
+ switch (event.key) {
8604
+ case "ArrowDown":
8605
+ event.preventDefault();
8606
+ focus(visible[index + 1]?.id);
8607
+ break;
8608
+ case "ArrowUp":
8609
+ event.preventDefault();
8610
+ focus(visible[index - 1]?.id);
8611
+ break;
8612
+ case "ArrowRight":
8613
+ event.preventDefault();
8614
+ if (node.hasChildren && !node.expanded) toggle(node.id, true);
8615
+ else if (node.expanded) focus(visible[index + 1]?.id);
8616
+ break;
8617
+ case "ArrowLeft":
8618
+ event.preventDefault();
8619
+ if (node.expanded) toggle(node.id, false);
8620
+ else if (node.parentId) focus(node.parentId);
8621
+ break;
8622
+ case "Home":
8623
+ event.preventDefault();
8624
+ focus(visible[0]?.id);
8625
+ break;
8626
+ case "End":
8627
+ event.preventDefault();
8628
+ focus(visible[visible.length - 1]?.id);
8629
+ break;
8630
+ case "Enter":
8631
+ case " ":
8632
+ event.preventDefault();
8633
+ choose(node);
8634
+ break;
8635
+ default:
8636
+ break;
8637
+ }
8638
+ };
8639
+ const renderLevel = (nodes, level) => nodes.map((item, i) => {
8640
+ const id = getId(item);
8641
+ const node = visible.find((n) => n.id === id);
8642
+ if (!node) return null;
8643
+ const children = getChildren?.(item) ?? [];
8644
+ const isSelected = selected === id;
8645
+ return /* @__PURE__ */ jsxs66(
8646
+ "li",
8647
+ {
8648
+ role: "treeitem",
8649
+ "aria-level": level,
8650
+ "aria-setsize": nodes.length,
8651
+ "aria-posinset": i + 1,
8652
+ "aria-expanded": node.hasChildren ? node.expanded : void 0,
8653
+ "aria-selected": isSelected,
8654
+ tabIndex: tabStop === id ? 0 : -1,
8655
+ ref: (el) => {
8656
+ if (el) rowRefs.current.set(id, el);
8657
+ else rowRefs.current.delete(id);
8658
+ },
8659
+ onFocus: (event) => {
8660
+ if (event.target === event.currentTarget) setFocusedId(id);
8661
+ },
8662
+ onKeyDown: (event) => {
8663
+ if (event.target === event.currentTarget) onKeyDown(event, node);
8664
+ },
8665
+ className: "outline-none [&:focus-visible>div]:ring-2 [&:focus-visible>div]:ring-inset [&:focus-visible>div]:ring-brand",
8666
+ children: [
8667
+ /* @__PURE__ */ jsxs66(
8668
+ "div",
8669
+ {
8670
+ onClick: () => {
8671
+ focus(id);
8672
+ choose(node);
8673
+ },
8674
+ style: { paddingLeft: 8 + (level - 1) * INDENT },
8675
+ className: clsx92(
8676
+ "flex w-full cursor-pointer items-center gap-1.5 rounded-md pr-2 transition-colors",
8677
+ ROW[size2],
8678
+ isSelected ? "bg-brand-secondary text-default" : "text-default hover:bg-default-secondary"
8679
+ ),
8680
+ children: [
8681
+ node.hasChildren ? (
8682
+ // Not a button: the treeitem is the one tab stop, and Left/Right already toggle.
8683
+ // A pointer user still needs a target that toggles without selecting.
8684
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
8685
+ /* @__PURE__ */ jsx99(
8686
+ "span",
8687
+ {
8688
+ "aria-hidden": true,
8689
+ "data-tree-toggle": "",
8690
+ onClick: (event) => {
8691
+ event.stopPropagation();
8692
+ toggle(id, !node.expanded);
8693
+ focus(id);
8694
+ },
8695
+ className: "flex size-5 shrink-0 items-center justify-center rounded text-icon-default-secondary hover:bg-default-tertiary",
8696
+ children: /* @__PURE__ */ jsx99(LuChevronRight6, { className: clsx92("size-3.5 transition-transform", node.expanded && "rotate-90") })
8697
+ }
8698
+ )
8699
+ ) : /* @__PURE__ */ jsx99("span", { "aria-hidden": true, className: "size-5 shrink-0" }),
8700
+ /* @__PURE__ */ jsx99("div", { className: "min-w-0 flex-1", children: renderItem(item, {
8701
+ level,
8702
+ hasChildren: node.hasChildren,
8703
+ expanded: node.expanded,
8704
+ selected: isSelected
8705
+ }) })
8706
+ ]
8707
+ }
8708
+ ),
8709
+ node.expanded && /* @__PURE__ */ jsx99("ul", { role: "group", className: "m-0 list-none p-0", children: renderLevel(children, level + 1) })
8710
+ ]
8711
+ },
8712
+ id
8713
+ );
8714
+ });
8715
+ return /* @__PURE__ */ jsx99("ul", { role: "tree", "aria-label": label, className: clsx92("m-0 flex list-none flex-col p-0", className), children: renderLevel(items, 1) });
8716
+ }
8717
+
8420
8718
  // src/components/lists/table.tsx
8421
8719
  import { forwardRef as forwardRef25 } from "react";
8422
- import clsx92 from "clsx";
8720
+ import clsx93 from "clsx";
8423
8721
  import { LuChevronDown as LuChevronDown4, LuChevronsUpDown, LuChevronUp } from "react-icons/lu";
8424
- import { jsx as jsx97, jsxs as jsxs66 } from "react/jsx-runtime";
8722
+ import { jsx as jsx100, jsxs as jsxs67 } from "react/jsx-runtime";
8425
8723
  var Table = forwardRef25(function Table2({ label, density = "default", fixed = false, className, children, ...rest }, ref) {
8426
8724
  return (
8427
8725
  // The scroll container is separate from the table so the header stays inside the
@@ -8429,7 +8727,7 @@ var Table = forwardRef25(function Table2({ label, density = "default", fixed = f
8429
8727
  // header.
8430
8728
  // The scroll wrapper is required for a <table>, which cannot itself scroll, so this
8431
8729
  // takes the scrollbar styling rather than ScrollArea.
8432
- /* @__PURE__ */ jsx97("div", { className: clsx92("w-full overflow-x-auto", SCROLLBAR_CLASSES), children: /* @__PURE__ */ jsx97(
8730
+ /* @__PURE__ */ jsx100("div", { className: clsx93("w-full overflow-x-auto", SCROLLBAR_CLASSES), children: /* @__PURE__ */ jsx100(
8433
8731
  "table",
8434
8732
  {
8435
8733
  ref,
@@ -8445,7 +8743,7 @@ var Table = forwardRef25(function Table2({ label, density = "default", fixed = f
8445
8743
  });
8446
8744
  var TableCaption = forwardRef25(
8447
8745
  function TableCaption2({ className, ...rest }, ref) {
8448
- return /* @__PURE__ */ jsx97(
8746
+ return /* @__PURE__ */ jsx100(
8449
8747
  "caption",
8450
8748
  {
8451
8749
  ref,
@@ -8457,17 +8755,17 @@ var TableCaption = forwardRef25(
8457
8755
  );
8458
8756
  var TableHeader = forwardRef25(
8459
8757
  function TableHeader2({ className, ...rest }, ref) {
8460
- return /* @__PURE__ */ jsx97("thead", { ref, className: cn("border-b border-default", className), ...rest });
8758
+ return /* @__PURE__ */ jsx100("thead", { ref, className: cn("border-b border-default", className), ...rest });
8461
8759
  }
8462
8760
  );
8463
8761
  var TableBody = forwardRef25(
8464
8762
  function TableBody2({ className, ...rest }, ref) {
8465
- return /* @__PURE__ */ jsx97("tbody", { ref, className, ...rest });
8763
+ return /* @__PURE__ */ jsx100("tbody", { ref, className, ...rest });
8466
8764
  }
8467
8765
  );
8468
8766
  var TableFooter = forwardRef25(
8469
8767
  function TableFooter2({ className, ...rest }, ref) {
8470
- return /* @__PURE__ */ jsx97(
8768
+ return /* @__PURE__ */ jsx100(
8471
8769
  "tfoot",
8472
8770
  {
8473
8771
  ref,
@@ -8478,7 +8776,7 @@ var TableFooter = forwardRef25(
8478
8776
  }
8479
8777
  );
8480
8778
  var TableRow = forwardRef25(function TableRow2({ selected, className, ...rest }, ref) {
8481
- return /* @__PURE__ */ jsx97(
8779
+ return /* @__PURE__ */ jsx100(
8482
8780
  "tr",
8483
8781
  {
8484
8782
  ref,
@@ -8496,7 +8794,7 @@ var TableRow = forwardRef25(function TableRow2({ selected, className, ...rest },
8496
8794
  var ALIGN2 = { left: "text-left", center: "text-center", right: "text-right" };
8497
8795
  var TableHead = forwardRef25(function TableHead2({ sort, onSort, align = "left", sticky = false, className, children, ...rest }, ref) {
8498
8796
  const sortable = sort !== void 0 && onSort !== void 0;
8499
- return /* @__PURE__ */ jsx97(
8797
+ return /* @__PURE__ */ jsx100(
8500
8798
  "th",
8501
8799
  {
8502
8800
  ref,
@@ -8509,18 +8807,18 @@ var TableHead = forwardRef25(function TableHead2({ sort, onSort, align = "left",
8509
8807
  className
8510
8808
  ),
8511
8809
  ...rest,
8512
- children: sortable ? /* @__PURE__ */ jsxs66(
8810
+ children: sortable ? /* @__PURE__ */ jsxs67(
8513
8811
  "button",
8514
8812
  {
8515
8813
  type: "button",
8516
8814
  onClick: onSort,
8517
- className: clsx92(
8815
+ className: clsx93(
8518
8816
  "inline-flex items-center gap-1.5 rounded transition-colors hover:text-default",
8519
8817
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand focus-visible:ring-offset-1 focus-visible:ring-offset-default"
8520
8818
  ),
8521
8819
  children: [
8522
8820
  children,
8523
- sort === false ? /* @__PURE__ */ jsx97(LuChevronsUpDown, { "aria-hidden": true, className: "size-3.5 opacity-50" }) : sort === "ascending" ? /* @__PURE__ */ jsx97(LuChevronUp, { "aria-hidden": true, className: "size-3.5" }) : /* @__PURE__ */ jsx97(LuChevronDown4, { "aria-hidden": true, className: "size-3.5" })
8821
+ sort === false ? /* @__PURE__ */ jsx100(LuChevronsUpDown, { "aria-hidden": true, className: "size-3.5 opacity-50" }) : sort === "ascending" ? /* @__PURE__ */ jsx100(LuChevronUp, { "aria-hidden": true, className: "size-3.5" }) : /* @__PURE__ */ jsx100(LuChevronDown4, { "aria-hidden": true, className: "size-3.5" })
8524
8822
  ]
8525
8823
  }
8526
8824
  ) : children
@@ -8529,7 +8827,7 @@ var TableHead = forwardRef25(function TableHead2({ sort, onSort, align = "left",
8529
8827
  });
8530
8828
  var TableCell = forwardRef25(function TableCell2({ align = "left", density = "default", header = false, className, ...rest }, ref) {
8531
8829
  const Tag = header ? "th" : "td";
8532
- return /* @__PURE__ */ jsx97(
8830
+ return /* @__PURE__ */ jsx100(
8533
8831
  Tag,
8534
8832
  {
8535
8833
  ref,
@@ -8547,8 +8845,8 @@ var TableCell = forwardRef25(function TableCell2({ align = "left", density = "de
8547
8845
  });
8548
8846
 
8549
8847
  // src/components/lists/data-table.tsx
8550
- import clsx93 from "clsx";
8551
- import { jsx as jsx98, jsxs as jsxs67 } from "react/jsx-runtime";
8848
+ import clsx94 from "clsx";
8849
+ import { jsx as jsx101, jsxs as jsxs68 } from "react/jsx-runtime";
8552
8850
  var DENSITY2 = {
8553
8851
  default: {
8554
8852
  headerCell: "px-4 py-3",
@@ -8577,29 +8875,29 @@ function DataTable({
8577
8875
  }) {
8578
8876
  const d = DENSITY2[density];
8579
8877
  const minWidth = columns.length ? `calc(${columns.map((c) => c.width).join(" + ")})` : void 0;
8580
- return /* @__PURE__ */ jsx98("div", { className: clsx93(
8878
+ return /* @__PURE__ */ jsx101("div", { className: clsx94(
8581
8879
  // A wrapper element here is load-bearing for the table layout, and the rows are
8582
8880
  // focusable when clickable, so this takes the scrollbar styling rather than ScrollArea.
8583
- clsx93("overflow-x-auto rounded-xl border border-default bg-default", SCROLLBAR_CLASSES),
8881
+ clsx94("overflow-x-auto rounded-xl border border-default bg-default", SCROLLBAR_CLASSES),
8584
8882
  className
8585
- ), children: /* @__PURE__ */ jsxs67("table", { className: "w-full table-fixed border-collapse text-left", style: { minWidth }, children: [
8586
- /* @__PURE__ */ jsx98("colgroup", { children: columns.map((col) => (
8883
+ ), children: /* @__PURE__ */ jsxs68("table", { className: "w-full table-fixed border-collapse text-left", style: { minWidth }, children: [
8884
+ /* @__PURE__ */ jsx101("colgroup", { children: columns.map((col) => (
8587
8885
  // A grow column gets no width, so table-fixed hands it the leftover space.
8588
8886
  // Its floor is already counted in the table's min-width.
8589
- /* @__PURE__ */ jsx98("col", { style: col.grow ? void 0 : { width: col.width } }, col.key)
8887
+ /* @__PURE__ */ jsx101("col", { style: col.grow ? void 0 : { width: col.width } }, col.key)
8590
8888
  )) }),
8591
- /* @__PURE__ */ jsx98("thead", { children: /* @__PURE__ */ jsx98("tr", { className: "bg-default-secondary", children: columns.map((col) => /* @__PURE__ */ jsx98("th", { scope: "col", className: clsx93("overflow-hidden", d.headerCell, d.headerText), children: col.header }, col.key)) }) }),
8592
- /* @__PURE__ */ jsx98("tbody", { children: rows.length === 0 ? emptyLabel && /* @__PURE__ */ jsx98("tr", { children: /* @__PURE__ */ jsx98(
8889
+ /* @__PURE__ */ jsx101("thead", { children: /* @__PURE__ */ jsx101("tr", { className: "bg-default-secondary", children: columns.map((col) => /* @__PURE__ */ jsx101("th", { scope: "col", className: clsx94("overflow-hidden", d.headerCell, d.headerText), children: col.header }, col.key)) }) }),
8890
+ /* @__PURE__ */ jsx101("tbody", { children: rows.length === 0 ? emptyLabel && /* @__PURE__ */ jsx101("tr", { children: /* @__PURE__ */ jsx101(
8593
8891
  "td",
8594
8892
  {
8595
8893
  colSpan: columns.length,
8596
- className: clsx93(d.bodyCell, "text-center text-body-sm text-default-secondary"),
8894
+ className: clsx94(d.bodyCell, "text-center text-body-sm text-default-secondary"),
8597
8895
  children: emptyLabel
8598
8896
  }
8599
- ) }) : rows.map((row, i) => /* @__PURE__ */ jsx98(
8897
+ ) }) : rows.map((row, i) => /* @__PURE__ */ jsx101(
8600
8898
  "tr",
8601
8899
  {
8602
- className: clsx93(
8900
+ className: clsx94(
8603
8901
  "transition-colors hover:bg-default-secondary/50",
8604
8902
  i > 0 && "border-t border-default",
8605
8903
  // outline, not ring: `ring-*` compiles to box-shadow, which browsers
@@ -8614,28 +8912,28 @@ function DataTable({
8614
8912
  onRowClick(row);
8615
8913
  }
8616
8914
  } : void 0,
8617
- children: columns.map((col) => /* @__PURE__ */ jsx98("td", { className: clsx93("overflow-hidden", d.bodyCell, ALIGN3[align]), children: col.render(row) }, col.key))
8915
+ children: columns.map((col) => /* @__PURE__ */ jsx101("td", { className: clsx94("overflow-hidden", d.bodyCell, ALIGN3[align]), children: col.render(row) }, col.key))
8618
8916
  },
8619
8917
  getRowKey(row, i)
8620
8918
  )) })
8621
8919
  ] }) });
8622
8920
  }
8623
8921
  function TableCellLeadText({ primary, secondary, size: size2 = "md", className }) {
8624
- return /* @__PURE__ */ jsxs67("div", { className: clsx93("flex flex-col gap-0.5", className), children: [
8625
- /* @__PURE__ */ jsx98(
8922
+ return /* @__PURE__ */ jsxs68("div", { className: clsx94("flex flex-col gap-0.5", className), children: [
8923
+ /* @__PURE__ */ jsx101(
8626
8924
  "span",
8627
8925
  {
8628
- className: clsx93(
8926
+ className: clsx94(
8629
8927
  "font-medium leading-snug text-default",
8630
8928
  size2 === "sm" ? "text-body-xs" : "text-body-sm"
8631
8929
  ),
8632
8930
  children: primary
8633
8931
  }
8634
8932
  ),
8635
- secondary && /* @__PURE__ */ jsx98(
8933
+ secondary && /* @__PURE__ */ jsx101(
8636
8934
  "span",
8637
8935
  {
8638
- className: clsx93(
8936
+ className: clsx94(
8639
8937
  "font-normal leading-tight text-default-secondary",
8640
8938
  size2 === "sm" ? "text-body-tiny" : "text-body-xs"
8641
8939
  ),
@@ -8651,10 +8949,10 @@ function TableCellText({
8651
8949
  truncate = false,
8652
8950
  className
8653
8951
  }) {
8654
- return /* @__PURE__ */ jsx98(
8952
+ return /* @__PURE__ */ jsx101(
8655
8953
  "span",
8656
8954
  {
8657
- className: clsx93(
8955
+ className: clsx94(
8658
8956
  "font-normal leading-snug",
8659
8957
  size2 === "sm" ? "text-body-tiny" : "text-body-xs",
8660
8958
  truncate ? "block truncate" : "whitespace-nowrap",
@@ -8666,10 +8964,10 @@ function TableCellText({
8666
8964
  );
8667
8965
  }
8668
8966
  function TableCellBadge({ label, className }) {
8669
- return /* @__PURE__ */ jsx98(
8967
+ return /* @__PURE__ */ jsx101(
8670
8968
  "span",
8671
8969
  {
8672
- className: clsx93(
8970
+ className: clsx94(
8673
8971
  "inline-flex items-center rounded-md border border-default bg-default-secondary px-2 py-0.5 text-body-tiny font-medium text-default-secondary whitespace-nowrap",
8674
8972
  className
8675
8973
  ),
@@ -8684,8 +8982,8 @@ function TableCellProgress({
8684
8982
  className
8685
8983
  }) {
8686
8984
  const clamped = Math.min(100, Math.max(0, percent));
8687
- return /* @__PURE__ */ jsxs67("div", { className: clsx93("flex flex-col gap-1", className), children: [
8688
- /* @__PURE__ */ jsx98(
8985
+ return /* @__PURE__ */ jsxs68("div", { className: clsx94("flex flex-col gap-1", className), children: [
8986
+ /* @__PURE__ */ jsx101(
8689
8987
  ProgressBar,
8690
8988
  {
8691
8989
  value: clamped,
@@ -8695,7 +8993,7 @@ function TableCellProgress({
8695
8993
  "aria-label": `${clamped}%`
8696
8994
  }
8697
8995
  ),
8698
- /* @__PURE__ */ jsxs67("span", { className: "text-body-tiny leading-none text-default-secondary", children: [
8996
+ /* @__PURE__ */ jsxs68("span", { className: "text-body-tiny leading-none text-default-secondary", children: [
8699
8997
  percent,
8700
8998
  "%"
8701
8999
  ] })
@@ -8703,9 +9001,9 @@ function TableCellProgress({
8703
9001
  }
8704
9002
 
8705
9003
  // src/components/feedback/inline-alert.tsx
8706
- import clsx94 from "clsx";
9004
+ import clsx95 from "clsx";
8707
9005
  import { LuCircleCheckBig as LuCircleCheckBig2, LuInfo as LuInfo2, LuTriangleAlert as LuTriangleAlert2 } from "react-icons/lu";
8708
- import { jsx as jsx99, jsxs as jsxs68 } from "react/jsx-runtime";
9006
+ import { jsx as jsx102, jsxs as jsxs69 } from "react/jsx-runtime";
8709
9007
  var toneStyles3 = {
8710
9008
  info: "border-brand-tertiary bg-brand-tertiary text-brand",
8711
9009
  warning: "border-warning-tertiary bg-warning-tertiary text-warning",
@@ -8713,33 +9011,33 @@ var toneStyles3 = {
8713
9011
  positive: "border-positive-tertiary bg-positive-tertiary text-positive"
8714
9012
  };
8715
9013
  var toneIcons = {
8716
- info: /* @__PURE__ */ jsx99(LuInfo2, { className: "size-4" }),
8717
- warning: /* @__PURE__ */ jsx99(LuTriangleAlert2, { className: "size-4" }),
8718
- danger: /* @__PURE__ */ jsx99(LuTriangleAlert2, { className: "size-4" }),
8719
- positive: /* @__PURE__ */ jsx99(LuCircleCheckBig2, { className: "size-4" })
9014
+ info: /* @__PURE__ */ jsx102(LuInfo2, { className: "size-4" }),
9015
+ warning: /* @__PURE__ */ jsx102(LuTriangleAlert2, { className: "size-4" }),
9016
+ danger: /* @__PURE__ */ jsx102(LuTriangleAlert2, { className: "size-4" }),
9017
+ positive: /* @__PURE__ */ jsx102(LuCircleCheckBig2, { className: "size-4" })
8720
9018
  };
8721
9019
  function InlineAlert({ tone, children, icon, className }) {
8722
9020
  const glyph = icon === void 0 ? toneIcons[tone] : icon;
8723
- return /* @__PURE__ */ jsxs68(
9021
+ return /* @__PURE__ */ jsxs69(
8724
9022
  "div",
8725
9023
  {
8726
9024
  role: tone === "danger" ? "alert" : "status",
8727
- className: clsx94(
9025
+ className: clsx95(
8728
9026
  "flex items-start gap-3 rounded-xl border p-4 text-body-xs",
8729
9027
  toneStyles3[tone],
8730
9028
  className
8731
9029
  ),
8732
9030
  children: [
8733
- glyph && /* @__PURE__ */ jsx99("span", { "aria-hidden": true, className: "mt-px shrink-0", children: glyph }),
8734
- /* @__PURE__ */ jsx99("div", { className: "min-w-0", children })
9031
+ glyph && /* @__PURE__ */ jsx102("span", { "aria-hidden": true, className: "mt-px shrink-0", children: glyph }),
9032
+ /* @__PURE__ */ jsx102("div", { className: "min-w-0", children })
8735
9033
  ]
8736
9034
  }
8737
9035
  );
8738
9036
  }
8739
9037
 
8740
9038
  // src/components/feedback/empty-state.tsx
8741
- import clsx95 from "clsx";
8742
- import { jsx as jsx100, jsxs as jsxs69 } from "react/jsx-runtime";
9039
+ import clsx96 from "clsx";
9040
+ import { jsx as jsx103, jsxs as jsxs70 } from "react/jsx-runtime";
8743
9041
  var SIZES = {
8744
9042
  sm: "py-8",
8745
9043
  md: "py-12",
@@ -8758,10 +9056,10 @@ function EmptyState({
8758
9056
  action,
8759
9057
  className
8760
9058
  }) {
8761
- return /* @__PURE__ */ jsxs69(
9059
+ return /* @__PURE__ */ jsxs70(
8762
9060
  "div",
8763
9061
  {
8764
- className: clsx95(
9062
+ className: clsx96(
8765
9063
  "flex flex-col items-center justify-center gap-2 px-4 text-center text-body-sm",
8766
9064
  SIZES[size2],
8767
9065
  TONES[variant],
@@ -8769,8 +9067,8 @@ function EmptyState({
8769
9067
  ),
8770
9068
  "aria-live": variant === "empty" ? void 0 : "polite",
8771
9069
  children: [
8772
- icon && /* @__PURE__ */ jsx100("span", { className: "text-default-tertiary", children: icon }),
8773
- /* @__PURE__ */ jsx100("p", { children: message }),
9070
+ icon && /* @__PURE__ */ jsx103("span", { className: "text-default-tertiary", children: icon }),
9071
+ /* @__PURE__ */ jsx103("p", { children: message }),
8774
9072
  action
8775
9073
  ]
8776
9074
  }
@@ -8779,8 +9077,8 @@ function EmptyState({
8779
9077
 
8780
9078
  // src/components/feedback/skeleton.tsx
8781
9079
  import { forwardRef as forwardRef26 } from "react";
8782
- import clsx96 from "clsx";
8783
- import { jsx as jsx101 } from "react/jsx-runtime";
9080
+ import clsx97 from "clsx";
9081
+ import { jsx as jsx104 } from "react/jsx-runtime";
8784
9082
  var SHAPE2 = {
8785
9083
  line: "h-4 rounded",
8786
9084
  block: "h-full w-full rounded-lg",
@@ -8788,10 +9086,10 @@ var SHAPE2 = {
8788
9086
  };
8789
9087
  var Skeleton = forwardRef26(function Skeleton2({ shape = "line", lines = 1, className, ...rest }, ref) {
8790
9088
  if (shape === "line" && lines > 1) {
8791
- return /* @__PURE__ */ jsx101("div", { ref, "aria-hidden": true, "data-slot": "skeleton-group", className: "flex flex-col gap-2", ...rest, children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx101(
9089
+ return /* @__PURE__ */ jsx104("div", { ref, "aria-hidden": true, "data-slot": "skeleton-group", className: "flex flex-col gap-2", ...rest, children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx104(
8792
9090
  "div",
8793
9091
  {
8794
- className: clsx96(
9092
+ className: clsx97(
8795
9093
  "animate-pulse bg-default-tertiary",
8796
9094
  SHAPE2.line,
8797
9095
  // A ragged last line reads as a paragraph rather than a solid slab.
@@ -8802,13 +9100,13 @@ var Skeleton = forwardRef26(function Skeleton2({ shape = "line", lines = 1, clas
8802
9100
  index
8803
9101
  )) });
8804
9102
  }
8805
- return /* @__PURE__ */ jsx101(
9103
+ return /* @__PURE__ */ jsx104(
8806
9104
  "div",
8807
9105
  {
8808
9106
  ref,
8809
9107
  "aria-hidden": true,
8810
9108
  "data-slot": "skeleton",
8811
- className: clsx96("animate-pulse bg-default-tertiary", SHAPE2[shape], className),
9109
+ className: clsx97("animate-pulse bg-default-tertiary", SHAPE2[shape], className),
8812
9110
  ...rest
8813
9111
  }
8814
9112
  );
@@ -8816,9 +9114,9 @@ var Skeleton = forwardRef26(function Skeleton2({ shape = "line", lines = 1, clas
8816
9114
 
8817
9115
  // src/components/feedback/banner.tsx
8818
9116
  import { forwardRef as forwardRef27, useId as useId24 } from "react";
8819
- import clsx97 from "clsx";
9117
+ import clsx98 from "clsx";
8820
9118
  import { LuCircleCheckBig as LuCircleCheckBig3, LuInfo as LuInfo3, LuTriangleAlert as LuTriangleAlert3, LuX as LuX6 } from "react-icons/lu";
8821
- import { jsx as jsx102, jsxs as jsxs70 } from "react/jsx-runtime";
9119
+ import { jsx as jsx105, jsxs as jsxs71 } from "react/jsx-runtime";
8822
9120
  var TONE_STYLES3 = {
8823
9121
  info: "border-brand-tertiary bg-brand-tertiary text-default",
8824
9122
  positive: "border-positive-tertiary bg-positive-tertiary text-default",
@@ -8832,10 +9130,10 @@ var TONE_ICON_COLOR = {
8832
9130
  danger: "text-icon-danger"
8833
9131
  };
8834
9132
  var TONE_ICON2 = {
8835
- info: /* @__PURE__ */ jsx102(LuInfo3, { "aria-hidden": true, className: "size-5" }),
8836
- positive: /* @__PURE__ */ jsx102(LuCircleCheckBig3, { "aria-hidden": true, className: "size-5" }),
8837
- warning: /* @__PURE__ */ jsx102(LuTriangleAlert3, { "aria-hidden": true, className: "size-5" }),
8838
- danger: /* @__PURE__ */ jsx102(LuTriangleAlert3, { "aria-hidden": true, className: "size-5" })
9133
+ info: /* @__PURE__ */ jsx105(LuInfo3, { "aria-hidden": true, className: "size-5" }),
9134
+ positive: /* @__PURE__ */ jsx105(LuCircleCheckBig3, { "aria-hidden": true, className: "size-5" }),
9135
+ warning: /* @__PURE__ */ jsx105(LuTriangleAlert3, { "aria-hidden": true, className: "size-5" }),
9136
+ danger: /* @__PURE__ */ jsx105(LuTriangleAlert3, { "aria-hidden": true, className: "size-5" })
8839
9137
  };
8840
9138
  var Banner = forwardRef27(function Banner2({
8841
9139
  title,
@@ -8850,27 +9148,27 @@ var Banner = forwardRef27(function Banner2({
8850
9148
  }, ref) {
8851
9149
  const titleId = useId24();
8852
9150
  const glyph = icon === void 0 ? TONE_ICON2[tone] : icon;
8853
- return /* @__PURE__ */ jsxs70(
9151
+ return /* @__PURE__ */ jsxs71(
8854
9152
  "div",
8855
9153
  {
8856
9154
  ref,
8857
9155
  role: variant === "alert" ? "alert" : "status",
8858
9156
  "aria-labelledby": titleId,
8859
9157
  "data-slot": "banner",
8860
- className: clsx97(
9158
+ className: clsx98(
8861
9159
  "flex w-full items-start gap-3 rounded-xl border p-4",
8862
9160
  TONE_STYLES3[tone],
8863
9161
  className
8864
9162
  ),
8865
9163
  ...rest,
8866
9164
  children: [
8867
- glyph && /* @__PURE__ */ jsx102("span", { "aria-hidden": true, className: clsx97("mt-px shrink-0", TONE_ICON_COLOR[tone]), children: glyph }),
8868
- /* @__PURE__ */ jsxs70("div", { className: "min-w-0 flex-1", children: [
8869
- /* @__PURE__ */ jsx102("p", { id: titleId, className: "text-body-sm font-semibold text-default", children: title }),
8870
- children && /* @__PURE__ */ jsx102("div", { className: "mt-1 text-body-xs text-default-secondary", children }),
8871
- action && /* @__PURE__ */ jsx102("div", { className: "mt-3 flex items-center gap-2", children: action })
9165
+ glyph && /* @__PURE__ */ jsx105("span", { "aria-hidden": true, className: clsx98("mt-px shrink-0", TONE_ICON_COLOR[tone]), children: glyph }),
9166
+ /* @__PURE__ */ jsxs71("div", { className: "min-w-0 flex-1", children: [
9167
+ /* @__PURE__ */ jsx105("p", { id: titleId, className: "text-body-sm font-semibold text-default", children: title }),
9168
+ children && /* @__PURE__ */ jsx105("div", { className: "mt-1 text-body-xs text-default-secondary", children }),
9169
+ action && /* @__PURE__ */ jsx105("div", { className: "mt-3 flex items-center gap-2", children: action })
8872
9170
  ] }),
8873
- onDismiss && /* @__PURE__ */ jsx102(
9171
+ onDismiss && /* @__PURE__ */ jsx105(
8874
9172
  IconButton,
8875
9173
  {
8876
9174
  variant: "subtle",
@@ -8878,7 +9176,7 @@ var Banner = forwardRef27(function Banner2({
8878
9176
  "aria-label": typeof title === "string" ? `Dismiss: ${title}` : "Dismiss",
8879
9177
  onClick: onDismiss,
8880
9178
  className: "-mr-1 -mt-1 shrink-0",
8881
- children: /* @__PURE__ */ jsx102(LuX6, { "aria-hidden": true, size: 16 })
9179
+ children: /* @__PURE__ */ jsx105(LuX6, { "aria-hidden": true, size: 16 })
8882
9180
  }
8883
9181
  )
8884
9182
  ]
@@ -8892,13 +9190,13 @@ import {
8892
9190
  useCallback as useCallback11,
8893
9191
  useContext as useContext16,
8894
9192
  useEffect as useEffect20,
8895
- useMemo as useMemo13,
8896
- useRef as useRef27,
8897
- useState as useState22
9193
+ useMemo as useMemo16,
9194
+ useRef as useRef28,
9195
+ useState as useState23
8898
9196
  } from "react";
8899
- import clsx98 from "clsx";
9197
+ import clsx99 from "clsx";
8900
9198
  import { LuCircleCheckBig as LuCircleCheckBig4, LuInfo as LuInfo4, LuTriangleAlert as LuTriangleAlert4, LuX as LuX7 } from "react-icons/lu";
8901
- import { jsx as jsx103, jsxs as jsxs71 } from "react/jsx-runtime";
9199
+ import { jsx as jsx106, jsxs as jsxs72 } from "react/jsx-runtime";
8902
9200
  var ToastContext = createContext16(null);
8903
9201
  function useToast() {
8904
9202
  const context = useContext16(ToastContext);
@@ -8906,10 +9204,10 @@ function useToast() {
8906
9204
  return context;
8907
9205
  }
8908
9206
  var TONE_ICON3 = {
8909
- info: /* @__PURE__ */ jsx103(LuInfo4, { "aria-hidden": true, className: "size-4" }),
8910
- positive: /* @__PURE__ */ jsx103(LuCircleCheckBig4, { "aria-hidden": true, className: "size-4" }),
8911
- warning: /* @__PURE__ */ jsx103(LuTriangleAlert4, { "aria-hidden": true, className: "size-4" }),
8912
- danger: /* @__PURE__ */ jsx103(LuTriangleAlert4, { "aria-hidden": true, className: "size-4" })
9207
+ info: /* @__PURE__ */ jsx106(LuInfo4, { "aria-hidden": true, className: "size-4" }),
9208
+ positive: /* @__PURE__ */ jsx106(LuCircleCheckBig4, { "aria-hidden": true, className: "size-4" }),
9209
+ warning: /* @__PURE__ */ jsx106(LuTriangleAlert4, { "aria-hidden": true, className: "size-4" }),
9210
+ danger: /* @__PURE__ */ jsx106(LuTriangleAlert4, { "aria-hidden": true, className: "size-4" })
8913
9211
  };
8914
9212
  var TONE_ICON_COLOR2 = {
8915
9213
  info: "text-icon-brand",
@@ -8931,9 +9229,9 @@ function Toaster({
8931
9229
  max = 4,
8932
9230
  duration = 5e3
8933
9231
  }) {
8934
- const [toasts, setToasts] = useState22([]);
8935
- const timers = useRef27(/* @__PURE__ */ new Map());
8936
- const counter = useRef27(0);
9232
+ const [toasts, setToasts] = useState23([]);
9233
+ const timers = useRef28(/* @__PURE__ */ new Map());
9234
+ const counter = useRef28(0);
8937
9235
  const dismiss = useCallback11((id) => {
8938
9236
  const timer = timers.current.get(id);
8939
9237
  if (timer) {
@@ -8970,41 +9268,41 @@ function Toaster({
8970
9268
  map.clear();
8971
9269
  };
8972
9270
  }, []);
8973
- const context = useMemo13(() => ({ toast, dismiss, dismissAll }), [toast, dismiss, dismissAll]);
8974
- return /* @__PURE__ */ jsxs71(ToastContext.Provider, { value: context, children: [
9271
+ const context = useMemo16(() => ({ toast, dismiss, dismissAll }), [toast, dismiss, dismissAll]);
9272
+ return /* @__PURE__ */ jsxs72(ToastContext.Provider, { value: context, children: [
8975
9273
  children,
8976
- /* @__PURE__ */ jsx103(Portal, { children: /* @__PURE__ */ jsx103(
9274
+ /* @__PURE__ */ jsx106(Portal, { children: /* @__PURE__ */ jsx106(
8977
9275
  "div",
8978
9276
  {
8979
9277
  "aria-live": "polite",
8980
9278
  "aria-atomic": "false",
8981
- className: clsx98(
9279
+ className: clsx99(
8982
9280
  "pointer-events-none fixed z-toast flex w-full max-w-[380px] flex-col gap-2",
8983
9281
  POSITION[position]
8984
9282
  ),
8985
- children: toasts.map((entry) => /* @__PURE__ */ jsx103(ToastItem, { toast: entry, onDismiss: () => dismiss(entry.id) }, entry.id))
9283
+ children: toasts.map((entry) => /* @__PURE__ */ jsx106(ToastItem, { toast: entry, onDismiss: () => dismiss(entry.id) }, entry.id))
8986
9284
  }
8987
9285
  ) })
8988
9286
  ] });
8989
9287
  }
8990
9288
  function ToastItem({ toast, onDismiss }) {
8991
9289
  const tone = toast.tone ?? "info";
8992
- return /* @__PURE__ */ jsxs71(
9290
+ return /* @__PURE__ */ jsxs72(
8993
9291
  "div",
8994
9292
  {
8995
9293
  role: tone === "danger" ? "alert" : "status",
8996
- className: clsx98(
9294
+ className: clsx99(
8997
9295
  "pointer-events-auto flex w-full items-start gap-3 rounded-xl border border-default",
8998
9296
  "bg-default p-4 shadow-400"
8999
9297
  ),
9000
9298
  children: [
9001
- /* @__PURE__ */ jsx103("span", { "aria-hidden": true, className: clsx98("mt-px shrink-0", TONE_ICON_COLOR2[tone]), children: TONE_ICON3[tone] }),
9002
- /* @__PURE__ */ jsxs71("div", { className: "min-w-0 flex-1", children: [
9003
- /* @__PURE__ */ jsx103("p", { className: "text-body-sm font-semibold text-default", children: toast.title }),
9004
- toast.description && /* @__PURE__ */ jsx103("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: toast.description }),
9005
- toast.action && /* @__PURE__ */ jsx103("div", { className: "mt-2 flex items-center gap-2", children: toast.action })
9299
+ /* @__PURE__ */ jsx106("span", { "aria-hidden": true, className: clsx99("mt-px shrink-0", TONE_ICON_COLOR2[tone]), children: TONE_ICON3[tone] }),
9300
+ /* @__PURE__ */ jsxs72("div", { className: "min-w-0 flex-1", children: [
9301
+ /* @__PURE__ */ jsx106("p", { className: "text-body-sm font-semibold text-default", children: toast.title }),
9302
+ toast.description && /* @__PURE__ */ jsx106("p", { className: "mt-0.5 text-body-xs text-default-secondary", children: toast.description }),
9303
+ toast.action && /* @__PURE__ */ jsx106("div", { className: "mt-2 flex items-center gap-2", children: toast.action })
9006
9304
  ] }),
9007
- /* @__PURE__ */ jsx103(
9305
+ /* @__PURE__ */ jsx106(
9008
9306
  IconButton,
9009
9307
  {
9010
9308
  variant: "subtle",
@@ -9012,7 +9310,7 @@ function ToastItem({ toast, onDismiss }) {
9012
9310
  "aria-label": typeof toast.title === "string" ? `Dismiss: ${toast.title}` : "Dismiss",
9013
9311
  onClick: onDismiss,
9014
9312
  className: "-mr-1 -mt-1 shrink-0",
9015
- children: /* @__PURE__ */ jsx103(LuX7, { "aria-hidden": true, size: 14 })
9313
+ children: /* @__PURE__ */ jsx106(LuX7, { "aria-hidden": true, size: 14 })
9016
9314
  }
9017
9315
  )
9018
9316
  ]
@@ -9021,25 +9319,25 @@ function ToastItem({ toast, onDismiss }) {
9021
9319
  }
9022
9320
 
9023
9321
  // src/components/forms/password-input.tsx
9024
- import { forwardRef as forwardRef28, useState as useState23 } from "react";
9322
+ import { forwardRef as forwardRef28, useState as useState24 } from "react";
9025
9323
  import { LuEye, LuEyeOff } from "react-icons/lu";
9026
- import { jsx as jsx104 } from "react/jsx-runtime";
9324
+ import { jsx as jsx107 } from "react/jsx-runtime";
9027
9325
  var PasswordInput = forwardRef28(function PasswordInput2(props, ref) {
9028
- const [visible, setVisible] = useState23(false);
9029
- return /* @__PURE__ */ jsx104(
9326
+ const [visible, setVisible] = useState24(false);
9327
+ return /* @__PURE__ */ jsx107(
9030
9328
  Input,
9031
9329
  {
9032
9330
  ref,
9033
9331
  ...props,
9034
9332
  type: visible ? "text" : "password",
9035
- trailingAction: /* @__PURE__ */ jsx104(
9333
+ trailingAction: /* @__PURE__ */ jsx107(
9036
9334
  "button",
9037
9335
  {
9038
9336
  type: "button",
9039
9337
  "aria-label": visible ? "Hide password" : "Show password",
9040
9338
  onClick: () => setVisible((v) => !v),
9041
9339
  className: "flex items-center justify-center rounded transition-colors hover:text-default focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand",
9042
- children: visible ? /* @__PURE__ */ jsx104(LuEyeOff, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ jsx104(LuEye, { "aria-hidden": true, className: "size-4" })
9340
+ children: visible ? /* @__PURE__ */ jsx107(LuEyeOff, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ jsx107(LuEye, { "aria-hidden": true, className: "size-4" })
9043
9341
  }
9044
9342
  )
9045
9343
  }
@@ -9047,31 +9345,31 @@ var PasswordInput = forwardRef28(function PasswordInput2(props, ref) {
9047
9345
  });
9048
9346
 
9049
9347
  // src/components/ai/ai-chat-bar.tsx
9050
- import clsx99 from "clsx";
9348
+ import clsx100 from "clsx";
9051
9349
  import { LuArrowRight as LuArrowRight2, LuSearch as LuSearch3 } from "react-icons/lu";
9052
- import { jsx as jsx105, jsxs as jsxs72 } from "react/jsx-runtime";
9350
+ import { jsx as jsx108, jsxs as jsxs73 } from "react/jsx-runtime";
9053
9351
  function AIChatBar({
9054
9352
  placeholder = "Ask Intelligence about any entity, supplier, or risk\u2026",
9055
9353
  className
9056
9354
  }) {
9057
- return /* @__PURE__ */ jsxs72(
9355
+ return /* @__PURE__ */ jsxs73(
9058
9356
  "div",
9059
9357
  {
9060
- className: clsx99(
9358
+ className: clsx100(
9061
9359
  "flex h-16 items-center gap-3 rounded-2xl border border-default bg-default px-6 shadow-panel",
9062
9360
  className
9063
9361
  ),
9064
9362
  children: [
9065
- /* @__PURE__ */ jsx105("span", { "aria-hidden": true, className: "shrink-0 text-icon-default-secondary", children: /* @__PURE__ */ jsx105(LuSearch3, { className: "size-4" }) }),
9066
- /* @__PURE__ */ jsx105("p", { className: "flex-1 text-body-sm text-default-tertiary truncate", children: placeholder }),
9067
- /* @__PURE__ */ jsxs72(
9363
+ /* @__PURE__ */ jsx108("span", { "aria-hidden": true, className: "shrink-0 text-icon-default-secondary", children: /* @__PURE__ */ jsx108(LuSearch3, { className: "size-4" }) }),
9364
+ /* @__PURE__ */ jsx108("p", { className: "flex-1 text-body-sm text-default-tertiary truncate", children: placeholder }),
9365
+ /* @__PURE__ */ jsxs73(
9068
9366
  "button",
9069
9367
  {
9070
9368
  type: "button",
9071
9369
  className: "inline-flex shrink-0 items-center gap-2 rounded-xl bg-brand px-4 py-3 text-body-sm font-semibold text-brand-on-brand hover:bg-brand-hover transition-colors",
9072
9370
  children: [
9073
9371
  "Ask",
9074
- /* @__PURE__ */ jsx105(LuArrowRight2, { "aria-hidden": true, className: "size-4" })
9372
+ /* @__PURE__ */ jsx108(LuArrowRight2, { "aria-hidden": true, className: "size-4" })
9075
9373
  ]
9076
9374
  }
9077
9375
  )
@@ -9081,42 +9379,42 @@ function AIChatBar({
9081
9379
  }
9082
9380
 
9083
9381
  // src/components/ai/ai-suggestion-chip.tsx
9084
- import clsx100 from "clsx";
9382
+ import clsx101 from "clsx";
9085
9383
  import { LuArrowRight as LuArrowRight3, LuCpu } from "react-icons/lu";
9086
- import { jsx as jsx106, jsxs as jsxs73 } from "react/jsx-runtime";
9384
+ import { jsx as jsx109, jsxs as jsxs74 } from "react/jsx-runtime";
9087
9385
  function AISuggestionChip({ prompt, onClick, className }) {
9088
- return /* @__PURE__ */ jsxs73(
9386
+ return /* @__PURE__ */ jsxs74(
9089
9387
  "button",
9090
9388
  {
9091
9389
  type: "button",
9092
9390
  onClick,
9093
- className: clsx100(
9391
+ className: clsx101(
9094
9392
  "flex h-12 w-full items-center gap-3 rounded-xl border border-default bg-default px-3 text-left hover:bg-default-hover transition-colors",
9095
9393
  className
9096
9394
  ),
9097
9395
  children: [
9098
- /* @__PURE__ */ jsx106("span", { "aria-hidden": true, className: "shrink-0 text-icon-brand", children: /* @__PURE__ */ jsx106(LuCpu, { className: "size-4" }) }),
9099
- /* @__PURE__ */ jsx106("span", { className: "flex-1 text-body-sm text-default truncate", children: prompt }),
9100
- /* @__PURE__ */ jsx106("span", { "aria-hidden": true, className: "shrink-0 text-icon-default-secondary", children: /* @__PURE__ */ jsx106(LuArrowRight3, { className: "size-3.5", strokeWidth: 2.5 }) })
9396
+ /* @__PURE__ */ jsx109("span", { "aria-hidden": true, className: "shrink-0 text-icon-brand", children: /* @__PURE__ */ jsx109(LuCpu, { className: "size-4" }) }),
9397
+ /* @__PURE__ */ jsx109("span", { className: "flex-1 text-body-sm text-default truncate", children: prompt }),
9398
+ /* @__PURE__ */ jsx109("span", { "aria-hidden": true, className: "shrink-0 text-icon-default-secondary", children: /* @__PURE__ */ jsx109(LuArrowRight3, { className: "size-3.5", strokeWidth: 2.5 }) })
9101
9399
  ]
9102
9400
  }
9103
9401
  );
9104
9402
  }
9105
9403
 
9106
9404
  // src/components/ai/quick-actions-bar.tsx
9107
- import clsx101 from "clsx";
9108
- import { jsx as jsx107 } from "react/jsx-runtime";
9405
+ import clsx102 from "clsx";
9406
+ import { jsx as jsx110 } from "react/jsx-runtime";
9109
9407
  function QuickActionsBar({ actions, active, onSelect, className }) {
9110
- return /* @__PURE__ */ jsx107("div", { className: clsx101("flex flex-wrap items-center gap-3", className), children: actions.map((action) => {
9408
+ return /* @__PURE__ */ jsx110("div", { className: clsx102("flex flex-wrap items-center gap-3", className), children: actions.map((action) => {
9111
9409
  const isActive = active === action.value;
9112
- return /* @__PURE__ */ jsx107(
9410
+ return /* @__PURE__ */ jsx110(
9113
9411
  "button",
9114
9412
  {
9115
9413
  type: "button",
9116
9414
  "aria-pressed": isActive,
9117
9415
  onClick: () => onSelect?.(action.value),
9118
9416
  className: "rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand focus-visible:ring-offset-1 focus-visible:ring-offset-default",
9119
- children: /* @__PURE__ */ jsx107(TagPill, { label: action.label, tone: isActive ? "brand" : "default" })
9417
+ children: /* @__PURE__ */ jsx110(TagPill, { label: action.label, tone: isActive ? "brand" : "default" })
9120
9418
  },
9121
9419
  action.value
9122
9420
  );
@@ -9124,14 +9422,14 @@ function QuickActionsBar({ actions, active, onSelect, className }) {
9124
9422
  }
9125
9423
 
9126
9424
  // src/components/decorative/aurora-backdrop.tsx
9127
- import { jsx as jsx108, jsxs as jsxs74 } from "react/jsx-runtime";
9425
+ import { jsx as jsx111, jsxs as jsxs75 } from "react/jsx-runtime";
9128
9426
  function AuroraBackdrop() {
9129
- return /* @__PURE__ */ jsxs74("div", { className: "pointer-events-none absolute inset-0", "aria-hidden": true, children: [
9130
- /* @__PURE__ */ jsx108("div", { className: "absolute -left-24 -top-28", style: { width: 380, height: 380, background: "radial-gradient(ellipse, rgba(249,133,133,0.45) 0%, transparent 70%)" } }),
9131
- /* @__PURE__ */ jsx108("div", { className: "absolute -top-24 right-[-4%]", style: { width: 320, height: 320, background: "radial-gradient(ellipse, rgba(254,160,160,0.4) 0%, transparent 70%)" } }),
9132
- /* @__PURE__ */ jsx108("div", { className: "absolute bottom-[-10%] right-[14%]", style: { width: 420, height: 420, background: "radial-gradient(ellipse, rgba(196,181,253,0.3) 0%, transparent 70%)" } }),
9133
- /* @__PURE__ */ jsx108("div", { className: "absolute bottom-[-6%] left-[4%]", style: { width: 280, height: 280, background: "radial-gradient(ellipse, rgba(147,197,253,0.25) 0%, transparent 70%)" } }),
9134
- /* @__PURE__ */ jsx108("div", { className: "absolute left-[20%] top-[30%]", style: { width: 240, height: 240, background: "radial-gradient(ellipse, rgba(173,216,255,0.18) 0%, transparent 70%)" } })
9427
+ return /* @__PURE__ */ jsxs75("div", { className: "pointer-events-none absolute inset-0", "aria-hidden": true, children: [
9428
+ /* @__PURE__ */ jsx111("div", { className: "absolute -left-24 -top-28", style: { width: 380, height: 380, background: "radial-gradient(ellipse, rgba(249,133,133,0.45) 0%, transparent 70%)" } }),
9429
+ /* @__PURE__ */ jsx111("div", { className: "absolute -top-24 right-[-4%]", style: { width: 320, height: 320, background: "radial-gradient(ellipse, rgba(254,160,160,0.4) 0%, transparent 70%)" } }),
9430
+ /* @__PURE__ */ jsx111("div", { className: "absolute bottom-[-10%] right-[14%]", style: { width: 420, height: 420, background: "radial-gradient(ellipse, rgba(196,181,253,0.3) 0%, transparent 70%)" } }),
9431
+ /* @__PURE__ */ jsx111("div", { className: "absolute bottom-[-6%] left-[4%]", style: { width: 280, height: 280, background: "radial-gradient(ellipse, rgba(147,197,253,0.25) 0%, transparent 70%)" } }),
9432
+ /* @__PURE__ */ jsx111("div", { className: "absolute left-[20%] top-[30%]", style: { width: 240, height: 240, background: "radial-gradient(ellipse, rgba(173,216,255,0.18) 0%, transparent 70%)" } })
9135
9433
  ] });
9136
9434
  }
9137
9435
  export {
@@ -9157,6 +9455,7 @@ export {
9157
9455
  CHART_SEQUENCE,
9158
9456
  CHART_TONE,
9159
9457
  CHART_TRACK,
9458
+ COUNTRY_CODES,
9160
9459
  Calendar,
9161
9460
  Card,
9162
9461
  CardAction,
@@ -9193,6 +9492,7 @@ export {
9193
9492
  ContextMenuTrigger,
9194
9493
  ControlSizeProvider,
9195
9494
  CountBadge,
9495
+ CountrySelect,
9196
9496
  DEFAULT_SCORE_THRESHOLDS,
9197
9497
  DataTable,
9198
9498
  DatePicker,
@@ -9340,6 +9640,7 @@ export {
9340
9640
  Textarea,
9341
9641
  TextareaControl,
9342
9642
  TileGrid,
9643
+ TimeZoneSelect,
9343
9644
  TitleHero,
9344
9645
  TitlePage,
9345
9646
  Toaster,
@@ -9348,17 +9649,22 @@ export {
9348
9649
  ToggleGroupItem,
9349
9650
  Tooltip,
9350
9651
  TrailChip,
9652
+ TreeView,
9351
9653
  TrendLabel,
9352
9654
  UserStatusPill,
9353
9655
  WidgetFooter,
9354
9656
  WidgetHeader,
9355
9657
  WidgetTitle,
9356
9658
  cn,
9659
+ countryOptions,
9660
+ currentZoneName,
9357
9661
  getScoreTone,
9358
9662
  paginationRange,
9359
9663
  resolveChartColor,
9360
9664
  tabId,
9361
9665
  tabPanelId,
9666
+ timeZoneOffset,
9667
+ timeZoneOptions,
9362
9668
  useControlSize,
9363
9669
  useFieldContext,
9364
9670
  useFieldControl,