@agent-ui-kit/web-components 0.0.14 → 0.0.16

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.
Files changed (211) hide show
  1. package/dist/agent-ui.css +1 -1
  2. package/dist/api.colors.json +2 -2
  3. package/dist/api.colors.yaml +2 -2
  4. package/dist/api.components.json +3878 -636
  5. package/dist/api.tokens.json +35 -3
  6. package/dist/api.tokens.yaml +27 -3
  7. package/dist/chunks/{agent-C72JZNe6.js → agent-XMhz_6OA.js} +85 -76
  8. package/dist/chunks/{agent-C72JZNe6.js.map → agent-XMhz_6OA.js.map} +1 -1
  9. package/dist/chunks/{empty-state-5M3uR5CM.js → form-oekEhwja.js} +1409 -960
  10. package/dist/chunks/form-oekEhwja.js.map +1 -0
  11. package/dist/components/agent.js +6 -6
  12. package/dist/components/avatar/avatar.d.ts +0 -0
  13. package/dist/components/badge/badge.d.ts +0 -0
  14. package/dist/components/bar/bar.d.ts +0 -0
  15. package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
  16. package/dist/components/button-group/button-group.d.ts +0 -0
  17. package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
  18. package/dist/components/checkbox-group/index.d.ts +1 -0
  19. package/dist/components/code/code.d.ts +0 -0
  20. package/dist/components/color-area/color-area.d.ts +2 -1
  21. package/dist/components/color-picker/color-picker.d.ts +1 -0
  22. package/dist/components/color-picker/oklch-utils.d.ts +18 -0
  23. package/dist/components/color-slider/color-slider.d.ts +1 -1
  24. package/dist/components/color-swatch/color-swatch.d.ts +0 -0
  25. package/dist/components/content/content.d.ts +0 -0
  26. package/dist/components/description-list/description-list.d.ts +0 -0
  27. package/dist/components/divider/divider.d.ts +0 -0
  28. package/dist/components/editor.js +1 -1
  29. package/dist/components/fieldset/fieldset.d.ts +0 -0
  30. package/dist/components/footer/footer.d.ts +0 -0
  31. package/dist/components/form/form.d.ts +12 -0
  32. package/dist/components/form/index.d.ts +1 -0
  33. package/dist/components/graph.js +1 -1
  34. package/dist/components/grid/grid.d.ts +0 -0
  35. package/dist/components/header/header.d.ts +0 -0
  36. package/dist/components/heading/heading.d.ts +0 -0
  37. package/dist/components/index.d.ts +2 -0
  38. package/dist/components/input-group/input-group.d.ts +0 -0
  39. package/dist/components/inset/inset.d.ts +0 -0
  40. package/dist/components/kbd/kbd.d.ts +0 -0
  41. package/dist/components/noodles/noodle-controller.d.ts +1 -1
  42. package/dist/components/stack/stack.d.ts +0 -0
  43. package/dist/components/stat/stat.d.ts +4 -0
  44. package/dist/components/text/text.d.ts +0 -0
  45. package/dist/components/time-field/time-field.d.ts +1 -0
  46. package/dist/components/wrap/wrap.d.ts +0 -0
  47. package/dist/components.js +115 -126
  48. package/dist/components.js.map +1 -1
  49. package/dist/docs/blocks/agent-chat.yaml +33 -25
  50. package/dist/docs/blocks/announcement-card.yaml +14 -10
  51. package/dist/docs/blocks/bpm-process.yaml +216 -4
  52. package/dist/docs/blocks/chart-activity.yaml +12 -10
  53. package/dist/docs/blocks/chart-card.yaml +14 -11
  54. package/dist/docs/blocks/chart-donut.yaml +27 -23
  55. package/dist/docs/blocks/chart-grouped.yaml +14 -11
  56. package/dist/docs/blocks/chart-horizontal.yaml +13 -10
  57. package/dist/docs/blocks/chart-interactive.yaml +20 -17
  58. package/dist/docs/blocks/chart-labeled.yaml +14 -11
  59. package/dist/docs/blocks/checkout-form.yaml +26 -16
  60. package/dist/docs/blocks/clinical-trial.yaml +180 -4
  61. package/dist/docs/blocks/contributors.yaml +17 -11
  62. package/dist/docs/blocks/cyber-threat.yaml +158 -4
  63. package/dist/docs/blocks/dashboard-layout.yaml +25 -18
  64. package/dist/docs/blocks/data-eng-dag.yaml +222 -6
  65. package/dist/docs/blocks/date-picker.yaml +11 -10
  66. package/dist/docs/blocks/ddx-workflow.yaml +202 -6
  67. package/dist/docs/blocks/empty-state.yaml +8 -11
  68. package/dist/docs/blocks/env-variables.yaml +29 -20
  69. package/dist/docs/blocks/feature-upgrade.yaml +25 -18
  70. package/dist/docs/blocks/financial-risk.yaml +161 -4
  71. package/dist/docs/blocks/flow-editor.yaml +27 -18
  72. package/dist/docs/blocks/gen-ai-pipeline.yaml +232 -5
  73. package/dist/docs/blocks/issue-assign.yaml +25 -14
  74. package/dist/docs/blocks/keyboard-shortcuts.yaml +14 -9
  75. package/dist/docs/blocks/login-branded.yaml +62 -23
  76. package/dist/docs/blocks/login-email-only.yaml +14 -13
  77. package/dist/docs/blocks/login-form.yaml +17 -11
  78. package/dist/docs/blocks/login-simple.yaml +18 -12
  79. package/dist/docs/blocks/login-social.yaml +21 -14
  80. package/dist/docs/blocks/login-two-column.yaml +42 -22
  81. package/dist/docs/blocks/marketing-automation.yaml +209 -4
  82. package/dist/docs/blocks/member-list.yaml +23 -18
  83. package/dist/docs/blocks/ml-pipeline.yaml +163 -4
  84. package/dist/docs/blocks/nav-card.yaml +13 -11
  85. package/dist/docs/blocks/notification-list.yaml +18 -13
  86. package/dist/docs/blocks/oncology-pathway.yaml +227 -4
  87. package/dist/docs/blocks/pricing-card.yaml +20 -13
  88. package/dist/docs/blocks/processing-state.yaml +14 -11
  89. package/dist/docs/blocks/profile-card.yaml +22 -16
  90. package/dist/docs/blocks/saas-onboarding.yaml +222 -4
  91. package/dist/docs/blocks/settings-form.yaml +20 -11
  92. package/dist/docs/blocks/settings-panel.yaml +23 -22
  93. package/dist/docs/blocks/sidebar-nav.yaml +23 -15
  94. package/dist/docs/blocks/signup-form.yaml +17 -11
  95. package/dist/docs/blocks/stat-cards.yaml +12 -13
  96. package/dist/docs/blocks/status-card.yaml +20 -17
  97. package/dist/docs/blocks/suggested-labs.yaml +20 -13
  98. package/dist/docs/blocks/supply-chain.yaml +160 -4
  99. package/dist/docs/blocks/survey-card.yaml +21 -13
  100. package/dist/docs/blocks/tabbed-panel.yaml +21 -15
  101. package/dist/docs/blocks/team-empty.yaml +8 -9
  102. package/dist/docs/blocks/usage-billing.yaml +20 -16
  103. package/dist/docs/components/accordion-item.yaml +13 -21
  104. package/dist/docs/components/accordion.yaml +23 -29
  105. package/dist/docs/components/agent-activity.yaml +49 -41
  106. package/dist/docs/components/agent-feed.yaml +15 -22
  107. package/dist/docs/components/agent-input.yaml +238 -0
  108. package/dist/docs/components/agent-message.yaml +29 -48
  109. package/dist/docs/components/agent-panel.yaml +21 -24
  110. package/dist/docs/components/agent-prompt.yaml +29 -47
  111. package/dist/docs/components/agent-seeds.yaml +16 -24
  112. package/dist/docs/components/agent-text.yaml +14 -24
  113. package/dist/docs/components/agent-thread.yaml +15 -24
  114. package/dist/docs/components/alert.yaml +41 -39
  115. package/dist/docs/components/avatar-group.yaml +72 -45
  116. package/dist/docs/components/avatar.yaml +99 -0
  117. package/dist/docs/components/badge.yaml +110 -0
  118. package/dist/docs/components/bar.yaml +84 -0
  119. package/dist/docs/components/breadcrumb-item.yaml +8 -17
  120. package/dist/docs/components/breadcrumb.yaml +91 -29
  121. package/dist/docs/components/button-group.yaml +93 -0
  122. package/dist/docs/components/button.yaml +188 -261
  123. package/dist/docs/components/calendar-picker.yaml +16 -35
  124. package/dist/docs/components/calendar-range-picker.yaml +11 -29
  125. package/dist/docs/components/calendar.yaml +11 -29
  126. package/dist/docs/components/canvas.yaml +44 -61
  127. package/dist/docs/components/checkbox.yaml +37 -49
  128. package/dist/docs/components/chip.yaml +89 -55
  129. package/dist/docs/components/code-block.yaml +54 -53
  130. package/dist/docs/components/code.yaml +37 -0
  131. package/dist/docs/components/color-area.yaml +119 -0
  132. package/dist/docs/components/color-field.yaml +121 -0
  133. package/dist/docs/components/color-picker.yaml +87 -35
  134. package/dist/docs/components/color-slider.yaml +153 -0
  135. package/dist/docs/components/color-swatch.yaml +98 -0
  136. package/dist/docs/components/command.yaml +13 -18
  137. package/dist/docs/components/container.yaml +84 -73
  138. package/dist/docs/components/content.yaml +100 -0
  139. package/dist/docs/components/context-menu.yaml +11 -20
  140. package/dist/docs/components/date-field.yaml +81 -33
  141. package/dist/docs/components/description-list.yaml +81 -0
  142. package/dist/docs/components/disclosure-group.yaml +61 -42
  143. package/dist/docs/components/disclosure.yaml +60 -46
  144. package/dist/docs/components/divider.yaml +63 -0
  145. package/dist/docs/components/dropdown-menu.yaml +16 -25
  146. package/dist/docs/components/feed.yaml +15 -24
  147. package/dist/docs/components/field.yaml +50 -71
  148. package/dist/docs/components/fieldset.yaml +92 -0
  149. package/dist/docs/components/footer.yaml +147 -0
  150. package/dist/docs/components/grid.yaml +87 -0
  151. package/dist/docs/components/gripper.yaml +11 -23
  152. package/dist/docs/components/header.yaml +168 -0
  153. package/dist/docs/components/heading.yaml +58 -0
  154. package/dist/docs/components/hover-card.yaml +17 -25
  155. package/dist/docs/components/icon.yaml +32 -65
  156. package/dist/docs/components/index.yaml +11 -1
  157. package/dist/docs/components/input-group.yaml +102 -0
  158. package/dist/docs/components/input-otp.yaml +20 -19
  159. package/dist/docs/components/input.yaml +100 -139
  160. package/dist/docs/components/inset.yaml +59 -0
  161. package/dist/docs/components/kbd.yaml +57 -0
  162. package/dist/docs/components/link.yaml +36 -45
  163. package/dist/docs/components/meter.yaml +54 -42
  164. package/dist/docs/components/nav-item.yaml +54 -43
  165. package/dist/docs/components/noodles.yaml +72 -104
  166. package/dist/docs/components/option.yaml +12 -23
  167. package/dist/docs/components/pagination.yaml +21 -18
  168. package/dist/docs/components/pane.yaml +18 -32
  169. package/dist/docs/components/panes.yaml +19 -27
  170. package/dist/docs/components/progress-circle.yaml +64 -55
  171. package/dist/docs/components/progress.yaml +35 -51
  172. package/dist/docs/components/radio-group.yaml +99 -40
  173. package/dist/docs/components/radio.yaml +40 -41
  174. package/dist/docs/components/range.yaml +24 -27
  175. package/dist/docs/components/segmented-control.yaml +58 -17
  176. package/dist/docs/components/select.yaml +80 -100
  177. package/dist/docs/components/skeleton.yaml +39 -39
  178. package/dist/docs/components/sparkline.yaml +28 -45
  179. package/dist/docs/components/spinner.yaml +32 -33
  180. package/dist/docs/components/stack.yaml +126 -0
  181. package/dist/docs/components/stat.yaml +164 -0
  182. package/dist/docs/components/stepper.yaml +46 -53
  183. package/dist/docs/components/switch.yaml +36 -47
  184. package/dist/docs/components/tab-panel.yaml +27 -18
  185. package/dist/docs/components/tab.yaml +25 -22
  186. package/dist/docs/components/table-header.yaml +22 -12
  187. package/dist/docs/components/tabs.yaml +103 -20
  188. package/dist/docs/components/tag-group.yaml +63 -47
  189. package/dist/docs/components/text.yaml +67 -0
  190. package/dist/docs/components/textarea.yaml +43 -60
  191. package/dist/docs/components/time-field.yaml +108 -34
  192. package/dist/docs/components/toast.yaml +13 -30
  193. package/dist/docs/components/tooltip.yaml +56 -49
  194. package/dist/docs/components/tree-item.yaml +9 -10
  195. package/dist/docs/components/tree.yaml +127 -10
  196. package/dist/docs/components/wrap.yaml +60 -0
  197. package/dist/docs/traits/toggle-theme.yaml +34 -0
  198. package/dist/element.js +1 -1
  199. package/dist/icons.js +79 -59
  200. package/dist/icons.js.map +1 -1
  201. package/dist/reactivity.js +2 -2
  202. package/dist/register.d.ts +0 -1
  203. package/dist/register.js +368 -352
  204. package/dist/register.js.map +1 -1
  205. package/dist/store.js +1 -1
  206. package/dist/traits/toggle-theme/toggle-theme.d.ts +0 -0
  207. package/dist/traits/toggle-theme/toggle-theme.trait.d.ts +2 -0
  208. package/dist/traits.js +528 -485
  209. package/dist/traits.js.map +1 -1
  210. package/package.json +1 -1
  211. package/dist/chunks/empty-state-5M3uR5CM.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { A as d, s as V, u as P } from "./agent-C72JZNe6.js";
2
- import { o as K, g as _ } from "./registry-BNb5ABBs.js";
3
- class vt extends d {
1
+ import { A as d, l as J, u as N } from "./agent-XMhz_6OA.js";
2
+ import { o as Z, g as H } from "./registry-BNb5ABBs.js";
3
+ class Mt extends d {
4
4
  static attributes = {
5
5
  disabled: { type: "boolean", default: !1 },
6
6
  loading: { type: "boolean", default: !1 },
@@ -65,8 +65,8 @@ class vt extends d {
65
65
  (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.click());
66
66
  };
67
67
  }
68
- const Y = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><circle cx="116" cy="116" r="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', G = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="56" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>';
69
- class gt extends d {
68
+ const Q = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><circle cx="116" cy="116" r="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', tt = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="56" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>';
69
+ class Dt extends d {
70
70
  static formAssociated = !0;
71
71
  static attributes = {
72
72
  disabled: { type: "boolean", default: !1 },
@@ -91,8 +91,8 @@ class gt extends d {
91
91
  #n = null;
92
92
  #a = !1;
93
93
  #r = null;
94
- #h = null;
95
94
  #o = null;
95
+ #h = null;
96
96
  constructor() {
97
97
  super(), this.#e = this.attachInternals(), this.#e.role = "textbox";
98
98
  }
@@ -114,7 +114,7 @@ class gt extends d {
114
114
  }), this.addEffect(() => {
115
115
  const t = this.value;
116
116
  !this.#a && this.#t && this.#t.textContent !== t && (this.#t.textContent = t, this.#l());
117
- }), this.#t.addEventListener("input", this.#p), this.#t.addEventListener("keydown", this.#f), this.#t.addEventListener("focus", this.#v), this.#t.addEventListener("blur", this.#b), this.#t.addEventListener("paste", this.#c), this.addEventListener("click", this.#g), this.#i?.addEventListener("click", this.#m), this.autofocus && requestAnimationFrame(() => this.#t?.focus()), this.type === "number") {
117
+ }), this.#t.addEventListener("input", this.#c), this.#t.addEventListener("keydown", this.#f), this.#t.addEventListener("focus", this.#m), this.#t.addEventListener("blur", this.#b), this.#t.addEventListener("paste", this.#p), this.addEventListener("click", this.#A), this.#i?.addEventListener("click", this.#v), this.autofocus && requestAnimationFrame(() => this.#t?.focus()), this.type === "number") {
118
118
  if (this.querySelector('[data-input-stepper="down"]') ? this.#n = this.querySelector('[data-input-stepper="down"]') : (this.#n = document.createElement("span"), this.#n.setAttribute("data-input-stepper", "down"), this.#n.setAttribute("role", "button"), this.#n.setAttribute("tabindex", "-1"), this.#n.setAttribute("aria-label", "Decrease"), this.insertBefore(this.#n, this.#t)), this.querySelector('[data-input-stepper="up"]'))
119
119
  this.#s = this.querySelector('[data-input-stepper="up"]');
120
120
  else {
@@ -122,20 +122,20 @@ class gt extends d {
122
122
  const t = this.#t?.nextSibling ?? null;
123
123
  t ? this.insertBefore(this.#s, t) : this.appendChild(this.#s);
124
124
  }
125
- this.#n?.addEventListener("click", this.#y), this.#s?.addEventListener("click", this.#x);
125
+ this.#n?.addEventListener("click", this.#g), this.#s?.addEventListener("click", this.#E);
126
126
  }
127
127
  if (this.type === "search") {
128
- if (this.querySelector('[slot="leading"]') || (this.#r = document.createElement("span"), this.#r.setAttribute("slot", "leading"), this.#r.setAttribute("data-input-search-icon", ""), this.#r.innerHTML = Y, this.insertBefore(this.#r, this.firstChild)), !this["no-clear"] && !this.querySelector("[data-input-clear]")) {
129
- this.#h = document.createElement("span"), this.#h.setAttribute("data-input-clear", ""), this.#h.setAttribute("role", "button"), this.#h.setAttribute("tabindex", "-1"), this.#h.setAttribute("aria-label", "Clear"), this.#h.innerHTML = G;
128
+ if (this.querySelector('[slot="leading"]') || (this.#r = document.createElement("span"), this.#r.setAttribute("slot", "leading"), this.#r.setAttribute("data-input-search-icon", ""), this.#r.innerHTML = Q, this.insertBefore(this.#r, this.firstChild)), !this["no-clear"] && !this.querySelector("[data-input-clear]")) {
129
+ this.#o = document.createElement("span"), this.#o.setAttribute("data-input-clear", ""), this.#o.setAttribute("role", "button"), this.#o.setAttribute("tabindex", "-1"), this.#o.setAttribute("aria-label", "Clear"), this.#o.innerHTML = tt;
130
130
  const t = this.querySelector('[slot="trailing"]');
131
- t ? this.insertBefore(this.#h, t) : this.appendChild(this.#h);
131
+ t ? this.insertBefore(this.#o, t) : this.appendChild(this.#o);
132
132
  } else
133
- this.#h = this.querySelector("[data-input-clear]");
134
- this.#h?.addEventListener("click", this.#k);
133
+ this.#o = this.querySelector("[data-input-clear]");
134
+ this.#o?.addEventListener("click", this.#C);
135
135
  }
136
136
  }
137
137
  dispose() {
138
- this.#t?.removeEventListener("input", this.#p), this.#t?.removeEventListener("keydown", this.#f), this.#t?.removeEventListener("focus", this.#v), this.#t?.removeEventListener("blur", this.#b), this.#t?.removeEventListener("paste", this.#c), this.removeEventListener("click", this.#g), this.#i?.removeEventListener("click", this.#m), this.#n?.removeEventListener("click", this.#y), this.#s?.removeEventListener("click", this.#x), this.#h?.removeEventListener("click", this.#k), this.#o && clearTimeout(this.#o);
138
+ this.#t?.removeEventListener("input", this.#c), this.#t?.removeEventListener("keydown", this.#f), this.#t?.removeEventListener("focus", this.#m), this.#t?.removeEventListener("blur", this.#b), this.#t?.removeEventListener("paste", this.#p), this.removeEventListener("click", this.#A), this.#i?.removeEventListener("click", this.#v), this.#n?.removeEventListener("click", this.#g), this.#s?.removeEventListener("click", this.#E), this.#o?.removeEventListener("click", this.#C), this.#h && clearTimeout(this.#h);
139
139
  }
140
140
  // ── Public API ──────────────────────────────────────────
141
141
  focus(t) {
@@ -199,8 +199,8 @@ class gt extends d {
199
199
  t && t.setPosition(this.#t, 0);
200
200
  }
201
201
  // ── Event handlers ────────────────────────────────────
202
- #p = () => {
203
- this.#a = !0, this.value = this.#t?.textContent ?? "", this.#e.setFormValue(this.value || null), this.#l(), this.#a = !1, this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 })), this.type === "search" && this.#C();
202
+ #c = () => {
203
+ this.#a = !0, this.value = this.#t?.textContent ?? "", this.#e.setFormValue(this.value || null), this.#l(), this.#a = !1, this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 })), this.type === "search" && this.#k();
204
204
  };
205
205
  #f = (t) => {
206
206
  if (this.type === "search" && t.key === "Escape") {
@@ -213,11 +213,11 @@ class gt extends d {
213
213
  }
214
214
  if (this.type === "number") {
215
215
  if (t.key === "ArrowUp") {
216
- t.preventDefault(), this.#A(1);
216
+ t.preventDefault(), this.#y(1);
217
217
  return;
218
218
  }
219
219
  if (t.key === "ArrowDown") {
220
- t.preventDefault(), this.#A(-1);
220
+ t.preventDefault(), this.#y(-1);
221
221
  return;
222
222
  }
223
223
  }
@@ -226,7 +226,7 @@ class gt extends d {
226
226
  (this.#t?.textContent?.length ?? 0) >= e && t.key.length === 1 && !t.ctrlKey && !t.metaKey && (window.getSelection()?.toString() || t.preventDefault());
227
227
  }
228
228
  };
229
- #v = () => {
229
+ #m = () => {
230
230
  this.#u();
231
231
  };
232
232
  #b = () => {
@@ -242,7 +242,7 @@ class gt extends d {
242
242
  }
243
243
  this.dispatchEvent(new Event("change", { bubbles: !0 }));
244
244
  };
245
- #c = (t) => {
245
+ #p = (t) => {
246
246
  t.preventDefault();
247
247
  let e = t.clipboardData?.getData("text/plain") ?? "";
248
248
  if (e = e.replace(/[\r\n]+/g, " "), this.maxlength) {
@@ -251,44 +251,44 @@ class gt extends d {
251
251
  }
252
252
  document.execCommand("insertText", !1, e);
253
253
  };
254
- #g = (t) => {
254
+ #A = (t) => {
255
255
  const e = t.target;
256
256
  e === this || e.getAttribute("slot") === "leading" ? (this.#t?.focus(), this.#u()) : e === this.#t && this.#u();
257
257
  };
258
- #m = (t) => {
258
+ #v = (t) => {
259
259
  t.stopPropagation(), this.#t && (this.#t.textContent = ""), this.value = "", this.#e.setFormValue(null), this.#l(), this.#t?.focus(), this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
260
260
  };
261
261
  // ── Number stepper ──────────────────────────────────────
262
- #A(t) {
262
+ #y(t) {
263
263
  const e = parseFloat(this.value) || 0, i = parseFloat(this.getAttribute("step") || "1"), s = this.hasAttribute("min") ? parseFloat(this.getAttribute("min")) : -1 / 0, n = this.hasAttribute("max") ? parseFloat(this.getAttribute("max")) : 1 / 0, a = Math.min(n, Math.max(s, e + t * i)), r = String(a);
264
264
  this.value = r, this.#t && (this.#t.textContent = r), this.#e.setFormValue(r), this.#l(), this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
265
265
  }
266
- #x = (t) => {
267
- t.stopPropagation(), this.#A(1);
266
+ #E = (t) => {
267
+ t.stopPropagation(), this.#y(1);
268
268
  };
269
- #y = (t) => {
270
- t.stopPropagation(), this.#A(-1);
269
+ #g = (t) => {
270
+ t.stopPropagation(), this.#y(-1);
271
271
  };
272
272
  // ── Search helpers ──────────────────────────────────────────
273
- #C() {
274
- this.#o && clearTimeout(this.#o);
273
+ #k() {
274
+ this.#h && clearTimeout(this.#h);
275
275
  const t = parseInt(this.debounce, 10) || 200;
276
- this.#o = setTimeout(() => {
276
+ this.#h = setTimeout(() => {
277
277
  this.#w();
278
278
  }, t);
279
279
  }
280
280
  #w() {
281
- this.#o && (clearTimeout(this.#o), this.#o = null), this.dispatchEvent(new CustomEvent("search", {
281
+ this.#h && (clearTimeout(this.#h), this.#h = null), this.dispatchEvent(new CustomEvent("search", {
282
282
  bubbles: !0,
283
283
  composed: !0,
284
284
  detail: { value: this.value ?? "" }
285
285
  }));
286
286
  }
287
- #k = (t) => {
287
+ #C = (t) => {
288
288
  t.stopPropagation(), this.#t && (this.#t.textContent = ""), this.value = "", this.#e.setFormValue(null), this.#l(), this.#t?.focus(), this.#w();
289
289
  };
290
290
  }
291
- class yt extends d {
291
+ class It extends d {
292
292
  static formAssociated = !0;
293
293
  static attributes = {
294
294
  length: { type: "string", default: "6" },
@@ -314,11 +314,11 @@ class yt extends d {
314
314
  this.#e.setFormValue(this.value || null);
315
315
  }), this.value && this.#i(this.value);
316
316
  for (const e of this.#t)
317
- e.addEventListener("input", this.#a), e.addEventListener("keydown", this.#r), e.addEventListener("paste", this.#h), e.addEventListener("focus", this.#o);
317
+ e.addEventListener("input", this.#a), e.addEventListener("keydown", this.#r), e.addEventListener("paste", this.#o), e.addEventListener("focus", this.#h);
318
318
  }
319
319
  dispose() {
320
320
  for (const t of this.#t)
321
- t.removeEventListener("input", this.#a), t.removeEventListener("keydown", this.#r), t.removeEventListener("paste", this.#h), t.removeEventListener("focus", this.#o);
321
+ t.removeEventListener("input", this.#a), t.removeEventListener("keydown", this.#r), t.removeEventListener("paste", this.#o), t.removeEventListener("focus", this.#h);
322
322
  this.#t = [];
323
323
  }
324
324
  formDisabledCallback(t) {
@@ -353,21 +353,21 @@ class yt extends d {
353
353
  const e = t.target, i = this.#n(e);
354
354
  t.key === "Backspace" ? !e.textContent && i > 0 && (t.preventDefault(), this.#t[i - 1].textContent = "", this.#t[i - 1].focus(), this.#s()) : t.key === "ArrowLeft" && i > 0 ? (t.preventDefault(), this.#t[i - 1].focus()) : t.key === "ArrowRight" && i < this.#t.length - 1 ? (t.preventDefault(), this.#t[i + 1].focus()) : t.key === "Enter" && t.preventDefault();
355
355
  };
356
- #h = (t) => {
356
+ #o = (t) => {
357
357
  t.preventDefault();
358
358
  const i = (t.clipboardData?.getData("text") ?? "").replace(/\D/g, "").slice(0, this.#t.length);
359
359
  this.#i(i), this.#s();
360
360
  const s = Math.min(i.length, this.#t.length - 1);
361
361
  this.#t[s]?.focus();
362
362
  };
363
- #o = (t) => {
363
+ #h = (t) => {
364
364
  const e = t.target, i = document.createRange();
365
365
  i.selectNodeContents(e);
366
366
  const s = window.getSelection();
367
367
  s?.removeAllRanges(), s?.addRange(i);
368
368
  };
369
369
  }
370
- class At extends d {
370
+ class Tt extends d {
371
371
  static formAssociated = !0;
372
372
  static attributes = {
373
373
  disabled: { type: "boolean", default: !1 },
@@ -412,7 +412,7 @@ class At extends d {
412
412
  (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#t());
413
413
  };
414
414
  }
415
- class Et extends d {
415
+ class Pt extends d {
416
416
  static formAssociated = !0;
417
417
  static attributes = {
418
418
  disabled: { type: "boolean", default: !1 },
@@ -455,7 +455,7 @@ class Et extends d {
455
455
  (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#t());
456
456
  };
457
457
  }
458
- class xt extends d {
458
+ class qt extends d {
459
459
  static formAssociated = !0;
460
460
  static attributes = {
461
461
  disabled: { type: "boolean", default: !1 },
@@ -499,7 +499,7 @@ class xt extends d {
499
499
  (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#t());
500
500
  };
501
501
  }
502
- class wt extends d {
502
+ class Ot extends d {
503
503
  static attributes = {
504
504
  disabled: { type: "boolean", default: !1 },
505
505
  name: { type: "string", default: "" },
@@ -551,7 +551,7 @@ class wt extends d {
551
551
  s >= 0 && (e[s].click(), e[s].focus());
552
552
  };
553
553
  }
554
- class kt extends d {
554
+ class Ft extends d {
555
555
  static formAssociated = !0;
556
556
  static attributes = {
557
557
  disabled: { type: "boolean", default: !1 },
@@ -581,10 +581,10 @@ class kt extends d {
581
581
  }), this.addEffect(() => {
582
582
  const t = this.value;
583
583
  !this.#i && this.#t && this.#t.textContent !== t && (this.#t.textContent = t, this.#n(), this.autogrow && this.#a());
584
- }), this.#t.addEventListener("input", this.#r), this.#t.addEventListener("blur", this.#h), this.addEventListener("click", this.#o), this.autofocus && requestAnimationFrame(() => this.#t?.focus());
584
+ }), this.#t.addEventListener("input", this.#r), this.#t.addEventListener("blur", this.#o), this.addEventListener("click", this.#h), this.autofocus && requestAnimationFrame(() => this.#t?.focus());
585
585
  }
586
586
  dispose() {
587
- this.#t?.removeEventListener("input", this.#r), this.#t?.removeEventListener("blur", this.#h), this.removeEventListener("click", this.#o), this.#s !== null && cancelAnimationFrame(this.#s);
587
+ this.#t?.removeEventListener("input", this.#r), this.#t?.removeEventListener("blur", this.#o), this.removeEventListener("click", this.#h), this.#s !== null && cancelAnimationFrame(this.#s);
588
588
  }
589
589
  focus(t) {
590
590
  this.#t?.focus(t);
@@ -614,14 +614,14 @@ class kt extends d {
614
614
  #r = () => {
615
615
  this.#i = !0, this.value = this.#t?.textContent ?? "", this.#e.setFormValue(this.value || null), this.#n(), this.autogrow && this.#a(), this.#i = !1, this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 }));
616
616
  };
617
- #h = () => {
617
+ #o = () => {
618
618
  this.dispatchEvent(new Event("change", { bubbles: !0 }));
619
619
  };
620
- #o = (t) => {
620
+ #h = (t) => {
621
621
  t.target === this && this.#t?.focus();
622
622
  };
623
623
  }
624
- class Ct extends d {
624
+ class Rt extends d {
625
625
  static attributes = {
626
626
  bordered: { type: "boolean", default: !1 },
627
627
  elevation: { type: "string", default: "" },
@@ -641,11 +641,11 @@ class Ct extends d {
641
641
  (t.key === "Enter" || t.key === " ") && this.href && (t.preventDefault(), window.location.href = this.href);
642
642
  };
643
643
  }
644
- function j(h) {
645
- const t = getComputedStyle(h).getPropertyValue("--aui-duration").trim();
644
+ function et(o) {
645
+ const t = getComputedStyle(o).getPropertyValue("--aui-duration").trim();
646
646
  return parseFloat(t) || 200;
647
647
  }
648
- class Lt extends d {
648
+ class Nt extends d {
649
649
  static attributes = {
650
650
  open: { type: "boolean", default: !1 },
651
651
  size: { type: "enum", values: ["sm", "lg", "xl", "full"], default: "" }
@@ -685,7 +685,7 @@ class Lt extends d {
685
685
  hide() {
686
686
  !this.#e || !this.#e.open || this.#i || (this.#i = !0, this.#e.removeAttribute("data-dialog-open"), this.#e.setAttribute("data-dialog-closing", ""), setTimeout(() => {
687
687
  this.#i = !1, this.#e?.removeAttribute("data-dialog-closing"), this.#e?.close();
688
- }, j(this)));
688
+ }, et(this)));
689
689
  }
690
690
  // ── Internal ────────────────────────────────────────────
691
691
  #n = (t) => {
@@ -698,11 +698,11 @@ class Lt extends d {
698
698
  t.target === this.#e && this.hide();
699
699
  };
700
700
  }
701
- function W(h) {
702
- const t = getComputedStyle(h).getPropertyValue("--aui-duration").trim();
701
+ function it(o) {
702
+ const t = getComputedStyle(o).getPropertyValue("--aui-duration").trim();
703
703
  return parseFloat(t) || 200;
704
704
  }
705
- class St extends d {
705
+ class Ht extends d {
706
706
  static attributes = {
707
707
  open: { type: "boolean", default: !1 },
708
708
  side: { type: "enum", values: ["left", "right", "top", "bottom"], default: "right" },
@@ -742,7 +742,7 @@ class St extends d {
742
742
  hide() {
743
743
  !this.#e || !this.#e.open || this.#i || (this.#i = !0, this.#e.removeAttribute("data-drawer-open"), this.#e.setAttribute("data-drawer-closing", ""), setTimeout(() => {
744
744
  this.#i = !1, this.#e?.removeAttribute("data-drawer-closing"), this.#e?.close(), this["scroll-lock"] && !document.querySelector("dialog[open]") && (document.documentElement.style.overflow = "");
745
- }, W(this)));
745
+ }, it(this)));
746
746
  }
747
747
  #n = (t) => {
748
748
  t.preventDefault(), this.hide();
@@ -754,8 +754,8 @@ class St extends d {
754
754
  t.target === this.#e && this.hide();
755
755
  };
756
756
  }
757
- const q = /* @__PURE__ */ new Map();
758
- class Dt extends d {
757
+ const z = /* @__PURE__ */ new Map();
758
+ class zt extends d {
759
759
  static attributes = {
760
760
  name: { type: "string", default: "" },
761
761
  src: { type: "string", default: "" },
@@ -772,24 +772,27 @@ class Dt extends d {
772
772
  }), this.addEffect(() => {
773
773
  if (this.#t) return;
774
774
  const t = this.name;
775
- t ? this.#i(t) : this.src && this.#s(this.src);
776
- }), this.#e = K(() => {
775
+ t ? this.#s(t) : this.src && this.#n(this.src);
776
+ }), this.#e = Z(() => {
777
777
  if (this.#t) return;
778
778
  const t = this.name;
779
- t && !this.querySelector("svg") && this.#i(t);
779
+ t && !this.querySelector("svg") && this.#s(t);
780
780
  });
781
781
  }
782
782
  dispose() {
783
- this.#e?.(), this.#e = null;
784
- }
785
- #i(t) {
786
- const e = _(t);
787
- e && this.#n(e);
783
+ this.#e?.(), this.#e = null, this.#i && (clearTimeout(this.#i), this.#i = null);
788
784
  }
789
- async #s(t) {
790
- const e = q.get(t);
785
+ #i = null;
786
+ #s(t) {
787
+ const e = H(t);
788
+ e ? (this.#a(e), this.#i && (clearTimeout(this.#i), this.#i = null)) : this.src || (this.#i && clearTimeout(this.#i), this.#i = setTimeout(() => {
789
+ !H(t) && !this.querySelector("svg") && console.warn(`[aui-icon] Icon "${t}" not found in registry. Register it with registerIcons({ ${t}: svgString }).`), this.#i = null;
790
+ }, 2e3));
791
+ }
792
+ async #n(t) {
793
+ const e = z.get(t);
791
794
  if (e) {
792
- this.#n(e);
795
+ this.#a(e);
793
796
  return;
794
797
  }
795
798
  try {
@@ -797,11 +800,11 @@ class Dt extends d {
797
800
  if (!i.ok) return;
798
801
  const s = await i.text();
799
802
  if (!s.includes("<svg")) return;
800
- q.set(t, s), this.src === t && this.#n(s);
803
+ z.set(t, s), this.src === t && this.#a(s);
801
804
  } catch {
802
805
  }
803
806
  }
804
- #n(t) {
807
+ #a(t) {
805
808
  const e = this.querySelector("svg");
806
809
  e && e.remove();
807
810
  const i = document.createElement("template");
@@ -810,7 +813,7 @@ class Dt extends d {
810
813
  s && this.prepend(s);
811
814
  }
812
815
  }
813
- class It extends d {
816
+ class $t extends d {
814
817
  static attributes = {
815
818
  content: { type: "string", default: "" },
816
819
  position: { type: "enum", values: ["top", "bottom", "left", "right"], default: "top" }
@@ -844,7 +847,7 @@ class It extends d {
844
847
  t.key === "Escape" && this.#n();
845
848
  };
846
849
  }
847
- class Mt extends d {
850
+ class Ut extends d {
848
851
  static formAssociated = !0;
849
852
  static attributes = {
850
853
  disabled: { type: "boolean", default: !1 },
@@ -888,7 +891,7 @@ class Mt extends d {
888
891
  this.removeAttribute("data-range-pressed"), this.removeEventListener("pointermove", this.#s), this.removeEventListener("pointerup", this.#n), this.dispatchEvent(new Event("change", { bubbles: !0 }));
889
892
  };
890
893
  #a(t) {
891
- const e = this.getBoundingClientRect(), i = Math.max(0, Math.min(1, (t.clientX - e.left) / e.width)), s = parseFloat(this.min) || 0, n = parseFloat(this.max) || 100, a = parseFloat(this.step) || 1, r = s + i * (n - s), o = Math.round(r / a) * a, l = Math.max(s, Math.min(n, o));
894
+ const e = this.getBoundingClientRect(), i = Math.max(0, Math.min(1, (t.clientX - e.left) / e.width)), s = parseFloat(this.min) || 0, n = parseFloat(this.max) || 100, a = parseFloat(this.step) || 1, r = s + i * (n - s), h = Math.round(r / a) * a, l = Math.max(s, Math.min(n, h));
892
895
  this.value = String(l), this.dispatchEvent(new Event("input", { bubbles: !0 }));
893
896
  }
894
897
  // ── Keyboard interaction ──────────────────────────────
@@ -923,7 +926,7 @@ class Mt extends d {
923
926
  t.preventDefault(), this.value = String(r), this.dispatchEvent(new Event("input", { bubbles: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
924
927
  };
925
928
  }
926
- class Tt extends d {
929
+ class Bt extends d {
927
930
  static attributes = {
928
931
  orientation: { type: "enum", values: ["horizontal", "vertical"], default: "horizontal" },
929
932
  disabled: { type: "boolean", default: !1 }
@@ -934,10 +937,10 @@ class Tt extends d {
934
937
  activate() {
935
938
  this.setAttribute("role", "separator"), this.addEffect(() => {
936
939
  this.setAttribute("aria-orientation", this.orientation || "horizontal"), this.setAttribute("aria-disabled", String(this.disabled));
937
- }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("pointerdown", this.#s), this.addEventListener("keydown", this.#h);
940
+ }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("pointerdown", this.#s), this.addEventListener("keydown", this.#o);
938
941
  }
939
942
  dispose() {
940
- this.removeEventListener("pointerdown", this.#s), this.removeEventListener("keydown", this.#h), this.#r();
943
+ this.removeEventListener("pointerdown", this.#s), this.removeEventListener("keydown", this.#o), this.#r();
941
944
  }
942
945
  #s = (t) => {
943
946
  this.disabled || (t.preventDefault(), this.#e = t.clientX, this.#t = t.clientY, this.#i = !0, this.setPointerCapture(t.pointerId), this.setAttribute("data-gripper-dragging", ""), this.addEventListener("pointermove", this.#n), this.addEventListener("pointerup", this.#a), this.addEventListener("pointercancel", this.#a), this.dispatchEvent(new CustomEvent("aui:resize-start", { bubbles: !0 })));
@@ -958,7 +961,7 @@ class Tt extends d {
958
961
  #r() {
959
962
  this.#i = !1, this.removeAttribute("data-gripper-dragging"), this.removeEventListener("pointermove", this.#n), this.removeEventListener("pointerup", this.#a), this.removeEventListener("pointercancel", this.#a);
960
963
  }
961
- #h = (t) => {
964
+ #o = (t) => {
962
965
  if (this.disabled) return;
963
966
  const e = this.orientation !== "vertical", i = t.shiftKey ? 10 : 1;
964
967
  let s = 0;
@@ -975,7 +978,7 @@ class Tt extends d {
975
978
  }));
976
979
  };
977
980
  }
978
- class Pt extends d {
981
+ class Vt extends d {
979
982
  static attributes = {
980
983
  value: { type: "string", default: "" },
981
984
  disabled: { type: "boolean", default: !1 },
@@ -992,7 +995,7 @@ class Pt extends d {
992
995
  });
993
996
  }
994
997
  }
995
- class qt extends d {
998
+ class Kt extends d {
996
999
  static attributes = {
997
1000
  label: { type: "string", default: "" },
998
1001
  disabled: { type: "boolean", default: !1 },
@@ -1007,17 +1010,17 @@ class qt extends d {
1007
1010
  });
1008
1011
  }
1009
1012
  }
1010
- const X = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>', J = '<svg viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em"><circle cx="128" cy="128" r="16"/><circle cx="64" cy="128" r="16"/><circle cx="192" cy="128" r="16"/></svg>', O = { 0: 0, low: 0, 1: 1, normal: 1, 2: 2, high: 2, pin: 999 }, Z = ":is(aui-option, aui-button, button, [tabindex]):not([disabled]):not([data-overflow-trigger])", Q = ":is(aui-option, aui-button, button, [tabindex]):not([disabled])";
1011
- function H(h) {
1012
- return h === "AUI-OPTION";
1013
+ const st = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>', nt = '<svg viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em"><circle cx="128" cy="128" r="16"/><circle cx="64" cy="128" r="16"/><circle cx="192" cy="128" r="16"/></svg>', $ = { 0: 0, low: 0, 1: 1, normal: 1, 2: 2, high: 2, pin: 999 }, at = ":is(aui-option, aui-button, button, [tabindex]):not([disabled]):not([data-overflow-trigger])", rt = ":is(aui-option, aui-button, button, [tabindex]):not([disabled])";
1014
+ function _(o) {
1015
+ return o === "AUI-OPTION";
1013
1016
  }
1014
- function tt(h) {
1015
- return h === "AUI-OPTGROUP";
1017
+ function ot(o) {
1018
+ return o === "AUI-OPTGROUP";
1016
1019
  }
1017
- function F(h) {
1018
- return H(h.tagName) || tt(h.tagName);
1020
+ function U(o) {
1021
+ return _(o.tagName) || ot(o.tagName);
1019
1022
  }
1020
- class Ot extends d {
1023
+ class _t extends d {
1021
1024
  static formAssociated = !0;
1022
1025
  static attributes = {
1023
1026
  mode: { type: "enum", values: ["bar", "list", "combobox"], default: "" },
@@ -1044,21 +1047,21 @@ class Ot extends d {
1044
1047
  #a = null;
1045
1048
  #r = null;
1046
1049
  // ── Bar mode state ───────────────────────────────────────
1047
- #h = null;
1048
1050
  #o = null;
1051
+ #h = null;
1049
1052
  #l = null;
1050
1053
  #d = null;
1051
1054
  #u = null;
1052
- #p = null;
1055
+ #c = null;
1053
1056
  // ── List mode state ──────────────────────────────────────
1054
1057
  #f = -1;
1055
- #v = "";
1058
+ #m = "";
1056
1059
  #b = null;
1057
1060
  // ── Combobox mode state ──────────────────────────────────
1058
- #c = null;
1059
- #g = null;
1060
- #m = null;
1061
- #A = [];
1061
+ #p = null;
1062
+ #A = null;
1063
+ #v = null;
1064
+ #y = [];
1062
1065
  constructor() {
1063
1066
  super(), this.#e = this.attachInternals();
1064
1067
  }
@@ -1068,16 +1071,16 @@ class Ot extends d {
1068
1071
  activate() {
1069
1072
  switch (this.mode) {
1070
1073
  case "bar":
1071
- this.#N();
1074
+ this.#H();
1072
1075
  break;
1073
1076
  case "list":
1074
- this.#ot();
1077
+ this.#ht();
1075
1078
  break;
1076
1079
  case "combobox":
1077
1080
  this.#pt();
1078
1081
  break;
1079
1082
  default:
1080
- this.#C();
1083
+ this.#k();
1081
1084
  break;
1082
1085
  }
1083
1086
  }
@@ -1093,7 +1096,7 @@ class Ot extends d {
1093
1096
  this.#ft();
1094
1097
  break;
1095
1098
  default:
1096
- this.#k();
1099
+ this.#C();
1097
1100
  break;
1098
1101
  }
1099
1102
  }
@@ -1101,14 +1104,14 @@ class Ot extends d {
1101
1104
  this.disabled = t;
1102
1105
  }
1103
1106
  formResetCallback() {
1104
- this.value = "", this.#c && (this.#c.textContent = "");
1107
+ this.value = "", this.#p && (this.#p.textContent = "");
1105
1108
  }
1106
1109
  // ════════════════════════════════════════════════════════════
1107
1110
  // Public API
1108
1111
  // ════════════════════════════════════════════════════════════
1109
1112
  /** Get all option elements (including inside groups). */
1110
1113
  get options() {
1111
- return this.mode === "" || this.mode === void 0 ? Array.from(this.#r?.querySelectorAll("aui-option") ?? []) : this.mode === "combobox" ? Array.from(this.#m?.querySelectorAll("aui-option") ?? []) : Array.from(this.querySelectorAll("aui-option"));
1114
+ return this.mode === "" || this.mode === void 0 ? Array.from(this.#r?.querySelectorAll("aui-option") ?? []) : this.mode === "combobox" ? Array.from(this.#v?.querySelectorAll("aui-option") ?? []) : Array.from(this.querySelectorAll("aui-option"));
1112
1115
  }
1113
1116
  /** Get enabled options. */
1114
1117
  get enabledOptions() {
@@ -1116,7 +1119,7 @@ class Ot extends d {
1116
1119
  }
1117
1120
  /** Get the currently active (highlighted) option. */
1118
1121
  get activeOption() {
1119
- return this.mode === "list" ? this.enabledOptions[this.#f] ?? null : (this.#r ?? this.#m)?.activeOption ?? null;
1122
+ return this.mode === "list" ? this.enabledOptions[this.#f] ?? null : (this.#r ?? this.#v)?.activeOption ?? null;
1120
1123
  }
1121
1124
  /** Internal listbox element (for dropdown mode). */
1122
1125
  get listboxElement() {
@@ -1128,23 +1131,23 @@ class Ot extends d {
1128
1131
  const e = this.options.find(
1129
1132
  (i) => (i.getAttribute("value") ?? i.textContent?.trim()) === t
1130
1133
  );
1131
- e && !e.hasAttribute("disabled") && this.#H(e);
1134
+ e && !e.hasAttribute("disabled") && this.#z(e);
1132
1135
  } else
1133
- (this.#r ?? this.#m)?.selectValue?.(t);
1136
+ (this.#r ?? this.#v)?.selectValue?.(t);
1134
1137
  }
1135
1138
  /** Highlight a specific option by index (for external control). */
1136
1139
  highlightIndex(t) {
1137
- this.mode === "list" ? this.#S(t) : (this.#r ?? this.#m)?.highlightIndex?.(t);
1140
+ this.mode === "list" ? this.#S(t) : (this.#r ?? this.#v)?.highlightIndex?.(t);
1138
1141
  }
1139
1142
  /** Reset the active highlight. */
1140
1143
  clearHighlight() {
1141
- this.mode === "list" ? this.#G() : (this.#r ?? this.#m)?.clearHighlight?.();
1144
+ this.mode === "list" ? this.#Y() : (this.#r ?? this.#v)?.clearHighlight?.();
1142
1145
  }
1143
1146
  // ════════════════════════════════════════════════════════════
1144
1147
  // Shared popover helpers (dropdown + combobox)
1145
1148
  // ════════════════════════════════════════════════════════════
1146
- #x() {
1147
- const t = this.#a ?? this.#g;
1149
+ #E() {
1150
+ const t = this.#a ?? this.#A;
1148
1151
  if (!(!t || this.disabled)) {
1149
1152
  try {
1150
1153
  t.showPopover();
@@ -1162,27 +1165,27 @@ class Ot extends d {
1162
1165
  }
1163
1166
  }
1164
1167
  }
1165
- #y() {
1166
- const t = this.#a ?? this.#g;
1168
+ #g() {
1169
+ const t = this.#a ?? this.#A;
1167
1170
  if (!t) return;
1168
1171
  try {
1169
1172
  t.hidePopover();
1170
1173
  } catch {
1171
1174
  }
1172
- this.open = !1, (this.#r ?? this.#m)?.clearHighlight?.();
1175
+ this.open = !1, (this.#r ?? this.#v)?.clearHighlight?.();
1173
1176
  }
1174
1177
  // ════════════════════════════════════════════════════════════
1175
1178
  // MODE: Dropdown (default)
1176
1179
  // ════════════════════════════════════════════════════════════
1177
- #C() {
1180
+ #k() {
1178
1181
  const t = `select-${crypto.randomUUID().slice(0, 8)}`;
1179
- this.#t = `--${t}`, this.#i = document.createElement("span"), this.#i.setAttribute("data-trigger", ""), this.#i.setAttribute("role", "combobox"), this.#i.setAttribute("aria-haspopup", "listbox"), this.#i.setAttribute("tabindex", "0"), this.#i.id = t, this.#s = document.createElement("span"), this.#s.setAttribute("data-label", ""), this.#i.appendChild(this.#s), this.#n = document.createElement("span"), this.#n.setAttribute("data-chevron", ""), this.#n.innerHTML = X, this.#i.appendChild(this.#n), this.#a = document.createElement("div"), this.#a.setAttribute("popover", "manual"), this.#a.setAttribute("data-dropdown", ""), this.#r = document.createElement("aui-listbox"), this.#a.appendChild(this.#r);
1182
+ this.#t = `--${t}`, this.#i = document.createElement("span"), this.#i.setAttribute("data-trigger", ""), this.#i.setAttribute("role", "combobox"), this.#i.setAttribute("aria-haspopup", "listbox"), this.#i.setAttribute("tabindex", "0"), this.#i.id = t, this.#s = document.createElement("span"), this.#s.setAttribute("data-label", ""), this.#i.appendChild(this.#s), this.#n = document.createElement("span"), this.#n.setAttribute("data-chevron", ""), this.#n.innerHTML = st, this.#i.appendChild(this.#n), this.#a = document.createElement("div"), this.#a.setAttribute("popover", "manual"), this.#a.setAttribute("data-dropdown", ""), this.#r = document.createElement("aui-listbox"), this.#a.appendChild(this.#r);
1180
1183
  const e = Array.from(this.children);
1181
1184
  for (const i of e)
1182
- F(i) && this.#r.appendChild(i);
1185
+ U(i) && this.#r.appendChild(i);
1183
1186
  this.appendChild(this.#i), this.appendChild(this.#a), this.#i.style.anchorName = this.#t, this.style.setProperty("--_anchor", this.#t), this.addEffect(() => {
1184
- this.disabled ? this.#i.setAttribute("tabindex", "-1") : this.#i.setAttribute("tabindex", "0"), this.#i.setAttribute("aria-expanded", String(this.open)), this.#i.setAttribute("aria-disabled", String(this.disabled)), this.#e.setFormValue(this.value || null), this.#E();
1185
- }), this.#i.addEventListener("click", this.#L), this.#i.addEventListener("keydown", this.#M), this.#r.addEventListener("click", this.#w), this.#r.addEventListener("change", this.#T), this.#r.addEventListener("keydown", this.#P), document.addEventListener("click", this.#D), this.value && (this.#r.value = this.value);
1187
+ this.disabled ? this.#i.setAttribute("tabindex", "-1") : this.#i.setAttribute("tabindex", "0"), this.#i.setAttribute("aria-expanded", String(this.open)), this.#i.setAttribute("aria-disabled", String(this.disabled)), this.#e.setFormValue(this.value || null), this.#x();
1188
+ }), this.#i.addEventListener("click", this.#L), this.#i.addEventListener("keydown", this.#I), this.#r.addEventListener("click", this.#w), this.#r.addEventListener("change", this.#T), this.#r.addEventListener("keydown", this.#P), document.addEventListener("click", this.#M), this.value && (this.#r.value = this.value);
1186
1189
  }
1187
1190
  #w = (t) => {
1188
1191
  const e = t.target.closest("aui-option");
@@ -1192,46 +1195,46 @@ class Ot extends d {
1192
1195
  e.selected = !0, this.value = e.value ?? e.getAttribute("value") ?? "", this.#r.dispatchEvent(new CustomEvent("change", {
1193
1196
  bubbles: !0,
1194
1197
  detail: { value: this.value, option: e }
1195
- })), this.#y();
1198
+ })), this.#g();
1196
1199
  }
1197
1200
  };
1198
- #k() {
1199
- this.#i?.removeEventListener("click", this.#L), this.#i?.removeEventListener("keydown", this.#M), this.#r?.removeEventListener("click", this.#w), this.#r?.removeEventListener("change", this.#T), this.#r?.removeEventListener("keydown", this.#P), document.removeEventListener("click", this.#D), this.#y();
1201
+ #C() {
1202
+ this.#i?.removeEventListener("click", this.#L), this.#i?.removeEventListener("keydown", this.#I), this.#r?.removeEventListener("click", this.#w), this.#r?.removeEventListener("change", this.#T), this.#r?.removeEventListener("keydown", this.#P), document.removeEventListener("click", this.#M), this.#g();
1200
1203
  }
1201
- #E() {
1204
+ #x() {
1202
1205
  if (!this.#s) return;
1203
1206
  const t = this.#r?.querySelector("aui-option[selected]");
1204
1207
  t ? (this.#s.textContent = t.displayLabel ?? t.textContent?.trim() ?? "", this.#s.removeAttribute("data-placeholder")) : (this.#s.textContent = this.placeholder, this.#s.setAttribute("data-placeholder", ""));
1205
1208
  }
1206
1209
  #L = () => {
1207
- this.disabled || (this.open ? this.#y() : this.#x());
1210
+ this.disabled || (this.open ? this.#g() : this.#E());
1208
1211
  };
1209
- #M = (t) => {
1210
- t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#x()) : t.key === "Escape" && this.#y();
1212
+ #I = (t) => {
1213
+ t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#E()) : t.key === "Escape" && this.#g();
1211
1214
  };
1212
1215
  #T = (t) => {
1213
- t.stopPropagation(), this.value = t.detail.value, this.#e.setFormValue(this.value || null), this.#E(), this.#y(), this.#i?.focus(), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1216
+ t.stopPropagation(), this.value = t.detail.value, this.#e.setFormValue(this.value || null), this.#x(), this.#g(), this.#i?.focus(), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1214
1217
  };
1215
1218
  #P = (t) => {
1216
- t.key === "Escape" ? (t.preventDefault(), this.#y(), this.#i?.focus()) : t.key === "Tab" && this.#y();
1219
+ t.key === "Escape" ? (t.preventDefault(), this.#g(), this.#i?.focus()) : t.key === "Tab" && this.#g();
1217
1220
  };
1218
- #D = (t) => {
1219
- this.open && !this.contains(t.target) && this.#y();
1221
+ #M = (t) => {
1222
+ this.open && !this.contains(t.target) && this.#g();
1220
1223
  };
1221
1224
  // ════════════════════════════════════════════════════════════
1222
1225
  // MODE: Bar (toolbar)
1223
1226
  // ════════════════════════════════════════════════════════════
1224
- #N() {
1225
- this.setAttribute("role", "toolbar"), this.hasAttribute("aria-label") || this.setAttribute("aria-label", "Toolbar"), this.orientation && this.setAttribute("aria-orientation", this.orientation || "horizontal"), this.#h = document.createElement("span"), this.#h.setAttribute("data-overflow-trigger", ""), this.#h.setAttribute("role", "button"), this.#h.setAttribute("tabindex", "0"), this.#h.setAttribute("aria-label", "More actions"), this.#h.setAttribute("aria-haspopup", "true"), this.#h.innerHTML = J, this.appendChild(this.#h), this.#o = document.createElement("div"), this.#o.setAttribute("data-overflow-popover", ""), this.#o.setAttribute("popover", "auto"), this.#o.setAttribute("role", "menu"), this.appendChild(this.#o), this.#l = document.createElement("div"), this.#l.setAttribute("data-overflow-list", ""), this.#o.appendChild(this.#l), this.#h.addEventListener("click", this.#B), this.#h.addEventListener("keydown", this.#V), this.#l.addEventListener("click", this.#_), this.addEventListener("keydown", this.#Y), this.#O(), this.#d = new ResizeObserver(() => this.#F()), this.#d.observe(this), this.#u = new MutationObserver((t) => {
1227
+ #H() {
1228
+ this.setAttribute("role", "toolbar"), this.hasAttribute("aria-label") || this.setAttribute("aria-label", "Toolbar"), this.orientation && this.setAttribute("aria-orientation", this.orientation || "horizontal"), this.#o = document.createElement("span"), this.#o.setAttribute("data-overflow-trigger", ""), this.#o.setAttribute("role", "button"), this.#o.setAttribute("tabindex", "0"), this.#o.setAttribute("aria-label", "More actions"), this.#o.setAttribute("aria-haspopup", "true"), this.#o.innerHTML = nt, this.appendChild(this.#o), this.#h = document.createElement("div"), this.#h.setAttribute("data-overflow-popover", ""), this.#h.setAttribute("popover", "auto"), this.#h.setAttribute("role", "menu"), this.appendChild(this.#h), this.#l = document.createElement("div"), this.#l.setAttribute("data-overflow-list", ""), this.#h.appendChild(this.#l), this.#o.addEventListener("click", this.#B), this.#o.addEventListener("keydown", this.#V), this.#l.addEventListener("click", this.#_), this.addEventListener("keydown", this.#G), this.#O(), this.#d = new ResizeObserver(() => this.#F()), this.#d.observe(this), this.#u = new MutationObserver((t) => {
1226
1229
  for (const e of t)
1227
- if (!this.#o?.contains(e.target)) {
1230
+ if (!this.#h?.contains(e.target)) {
1228
1231
  this.#F();
1229
1232
  return;
1230
1233
  }
1231
1234
  }), this.#u.observe(this, { childList: !0, subtree: !0 }), this.#F();
1232
1235
  }
1233
1236
  #q() {
1234
- this.#p !== null && cancelAnimationFrame(this.#p), this.#d?.disconnect(), this.#u?.disconnect(), this.removeEventListener("keydown", this.#Y), this.#h?.removeEventListener("click", this.#B), this.#h?.removeEventListener("keydown", this.#V), this.#l?.removeEventListener("click", this.#_);
1237
+ this.#c !== null && cancelAnimationFrame(this.#c), this.#d?.disconnect(), this.#u?.disconnect(), this.removeEventListener("keydown", this.#G), this.#o?.removeEventListener("click", this.#B), this.#o?.removeEventListener("keydown", this.#V), this.#l?.removeEventListener("click", this.#_);
1235
1238
  }
1236
1239
  // ── Bar: Group dividers ───────────────────────────────
1237
1240
  #O() {
@@ -1244,13 +1247,13 @@ class Ot extends d {
1244
1247
  const n = document.createElement("hr");
1245
1248
  n.setAttribute("data-group-divider", ""), this.insertBefore(n, i);
1246
1249
  }
1247
- (s || H(i.tagName)) && (e = s);
1250
+ (s || _(i.tagName)) && (e = s);
1248
1251
  }
1249
1252
  }
1250
1253
  // ── Bar: Measurement ───────────────────────────────────
1251
1254
  #F() {
1252
- this.#p === null && (this.#p = requestAnimationFrame(() => {
1253
- this.#p = null, this.#it();
1255
+ this.#c === null && (this.#c = requestAnimationFrame(() => {
1256
+ this.#c = null, this.#it();
1254
1257
  }));
1255
1258
  }
1256
1259
  #R() {
@@ -1263,65 +1266,65 @@ class Ot extends d {
1263
1266
  this.#nt();
1264
1267
  return;
1265
1268
  }
1266
- this.#u?.disconnect(), this.#h && this.#h.nextElementSibling !== this.#o && this.appendChild(this.#h), this.#o && this.#o !== this.lastElementChild && this.appendChild(this.#o);
1269
+ this.#u?.disconnect(), this.#o && this.#o.nextElementSibling !== this.#h && this.appendChild(this.#o), this.#h && this.#h !== this.lastElementChild && this.appendChild(this.#h);
1267
1270
  const t = this.#R();
1268
1271
  if (t.length === 0) {
1269
- this.#I();
1272
+ this.#D();
1270
1273
  return;
1271
1274
  }
1272
- for (const c of t)
1273
- c.removeAttribute("data-select-overflow");
1275
+ for (const p of t)
1276
+ p.removeAttribute("data-select-overflow");
1274
1277
  this.removeAttribute("data-select-overflowing"), this.setAttribute("data-select-measuring", "");
1275
1278
  const e = getComputedStyle(this), i = parseFloat(e.gap) || 0, s = this.clientWidth - (parseFloat(e.paddingInlineStart) || 0) - (parseFloat(e.paddingInlineEnd) || 0);
1276
1279
  if (s <= 0) {
1277
- this.removeAttribute("data-select-measuring"), this.#I();
1280
+ this.removeAttribute("data-select-measuring"), this.#D();
1278
1281
  return;
1279
1282
  }
1280
1283
  const n = this.#st(t);
1281
1284
  let a = 0, r = 0;
1282
- for (const c of n)
1283
- for (const b of c.flexItems)
1284
- r > 0 && (a += i), a += b.offsetWidth, r++;
1285
+ for (const p of n)
1286
+ for (const m of p.flexItems)
1287
+ r > 0 && (a += i), a += m.offsetWidth, r++;
1285
1288
  if (a <= s + 1) {
1286
- this.removeAttribute("data-select-measuring"), this.#z(), this.#I();
1289
+ this.removeAttribute("data-select-measuring"), this.#N(), this.#D();
1287
1290
  return;
1288
1291
  }
1289
1292
  this.setAttribute("data-select-overflowing", "");
1290
- for (const c of n) {
1291
- let b = 0;
1292
- for (let v = 0; v < c.flexItems.length; v++)
1293
- v > 0 && (b += i), b += c.flexItems[v].offsetWidth;
1294
- c.width = b;
1293
+ for (const p of n) {
1294
+ let m = 0;
1295
+ for (let v = 0; v < p.flexItems.length; v++)
1296
+ v > 0 && (m += i), m += p.flexItems[v].offsetWidth;
1297
+ p.width = m;
1295
1298
  }
1296
1299
  this.removeAttribute("data-select-measuring");
1297
- const o = this.#h?.offsetWidth ?? 0, l = n.filter((c) => !c.pinned);
1300
+ const h = this.#o?.offsetWidth ?? 0, l = n.filter((p) => !p.pinned);
1298
1301
  if (l.length === 0) {
1299
- this.#z(), this.#I();
1302
+ this.#N(), this.#D();
1300
1303
  return;
1301
1304
  }
1302
- l.sort((c, b) => {
1303
- const v = O[c.priority] ?? 1, k = O[b.priority] ?? 1;
1304
- return v !== k ? v - k : b.index - c.index;
1305
+ l.sort((p, m) => {
1306
+ const v = $[p.priority] ?? 1, g = $[m.priority] ?? 1;
1307
+ return v !== g ? v - g : m.index - p.index;
1305
1308
  });
1306
- const u = /* @__PURE__ */ new Set();
1307
- let f = a;
1308
- const m = s - o - i;
1309
- for (const c of l) {
1310
- if (f <= m) break;
1311
- u.add(c.el), f -= c.width + i;
1312
- }
1313
- if (u.size === 0) {
1314
- this.removeAttribute("data-select-overflowing"), this.#z(), this.#I();
1309
+ const c = /* @__PURE__ */ new Set();
1310
+ let u = a;
1311
+ const f = s - h - i;
1312
+ for (const p of l) {
1313
+ if (u <= f) break;
1314
+ c.add(p.el), u -= p.width + i;
1315
+ }
1316
+ if (c.size === 0) {
1317
+ this.removeAttribute("data-select-overflowing"), this.#N(), this.#D();
1315
1318
  return;
1316
1319
  }
1317
- for (const c of u) {
1318
- c.setAttribute("data-select-overflow", "");
1319
- const b = c.previousElementSibling;
1320
- b?.hasAttribute("data-group-divider") && b.setAttribute("data-select-overflow", "");
1321
- const v = c.nextElementSibling;
1320
+ for (const p of c) {
1321
+ p.setAttribute("data-select-overflow", "");
1322
+ const m = p.previousElementSibling;
1323
+ m?.hasAttribute("data-group-divider") && m.setAttribute("data-select-overflow", "");
1324
+ const v = p.nextElementSibling;
1322
1325
  v?.hasAttribute("data-group-divider") && v.setAttribute("data-select-overflow", "");
1323
1326
  }
1324
- this.#at(), this.#I();
1327
+ this.#at(), this.#D();
1325
1328
  }
1326
1329
  #st(t) {
1327
1330
  const e = [];
@@ -1330,10 +1333,10 @@ class Ot extends d {
1330
1333
  if (s.tagName === "HR" || s.tagName === "AUI-DIVIDER") continue;
1331
1334
  const n = s.getAttribute("data-priority") ?? s.getAttribute("overflow-priority") ?? "normal", a = n, r = n === "pin" || s.hasAttribute("overflow-pin");
1332
1335
  if (s.tagName === "AUI-OPTGROUP") {
1333
- const o = [];
1336
+ const h = [];
1334
1337
  for (const l of s.children)
1335
- l instanceof HTMLElement && l.tagName !== "HR" && l.tagName !== "AUI-DIVIDER" && o.push(l);
1336
- e.push({ el: s, flexItems: o, priority: a, pinned: r, index: i, width: 0 });
1338
+ l instanceof HTMLElement && l.tagName !== "HR" && l.tagName !== "AUI-DIVIDER" && h.push(l);
1339
+ e.push({ el: s, flexItems: h, priority: a, pinned: r, index: i, width: 0 });
1337
1340
  } else
1338
1341
  e.push({ el: s, flexItems: [s], priority: a, pinned: r, index: i, width: 0 });
1339
1342
  }
@@ -1343,13 +1346,13 @@ class Ot extends d {
1343
1346
  #nt() {
1344
1347
  for (const t of this.#R())
1345
1348
  t.removeAttribute("data-select-overflow");
1346
- this.removeAttribute("data-select-overflowing"), this.removeAttribute("data-select-measuring"), this.#z();
1349
+ this.removeAttribute("data-select-overflowing"), this.removeAttribute("data-select-measuring"), this.#N();
1347
1350
  }
1348
- #z() {
1351
+ #N() {
1349
1352
  this.#l && (this.#l.innerHTML = "");
1350
1353
  }
1351
1354
  #at() {
1352
- if (this.#z(), !this.#l) return;
1355
+ if (this.#N(), !this.#l) return;
1353
1356
  const t = this.#R();
1354
1357
  let e = 0;
1355
1358
  for (const i of t)
@@ -1360,12 +1363,12 @@ class Ot extends d {
1360
1363
  for (const a of i.children) {
1361
1364
  if (!(a instanceof HTMLElement) || a.tagName === "HR" || a.tagName === "AUI-DIVIDER" || a.hasAttribute("data-group-label")) continue;
1362
1365
  const r = document.createElement("aui-option");
1363
- r.textContent = this.#$(a), r.setAttribute("data-overflow-index", String(e)), s.appendChild(r), e++;
1366
+ r.textContent = this.#U(a), r.setAttribute("data-overflow-index", String(e)), s.appendChild(r), e++;
1364
1367
  }
1365
1368
  this.#l.appendChild(s);
1366
1369
  } else if (i.tagName !== "HR" && i.tagName !== "AUI-DIVIDER") {
1367
1370
  const s = document.createElement("aui-option");
1368
- s.textContent = this.#$(i), s.setAttribute("data-overflow-index", String(e)), this.#l.appendChild(s), e++;
1371
+ s.textContent = this.#U(i), s.setAttribute("data-overflow-index", String(e)), this.#l.appendChild(s), e++;
1369
1372
  }
1370
1373
  }
1371
1374
  }
@@ -1380,7 +1383,7 @@ class Ot extends d {
1380
1383
  else e.tagName !== "HR" && e.tagName !== "AUI-DIVIDER" && t.push(e);
1381
1384
  return t;
1382
1385
  }
1383
- #$(t) {
1386
+ #U(t) {
1384
1387
  const e = t.getAttribute("aria-label");
1385
1388
  if (e) return e;
1386
1389
  const i = t.getAttribute("label");
@@ -1390,43 +1393,43 @@ class Ot extends d {
1390
1393
  const n = t.getAttribute("icon");
1391
1394
  return n ? n.charAt(0).toUpperCase() + n.slice(1).replace(/-/g, " ") : "Action";
1392
1395
  }
1393
- #I() {
1396
+ #D() {
1394
1397
  this.#u?.observe(this, { childList: !0, subtree: !0 });
1395
1398
  }
1396
1399
  // ── Bar: Event handlers ────────────────────────────────
1397
1400
  #B = (t) => {
1398
- t.stopPropagation(), this.#K(), this.#o?.togglePopover();
1401
+ t.stopPropagation(), this.#K(), this.#h?.togglePopover();
1399
1402
  };
1400
1403
  #V = (t) => {
1401
1404
  const e = t;
1402
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.#K(), this.#o?.togglePopover());
1405
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.#K(), this.#h?.togglePopover());
1403
1406
  };
1404
1407
  #K() {
1405
- if (!this.#h || !this.#o) return;
1406
- const t = this.#h.getBoundingClientRect();
1407
- this.#o.style.top = `${t.bottom + 2}px`, this.#o.style.right = `${window.innerWidth - t.right}px`;
1408
+ if (!this.#o || !this.#h) return;
1409
+ const t = this.#o.getBoundingClientRect();
1410
+ this.#h.style.top = `${t.bottom + 2}px`, this.#h.style.right = `${window.innerWidth - t.right}px`;
1408
1411
  }
1409
1412
  #_ = (t) => {
1410
1413
  const e = t.target.closest("[data-overflow-index]");
1411
1414
  if (!e) return;
1412
1415
  const i = parseInt(e.getAttribute("data-overflow-index"), 10), s = this.#rt()[i];
1413
- s && s.click(), this.#o?.hidePopover();
1416
+ s && s.click(), this.#h?.hidePopover();
1414
1417
  };
1415
1418
  // ── Bar: Keyboard navigation ───────────────────────────
1416
- #ht() {
1417
- const t = [], e = this.hasAttribute("data-select-overflowing") ? Q : Z;
1419
+ #ot() {
1420
+ const t = [], e = this.hasAttribute("data-select-overflowing") ? rt : at;
1418
1421
  for (const i of this.#R())
1419
1422
  if (!i.hasAttribute("data-select-overflow"))
1420
1423
  if (i.tagName === "AUI-OPTGROUP")
1421
1424
  for (const s of i.children)
1422
1425
  s instanceof HTMLElement && s.matches(e) && t.push(s);
1423
1426
  else i.matches(e) && t.push(i);
1424
- return this.#h && this.hasAttribute("data-select-overflowing") && t.push(this.#h), t;
1427
+ return this.#o && this.hasAttribute("data-select-overflowing") && t.push(this.#o), t;
1425
1428
  }
1426
- #Y = (t) => {
1429
+ #G = (t) => {
1427
1430
  const e = this.orientation === "vertical", i = e ? "ArrowDown" : "ArrowRight", s = e ? "ArrowUp" : "ArrowLeft";
1428
1431
  if (t.key !== i && t.key !== s && t.key !== "Home" && t.key !== "End") return;
1429
- const n = this.#ht();
1432
+ const n = this.#ot();
1430
1433
  if (n.length === 0) return;
1431
1434
  const a = n.indexOf(document.activeElement);
1432
1435
  let r;
@@ -1449,16 +1452,16 @@ class Ot extends d {
1449
1452
  // ════════════════════════════════════════════════════════════
1450
1453
  // MODE: List (standalone listbox)
1451
1454
  // ════════════════════════════════════════════════════════════
1452
- #ot() {
1455
+ #ht() {
1453
1456
  this.setAttribute("role", "listbox"), this.addEffect(() => {
1454
1457
  this.multiple ? this.setAttribute("aria-multiselectable", "true") : this.removeAttribute("aria-multiselectable");
1455
- }), this.value && this.#ut(), this.addEventListener("click", this.#j), this.addEventListener("keydown", this.#W), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0");
1458
+ }), this.value && this.#ct(), this.addEventListener("click", this.#j), this.addEventListener("keydown", this.#X), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0");
1456
1459
  }
1457
1460
  #lt() {
1458
- this.removeEventListener("click", this.#j), this.removeEventListener("keydown", this.#W), this.#b && clearTimeout(this.#b);
1461
+ this.removeEventListener("click", this.#j), this.removeEventListener("keydown", this.#X), this.#b && clearTimeout(this.#b);
1459
1462
  }
1460
1463
  // ── List: Selection ────────────────────────────────────
1461
- #H(t) {
1464
+ #z(t) {
1462
1465
  if (!this.multiple)
1463
1466
  for (const i of this.options)
1464
1467
  i.removeAttribute("selected");
@@ -1482,7 +1485,7 @@ class Ot extends d {
1482
1485
  }
1483
1486
  this.#e.setFormValue(this.value || null);
1484
1487
  }
1485
- #ut() {
1488
+ #ct() {
1486
1489
  const t = this.value.split(",").map((e) => e.trim()).filter(Boolean);
1487
1490
  for (const e of this.options) {
1488
1491
  const i = e.getAttribute("value") ?? e.textContent?.trim() ?? "";
@@ -1493,11 +1496,11 @@ class Ot extends d {
1493
1496
  #S(t) {
1494
1497
  const e = this.enabledOptions;
1495
1498
  if (e.length === 0) return;
1496
- this.#G(), this.#f = Math.max(0, Math.min(t, e.length - 1));
1499
+ this.#Y(), this.#f = Math.max(0, Math.min(t, e.length - 1));
1497
1500
  const i = e[this.#f];
1498
1501
  i.setAttribute("data-navigate-active", ""), i.scrollIntoView({ block: "nearest" }), i.id && this.setAttribute("aria-activedescendant", i.id);
1499
1502
  }
1500
- #G() {
1503
+ #Y() {
1501
1504
  for (const t of this.options)
1502
1505
  t.removeAttribute("data-navigate-active");
1503
1506
  this.removeAttribute("aria-activedescendant");
@@ -1506,11 +1509,11 @@ class Ot extends d {
1506
1509
  #j = (t) => {
1507
1510
  const e = t.target.closest("aui-option");
1508
1511
  if (!e || e.hasAttribute("disabled")) return;
1509
- this.#H(e);
1512
+ this.#z(e);
1510
1513
  const i = this.enabledOptions.indexOf(e);
1511
1514
  i >= 0 && this.#S(i);
1512
1515
  };
1513
- #W = (t) => {
1516
+ #X = (t) => {
1514
1517
  const e = this.enabledOptions;
1515
1518
  if (e.length !== 0)
1516
1519
  switch (t.key) {
@@ -1538,18 +1541,18 @@ class Ot extends d {
1538
1541
  case " ": {
1539
1542
  t.preventDefault();
1540
1543
  const i = e[this.#f];
1541
- i && this.#H(i);
1544
+ i && this.#z(i);
1542
1545
  break;
1543
1546
  }
1544
1547
  default:
1545
- t.key.length === 1 && !t.ctrlKey && !t.metaKey && this.#ct(t.key);
1548
+ t.key.length === 1 && !t.ctrlKey && !t.metaKey && this.#ut(t.key);
1546
1549
  }
1547
1550
  };
1548
- #ct(t) {
1549
- this.#v += t.toLowerCase(), this.#b && clearTimeout(this.#b), this.#b = setTimeout(() => {
1550
- this.#v = "";
1551
+ #ut(t) {
1552
+ this.#m += t.toLowerCase(), this.#b && clearTimeout(this.#b), this.#b = setTimeout(() => {
1553
+ this.#m = "";
1551
1554
  }, 500);
1552
- const i = this.enabledOptions.findIndex((s) => (s.displayLabel?.toLowerCase() ?? s.textContent?.trim().toLowerCase() ?? "").startsWith(this.#v));
1555
+ const i = this.enabledOptions.findIndex((s) => (s.displayLabel?.toLowerCase() ?? s.textContent?.trim().toLowerCase() ?? "").startsWith(this.#m));
1553
1556
  i >= 0 && this.#S(i);
1554
1557
  }
1555
1558
  // ════════════════════════════════════════════════════════════
@@ -1557,66 +1560,66 @@ class Ot extends d {
1557
1560
  // ════════════════════════════════════════════════════════════
1558
1561
  #pt() {
1559
1562
  const t = `combobox-${crypto.randomUUID().slice(0, 8)}`;
1560
- this.#t = `--${t}`, this.#c = document.createElement("span"), this.#c.setAttribute("data-input", ""), this.#c.setAttribute("contenteditable", "plaintext-only"), this.#c.setAttribute("role", "combobox"), this.#c.setAttribute("aria-haspopup", "listbox"), this.#c.setAttribute("aria-autocomplete", "list"), this.#c.setAttribute("tabindex", "0"), this.#c.id = t, this.#g = document.createElement("div"), this.#g.setAttribute("popover", "manual"), this.#g.setAttribute("data-dropdown", ""), this.#m = document.createElement("aui-listbox"), this.#m.id = `${t}-listbox`, this.#c.setAttribute("aria-controls", this.#m.id), this.#g.appendChild(this.#m);
1563
+ this.#t = `--${t}`, this.#p = document.createElement("span"), this.#p.setAttribute("data-input", ""), this.#p.setAttribute("contenteditable", "plaintext-only"), this.#p.setAttribute("role", "combobox"), this.#p.setAttribute("aria-haspopup", "listbox"), this.#p.setAttribute("aria-autocomplete", "list"), this.#p.setAttribute("tabindex", "0"), this.#p.id = t, this.#A = document.createElement("div"), this.#A.setAttribute("popover", "manual"), this.#A.setAttribute("data-dropdown", ""), this.#v = document.createElement("aui-listbox"), this.#v.id = `${t}-listbox`, this.#p.setAttribute("aria-controls", this.#v.id), this.#A.appendChild(this.#v);
1561
1564
  const e = Array.from(this.children);
1562
1565
  for (const i of e)
1563
- F(i) && this.#m.appendChild(i);
1564
- if (this.#A = Array.from(this.#m.querySelectorAll("aui-option")), this.appendChild(this.#c), this.appendChild(this.#g), this.#c.style.anchorName = this.#t, this.style.setProperty("--_anchor", this.#t), this.addEffect(() => {
1566
+ U(i) && this.#v.appendChild(i);
1567
+ if (this.#y = Array.from(this.#v.querySelectorAll("aui-option")), this.appendChild(this.#p), this.appendChild(this.#A), this.#p.style.anchorName = this.#t, this.style.setProperty("--_anchor", this.#t), this.addEffect(() => {
1565
1568
  const i = this.disabled;
1566
- this.#c.setAttribute("contenteditable", i ? "false" : "plaintext-only"), this.#c.setAttribute("tabindex", i ? "-1" : "0"), this.#c.setAttribute("aria-expanded", String(this.open)), this.#c.setAttribute("data-placeholder", this.placeholder || ""), this.#e.setFormValue(this.value || null);
1567
- const s = !this.#c.textContent?.trim();
1569
+ this.#p.setAttribute("contenteditable", i ? "false" : "plaintext-only"), this.#p.setAttribute("tabindex", i ? "-1" : "0"), this.#p.setAttribute("aria-expanded", String(this.open)), this.#p.setAttribute("data-placeholder", this.placeholder || ""), this.#e.setFormValue(this.value || null);
1570
+ const s = !this.#p.textContent?.trim();
1568
1571
  this.toggleAttribute("data-input-empty", s);
1569
1572
  }), this.value) {
1570
- const i = this.#A.find(
1573
+ const i = this.#y.find(
1571
1574
  (s) => (s.getAttribute("value") ?? s.textContent?.trim()) === this.value
1572
1575
  );
1573
- i && this.#c && (this.#c.textContent = i.displayLabel ?? i.textContent?.trim() ?? "");
1576
+ i && this.#p && (this.#p.textContent = i.displayLabel ?? i.textContent?.trim() ?? "");
1574
1577
  }
1575
- this.#c.addEventListener("input", this.#X), this.#c.addEventListener("focus", this.#J), this.#c.addEventListener("keydown", this.#Z), this.#m.addEventListener("change", this.#Q), this.#m.addEventListener("keydown", this.#tt), document.addEventListener("click", this.#et);
1578
+ this.#p.addEventListener("input", this.#W), this.#p.addEventListener("focus", this.#J), this.#p.addEventListener("keydown", this.#Z), this.#v.addEventListener("change", this.#Q), this.#v.addEventListener("keydown", this.#tt), document.addEventListener("click", this.#et);
1576
1579
  }
1577
1580
  #ft() {
1578
- this.#c?.removeEventListener("input", this.#X), this.#c?.removeEventListener("focus", this.#J), this.#c?.removeEventListener("keydown", this.#Z), this.#m?.removeEventListener("change", this.#Q), this.#m?.removeEventListener("keydown", this.#tt), document.removeEventListener("click", this.#et), this.#y();
1581
+ this.#p?.removeEventListener("input", this.#W), this.#p?.removeEventListener("focus", this.#J), this.#p?.removeEventListener("keydown", this.#Z), this.#v?.removeEventListener("change", this.#Q), this.#v?.removeEventListener("keydown", this.#tt), document.removeEventListener("click", this.#et), this.#g();
1579
1582
  }
1580
- #U(t) {
1583
+ #$(t) {
1581
1584
  const e = t.toLowerCase();
1582
- for (const s of this.#A) {
1585
+ for (const s of this.#y) {
1583
1586
  const n = s.displayLabel?.toLowerCase() ?? s.textContent?.trim().toLowerCase() ?? "";
1584
1587
  s.style.display = !e || n.includes(e) ? "" : "none";
1585
1588
  }
1586
- const i = this.#m?.querySelectorAll("aui-optgroup") ?? [];
1589
+ const i = this.#v?.querySelectorAll("aui-optgroup") ?? [];
1587
1590
  for (const s of i) {
1588
1591
  const n = s.querySelector('aui-option:not([style*="display: none"])');
1589
1592
  s.style.display = n ? "" : "none";
1590
1593
  }
1591
1594
  }
1592
- #X = () => {
1593
- this.open || this.#x(), this.#U(this.#c?.textContent ?? ""), this.toggleAttribute("data-input-empty", !this.#c?.textContent?.trim());
1595
+ #W = () => {
1596
+ this.open || this.#E(), this.#$(this.#p?.textContent ?? ""), this.toggleAttribute("data-input-empty", !this.#p?.textContent?.trim());
1594
1597
  };
1595
1598
  #J = () => {
1596
- this.#x(), this.#U(this.#c?.textContent ?? "");
1599
+ this.#E(), this.#$(this.#p?.textContent ?? "");
1597
1600
  };
1598
1601
  #Z = (t) => {
1599
1602
  if (t.key === "Enter") {
1600
1603
  t.preventDefault();
1601
- const i = this.#m?.activeOption;
1604
+ const i = this.#v?.activeOption;
1602
1605
  i && this.open && i.click();
1603
- } else t.key === "ArrowDown" ? (t.preventDefault(), this.open || this.#x(), this.#m?.focus()) : t.key === "Escape" && this.#y();
1606
+ } else t.key === "ArrowDown" ? (t.preventDefault(), this.open || this.#E(), this.#v?.focus()) : t.key === "Escape" && this.#g();
1604
1607
  };
1605
1608
  #Q = (t) => {
1606
- t.stopPropagation(), this.value = t.detail.value, this.#e.setFormValue(this.value || null), this.#c && (this.#c.textContent = t.detail.label ?? ""), this.toggleAttribute("data-input-empty", !this.value), this.#y(), this.#c?.focus(), this.#U(""), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1609
+ t.stopPropagation(), this.value = t.detail.value, this.#e.setFormValue(this.value || null), this.#p && (this.#p.textContent = t.detail.label ?? ""), this.toggleAttribute("data-input-empty", !this.value), this.#g(), this.#p?.focus(), this.#$(""), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1607
1610
  };
1608
1611
  #tt = (t) => {
1609
- t.key === "Escape" ? (t.preventDefault(), this.#y(), this.#c?.focus()) : t.key === "Tab" && this.#y();
1612
+ t.key === "Escape" ? (t.preventDefault(), this.#g(), this.#p?.focus()) : t.key === "Tab" && this.#g();
1610
1613
  };
1611
1614
  #et = (t) => {
1612
- this.open && !this.contains(t.target) && this.#y();
1615
+ this.open && !this.contains(t.target) && this.#g();
1613
1616
  };
1614
1617
  }
1615
- let y = null;
1616
- function et() {
1617
- return y && y.isConnected || (y = document.querySelector("aui-toast-container"), y || (y = document.createElement("aui-toast-container"), document.body.appendChild(y))), y;
1618
+ let x = null;
1619
+ function ht() {
1620
+ return x && x.isConnected || (x = document.querySelector("aui-toast-container"), x || (x = document.createElement("aui-toast-container"), document.body.appendChild(x))), x;
1618
1621
  }
1619
- class Ft extends d {
1622
+ class Gt extends d {
1620
1623
  static attributes = {
1621
1624
  open: { type: "boolean", default: !1 },
1622
1625
  message: { type: "string", default: "" },
@@ -1628,7 +1631,7 @@ class Ft extends d {
1628
1631
  #i = null;
1629
1632
  static show(t) {
1630
1633
  const e = document.createElement("aui-toast");
1631
- return e.setAttribute("message", t.message), t.intent && e.setAttribute(t.intent, ""), t.duration !== void 0 && e.setAttribute("duration", String(t.duration)), t.closeable === !1 ? e.removeAttribute("closeable") : e.setAttribute("closeable", ""), et().appendChild(e), requestAnimationFrame(() => e.setAttribute("open", "")), e;
1634
+ return e.setAttribute("message", t.message), t.intent && e.setAttribute(t.intent, ""), t.duration !== void 0 && e.setAttribute("duration", String(t.duration)), t.closeable === !1 ? e.removeAttribute("closeable") : e.setAttribute("closeable", ""), ht().appendChild(e), requestAnimationFrame(() => e.setAttribute("open", "")), e;
1632
1635
  }
1633
1636
  activate() {
1634
1637
  this.setAttribute("role", "status"), this.setAttribute("aria-live", "polite"), this.#i = document.createElement("span"), this.#i.setAttribute("data-message", ""), this.appendChild(this.#i), this.#t = document.createElement("span"), this.#t.setAttribute("data-close", ""), this.#t.setAttribute("role", "button"), this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-label", "Dismiss"), this.#t.textContent = "✕", this.appendChild(this.#t), this.addEffect(() => {
@@ -1655,7 +1658,7 @@ class Ft extends d {
1655
1658
  (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.dismiss());
1656
1659
  };
1657
1660
  }
1658
- class Rt extends d {
1661
+ class Yt extends d {
1659
1662
  static attributes = {
1660
1663
  value: { type: "string", default: "" },
1661
1664
  orientation: { type: "enum", values: ["vertical"], default: "" }
@@ -1669,10 +1672,10 @@ class Rt extends d {
1669
1672
  const t = this.querySelector("aui-tab:not([disabled])");
1670
1673
  t && (this.value = t.getAttribute("value") ?? "");
1671
1674
  }
1672
- this.addEventListener("click", this.#r), this.addEventListener("keydown", this.#h);
1675
+ this.addEventListener("click", this.#r), this.addEventListener("keydown", this.#o);
1673
1676
  }
1674
1677
  dispose() {
1675
- this.removeEventListener("click", this.#r), this.removeEventListener("keydown", this.#h);
1678
+ this.removeEventListener("click", this.#r), this.removeEventListener("keydown", this.#o);
1676
1679
  }
1677
1680
  // ── Internal ──────────────────────────────────────────
1678
1681
  get #e() {
@@ -1714,34 +1717,34 @@ class Rt extends d {
1714
1717
  const e = t.target.closest("aui-tab");
1715
1718
  e && this.contains(e) && this.#a(e);
1716
1719
  };
1717
- #h = (t) => {
1720
+ #o = (t) => {
1718
1721
  const e = t.target;
1719
1722
  if (e.tagName !== "AUI-TAB") return;
1720
1723
  const i = this.orientation === "vertical", s = i ? "ArrowDown" : "ArrowRight", n = i ? "ArrowUp" : "ArrowLeft", a = this.#t, r = a.indexOf(e);
1721
1724
  if (r < 0) return;
1722
- let o;
1725
+ let h;
1723
1726
  switch (t.key) {
1724
1727
  case s:
1725
- o = r < a.length - 1 ? r + 1 : 0;
1728
+ h = r < a.length - 1 ? r + 1 : 0;
1726
1729
  break;
1727
1730
  case n:
1728
- o = r > 0 ? r - 1 : a.length - 1;
1731
+ h = r > 0 ? r - 1 : a.length - 1;
1729
1732
  break;
1730
1733
  case "Home":
1731
- o = 0;
1734
+ h = 0;
1732
1735
  break;
1733
1736
  case "End":
1734
- o = a.length - 1;
1737
+ h = a.length - 1;
1735
1738
  break;
1736
1739
  default:
1737
1740
  return;
1738
1741
  }
1739
1742
  t.preventDefault();
1740
- const l = a[o];
1743
+ const l = a[h];
1741
1744
  l.focus(), this.#a(l);
1742
1745
  };
1743
1746
  }
1744
- class zt extends d {
1747
+ class jt extends d {
1745
1748
  static attributes = {
1746
1749
  value: { type: "string", default: "" },
1747
1750
  disabled: { type: "boolean", default: !1 },
@@ -1753,7 +1756,7 @@ class zt extends d {
1753
1756
  });
1754
1757
  }
1755
1758
  }
1756
- class Nt extends d {
1759
+ class Xt extends d {
1757
1760
  static attributes = {
1758
1761
  value: { type: "string", default: "" },
1759
1762
  active: { type: "boolean", default: !1 }
@@ -1764,7 +1767,7 @@ class Nt extends d {
1764
1767
  });
1765
1768
  }
1766
1769
  }
1767
- class Ht extends d {
1770
+ class Wt extends d {
1768
1771
  static attributes = {
1769
1772
  multiple: { type: "boolean", default: !1 },
1770
1773
  caret: { type: "enum", values: ["leading", "trailing"], default: "leading" }
@@ -1784,7 +1787,7 @@ class Ht extends d {
1784
1787
  s !== e && s.removeAttribute("open");
1785
1788
  };
1786
1789
  }
1787
- class Ut extends d {
1790
+ class Jt extends d {
1788
1791
  static attributes = {
1789
1792
  open: { type: "boolean", default: !1 },
1790
1793
  disabled: { type: "boolean", default: !1 }
@@ -1829,18 +1832,45 @@ class Ut extends d {
1829
1832
  (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.#i());
1830
1833
  };
1831
1834
  }
1832
- class $t extends d {
1835
+ class Zt extends d {
1833
1836
  static attributes = {
1834
1837
  label: { type: "string", default: "Breadcrumb" },
1835
- joiner: { type: "string", default: "/" }
1838
+ joiner: { type: "string", default: "/" },
1839
+ "max-depth": { type: "string", default: "" }
1836
1840
  };
1841
+ #e = null;
1842
+ #t = null;
1837
1843
  activate() {
1838
1844
  this.setAttribute("role", "navigation"), this.addEffect(() => {
1839
- this.setAttribute("aria-label", this.label || "Breadcrumb"), this.style.setProperty("--_joiner", `"${this.joiner || "/"}"`);
1845
+ this.setAttribute("aria-label", this.label || "Breadcrumb"), this.style.setProperty("--_joiner", `"${this.joiner || "/"}"`), this.#i(), this.#s();
1846
+ });
1847
+ }
1848
+ /** Mark the last breadcrumb-item as [current] */
1849
+ #i() {
1850
+ const t = Array.from(this.querySelectorAll("aui-breadcrumb-item"));
1851
+ for (const i of t) i.removeAttribute("current");
1852
+ const e = t[t.length - 1];
1853
+ e && e.setAttribute("current", "");
1854
+ }
1855
+ /** Collapse middle items when max-depth is set */
1856
+ #s() {
1857
+ const t = parseInt(this["max-depth"]) || 0, e = Array.from(this.children).filter(
1858
+ (r) => r.tagName === "AUI-BREADCRUMB-ITEM"
1859
+ );
1860
+ this.#e && (this.#e.remove(), this.#e = null), this.#t && (this.#t.remove(), this.#t = null);
1861
+ for (const r of e) r.style.display = "";
1862
+ if (!t || e.length <= t + 1) return;
1863
+ const i = [], s = t;
1864
+ for (let r = 1; r < e.length - s; r++)
1865
+ e[r].style.display = "none", i.push(e[r]);
1866
+ const n = document.createElement("aui-breadcrumb-item"), a = document.createElement("aui-button");
1867
+ a.setAttribute("ghost", ""), a.setAttribute("size", "sm"), a.textContent = "…", a.setAttribute("aria-label", `Show ${i.length} more levels`), n.appendChild(a), this.#e = n, e[1] && this.insertBefore(n, e[1]), a.addEventListener("click", () => {
1868
+ for (const r of i) r.style.display = "";
1869
+ n.remove(), this.#e = null;
1840
1870
  });
1841
1871
  }
1842
1872
  }
1843
- class Bt extends d {
1873
+ class Qt extends d {
1844
1874
  static attributes = {
1845
1875
  href: { type: "string", default: "" },
1846
1876
  current: { type: "boolean", default: !1 }
@@ -1861,7 +1891,7 @@ class Bt extends d {
1861
1891
  });
1862
1892
  }
1863
1893
  }
1864
- class Vt extends d {
1894
+ class te extends d {
1865
1895
  static formAssociated = !0;
1866
1896
  static attributes = {
1867
1897
  value: { type: "string", default: "" },
@@ -1879,10 +1909,10 @@ class Vt extends d {
1879
1909
  const t = this.querySelector("aui-segment:not([disabled])");
1880
1910
  t && (this.value = t.getAttribute("value") ?? "");
1881
1911
  }
1882
- this.addEventListener("click", this.#h), this.addEventListener("keydown", this.#o);
1912
+ this.addEventListener("click", this.#o), this.addEventListener("keydown", this.#h);
1883
1913
  }
1884
1914
  dispose() {
1885
- this.removeEventListener("click", this.#h), this.removeEventListener("keydown", this.#o);
1915
+ this.removeEventListener("click", this.#o), this.removeEventListener("keydown", this.#h);
1886
1916
  }
1887
1917
  formDisabledCallback(t) {
1888
1918
  for (const e of this.#i) e.toggleAttribute("disabled", t);
@@ -1912,11 +1942,11 @@ class Vt extends d {
1912
1942
  #r(t) {
1913
1943
  t.hasAttribute("disabled") || (this.value = t.getAttribute("value") ?? "", this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: { value: this.value } })));
1914
1944
  }
1915
- #h = (t) => {
1945
+ #o = (t) => {
1916
1946
  const e = t.target.closest("aui-segment");
1917
1947
  e && this.contains(e) && this.#r(e);
1918
1948
  };
1919
- #o = (t) => {
1949
+ #h = (t) => {
1920
1950
  const e = t.target;
1921
1951
  if (e.tagName !== "AUI-SEGMENT") return;
1922
1952
  const i = this.#s, s = i.indexOf(e);
@@ -1943,7 +1973,7 @@ class Vt extends d {
1943
1973
  t.preventDefault(), i[n].focus(), this.#r(i[n]);
1944
1974
  };
1945
1975
  }
1946
- class Kt extends d {
1976
+ class ee extends d {
1947
1977
  static attributes = {
1948
1978
  value: { type: "string", default: "" },
1949
1979
  disabled: { type: "boolean", default: !1 },
@@ -1955,7 +1985,7 @@ class Kt extends d {
1955
1985
  });
1956
1986
  }
1957
1987
  }
1958
- class _t extends d {
1988
+ class ie extends d {
1959
1989
  static attributes = {
1960
1990
  page: { type: "string", default: "1" },
1961
1991
  total: { type: "string", default: "1" },
@@ -1976,11 +2006,11 @@ class _t extends d {
1976
2006
  n.setAttribute("aria-label", "Previous page"), n.setAttribute("data-pagination-prev", ""), this.appendChild(n);
1977
2007
  for (const r of s)
1978
2008
  if (r === "…") {
1979
- const o = document.createElement("span");
1980
- o.setAttribute("data-pagination-ellipsis", ""), o.textContent = "…", this.appendChild(o);
2009
+ const h = document.createElement("span");
2010
+ h.setAttribute("data-pagination-ellipsis", ""), h.textContent = "…", this.appendChild(h);
1981
2011
  } else {
1982
- const o = r, l = this.#t(String(o), o, !1);
1983
- o === t && (l.setAttribute("aria-current", "page"), l.setAttribute("data-pagination-current", "")), this.appendChild(l);
2012
+ const h = r, l = this.#t(String(h), h, !1);
2013
+ h === t && (l.setAttribute("aria-current", "page"), l.setAttribute("data-pagination-current", "")), this.appendChild(l);
1984
2014
  }
1985
2015
  const a = this.#t("›", t + 1, t >= e);
1986
2016
  a.setAttribute("aria-label", "Next page"), a.setAttribute("data-pagination-next", ""), this.appendChild(a);
@@ -1991,7 +2021,7 @@ class _t extends d {
1991
2021
  }
1992
2022
  #i(t, e, i) {
1993
2023
  if (e <= i * 2 + 5)
1994
- return Array.from({ length: e }, (r, o) => o + 1);
2024
+ return Array.from({ length: e }, (r, h) => h + 1);
1995
2025
  const s = [], n = Math.max(t - i, 2), a = Math.min(t + i, e - 1);
1996
2026
  if (s.push(1), n > 2) s.push("…");
1997
2027
  else for (let r = 2; r < n; r++) s.push(r);
@@ -2013,11 +2043,11 @@ class _t extends d {
2013
2043
  }
2014
2044
  };
2015
2045
  }
2016
- class Yt extends d {
2046
+ class se extends d {
2017
2047
  #e = -1;
2018
2048
  activate() {
2019
2049
  this.setAttribute("role", "search"), this.addEventListener("input", this.#l), this.addEventListener("keydown", this.#d), this.addEventListener("click", this.#u), requestAnimationFrame(() => {
2020
- this.#h(0);
2050
+ this.#o(0);
2021
2051
  });
2022
2052
  }
2023
2053
  dispose() {
@@ -2047,20 +2077,20 @@ class Yt extends d {
2047
2077
  s.toggleAttribute("hidden", !a);
2048
2078
  }
2049
2079
  const i = this.#i;
2050
- this.#n && this.#n.toggleAttribute("hidden", i.length > 0), this.#h(0);
2080
+ this.#n && this.#n.toggleAttribute("hidden", i.length > 0), this.#o(0);
2051
2081
  }
2052
2082
  // ── Active item tracking ──────────────────────────────
2053
- #h(t) {
2083
+ #o(t) {
2054
2084
  const e = this.#i;
2055
2085
  if (e.length === 0) {
2056
- this.#e = -1, this.#o();
2086
+ this.#e = -1, this.#h();
2057
2087
  return;
2058
2088
  }
2059
- this.#o(), this.#e = Math.max(0, Math.min(t, e.length - 1));
2089
+ this.#h(), this.#e = Math.max(0, Math.min(t, e.length - 1));
2060
2090
  const i = e[this.#e];
2061
2091
  i.setAttribute("data-navigate-active", ""), i.scrollIntoView({ block: "nearest" }), i.id && this.#a && this.#a.setAttribute("aria-activedescendant", i.id);
2062
2092
  }
2063
- #o() {
2093
+ #h() {
2064
2094
  for (const t of this.#t)
2065
2095
  t.removeAttribute("data-navigate-active");
2066
2096
  this.#a?.removeAttribute("aria-activedescendant");
@@ -2077,27 +2107,27 @@ class Yt extends d {
2077
2107
  case "ArrowDown": {
2078
2108
  t.preventDefault();
2079
2109
  const i = this.#e < e.length - 1 ? this.#e + 1 : 0;
2080
- this.#h(i);
2110
+ this.#o(i);
2081
2111
  break;
2082
2112
  }
2083
2113
  case "ArrowUp": {
2084
2114
  t.preventDefault();
2085
2115
  const i = this.#e > 0 ? this.#e - 1 : e.length - 1;
2086
- this.#h(i);
2116
+ this.#o(i);
2087
2117
  break;
2088
2118
  }
2089
2119
  case "Home": {
2090
- t.preventDefault(), this.#h(0);
2120
+ t.preventDefault(), this.#o(0);
2091
2121
  break;
2092
2122
  }
2093
2123
  case "End": {
2094
- t.preventDefault(), this.#h(e.length - 1);
2124
+ t.preventDefault(), this.#o(e.length - 1);
2095
2125
  break;
2096
2126
  }
2097
2127
  case "Enter": {
2098
2128
  t.preventDefault();
2099
2129
  const i = e[this.#e];
2100
- i && this.#p(i);
2130
+ i && this.#c(i);
2101
2131
  break;
2102
2132
  }
2103
2133
  case "Escape": {
@@ -2108,9 +2138,9 @@ class Yt extends d {
2108
2138
  };
2109
2139
  #u = (t) => {
2110
2140
  const e = t.target.closest("aui-command-item");
2111
- !e || e.hasAttribute("disabled") || e.hasAttribute("hidden") || this.#p(e);
2141
+ !e || e.hasAttribute("disabled") || e.hasAttribute("hidden") || this.#c(e);
2112
2142
  };
2113
- #p(t) {
2143
+ #c(t) {
2114
2144
  const e = t.getAttribute("value") ?? t.textContent?.trim() ?? "", i = t.textContent?.trim() ?? "";
2115
2145
  this.dispatchEvent(new CustomEvent("select", {
2116
2146
  bubbles: !0,
@@ -2118,12 +2148,12 @@ class Yt extends d {
2118
2148
  }));
2119
2149
  }
2120
2150
  }
2121
- class Gt extends d {
2151
+ class ne extends d {
2122
2152
  activate() {
2123
2153
  this.setAttribute("role", "status"), this.hasAttribute("hidden") || this.setAttribute("hidden", "");
2124
2154
  }
2125
2155
  }
2126
- class jt extends d {
2156
+ class ae extends d {
2127
2157
  static attributes = {
2128
2158
  label: { type: "string", default: "" }
2129
2159
  };
@@ -2136,7 +2166,7 @@ class jt extends d {
2136
2166
  });
2137
2167
  }
2138
2168
  }
2139
- class Wt extends d {
2169
+ class re extends d {
2140
2170
  static attributes = {
2141
2171
  placeholder: { type: "string", default: "Search…" }
2142
2172
  };
@@ -2174,7 +2204,7 @@ class Wt extends d {
2174
2204
  this.#e?.textContent?.trim() || window.getSelection()?.setPosition(this.#e, 0);
2175
2205
  };
2176
2206
  }
2177
- class Xt extends d {
2207
+ class oe extends d {
2178
2208
  static attributes = {
2179
2209
  value: { type: "string", default: "" },
2180
2210
  disabled: { type: "boolean", default: !1 },
@@ -2190,19 +2220,19 @@ class Xt extends d {
2190
2220
  });
2191
2221
  }
2192
2222
  }
2193
- class Jt extends d {
2223
+ class he extends d {
2194
2224
  activate() {
2195
2225
  this.setAttribute("role", "listbox");
2196
2226
  }
2197
2227
  }
2198
- const A = { High: 0, Normal: 1, Low: 2 }, w = (h, t, e) => Math.min(e, Math.max(t, h));
2199
- let L = null;
2200
- function it(h) {
2201
- if (L !== null) return L;
2228
+ const w = { High: 0, Normal: 1, Low: 2 }, M = (o, t, e) => Math.min(e, Math.max(t, o));
2229
+ let I = null;
2230
+ function lt(o) {
2231
+ if (I !== null) return I;
2202
2232
  const t = document.createElement("div");
2203
- return t.style.cssText = "position:absolute;visibility:hidden;width:var(--aui-sidebar-width-collapsed,2.75rem)", h.appendChild(t), L = t.offsetWidth || 44, t.remove(), L;
2233
+ return t.style.cssText = "position:absolute;visibility:hidden;width:var(--aui-sidebar-width-collapsed,2.75rem)", o.appendChild(t), I = t.offsetWidth || 44, t.remove(), I;
2204
2234
  }
2205
- class Zt extends d {
2235
+ class le extends d {
2206
2236
  static attributes = {
2207
2237
  direction: { type: "enum", values: ["vertical"], default: "" }
2208
2238
  };
@@ -2216,9 +2246,9 @@ class Zt extends d {
2216
2246
  #n = [];
2217
2247
  #a = [];
2218
2248
  #r = 0;
2219
- #h = 0;
2249
+ #o = 0;
2220
2250
  // Drag pointer ID (for releasing capture)
2221
- #o = -1;
2251
+ #h = -1;
2222
2252
  // Pixel-based sizes — source of truth during/after resize
2223
2253
  #l = [];
2224
2254
  // Proportional layout
@@ -2227,17 +2257,17 @@ class Zt extends d {
2227
2257
  return this.direction === "vertical";
2228
2258
  }
2229
2259
  activate() {
2230
- this.addEventListener("pointermove", this.#k), this.addEventListener("pointerleave", this.#E), this.addEventListener("pointerdown", this.#M, !0), this.#b(), this.#e = new MutationObserver(this.#F), this.#e.observe(this, {
2260
+ this.addEventListener("pointermove", this.#C), this.addEventListener("pointerleave", this.#x), this.addEventListener("pointerdown", this.#I, !0), this.#b(), this.#e = new MutationObserver(this.#F), this.#e.observe(this, {
2231
2261
  childList: !0,
2232
2262
  attributes: !0,
2233
2263
  attributeFilter: ["hidden", "minimized", "priority"],
2234
2264
  subtree: !0
2235
- }), this.#t = new ResizeObserver(this.#C), this.#t.observe(this), this.addEffect(() => {
2265
+ }), this.#t = new ResizeObserver(this.#k), this.#t.observe(this), this.addEffect(() => {
2236
2266
  this.direction, this.#b();
2237
2267
  });
2238
2268
  }
2239
2269
  dispose() {
2240
- this.#L(), this.#q(), this.#e?.disconnect(), this.#e = null, this.#t?.disconnect(), this.#t = null, this.removeEventListener("pointermove", this.#k), this.removeEventListener("pointerleave", this.#E), this.removeEventListener("pointerdown", this.#M, !0);
2270
+ this.#L(), this.#q(), this.#e?.disconnect(), this.#e = null, this.#t?.disconnect(), this.#t = null, this.removeEventListener("pointermove", this.#C), this.removeEventListener("pointerleave", this.#x), this.removeEventListener("pointerdown", this.#I, !0);
2241
2271
  }
2242
2272
  // ── Pane queries ──
2243
2273
  #u() {
@@ -2245,17 +2275,17 @@ class Zt extends d {
2245
2275
  (t) => t instanceof HTMLElement && !t.hidden
2246
2276
  );
2247
2277
  }
2248
- #p(t) {
2278
+ #c(t) {
2249
2279
  const e = t.getAttribute("size-min");
2250
- return e ? Number(e) : it(t);
2280
+ return e ? Number(e) : lt(t);
2251
2281
  }
2252
2282
  #f(t) {
2253
2283
  const e = t.getAttribute("size-max");
2254
2284
  return e ? Number(e) : 1 / 0;
2255
2285
  }
2256
- #v(t) {
2286
+ #m(t) {
2257
2287
  const e = t.getAttribute("priority");
2258
- return e === "high" ? A.High : e === "low" ? A.Low : A.Normal;
2288
+ return e === "high" ? w.High : e === "low" ? w.Low : w.Normal;
2259
2289
  }
2260
2290
  // ── Size management ──
2261
2291
  /** Read current pixel sizes from layout and establish initial state. */
@@ -2270,10 +2300,10 @@ class Zt extends d {
2270
2300
  const n = s.getBoundingClientRect();
2271
2301
  return e ? n.height : n.width;
2272
2302
  });
2273
- this.#l = i, this.#a = t, this.#g(), this.#c();
2303
+ this.#l = i, this.#a = t, this.#A(), this.#p();
2274
2304
  }
2275
2305
  /** Apply pixel sizes as flex values. */
2276
- #c() {
2306
+ #p() {
2277
2307
  const t = this.#u();
2278
2308
  if (!(this.#l.reduce((i, s) => i + s, 0) <= 0))
2279
2309
  for (let i = 0; i < t.length; i++) {
@@ -2283,7 +2313,7 @@ class Zt extends d {
2283
2313
  }
2284
2314
  }
2285
2315
  /** Save current proportions for proportional container resize. */
2286
- #g() {
2316
+ #A() {
2287
2317
  const t = this.#l.reduce((e, i) => e + i, 0);
2288
2318
  if (t <= 0) {
2289
2319
  this.#d = null;
@@ -2298,44 +2328,44 @@ class Zt extends d {
2298
2328
  * "after" panes (index+1 -> end), respecting min/max constraints
2299
2329
  * and priority ordering.
2300
2330
  */
2301
- #m(t, e, i) {
2331
+ #v(t, e, i) {
2302
2332
  const s = this.#a, n = [...i], a = [];
2303
- for (let p = t; p >= 0; p--) a.push(p);
2333
+ for (let b = t; b >= 0; b--) a.push(b);
2304
2334
  const r = [];
2305
- for (let p = t + 1; p < s.length; p++) r.push(p);
2306
- const o = (p) => {
2307
- const g = [], E = [], M = [];
2308
- for (const C of p) {
2309
- const T = this.#v(s[C]);
2310
- T === A.High ? g.push(C) : T === A.Low ? M.push(C) : E.push(C);
2335
+ for (let b = t + 1; b < s.length; b++) r.push(b);
2336
+ const h = (b) => {
2337
+ const A = [], E = [], C = [];
2338
+ for (const D of b) {
2339
+ const R = this.#m(s[D]);
2340
+ R === w.High ? A.push(D) : R === w.Low ? C.push(D) : E.push(D);
2311
2341
  }
2312
- return [...g, ...E, ...M];
2313
- }, l = o(a), u = o(r);
2314
- let f = 0, m = 0;
2315
- for (const p of l)
2316
- f += this.#p(s[p]) - i[p], m += this.#f(s[p]) - i[p];
2317
- let c = 0, b = 0;
2318
- for (const p of u)
2319
- c += i[p] - this.#f(s[p]), b += i[p] - this.#p(s[p]);
2320
- const v = Math.max(f, c), k = Math.min(m, b);
2321
- e = w(e, v, k);
2322
- let x = e;
2323
- for (const p of l) {
2324
- const g = w(
2325
- i[p] + x,
2326
- this.#p(s[p]),
2327
- this.#f(s[p])
2328
- ), E = g - i[p];
2329
- x -= E, n[p] = g;
2330
- }
2331
- x = e;
2332
- for (const p of u) {
2333
- const g = w(
2334
- i[p] - x,
2335
- this.#p(s[p]),
2336
- this.#f(s[p])
2337
- ), E = i[p] - g;
2338
- x -= E, n[p] = g;
2342
+ return [...A, ...E, ...C];
2343
+ }, l = h(a), c = h(r);
2344
+ let u = 0, f = 0;
2345
+ for (const b of l)
2346
+ u += this.#c(s[b]) - i[b], f += this.#f(s[b]) - i[b];
2347
+ let p = 0, m = 0;
2348
+ for (const b of c)
2349
+ p += i[b] - this.#f(s[b]), m += i[b] - this.#c(s[b]);
2350
+ const v = Math.max(u, p), g = Math.min(f, m);
2351
+ e = M(e, v, g);
2352
+ let y = e;
2353
+ for (const b of l) {
2354
+ const A = M(
2355
+ i[b] + y,
2356
+ this.#c(s[b]),
2357
+ this.#f(s[b])
2358
+ ), E = A - i[b];
2359
+ y -= E, n[b] = A;
2360
+ }
2361
+ y = e;
2362
+ for (const b of c) {
2363
+ const A = M(
2364
+ i[b] - y,
2365
+ this.#c(s[b]),
2366
+ this.#f(s[b])
2367
+ ), E = i[b] - A;
2368
+ y -= E, n[b] = A;
2339
2369
  }
2340
2370
  return n;
2341
2371
  }
@@ -2343,56 +2373,56 @@ class Zt extends d {
2343
2373
  * After any size change, distribute leftover space (positive or negative)
2344
2374
  * across all panes in priority order.
2345
2375
  */
2346
- #A(t) {
2376
+ #y(t) {
2347
2377
  const e = this.#a, i = [...t];
2348
- let n = this.#x() - i.reduce((u, f) => u + f, 0);
2378
+ let n = this.#E() - i.reduce((c, u) => c + u, 0);
2349
2379
  if (Math.abs(n) < 0.5) return i;
2350
- const a = [], r = [], o = [];
2351
- for (let u = 0; u < e.length; u++) {
2352
- const f = this.#v(e[u]);
2353
- f === A.High ? a.push(u) : f === A.Low ? o.push(u) : r.push(u);
2354
- }
2355
- const l = [...a, ...r, ...o];
2356
- for (let u = 0; Math.abs(n) >= 0.5 && u < l.length; u++) {
2357
- const f = l[u], m = e[f], c = w(
2358
- i[f] + n,
2359
- this.#p(m),
2360
- this.#f(m)
2361
- ), b = c - i[f];
2362
- n -= b, i[f] = c;
2380
+ const a = [], r = [], h = [];
2381
+ for (let c = 0; c < e.length; c++) {
2382
+ const u = this.#m(e[c]);
2383
+ u === w.High ? a.push(c) : u === w.Low ? h.push(c) : r.push(c);
2384
+ }
2385
+ const l = [...a, ...r, ...h];
2386
+ for (let c = 0; Math.abs(n) >= 0.5 && c < l.length; c++) {
2387
+ const u = l[c], f = e[u], p = M(
2388
+ i[u] + n,
2389
+ this.#c(f),
2390
+ this.#f(f)
2391
+ ), m = p - i[u];
2392
+ n -= m, i[u] = p;
2363
2393
  }
2364
2394
  return i;
2365
2395
  }
2366
- #x() {
2396
+ #E() {
2367
2397
  const t = this.getBoundingClientRect();
2368
2398
  return this.isVertical ? t.height : t.width;
2369
2399
  }
2370
2400
  // ── Proportional container resize ──
2371
- #y = 0;
2372
- #C = () => {
2401
+ #g = 0;
2402
+ #k = () => {
2373
2403
  if (this.#s >= 0) return;
2374
- const t = this.#x();
2404
+ const t = this.#E();
2375
2405
  if (t <= 0) return;
2376
- if (this.#y === 0) {
2377
- this.#y = t;
2406
+ if (this.#g === 0) {
2407
+ this.#g = t;
2378
2408
  return;
2379
2409
  }
2380
- if (Math.abs(t - this.#y) < 1) return;
2381
- this.#y = t;
2410
+ if (Math.abs(t - this.#g) < 1) return;
2411
+ this.#g = t;
2382
2412
  const e = this.#u();
2383
2413
  if (e.length !== 0) {
2384
2414
  if (this.#a = e, this.#d && this.#d.length === e.length) {
2385
2415
  const i = this.#d.map(
2386
- (s, n) => w(
2416
+ (s, n) => M(
2387
2417
  Math.round(s * t),
2388
- this.#p(e[n]),
2418
+ this.#c(e[n]),
2389
2419
  this.#f(e[n])
2390
2420
  )
2391
2421
  );
2392
- this.#l = this.#A(i);
2422
+ this.#l = this.#y(i);
2393
2423
  } else
2394
- this.#l = this.#A(this.#l);
2395
- this.#c();
2424
+ this.#l = this.#y(this.#l);
2425
+ this.#p();
2396
2426
  }
2397
2427
  };
2398
2428
  // ── Boundary hit-testing ──
@@ -2401,13 +2431,13 @@ class Zt extends d {
2401
2431
  if (i.length < 2) return -1;
2402
2432
  const s = this.isVertical, n = 8;
2403
2433
  for (let a = 0; a < i.length - 1; a++) {
2404
- const r = i[a].getBoundingClientRect(), o = s ? r.bottom : r.right;
2405
- if (Math.abs((s ? e : t) - o) <= n) return a;
2434
+ const r = i[a].getBoundingClientRect(), h = s ? r.bottom : r.right;
2435
+ if (Math.abs((s ? e : t) - h) <= n) return a;
2406
2436
  }
2407
2437
  return -1;
2408
2438
  }
2409
2439
  // ── Hover ──
2410
- #k = (t) => {
2440
+ #C = (t) => {
2411
2441
  if (this.#s >= 0) return;
2412
2442
  const e = this.#w(t.clientX, t.clientY), i = this.#u();
2413
2443
  if (e >= 0) {
@@ -2420,30 +2450,30 @@ class Zt extends d {
2420
2450
  } else
2421
2451
  this.#L();
2422
2452
  };
2423
- #E = () => {
2453
+ #x = () => {
2424
2454
  this.#s >= 0 || this.#L();
2425
2455
  };
2426
2456
  #L() {
2427
2457
  this.#i && (this.#i.removeAttribute("data-panes-edge-near"), this.#i = null);
2428
2458
  }
2429
2459
  // ── Drag resize ──
2430
- #M = (t) => {
2460
+ #I = (t) => {
2431
2461
  if (t.button !== 0) return;
2432
2462
  const e = this.#w(t.clientX, t.clientY);
2433
2463
  if (e < 0) return;
2434
- t.preventDefault(), t.stopPropagation(), this.#L(), this.#s = e, this.#a = this.#u(), this.#r = t.clientX, this.#h = t.clientY;
2464
+ t.preventDefault(), t.stopPropagation(), this.#L(), this.#s = e, this.#a = this.#u(), this.#r = t.clientX, this.#o = t.clientY;
2435
2465
  const i = this.isVertical;
2436
2466
  this.#n = this.#a.map((n) => {
2437
2467
  const a = n.getBoundingClientRect();
2438
2468
  return i ? a.height : a.width;
2439
2469
  }), this.#l = [...this.#n], this.setAttribute("data-panes-resizing", "");
2440
2470
  const s = i ? "bottom" : "right";
2441
- this.#a[e].setAttribute("data-panes-edge-active", s), this.#o = t.pointerId, this.setPointerCapture(t.pointerId), document.addEventListener("pointermove", this.#T), document.addEventListener("pointerup", this.#P), document.addEventListener("pointercancel", this.#D), document.addEventListener("keydown", this.#N);
2471
+ this.#a[e].setAttribute("data-panes-edge-active", s), this.#h = t.pointerId, this.setPointerCapture(t.pointerId), document.addEventListener("pointermove", this.#T), document.addEventListener("pointerup", this.#P), document.addEventListener("pointercancel", this.#M), document.addEventListener("keydown", this.#H);
2442
2472
  };
2443
2473
  #T = (t) => {
2444
2474
  if (this.#s < 0) return;
2445
- const e = this.isVertical ? t.clientY - this.#h : t.clientX - this.#r;
2446
- this.#l = this.#m(this.#s, e, this.#n), this.#c();
2475
+ const e = this.isVertical ? t.clientY - this.#o : t.clientX - this.#r;
2476
+ this.#l = this.#v(this.#s, e, this.#n), this.#p();
2447
2477
  };
2448
2478
  #P = () => {
2449
2479
  if (this.#s < 0) return;
@@ -2451,7 +2481,7 @@ class Zt extends d {
2451
2481
  this.#l = this.#a.map((e) => {
2452
2482
  const i = e.getBoundingClientRect();
2453
2483
  return t ? i.height : i.width;
2454
- }), this.#g(), this.dispatchEvent(new CustomEvent("aui:panes-resize", {
2484
+ }), this.#A(), this.dispatchEvent(new CustomEvent("aui:panes-resize", {
2455
2485
  bubbles: !0,
2456
2486
  composed: !0,
2457
2487
  detail: {
@@ -2460,21 +2490,21 @@ class Zt extends d {
2460
2490
  }
2461
2491
  })), this.#q();
2462
2492
  };
2463
- #D = () => {
2464
- this.#s < 0 || (this.#l = [...this.#n], this.#c(), this.#q());
2493
+ #M = () => {
2494
+ this.#s < 0 || (this.#l = [...this.#n], this.#p(), this.#q());
2465
2495
  };
2466
- #N = (t) => {
2467
- t.key === "Escape" && this.#s >= 0 && (t.preventDefault(), this.#D());
2496
+ #H = (t) => {
2497
+ t.key === "Escape" && this.#s >= 0 && (t.preventDefault(), this.#M());
2468
2498
  };
2469
2499
  #q() {
2470
- if (this.#s >= 0 && this.#a[this.#s]?.removeAttribute("data-panes-edge-active"), this.#o >= 0) {
2500
+ if (this.#s >= 0 && this.#a[this.#s]?.removeAttribute("data-panes-edge-active"), this.#h >= 0) {
2471
2501
  try {
2472
- this.releasePointerCapture(this.#o);
2502
+ this.releasePointerCapture(this.#h);
2473
2503
  } catch {
2474
2504
  }
2475
- this.#o = -1;
2505
+ this.#h = -1;
2476
2506
  }
2477
- this.#s = -1, this.#n = [], this.removeAttribute("data-panes-resizing"), document.removeEventListener("pointermove", this.#T), document.removeEventListener("pointerup", this.#P), document.removeEventListener("pointercancel", this.#D), document.removeEventListener("keydown", this.#N);
2507
+ this.#s = -1, this.#n = [], this.removeAttribute("data-panes-resizing"), document.removeEventListener("pointermove", this.#T), document.removeEventListener("pointerup", this.#P), document.removeEventListener("pointercancel", this.#M), document.removeEventListener("keydown", this.#H);
2478
2508
  }
2479
2509
  // ── Child mutation observer (debounced) ──
2480
2510
  #O = 0;
@@ -2496,15 +2526,15 @@ class Zt extends d {
2496
2526
  })));
2497
2527
  };
2498
2528
  }
2499
- const U = document.createElement("template");
2500
- U.innerHTML = `
2529
+ const G = document.createElement("template");
2530
+ G.innerHTML = `
2501
2531
  <aui-header data-pane-header>
2502
2532
  <aui-pane-label></aui-pane-label>
2503
2533
  </aui-header>
2504
2534
  `;
2505
- const $ = document.createElement("template");
2506
- $.innerHTML = "<aui-button ghost></aui-button>";
2507
- class Qt extends d {
2535
+ const Y = document.createElement("template");
2536
+ Y.innerHTML = "<aui-button ghost></aui-button>";
2537
+ class de extends d {
2508
2538
  static attributes = {
2509
2539
  label: { type: "string", default: "" },
2510
2540
  icon: { type: "string", default: "" },
@@ -2528,7 +2558,7 @@ class Qt extends d {
2528
2558
  // Collapse state (internal)
2529
2559
  #r = !1;
2530
2560
  activate() {
2531
- this.#l(), this.#o(), this.#h(), this.addEffect(() => {
2561
+ this.#l(), this.#h(), this.#o(), this.addEffect(() => {
2532
2562
  const t = this.label;
2533
2563
  this.#t && (this.#t.textContent = t), t && !this.#e ? this.#l() : !t && this.#e && this.#d();
2534
2564
  }), this.addEffect(() => {
@@ -2538,19 +2568,19 @@ class Qt extends d {
2538
2568
  e && e.setAttribute("icon", t ? "caret-up" : "minus");
2539
2569
  }
2540
2570
  }), this.addEffect(() => {
2541
- this["fixed-size"], this.#h();
2571
+ this["fixed-size"], this.#o();
2542
2572
  }), this.addEffect(() => {
2543
2573
  const t = this.basis;
2544
2574
  t ? this.style.flexBasis = t : this.style.removeProperty("flex-basis");
2545
2575
  }), this.addEffect(() => {
2546
2576
  const t = this.icon;
2547
- this.#p(t || null);
2577
+ this.#c(t || null);
2548
2578
  }), this.addEffect(() => {
2549
2579
  this.#f(this.closeable);
2550
2580
  }), this.addEffect(() => {
2551
- this.#v(this.minimizable);
2581
+ this.#m(this.minimizable);
2552
2582
  }), this.addEffect(() => {
2553
- this.tabs && !this.#a ? this.#b() : !this.tabs && this.#a && this.#c();
2583
+ this.tabs && !this.#a ? this.#b() : !this.tabs && this.#a && this.#p();
2554
2584
  }), this.addEffect(() => {
2555
2585
  this.collapse;
2556
2586
  });
@@ -2599,13 +2629,13 @@ class Qt extends d {
2599
2629
  }));
2600
2630
  }
2601
2631
  // ── Size sync ──
2602
- #h() {
2632
+ #o() {
2603
2633
  const t = this["fixed-size"];
2604
2634
  t && t !== "auto" ? this.style.flex = `0 1 ${t}` : this.style.removeProperty("flex");
2605
2635
  }
2606
2636
  // ── Content wrapping ──
2607
2637
  /** Wrap non-structural children in <aui-content>. */
2608
- #o() {
2638
+ #h() {
2609
2639
  if (this.querySelector(":scope > aui-content")) return;
2610
2640
  const t = document.createElement("aui-content"), e = [];
2611
2641
  for (const i of Array.from(this.childNodes))
@@ -2620,7 +2650,7 @@ class Qt extends d {
2620
2650
  if (this.querySelector(":scope > aui-header")) return;
2621
2651
  const t = this.label;
2622
2652
  if (!t) return;
2623
- const i = U.content.cloneNode(!0).firstElementChild, s = i.querySelector("aui-pane-label");
2653
+ const i = G.content.cloneNode(!0).firstElementChild, s = i.querySelector("aui-pane-label");
2624
2654
  s.textContent = t, this.#t = s;
2625
2655
  const n = this.icon;
2626
2656
  if (n) {
@@ -2638,10 +2668,10 @@ class Qt extends d {
2638
2668
  this.#e && (this.#e.remove(), this.#e = null, this.#t = null, this.#i = null, this.#s = null, this.#n = null);
2639
2669
  }
2640
2670
  #u(t, e) {
2641
- const i = $.content.firstElementChild.cloneNode(!0);
2671
+ const i = Y.content.firstElementChild.cloneNode(!0);
2642
2672
  return i.setAttribute("icon", t), i.setAttribute("slot", "trailing"), i.addEventListener("click", e), i;
2643
2673
  }
2644
- #p(t) {
2674
+ #c(t) {
2645
2675
  if (this.#e)
2646
2676
  if (t && this.#i)
2647
2677
  this.#i.setAttribute("icon", t);
@@ -2653,7 +2683,7 @@ class Qt extends d {
2653
2683
  #f(t) {
2654
2684
  this.#e && (t && !this.#n ? (this.#n = this.#u("x", () => this.close()), this.#e.appendChild(this.#n)) : !t && this.#n && (this.#n.remove(), this.#n = null));
2655
2685
  }
2656
- #v(t) {
2686
+ #m(t) {
2657
2687
  this.#e && (t && !this.#s ? (this.#s = this.#u(
2658
2688
  this.minimized ? "caret-up" : "minus",
2659
2689
  () => {
@@ -2674,20 +2704,20 @@ class Qt extends d {
2674
2704
  }
2675
2705
  this.#a.addEventListener("change", (e) => {
2676
2706
  const s = e.detail.tab?.getAttribute("data-for");
2677
- s && this.#g(s);
2707
+ s && this.#A(s);
2678
2708
  });
2679
2709
  const t = this.querySelector(":scope > aui-header, :scope > [data-pane-header]");
2680
2710
  t ? t.after(this.#a) : this.prepend(this.#a), queueMicrotask(() => {
2681
2711
  const i = this.#a?.querySelector("aui-tab")?.getAttribute("data-for");
2682
- i && this.#g(i);
2712
+ i && this.#A(i);
2683
2713
  });
2684
2714
  }
2685
- #c() {
2715
+ #p() {
2686
2716
  this.#a?.remove(), this.#a = null;
2687
2717
  for (const t of this.children)
2688
2718
  t instanceof HTMLElement && t.hasAttribute("data-tab-id") && t.removeAttribute("hidden");
2689
2719
  }
2690
- #g(t) {
2720
+ #A(t) {
2691
2721
  for (const e of this.children) {
2692
2722
  if (!(e instanceof HTMLElement)) continue;
2693
2723
  const i = e.getAttribute("data-tab-id");
@@ -2695,10 +2725,10 @@ class Qt extends d {
2695
2725
  }
2696
2726
  }
2697
2727
  dispose() {
2698
- this.#d(), this.#c();
2728
+ this.#d(), this.#p();
2699
2729
  }
2700
2730
  }
2701
- class te extends d {
2731
+ class ce extends d {
2702
2732
  static attributes = {
2703
2733
  cols: { type: "string", default: "" },
2704
2734
  src: { type: "string", default: "" },
@@ -2714,35 +2744,35 @@ class te extends d {
2714
2744
  #n = "";
2715
2745
  #a = 1;
2716
2746
  #r = /* @__PURE__ */ new Set();
2717
- #h = !1;
2747
+ #o = !1;
2718
2748
  // Stable DOM refs (created once, never destroyed)
2719
- #o = null;
2749
+ #h = null;
2720
2750
  #l = null;
2721
2751
  #d = null;
2722
2752
  #u = null;
2723
- #p = null;
2753
+ #c = null;
2724
2754
  get selectedIds() {
2725
2755
  return new Set(this.#r);
2726
2756
  }
2727
2757
  get dataMode() {
2728
- return this.#h;
2758
+ return this.#o;
2729
2759
  }
2730
2760
  setData(t) {
2731
- this.#t = [...t], this.#a = 1, this.#r.clear(), this.#E();
2761
+ this.#t = [...t], this.#a = 1, this.#r.clear(), this.#x();
2732
2762
  }
2733
2763
  activate() {
2734
- if (this.setAttribute("role", "table"), this.#e = this.#f(), this.#h = this.#e.length > 0, !this.#h) {
2764
+ if (this.setAttribute("role", "table"), this.#e = this.#f(), this.#o = this.#e.length > 0, !this.#o) {
2735
2765
  this.addEffect(() => {
2736
2766
  this.cols && (this.style.gridTemplateColumns = this.cols);
2737
2767
  });
2738
2768
  return;
2739
2769
  }
2740
- this.#v(), this.#c(), this.#E(), this.addEventListener("click", this.#g), this.addEffect(() => {
2770
+ this.#m(), this.#p(), this.#x(), this.addEventListener("click", this.#A), this.addEffect(() => {
2741
2771
  this.src && this.#b(this.src);
2742
2772
  });
2743
2773
  }
2744
2774
  dispose() {
2745
- this.removeEventListener("click", this.#g), this.#p && clearTimeout(this.#p);
2775
+ this.removeEventListener("click", this.#A), this.#c && clearTimeout(this.#c);
2746
2776
  }
2747
2777
  // ── Column parsing ─────────────────────────────────────────
2748
2778
  #f() {
@@ -2757,7 +2787,7 @@ class te extends d {
2757
2787
  })).filter((t) => t.key);
2758
2788
  }
2759
2789
  // ── Data loading ───────────────────────────────────────────
2760
- #v() {
2790
+ #m() {
2761
2791
  const t = this.querySelector('script[type="application/json"]');
2762
2792
  if (t?.textContent) {
2763
2793
  try {
@@ -2774,12 +2804,12 @@ class te extends d {
2774
2804
  const e = await fetch(t);
2775
2805
  if (!e.ok) return;
2776
2806
  const i = await e.json();
2777
- this.#t = Array.isArray(i) ? i : i?.data ?? [], this.#a = 1, this.#r.clear(), this.#E();
2807
+ this.#t = Array.isArray(i) ? i : i?.data ?? [], this.#a = 1, this.#r.clear(), this.#x();
2778
2808
  } catch {
2779
2809
  }
2780
2810
  }
2781
2811
  // ── Structure (built once) ─────────────────────────────────
2782
- #c() {
2812
+ #p() {
2783
2813
  for (const e of [...this.children]) {
2784
2814
  const i = e.tagName?.toLowerCase();
2785
2815
  i !== "aui-table-column" && i !== "script" && e.remove();
@@ -2789,64 +2819,64 @@ class te extends d {
2789
2819
  const e = document.createElement("div");
2790
2820
  e.setAttribute("data-table-toolbar", "");
2791
2821
  const i = document.createElement("aui-input");
2792
- i.setAttribute("placeholder", "Search..."), i.setAttribute("type", "search"), i.setAttribute("width", "full"), e.appendChild(i), this.#o = e, this.appendChild(e);
2822
+ i.setAttribute("placeholder", "Search..."), i.setAttribute("type", "search"), i.setAttribute("width", "full"), e.appendChild(i), this.#h = e, this.appendChild(e);
2793
2823
  const s = () => {
2794
- this.#p && clearTimeout(this.#p), this.#p = setTimeout(() => {
2795
- this.#n = (i.value || "").trim(), this.#a = 1, this.#E();
2824
+ this.#c && clearTimeout(this.#c), this.#c = setTimeout(() => {
2825
+ this.#n = (i.value || "").trim(), this.#a = 1, this.#x();
2796
2826
  }, 200);
2797
2827
  };
2798
2828
  i.addEventListener("input", s);
2799
2829
  }
2800
- this.#l = document.createElement("aui-table-head"), this.appendChild(this.#l), this.#d = document.createElement("aui-table-body"), this.appendChild(this.#d), this.#C > 0 && (this.#u = document.createElement("div"), this.#u.setAttribute("data-table-footer", ""), this.appendChild(this.#u));
2830
+ this.#l = document.createElement("aui-table-head"), this.appendChild(this.#l), this.#d = document.createElement("aui-table-body"), this.appendChild(this.#d), this.#k > 0 && (this.#u = document.createElement("div"), this.#u.setAttribute("data-table-footer", ""), this.appendChild(this.#u));
2801
2831
  }
2802
2832
  // ── Event delegation ───────────────────────────────────────
2803
- #g = (t) => {
2833
+ #A = (t) => {
2804
2834
  const e = t.target, i = e.closest("aui-table-header[data-table-sortable]");
2805
2835
  if (i) {
2806
2836
  const a = i.dataset.key;
2807
2837
  if (a) {
2808
- this.#m(a);
2838
+ this.#v(a);
2809
2839
  return;
2810
2840
  }
2811
2841
  }
2812
2842
  const s = e.closest("aui-checkbox[data-table-check]");
2813
2843
  if (s) {
2814
2844
  const a = s.dataset.rowId;
2815
- a === "__all__" ? this.#y() : a && this.#x(a);
2845
+ a === "__all__" ? this.#g() : a && this.#E(a);
2816
2846
  return;
2817
2847
  }
2818
2848
  const n = e.closest("[data-table-page]");
2819
2849
  if (n) {
2820
2850
  const a = parseInt(n.dataset.tablePage, 10);
2821
- !isNaN(a) && a !== this.#a && (this.#a = a, this.dispatchEvent(new CustomEvent("aui:page-change", { bubbles: !0, detail: { page: a } })), this.#E());
2851
+ !isNaN(a) && a !== this.#a && (this.#a = a, this.dispatchEvent(new CustomEvent("aui:page-change", { bubbles: !0, detail: { page: a } })), this.#x());
2822
2852
  }
2823
2853
  };
2824
2854
  // ── Sort ───────────────────────────────────────────────────
2825
- #m(t) {
2855
+ #v(t) {
2826
2856
  if (this.#i === t) {
2827
2857
  const e = ["asc", "desc", "none"];
2828
2858
  this.#s = e[(e.indexOf(this.#s) + 1) % 3], this.#s === "none" && (this.#i = "");
2829
2859
  } else
2830
2860
  this.#i = t, this.#s = "asc";
2831
- this.#a = 1, this.dispatchEvent(new CustomEvent("aui:sort-change", { bubbles: !0, detail: { key: this.#i, dir: this.#s } })), this.#E();
2861
+ this.#a = 1, this.dispatchEvent(new CustomEvent("aui:sort-change", { bubbles: !0, detail: { key: this.#i, dir: this.#s } })), this.#x();
2832
2862
  }
2833
2863
  // ── Selection ──────────────────────────────────────────────
2834
- #A(t) {
2864
+ #y(t) {
2835
2865
  return t.id != null ? String(t.id) : JSON.stringify(t);
2836
2866
  }
2837
- #x(t) {
2838
- this.#r.has(t) ? this.#r.delete(t) : this.#r.add(t), this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#E();
2867
+ #E(t) {
2868
+ this.#r.has(t) ? this.#r.delete(t) : this.#r.add(t), this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#x();
2839
2869
  }
2840
- #y() {
2841
- const t = this.#k(this.#w()), e = t.length > 0 && t.every((i) => this.#r.has(this.#A(i)));
2870
+ #g() {
2871
+ const t = this.#C(this.#w()), e = t.length > 0 && t.every((i) => this.#r.has(this.#y(i)));
2842
2872
  for (const i of t) {
2843
- const s = this.#A(i);
2873
+ const s = this.#y(i);
2844
2874
  e ? this.#r.delete(s) : this.#r.add(s);
2845
2875
  }
2846
- this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#E();
2876
+ this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#x();
2847
2877
  }
2848
2878
  // ── Derived data ───────────────────────────────────────────
2849
- get #C() {
2879
+ get #k() {
2850
2880
  return parseInt(this.paginate, 10) || 0;
2851
2881
  }
2852
2882
  #w() {
@@ -2861,75 +2891,83 @@ class te extends d {
2861
2891
  if (this.#i && this.#s !== "none") {
2862
2892
  const i = this.#e.find((a) => a.key === this.#i)?.type || "string", s = this.#s === "desc" ? -1 : 1, n = this.#i;
2863
2893
  t.sort((a, r) => {
2864
- const o = a[n], l = r[n];
2865
- return o == null && l == null ? 0 : o == null ? 1 : l == null ? -1 : i === "number" ? (Number(o) - Number(l)) * s : i === "date" ? (new Date(String(o)).getTime() - new Date(String(l)).getTime()) * s : String(o).localeCompare(String(l)) * s;
2894
+ const h = a[n], l = r[n];
2895
+ return h == null && l == null ? 0 : h == null ? 1 : l == null ? -1 : i === "number" ? (Number(h) - Number(l)) * s : i === "date" ? (new Date(String(h)).getTime() - new Date(String(l)).getTime()) * s : String(h).localeCompare(String(l)) * s;
2866
2896
  });
2867
2897
  }
2868
2898
  return t;
2869
2899
  }
2870
- #k(t) {
2871
- const e = this.#C;
2900
+ #C(t) {
2901
+ const e = this.#k;
2872
2902
  if (e <= 0) return t;
2873
2903
  const i = (this.#a - 1) * e;
2874
2904
  return t.slice(i, i + e);
2875
2905
  }
2876
2906
  // ── Render (updates innerHTML of stable containers) ────────
2877
- #E() {
2878
- if (!this.#h || !this.#l || !this.#d) return;
2879
- const t = this.#w(), e = this.#k(t);
2907
+ #x() {
2908
+ if (!this.#o || !this.#l || !this.#d) return;
2909
+ const t = this.#w(), e = this.#C(t);
2880
2910
  this.#l.innerHTML = "";
2881
2911
  const i = document.createElement("aui-table-row");
2882
2912
  if (this.selectable) {
2883
- const s = document.createElement("aui-table-header"), n = e.length > 0 && e.every((r) => this.#r.has(this.#A(r))), a = document.createElement("aui-checkbox");
2913
+ const s = document.createElement("aui-table-header"), n = e.length > 0 && e.every((r) => this.#r.has(this.#y(r))), a = document.createElement("aui-checkbox");
2884
2914
  a.setAttribute("data-table-check", ""), a.setAttribute("data-row-id", "__all__"), n && a.setAttribute("checked", ""), s.appendChild(a), i.appendChild(s);
2885
2915
  }
2886
2916
  for (const s of this.#e) {
2887
2917
  const n = document.createElement("aui-table-header"), a = s.sortable || this.sortable;
2888
- n.textContent = s.label, s.align !== "start" && (n.style.justifyContent = s.align), a && (n.setAttribute("data-table-sortable", ""), n.dataset.key = s.key, n.style.cursor = "pointer", this.#i === s.key && this.#s !== "none" && n.setAttribute("data-table-sort", this.#s)), i.appendChild(n);
2918
+ if (s.align !== "start" && (n.style.justifyContent = s.align), a) {
2919
+ n.setAttribute("data-table-sortable", ""), n.dataset.key = s.key, n.style.cursor = "pointer";
2920
+ const r = document.createElement("span");
2921
+ r.textContent = s.label, n.appendChild(r);
2922
+ const h = document.createElement("aui-icon");
2923
+ h.setAttribute("size", "xs"), h.setAttribute("data-table-sort-icon", ""), this.#i === s.key && this.#s !== "none" ? (n.setAttribute("data-table-sort", this.#s), h.setAttribute("name", this.#s === "asc" ? "caret-up" : "caret-down")) : (h.setAttribute("name", "caret-up"), h.style.opacity = "0.3"), n.appendChild(h);
2924
+ } else
2925
+ n.textContent = s.label;
2926
+ i.appendChild(n);
2889
2927
  }
2890
2928
  this.#l.appendChild(i), this.#d.innerHTML = "";
2891
2929
  for (const s of e) {
2892
- const n = document.createElement("aui-table-row"), a = this.#A(s), r = this.#r.has(a);
2930
+ const n = document.createElement("aui-table-row"), a = this.#y(s), r = this.#r.has(a);
2893
2931
  if (r && n.setAttribute("data-table-selected", ""), this.selectable) {
2894
- const o = document.createElement("aui-table-cell"), l = document.createElement("aui-checkbox");
2895
- l.setAttribute("data-table-check", ""), l.setAttribute("data-row-id", a), r && l.setAttribute("checked", ""), o.appendChild(l), n.appendChild(o);
2932
+ const h = document.createElement("aui-table-cell"), l = document.createElement("aui-checkbox");
2933
+ l.setAttribute("data-table-check", ""), l.setAttribute("data-row-id", a), r && l.setAttribute("checked", ""), h.appendChild(l), n.appendChild(h);
2896
2934
  }
2897
- for (const o of this.#e) {
2898
- const l = document.createElement("aui-table-cell"), u = s[o.key];
2899
- l.textContent = u != null ? String(u) : "", o.align !== "start" && (l.style.justifyContent = o.align), n.appendChild(l);
2935
+ for (const h of this.#e) {
2936
+ const l = document.createElement("aui-table-cell"), c = s[h.key];
2937
+ l.textContent = c != null ? String(c) : "", h.align !== "start" && (l.style.justifyContent = h.align), n.appendChild(l);
2900
2938
  }
2901
2939
  this.#d.appendChild(n);
2902
2940
  }
2903
2941
  if (this.#u) {
2904
2942
  this.#u.innerHTML = "";
2905
- const s = this.#C, n = t.length, a = Math.max(1, Math.ceil(n / s));
2943
+ const s = this.#k, n = t.length, a = Math.max(1, Math.ceil(n / s));
2906
2944
  this.#a > a && (this.#a = a);
2907
- const r = n === 0 ? 0 : (this.#a - 1) * s + 1, o = Math.min(this.#a * s, n), l = document.createElement("span");
2908
- l.setAttribute("data-table-page-info", ""), l.textContent = `${r}–${o} of ${n}`, this.#u.appendChild(l);
2909
- const u = document.createElement("span");
2910
- u.setAttribute("data-table-page-controls", ""), u.style.cssText = "display:inline-flex;gap:0.25rem;align-items:center;";
2911
- const f = document.createElement("button");
2912
- f.setAttribute("data-table-page", String(this.#a - 1)), f.disabled = this.#a <= 1, f.textContent = "", f.style.cssText = "all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);color:var(--aui-ink-muted);", f.disabled && (f.style.opacity = "0.4"), u.appendChild(f);
2913
- for (let c = 1; c <= a; c++) {
2914
- const b = document.createElement("button");
2915
- b.setAttribute("data-table-page", String(c)), b.textContent = String(c), b.style.cssText = `all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);${c === this.#a ? "background:var(--aui-accent);color:white;" : "color:var(--aui-ink-muted);"}`, u.appendChild(b);
2945
+ const r = n === 0 ? 0 : (this.#a - 1) * s + 1, h = Math.min(this.#a * s, n), l = document.createElement("span");
2946
+ l.setAttribute("data-table-page-info", ""), l.textContent = `${r}–${h} of ${n}`, this.#u.appendChild(l);
2947
+ const c = document.createElement("span");
2948
+ c.setAttribute("data-table-page-controls", ""), c.style.cssText = "display:inline-flex;gap:0.25rem;align-items:center;";
2949
+ const u = document.createElement("aui-button");
2950
+ u.setAttribute("ghost", ""), u.setAttribute("icon-leading", "caret-left"), u.setAttribute("hide-label", ""), u.setAttribute("label", "Previous page"), u.setAttribute("data-table-page", String(this.#a - 1)), this.#a <= 1 && (u.setAttribute("disabled", ""), u.style.opacity = "0.4"), c.appendChild(u);
2951
+ for (let p = 1; p <= a; p++) {
2952
+ const m = document.createElement("aui-button");
2953
+ m.setAttribute("ghost", ""), m.setAttribute("data-table-page", String(p)), m.textContent = String(p), p === this.#a && m.setAttribute("data-table-page-current", ""), c.appendChild(m);
2916
2954
  }
2917
- const m = document.createElement("button");
2918
- m.setAttribute("data-table-page", String(this.#a + 1)), m.disabled = this.#a >= a, m.textContent = "", m.style.cssText = "all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);color:var(--aui-ink-muted);", m.disabled && (m.style.opacity = "0.4"), u.appendChild(m), this.#u.appendChild(u);
2955
+ const f = document.createElement("aui-button");
2956
+ f.setAttribute("ghost", ""), f.setAttribute("icon-leading", "caret-right"), f.setAttribute("hide-label", ""), f.setAttribute("label", "Next page"), f.setAttribute("data-table-page", String(this.#a + 1)), this.#a >= a && (f.setAttribute("disabled", ""), f.style.opacity = "0.4"), c.appendChild(f), this.#u.appendChild(c);
2919
2957
  }
2920
2958
  }
2921
2959
  }
2922
- class ee extends d {
2960
+ class ue extends d {
2923
2961
  }
2924
- class ie extends d {
2962
+ class pe extends d {
2925
2963
  }
2926
- class se extends d {
2964
+ class fe extends d {
2927
2965
  }
2928
- class ne extends d {
2966
+ class be extends d {
2929
2967
  }
2930
- class ae extends d {
2968
+ class me extends d {
2931
2969
  }
2932
- class re extends d {
2970
+ class ve extends d {
2933
2971
  activate() {
2934
2972
  this.setAttribute("role", "tree"), this.addEventListener("keydown", this.#t);
2935
2973
  }
@@ -2955,8 +2993,8 @@ class re extends d {
2955
2993
  t.key === "ArrowDown" ? s = i < e.length - 1 ? i + 1 : 0 : s = i > 0 ? i - 1 : e.length - 1, e[s].focus();
2956
2994
  };
2957
2995
  }
2958
- const st = '<aui-icon name="caret-right" size="sm"></aui-icon>';
2959
- class he extends d {
2996
+ const dt = '<aui-icon name="caret-right" size="sm"></aui-icon>';
2997
+ class ge extends d {
2960
2998
  static attributes = {
2961
2999
  expanded: { type: "boolean", default: !1 },
2962
3000
  selected: { type: "boolean", default: !1 },
@@ -2972,7 +3010,7 @@ class he extends d {
2972
3010
  if (this.setAttribute("role", "treeitem"), this.#e = this.querySelector(":scope > [data-label]"), this.#e)
2973
3011
  this.#i = this.querySelector(":scope > [data-label] > [data-caret]"), this.#t = this.querySelector(":scope > [data-children]");
2974
3012
  else {
2975
- this.#e = document.createElement("div"), this.#e.setAttribute("data-label", ""), this.#e.setAttribute("tabindex", "0"), this.#i = document.createElement("span"), this.#i.setAttribute("data-caret", ""), this.#i.innerHTML = st, this.#e.appendChild(this.#i);
3013
+ this.#e = document.createElement("div"), this.#e.setAttribute("data-label", ""), this.#e.setAttribute("tabindex", "0"), this.#i = document.createElement("span"), this.#i.setAttribute("data-caret", ""), this.#i.innerHTML = dt, this.#e.appendChild(this.#i);
2976
3014
  const i = this.querySelector(":scope > [data-trigger]");
2977
3015
  if (i)
2978
3016
  this.#e.appendChild(i);
@@ -3008,7 +3046,7 @@ class he extends d {
3008
3046
  this.disabled || (t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.#s()) : t.key === "ArrowRight" && this.expandable && !this.expanded ? (t.preventDefault(), this.expanded = !0) : t.key === "ArrowLeft" && this.expanded && (t.preventDefault(), this.expanded = !1));
3009
3047
  };
3010
3048
  }
3011
- class oe extends d {
3049
+ class Ae extends d {
3012
3050
  static attributes = {
3013
3051
  align: { type: "enum", values: ["end"], default: "" },
3014
3052
  scrollable: { type: "boolean", default: !1 },
@@ -3035,24 +3073,34 @@ class oe extends d {
3035
3073
  this.#i();
3036
3074
  }
3037
3075
  }
3038
- class le extends d {
3076
+ class ye extends d {
3039
3077
  activate() {
3040
3078
  }
3041
3079
  }
3042
- const nt = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', at = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
3043
- function rt(h, t) {
3044
- if (!h) return "";
3045
- const [e, i, s] = h.split("-").map(Number);
3046
- return !e || !i || !s ? h : t.replace("YYYY", String(e).padStart(4, "0")).replace("yyyy", String(e).padStart(4, "0")).replace("MM", String(i).padStart(2, "0")).replace("DD", String(s).padStart(2, "0")).replace("dd", String(s).padStart(2, "0"));
3080
+ const ct = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', ut = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
3081
+ function pt(o, t) {
3082
+ if (!o) return "";
3083
+ const [e, i, s] = o.split("-").map(Number);
3084
+ if (!e || !i || !s) return o;
3085
+ const n = new Date(e, i - 1, s);
3086
+ switch (t) {
3087
+ case "long":
3088
+ return n.toLocaleDateString(void 0, { year: "numeric", month: "long", day: "numeric" });
3089
+ case "medium":
3090
+ return n.toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric" });
3091
+ case "short":
3092
+ return n.toLocaleDateString(void 0, { year: "numeric", month: "2-digit", day: "2-digit" });
3093
+ }
3094
+ return t.replace("YYYY", String(e).padStart(4, "0")).replace("yyyy", String(e).padStart(4, "0")).replace("MM", String(i).padStart(2, "0")).replace("DD", String(s).padStart(2, "0")).replace("dd", String(s).padStart(2, "0"));
3047
3095
  }
3048
- class de extends d {
3096
+ class Ee extends d {
3049
3097
  static attributes = {
3050
3098
  value: { type: "string", default: "" },
3051
3099
  placeholder: { type: "string", default: "Select date" },
3052
3100
  min: { type: "string", default: "" },
3053
3101
  max: { type: "string", default: "" },
3054
3102
  disabled: { type: "boolean", default: !1 },
3055
- format: { type: "string", default: "YYYY-MM-DD" },
3103
+ format: { type: "string", default: "medium" },
3056
3104
  open: { type: "boolean", default: !1 }
3057
3105
  };
3058
3106
  // ── Internal references ────────────────────────────────────
@@ -3069,16 +3117,16 @@ class de extends d {
3069
3117
  const t = `cal-picker-${crypto.randomUUID().slice(0, 8)}`;
3070
3118
  this.#e = `--${t}`, this.#t = document.createElement("span"), this.#t.setAttribute("data-trigger", ""), this.#t.setAttribute("role", "combobox"), this.#t.setAttribute("aria-haspopup", "dialog"), this.#t.setAttribute("tabindex", "0"), this.#t.id = t, this.#i = document.createElement("span"), this.#i.setAttribute("data-label", ""), this.#t.appendChild(this.#i);
3071
3119
  const e = document.createElement("span");
3072
- e.setAttribute("data-icon", ""), e.innerHTML = nt, this.#t.appendChild(e), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = at, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "manual"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("aui-calendar"), this.#n.appendChild(this.#a), this.appendChild(this.#t), this.appendChild(this.#n), this.#t.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
3073
- this.disabled ? this.#t.setAttribute("tabindex", "-1") : this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled)), this.#o();
3120
+ e.setAttribute("data-icon", ""), e.innerHTML = ct, this.#t.appendChild(e), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = ut, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "manual"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("aui-calendar"), this.#n.appendChild(this.#a), this.appendChild(this.#t), this.appendChild(this.#n), this.#t.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
3121
+ this.disabled ? this.#t.setAttribute("tabindex", "-1") : this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled)), this.#h();
3074
3122
  }), this.addEffect(() => {
3075
3123
  this.min ? this.#a.setAttribute("min", this.min) : this.#a.removeAttribute("min"), this.max ? this.#a.setAttribute("max", this.max) : this.#a.removeAttribute("max");
3076
3124
  }), this.addEffect(() => {
3077
3125
  this.value ? this.#a.setAttribute("value", this.value) : this.#a.removeAttribute("value");
3078
- }), this.#t.addEventListener("click", this.#l), this.#t.addEventListener("keydown", this.#d), this.#a.addEventListener("change", this.#u), document.addEventListener("click", this.#p), document.addEventListener("keydown", this.#f);
3126
+ }), this.#t.addEventListener("click", this.#l), this.#t.addEventListener("keydown", this.#d), this.#a.addEventListener("change", this.#u), document.addEventListener("click", this.#c), document.addEventListener("keydown", this.#f);
3079
3127
  }
3080
3128
  dispose() {
3081
- this.#t?.removeEventListener("click", this.#l), this.#t?.removeEventListener("keydown", this.#d), this.#a?.removeEventListener("change", this.#u), document.removeEventListener("click", this.#p), document.removeEventListener("keydown", this.#f), this.#h();
3129
+ this.#t?.removeEventListener("click", this.#l), this.#t?.removeEventListener("keydown", this.#d), this.#a?.removeEventListener("change", this.#u), document.removeEventListener("click", this.#c), document.removeEventListener("keydown", this.#f), this.#o();
3082
3130
  }
3083
3131
  // ════════════════════════════════════════════════════════════
3084
3132
  // Popover control
@@ -3092,7 +3140,7 @@ class de extends d {
3092
3140
  this.open = !0, this.#a?.focus();
3093
3141
  }
3094
3142
  }
3095
- #h() {
3143
+ #o() {
3096
3144
  if (this.#n) {
3097
3145
  try {
3098
3146
  this.#n.hidePopover();
@@ -3104,22 +3152,22 @@ class de extends d {
3104
3152
  // ════════════════════════════════════════════════════════════
3105
3153
  // Display
3106
3154
  // ════════════════════════════════════════════════════════════
3107
- #o() {
3108
- this.#i && (this.value ? (this.#i.textContent = rt(this.value, this.format), this.#i.removeAttribute("data-placeholder")) : (this.#i.textContent = this.placeholder, this.#i.setAttribute("data-placeholder", "")));
3155
+ #h() {
3156
+ this.#i && (this.value ? (this.#i.textContent = pt(this.value, this.format), this.#i.removeAttribute("data-placeholder")) : (this.#i.textContent = this.placeholder, this.#i.setAttribute("data-placeholder", "")));
3109
3157
  }
3110
3158
  // ════════════════════════════════════════════════════════════
3111
3159
  // Event handlers
3112
3160
  // ════════════════════════════════════════════════════════════
3113
3161
  #l = () => {
3114
- this.disabled || (this.open ? this.#h() : this.#r());
3162
+ this.disabled || (this.open ? this.#o() : this.#r());
3115
3163
  };
3116
3164
  #d = (t) => {
3117
- t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#r()) : t.key === "Escape" && this.#h();
3165
+ t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#r()) : t.key === "Escape" && this.#o();
3118
3166
  };
3119
3167
  #u = (t) => {
3120
3168
  t.stopPropagation();
3121
3169
  const e = t.detail?.value ?? "";
3122
- this.value = e, this.#o(), this.#h(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("change", {
3170
+ this.value = e, this.#h(), this.#o(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("change", {
3123
3171
  bubbles: !0,
3124
3172
  composed: !0,
3125
3173
  detail: {
@@ -3128,20 +3176,20 @@ class de extends d {
3128
3176
  }
3129
3177
  }));
3130
3178
  };
3131
- #p = (t) => {
3132
- this.open && !this.contains(t.target) && this.#h();
3179
+ #c = (t) => {
3180
+ this.open && !this.contains(t.target) && this.#o();
3133
3181
  };
3134
3182
  #f = (t) => {
3135
- t.key === "Escape" && this.open && (this.#h(), this.#t?.focus());
3183
+ t.key === "Escape" && this.open && (this.#o(), this.#t?.focus());
3136
3184
  };
3137
3185
  }
3138
- const ht = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', ot = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
3139
- function I(h) {
3140
- if (!h) return "";
3141
- const [t, e, i] = h.split("-").map(Number);
3142
- return !t || !e || !i ? h : `${["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][e - 1]} ${i}`;
3186
+ const ft = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>', bt = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
3187
+ function O(o) {
3188
+ if (!o) return "";
3189
+ const [t, e, i] = o.split("-").map(Number);
3190
+ return !t || !e || !i ? o : `${["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][e - 1]} ${i}`;
3143
3191
  }
3144
- class ue extends d {
3192
+ class xe extends d {
3145
3193
  static attributes = {
3146
3194
  start: { type: "string", default: "" },
3147
3195
  end: { type: "string", default: "" },
@@ -3165,16 +3213,16 @@ class ue extends d {
3165
3213
  const t = `cal-range-${crypto.randomUUID().slice(0, 8)}`;
3166
3214
  this.#e = `--${t}`, this.#t = document.createElement("span"), this.#t.setAttribute("data-trigger", ""), this.#t.setAttribute("role", "combobox"), this.#t.setAttribute("aria-haspopup", "dialog"), this.#t.setAttribute("tabindex", "0"), this.#t.id = t, this.#i = document.createElement("span"), this.#i.setAttribute("data-label", ""), this.#t.appendChild(this.#i);
3167
3215
  const e = document.createElement("span");
3168
- e.setAttribute("data-icon", ""), e.innerHTML = ht, this.#t.appendChild(e), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = ot, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "manual"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("aui-calendar"), this.#a.setAttribute("range", ""), this.#n.appendChild(this.#a), this.appendChild(this.#t), this.appendChild(this.#n), this.#t.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
3169
- this.disabled ? this.#t.setAttribute("tabindex", "-1") : this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled)), this.#o();
3216
+ e.setAttribute("data-icon", ""), e.innerHTML = ft, this.#t.appendChild(e), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = bt, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "manual"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("aui-calendar"), this.#a.setAttribute("range", ""), this.#n.appendChild(this.#a), this.appendChild(this.#t), this.appendChild(this.#n), this.#t.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
3217
+ this.disabled ? this.#t.setAttribute("tabindex", "-1") : this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled)), this.#h();
3170
3218
  }), this.addEffect(() => {
3171
3219
  this.min ? this.#a.setAttribute("min", this.min) : this.#a.removeAttribute("min"), this.max ? this.#a.setAttribute("max", this.max) : this.#a.removeAttribute("max");
3172
3220
  }), this.addEffect(() => {
3173
3221
  this.start ? this.#a.setAttribute("start", this.start) : this.#a.removeAttribute("start"), this.end ? this.#a.setAttribute("end", this.end) : this.#a.removeAttribute("end");
3174
- }), this.#t.addEventListener("click", this.#l), this.#t.addEventListener("keydown", this.#d), this.#a.addEventListener("aui:range-select", this.#u), document.addEventListener("click", this.#p), document.addEventListener("keydown", this.#f);
3222
+ }), this.#t.addEventListener("click", this.#l), this.#t.addEventListener("keydown", this.#d), this.#a.addEventListener("aui:range-select", this.#u), document.addEventListener("click", this.#c), document.addEventListener("keydown", this.#f);
3175
3223
  }
3176
3224
  dispose() {
3177
- this.#t?.removeEventListener("click", this.#l), this.#t?.removeEventListener("keydown", this.#d), this.#a?.removeEventListener("aui:range-select", this.#u), document.removeEventListener("click", this.#p), document.removeEventListener("keydown", this.#f), this.#h();
3225
+ this.#t?.removeEventListener("click", this.#l), this.#t?.removeEventListener("keydown", this.#d), this.#a?.removeEventListener("aui:range-select", this.#u), document.removeEventListener("click", this.#c), document.removeEventListener("keydown", this.#f), this.#o();
3178
3226
  }
3179
3227
  // ════════════════════════════════════════════════════════════
3180
3228
  // Popover control
@@ -3188,7 +3236,7 @@ class ue extends d {
3188
3236
  this.open = !0, this.#a?.focus();
3189
3237
  }
3190
3238
  }
3191
- #h() {
3239
+ #o() {
3192
3240
  if (this.#n) {
3193
3241
  try {
3194
3242
  this.#n.hidePopover();
@@ -3200,54 +3248,54 @@ class ue extends d {
3200
3248
  // ════════════════════════════════════════════════════════════
3201
3249
  // Display
3202
3250
  // ════════════════════════════════════════════════════════════
3203
- #o() {
3204
- this.#i && (this.start && this.end ? (this.#i.textContent = `${I(this.start)} — ${I(this.end)}`, this.#i.removeAttribute("data-placeholder")) : this.start ? (this.#i.textContent = `${I(this.start)} — ...`, this.#i.removeAttribute("data-placeholder")) : (this.#i.textContent = this.placeholder, this.#i.setAttribute("data-placeholder", "")));
3251
+ #h() {
3252
+ this.#i && (this.start && this.end ? (this.#i.textContent = `${O(this.start)} — ${O(this.end)}`, this.#i.removeAttribute("data-placeholder")) : this.start ? (this.#i.textContent = `${O(this.start)} — ...`, this.#i.removeAttribute("data-placeholder")) : (this.#i.textContent = this.placeholder, this.#i.setAttribute("data-placeholder", "")));
3205
3253
  }
3206
3254
  // ════════════════════════════════════════════════════════════
3207
3255
  // Event handlers
3208
3256
  // ════════════════════════════════════════════════════════════
3209
3257
  #l = () => {
3210
- this.disabled || (this.open ? this.#h() : this.#r());
3258
+ this.disabled || (this.open ? this.#o() : this.#r());
3211
3259
  };
3212
3260
  #d = (t) => {
3213
- t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#r()) : t.key === "Escape" && this.#h();
3261
+ t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#r()) : t.key === "Escape" && this.#o();
3214
3262
  };
3215
3263
  #u = (t) => {
3216
3264
  t.stopPropagation();
3217
3265
  const e = t.detail?.start ?? "", i = t.detail?.end ?? "";
3218
- this.start = e, this.end = i, this.#o(), this.#h(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("change", {
3266
+ this.start = e, this.end = i, this.#h(), this.#o(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("change", {
3219
3267
  bubbles: !0,
3220
3268
  composed: !0,
3221
3269
  detail: { start: e, end: i }
3222
3270
  }));
3223
3271
  };
3224
- #p = (t) => {
3225
- this.open && !this.contains(t.target) && this.#h();
3272
+ #c = (t) => {
3273
+ this.open && !this.contains(t.target) && this.#o();
3226
3274
  };
3227
3275
  #f = (t) => {
3228
- t.key === "Escape" && this.open && (this.#h(), this.#t?.focus());
3276
+ t.key === "Escape" && this.open && (this.#o(), this.#t?.focus());
3229
3277
  };
3230
3278
  }
3231
- class ce extends d {
3279
+ class we extends d {
3232
3280
  activate() {
3233
3281
  this.setAttribute("role", "application");
3234
3282
  }
3235
3283
  }
3236
- class pe extends d {
3284
+ class ke extends d {
3237
3285
  activate() {
3238
3286
  this.setAttribute("role", "main");
3239
3287
  }
3240
3288
  }
3241
- class fe extends d {
3289
+ class Ce extends d {
3242
3290
  }
3243
- class be extends d {
3291
+ class Le extends d {
3244
3292
  activate() {
3245
3293
  this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Breadcrumb");
3246
3294
  }
3247
3295
  }
3248
- const B = document.createElement("template");
3249
- B.innerHTML = "<aui-sidebar-resize-handle></aui-sidebar-resize-handle>";
3250
- class me extends d {
3296
+ const j = document.createElement("template");
3297
+ j.innerHTML = "<aui-sidebar-resize-handle></aui-sidebar-resize-handle>";
3298
+ class Se extends d {
3251
3299
  static attributes = {
3252
3300
  width: { type: "string", default: "240" },
3253
3301
  "min-width": { type: "string", default: "56" },
@@ -3257,7 +3305,7 @@ class me extends d {
3257
3305
  side: { type: "enum", values: ["left", "right"], default: "left" },
3258
3306
  disabled: { type: "boolean", default: !1 }
3259
3307
  };
3260
- #e = V(240);
3308
+ #e = J(240);
3261
3309
  #t = 56;
3262
3310
  #i = 480;
3263
3311
  // Resize state
@@ -3265,13 +3313,13 @@ class me extends d {
3265
3313
  #n = !1;
3266
3314
  #a = 0;
3267
3315
  #r = 0;
3268
- #h = -1;
3316
+ #o = -1;
3269
3317
  activate() {
3270
3318
  this.setAttribute("role", "complementary");
3271
3319
  const t = parseInt(this.getAttribute("width") ?? "", 10);
3272
3320
  t > 0 && (this.#e.value = t), this.#t = parseInt(this.getAttribute("min-width") ?? "", 10) || 56, this.#i = parseInt(this.getAttribute("max-width") ?? "", 10) || 480;
3273
- const e = B.content.cloneNode(!0);
3274
- this.#s = e.querySelector("aui-sidebar-resize-handle"), this.appendChild(e), this.#s.addEventListener("pointerdown", this.#o), this.addEffect(() => {
3321
+ const e = j.content.cloneNode(!0);
3322
+ this.#s = e.querySelector("aui-sidebar-resize-handle"), this.appendChild(e), this.#s.addEventListener("pointerdown", this.#h), this.addEffect(() => {
3275
3323
  const i = this.#e.value;
3276
3324
  this.style.setProperty("--aui-sidebar-width", `${i}px`);
3277
3325
  });
@@ -3293,8 +3341,8 @@ class me extends d {
3293
3341
  this.collapsed ? this.expand() : this.collapse();
3294
3342
  }
3295
3343
  // ── Resize ──
3296
- #o = (t) => {
3297
- this.disabled || this.collapsed || (t.preventDefault(), this.#n = !0, this.#a = t.clientX, this.#r = P(() => this.#e.value), this.#h = t.pointerId, this.setAttribute("data-sidebar-resizing", ""), this.#s.setPointerCapture(t.pointerId), document.documentElement.setAttribute("data-sidebar-resizing", ""), this.#s.addEventListener("pointermove", this.#l), this.#s.addEventListener("pointerup", this.#d), this.#s.addEventListener("pointercancel", this.#d));
3344
+ #h = (t) => {
3345
+ this.disabled || this.collapsed || (t.preventDefault(), this.#n = !0, this.#a = t.clientX, this.#r = N(() => this.#e.value), this.#o = t.pointerId, this.setAttribute("data-sidebar-resizing", ""), this.#s.setPointerCapture(t.pointerId), document.documentElement.setAttribute("data-sidebar-resizing", ""), this.#s.addEventListener("pointermove", this.#l), this.#s.addEventListener("pointerup", this.#d), this.#s.addEventListener("pointercancel", this.#d));
3298
3346
  };
3299
3347
  #l = (t) => {
3300
3348
  if (!this.#n) return;
@@ -3302,32 +3350,32 @@ class me extends d {
3302
3350
  this.#e.value = s;
3303
3351
  };
3304
3352
  #d = () => {
3305
- this.#n && (this.#n = !1, this.removeAttribute("data-sidebar-resizing"), document.documentElement.removeAttribute("data-sidebar-resizing"), this.#h >= 0 && this.#s && this.#s.releasePointerCapture(this.#h), this.#h = -1, this.#s?.removeEventListener("pointermove", this.#l), this.#s?.removeEventListener("pointerup", this.#d), this.#s?.removeEventListener("pointercancel", this.#d), this.dispatchEvent(new CustomEvent("aui:sidebar-resize", {
3353
+ this.#n && (this.#n = !1, this.removeAttribute("data-sidebar-resizing"), document.documentElement.removeAttribute("data-sidebar-resizing"), this.#o >= 0 && this.#s && this.#s.releasePointerCapture(this.#o), this.#o = -1, this.#s?.removeEventListener("pointermove", this.#l), this.#s?.removeEventListener("pointerup", this.#d), this.#s?.removeEventListener("pointercancel", this.#d), this.dispatchEvent(new CustomEvent("aui:sidebar-resize", {
3306
3354
  bubbles: !0,
3307
- detail: { width: P(() => this.#e.value) }
3355
+ detail: { width: N(() => this.#e.value) }
3308
3356
  })));
3309
3357
  };
3310
3358
  // ── Cleanup ──
3311
3359
  dispose() {
3312
- this.#s?.removeEventListener("pointerdown", this.#o), this.#s?.remove(), this.#s = null, document.documentElement.removeAttribute("data-sidebar-resizing");
3360
+ this.#s?.removeEventListener("pointerdown", this.#h), this.#s?.remove(), this.#s = null, document.documentElement.removeAttribute("data-sidebar-resizing");
3313
3361
  }
3314
3362
  }
3315
- class ve extends d {
3363
+ class Me extends d {
3316
3364
  activate() {
3317
3365
  this.setAttribute("role", "none");
3318
3366
  }
3319
3367
  }
3320
- class ge extends d {
3368
+ class De extends d {
3321
3369
  activate() {
3322
3370
  this.setAttribute("role", "none");
3323
3371
  }
3324
3372
  }
3325
- class ye extends d {
3373
+ class Ie extends d {
3326
3374
  activate() {
3327
3375
  this.setAttribute("role", "none");
3328
3376
  }
3329
3377
  }
3330
- class Ae extends d {
3378
+ class Te extends d {
3331
3379
  static attributes = {
3332
3380
  value: { type: "string", default: "0" }
3333
3381
  };
@@ -3338,7 +3386,7 @@ class Ae extends d {
3338
3386
  });
3339
3387
  }
3340
3388
  }
3341
- class Ee extends d {
3389
+ class Pe extends d {
3342
3390
  static attributes = {
3343
3391
  language: { type: "string", default: "" },
3344
3392
  filename: { type: "string", default: "" },
@@ -3362,25 +3410,16 @@ class Ee extends d {
3362
3410
  if (e && !this.#e) {
3363
3411
  this.#e = document.createElement("div"), this.#e.setAttribute("data-code-header", ""), this.#t = document.createElement("span"), this.#t.setAttribute("data-code-label", ""), this.#e.appendChild(this.#t);
3364
3412
  const i = document.createElement("span");
3365
- i.style.flex = "1", this.#e.appendChild(i), this.#i = document.createElement("button"), this.#i.setAttribute("data-code-copy", ""), this.#i.textContent = "Copy", this.#i.addEventListener("click", this.#n), this.#e.appendChild(this.#i), this.insertBefore(this.#e, this.#s);
3413
+ i.style.flex = "1", this.#e.appendChild(i), this.#i = document.createElement("aui-copy-button"), this.#i.setAttribute("data-code-copy", ""), this.#i.setAttribute("size", "sm"), this.#e.appendChild(this.#i), this.insertBefore(this.#e, this.#s);
3366
3414
  }
3367
- this.#t && (this.#t.textContent = t), this.#i && (this.#i.style.display = this.copyable ? "" : "none"), !e && this.#e && (this.#e.remove(), this.#e = null, this.#t = null, this.#i = null);
3415
+ this.#t && (this.#t.textContent = t), this.#i && (this.#i.style.display = this.copyable ? "" : "none", this.copyable && this.#s && this.#i.setAttribute("value", this.#s.textContent ?? "")), !e && this.#e && (this.#e.remove(), this.#e = null, this.#t = null, this.#i = null);
3368
3416
  }), this.addEffect(() => {
3369
3417
  const t = this["max-height"];
3370
3418
  t && this.#s ? (this.#s.style.maxHeight = t, this.#s.style.overflow = "auto") : this.#s && (this.#s.style.removeProperty("max-height"), this.#s.style.removeProperty("overflow"));
3371
3419
  });
3372
3420
  }
3373
- #n = async () => {
3374
- const t = this.#s?.textContent ?? "";
3375
- try {
3376
- await navigator.clipboard.writeText(t), this.#i && (this.#i.textContent = "Copied!", setTimeout(() => {
3377
- this.#i && (this.#i.textContent = "Copy");
3378
- }, 1500));
3379
- } catch {
3380
- }
3381
- };
3382
3421
  }
3383
- class xe extends d {
3422
+ class qe extends d {
3384
3423
  static attributes = {
3385
3424
  values: { type: "string", default: "" },
3386
3425
  color: { type: "string", default: "1" },
@@ -3402,13 +3441,13 @@ class xe extends d {
3402
3441
  let a = -1;
3403
3442
  n === "last" ? a = e.length - 1 : n === "max" && (a = e.indexOf(i)), this.innerHTML = "";
3404
3443
  for (let r = 0; r < e.length; r++) {
3405
- const o = i > 0 ? e[r] / i * 100 : 0, l = document.createElement("div");
3406
- l.setAttribute("data-sparkline-bar", ""), l.style.height = `${o}%`, l.style.background = s, r !== a && n !== "none" && (l.style.opacity = "0.4"), this.appendChild(l);
3444
+ const h = i > 0 ? e[r] / i * 100 : 0, l = document.createElement("div");
3445
+ l.setAttribute("data-sparkline-bar", ""), l.style.height = `${h}%`, l.style.background = s, r !== a && n !== "none" && (l.style.opacity = "0.4"), this.appendChild(l);
3407
3446
  }
3408
3447
  });
3409
3448
  }
3410
3449
  }
3411
- class we extends d {
3450
+ class Oe extends d {
3412
3451
  static attributes = {
3413
3452
  removable: { type: "boolean", default: !1 }
3414
3453
  };
@@ -3421,13 +3460,13 @@ class we extends d {
3421
3460
  }
3422
3461
  #t() {
3423
3462
  if (!this.removable) return;
3424
- const t = document.createElement("button");
3425
- t.setAttribute("data-chip-remove", ""), t.setAttribute("aria-label", "Remove"), t.innerHTML = '<aui-icon name="x" size="xs"></aui-icon>', t.addEventListener("click", () => {
3463
+ const t = document.createElement("aui-button");
3464
+ t.setAttribute("ghost", ""), t.setAttribute("hide-label", ""), t.setAttribute("label", "Remove"), t.setAttribute("icon-leading", "x"), t.setAttribute("size", "sm"), t.setAttribute("data-chip-remove", ""), t.addEventListener("click", () => {
3426
3465
  this.dispatchEvent(new CustomEvent("remove", { bubbles: !0 })), this.remove();
3427
3466
  }), this.append(t), this.#e = t;
3428
3467
  }
3429
3468
  }
3430
- class ke extends d {
3469
+ class Fe extends d {
3431
3470
  static attributes = {
3432
3471
  summary: { type: "string", default: "" },
3433
3472
  open: { type: "boolean", default: !1 }
@@ -3452,10 +3491,10 @@ class ke extends d {
3452
3491
  );
3453
3492
  }
3454
3493
  #i() {
3455
- const t = Array.from(this.childNodes), e = document.createElement("button");
3456
- e.setAttribute("data-disclosure-trigger", ""), e.setAttribute("aria-expanded", String(this.hasAttribute("open"))), e.innerHTML = `
3494
+ const t = Array.from(this.childNodes), e = document.createElement("aui-button");
3495
+ e.setAttribute("ghost", ""), e.setAttribute("width", "full"), e.setAttribute("data-disclosure-trigger", ""), e.setAttribute("aria-expanded", String(this.hasAttribute("open"))), e.innerHTML = `
3457
3496
  <span data-disclosure-label>${this.getAttribute("summary") || ""}</span>
3458
- <aui-icon name="chevron-down" size="xs" data-disclosure-chevron></aui-icon>
3497
+ <aui-icon name="caret-down" size="xs" data-disclosure-chevron></aui-icon>
3459
3498
  `, e.addEventListener("click", this.#t), this.#e = e;
3460
3499
  const i = document.createElement("div");
3461
3500
  i.setAttribute("data-disclosure-inner", "");
@@ -3465,7 +3504,7 @@ class ke extends d {
3465
3504
  s.setAttribute("data-disclosure-content", ""), s.appendChild(i), this.appendChild(e), this.appendChild(s);
3466
3505
  }
3467
3506
  }
3468
- class Ce extends d {
3507
+ class Re extends d {
3469
3508
  static attributes = {
3470
3509
  max: { type: "string", default: "" },
3471
3510
  size: { type: "string", default: "" }
@@ -3495,7 +3534,7 @@ class Ce extends d {
3495
3534
  e.setAttribute("size", this.size);
3496
3535
  }
3497
3536
  }
3498
- class Le extends d {
3537
+ class Ne extends d {
3499
3538
  static attributes = {
3500
3539
  value: { type: "string", default: "0" },
3501
3540
  label: { type: "string", default: "" }
@@ -3531,7 +3570,7 @@ class Le extends d {
3531
3570
  this.#i.textContent = t, this.#i.style.display = t ? "" : "none";
3532
3571
  }
3533
3572
  }
3534
- class Se extends d {
3573
+ class He extends d {
3535
3574
  static attributes = {
3536
3575
  exclusive: { type: "boolean", default: !1 }
3537
3576
  };
@@ -3573,7 +3612,7 @@ class Se extends d {
3573
3612
  }).observe(this, { childList: !0 });
3574
3613
  }
3575
3614
  }
3576
- class De extends d {
3615
+ class ze extends d {
3577
3616
  static attributes = {
3578
3617
  label: { type: "string", default: "" },
3579
3618
  max: { type: "string", default: "" }
@@ -3641,132 +3680,257 @@ class De extends d {
3641
3680
  return t ? this.#e().length >= t : !1;
3642
3681
  }
3643
3682
  }
3644
- class Ie extends d {
3683
+ function X(o, t, e) {
3684
+ const i = e * Math.PI / 180;
3685
+ return [o, t * Math.cos(i), t * Math.sin(i)];
3686
+ }
3687
+ function mt(o, t, e) {
3688
+ const i = Math.sqrt(t * t + e * e);
3689
+ let s = Math.atan2(e, t) * 180 / Math.PI;
3690
+ return s < 0 && (s += 360), [o, i, s];
3691
+ }
3692
+ function W(o, t, e) {
3693
+ const i = o + 0.3963377774 * t + 0.2158037573 * e, s = o - 0.1055613458 * t - 0.0638541728 * e, n = o - 0.0894841775 * t - 1.291485548 * e, a = i * i * i, r = s * s * s, h = n * n * n;
3694
+ return [
3695
+ 4.0767416621 * a - 3.3077115913 * r + 0.2309699292 * h,
3696
+ -1.2684380046 * a + 2.6097574011 * r - 0.3413193965 * h,
3697
+ -0.0041960863 * a - 0.7034186147 * r + 1.707614701 * h
3698
+ ];
3699
+ }
3700
+ function vt(o, t, e) {
3701
+ const i = 0.4122214708 * o + 0.5363325363 * t + 0.0514459929 * e, s = 0.2119034982 * o + 0.6806995451 * t + 0.1073969566 * e, n = 0.0883024619 * o + 0.2817188376 * t + 0.6299787005 * e, a = Math.cbrt(i), r = Math.cbrt(s), h = Math.cbrt(n);
3702
+ return [
3703
+ 0.2104542553 * a + 0.793617785 * r - 0.0040720468 * h,
3704
+ 1.9779984951 * a - 2.428592205 * r + 0.4505937099 * h,
3705
+ 0.0259040371 * a + 0.7827717662 * r - 0.808675766 * h
3706
+ ];
3707
+ }
3708
+ function S(o) {
3709
+ return o <= 31308e-7 ? 12.92 * o : 1.055 * Math.pow(o, 1 / 2.4) - 0.055;
3710
+ }
3711
+ function F(o) {
3712
+ return o <= 0.04045 ? o / 12.92 : Math.pow((o + 0.055) / 1.055, 2.4);
3713
+ }
3714
+ function T(o) {
3715
+ return Math.max(0, Math.min(1, o));
3716
+ }
3717
+ function k(o, t, e, i = 1) {
3718
+ const [s, n, a] = X(o, t, e), [r, h, l] = W(s, n, a), c = T(S(r)), u = T(S(h)), f = T(S(l)), p = (v) => Math.round(v * 255).toString(16).padStart(2, "0");
3719
+ let m = `#${p(c)}${p(u)}${p(f)}`;
3720
+ return i < 1 && (m += p(T(i))), m;
3721
+ }
3722
+ function gt(o) {
3723
+ let t = 0, e = 0, i = 0, s = 1;
3724
+ o = o.replace(/^#/, ""), o.length === 3 || o.length === 4 ? (t = parseInt(o[0] + o[0], 16) / 255, e = parseInt(o[1] + o[1], 16) / 255, i = parseInt(o[2] + o[2], 16) / 255, o.length === 4 && (s = parseInt(o[3] + o[3], 16) / 255)) : (o.length === 6 || o.length === 8) && (t = parseInt(o.slice(0, 2), 16) / 255, e = parseInt(o.slice(2, 4), 16) / 255, i = parseInt(o.slice(4, 6), 16) / 255, o.length === 8 && (s = parseInt(o.slice(6, 8), 16) / 255));
3725
+ const n = F(t), a = F(e), r = F(i), [h, l, c] = vt(n, a, r), [u, f, p] = mt(h, l, c);
3726
+ return {
3727
+ l: Math.round(u * 1e3) / 1e3,
3728
+ c: Math.round(f * 1e3) / 1e3,
3729
+ h: Math.round(p * 10) / 10,
3730
+ a: Math.round(s * 100) / 100
3731
+ };
3732
+ }
3733
+ function B(o, t, e, i) {
3734
+ const s = Math.round(o * 1e3) / 1e3, n = Math.round(t * 1e3) / 1e3, a = Math.round(e * 10) / 10;
3735
+ return i !== void 0 && i < 1 ? `oklch(${s} ${n} ${a} / ${Math.round(i * 100) / 100})` : `oklch(${s} ${n} ${a})`;
3736
+ }
3737
+ function At(o) {
3738
+ const t = o.match(/oklch\(\s*([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+))?\s*\)/);
3739
+ return t ? {
3740
+ l: parseFloat(t[1]),
3741
+ c: parseFloat(t[2]),
3742
+ h: parseFloat(t[3]),
3743
+ a: t[4] !== void 0 ? parseFloat(t[4]) : 1
3744
+ } : null;
3745
+ }
3746
+ function V(o, t, e) {
3747
+ const [i, s, n] = X(o, t, e), [a, r, h] = W(i, s, n), l = S(a), c = S(r), u = S(h), f = 1e-3;
3748
+ return l >= -f && l <= 1 + f && c >= -f && c <= 1 + f && u >= -f && u <= 1 + f;
3749
+ }
3750
+ class L extends d {
3645
3751
  static attributes = {
3646
3752
  hue: { type: "string", default: "0" },
3647
- saturation: { type: "string", default: "100" },
3648
- lightness: { type: "string", default: "50" },
3753
+ chroma: { type: "string", default: "0.15" },
3754
+ lightness: { type: "string", default: "0.65" },
3649
3755
  disabled: { type: "boolean", default: !1 }
3650
3756
  };
3651
3757
  #e = null;
3652
3758
  #t = null;
3759
+ static MAX_CHROMA = 0.4;
3653
3760
  activate() {
3654
- this.querySelector("[data-color-area-gradient]") ? this.#e = this.querySelector("[data-color-area-gradient]") : (this.#e = document.createElement("div"), this.#e.setAttribute("data-color-area-gradient", ""), this.prepend(this.#e)), this.querySelector("[data-color-area-thumb]") ? this.#t = this.querySelector("[data-color-area-thumb]") : (this.#t = document.createElement("div"), this.#t.setAttribute("data-color-area-thumb", ""), this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("role", "slider"), this.#t.setAttribute("aria-label", "Color"), this.appendChild(this.#t)), this.addEffect(() => {
3655
- const t = this.#o(parseFloat(this.hue) || 0, 0, 360), e = this.#o(parseFloat(this.saturation) || 0, 0, 100), i = this.#o(parseFloat(this.lightness) || 0, 0, 100);
3656
- this.style.setProperty("--_hue", String(t)), this.style.setProperty("--_sat", String(e / 100)), this.style.setProperty("--_lit", String(1 - i / 100)), this.#t && this.#t.setAttribute("aria-valuetext", `hsl(${t}, ${e}%, ${i}%)`);
3657
- }), this.addEventListener("pointerdown", this.#i), this.#t.addEventListener("keydown", this.#r);
3761
+ this.querySelector("[data-color-area-canvas]") ? this.#e = this.querySelector("[data-color-area-canvas]") : (this.#e = document.createElement("canvas"), this.#e.setAttribute("data-color-area-canvas", ""), this.prepend(this.#e)), this.querySelector("[data-color-area-thumb]") ? this.#t = this.querySelector("[data-color-area-thumb]") : (this.#t = document.createElement("div"), this.#t.setAttribute("data-color-area-thumb", ""), this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("role", "slider"), this.#t.setAttribute("aria-label", "Color"), this.appendChild(this.#t)), this.addEffect(() => {
3762
+ const e = this.#l(parseFloat(this.hue) || 0, 0, 360), i = this.#l(parseFloat(this.chroma) || 0, 0, L.MAX_CHROMA), s = this.#l(parseFloat(this.lightness) || 0, 0, 1), n = i / L.MAX_CHROMA, a = 1 - s;
3763
+ this.style.setProperty("--_x", String(n)), this.style.setProperty("--_y", String(a)), this.#t && this.#t.setAttribute("aria-valuetext", `oklch(${s} ${i} ${e})`), this.#i(e);
3764
+ }), new ResizeObserver(() => {
3765
+ const e = parseFloat(this.hue) || 0;
3766
+ this.#i(e);
3767
+ }).observe(this), this.addEventListener("mousedown", this.#s), this.#t.addEventListener("keydown", this.#o);
3658
3768
  }
3659
3769
  dispose() {
3660
- this.removeEventListener("pointerdown", this.#i), this.#t?.removeEventListener("keydown", this.#r);
3770
+ this.removeEventListener("mousedown", this.#s), this.#t?.removeEventListener("keydown", this.#o);
3661
3771
  }
3662
- // ── Pointer interaction ───────────────────────────────
3663
- #i = (t) => {
3664
- this.disabled || (t.preventDefault(), this.setPointerCapture(t.pointerId), this.setAttribute("data-color-area-pressed", ""), this.#a(t), this.#t?.focus(), this.addEventListener("pointermove", this.#s), this.addEventListener("pointerup", this.#n));
3665
- };
3772
+ // ── Canvas gradient rendering ─────────────────────────────
3773
+ #i(t) {
3774
+ const e = this.#e;
3775
+ if (!e) return;
3776
+ const i = this.getBoundingClientRect(), s = Math.max(1, Math.round(i.width)), n = Math.max(1, Math.round(i.height)), a = Math.min(window.devicePixelRatio || 1, 2), r = Math.max(1, Math.round(s * a * 0.5)), h = Math.max(1, Math.round(n * a * 0.5));
3777
+ (e.width !== r || e.height !== h) && (e.width = r, e.height = h);
3778
+ const l = e.getContext("2d", { willReadFrequently: !1 });
3779
+ if (!l) return;
3780
+ const c = l.createImageData(r, h), u = c.data;
3781
+ for (let f = 0; f < h; f++) {
3782
+ const p = 1 - f / (h - 1);
3783
+ for (let m = 0; m < r; m++) {
3784
+ let v = m / (r - 1) * L.MAX_CHROMA;
3785
+ const g = (f * r + m) * 4;
3786
+ if (!V(p, v, t)) {
3787
+ let b = 0, A = v;
3788
+ for (let E = 0; E < 8; E++) {
3789
+ const C = (b + A) / 2;
3790
+ V(p, C, t) ? b = C : A = C;
3791
+ }
3792
+ v = b;
3793
+ }
3794
+ const y = k(p, v, t);
3795
+ u[g] = parseInt(y.slice(1, 3), 16), u[g + 1] = parseInt(y.slice(3, 5), 16), u[g + 2] = parseInt(y.slice(5, 7), 16), u[g + 3] = 255;
3796
+ }
3797
+ }
3798
+ l.putImageData(c, 0, 0);
3799
+ }
3800
+ // ── Mouse interaction (mousedown used instead of pointerdown
3801
+ // because pointerdown doesn't fire inside popover top-layer) ──
3666
3802
  #s = (t) => {
3667
- this.#a(t);
3803
+ this.disabled || (t.preventDefault(), this.setAttribute("data-color-area-pressed", ""), this.#r(t), this.#t?.focus(), document.addEventListener("mousemove", this.#n), document.addEventListener("mouseup", this.#a));
3668
3804
  };
3669
3805
  #n = (t) => {
3670
- this.removeAttribute("data-color-area-pressed"), this.removeEventListener("pointermove", this.#s), this.removeEventListener("pointerup", this.#n), this.#h();
3806
+ this.#r(t);
3671
3807
  };
3672
- #a(t) {
3673
- const e = this.getBoundingClientRect(), i = this.#o((t.clientX - e.left) / e.width, 0, 1), s = this.#o((t.clientY - e.top) / e.height, 0, 1), n = Math.round(i * 100), a = Math.round((1 - s) * 100);
3674
- this.saturation = String(n), this.lightness = String(a), this.dispatchEvent(new CustomEvent("input", {
3808
+ #a = (t) => {
3809
+ this.removeAttribute("data-color-area-pressed"), document.removeEventListener("mousemove", this.#n), document.removeEventListener("mouseup", this.#a), this.#h();
3810
+ };
3811
+ #r(t) {
3812
+ const e = this.getBoundingClientRect(), i = this.#l((t.clientX - e.left) / e.width, 0, 1), s = this.#l((t.clientY - e.top) / e.height, 0, 1), n = Math.round(i * L.MAX_CHROMA * 1e3) / 1e3, a = Math.round((1 - s) * 1e3) / 1e3;
3813
+ this.chroma = String(n), this.lightness = String(a), this.dispatchEvent(new CustomEvent("input", {
3675
3814
  bubbles: !0,
3676
- detail: { h: parseFloat(this.hue) || 0, s: n, l: a }
3815
+ detail: { l: a, c: n, h: parseFloat(this.hue) || 0 }
3677
3816
  }));
3678
3817
  }
3679
3818
  // ── Keyboard interaction ──────────────────────────────
3680
- #r = (t) => {
3819
+ #o = (t) => {
3681
3820
  if (this.disabled) return;
3682
- const e = t.shiftKey ? 10 : 1;
3683
- let i = parseFloat(this.saturation) || 0, s = parseFloat(this.lightness) || 0;
3821
+ const e = t.shiftKey ? 0.04 : 4e-3, i = t.shiftKey ? 0.1 : 0.01;
3822
+ let s = parseFloat(this.chroma) || 0, n = parseFloat(this.lightness) || 0;
3684
3823
  switch (t.key) {
3685
3824
  case "ArrowRight":
3686
- i = Math.min(100, i + e);
3825
+ s = Math.min(L.MAX_CHROMA, s + e);
3687
3826
  break;
3688
3827
  case "ArrowLeft":
3689
- i = Math.max(0, i - e);
3828
+ s = Math.max(0, s - e);
3690
3829
  break;
3691
3830
  case "ArrowUp":
3692
- s = Math.min(100, s + e);
3831
+ n = Math.min(1, n + i);
3693
3832
  break;
3694
3833
  case "ArrowDown":
3695
- s = Math.max(0, s - e);
3834
+ n = Math.max(0, n - i);
3696
3835
  break;
3697
3836
  default:
3698
3837
  return;
3699
3838
  }
3700
- t.preventDefault(), this.saturation = String(i), this.lightness = String(s), this.dispatchEvent(new CustomEvent("input", {
3839
+ t.preventDefault(), s = Math.round(s * 1e3) / 1e3, n = Math.round(n * 1e3) / 1e3, this.chroma = String(s), this.lightness = String(n), this.dispatchEvent(new CustomEvent("input", {
3701
3840
  bubbles: !0,
3702
- detail: { h: parseFloat(this.hue) || 0, s: i, l: s }
3841
+ detail: { l: n, c: s, h: parseFloat(this.hue) || 0 }
3703
3842
  })), this.#h();
3704
3843
  };
3705
3844
  #h() {
3706
3845
  this.dispatchEvent(new CustomEvent("change", {
3707
3846
  bubbles: !0,
3708
3847
  detail: {
3709
- h: parseFloat(this.hue) || 0,
3710
- s: parseFloat(this.saturation) || 0,
3711
- l: parseFloat(this.lightness) || 0
3848
+ l: parseFloat(this.lightness) || 0,
3849
+ c: parseFloat(this.chroma) || 0,
3850
+ h: parseFloat(this.hue) || 0
3712
3851
  }
3713
3852
  }));
3714
3853
  }
3715
- #o(t, e, i) {
3854
+ #l(t, e, i) {
3716
3855
  return Math.max(e, Math.min(i, t));
3717
3856
  }
3718
3857
  }
3719
- const S = {
3720
- hue: { min: 0, max: 360 },
3721
- saturation: { min: 0, max: 100 },
3722
- lightness: { min: 0, max: 100 },
3723
- alpha: { min: 0, max: 1 }
3858
+ const P = {
3859
+ hue: { min: 0, max: 360, step: 1 },
3860
+ chroma: { min: 0, max: 0.4, step: 4e-3 },
3861
+ lightness: { min: 0, max: 1, step: 0.01 },
3862
+ alpha: { min: 0, max: 1, step: 0.01 }
3724
3863
  };
3725
- class Me extends d {
3864
+ class $e extends d {
3726
3865
  static attributes = {
3727
3866
  channel: { type: "string", default: "hue" },
3728
3867
  value: { type: "string", default: "0" },
3729
3868
  min: { type: "string", default: "" },
3730
3869
  max: { type: "string", default: "" },
3731
3870
  hue: { type: "string", default: "0" },
3732
- saturation: { type: "string", default: "100" },
3733
- lightness: { type: "string", default: "50" },
3871
+ chroma: { type: "string", default: "0.15" },
3872
+ lightness: { type: "string", default: "0.65" },
3734
3873
  disabled: { type: "boolean", default: !1 }
3735
3874
  };
3736
3875
  #e = null;
3737
3876
  #t = null;
3738
3877
  activate() {
3739
3878
  this.querySelector("[data-color-slider-track]") ? this.#e = this.querySelector("[data-color-slider-track]") : (this.#e = document.createElement("div"), this.#e.setAttribute("data-color-slider-track", ""), this.prepend(this.#e)), this.querySelector("[data-color-slider-thumb]") ? this.#t = this.querySelector("[data-color-slider-thumb]") : (this.#t = document.createElement("div"), this.#t.setAttribute("data-color-slider-thumb", ""), this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("role", "slider"), this.appendChild(this.#t)), this.addEffect(() => {
3740
- const t = this.channel || "hue", e = S[t] || S.hue, i = this.min !== "" ? parseFloat(this.min) : e.min, s = this.max !== "" ? parseFloat(this.max) : e.max, n = parseFloat(this.value) || 0, a = parseFloat(this.hue) || 0, r = parseFloat(this.saturation) || 100, o = parseFloat(this.lightness) || 50, l = s - i > 0 ? (n - i) / (s - i) : 0;
3741
- this.style.setProperty("--_pct", String(Math.max(0, Math.min(1, l)))), this.style.setProperty("--_hue", String(a)), this.style.setProperty("--_sat", String(r)), this.style.setProperty("--_lit", String(o)), this.#t && (this.#t.setAttribute("aria-label", t.charAt(0).toUpperCase() + t.slice(1)), this.#t.setAttribute("aria-valuemin", String(i)), this.#t.setAttribute("aria-valuemax", String(s)), this.#t.setAttribute("aria-valuenow", String(n))), this.#e && (t === "saturation" ? this.#e.style.background = `linear-gradient(to right, hsl(${a}, 0%, ${o}%), hsl(${a}, 100%, ${o}%))` : t === "lightness" ? this.#e.style.background = `linear-gradient(to right, hsl(${a}, ${r}%, 0%), hsl(${a}, ${r}%, 50%), hsl(${a}, ${r}%, 100%))` : t === "alpha" ? this.#e.style.background = `linear-gradient(to right, transparent, hsl(${a}, ${r}%, ${o}%))` : this.#e.style.background = "");
3742
- }), this.addEventListener("pointerdown", this.#s), this.#t.addEventListener("keydown", this.#h);
3879
+ const t = this.channel || "hue", e = P[t] || P.hue, i = this.min !== "" ? parseFloat(this.min) : e.min, s = this.max !== "" ? parseFloat(this.max) : e.max, n = parseFloat(this.value) || 0, a = parseFloat(this.hue) || 0, r = parseFloat(this.chroma) || 0.15, h = parseFloat(this.lightness) || 0.65, l = s - i > 0 ? (n - i) / (s - i) : 0;
3880
+ if (this.style.setProperty("--_pct", String(Math.max(0, Math.min(1, l)))), this.#t && (this.#t.setAttribute("aria-label", t.charAt(0).toUpperCase() + t.slice(1)), this.#t.setAttribute("aria-valuemin", String(i)), this.#t.setAttribute("aria-valuemax", String(s)), this.#t.setAttribute("aria-valuenow", String(n))), this.#e)
3881
+ if (t === "hue") {
3882
+ const c = [];
3883
+ for (let u = 0; u <= 360; u += 30)
3884
+ c.push(k(h, r, u) + ` ${(u / 360 * 100).toFixed(1)}%`);
3885
+ this.#e.style.background = `linear-gradient(to right, ${c.join(", ")})`;
3886
+ } else if (t === "chroma") {
3887
+ const c = [];
3888
+ for (let f = 0; f <= 10; f++) {
3889
+ const p = f / 10 * 0.4;
3890
+ c.push(k(h, p, a) + ` ${(f / 10 * 100).toFixed(1)}%`);
3891
+ }
3892
+ this.#e.style.background = `linear-gradient(to right, ${c.join(", ")})`;
3893
+ } else if (t === "lightness") {
3894
+ const c = [];
3895
+ for (let f = 0; f <= 10; f++) {
3896
+ const p = f / 10;
3897
+ c.push(k(p, r, a) + ` ${(f / 10 * 100).toFixed(1)}%`);
3898
+ }
3899
+ this.#e.style.background = `linear-gradient(to right, ${c.join(", ")})`;
3900
+ } else if (t === "alpha") {
3901
+ const c = k(h, r, a);
3902
+ this.#e.style.background = `linear-gradient(to right, transparent, ${c})`;
3903
+ } else
3904
+ this.#e.style.background = "";
3905
+ }), this.addEventListener("mousedown", this.#s), this.#t.addEventListener("keydown", this.#o);
3743
3906
  }
3744
3907
  dispose() {
3745
- this.removeEventListener("pointerdown", this.#s), this.#t?.removeEventListener("keydown", this.#h);
3908
+ this.removeEventListener("mousedown", this.#s), this.#t?.removeEventListener("keydown", this.#o);
3746
3909
  }
3747
3910
  #i() {
3748
- const t = this.channel || "hue", e = S[t] || S.hue, i = this.min !== "" ? parseFloat(this.min) : e.min, s = this.max !== "" ? parseFloat(this.max) : e.max;
3749
- return { min: i, max: s, step: t === "alpha" ? 0.01 : 1 };
3911
+ const t = this.channel || "hue", e = P[t] || P.hue, i = this.min !== "" ? parseFloat(this.min) : e.min, s = this.max !== "" ? parseFloat(this.max) : e.max;
3912
+ return { min: i, max: s, step: e.step };
3750
3913
  }
3751
- // ── Pointer interaction ───────────────────────────────
3914
+ // ── Mouse interaction (mousedown used instead of pointerdown
3915
+ // because pointerdown doesn't fire inside popover top-layer) ──
3752
3916
  #s = (t) => {
3753
- this.disabled || (t.preventDefault(), this.setPointerCapture(t.pointerId), this.setAttribute("data-color-slider-pressed", ""), this.#r(t), this.#t?.focus(), this.addEventListener("pointermove", this.#n), this.addEventListener("pointerup", this.#a));
3917
+ this.disabled || (t.preventDefault(), this.setAttribute("data-color-slider-pressed", ""), this.#r(t), this.#t?.focus(), document.addEventListener("mousemove", this.#n), document.addEventListener("mouseup", this.#a));
3754
3918
  };
3755
3919
  #n = (t) => {
3756
3920
  this.#r(t);
3757
3921
  };
3758
3922
  #a = (t) => {
3759
- this.removeAttribute("data-color-slider-pressed"), this.removeEventListener("pointermove", this.#n), this.removeEventListener("pointerup", this.#a), this.#o();
3923
+ this.removeAttribute("data-color-slider-pressed"), document.removeEventListener("mousemove", this.#n), document.removeEventListener("mouseup", this.#a), this.#h();
3760
3924
  };
3761
3925
  #r(t) {
3762
- const e = this.getBoundingClientRect(), i = Math.max(0, Math.min(1, (t.clientX - e.left) / e.width)), { min: s, max: n, step: a } = this.#i(), r = s + i * (n - s), o = Math.round(r / a) * a, l = Math.max(s, Math.min(n, o));
3763
- this.value = String(Math.round(l * 100) / 100), this.dispatchEvent(new CustomEvent("input", {
3926
+ const e = this.getBoundingClientRect(), i = Math.max(0, Math.min(1, (t.clientX - e.left) / e.width)), { min: s, max: n, step: a } = this.#i(), r = s + i * (n - s), h = Math.round(r / a) * a, l = Math.max(s, Math.min(n, h));
3927
+ this.value = String(Math.round(l * 1e3) / 1e3), this.dispatchEvent(new CustomEvent("input", {
3764
3928
  bubbles: !0,
3765
3929
  detail: { channel: this.channel, value: parseFloat(this.value) }
3766
3930
  }));
3767
3931
  }
3768
3932
  // ── Keyboard interaction ──────────────────────────────
3769
- #h = (t) => {
3933
+ #o = (t) => {
3770
3934
  if (this.disabled) return;
3771
3935
  const { min: e, max: i, step: s } = this.#i(), n = parseFloat(this.value) || 0, a = t.shiftKey ? s * 10 : s;
3772
3936
  let r;
@@ -3788,66 +3952,113 @@ class Me extends d {
3788
3952
  default:
3789
3953
  return;
3790
3954
  }
3791
- t.preventDefault(), this.value = String(Math.round(r * 100) / 100), this.dispatchEvent(new CustomEvent("input", {
3955
+ t.preventDefault(), this.value = String(Math.round(r * 1e3) / 1e3), this.dispatchEvent(new CustomEvent("input", {
3792
3956
  bubbles: !0,
3793
3957
  detail: { channel: this.channel, value: parseFloat(this.value) }
3794
- })), this.#o();
3958
+ })), this.#h();
3795
3959
  };
3796
- #o() {
3960
+ #h() {
3797
3961
  this.dispatchEvent(new CustomEvent("change", {
3798
3962
  bubbles: !0,
3799
3963
  detail: { channel: this.channel, value: parseFloat(this.value) }
3800
3964
  }));
3801
3965
  }
3802
3966
  }
3803
- class Te extends d {
3967
+ class Ue extends d {
3804
3968
  static attributes = {
3805
3969
  value: { type: "string", default: "" },
3806
3970
  format: { type: "string", default: "hex" },
3807
3971
  disabled: { type: "boolean", default: !1 }
3808
3972
  };
3809
- #e = null;
3973
+ #e = "";
3810
3974
  #t = null;
3975
+ #i = null;
3976
+ #s = null;
3977
+ #n = null;
3978
+ #a = !1;
3811
3979
  activate() {
3812
- this.querySelector("[data-color-field-swatch]") ? this.#e = this.querySelector("[data-color-field-swatch]") : (this.#e = document.createElement("span"), this.#e.setAttribute("data-color-field-swatch", ""), this.prepend(this.#e)), this.querySelector("[data-color-field-input]") ? this.#t = this.querySelector("[data-color-field-input]") : (this.#t = document.createElement("span"), this.#t.setAttribute("data-color-field-input", ""), this.#t.setAttribute("contenteditable", "plaintext-only"), this.#t.setAttribute("spellcheck", "false"), this.#t.setAttribute("role", "textbox"), this.#t.setAttribute("aria-label", "Color value"), this.appendChild(this.#t)), this.addEffect(() => {
3980
+ this.#e = `--color-field-${crypto.randomUUID().slice(0, 8)}`, this.style.setProperty("--_anchor", this.#e), this.querySelector("[data-color-field-swatch]") ? this.#t = this.querySelector("[data-color-field-swatch]") : (this.#t = document.createElement("span"), this.#t.setAttribute("data-color-field-swatch", ""), this.#t.setAttribute("role", "button"), this.#t.setAttribute("tabindex", "-1"), this.#t.setAttribute("aria-label", "Pick color"), this.#t.style.cursor = "pointer", this.prepend(this.#t)), this.querySelector("[data-color-field-input]") ? this.#i = this.querySelector("[data-color-field-input]") : (this.#i = document.createElement("span"), this.#i.setAttribute("data-color-field-input", ""), this.#i.setAttribute("contenteditable", "plaintext-only"), this.#i.setAttribute("spellcheck", "false"), this.#i.setAttribute("role", "textbox"), this.#i.setAttribute("aria-label", "Color value"), this.appendChild(this.#i)), this.addEffect(() => {
3813
3981
  const t = this.value || "";
3814
- this.#e && this.#e.style.setProperty("--_swatch-color", t || "transparent"), this.#t && document.activeElement !== this.#t && (this.#t.textContent = t), t ? this.removeAttribute("data-color-field-empty") : this.setAttribute("data-color-field-empty", "");
3982
+ this.#t && this.#t.style.setProperty("--_swatch-color", t || "transparent"), this.#i && document.activeElement !== this.#i && (this.#i.textContent = t), t ? this.removeAttribute("data-color-field-empty") : this.setAttribute("data-color-field-empty", "");
3815
3983
  }), this.addEffect(() => {
3816
- this.#t && (this.disabled ? (this.#t.removeAttribute("contenteditable"), this.#t.setAttribute("aria-disabled", "true")) : (this.#t.setAttribute("contenteditable", "plaintext-only"), this.#t.removeAttribute("aria-disabled")));
3817
- }), this.#t.addEventListener("input", this.#i), this.#t.addEventListener("blur", this.#s), this.#t.addEventListener("keydown", this.#n);
3984
+ this.#i && (this.disabled ? (this.#i.removeAttribute("contenteditable"), this.#i.setAttribute("aria-disabled", "true")) : (this.#i.setAttribute("contenteditable", "plaintext-only"), this.#i.removeAttribute("aria-disabled")));
3985
+ }), this.#i.addEventListener("input", this.#r), this.#i.addEventListener("blur", this.#o), this.#i.addEventListener("keydown", this.#h), this.#t?.addEventListener("click", this.#d), document.addEventListener("pointerdown", this.#c), document.addEventListener("keydown", this.#f);
3818
3986
  }
3819
3987
  dispose() {
3820
- this.#t?.removeEventListener("input", this.#i), this.#t?.removeEventListener("blur", this.#s), this.#t?.removeEventListener("keydown", this.#n);
3988
+ this.#i?.removeEventListener("input", this.#r), this.#i?.removeEventListener("blur", this.#o), this.#i?.removeEventListener("keydown", this.#h), this.#t?.removeEventListener("click", this.#d), document.removeEventListener("pointerdown", this.#c), document.removeEventListener("keydown", this.#f), this.#s?.remove();
3821
3989
  }
3822
- #i = () => {
3823
- const t = this.#t?.textContent?.trim() || "";
3824
- this.#a(t) ? (this.removeAttribute("data-color-field-invalid"), this.#e && this.#e.style.setProperty("--_swatch-color", t)) : t && this.setAttribute("data-color-field-invalid", "");
3990
+ #r = () => {
3991
+ const t = this.#i?.textContent?.trim() || "";
3992
+ this.#b(t) ? (this.removeAttribute("data-color-field-invalid"), this.#t && this.#t.style.setProperty("--_swatch-color", t)) : t && this.setAttribute("data-color-field-invalid", "");
3825
3993
  };
3826
- #s = () => {
3827
- const t = this.#t?.textContent?.trim() || "";
3994
+ #o = () => {
3995
+ const t = this.#i?.textContent?.trim() || "";
3828
3996
  if (!t) {
3829
3997
  this.value = "", this.removeAttribute("data-color-field-invalid");
3830
3998
  return;
3831
3999
  }
3832
- this.#a(t) ? (this.value = t, this.removeAttribute("data-color-field-invalid"), this.dispatchEvent(new CustomEvent("change", {
4000
+ this.#b(t) ? (this.value = t, this.removeAttribute("data-color-field-invalid"), this.dispatchEvent(new CustomEvent("change", {
3833
4001
  bubbles: !0,
3834
4002
  detail: { value: this.value, format: this.format }
3835
4003
  }))) : this.setAttribute("data-color-field-invalid", "");
3836
4004
  };
3837
- #n = (t) => {
3838
- t.key === "Enter" && (t.preventDefault(), this.#t?.blur());
4005
+ #h = (t) => {
4006
+ t.key === "Enter" && (t.preventDefault(), this.#i?.blur());
3839
4007
  };
3840
- #a(t) {
4008
+ #l() {
4009
+ this.#s || (this.#s = document.createElement("aui-container"), this.#s.setAttribute("kind", "popover"), this.#s.setAttribute("popover", "manual"), this.#s.setAttribute("data-color-field-popover", ""), this.#n = document.createElement("aui-color-picker"), this.#n.setAttribute("alpha", ""), this.#s.appendChild(this.#n), this.appendChild(this.#s), this.#n.addEventListener("change", this.#u));
4010
+ }
4011
+ #d = (t) => {
4012
+ if (t.stopPropagation(), !this.disabled) {
4013
+ if (this.#a) {
4014
+ this.#m();
4015
+ return;
4016
+ }
4017
+ this.#l(), this.#n && this.value && this.#n.setAttribute("value", this.value);
4018
+ try {
4019
+ this.#s.showPopover();
4020
+ } catch {
4021
+ }
4022
+ this.#a = !0;
4023
+ }
4024
+ };
4025
+ #u = (t) => {
4026
+ t.stopPropagation();
4027
+ const e = t.detail?.value;
4028
+ e && (this.value = e, this.removeAttribute("data-color-field-invalid"), this.dispatchEvent(new CustomEvent("change", {
4029
+ bubbles: !0,
4030
+ detail: { value: this.value, format: this.format }
4031
+ })));
4032
+ };
4033
+ #c = (t) => {
4034
+ if (!this.#a) return;
4035
+ const e = t.target;
4036
+ this.#s?.contains(e) || this.contains(e) || this.#m();
4037
+ };
4038
+ #f = (t) => {
4039
+ this.#a && t.key === "Escape" && (t.preventDefault(), this.#m());
4040
+ };
4041
+ #m() {
4042
+ if (!(!this.#s || !this.#a)) {
4043
+ try {
4044
+ this.#s.hidePopover();
4045
+ } catch {
4046
+ }
4047
+ this.#a = !1;
4048
+ }
4049
+ }
4050
+ #b(t) {
3841
4051
  return typeof CSS < "u" && CSS.supports ? CSS.supports("color", t) : /^#([0-9a-f]{3,8})$/i.test(t) || /^rgb/i.test(t) || /^oklch/i.test(t) || /^hsl/i.test(t);
3842
4052
  }
3843
4053
  }
3844
- class Pe extends d {
4054
+ class Be extends d {
3845
4055
  static attributes = {
3846
4056
  value: { type: "string", default: "" },
3847
4057
  min: { type: "string", default: "" },
3848
4058
  max: { type: "string", default: "" },
3849
4059
  step: { type: "string", default: "1" },
3850
4060
  format: { type: "string", default: "24h" },
4061
+ "show-seconds": { type: "boolean", default: !1 },
3851
4062
  placeholder: { type: "string", default: "" },
3852
4063
  disabled: { type: "boolean", default: !1 }
3853
4064
  };
@@ -3860,17 +4071,23 @@ class Pe extends d {
3860
4071
  }), this.addEffect(() => {
3861
4072
  for (const t of this.#e)
3862
4073
  t.setAttribute("tabindex", this.disabled ? "-1" : "0");
3863
- }), this.addEventListener("keydown", this.#h), this.addEventListener("focusin", this.#r);
4074
+ }), this.addEventListener("keydown", this.#o), this.addEventListener("focusin", this.#r);
3864
4075
  }
3865
4076
  dispose() {
3866
- this.removeEventListener("keydown", this.#h), this.removeEventListener("focusin", this.#r), this.#i && clearTimeout(this.#i);
4077
+ this.removeEventListener("keydown", this.#o), this.removeEventListener("focusin", this.#r), this.#i && clearTimeout(this.#i);
3867
4078
  }
3868
4079
  #s() {
3869
4080
  this.innerHTML = "", this.#e = [];
3870
4081
  const t = this.#n("hour", "Hour", 0, this.format === "12h" ? 12 : 23), e = document.createElement("span");
3871
4082
  e.setAttribute("data-time-separator", ""), e.textContent = ":";
3872
4083
  const i = this.#n("minute", "Minute", 0, 59);
3873
- if (this.append(t, e, i), this.#e = [t, i], this.format === "12h") {
4084
+ if (this.append(t, e, i), this.#e = [t, i], this["show-seconds"]) {
4085
+ const s = document.createElement("span");
4086
+ s.setAttribute("data-time-separator", ""), s.textContent = ":";
4087
+ const n = this.#n("second", "Second", 0, 59);
4088
+ this.append(s, n), this.#e.push(n);
4089
+ }
4090
+ if (this.format === "12h") {
3874
4091
  const s = document.createElement("span");
3875
4092
  s.setAttribute("data-time-segment", "period"), s.setAttribute("tabindex", "0"), s.setAttribute("role", "spinbutton"), s.setAttribute("aria-label", "AM/PM"), s.setAttribute("aria-valuemin", "0"), s.setAttribute("aria-valuemax", "1"), s.textContent = "AM", this.appendChild(s), this.#e.push(s);
3876
4093
  }
@@ -3881,19 +4098,19 @@ class Pe extends d {
3881
4098
  }
3882
4099
  #a() {
3883
4100
  const t = this.value;
3884
- if (!t || !/^\d{1,2}:\d{2}$/.test(t)) {
3885
- for (const l of this.#e)
3886
- l.getAttribute("data-time-segment") === "period" ? l.textContent = "AM" : l.textContent = "--";
4101
+ if (!t || !/^\d{1,2}:\d{2}(:\d{2})?$/.test(t)) {
4102
+ for (const c of this.#e)
4103
+ c.getAttribute("data-time-segment") === "period" ? c.textContent = "AM" : c.textContent = "--";
3887
4104
  return;
3888
4105
  }
3889
- const [e, i] = t.split(":");
3890
- let s = parseInt(e, 10);
3891
- const n = parseInt(i, 10), a = this.querySelector('[data-time-segment="hour"]'), r = this.querySelector('[data-time-segment="minute"]'), o = this.querySelector('[data-time-segment="period"]');
4106
+ const e = t.split(":");
4107
+ let i = parseInt(e[0], 10);
4108
+ const s = parseInt(e[1], 10), n = e[2] ? parseInt(e[2], 10) : 0, a = this.querySelector('[data-time-segment="hour"]'), r = this.querySelector('[data-time-segment="minute"]'), h = this.querySelector('[data-time-segment="second"]'), l = this.querySelector('[data-time-segment="period"]');
3892
4109
  if (this.format === "12h") {
3893
- const l = s >= 12 ? "PM" : "AM";
3894
- s = s % 12 || 12, a && (a.textContent = String(s).padStart(2, "0")), r && (r.textContent = String(n).padStart(2, "0")), o && (o.textContent = l);
4110
+ const c = i >= 12 ? "PM" : "AM";
4111
+ i = i % 12 || 12, a && (a.textContent = String(i).padStart(2, "0")), r && (r.textContent = String(s).padStart(2, "0")), h && (h.textContent = String(n).padStart(2, "0")), l && (l.textContent = c);
3895
4112
  } else
3896
- a && (a.textContent = String(s).padStart(2, "0")), r && (r.textContent = String(n).padStart(2, "0"));
4113
+ a && (a.textContent = String(i).padStart(2, "0")), r && (r.textContent = String(s).padStart(2, "0")), h && (h.textContent = String(n).padStart(2, "0"));
3897
4114
  }
3898
4115
  #r = (t) => {
3899
4116
  this.#t = "", this.#i && clearTimeout(this.#i);
@@ -3905,7 +4122,7 @@ class Pe extends d {
3905
4122
  s?.removeAllRanges(), s?.addRange(i);
3906
4123
  }
3907
4124
  };
3908
- #h = (t) => {
4125
+ #o = (t) => {
3909
4126
  if (this.disabled) return;
3910
4127
  const e = t.target;
3911
4128
  if (!e.hasAttribute("data-time-segment")) return;
@@ -3929,7 +4146,7 @@ class Pe extends d {
3929
4146
  return;
3930
4147
  }
3931
4148
  if (/^\d$/.test(t.key) && i !== "period") {
3932
- t.preventDefault(), this.#o(e, i, t.key);
4149
+ t.preventDefault(), this.#h(e, i, t.key);
3933
4150
  return;
3934
4151
  }
3935
4152
  if (i === "period" && (t.key === "a" || t.key === "A" || t.key === "p" || t.key === "P")) {
@@ -3937,7 +4154,7 @@ class Pe extends d {
3937
4154
  return;
3938
4155
  }
3939
4156
  };
3940
- #o(t, e, i) {
4157
+ #h(t, e, i) {
3941
4158
  if (this.#i && clearTimeout(this.#i), this.#t += i, this.#t.length >= 2) {
3942
4159
  const s = parseInt(this.#t, 10), n = e === "hour" ? this.format === "12h" ? 12 : 23 : 59, a = Math.min(s, n);
3943
4160
  t.textContent = String(a).padStart(2, "0"), this.#t = "", this.#d();
@@ -3955,8 +4172,8 @@ class Pe extends d {
3955
4172
  t.textContent = t.textContent === "AM" ? "PM" : "AM", this.#d();
3956
4173
  return;
3957
4174
  }
3958
- const s = t.textContent || "--", n = s === "--" ? 0 : parseInt(s, 10), a = e === "hour" ? this.format === "12h" ? 12 : 23 : 59, r = e === "hour" && this.format === "12h" ? 1 : 0, o = e === "minute" && parseInt(this.step, 10) || 1;
3959
- let l = n + i * o;
4175
+ const s = t.textContent || "--", n = s === "--" ? 0 : parseInt(s, 10), a = e === "hour" ? this.format === "12h" ? 12 : 23 : 59, r = e === "hour" && this.format === "12h" ? 1 : 0, h = (e === "minute" || e === "second") && parseInt(this.step, 10) || 1;
4176
+ let l = n + i * h;
3960
4177
  l > a && (l = r), l < r && (l = a), t.textContent = String(l).padStart(2, "0"), this.#d();
3961
4178
  }
3962
4179
  #d() {
@@ -3968,26 +4185,26 @@ class Pe extends d {
3968
4185
  let n = parseInt(i, 10);
3969
4186
  const a = parseInt(s, 10);
3970
4187
  if (this.format === "12h") {
3971
- const l = this.querySelector('[data-time-segment="period"]')?.textContent || "AM";
3972
- l === "PM" && n < 12 && (n += 12), l === "AM" && n === 12 && (n = 0);
4188
+ const f = this.querySelector('[data-time-segment="period"]')?.textContent || "AM";
4189
+ f === "PM" && n < 12 && (n += 12), f === "AM" && n === 12 && (n = 0);
3973
4190
  }
3974
- const r = `${String(n).padStart(2, "0")}:${String(a).padStart(2, "0")}`;
3975
- r !== this.value && (this.value = r, this.dispatchEvent(new CustomEvent("change", {
4191
+ const h = this.querySelector('[data-time-segment="second"]')?.textContent || "--", l = h === "--" ? 0 : parseInt(h, 10), c = this["show-seconds"] ? `${String(n).padStart(2, "0")}:${String(a).padStart(2, "0")}:${String(l).padStart(2, "0")}` : `${String(n).padStart(2, "0")}:${String(a).padStart(2, "0")}`;
4192
+ c !== this.value && (this.value = c, this.dispatchEvent(new CustomEvent("change", {
3976
4193
  bubbles: !0,
3977
4194
  detail: { value: this.value }
3978
4195
  })));
3979
4196
  }
3980
4197
  }
3981
- const R = {
4198
+ const K = {
3982
4199
  "MM/DD/YYYY": { segments: ["month", "day", "year"], separator: "/" },
3983
4200
  "DD/MM/YYYY": { segments: ["day", "month", "year"], separator: "/" },
3984
4201
  "YYYY-MM-DD": { segments: ["year", "month", "day"], separator: "-" }
3985
- }, D = {
4202
+ }, q = {
3986
4203
  month: { name: "month", label: "Month", min: 1, max: 12, digits: 2 },
3987
4204
  day: { name: "day", label: "Day", min: 1, max: 31, digits: 2 },
3988
4205
  year: { name: "year", label: "Year", min: 1900, max: 2100, digits: 4 }
3989
4206
  };
3990
- class qe extends d {
4207
+ class Ve extends d {
3991
4208
  static attributes = {
3992
4209
  value: { type: "string", default: "" },
3993
4210
  min: { type: "string", default: "" },
@@ -4012,22 +4229,22 @@ class qe extends d {
4012
4229
  }
4013
4230
  #s() {
4014
4231
  this.innerHTML = "", this.#e = [];
4015
- const t = R[this.format] || R["MM/DD/YYYY"];
4232
+ const t = K[this.format] || K["MM/DD/YYYY"];
4016
4233
  for (let e = 0; e < t.segments.length; e++) {
4017
4234
  if (e > 0) {
4018
4235
  const n = document.createElement("span");
4019
4236
  n.setAttribute("data-date-separator", ""), n.textContent = t.separator, this.appendChild(n);
4020
4237
  }
4021
- const i = D[t.segments[e]], s = document.createElement("span");
4238
+ const i = q[t.segments[e]], s = document.createElement("span");
4022
4239
  s.setAttribute("data-date-segment", i.name), s.setAttribute("tabindex", "0"), s.setAttribute("role", "spinbutton"), s.setAttribute("aria-label", i.label), s.setAttribute("aria-valuemin", String(i.min)), s.setAttribute("aria-valuemax", String(i.max)), s.textContent = i.name === "year" ? "----" : "--", this.appendChild(s), this.#e.push(s);
4023
4240
  }
4024
4241
  }
4025
4242
  #n() {
4026
4243
  const t = this.value;
4027
4244
  if (!t || !/^\d{4}-\d{2}-\d{2}$/.test(t)) {
4028
- for (const o of this.#e) {
4029
- const l = o.getAttribute("data-date-segment");
4030
- o.textContent = l === "year" ? "----" : "--";
4245
+ for (const h of this.#e) {
4246
+ const l = h.getAttribute("data-date-segment");
4247
+ h.textContent = l === "year" ? "----" : "--";
4031
4248
  }
4032
4249
  return;
4033
4250
  }
@@ -4050,7 +4267,7 @@ class qe extends d {
4050
4267
  if (!e.hasAttribute("data-date-segment")) return;
4051
4268
  const i = e.getAttribute("data-date-segment");
4052
4269
  if (t.key === "ArrowUp" || t.key === "ArrowDown") {
4053
- t.preventDefault(), this.#o(e, i, t.key === "ArrowUp" ? 1 : -1);
4270
+ t.preventDefault(), this.#h(e, i, t.key === "ArrowUp" ? 1 : -1);
4054
4271
  return;
4055
4272
  }
4056
4273
  if (t.key === "ArrowRight" || t.key === "Tab" && !t.shiftKey) {
@@ -4065,18 +4282,18 @@ class qe extends d {
4065
4282
  }
4066
4283
  if (t.key === "Backspace") {
4067
4284
  t.preventDefault();
4068
- const s = D[i];
4285
+ const s = q[i];
4069
4286
  e.textContent = s.digits === 4 ? "----" : "--", this.#t = "", this.#l();
4070
4287
  return;
4071
4288
  }
4072
4289
  if (/^\d$/.test(t.key)) {
4073
- t.preventDefault(), this.#h(e, i, t.key);
4290
+ t.preventDefault(), this.#o(e, i, t.key);
4074
4291
  return;
4075
4292
  }
4076
4293
  };
4077
- #h(t, e, i) {
4294
+ #o(t, e, i) {
4078
4295
  this.#i && clearTimeout(this.#i);
4079
- const s = D[e];
4296
+ const s = q[e];
4080
4297
  if (this.#t += i, this.#t.length >= s.digits) {
4081
4298
  const n = parseInt(this.#t, 10), a = Math.max(s.min, Math.min(s.max, n));
4082
4299
  t.textContent = String(a).padStart(s.digits, "0"), this.#t = "", this.#l();
@@ -4094,10 +4311,10 @@ class qe extends d {
4094
4311
  a < this.#e.length - 1 && this.#e[a + 1].focus();
4095
4312
  }, 800);
4096
4313
  }
4097
- #o(t, e, i) {
4098
- const s = D[e], n = t.textContent || "";
4099
- let o = (n === "--" || n === "----" ? i > 0 ? s.min - 1 : s.max + 1 : parseInt(n, 10)) + i;
4100
- o > s.max && (o = s.min), o < s.min && (o = s.max), t.textContent = String(o).padStart(s.digits, "0"), this.#l();
4314
+ #h(t, e, i) {
4315
+ const s = q[e], n = t.textContent || "";
4316
+ let h = (n === "--" || n === "----" ? i > 0 ? s.min - 1 : s.max + 1 : parseInt(n, 10)) + i;
4317
+ h > s.max && (h = s.min), h < s.min && (h = s.max), t.textContent = String(h).padStart(s.digits, "0"), this.#l();
4101
4318
  }
4102
4319
  #l() {
4103
4320
  const t = this.querySelector('[data-date-segment="month"]'), e = this.querySelector('[data-date-segment="day"]'), i = this.querySelector('[data-date-segment="year"]'), s = t?.textContent || "--", n = e?.textContent || "--", a = i?.textContent || "----";
@@ -4105,20 +4322,20 @@ class qe extends d {
4105
4322
  this.value = "";
4106
4323
  return;
4107
4324
  }
4108
- let r = parseInt(s, 10), o = parseInt(n, 10);
4109
- const l = parseInt(a, 10), u = new Date(l, r, 0).getDate();
4110
- o > u && (o = u, e && (e.textContent = String(o).padStart(2, "0")));
4111
- const f = `${String(l).padStart(4, "0")}-${String(r).padStart(2, "0")}-${String(o).padStart(2, "0")}`;
4112
- f !== this.value && (this.value = f, this.dispatchEvent(new CustomEvent("change", {
4325
+ let r = parseInt(s, 10), h = parseInt(n, 10);
4326
+ const l = parseInt(a, 10), c = new Date(l, r, 0).getDate();
4327
+ h > c && (h = c, e && (e.textContent = String(h).padStart(2, "0")));
4328
+ const u = `${String(l).padStart(4, "0")}-${String(r).padStart(2, "0")}-${String(h).padStart(2, "0")}`;
4329
+ u !== this.value && (this.value = u, this.dispatchEvent(new CustomEvent("change", {
4113
4330
  bubbles: !0,
4114
- detail: { value: this.value, date: new Date(l, r - 1, o) }
4331
+ detail: { value: this.value, date: new Date(l, r - 1, h) }
4115
4332
  })));
4116
4333
  }
4117
4334
  }
4118
- function lt(h) {
4119
- return h.tagName === "AUI-OPTION" || h.tagName === "AUI-OPTGROUP";
4335
+ function yt(o) {
4336
+ return o.tagName === "AUI-OPTION" || o.tagName === "AUI-OPTGROUP";
4120
4337
  }
4121
- class Oe extends d {
4338
+ class Ke extends d {
4122
4339
  static attributes = {
4123
4340
  target: { type: "string", default: "" },
4124
4341
  disabled: { type: "boolean", default: !1 },
@@ -4132,15 +4349,15 @@ class Oe extends d {
4132
4349
  this.#e = document.createElement("div"), this.#e.setAttribute("popover", "manual"), this.#e.setAttribute("data-context-menu-popover", ""), this.#e.setAttribute("role", "menu"), this.#t = document.createElement("div"), this.#t.setAttribute("data-context-menu-list", ""), this.#t.setAttribute("role", "menu"), this.#t.setAttribute("tabindex", "-1"), this.#e.appendChild(this.#t);
4133
4350
  const t = Array.from(this.children);
4134
4351
  for (const e of t)
4135
- lt(e) && this.#t.appendChild(e);
4352
+ yt(e) && this.#t.appendChild(e);
4136
4353
  this.appendChild(this.#e), this.addEffect(() => {
4137
4354
  this.#i && (this.#i.removeEventListener("contextmenu", this.#l), this.#i = null);
4138
4355
  const e = this.target;
4139
4356
  e && (this.#i = document.querySelector(e)), this.#i || (this.#i = this.parentElement), this.#i && this.#i.addEventListener("contextmenu", this.#l);
4140
- }), this.#t.addEventListener("click", this.#d), this.#t.addEventListener("keydown", this.#u), document.addEventListener("click", this.#p), document.addEventListener("keydown", this.#f);
4357
+ }), this.#t.addEventListener("click", this.#d), this.#t.addEventListener("keydown", this.#u), document.addEventListener("click", this.#c), document.addEventListener("keydown", this.#f);
4141
4358
  }
4142
4359
  dispose() {
4143
- this.#i && this.#i.removeEventListener("contextmenu", this.#l), this.#t?.removeEventListener("click", this.#d), this.#t?.removeEventListener("keydown", this.#u), document.removeEventListener("click", this.#p), document.removeEventListener("keydown", this.#f), this.#a();
4360
+ this.#i && this.#i.removeEventListener("contextmenu", this.#l), this.#t?.removeEventListener("click", this.#d), this.#t?.removeEventListener("keydown", this.#u), document.removeEventListener("click", this.#c), document.removeEventListener("keydown", this.#f), this.#a();
4144
4361
  }
4145
4362
  // ── Options ─────────────────────────────────────────────
4146
4363
  get options() {
@@ -4157,7 +4374,7 @@ class Oe extends d {
4157
4374
  this.#e.showPopover();
4158
4375
  } catch {
4159
4376
  }
4160
- this.open = !0, this.#s = -1, this.#h(), requestAnimationFrame(() => this.#t?.focus());
4377
+ this.open = !0, this.#s = -1, this.#o(), requestAnimationFrame(() => this.#t?.focus());
4161
4378
  }
4162
4379
  }
4163
4380
  #a() {
@@ -4166,23 +4383,23 @@ class Oe extends d {
4166
4383
  this.#e.hidePopover();
4167
4384
  } catch {
4168
4385
  }
4169
- this.open = !1, this.#s = -1, this.#h();
4386
+ this.open = !1, this.#s = -1, this.#o();
4170
4387
  }
4171
4388
  }
4172
4389
  // ── Active (keyboard highlight) ─────────────────────────
4173
4390
  #r(t) {
4174
4391
  const e = this.enabledOptions;
4175
4392
  if (e.length === 0) return;
4176
- this.#h(), this.#s = Math.max(0, Math.min(t, e.length - 1));
4393
+ this.#o(), this.#s = Math.max(0, Math.min(t, e.length - 1));
4177
4394
  const i = e[this.#s];
4178
4395
  i.setAttribute("data-navigate-active", ""), i.scrollIntoView({ block: "nearest" });
4179
4396
  }
4180
- #h() {
4397
+ #o() {
4181
4398
  for (const t of this.options)
4182
4399
  t.removeAttribute("data-navigate-active");
4183
4400
  }
4184
4401
  // ── Select ──────────────────────────────────────────────
4185
- #o(t) {
4402
+ #h(t) {
4186
4403
  const e = t.getAttribute("value") ?? t.textContent?.trim() ?? "";
4187
4404
  this.#a(), this.dispatchEvent(new CustomEvent("select", {
4188
4405
  bubbles: !0,
@@ -4196,7 +4413,7 @@ class Oe extends d {
4196
4413
  };
4197
4414
  #d = (t) => {
4198
4415
  const e = t.target.closest("aui-option");
4199
- !e || e.hasAttribute("disabled") || this.#o(e);
4416
+ !e || e.hasAttribute("disabled") || this.#h(e);
4200
4417
  };
4201
4418
  #u = (t) => {
4202
4419
  const e = this.enabledOptions;
@@ -4226,7 +4443,7 @@ class Oe extends d {
4226
4443
  case " ": {
4227
4444
  t.preventDefault();
4228
4445
  const i = e[this.#s];
4229
- i && this.#o(i);
4446
+ i && this.#h(i);
4230
4447
  break;
4231
4448
  }
4232
4449
  case "Escape": {
@@ -4235,18 +4452,18 @@ class Oe extends d {
4235
4452
  }
4236
4453
  }
4237
4454
  };
4238
- #p = (t) => {
4455
+ #c = (t) => {
4239
4456
  this.open && !this.#e?.contains(t.target) && this.#a();
4240
4457
  };
4241
4458
  #f = (t) => {
4242
4459
  t.key === "Escape" && this.open && this.#a();
4243
4460
  };
4244
4461
  }
4245
- const dt = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
4246
- function ut(h) {
4247
- return h.tagName === "AUI-OPTION" || h.tagName === "AUI-OPTGROUP";
4462
+ const Et = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>';
4463
+ function xt(o) {
4464
+ return o.tagName === "AUI-OPTION" || o.tagName === "AUI-OPTGROUP";
4248
4465
  }
4249
- class Fe extends d {
4466
+ class _e extends d {
4250
4467
  static attributes = {
4251
4468
  label: { type: "string", default: "" },
4252
4469
  "icon-leading": { type: "string", default: "" },
@@ -4264,18 +4481,18 @@ class Fe extends d {
4264
4481
  #r = -1;
4265
4482
  activate() {
4266
4483
  const t = `dropdown-menu-${crypto.randomUUID().slice(0, 8)}`;
4267
- this.#e = `--${t}`, this.#t = document.createElement("span"), this.#t.setAttribute("data-trigger", ""), this.#t.setAttribute("role", "button"), this.#t.setAttribute("aria-haspopup", "menu"), this.#t.setAttribute("tabindex", "0"), this.#t.id = t, this.#i = document.createElement("span"), this.#i.setAttribute("data-label", ""), this.#t.appendChild(this.#i), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = dt, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "auto"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("div"), this.#a.setAttribute("data-dropdown-menu-list", ""), this.#a.setAttribute("role", "menu"), this.#a.setAttribute("tabindex", "-1"), this.#n.appendChild(this.#a);
4484
+ this.#e = `--${t}`, this.#t = document.createElement("span"), this.#t.setAttribute("data-trigger", ""), this.#t.setAttribute("role", "button"), this.#t.setAttribute("aria-haspopup", "menu"), this.#t.setAttribute("tabindex", "0"), this.#t.id = t, this.#i = document.createElement("span"), this.#i.setAttribute("data-label", ""), this.#t.appendChild(this.#i), this.#s = document.createElement("span"), this.#s.setAttribute("data-chevron", ""), this.#s.innerHTML = Et, this.#t.appendChild(this.#s), this.#n = document.createElement("div"), this.#n.setAttribute("popover", "auto"), this.#n.setAttribute("data-dropdown", ""), this.#a = document.createElement("div"), this.#a.setAttribute("data-dropdown-menu-list", ""), this.#a.setAttribute("role", "menu"), this.#a.setAttribute("tabindex", "-1"), this.#n.appendChild(this.#a);
4268
4485
  const e = Array.from(this.children);
4269
4486
  for (const i of e)
4270
- ut(i) && this.#a.appendChild(i);
4487
+ xt(i) && this.#a.appendChild(i);
4271
4488
  this.appendChild(this.#t), this.appendChild(this.#n), this.#t.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
4272
4489
  this.disabled ? this.#t.setAttribute("tabindex", "-1") : this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled));
4273
4490
  const i = this.label || "";
4274
4491
  this.#i.textContent = i;
4275
- }), this.#t.addEventListener("click", this.#p), this.#t.addEventListener("keydown", this.#f), this.#a.addEventListener("click", this.#v), this.#a.addEventListener("keydown", this.#b), document.addEventListener("click", this.#c);
4492
+ }), this.#t.addEventListener("click", this.#c), this.#t.addEventListener("keydown", this.#f), this.#a.addEventListener("click", this.#m), this.#a.addEventListener("keydown", this.#b), document.addEventListener("click", this.#p);
4276
4493
  }
4277
4494
  dispose() {
4278
- this.#t?.removeEventListener("click", this.#p), this.#t?.removeEventListener("keydown", this.#f), this.#a?.removeEventListener("click", this.#v), this.#a?.removeEventListener("keydown", this.#b), document.removeEventListener("click", this.#c), this.#o();
4495
+ this.#t?.removeEventListener("click", this.#c), this.#t?.removeEventListener("keydown", this.#f), this.#a?.removeEventListener("click", this.#m), this.#a?.removeEventListener("keydown", this.#b), document.removeEventListener("click", this.#p), this.#h();
4279
4496
  }
4280
4497
  // ── Options ─────────────────────────────────────────────
4281
4498
  get options() {
@@ -4285,7 +4502,7 @@ class Fe extends d {
4285
4502
  return this.options.filter((t) => !t.hasAttribute("disabled"));
4286
4503
  }
4287
4504
  // ── Popover control ─────────────────────────────────────
4288
- #h() {
4505
+ #o() {
4289
4506
  if (!(!this.#n || this.disabled)) {
4290
4507
  try {
4291
4508
  this.#n.showPopover();
@@ -4294,7 +4511,7 @@ class Fe extends d {
4294
4511
  this.open = !0, this.#r = -1, this.#d(), requestAnimationFrame(() => this.#a?.focus());
4295
4512
  }
4296
4513
  }
4297
- #o() {
4514
+ #h() {
4298
4515
  if (this.#n) {
4299
4516
  try {
4300
4517
  this.#n.hidePopover();
@@ -4318,20 +4535,20 @@ class Fe extends d {
4318
4535
  // ── Select ──────────────────────────────────────────────
4319
4536
  #u(t) {
4320
4537
  const e = t.getAttribute("value") ?? t.textContent?.trim() ?? "";
4321
- this.#o(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("select", {
4538
+ this.#h(), this.#t?.focus(), this.dispatchEvent(new CustomEvent("select", {
4322
4539
  bubbles: !0,
4323
4540
  composed: !0,
4324
4541
  detail: { value: e }
4325
4542
  }));
4326
4543
  }
4327
4544
  // ── Event handlers ──────────────────────────────────────
4328
- #p = () => {
4329
- this.disabled || (this.open ? this.#o() : this.#h());
4545
+ #c = () => {
4546
+ this.disabled || (this.open ? this.#h() : this.#o());
4330
4547
  };
4331
4548
  #f = (t) => {
4332
- t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#h()) : t.key === "Escape" && this.#o();
4549
+ t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#o()) : t.key === "Escape" && this.#h();
4333
4550
  };
4334
- #v = (t) => {
4551
+ #m = (t) => {
4335
4552
  const e = t.target.closest("aui-option");
4336
4553
  !e || e.hasAttribute("disabled") || this.#u(e);
4337
4554
  };
@@ -4367,20 +4584,20 @@ class Fe extends d {
4367
4584
  break;
4368
4585
  }
4369
4586
  case "Escape": {
4370
- t.preventDefault(), this.#o(), this.#t?.focus();
4587
+ t.preventDefault(), this.#h(), this.#t?.focus();
4371
4588
  break;
4372
4589
  }
4373
4590
  case "Tab": {
4374
- this.#o();
4591
+ this.#h();
4375
4592
  break;
4376
4593
  }
4377
4594
  }
4378
4595
  };
4379
- #c = (t) => {
4380
- this.open && !this.contains(t.target) && this.#o();
4596
+ #p = (t) => {
4597
+ this.open && !this.contains(t.target) && this.#h();
4381
4598
  };
4382
4599
  }
4383
- class Re extends d {
4600
+ class Ge extends d {
4384
4601
  static attributes = {
4385
4602
  anchor: { type: "string", default: "" },
4386
4603
  delay: { type: "string", default: "300" },
@@ -4398,13 +4615,13 @@ class Re extends d {
4398
4615
  for (this.#i = `--${t}`, this.#e = document.createElement("div"), this.#e.setAttribute("popover", "manual"), this.#e.setAttribute("data-hover-card-popover", ""), this.#e.setAttribute("role", "tooltip"), this.#e.id = t; this.firstChild; )
4399
4616
  this.#e.appendChild(this.firstChild);
4400
4617
  this.appendChild(this.#e), this.style.setProperty("--_anchor", this.#i), this.addEffect(() => {
4401
- this.#t && (this.#t.removeEventListener("mouseenter", this.#d), this.#t.removeEventListener("mouseleave", this.#u), this.#t.removeEventListener("focusin", this.#p), this.#t.removeEventListener("focusout", this.#f), this.#t.style.anchorName = "", this.#t.removeAttribute("aria-describedby"), this.#t = null);
4618
+ this.#t && (this.#t.removeEventListener("mouseenter", this.#d), this.#t.removeEventListener("mouseleave", this.#u), this.#t.removeEventListener("focusin", this.#c), this.#t.removeEventListener("focusout", this.#f), this.#t.style.anchorName = "", this.#t.removeAttribute("aria-describedby"), this.#t = null);
4402
4619
  const e = this.anchor;
4403
- e && (this.#t = document.querySelector(e)), this.#t || (this.#t = this.previousElementSibling ?? this.parentElement), this.#t && (this.#t.style.anchorName = this.#i, this.#t.setAttribute("aria-describedby", t), this.#t.addEventListener("mouseenter", this.#d), this.#t.addEventListener("mouseleave", this.#u), this.#t.addEventListener("focusin", this.#p), this.#t.addEventListener("focusout", this.#f));
4404
- }), this.#e.addEventListener("mouseenter", this.#v), this.#e.addEventListener("mouseleave", this.#b), this.addEventListener("keydown", this.#c);
4620
+ e && (this.#t = document.querySelector(e)), this.#t || (this.#t = this.previousElementSibling ?? this.parentElement), this.#t && (this.#t.style.anchorName = this.#i, this.#t.setAttribute("aria-describedby", t), this.#t.addEventListener("mouseenter", this.#d), this.#t.addEventListener("mouseleave", this.#u), this.#t.addEventListener("focusin", this.#c), this.#t.addEventListener("focusout", this.#f));
4621
+ }), this.#e.addEventListener("mouseenter", this.#m), this.#e.addEventListener("mouseleave", this.#b), this.addEventListener("keydown", this.#p);
4405
4622
  }
4406
4623
  dispose() {
4407
- this.#h(), this.#t && (this.#t.removeEventListener("mouseenter", this.#d), this.#t.removeEventListener("mouseleave", this.#u), this.#t.removeEventListener("focusin", this.#p), this.#t.removeEventListener("focusout", this.#f), this.#t.style.anchorName = "", this.#t.removeAttribute("aria-describedby")), this.#e?.removeEventListener("mouseenter", this.#v), this.#e?.removeEventListener("mouseleave", this.#b), this.removeEventListener("keydown", this.#c), this.#r();
4624
+ this.#o(), this.#t && (this.#t.removeEventListener("mouseenter", this.#d), this.#t.removeEventListener("mouseleave", this.#u), this.#t.removeEventListener("focusin", this.#c), this.#t.removeEventListener("focusout", this.#f), this.#t.style.anchorName = "", this.#t.removeAttribute("aria-describedby")), this.#e?.removeEventListener("mouseenter", this.#m), this.#e?.removeEventListener("mouseleave", this.#b), this.removeEventListener("keydown", this.#p), this.#r();
4408
4625
  }
4409
4626
  // ── Show / Hide ─────────────────────────────────────────
4410
4627
  #a() {
@@ -4425,11 +4642,11 @@ class Re extends d {
4425
4642
  this.open = !1;
4426
4643
  }
4427
4644
  }
4428
- #h() {
4645
+ #o() {
4429
4646
  this.#s !== null && (clearTimeout(this.#s), this.#s = null), this.#n !== null && (clearTimeout(this.#n), this.#n = null);
4430
4647
  }
4431
- #o() {
4432
- this.#h();
4648
+ #h() {
4649
+ this.#o();
4433
4650
  const t = parseInt(this.delay) || 300;
4434
4651
  this.#s = setTimeout(() => {
4435
4652
  this.#s = null, this.#a();
@@ -4444,157 +4661,163 @@ class Re extends d {
4444
4661
  }
4445
4662
  // ── Event handlers ──────────────────────────────────────
4446
4663
  #d = () => {
4447
- this.#o();
4664
+ this.#h();
4448
4665
  };
4449
4666
  #u = () => {
4450
4667
  this.#l();
4451
4668
  };
4452
- #p = () => {
4453
- this.#o();
4669
+ #c = () => {
4670
+ this.#h();
4454
4671
  };
4455
4672
  #f = () => {
4456
4673
  this.#l();
4457
4674
  };
4458
- #v = () => {
4675
+ #m = () => {
4459
4676
  this.#n !== null && (clearTimeout(this.#n), this.#n = null);
4460
4677
  };
4461
4678
  #b = () => {
4462
4679
  this.#l();
4463
4680
  };
4464
- #c = (t) => {
4465
- t.key === "Escape" && this.open && (this.#h(), this.#r());
4466
- };
4467
- }
4468
- function z(h) {
4469
- let t = 0, e = 0, i = 0, s = 1;
4470
- h = h.replace(/^#/, ""), h.length === 3 || h.length === 4 ? (t = parseInt(h[0] + h[0], 16) / 255, e = parseInt(h[1] + h[1], 16) / 255, i = parseInt(h[2] + h[2], 16) / 255, h.length === 4 && (s = parseInt(h[3] + h[3], 16) / 255)) : (h.length === 6 || h.length === 8) && (t = parseInt(h.slice(0, 2), 16) / 255, e = parseInt(h.slice(2, 4), 16) / 255, i = parseInt(h.slice(4, 6), 16) / 255, h.length === 8 && (s = parseInt(h.slice(6, 8), 16) / 255));
4471
- const n = Math.max(t, e, i), a = Math.min(t, e, i), r = n - a;
4472
- let o = 0, l = 0;
4473
- const u = (n + a) / 2;
4474
- if (r !== 0)
4475
- switch (l = u > 0.5 ? r / (2 - n - a) : r / (n + a), n) {
4476
- case t:
4477
- o = ((e - i) / r + (e < i ? 6 : 0)) / 6;
4478
- break;
4479
- case e:
4480
- o = ((i - t) / r + 2) / 6;
4481
- break;
4482
- case i:
4483
- o = ((t - e) / r + 4) / 6;
4484
- break;
4485
- }
4486
- return {
4487
- h: Math.round(o * 360),
4488
- s: Math.round(l * 100),
4489
- l: Math.round(u * 100),
4490
- a: Math.round(s * 100) / 100
4681
+ #p = (t) => {
4682
+ t.key === "Escape" && this.open && (this.#o(), this.#r());
4491
4683
  };
4492
4684
  }
4493
- function N(h, t, e, i = 1) {
4494
- t /= 100, e /= 100;
4495
- const s = (1 - Math.abs(2 * e - 1)) * t, n = s * (1 - Math.abs(h / 60 % 2 - 1)), a = e - s / 2;
4496
- let r = 0, o = 0, l = 0;
4497
- h < 60 ? (r = s, o = n, l = 0) : h < 120 ? (r = n, o = s, l = 0) : h < 180 ? (r = 0, o = s, l = n) : h < 240 ? (r = 0, o = n, l = s) : h < 300 ? (r = n, o = 0, l = s) : (r = s, o = 0, l = n);
4498
- const u = (m) => Math.round((m + a) * 255).toString(16).padStart(2, "0");
4499
- let f = `#${u(r)}${u(o)}${u(l)}`;
4500
- return i < 1 && (f += Math.round(i * 255).toString(16).padStart(2, "0")), f;
4501
- }
4502
- class ze extends d {
4685
+ class Ye extends d {
4503
4686
  static attributes = {
4504
4687
  value: { type: "string", default: "#000000" },
4505
- format: { type: "string", default: "hex" },
4506
- "show-alpha": { type: "boolean", default: !1 },
4688
+ format: { type: "string", default: "oklch" },
4689
+ alpha: { type: "boolean", default: !1 },
4507
4690
  disabled: { type: "boolean", default: !1 }
4508
4691
  };
4509
4692
  #e = null;
4510
4693
  #t = null;
4511
4694
  #i = null;
4512
4695
  #s = null;
4513
- // Internal HSL(A) state
4514
- #n = 0;
4515
- #a = 0;
4516
- #r = 0;
4517
- #h = 1;
4518
- #o = !1;
4696
+ #n = null;
4697
+ #a = null;
4698
+ #r = null;
4699
+ #o = null;
4700
+ #h = null;
4701
+ #l = null;
4702
+ #d = null;
4703
+ #u = /* @__PURE__ */ new Map();
4704
+ // Internal OKLCH(A) state
4705
+ #c = 0;
4706
+ #f = 0;
4707
+ #m = 0;
4708
+ #b = 1;
4709
+ #p = !1;
4519
4710
  activate() {
4520
- this.#e = document.createElement("aui-color-area"), this.#e.setAttribute("data-color-picker-area", ""), this.#t = document.createElement("aui-color-slider"), this.#t.setAttribute("channel", "hue"), this.#t.setAttribute("data-color-picker-hue", ""), this.#i = document.createElement("aui-color-slider"), this.#i.setAttribute("channel", "alpha"), this.#i.setAttribute("data-color-picker-alpha", ""), this.#s = document.createElement("aui-color-field"), this.#s.setAttribute("data-color-picker-field", ""), this.appendChild(this.#e), this.appendChild(this.#t), this.appendChild(this.#i), this.appendChild(this.#s), this.#l(), this.addEffect(() => {
4521
- this.hasAttribute("show-alpha") ? this.#i.style.display = "" : this.#i.style.display = "none", this.disabled ? (this.#e.setAttribute("disabled", ""), this.#t.setAttribute("disabled", ""), this.#i.setAttribute("disabled", ""), this.#s.setAttribute("disabled", "")) : (this.#e.removeAttribute("disabled"), this.#t.removeAttribute("disabled"), this.#i.removeAttribute("disabled"), this.#s.removeAttribute("disabled"));
4711
+ this.#e = document.createElement("aui-color-area"), this.#e.setAttribute("data-color-picker-area", ""), this.appendChild(this.#e);
4712
+ const t = document.createElement("div");
4713
+ t.setAttribute("data-color-picker-sliders", "");
4714
+ const e = (a, r) => {
4715
+ const h = document.createElement("div");
4716
+ h.setAttribute("data-color-picker-slider-row", "");
4717
+ const l = document.createElement("span");
4718
+ l.setAttribute("data-color-picker-slider-label", ""), l.textContent = a;
4719
+ const c = document.createElement("aui-color-slider");
4720
+ c.setAttribute("channel", r);
4721
+ const u = document.createElement("span");
4722
+ return u.setAttribute("data-color-picker-slider-value", ""), this.#u.set(r, u), h.appendChild(l), h.appendChild(c), h.appendChild(u), t.appendChild(h), c;
4723
+ };
4724
+ this.#t = e("H", "hue"), this.#i = e("C", "chroma"), this.#s = e("L", "lightness"), this.#n = e("A", "alpha"), this.#a = this.#n.parentElement, this.appendChild(t), this.#r = document.createElement("div"), this.#r.setAttribute("data-color-picker-output", "");
4725
+ const i = document.createElement("div");
4726
+ i.setAttribute("data-color-picker-output-group", ""), this.#h = document.createElement("span"), this.#h.setAttribute("data-color-picker-value", ""), this.#o = document.createElement("aui-copy-button"), this.#o.setAttribute("density", "compact"), i.appendChild(this.#h), i.appendChild(this.#o);
4727
+ const s = document.createElement("div");
4728
+ s.setAttribute("data-color-picker-output-group", ""), this.#d = document.createElement("span"), this.#d.setAttribute("data-color-picker-value", ""), this.#l = document.createElement("aui-copy-button"), this.#l.setAttribute("density", "compact"), s.appendChild(this.#d), s.appendChild(this.#l), this.#r.appendChild(i), this.#r.appendChild(s), this.appendChild(this.#r), this.#A(), this.addEffect(() => {
4729
+ this.#a && (this.#a.style.display = this.alpha ? "" : "none");
4730
+ const a = [this.#t, this.#i, this.#s, this.#n];
4731
+ if (this.disabled) {
4732
+ this.#e.setAttribute("disabled", "");
4733
+ for (const r of a) r?.setAttribute("disabled", "");
4734
+ } else {
4735
+ this.#e.removeAttribute("disabled");
4736
+ for (const r of a) r?.removeAttribute("disabled");
4737
+ }
4522
4738
  }), this.addEffect(() => {
4523
- this.#o || (this.#l(), this.#d());
4524
- }), this.#e.addEventListener("input", this.#f), this.#e.addEventListener("change", this.#v), this.#t.addEventListener("input", this.#b), this.#t.addEventListener("change", this.#c), this.#i.addEventListener("input", this.#g), this.#i.addEventListener("change", this.#m), this.#s.addEventListener("change", this.#A);
4739
+ this.#p || (this.#A(), this.#v());
4740
+ }), this.#e.addEventListener("input", this.#g), this.#e.addEventListener("change", this.#k);
4741
+ const n = (a) => (r) => {
4742
+ const h = r;
4743
+ h.stopPropagation();
4744
+ const l = h.detail?.value ?? 0;
4745
+ a === "hue" ? this.#m = l : a === "chroma" ? this.#f = l : a === "lightness" ? this.#c = l : a === "alpha" && (this.#b = l), this.#y(), r.type === "change" && this.#E();
4746
+ };
4747
+ for (const [a, r] of [
4748
+ ["hue", this.#t],
4749
+ ["chroma", this.#i],
4750
+ ["lightness", this.#s],
4751
+ ["alpha", this.#n]
4752
+ ])
4753
+ r && (r.addEventListener("input", n(a)), r.addEventListener("change", n(a)));
4525
4754
  }
4526
4755
  dispose() {
4527
- this.#e?.removeEventListener("input", this.#f), this.#e?.removeEventListener("change", this.#v), this.#t?.removeEventListener("input", this.#b), this.#t?.removeEventListener("change", this.#c), this.#i?.removeEventListener("input", this.#g), this.#i?.removeEventListener("change", this.#m), this.#s?.removeEventListener("change", this.#A);
4528
4756
  }
4529
4757
  // ── Value parsing ───────────────────────────────────────
4530
- #l() {
4531
- const t = this.value || "#000000";
4758
+ #A() {
4759
+ const t = (this.value || "").trim();
4760
+ if (t.startsWith("oklch(")) {
4761
+ const e = At(t);
4762
+ if (e) {
4763
+ this.#c = e.l, this.#f = e.c, this.#m = e.h, this.#b = e.a;
4764
+ return;
4765
+ }
4766
+ }
4532
4767
  if (t.startsWith("#")) {
4533
- const e = z(t);
4534
- this.#n = e.h, this.#a = e.s, this.#r = e.l, this.#h = e.a;
4768
+ const e = gt(t);
4769
+ this.#c = e.l, this.#f = e.c, this.#m = e.h, this.#b = e.a;
4770
+ return;
4535
4771
  }
4772
+ this.#c = 0, this.#f = 0, this.#m = 0, this.#b = 1;
4536
4773
  }
4537
4774
  // ── Sync sub-components ─────────────────────────────────
4538
- #d() {
4539
- if (this.#e && (this.#e.setAttribute("hue", String(this.#n)), this.#e.setAttribute("saturation", String(this.#a)), this.#e.setAttribute("lightness", String(this.#r))), this.#t && (this.#t.setAttribute("value", String(this.#n)), this.#t.setAttribute("hue", String(this.#n)), this.#t.setAttribute("saturation", String(this.#a)), this.#t.setAttribute("lightness", String(this.#r))), this.#i && (this.#i.setAttribute("value", String(this.#h)), this.#i.setAttribute("hue", String(this.#n)), this.#i.setAttribute("saturation", String(this.#a)), this.#i.setAttribute("lightness", String(this.#r))), this.#s) {
4540
- const t = N(this.#n, this.#a, this.#r, this.#h);
4541
- this.#s.setAttribute("value", t);
4542
- }
4775
+ #v() {
4776
+ const t = { hue: String(this.#m), chroma: String(this.#f), lightness: String(this.#c) };
4777
+ this.#e && (this.#e.setAttribute("hue", t.hue), this.#e.setAttribute("chroma", t.chroma), this.#e.setAttribute("lightness", t.lightness));
4778
+ const e = (l, c) => {
4779
+ l && (l.setAttribute("value", c), l.setAttribute("hue", t.hue), l.setAttribute("chroma", t.chroma), l.setAttribute("lightness", t.lightness));
4780
+ };
4781
+ e(this.#t, t.hue), e(this.#i, t.chroma), e(this.#s, t.lightness), e(this.#n, String(this.#b));
4782
+ const i = this.#u.get("hue"), s = this.#u.get("chroma"), n = this.#u.get("lightness"), a = this.#u.get("alpha");
4783
+ i && (i.textContent = String(Math.round(this.#m))), s && (s.textContent = (Math.round(this.#f * 1e3) / 1e3).toFixed(3)), n && (n.textContent = (Math.round(this.#c * 1e3) / 1e3).toFixed(3)), a && (a.textContent = (Math.round(this.#b * 100) / 100).toFixed(2));
4784
+ const r = B(this.#c, this.#f, this.#m, this.#b < 1 ? this.#b : void 0), h = k(this.#c, this.#f, this.#m, this.#b);
4785
+ this.#o && this.#o.setAttribute("value", r), this.#h && (this.#h.textContent = r), this.#l && this.#l.setAttribute("value", h), this.#d && (this.#d.textContent = h);
4543
4786
  }
4544
- #u() {
4545
- this.#o = !0, this.value = N(this.#n, this.#a, this.#r, this.#h), this.#d(), this.#o = !1;
4787
+ #y() {
4788
+ this.#p = !0, this.format === "hex" ? this.value = k(this.#c, this.#f, this.#m, this.#b) : this.value = B(this.#c, this.#f, this.#m, this.#b < 1 ? this.#b : void 0), this.#v(), this.#p = !1;
4546
4789
  }
4547
- #p() {
4790
+ #E() {
4548
4791
  this.dispatchEvent(new CustomEvent("change", {
4549
4792
  bubbles: !0,
4550
4793
  composed: !0,
4551
4794
  detail: {
4552
4795
  value: this.value,
4553
- h: this.#n,
4554
- s: this.#a,
4555
- l: this.#r,
4556
- a: this.#h
4796
+ l: this.#c,
4797
+ c: this.#f,
4798
+ h: this.#m,
4799
+ a: this.#b
4557
4800
  }
4558
4801
  }));
4559
4802
  }
4560
4803
  // ── Event handlers ──────────────────────────────────────
4561
- #f = (t) => {
4562
- t.stopPropagation(), this.#a = t.detail.s, this.#r = t.detail.l, this.#u();
4563
- };
4564
- #v = (t) => {
4565
- t.stopPropagation(), this.#a = t.detail.s, this.#r = t.detail.l, this.#u(), this.#p();
4566
- };
4567
- #b = (t) => {
4568
- t.stopPropagation(), this.#n = t.detail.value, this.#u();
4569
- };
4570
- #c = (t) => {
4571
- t.stopPropagation(), this.#n = t.detail.value, this.#u(), this.#p();
4572
- };
4573
4804
  #g = (t) => {
4574
- t.stopPropagation(), this.#h = t.detail.value, this.#u();
4575
- };
4576
- #m = (t) => {
4577
- t.stopPropagation(), this.#h = t.detail.value, this.#u(), this.#p();
4805
+ t.stopPropagation(), this.#c = t.detail.l, this.#f = t.detail.c, this.#y();
4578
4806
  };
4579
- #A = (t) => {
4580
- t.stopPropagation();
4581
- const e = t.detail.value || "";
4582
- if (e.startsWith("#")) {
4583
- const i = z(e);
4584
- this.#n = i.h, this.#a = i.s, this.#r = i.l, this.#h = i.a, this.#u(), this.#p();
4585
- }
4807
+ #k = (t) => {
4808
+ t.stopPropagation(), this.#c = t.detail.l, this.#f = t.detail.c, this.#y(), this.#E();
4586
4809
  };
4587
4810
  }
4588
- function ct(h) {
4589
- const t = h.match(/^(\d+(?:\.\d+)?)\s*(KB|MB|GB)$/i);
4811
+ function wt(o) {
4812
+ const t = o.match(/^(\d+(?:\.\d+)?)\s*(KB|MB|GB)$/i);
4590
4813
  if (!t) return 1 / 0;
4591
4814
  const e = parseFloat(t[1]), i = t[2].toUpperCase();
4592
4815
  return i === "KB" ? e * 1024 : i === "MB" ? e * 1024 * 1024 : i === "GB" ? e * 1024 * 1024 * 1024 : 1 / 0;
4593
4816
  }
4594
- function pt(h) {
4595
- return h < 1024 ? `${h} B` : h < 1024 * 1024 ? `${(h / 1024).toFixed(1)} KB` : `${(h / (1024 * 1024)).toFixed(1)} MB`;
4817
+ function kt(o) {
4818
+ return o < 1024 ? `${o} B` : o < 1024 * 1024 ? `${(o / 1024).toFixed(1)} KB` : `${(o / (1024 * 1024)).toFixed(1)} MB`;
4596
4819
  }
4597
- class Ne extends d {
4820
+ class je extends d {
4598
4821
  static attributes = {
4599
4822
  accept: { type: "string", default: "" },
4600
4823
  multiple: { type: "boolean", default: !1 },
@@ -4616,10 +4839,10 @@ class Ne extends d {
4616
4839
  const e = document.createElement("span");
4617
4840
  e.setAttribute("data-file-upload-text", ""), e.textContent = "Drop files here or click to browse", this.#e.appendChild(e), this.#t = document.createElement("input"), this.#t.type = "file", this.#t.setAttribute("data-file-upload-input", ""), this.#t.hidden = !0, this.#e.appendChild(this.#t), this.#i = document.createElement("div"), this.#i.setAttribute("data-file-upload-list", ""), this.prepend(this.#e), this.appendChild(this.#i), this.addEffect(() => {
4618
4841
  this.#t && (this.accept ? this.#t.accept = this.accept : this.#t.removeAttribute("accept"), this.#t.multiple = this.multiple);
4619
- }), this.#e.addEventListener("click", this.#n), this.#t.addEventListener("change", this.#a), this.#e.addEventListener("dragover", this.#r), this.#e.addEventListener("dragleave", this.#h), this.#e.addEventListener("drop", this.#o);
4842
+ }), this.#e.addEventListener("click", this.#n), this.#t.addEventListener("change", this.#a), this.#e.addEventListener("dragover", this.#r), this.#e.addEventListener("dragleave", this.#o), this.#e.addEventListener("drop", this.#h);
4620
4843
  }
4621
4844
  dispose() {
4622
- this.#e?.removeEventListener("click", this.#n), this.#e?.removeEventListener("dragover", this.#r), this.#e?.removeEventListener("dragleave", this.#h), this.#e?.removeEventListener("drop", this.#o), this.#t?.removeEventListener("change", this.#a), this.#e?.remove(), this.#i?.remove(), this.#e = null, this.#t = null, this.#i = null, this.#s = [];
4845
+ this.#e?.removeEventListener("click", this.#n), this.#e?.removeEventListener("dragover", this.#r), this.#e?.removeEventListener("dragleave", this.#o), this.#e?.removeEventListener("drop", this.#h), this.#t?.removeEventListener("change", this.#a), this.#e?.remove(), this.#i?.remove(), this.#e = null, this.#t = null, this.#i = null, this.#s = [];
4623
4846
  }
4624
4847
  #n = () => {
4625
4848
  this.disabled || this.#t?.click();
@@ -4630,14 +4853,14 @@ class Ne extends d {
4630
4853
  #r = (t) => {
4631
4854
  t.preventDefault(), !this.disabled && this.#e?.setAttribute("data-file-upload-drag-active", "");
4632
4855
  };
4633
- #h = () => {
4856
+ #o = () => {
4634
4857
  this.#e?.removeAttribute("data-file-upload-drag-active");
4635
4858
  };
4636
- #o = (t) => {
4859
+ #h = (t) => {
4637
4860
  t.preventDefault(), this.#e?.removeAttribute("data-file-upload-drag-active"), !this.disabled && t.dataTransfer?.files && this.#l(Array.from(t.dataTransfer.files));
4638
4861
  };
4639
4862
  #l(t) {
4640
- const e = this["max-size"] ? ct(this["max-size"]) : 1 / 0, i = this["max-files"] ? parseInt(this["max-files"], 10) : 1 / 0;
4863
+ const e = this["max-size"] ? wt(this["max-size"]) : 1 / 0, i = this["max-files"] ? parseInt(this["max-files"], 10) : 1 / 0;
4641
4864
  for (const s of t)
4642
4865
  if (!(s.size > e)) {
4643
4866
  if (this.#s.length >= i) break;
@@ -4661,27 +4884,27 @@ class Ne extends d {
4661
4884
  for (let t = 0; t < this.#s.length; t++) {
4662
4885
  const e = this.#s[t], i = document.createElement("div");
4663
4886
  if (i.setAttribute("data-file-upload-item", ""), e.type.startsWith("image/")) {
4664
- const o = document.createElement("img");
4665
- o.setAttribute("data-file-upload-preview", ""), o.src = URL.createObjectURL(e), o.alt = e.name, i.appendChild(o);
4887
+ const h = document.createElement("img");
4888
+ h.setAttribute("data-file-upload-preview", ""), h.src = URL.createObjectURL(e), h.alt = e.name, i.appendChild(h);
4666
4889
  } else {
4667
- const o = document.createElement("aui-icon");
4668
- o.setAttribute("name", "file-text"), o.setAttribute("size", "sm"), o.setAttribute("data-file-upload-file-icon", ""), i.appendChild(o);
4890
+ const h = document.createElement("aui-icon");
4891
+ h.setAttribute("name", "file-text"), h.setAttribute("size", "sm"), h.setAttribute("data-file-upload-file-icon", ""), i.appendChild(h);
4669
4892
  }
4670
4893
  const s = document.createElement("span");
4671
4894
  s.setAttribute("data-file-upload-name", ""), s.textContent = e.name, i.appendChild(s);
4672
4895
  const n = document.createElement("span");
4673
- n.setAttribute("data-file-upload-size", ""), n.textContent = pt(e.size), i.appendChild(n);
4896
+ n.setAttribute("data-file-upload-size", ""), n.textContent = kt(e.size), i.appendChild(n);
4674
4897
  const a = document.createElement("button");
4675
4898
  a.setAttribute("data-file-upload-remove", ""), a.setAttribute("aria-label", `Remove ${e.name}`), a.innerHTML = '<aui-icon name="x" size="xs"></aui-icon>';
4676
4899
  const r = t;
4677
- a.addEventListener("click", (o) => {
4678
- o.stopPropagation(), this.#d(r);
4900
+ a.addEventListener("click", (h) => {
4901
+ h.stopPropagation(), this.#d(r);
4679
4902
  }), i.appendChild(a), this.#i.appendChild(i);
4680
4903
  }
4681
4904
  }
4682
4905
  }
4683
4906
  }
4684
- class He extends d {
4907
+ class Xe extends d {
4685
4908
  static attributes = {
4686
4909
  value: { type: "string", default: "" },
4687
4910
  label: { type: "string", default: "Copy" },
@@ -4692,7 +4915,7 @@ class He extends d {
4692
4915
  #i = null;
4693
4916
  #s = null;
4694
4917
  activate() {
4695
- this.#e = document.createElement("button"), this.#e.setAttribute("data-copy-trigger", ""), this.#t = document.createElement("aui-icon"), this.#t.setAttribute("name", "copy"), this.#t.setAttribute("data-copy-icon", ""), this.#i = document.createElement("aui-icon"), this.#i.setAttribute("name", "check"), this.#i.setAttribute("data-copy-check", ""), this.#i.hidden = !0, this.#e.appendChild(this.#t), this.#e.appendChild(this.#i);
4918
+ this.#e = document.createElement("aui-button"), this.#e.setAttribute("ghost", ""), this.#e.setAttribute("hide-label", ""), this.#e.setAttribute("label", "Copy"), this.#e.setAttribute("data-copy-trigger", ""), this.#t = document.createElement("aui-icon"), this.#t.setAttribute("name", "copy"), this.#t.setAttribute("data-copy-icon", ""), this.#i = document.createElement("aui-icon"), this.#i.setAttribute("name", "check"), this.#i.setAttribute("data-copy-check", ""), this.#i.style.display = "none", this.#e.appendChild(this.#t), this.#e.appendChild(this.#i);
4696
4919
  const t = this.firstChild;
4697
4920
  t ? this.insertBefore(this.#e, t) : this.appendChild(this.#e), this.addEffect(() => {
4698
4921
  this.#e && this.#e.setAttribute("aria-label", this.label || "Copy");
@@ -4713,28 +4936,34 @@ class He extends d {
4713
4936
  }
4714
4937
  };
4715
4938
  #a() {
4716
- this.#s && clearTimeout(this.#s), this.#t && (this.#t.hidden = !0), this.#i && (this.#i.hidden = !1), this.#e?.setAttribute("data-copy-copied", ""), this.#s = setTimeout(() => {
4717
- this.#t && (this.#t.hidden = !1), this.#i && (this.#i.hidden = !0), this.#e?.removeAttribute("data-copy-copied"), this.#s = null;
4718
- }, 1500);
4939
+ this.#s && clearTimeout(this.#s), this.#t && (this.#t.style.display = "none"), this.#i && (this.#i.style.display = ""), this.#e?.setAttribute("data-copy-copied", ""), this.#s = setTimeout(() => {
4940
+ this.#t && (this.#t.style.display = ""), this.#i && (this.#i.style.display = "none"), this.#e?.removeAttribute("data-copy-copied"), this.#s = null;
4941
+ }, 3e3);
4719
4942
  }
4720
4943
  }
4721
- class Ue extends d {
4944
+ class We extends d {
4722
4945
  static attributes = {
4723
4946
  label: { type: "string", default: "" },
4724
4947
  value: { type: "string", default: "" },
4725
4948
  trend: { type: "enum", default: "", values: ["up", "down", "neutral", ""] },
4726
- change: { type: "string", default: "" }
4949
+ change: { type: "string", default: "" },
4950
+ "animate-count": { type: "boolean", default: !1 },
4951
+ "animate-count-start": { type: "string", default: "0" },
4952
+ "animate-scramble": { type: "boolean", default: !1 },
4953
+ "duration-ms": { type: "string", default: "2000" }
4727
4954
  };
4728
4955
  #e = null;
4729
4956
  #t = null;
4730
4957
  #i = null;
4958
+ #s = null;
4959
+ #n = !1;
4731
4960
  activate() {
4732
4961
  this.#e = document.createElement("span"), this.#e.setAttribute("data-stat-label", ""), this.#t = document.createElement("span"), this.#t.setAttribute("data-stat-value", ""), this.#i = document.createElement("span"), this.#i.setAttribute("data-stat-change", "");
4733
4962
  const t = this.firstChild;
4734
4963
  t ? (this.insertBefore(this.#i, t), this.insertBefore(this.#t, this.#i), this.insertBefore(this.#e, this.#t)) : (this.appendChild(this.#e), this.appendChild(this.#t), this.appendChild(this.#i)), this.addEffect(() => {
4735
4964
  this.#e && (this.#e.textContent = this.label, this.#e.style.display = this.label ? "" : "none");
4736
4965
  }), this.addEffect(() => {
4737
- this.#t && (this.#t.textContent = this.value, this.#t.style.display = this.value ? "" : "none");
4966
+ this.#t && (this.#t.style.display = this.value ? "" : "none", this.value && (this["animate-count"] || this["animate-scramble"]) && !this.#n ? (this.#n = !0, this["animate-scramble"] ? this.#h(this.value) : this.#o(this.value)) : this.#t.textContent = this.value);
4738
4967
  }), this.addEffect(() => {
4739
4968
  if (!this.#i) return;
4740
4969
  const e = this.trend, i = this.change;
@@ -4747,11 +4976,51 @@ class Ue extends d {
4747
4976
  (e === "up" || e === "down") && (s += "<span data-stat-arrow></span>"), s += i || "", this.#i.innerHTML = s;
4748
4977
  });
4749
4978
  }
4979
+ /** Parse a formatted value into { prefix, number, suffix, decimals, useCommas } */
4980
+ #a(t) {
4981
+ const e = t.match(/^([^0-9]*?)([\d,]+\.?\d*)(.*?)$/);
4982
+ if (!e) return { prefix: "", num: 0, suffix: "", decimals: 0, useCommas: !1 };
4983
+ const i = e[1], s = e[2], n = e[3], a = s.includes(","), r = s.replace(/,/g, ""), h = parseFloat(r), l = r.indexOf("."), c = l >= 0 ? r.length - l - 1 : 0;
4984
+ return { prefix: i, num: h, suffix: n, decimals: c, useCommas: a };
4985
+ }
4986
+ /** Format a number back with prefix, suffix, commas, decimals */
4987
+ #r(t, e, i, s, n) {
4988
+ let a = s > 0 ? t.toFixed(s) : String(Math.round(t));
4989
+ if (n) {
4990
+ const [r, h] = a.split("."), l = r.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
4991
+ a = h ? `${l}.${h}` : l;
4992
+ }
4993
+ return `${e}${a}${i}`;
4994
+ }
4995
+ /** Animate count-up from start to target */
4996
+ #o(t) {
4997
+ const { prefix: e, num: i, suffix: s, decimals: n, useCommas: a } = this.#a(t), r = this["animate-count-start"] || "0", { num: h } = this.#a(r.match(/\d/) ? r : `${e}${r}${s}`), l = parseInt(this["duration-ms"], 10) || 2e3, c = performance.now(), u = (f) => {
4998
+ const p = f - c, m = Math.min(p / l, 1), v = 1 - Math.pow(1 - m, 3), g = h + (i - h) * v;
4999
+ this.#t && (this.#t.textContent = this.#r(g, e, s, n, a)), m < 1 && (this.#s = requestAnimationFrame(u));
5000
+ };
5001
+ this.#s = requestAnimationFrame(u);
5002
+ }
5003
+ /** Animate scramble — randomize characters then resolve to target */
5004
+ #h(t) {
5005
+ const e = "0123456789", i = parseInt(this["duration-ms"], 10) || 2e3, s = performance.now(), n = (a) => {
5006
+ const r = a - s, h = Math.min(r / i, 1);
5007
+ if (this.#t) {
5008
+ let l = "";
5009
+ for (let c = 0; c < t.length; c++) {
5010
+ const u = h * t.length - c;
5011
+ u >= 1 || !/\d/.test(t[c]) ? l += t[c] : (u > 0, l += e[Math.floor(Math.random() * e.length)]);
5012
+ }
5013
+ this.#t.textContent = l;
5014
+ }
5015
+ h < 1 ? this.#s = requestAnimationFrame(n) : this.#t && (this.#t.textContent = t);
5016
+ };
5017
+ this.#s = requestAnimationFrame(n);
5018
+ }
4750
5019
  dispose() {
4751
- this.#e?.remove(), this.#t?.remove(), this.#i?.remove(), this.#e = null, this.#t = null, this.#i = null;
5020
+ this.#s && cancelAnimationFrame(this.#s), this.#e?.remove(), this.#t?.remove(), this.#i?.remove(), this.#e = null, this.#t = null, this.#i = null;
4752
5021
  }
4753
5022
  }
4754
- class $e extends d {
5023
+ class Je extends d {
4755
5024
  static attributes = {
4756
5025
  src: { type: "string", default: "" },
4757
5026
  alt: { type: "string", default: "" },
@@ -4764,7 +5033,7 @@ class $e extends d {
4764
5033
  #t = null;
4765
5034
  #i = !1;
4766
5035
  activate() {
4767
- this.#s(), this.addEffect(() => this.#n()), this.addEffect(() => this.#a()), this.addEffect(() => this.#r()), this.addEffect(() => this.#h());
5036
+ this.#s(), this.addEffect(() => this.#n()), this.addEffect(() => this.#a()), this.addEffect(() => this.#r()), this.addEffect(() => this.#o());
4768
5037
  }
4769
5038
  dispose() {
4770
5039
  this.#t?.remove(), this.#e = null, this.#t = null;
@@ -4775,7 +5044,7 @@ class $e extends d {
4775
5044
  this.setAttribute("data-image-loaded", ""), this.removeAttribute("data-image-error"), this.#i = !1;
4776
5045
  }), t.addEventListener("error", () => {
4777
5046
  this.#i || (this.#i = !0, this.removeAttribute("data-image-loaded"), this.setAttribute("data-image-error", ""), this.fallback && (t.src = this.fallback));
4778
- }), this.prepend(t), this.#e = t, this.zoomable && (this.setAttribute("data-image-zoomable", ""), this.addEventListener("click", this.#o));
5047
+ }), this.prepend(t), this.#e = t, this.zoomable && (this.setAttribute("data-image-zoomable", ""), this.addEventListener("click", this.#h));
4779
5048
  }
4780
5049
  #n() {
4781
5050
  const t = this.src;
@@ -4789,11 +5058,11 @@ class $e extends d {
4789
5058
  const t = this.aspect;
4790
5059
  t ? this.style.aspectRatio = t : this.style.removeProperty("aspect-ratio");
4791
5060
  }
4792
- #h() {
5061
+ #o() {
4793
5062
  const t = this.fit;
4794
5063
  this.#e && (this.#e.style.objectFit = t);
4795
5064
  }
4796
- #o = () => {
5065
+ #h = () => {
4797
5066
  if (!this.src) return;
4798
5067
  const t = document.createElement("dialog");
4799
5068
  t.setAttribute("data-image-lightbox", "");
@@ -4805,7 +5074,7 @@ class $e extends d {
4805
5074
  }), document.body.append(t), this.#t = t, t.showModal();
4806
5075
  };
4807
5076
  }
4808
- class Be extends d {
5077
+ class Ze extends d {
4809
5078
  static deferChildren = !0;
4810
5079
  static attributes = {
4811
5080
  "auto-play": { type: "boolean", default: !1 },
@@ -4822,22 +5091,22 @@ class Be extends d {
4822
5091
  #a = null;
4823
5092
  #r = 0;
4824
5093
  activate() {
4825
- this.#h(), this.addEffect(() => this.#f()), this.addEffect(() => this.#l()), this.addEffect(() => this.#d());
5094
+ this.#o(), this.addEffect(() => this.#f()), this.addEffect(() => this.#l()), this.addEffect(() => this.#d());
4826
5095
  }
4827
5096
  dispose() {
4828
5097
  this.#b(), this.#a?.disconnect(), this.#e = null, this.#t = null, this.#i = null, this.#s = null;
4829
5098
  }
4830
- #h() {
5099
+ #o() {
4831
5100
  const t = document.createElement("div");
4832
5101
  for (t.setAttribute("data-carousel-track", ""), t.setAttribute("tabindex", "0"), t.setAttribute("role", "group"), t.setAttribute("aria-roledescription", "carousel"); this.firstChild; ) {
4833
5102
  const e = this.firstChild;
4834
5103
  e instanceof HTMLElement && (e.setAttribute("data-carousel-slide", ""), e.setAttribute("role", "group"), e.setAttribute("aria-roledescription", "slide")), t.append(e);
4835
5104
  }
4836
- this.append(t), this.#e = t, t.addEventListener("scroll", this.#m, { passive: !0 }), t.addEventListener("keydown", this.#A), this.addEventListener("mouseenter", this.#c), this.addEventListener("mouseleave", this.#g), this.addEventListener("focusin", this.#c), this.addEventListener("focusout", this.#g), this.#a = new IntersectionObserver(
5105
+ this.append(t), this.#e = t, t.addEventListener("scroll", this.#v, { passive: !0 }), t.addEventListener("keydown", this.#y), this.addEventListener("mouseenter", this.#p), this.addEventListener("mouseleave", this.#A), this.addEventListener("focusin", this.#p), this.addEventListener("focusout", this.#A), this.#a = new IntersectionObserver(
4837
5106
  (e) => {
4838
5107
  for (const i of e)
4839
5108
  if (i.isIntersecting) {
4840
- const n = this.#o().indexOf(i.target);
5109
+ const n = this.#h().indexOf(i.target);
4841
5110
  n !== -1 && (this.#r = n, this.#u(), this.dispatchEvent(
4842
5111
  new CustomEvent("aui:carousel-change", {
4843
5112
  bubbles: !0,
@@ -4848,19 +5117,19 @@ class Be extends d {
4848
5117
  },
4849
5118
  { root: t, threshold: 0.5 }
4850
5119
  );
4851
- for (const e of this.#o())
5120
+ for (const e of this.#h())
4852
5121
  this.#a.observe(e);
4853
5122
  }
4854
- #o() {
5123
+ #h() {
4855
5124
  return this.#e ? Array.from(this.#e.querySelectorAll("[data-carousel-slide]")) : [];
4856
5125
  }
4857
5126
  #l() {
4858
5127
  const t = this["show-arrows"];
4859
5128
  if (t && !this.#i) {
4860
- const e = document.createElement("button");
4861
- e.setAttribute("data-carousel-prev", ""), e.setAttribute("aria-label", "Previous slide"), e.innerHTML = '<aui-icon name="caret-left" size="sm"></aui-icon>', e.addEventListener("click", () => this.#p(this.#r - 1));
4862
- const i = document.createElement("button");
4863
- i.setAttribute("data-carousel-next", ""), i.setAttribute("aria-label", "Next slide"), i.innerHTML = '<aui-icon name="caret-right" size="sm"></aui-icon>', i.addEventListener("click", () => this.#p(this.#r + 1)), this.append(e, i), this.#i = e, this.#s = i;
5129
+ const e = document.createElement("aui-button");
5130
+ e.setAttribute("data-carousel-prev", ""), e.setAttribute("scrim", ""), e.setAttribute("hide-label", ""), e.setAttribute("label", "Previous slide"), e.setAttribute("icon-leading", "caret-left"), e.setAttribute("size", "sm"), e.addEventListener("click", () => this.#c(this.#r - 1));
5131
+ const i = document.createElement("aui-button");
5132
+ i.setAttribute("data-carousel-next", ""), i.setAttribute("scrim", ""), i.setAttribute("hide-label", ""), i.setAttribute("label", "Next slide"), i.setAttribute("icon-leading", "caret-right"), i.setAttribute("size", "sm"), i.addEventListener("click", () => this.#c(this.#r + 1)), this.append(e, i), this.#i = e, this.#s = i;
4864
5133
  } else !t && this.#i && (this.#i.remove(), this.#s?.remove(), this.#i = null, this.#s = null);
4865
5134
  }
4866
5135
  #d() {
@@ -4868,10 +5137,10 @@ class Be extends d {
4868
5137
  if (t && !this.#t) {
4869
5138
  const e = document.createElement("div");
4870
5139
  e.setAttribute("data-carousel-dots", ""), e.setAttribute("role", "tablist");
4871
- const i = this.#o();
5140
+ const i = this.#h();
4872
5141
  for (let s = 0; s < i.length; s++) {
4873
5142
  const n = document.createElement("button");
4874
- n.setAttribute("data-carousel-dot", ""), n.setAttribute("role", "tab"), n.setAttribute("aria-label", `Go to slide ${s + 1}`), s === this.#r && n.setAttribute("data-carousel-dot-active", ""), n.addEventListener("click", () => this.#p(s)), e.append(n);
5143
+ n.setAttribute("data-carousel-dot", ""), n.setAttribute("role", "tab"), n.setAttribute("aria-label", `Go to slide ${s + 1}`), s === this.#r && n.setAttribute("data-carousel-dot-active", ""), n.addEventListener("click", () => this.#c(s)), e.append(n);
4875
5144
  }
4876
5145
  this.append(e), this.#t = e;
4877
5146
  } else !t && this.#t && (this.#t.remove(), this.#t = null);
@@ -4882,8 +5151,8 @@ class Be extends d {
4882
5151
  for (let e = 0; e < t.length; e++)
4883
5152
  e === this.#r ? t[e].setAttribute("data-carousel-dot-active", "") : t[e].removeAttribute("data-carousel-dot-active");
4884
5153
  }
4885
- #p(t) {
4886
- const e = this.#o();
5154
+ #c(t) {
5155
+ const e = this.#h();
4887
5156
  if (!e.length || !this.#e) return;
4888
5157
  let i = t;
4889
5158
  this.loop ? i = (t % e.length + e.length) % e.length : i = Math.max(0, Math.min(t, e.length - 1));
@@ -4891,33 +5160,33 @@ class Be extends d {
4891
5160
  s && s.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "start" });
4892
5161
  }
4893
5162
  #f() {
4894
- this["auto-play"] ? this.#v() : this.#b();
5163
+ this["auto-play"] ? this.#m() : this.#b();
4895
5164
  }
4896
- #v() {
5165
+ #m() {
4897
5166
  this.#b();
4898
5167
  const t = parseInt(this.interval, 10) || 4e3;
4899
5168
  this.#n = setInterval(() => {
4900
- const e = this.#o(), i = this.#r + 1;
4901
- i >= e.length && !this.loop ? this.#p(0) : this.#p(i);
5169
+ const e = this.#h(), i = this.#r + 1;
5170
+ i >= e.length && !this.loop ? this.#c(0) : this.#c(i);
4902
5171
  }, t);
4903
5172
  }
4904
5173
  #b() {
4905
5174
  this.#n !== null && (clearInterval(this.#n), this.#n = null);
4906
5175
  }
4907
- #c = () => {
5176
+ #p = () => {
4908
5177
  this.#b();
4909
5178
  };
4910
- #g = () => {
4911
- this["auto-play"] && this.#v();
5179
+ #A = () => {
5180
+ this["auto-play"] && this.#m();
4912
5181
  };
4913
- #m = () => {
5182
+ #v = () => {
4914
5183
  };
4915
- #A = (t) => {
4916
- t.key === "ArrowLeft" ? (t.preventDefault(), this.#p(this.#r - 1)) : t.key === "ArrowRight" && (t.preventDefault(), this.#p(this.#r + 1));
5184
+ #y = (t) => {
5185
+ t.key === "ArrowLeft" ? (t.preventDefault(), this.#c(this.#r - 1)) : t.key === "ArrowRight" && (t.preventDefault(), this.#c(this.#r + 1));
4917
5186
  };
4918
5187
  }
4919
- let ft = 0;
4920
- class Ve extends d {
5188
+ let Ct = 0;
5189
+ class Qe extends d {
4921
5190
  static attributes = {
4922
5191
  max: { type: "string", default: "50" }
4923
5192
  };
@@ -4929,14 +5198,14 @@ class Ve extends d {
4929
5198
  #a = null;
4930
5199
  #r = null;
4931
5200
  activate() {
4932
- this.#h();
5201
+ this.#o();
4933
5202
  }
4934
5203
  dispose() {
4935
5204
  this.#t = null, this.#i = null, this.#s = null, this.#n = null, this.#a = null, this.#r = null, this.#e.length = 0;
4936
5205
  }
4937
5206
  // ── Public API ──────────────────────────────────────────────
4938
5207
  add(t) {
4939
- const e = `notif-${++ft}`, i = {
5208
+ const e = `notif-${++Ct}`, i = {
4940
5209
  id: e,
4941
5210
  title: t.title,
4942
5211
  message: t.message,
@@ -4970,9 +5239,9 @@ class Ve extends d {
4970
5239
  return this.#e.filter((t) => !t.read).length;
4971
5240
  }
4972
5241
  // ── Internal ────────────────────────────────────────────────
4973
- #h() {
4974
- const t = document.createElement("button");
4975
- t.setAttribute("data-nc-trigger", ""), t.setAttribute("aria-label", "Notifications"), t.innerHTML = '<aui-icon name="bell" size="sm"></aui-icon>', t.addEventListener("click", this.#o);
5242
+ #o() {
5243
+ const t = document.createElement("aui-button");
5244
+ t.setAttribute("data-nc-trigger", ""), t.setAttribute("ghost", ""), t.setAttribute("hide-label", ""), t.setAttribute("label", "Notifications"), t.setAttribute("icon-leading", "bell"), t.addEventListener("click", this.#h);
4976
5245
  const e = document.createElement("span");
4977
5246
  e.setAttribute("data-nc-badge", ""), e.hidden = !0, t.append(e);
4978
5247
  const i = document.createElement("div");
@@ -4981,14 +5250,14 @@ class Ve extends d {
4981
5250
  s.setAttribute("data-nc-header", "");
4982
5251
  const n = document.createElement("span");
4983
5252
  n.setAttribute("data-nc-title", ""), n.textContent = "Notifications";
4984
- const a = document.createElement("button");
4985
- a.setAttribute("data-nc-clear", ""), a.textContent = "Clear all", a.addEventListener("click", () => this.clearAll()), this.#r = a, s.append(n, a);
5253
+ const a = document.createElement("aui-button");
5254
+ a.setAttribute("data-nc-clear", ""), a.setAttribute("ghost", ""), a.setAttribute("size", "sm"), a.textContent = "Clear all", a.addEventListener("click", () => this.clearAll()), this.#r = a, s.append(n, a);
4986
5255
  const r = document.createElement("div");
4987
5256
  r.setAttribute("data-nc-list", ""), this.#n = r;
4988
- const o = document.createElement("div");
4989
- o.setAttribute("data-nc-empty", ""), o.textContent = "No notifications", this.#a = o, i.append(s, r, o), this.append(t, i), this.#t = t, this.#i = e, this.#s = i, this.#l();
5257
+ const h = document.createElement("div");
5258
+ h.setAttribute("data-nc-empty", ""), h.textContent = "No notifications", this.#a = h, i.append(s, r, h), this.append(t, i), this.#t = t, this.#i = e, this.#s = i, this.#l();
4990
5259
  }
4991
- #o = () => {
5260
+ #h = () => {
4992
5261
  if (this.#s) {
4993
5262
  try {
4994
5263
  this.#s.togglePopover();
@@ -5012,14 +5281,14 @@ class Ve extends d {
5012
5281
  s.setAttribute("data-nc-item-content", "");
5013
5282
  const n = document.createElement("div");
5014
5283
  if (n.setAttribute("data-nc-item-title", ""), n.textContent = e.title, s.append(n), e.message) {
5015
- const o = document.createElement("div");
5016
- o.setAttribute("data-nc-item-message", ""), o.textContent = e.message, s.append(o);
5284
+ const h = document.createElement("div");
5285
+ h.setAttribute("data-nc-item-message", ""), h.textContent = e.message, s.append(h);
5017
5286
  }
5018
5287
  const a = document.createElement("div");
5019
5288
  a.setAttribute("data-nc-item-time", ""), a.textContent = this.#d(e.timestamp), s.append(a);
5020
- const r = document.createElement("button");
5021
- r.setAttribute("data-nc-item-dismiss", ""), r.setAttribute("aria-label", "Dismiss"), r.innerHTML = '<aui-icon name="x" size="xs"></aui-icon>', r.addEventListener("click", (o) => {
5022
- o.stopPropagation(), this.dismiss(e.id);
5289
+ const r = document.createElement("aui-button");
5290
+ r.setAttribute("data-nc-item-dismiss", ""), r.setAttribute("ghost", ""), r.setAttribute("hide-label", ""), r.setAttribute("label", "Dismiss"), r.setAttribute("icon-leading", "x"), r.setAttribute("size", "sm"), r.addEventListener("click", (h) => {
5291
+ h.stopPropagation(), this.dismiss(e.id);
5023
5292
  }), i.append(s, r), this.#n.append(i);
5024
5293
  }
5025
5294
  }
@@ -5031,7 +5300,7 @@ class Ve extends d {
5031
5300
  return s < 24 ? `${s}h ago` : `${Math.floor(s / 24)}d ago`;
5032
5301
  }
5033
5302
  }
5034
- class Ke extends d {
5303
+ class ti extends d {
5035
5304
  static attributes = {
5036
5305
  icon: { type: "string", default: "" },
5037
5306
  heading: { type: "string", default: "" },
@@ -5042,19 +5311,19 @@ class Ke extends d {
5042
5311
  #i = null;
5043
5312
  #s = null;
5044
5313
  activate() {
5045
- this.#n(), this.addEffect(() => this.#a()), this.addEffect(() => this.#r()), this.addEffect(() => this.#h());
5314
+ this.#n(), this.addEffect(() => this.#a()), this.addEffect(() => this.#r()), this.addEffect(() => this.#o());
5046
5315
  }
5047
5316
  dispose() {
5048
5317
  this.#e = null, this.#t = null, this.#i = null, this.#s = null;
5049
5318
  }
5050
5319
  #n() {
5051
5320
  const t = Array.from(this.childNodes), e = document.createElement("aui-icon");
5052
- e.setAttribute("data-empty-state-icon", ""), e.setAttribute("size", "xl"), this.#e = e;
5321
+ e.setAttribute("data-empty-state-icon", ""), e.setAttribute("size", "3xl"), this.#e = e;
5053
5322
  const i = document.createElement("aui-heading");
5054
5323
  i.setAttribute("data-empty-state-heading", ""), i.setAttribute("size", "md"), this.#t = i;
5055
5324
  const s = document.createElement("aui-text");
5056
5325
  s.setAttribute("data-empty-state-description", ""), s.setAttribute("muted", ""), s.setAttribute("size", "sm"), this.#i = s;
5057
- const n = document.createElement("div");
5326
+ const n = document.createElement("aui-button-group");
5058
5327
  n.setAttribute("data-empty-state-actions", "");
5059
5328
  for (const a of t)
5060
5329
  n.append(a);
@@ -5068,93 +5337,273 @@ class Ke extends d {
5068
5337
  const t = this.heading;
5069
5338
  this.#t && (this.#t.textContent = t, this.#t.hidden = !t);
5070
5339
  }
5071
- #h() {
5340
+ #o() {
5072
5341
  const t = this.description;
5073
5342
  this.#i && (this.#i.textContent = t, this.#i.hidden = !t);
5074
5343
  }
5075
5344
  }
5345
+ class ei extends d {
5346
+ static attributes = {
5347
+ value: { type: "string", default: "0" },
5348
+ min: { type: "string", default: "0" },
5349
+ max: { type: "string", default: "100" }
5350
+ };
5351
+ activate() {
5352
+ this.addEffect(() => {
5353
+ const t = Number(this.min) || 0, e = Number(this.max) || 100, i = Number(this.value) || 0, s = Math.max(0, Math.min(100, (i - t) / (e - t) * 100));
5354
+ this.style.setProperty("--aui-meter-pct", String(s));
5355
+ });
5356
+ }
5357
+ }
5358
+ class ii extends d {
5359
+ static attributes = {
5360
+ disabled: { type: "boolean", default: !1 },
5361
+ required: { type: "boolean", default: !1 },
5362
+ name: { type: "string", default: "" },
5363
+ value: { type: "string", default: "" },
5364
+ label: { type: "string", default: "" },
5365
+ min: { type: "number", default: 0 },
5366
+ max: { type: "number", default: 0 }
5367
+ };
5368
+ activate() {
5369
+ this.setAttribute("role", "group"), this.addEffect(() => {
5370
+ for (const t of this.#e())
5371
+ this.name && t.setAttribute("name", this.name), this.disabled && t.setAttribute("disabled", "");
5372
+ }), this.addEffect(() => {
5373
+ const t = this.#t(this.value);
5374
+ for (const e of this.#e()) {
5375
+ const i = e.getAttribute("value") || "", s = t.includes(i);
5376
+ s && !e.hasAttribute("checked") ? e.setAttribute("checked", "") : !s && e.hasAttribute("checked") && e.removeAttribute("checked");
5377
+ }
5378
+ }), this.addEffect(() => {
5379
+ if (this.disabled) return;
5380
+ const t = this.max;
5381
+ if (!t) {
5382
+ for (const s of this.#e())
5383
+ s.hasAttribute("data-checkbox-group-disabled") && (s.removeAttribute("disabled"), s.removeAttribute("data-checkbox-group-disabled"));
5384
+ return;
5385
+ }
5386
+ const i = this.#t(this.value).length >= t;
5387
+ for (const s of this.#e()) {
5388
+ const n = s.hasAttribute("checked");
5389
+ i && !n ? (s.setAttribute("disabled", ""), s.setAttribute("data-checkbox-group-disabled", "")) : s.hasAttribute("data-checkbox-group-disabled") && (s.removeAttribute("disabled"), s.removeAttribute("data-checkbox-group-disabled"));
5390
+ }
5391
+ }), this.addEffect(() => {
5392
+ this.label ? this.setAttribute("aria-label", this.label) : this.removeAttribute("aria-label");
5393
+ }), this.addEventListener("change", this.#i);
5394
+ }
5395
+ dispose() {
5396
+ this.removeEventListener("change", this.#i);
5397
+ }
5398
+ #e() {
5399
+ return Array.from(this.querySelectorAll("aui-checkbox"));
5400
+ }
5401
+ #t(t) {
5402
+ return t ? t.split(",").map((e) => e.trim()).filter(Boolean) : [];
5403
+ }
5404
+ #i = (t) => {
5405
+ if (t.target.tagName !== "AUI-CHECKBOX") return;
5406
+ t.stopPropagation();
5407
+ const i = [];
5408
+ for (const s of this.#e())
5409
+ s.hasAttribute("checked") && i.push(s.getAttribute("value") || "");
5410
+ this.value = i.join(","), this.dispatchEvent(new CustomEvent("change", {
5411
+ bubbles: !0,
5412
+ detail: { values: i }
5413
+ }));
5414
+ };
5415
+ }
5416
+ class si extends d {
5417
+ static attributes = {
5418
+ action: { type: "string", default: "" },
5419
+ method: { type: "string", default: "post" },
5420
+ "no-validate": { type: "boolean", default: !1 }
5421
+ };
5422
+ get noValidate() {
5423
+ return this.hasAttribute("no-validate");
5424
+ }
5425
+ activate() {
5426
+ this.addEventListener("click", this.#e);
5427
+ }
5428
+ dispose() {
5429
+ this.removeEventListener("click", this.#e);
5430
+ }
5431
+ #e = (t) => {
5432
+ const e = t.target?.closest?.(
5433
+ '[type="submit"], [data-submit]'
5434
+ );
5435
+ !e || !this.contains(e) || (t.preventDefault(), this.submit());
5436
+ };
5437
+ /** Programmatic submit — runs validation then dispatches. */
5438
+ submit() {
5439
+ if (!this.noValidate) {
5440
+ const e = this.#t();
5441
+ if (e.length > 0) {
5442
+ this.dispatchEvent(new CustomEvent("invalid", {
5443
+ bubbles: !0,
5444
+ detail: { errors: e }
5445
+ }));
5446
+ return;
5447
+ }
5448
+ }
5449
+ const t = this.#s();
5450
+ this.dispatchEvent(new CustomEvent("submit", {
5451
+ bubbles: !0,
5452
+ detail: { data: t }
5453
+ }));
5454
+ }
5455
+ /** Validate all required fields. Returns array of error objects. */
5456
+ #t() {
5457
+ const t = [], e = this.querySelectorAll("aui-field[required]");
5458
+ for (const s of e)
5459
+ if (this.#i(s))
5460
+ s.hasAttribute("error") && s.removeAttribute("error");
5461
+ else {
5462
+ const r = `${s.getAttribute("label") || "This field"} is required`;
5463
+ s.setAttribute("error", r), t.push({ field: s, message: r });
5464
+ }
5465
+ const i = this.querySelectorAll("aui-field[error]");
5466
+ for (const s of i) {
5467
+ if (t.some((a) => a.field === s)) continue;
5468
+ const n = s.getAttribute("error") || "Invalid";
5469
+ t.push({ field: s, message: n });
5470
+ }
5471
+ return t;
5472
+ }
5473
+ /** Check whether a field's input child has a value. */
5474
+ #i(t) {
5475
+ const e = t.querySelector(
5476
+ "aui-input, aui-textarea, aui-select, aui-checkbox, aui-radio-group, aui-checkbox-group"
5477
+ );
5478
+ if (!e) return !1;
5479
+ const i = e.tagName;
5480
+ if (i === "AUI-CHECKBOX")
5481
+ return e.hasAttribute("checked");
5482
+ if (i === "AUI-CHECKBOX-GROUP" || i === "AUI-RADIO-GROUP")
5483
+ return !!e.getAttribute("value");
5484
+ const s = e.value ?? e.getAttribute("value") ?? "";
5485
+ return String(s).trim() !== "";
5486
+ }
5487
+ /** Collect form data from all named inputs within the form. */
5488
+ #s() {
5489
+ const t = {}, e = this.querySelectorAll(
5490
+ "aui-input[name], aui-textarea[name], aui-select[name], aui-checkbox[name], aui-radio-group[name], aui-checkbox-group[name], aui-range[name], aui-switch[name]"
5491
+ );
5492
+ for (const i of e) {
5493
+ const s = i.getAttribute("name");
5494
+ if (!s) continue;
5495
+ const n = i.tagName;
5496
+ if (n === "AUI-CHECKBOX") {
5497
+ if (i.hasAttribute("checked")) {
5498
+ const r = i.getAttribute("value") || "on";
5499
+ if (s in t) {
5500
+ const h = t[s];
5501
+ Array.isArray(h) ? h.push(r) : t[s] = [h, r];
5502
+ } else
5503
+ t[s] = r;
5504
+ }
5505
+ continue;
5506
+ }
5507
+ if (n === "AUI-SWITCH") {
5508
+ t[s] = i.hasAttribute("checked") ? "on" : "";
5509
+ continue;
5510
+ }
5511
+ if (n === "AUI-CHECKBOX-GROUP") {
5512
+ const r = i.getAttribute("value") || "";
5513
+ t[s] = r ? r.split(",").map((h) => h.trim()) : [];
5514
+ continue;
5515
+ }
5516
+ const a = i.value ?? i.getAttribute("value") ?? "";
5517
+ t[s] = String(a);
5518
+ }
5519
+ return t;
5520
+ }
5521
+ }
5076
5522
  export {
5077
- me as $,
5078
- vt as A,
5079
- Kt as B,
5080
- _t as C,
5081
- Yt as D,
5082
- Wt as E,
5083
- Jt as F,
5084
- Xt as G,
5085
- jt as H,
5086
- Gt as I,
5087
- Zt as J,
5088
- Qt as K,
5089
- te as L,
5090
- se as M,
5091
- ee as N,
5092
- ae as O,
5093
- ne as P,
5094
- ie as Q,
5095
- re as R,
5096
- he as S,
5097
- oe as T,
5098
- le as U,
5099
- de as V,
5100
- ue as W,
5101
- ce as X,
5102
- pe as Y,
5103
- fe as Z,
5104
- be as _,
5105
- gt as a,
5106
- ve as a0,
5107
- ge as a1,
5108
- ye as a2,
5109
- Ae as a3,
5110
- Ee as a4,
5111
- xe as a5,
5112
- we as a6,
5113
- ke as a7,
5114
- Ce as a8,
5115
- Le as a9,
5116
- Se as aa,
5117
- De as ab,
5118
- Ie as ac,
5119
- Me as ad,
5120
- Te as ae,
5121
- Pe as af,
5122
- qe as ag,
5123
- Oe as ah,
5124
- Fe as ai,
5125
- Re as aj,
5126
- ze as ak,
5127
- Ne as al,
5128
- He as am,
5129
- Ue as an,
5130
- $e as ao,
5131
- Be as ap,
5132
- Ve as aq,
5133
- Ke as ar,
5134
- At as b,
5135
- Et as c,
5136
- xt as d,
5137
- wt as e,
5138
- kt as f,
5139
- Ct as g,
5140
- Lt as h,
5141
- St as i,
5142
- Dt as j,
5143
- It as k,
5144
- Mt as l,
5145
- yt as m,
5146
- Tt as n,
5147
- Pt as o,
5148
- qt as p,
5149
- Ot as q,
5150
- Ft as r,
5151
- Rt as s,
5152
- zt as t,
5153
- Nt as u,
5154
- Ht as v,
5155
- Ut as w,
5156
- $t as x,
5157
- Bt as y,
5158
- Vt as z
5523
+ Te as $,
5524
+ Wt as A,
5525
+ Ve as B,
5526
+ Nt as C,
5527
+ Fe as D,
5528
+ He as E,
5529
+ Ht as F,
5530
+ _e as G,
5531
+ ti as H,
5532
+ Ae as I,
5533
+ je as J,
5534
+ si as K,
5535
+ Bt as L,
5536
+ Ge as M,
5537
+ zt as N,
5538
+ Je as O,
5539
+ Dt as P,
5540
+ It as Q,
5541
+ ei as R,
5542
+ Qe as S,
5543
+ Kt as T,
5544
+ Vt as U,
5545
+ ke as V,
5546
+ Le as W,
5547
+ Ce as X,
5548
+ ie as Y,
5549
+ de as Z,
5550
+ le as _,
5551
+ Jt as a,
5552
+ Ne as a0,
5553
+ qt as a1,
5554
+ Ot as a2,
5555
+ Ut as a3,
5556
+ ye as a4,
5557
+ ee as a5,
5558
+ te as a6,
5559
+ _t as a7,
5560
+ Se as a8,
5561
+ De as a9,
5562
+ Ie as aa,
5563
+ Me as ab,
5564
+ qe as ac,
5565
+ We as ad,
5566
+ Pt as ae,
5567
+ jt as af,
5568
+ Xt as ag,
5569
+ ce as ah,
5570
+ ue as ai,
5571
+ pe as aj,
5572
+ fe as ak,
5573
+ be as al,
5574
+ me as am,
5575
+ Yt as an,
5576
+ ze as ao,
5577
+ Ft as ap,
5578
+ Be as aq,
5579
+ Gt as ar,
5580
+ $t as as,
5581
+ ve as at,
5582
+ ge as au,
5583
+ we as b,
5584
+ Re as c,
5585
+ Zt as d,
5586
+ Qt as e,
5587
+ Mt as f,
5588
+ Ee as g,
5589
+ xe as h,
5590
+ Ze as i,
5591
+ Tt as j,
5592
+ ii as k,
5593
+ Oe as l,
5594
+ Pe as m,
5595
+ L as n,
5596
+ Ue as o,
5597
+ Ye as p,
5598
+ $e as q,
5599
+ se as r,
5600
+ ne as s,
5601
+ ae as t,
5602
+ re as u,
5603
+ oe as v,
5604
+ he as w,
5605
+ Rt as x,
5606
+ Ke as y,
5607
+ Xe as z
5159
5608
  };
5160
- //# sourceMappingURL=empty-state-5M3uR5CM.js.map
5609
+ //# sourceMappingURL=form-oekEhwja.js.map