@antadesign/anta 0.3.28 → 0.3.30

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 (142) hide show
  1. package/NOTICES.md +32 -1
  2. package/dist/anta_helpers.d.ts +21 -0
  3. package/dist/anta_helpers.js +24 -0
  4. package/dist/box-observation.d.ts +8 -0
  5. package/dist/box-observation.js +41 -0
  6. package/dist/box-types.d.ts +2 -0
  7. package/dist/bundle.css +1 -1
  8. package/dist/bundle.js +66 -29
  9. package/dist/components/Box.d.ts +28 -12
  10. package/dist/components/Box.js +18 -11
  11. package/dist/components/Breadcrumbs.css +1 -1
  12. package/dist/components/Breadcrumbs.d.ts +1 -1
  13. package/dist/components/Button.d.ts +3 -3
  14. package/dist/components/ButtonCopy.d.ts +1 -1
  15. package/dist/components/Calendar.js +3 -5
  16. package/dist/components/Checkbox.d.ts +2 -2
  17. package/dist/components/Input.d.ts +8 -2
  18. package/dist/components/Input.js +4 -0
  19. package/dist/components/InputAutocomplete.js +3 -12
  20. package/dist/components/InputDate.css +1 -1
  21. package/dist/components/InputDate.js +2 -0
  22. package/dist/components/Menu.d.ts +4 -4
  23. package/dist/components/Menu.js +1 -1
  24. package/dist/components/Panel.d.ts +17 -0
  25. package/dist/components/Panel.js +22 -0
  26. package/dist/components/RadioGroup.d.ts +2 -1
  27. package/dist/components/Select.d.ts +14 -14
  28. package/dist/components/Select.js +47 -35
  29. package/dist/components/SelectFaceted.d.ts +17 -6
  30. package/dist/components/SelectFaceted.js +61 -41
  31. package/dist/components/Steps.css +1 -1
  32. package/dist/components/Switch.d.ts +3 -3
  33. package/dist/components/TabPanel.d.ts +3 -8
  34. package/dist/components/TabPanel.js +2 -1
  35. package/dist/components/Tabs.d.ts +2 -2
  36. package/dist/components/Tabs.js +2 -1
  37. package/dist/components/Tooltip.d.ts +1 -1
  38. package/dist/components/Tooltip.js +1 -1
  39. package/dist/components/select-parts.css +1 -1
  40. package/dist/elements/a-avatar.css +1 -1
  41. package/dist/elements/a-banner.css +1 -1
  42. package/dist/elements/a-box.css +1 -1
  43. package/dist/elements/a-box.d.ts +6 -6
  44. package/dist/elements/a-box.js +76 -23
  45. package/dist/elements/a-button.css +1 -1
  46. package/dist/elements/a-button.d.ts +9 -1
  47. package/dist/elements/a-button.js +64 -1
  48. package/dist/elements/a-calendar.css +1 -1
  49. package/dist/elements/a-capture.css +1 -1
  50. package/dist/elements/a-card.css +1 -1
  51. package/dist/elements/a-checkbox.css +1 -1
  52. package/dist/elements/a-checkbox.d.ts +3 -0
  53. package/dist/elements/a-checkbox.js +17 -1
  54. package/dist/elements/a-copy.css +1 -1
  55. package/dist/elements/a-dialog.css +1 -1
  56. package/dist/elements/a-expander.css +1 -1
  57. package/dist/elements/a-icon.css +1 -1
  58. package/dist/elements/a-icon.shapes.css +1 -1
  59. package/dist/elements/a-icon.shapes.d.ts +1 -1
  60. package/dist/elements/a-input-time.css +1 -1
  61. package/dist/elements/a-input-time.d.ts +8 -0
  62. package/dist/elements/a-input-time.js +115 -8
  63. package/dist/elements/a-input.css +1 -1
  64. package/dist/elements/a-input.d.ts +27 -1
  65. package/dist/elements/a-input.js +176 -35
  66. package/dist/elements/a-loader.css +1 -1
  67. package/dist/elements/a-menu-group.css +1 -1
  68. package/dist/elements/a-menu-item.css +1 -1
  69. package/dist/elements/a-menu-item.js +1 -0
  70. package/dist/elements/a-menu-separator.css +1 -1
  71. package/dist/elements/a-menu.css +1 -1
  72. package/dist/elements/a-menu.d.ts +8 -13
  73. package/dist/elements/a-menu.js +146 -45
  74. package/dist/elements/a-panel.css +1 -0
  75. package/dist/elements/a-panel.d.ts +16 -0
  76. package/dist/elements/a-panel.js +153 -0
  77. package/dist/elements/a-progress.css +1 -1
  78. package/dist/elements/a-radio-group.css +1 -1
  79. package/dist/elements/a-radio.css +1 -1
  80. package/dist/elements/a-radio.d.ts +4 -0
  81. package/dist/elements/a-radio.js +18 -0
  82. package/dist/elements/a-slider.css +1 -1
  83. package/dist/elements/a-slider.d.ts +1 -0
  84. package/dist/elements/a-slider.js +3 -3
  85. package/dist/elements/a-switch.css +1 -1
  86. package/dist/elements/a-switch.d.ts +3 -0
  87. package/dist/elements/a-switch.js +17 -1
  88. package/dist/elements/a-tab.css +1 -1
  89. package/dist/elements/a-tabpanel.css +1 -1
  90. package/dist/elements/a-tabs.css +1 -1
  91. package/dist/elements/a-tag.css +1 -1
  92. package/dist/elements/a-text.css +1 -1
  93. package/dist/elements/a-title.css +1 -1
  94. package/dist/elements/a-toast.css +1 -1
  95. package/dist/elements/a-toaster.css +1 -1
  96. package/dist/elements/a-tooltip.css +1 -1
  97. package/dist/elements/a-tooltip.js +30 -7
  98. package/dist/elements/focus.d.ts +9 -0
  99. package/dist/elements/focus.js +41 -0
  100. package/dist/elements/index.d.ts +1 -0
  101. package/dist/elements/index.js +3 -0
  102. package/dist/elements/panel-focus.d.ts +10 -0
  103. package/dist/elements/panel-focus.js +86 -0
  104. package/dist/elements/shadow-aria.d.ts +10 -0
  105. package/dist/elements/shadow-aria.js +155 -0
  106. package/dist/general_types.d.ts +48 -19
  107. package/dist/generate-icons.mjs +3 -0
  108. package/dist/index.d.ts +4 -1
  109. package/dist/index.js +2 -0
  110. package/dist/jsx-runtime.d.ts +20 -1
  111. package/dist/jsx-runtime.js +12 -0
  112. package/dist/reset.css +1 -1
  113. package/dist/theme-antithesis.css +1 -1
  114. package/dist/theme-antune.css +1 -1
  115. package/dist/toaster.d.ts +1 -1
  116. package/dist/tokens.css +1 -1
  117. package/docs/accessibility.md +4 -2
  118. package/docs/changelog.md +89 -4
  119. package/docs/colors.md +6 -6
  120. package/docs/components/box.md +98 -34
  121. package/docs/components/breadcrumbs.md +33 -0
  122. package/docs/components/button.md +2 -2
  123. package/docs/components/capture.md +8 -8
  124. package/docs/components/checkbox.md +9 -4
  125. package/docs/components/input-autocomplete.md +6 -0
  126. package/docs/components/input-date.md +8 -2
  127. package/docs/components/input.md +99 -40
  128. package/docs/components/menu.md +3 -3
  129. package/docs/components/panel.md +189 -0
  130. package/docs/components/radio.md +4 -2
  131. package/docs/components/select-faceted.md +57 -2
  132. package/docs/components/select.md +63 -51
  133. package/docs/components/steps.md +4 -4
  134. package/docs/components/switch.md +12 -6
  135. package/docs/components/tabs.md +21 -8
  136. package/docs/components/tooltip.md +6 -4
  137. package/docs/index.md +2 -0
  138. package/docs/install-config.md +5 -4
  139. package/docs/normalization.md +3 -1
  140. package/docs/packages/plot.md +3771 -0
  141. package/docs/theming.md +1 -1
  142. package/package.json +16 -9
@@ -1,5 +1,17 @@
1
1
  import { HTMLElementBase } from "../anta_helpers";
2
+ import { applyShadowAria, ariaAttributeProperty } from "./shadow-aria";
2
3
  import "./a-input-time.css";
4
+ const INPUT_TIME_ARIA = [
5
+ "aria-label",
6
+ "aria-labelledby",
7
+ "aria-description",
8
+ "aria-describedby",
9
+ "aria-invalid",
10
+ "aria-errormessage"
11
+ ];
12
+ const INPUT_TIME_ARIA_SET = new Set(INPUT_TIME_ARIA);
13
+ const READ_DELEGATED_ARIA = /* @__PURE__ */ Symbol("readDelegatedAria");
14
+ const WRITE_DELEGATED_ARIA = /* @__PURE__ */ Symbol("writeDelegatedAria");
3
15
  const CLEAR_TRIGGER = "clearrequest";
4
16
  const CLEAR_INPUT_EVENT = "clearinput";
5
17
  const pad2 = (n) => String(n).padStart(2, "0");
@@ -191,18 +203,22 @@ class AInputTimeElement extends HTMLElementBase {
191
203
  "disabled",
192
204
  "min",
193
205
  "max",
194
- "aria-label",
195
- "required"
206
+ "required",
207
+ ...INPUT_TIME_ARIA
196
208
  ];
197
209
  #internals;
198
210
  #field;
199
211
  #labelSlot;
212
+ #hintSlot;
200
213
  #segRow;
201
214
  #ready = false;
202
215
  #formDisabled = false;
203
216
  // True once a value arrived via the `value` property setter — so connect
204
217
  // doesn't re-seed from the (possibly empty) attribute and wipe it.
205
218
  #seeded = false;
219
+ #delegatedAria = /* @__PURE__ */ new Map();
220
+ #consumingAria = /* @__PURE__ */ new Set();
221
+ #ariaApplyQueued = false;
206
222
  // The canonical 24-hour "HH:mm" (or ''), kept in step with the segment state.
207
223
  // Mode-independent, so a locale / hour12 switch re-derives display from it
208
224
  // rather than from the now-stale display digits.
@@ -230,6 +246,8 @@ class AInputTimeElement extends HTMLElementBase {
230
246
  this.#labelSlot = shadow.querySelector(".label");
231
247
  this.#labelSlot.addEventListener("click", () => this.#segs[0]?.el.focus());
232
248
  this.#labelSlot.addEventListener("slotchange", this.#onLabelSlotChange);
249
+ this.#hintSlot = shadow.querySelector(".hint");
250
+ this.#hintSlot.addEventListener("slotchange", this.#onHintSlotChange);
233
251
  this.#field = shadow.querySelector(".field");
234
252
  this.#segRow = shadow.querySelector(".segments");
235
253
  this.#field.addEventListener("mousedown", this.#onFieldMouseDown);
@@ -260,6 +278,11 @@ class AInputTimeElement extends HTMLElementBase {
260
278
  this.#iso = this.value;
261
279
  }
262
280
  attributeChangedCallback(name, _old, value) {
281
+ if (INPUT_TIME_ARIA_SET.has(name)) {
282
+ if (this.#consumingAria.has(name)) return;
283
+ this.#consumeAria(name, value);
284
+ return;
285
+ }
263
286
  if (!this.#ready) return;
264
287
  if (name === "value") {
265
288
  if (value !== null) this.value = value;
@@ -282,15 +305,68 @@ class AInputTimeElement extends HTMLElementBase {
282
305
  this.#updateValidity();
283
306
  return;
284
307
  }
285
- if (name === "aria-label") {
286
- this.#applyGroupLabel();
287
- return;
288
- }
289
308
  if (name === "required") {
309
+ this.#syncRequired();
290
310
  this.#updateValidity();
291
311
  return;
292
312
  }
293
313
  }
314
+ #consumeAria(name, value) {
315
+ if (value == null) this.#delegatedAria.delete(name);
316
+ else this.#delegatedAria.set(name, value);
317
+ if (this.hasAttribute(name)) {
318
+ this.#consumingAria.add(name);
319
+ super.removeAttribute(name);
320
+ this.#consumingAria.delete(name);
321
+ }
322
+ this.#applyDelegatedAria(name);
323
+ this.#queueDelegatedAria();
324
+ }
325
+ removeAttribute(name) {
326
+ if (INPUT_TIME_ARIA_SET.has(name) && !this.#consumingAria.has(name) && !this.hasAttribute(name)) {
327
+ const ariaName = name;
328
+ if (this.#delegatedAria.delete(ariaName)) {
329
+ this.#applyDelegatedAria(ariaName);
330
+ this.#queueDelegatedAria();
331
+ }
332
+ return;
333
+ }
334
+ super.removeAttribute(name);
335
+ }
336
+ toggleAttribute(name, force) {
337
+ if (INPUT_TIME_ARIA_SET.has(name)) {
338
+ const ariaName = name;
339
+ const next = force ?? !this.#delegatedAria.has(ariaName);
340
+ this.#consumeAria(ariaName, next ? "" : null);
341
+ return next;
342
+ }
343
+ return super.toggleAttribute(name, force);
344
+ }
345
+ [READ_DELEGATED_ARIA](name) {
346
+ return this.#delegatedAria.get(name) ?? null;
347
+ }
348
+ [WRITE_DELEGATED_ARIA](name, value) {
349
+ this.#consumeAria(name, value == null ? null : String(value));
350
+ }
351
+ #applyDelegatedAria(name) {
352
+ const value = this.#delegatedAria.get(name) ?? null;
353
+ if (name === "aria-invalid" || name === "aria-errormessage") {
354
+ for (const seg of this.#segs) applyShadowAria(this, seg.el, name, value);
355
+ if (name === "aria-invalid" && value == null) this.#syncStatus();
356
+ return;
357
+ }
358
+ applyShadowAria(this, this.#segRow, name, value);
359
+ if (name === "aria-label" || name === "aria-labelledby") this.#applyGroupLabel();
360
+ if (name === "aria-description" || name === "aria-describedby") this.#applyGroupDescription();
361
+ }
362
+ #queueDelegatedAria() {
363
+ if (this.#ariaApplyQueued) return;
364
+ this.#ariaApplyQueued = true;
365
+ queueMicrotask(() => {
366
+ this.#ariaApplyQueued = false;
367
+ for (const name of this.#delegatedAria.keys()) this.#applyDelegatedAria(name);
368
+ });
369
+ }
294
370
  // --- Locale-driven segment construction ---
295
371
  get #locale() {
296
372
  return this.getAttribute("locale") || (typeof navigator !== "undefined" ? navigator.language : "en-US");
@@ -371,7 +447,11 @@ class AInputTimeElement extends HTMLElementBase {
371
447
  }
372
448
  }
373
449
  this.#applyValue(keep);
450
+ for (const name of this.#delegatedAria.keys()) this.#applyDelegatedAria(name);
451
+ this.#queueDelegatedAria();
374
452
  this.#applyGroupLabel();
453
+ this.#applyGroupDescription();
454
+ this.#syncRequired();
375
455
  this.#syncStatus();
376
456
  this.#syncDisabled();
377
457
  this.#commitEdit({ dispatch: false });
@@ -658,25 +738,40 @@ class AInputTimeElement extends HTMLElementBase {
658
738
  this.dispatchEvent(new Event(type, { bubbles: true, composed: type === "input" }));
659
739
  }
660
740
  #applyGroupLabel() {
661
- const label = this.getAttribute("aria-label") || this.#labelSlot.assignedNodes().map((n) => n.textContent ?? "").join(" ").trim();
741
+ if (this.#delegatedAria.has("aria-label") || this.#delegatedAria.has("aria-labelledby")) return;
742
+ const label = this.#labelSlot.assignedNodes().map((n) => n.textContent ?? "").join(" ").trim();
662
743
  if (label) this.#segRow.setAttribute("aria-label", label);
663
744
  else this.#segRow.removeAttribute("aria-label");
664
745
  }
665
746
  #onLabelSlotChange = () => {
666
747
  this.#applyGroupLabel();
667
748
  };
749
+ #applyGroupDescription() {
750
+ if (this.#delegatedAria.has("aria-description") || this.#delegatedAria.has("aria-describedby")) return;
751
+ const description = this.#hintSlot.assignedNodes().map((n) => n.textContent ?? "").join(" ").trim();
752
+ if (description) this.#segRow.setAttribute("aria-description", description);
753
+ else this.#segRow.removeAttribute("aria-description");
754
+ }
755
+ #onHintSlotChange = () => {
756
+ this.#applyGroupDescription();
757
+ };
668
758
  #syncDisabled() {
669
759
  const off = this.hasAttribute("disabled") || this.#formDisabled;
670
760
  for (const seg of this.#segs) seg.el.disabled = off;
671
761
  }
672
762
  #syncStatus() {
673
763
  const critical = this.getAttribute("status") === "critical";
674
- for (const seg of this.#segs) seg.el.setAttribute("aria-invalid", critical ? "true" : "false");
764
+ const explicit = this.#delegatedAria.get("aria-invalid");
765
+ for (const seg of this.#segs) seg.el.setAttribute("aria-invalid", explicit ?? (critical ? "true" : "false"));
675
766
  try {
676
767
  critical ? this.#internals?.states?.add("invalid") : this.#internals?.states?.delete("invalid");
677
768
  } catch {
678
769
  }
679
770
  }
771
+ #syncRequired() {
772
+ const required = this.hasAttribute("required");
773
+ for (const seg of this.#segs) seg.el.setAttribute("aria-required", required ? "true" : "false");
774
+ }
680
775
  #updateFilled() {
681
776
  if (this.value) this.#internals?.states?.add("filled");
682
777
  else this.#internals?.states?.delete("filled");
@@ -770,6 +865,18 @@ class AInputTimeElement extends HTMLElementBase {
770
865
  this.value = state ?? "";
771
866
  }
772
867
  }
868
+ for (const name of INPUT_TIME_ARIA) {
869
+ Object.defineProperty(AInputTimeElement.prototype, ariaAttributeProperty(name), {
870
+ configurable: true,
871
+ enumerable: true,
872
+ get() {
873
+ return this[READ_DELEGATED_ARIA](name);
874
+ },
875
+ set(value) {
876
+ this[WRITE_DELEGATED_ARIA](name, value);
877
+ }
878
+ });
879
+ }
773
880
  function register_a_input_time() {
774
881
  if (typeof customElements === "undefined") return;
775
882
  if (!customElements.get("a-input-time")) {
@@ -1 +1 @@
1
- @layer anta.components{a-input:not(:defined){display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px}a-input:not(:defined)>[slot=leading],a-input:not(:defined)>[slot=trailing],a-input:not(:defined)>[slot=clear],a-input:not(:defined)>[slot=hint]{display:none!important}a-input:not(:defined)>[slot=label]{display:block;color:var(--input-label);font-family:var(--sans-serif);font-size:15px;line-height:20px;font-weight:500}a-input[size=small]:not(:defined)>[slot=label]{font-size:13px;line-height:16px}a-input[size=large]:not(:defined)>[slot=label]{font-size:17px;line-height:22px}a-input:not(:defined):after{content:attr(placeholder);display:block;min-height:28px;line-height:28px;padding-inline:7px;border-radius:4px;box-shadow:inset 0 0 0 .5px var(--input-border);color:var(--input-placeholder);font-family:var(--sans-serif);font-size:15px;font-weight:400;font-stretch:normal;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a-input[value]:not([value=""]):not([type=password]):not(:defined):after{content:attr(value);color:var(--input-text)}a-input[size=small]:not(:defined):after{min-height:24px;line-height:24px;font-size:13px}a-input[size=large]:not(:defined):after{min-height:32px;line-height:32px;font-size:17px}@media(forced-colors:active){a-input:not(:defined):after{border:1px solid ButtonBorder}}a-input[round]:not(:defined):after{border-radius:var(--input-round, 999px)}a-input{transition:opacity .28s ease-out 40ms}a-input:not(:defined){opacity:.5}@media(prefers-reduced-motion:reduce){a-input{transition:none}}a-input{--input-bg: var(--bg-1);--input-border: var(--border-2);--input-text: var(--text-1);--input-label: var(--text-3);--input-placeholder: var(--text-4);--input-adornment: var(--text-3);--input-hint: var(--text-3);--input-trailing-inset: 7px;width:100%}a-input:has(>[slot=label])::part(label){display:block}a-input:has(>[slot=leading])::part(leading),a-input:has(>[slot=trailing])::part(trailing){display:flex;align-items:center;flex-shrink:0}a-input:has(>[slot=leading])::part(leading){margin-inline-start:7px}a-input:has(>[slot=trailing])::part(trailing){gap:2px;margin-inline-end:var(--input-trailing-inset, 7px)}a-input:has(>[slot=leading])::part(input){padding-inline-start:5px}a-input[truncate]:not([multiline])::part(input){text-overflow:ellipsis}a-input:has(>[slot=hint])::part(hint){display:flex}a-input[multiline]:has(>[slot=leading])::part(leading),a-input[multiline]:has(>[slot=trailing])::part(trailing){align-self:flex-start;height:calc(var(--_lh) + var(--_pad-block) * 2)}a-input:has([slot=trailing] :is(a-button,button)),a-input:has([slot=trailing]:is(a-button,button)){--input-trailing-inset: 0}a-input[round]{--input-round: 999px;@supports (border-radius: attr(probe type(<length>),1px)){--input-round: attr(round type(<length>), 999px)}}a-input[tone]:not([tone=""]):not([status]){--input-tone-source: var(--border-2);--input-border: light-dark( oklch(from var(--input-tone-source) .7 calc(c*.8) h), oklch(from var(--input-tone-source) .5 calc(c*.8) h) );@supports (color: attr(probe type(<color>),red)){--input-tone-source: attr(tone type(<color>), var(--border-2))}}a-input[status=critical]{--input-status-source: var(--anta-seed-critical);--input-bg: var(--bg-2-critical);--input-hint: var(--text-2-critical)}a-input[status=warning]{--input-status-source: var(--anta-seed-warning);--input-bg: var(--bg-2-warning);--input-hint: var(--text-2-warning)}a-input[status=success]{--input-status-source: var(--anta-seed-success);--input-bg: var(--bg-2-success);--input-hint: var(--text-2-success)}a-input[status=info]{--input-status-source: var(--anta-seed-info);--input-bg: var(--bg-2-info);--input-hint: var(--text-2-info)}a-input[status=brand]{--input-status-source: var(--anta-seed-brand);--input-bg: var(--bg-2-brand);--input-hint: var(--text-2-brand)}a-input[status]:not([status=neutral]){--input-border: light-dark( oklch(from var(--input-status-source) .58 c h), oklch(from var(--input-status-source) .52 c h) )}a-input:disabled{--input-bg: light-dark(#44374b12, #e4d1ef0d);--input-border: light-dark(#44374b26, #e4d1ef1f);--input-text: var(--text-4);--input-label: var(--text-4);--input-hint: var(--text-5);cursor:not-allowed}a-input[status]:disabled{--input-bg: light-dark(#44374b12, #e4d1ef0d);--input-border: light-dark(#44374b26, #e4d1ef1f);--input-hint: var(--text-5)}a-input[size=small] a-icon{--icon-size: 14px}a-input[size=large] a-icon{--icon-size: 18px}a-input [slot=hint]>a-icon{margin-block-start:1px}a-input[size=small] [slot=hint]>a-icon{margin-block-start:.5px}a-input[size=large] [slot=hint]>a-icon{margin-block-start:1.5px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]),textarea[data-anta]{--native-field-block-size: 28px;--native-field-padding-block: 4px;--native-field-font-size: 15px;--native-field-line-height: 20px;--native-field-round: 4px;--native-field-border: var(--border-2);box-sizing:border-box;block-size:var(--native-field-block-size);margin:0;padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;border-radius:var(--native-field-round);outline:0;background:var(--bg-1);box-shadow:inset 0 0 0 .5px var(--native-field-border);color:var(--text-1);caret-color:currentColor;color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-field-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-field-line-height);transition:box-shadow .12s ease}textarea[data-anta]{block-size:auto;min-block-size:var(--native-field-block-size);resize:vertical;overflow-y:auto}input[data-anta][list]::-webkit-calendar-picker-indicator{opacity:0!important;pointer-events:none!important}@media(hover:hover)and (pointer:fine){input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):not(:disabled):hover,textarea[data-anta]:not(:disabled):hover{box-shadow:inset 0 0 0 1px var(--native-field-border)}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):focus,textarea[data-anta]:focus{box-shadow:inset 0 0 0 1px var(--native-field-border);outline:1px solid var(--focus-ring);outline-offset:1px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):disabled,textarea[data-anta]:disabled{background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));box-shadow:inset 0 0 0 .5px color-mix(in oklch,var(--text-1) 15%,transparent);color:var(--text-4);cursor:not-allowed}input[data-anta][type=number]{appearance:textfield;-moz-appearance:textfield}input[data-anta][type=number]::-webkit-inner-spin-button,input[data-anta][type=number]::-webkit-outer-spin-button{appearance:none;margin:0}input[data-anta][type=file]{--native-file-block-size: 28px;--native-file-padding-block: 4px;--native-file-font-size: 15px;--native-file-line-height: 20px;box-sizing:border-box;min-block-size:var(--native-file-block-size);margin:0;padding:0;border:0;color:var(--text-2);color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-file-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-file-line-height)}input[data-anta][type=file]::file-selector-button{box-sizing:border-box;min-block-size:var(--native-file-block-size);margin:0 8px 0 0;padding:var(--native-file-padding-block) 9px;border:0;border-radius:4px;color:var(--text-2);background:color-mix(in oklch,var(--text-1) 10%,transparent);box-shadow:inset 0 0 1px color-mix(in oklch,currentColor,transparent 90%);font:inherit;font-variation-settings:inherit;font-weight:450;letter-spacing:.05ch;line-height:var(--native-file-line-height);cursor:pointer;transition:color .15s ease-out,background-color .15s ease-out}@media(hover:hover)and (pointer:fine){input[data-anta][type=file]:not(:disabled):hover::file-selector-button{color:var(--text-1);background:color-mix(in oklch,var(--text-1) 15%,transparent)}}input[data-anta][type=file]:not(:disabled):active::file-selector-button{color:var(--text-1);background:color-mix(in oklch,var(--text-1) 20%,transparent)}input[data-anta][type=file]:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}input[data-anta][type=file]:disabled{color:var(--text-4);cursor:not-allowed}input[data-anta][type=file]:disabled::file-selector-button{color:var(--text-4);background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));cursor:not-allowed}select[data-anta]{--native-field-block-size: 28px;--native-field-padding-block: 4px;--native-field-font-size: 15px;--native-field-line-height: 20px;--native-field-round: 4px;--native-field-border: var(--border-2);--native-select-picker-bg: light-dark( color-mix(in oklch, var(--bg-1) 90%, transparent), color-mix(in oklch, var(--bg-1) 78%, transparent) );--native-select-picker-radius: var(--radius-md, 8px);--native-select-picker-border: 1px solid var(--border-3);--native-select-picker-shadow: 0 2px 6px color-mix(in oklch, var(--text-1) 8%, transparent), 0 8px 24px color-mix(in oklch, var(--text-1) 10%, transparent);--native-select-option-color: var(--text-2);--native-select-option-hover: 5%;--native-select-option-active: 8%;--native-select-option-selected: 8%;--native-select-option-padding-x: 8px;--native-select-option-padding-y: 6px;box-sizing:border-box;block-size:var(--native-field-block-size);margin:0;padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;border-radius:var(--native-field-round);outline:0;background:var(--bg-1);box-shadow:inset 0 0 0 .5px var(--native-field-border);color:var(--text-1);color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-field-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-field-line-height);transition:box-shadow .12s ease}.dark select[data-anta]{--native-select-picker-shadow: 0 2px 8px color-mix(in oklch, black 50%, transparent), 0 12px 32px color-mix(in oklch, black 40%, transparent), inset 0 0 0 1px color-mix(in oklch, white 8%, transparent)}@media(hover:hover)and (pointer:fine){select[data-anta]:not(:disabled):hover{box-shadow:inset 0 0 0 1px var(--native-field-border)}}select[data-anta]:focus{box-shadow:inset 0 0 0 1px var(--native-field-border);outline:1px solid var(--focus-ring);outline-offset:1px}select[data-anta]:disabled{background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));box-shadow:inset 0 0 0 .5px color-mix(in oklch,var(--text-1) 15%,transparent);color:var(--text-4);cursor:not-allowed}@media(forced-colors:active){input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]),select[data-anta],textarea[data-anta]{border:1px solid ButtonBorder}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[data-anta-size=small],select[data-anta][data-anta-size=small],textarea[data-anta][data-anta-size=small]{--native-field-block-size: 24px;--native-field-padding-block: 2px;--native-field-font-size: 13px;--native-field-line-height: 16px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[data-anta-size=large],select[data-anta][data-anta-size=large],textarea[data-anta][data-anta-size=large]{--native-field-block-size: 32px;--native-field-padding-block: 5px;--native-field-font-size: 17px;--native-field-line-height: 22px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[round],select[data-anta][round],textarea[data-anta][round]{--native-field-round: 999px;@supports (border-radius: attr(probe type(<length>),1px)){--native-field-round: attr(round type(<length>), 999px)}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[tone]:not([tone=""]),textarea[data-anta][tone]:not([tone=""]){--native-field-tone: var(--border-2);--native-field-border: light-dark( oklch(from var(--native-field-tone) .7 calc(c*.8) h), oklch(from var(--native-field-tone) .5 calc(c*.8) h) );@supports (color: attr(probe type(<color>),red)){--native-field-tone: attr(tone type(<color>), var(--border-2))}}@supports (appearance: base-select){select[data-anta],select[data-anta]::picker(select){appearance:base-select;-webkit-appearance:base-select}select[data-anta]{padding:0}select[data-anta]>button{box-sizing:border-box;display:flex;align-items:center;gap:4px;inline-size:100%;min-block-size:var(--native-field-block-size);padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-variation-settings:inherit;text-align:start}select[data-anta]>button>selectedcontent{flex:1;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}select[data-anta]::picker-icon{display:none}select[data-anta]>button>a-icon{margin-inline-start:auto;color:var(--text-3);transition:transform .12s ease}select[data-anta]:open>button>a-icon{transform:rotate(180deg)}select[data-anta]::picker(select){box-sizing:border-box;display:flex;flex-direction:column;gap:1px;margin-block-start:4px;padding:4px;border:var(--native-select-picker-border);border-radius:var(--native-select-picker-radius);background:var(--native-select-picker-bg);box-shadow:var(--native-select-picker-shadow);color:var(--native-select-option-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}select[data-anta] option{box-sizing:border-box;min-block-size:28px;padding-block:var(--native-select-option-padding-y);padding-inline:var(--native-select-option-padding-x);border-radius:var(--radius-sm, 4px);background:transparent;color:var(--native-select-option-color);cursor:pointer;font-family:var(--sans-serif);font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;line-height:16px;text-transform:none;transition:background-color .28s ease-out}select[data-anta] option:is(:hover,:focus-visible){background:color-mix(in oklch,currentColor var(--native-select-option-hover),transparent);transition:background-color 60ms ease-in-out}select[data-anta] option:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}select[data-anta] option:active{background:color-mix(in oklch,currentColor var(--native-select-option-active),transparent);transition:none}select[data-anta] option:checked{background:color-mix(in oklch,currentColor var(--native-select-option-selected),transparent);transition:background-color .28s ease-out}select[data-anta] option:disabled{color:var(--text-5);cursor:default}select[data-anta] optgroup{display:flex;flex-direction:column;gap:1px;color:var(--text-5);font-family:var(--sans-serif);font-size:.75em;font-weight:600;letter-spacing:.06em;text-transform:uppercase}}}
1
+ @layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-input:not(:defined){display:grid;grid-template-columns:minmax(0,1fr);row-gap:4px}a-input:not(:defined)>[slot=leading],a-input:not(:defined)>[slot=trailing],a-input:not(:defined)>[slot=clear],a-input:not(:defined)>[slot=hint]{display:none!important}a-input:not(:defined)>[slot=label]{display:block;color:var(--input-label);font-family:var(--sans-serif);font-size:15px;line-height:20px;font-weight:500}a-input[size=small]:not(:defined)>[slot=label]{font-size:13px;line-height:16px}a-input[size=large]:not(:defined)>[slot=label]{font-size:17px;line-height:22px}a-input:not(:defined):after{content:attr(placeholder);display:block;min-height:28px;line-height:28px;padding-inline:7px;border-radius:4px;box-shadow:inset 0 0 0 .5px var(--input-border);color:var(--input-placeholder);font-family:var(--sans-serif);font-size:15px;font-weight:400;font-stretch:normal;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a-input[value]:not([value=""]):not([type=password]):not(:defined):after{content:attr(value);color:var(--input-text)}a-input[size=small]:not(:defined):after{min-height:24px;line-height:24px;font-size:13px}a-input[size=large]:not(:defined):after{min-height:32px;line-height:32px;font-size:17px}@media(forced-colors:active){a-input:not(:defined):after{border:1px solid ButtonBorder}}a-input[round]:not(:defined):after{border-radius:var(--input-round, 999px)}a-input{transition:opacity .28s ease-out 40ms}a-input:not(:defined){opacity:.5}@media(prefers-reduced-motion:reduce){a-input{transition:none}}a-input{--input-bg: var(--bg-1);--input-border: var(--border-2);--input-text: var(--text-1);--input-label: var(--text-3);--input-placeholder: var(--text-4);--input-adornment: var(--text-3);--input-hint: var(--text-3);--input-trailing-inset: 7px;width:100%}a-input:has(>[slot=label])::part(label){display:block}a-input:has(>[slot=leading])::part(leading),a-input:has(>[slot=trailing])::part(trailing){display:flex;align-items:center;flex-shrink:0}a-input:has(>[slot=leading])::part(leading){margin-inline-start:7px}a-input:has(>[slot=trailing])::part(trailing){gap:2px;margin-inline-end:var(--input-trailing-inset, 7px)}a-input:has(>[slot=leading])::part(input){padding-inline-start:5px}a-input[truncate]:not([multiline])::part(input){text-overflow:ellipsis}a-input:has(>[slot=hint])::part(hint){display:flex}a-input[multiline]:has(>[slot=leading])::part(leading),a-input[multiline]:has(>[slot=trailing])::part(trailing){align-self:flex-start;height:calc(var(--_lh) + var(--_pad-block) * 2)}a-input:has([slot=trailing] :is(a-button,button)),a-input:has([slot=trailing]:is(a-button,button)){--input-trailing-inset: 0}a-input[round]{--input-round: 999px;@supports (border-radius: attr(probe type(<length>),1px)){--input-round: attr(round type(<length>), 999px)}}a-input[tone]:not([tone=""]):not([status]){--input-tone-source: var(--border-2);--input-border: light-dark( oklch(from var(--input-tone-source) .7 calc(c*.8) h), oklch(from var(--input-tone-source) .5 calc(c*.8) h) );@supports (color: attr(probe type(<color>),red)){--input-tone-source: attr(tone type(<color>), var(--border-2))}}a-input[status=critical]{--input-status-source: var(--anta-seed-critical);--input-bg: var(--bg-2-critical);--input-hint: var(--text-2-critical)}a-input[status=warning]{--input-status-source: var(--anta-seed-warning);--input-bg: var(--bg-2-warning);--input-hint: var(--text-2-warning)}a-input[status=success]{--input-status-source: var(--anta-seed-success);--input-bg: var(--bg-2-success);--input-hint: var(--text-2-success)}a-input[status=info]{--input-status-source: var(--anta-seed-info);--input-bg: var(--bg-2-info);--input-hint: var(--text-2-info)}a-input[status=brand]{--input-status-source: var(--anta-seed-brand);--input-bg: var(--bg-2-brand);--input-hint: var(--text-2-brand)}a-input[status]:not([status=neutral]){--input-border: light-dark( oklch(from var(--input-status-source) .58 c h), oklch(from var(--input-status-source) .52 c h) )}a-input:disabled{--input-bg: light-dark(#44374b12, #e4d1ef0d);--input-border: light-dark(#44374b26, #e4d1ef1f);--input-text: var(--text-4);--input-label: var(--text-4);--input-hint: var(--text-5);cursor:not-allowed}a-input[status]:disabled{--input-bg: light-dark(#44374b12, #e4d1ef0d);--input-border: light-dark(#44374b26, #e4d1ef1f);--input-hint: var(--text-5)}a-input[size=small] a-icon{--icon-size: 14px}a-input[size=large] a-icon{--icon-size: 18px}a-input [slot=hint]>a-icon{margin-block-start:1px}a-input[size=small] [slot=hint]>a-icon{margin-block-start:.5px}a-input[size=large] [slot=hint]>a-icon{margin-block-start:1.5px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]),textarea[data-anta]{--native-field-block-size: 28px;--native-field-padding-block: 4px;--native-field-font-size: 15px;--native-field-line-height: 20px;--native-field-round: 4px;--native-field-border: var(--border-2);box-sizing:border-box;block-size:var(--native-field-block-size);margin:0;padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;border-radius:var(--native-field-round);outline:0;background:var(--bg-1);box-shadow:inset 0 0 0 .5px var(--native-field-border);color:var(--text-1);caret-color:currentColor;color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-field-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-field-line-height);transition:box-shadow .12s ease}textarea[data-anta]{block-size:auto;min-block-size:var(--native-field-block-size);resize:vertical;overflow-y:auto}input[data-anta][list]::-webkit-calendar-picker-indicator{opacity:0!important;pointer-events:none!important}@media(hover:hover)and (pointer:fine){input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):not(:disabled):hover,textarea[data-anta]:not(:disabled):hover{box-shadow:inset 0 0 0 1px var(--native-field-border)}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):focus,textarea[data-anta]:focus{box-shadow:inset 0 0 0 1px var(--native-field-border);outline:1px solid var(--focus-ring);outline-offset:1px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]):disabled,textarea[data-anta]:disabled{background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));box-shadow:inset 0 0 0 .5px color-mix(in oklch,var(--text-1) 15%,transparent);color:var(--text-4);cursor:not-allowed}input[data-anta][type=number]{appearance:textfield;-moz-appearance:textfield}input[data-anta][type=number]::-webkit-inner-spin-button,input[data-anta][type=number]::-webkit-outer-spin-button{appearance:none;margin:0}input[data-anta][type=file]{--native-file-block-size: 28px;--native-file-padding-block: 4px;--native-file-font-size: 15px;--native-file-line-height: 20px;box-sizing:border-box;min-block-size:var(--native-file-block-size);margin:0;padding:0;border:0;color:var(--text-2);color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-file-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-file-line-height)}input[data-anta][type=file]::file-selector-button{box-sizing:border-box;min-block-size:var(--native-file-block-size);margin:0 8px 0 0;padding:var(--native-file-padding-block) 9px;border:0;border-radius:4px;color:var(--text-2);background:color-mix(in oklch,var(--text-1) 10%,transparent);box-shadow:inset 0 0 1px color-mix(in oklch,currentColor,transparent 90%);font:inherit;font-variation-settings:inherit;font-weight:450;letter-spacing:.05ch;line-height:var(--native-file-line-height);cursor:pointer;transition:color .15s ease-out,background-color .15s ease-out}@media(hover:hover)and (pointer:fine){input[data-anta][type=file]:not(:disabled):hover::file-selector-button{color:var(--text-1);background:color-mix(in oklch,var(--text-1) 15%,transparent)}}input[data-anta][type=file]:not(:disabled):active::file-selector-button{color:var(--text-1);background:color-mix(in oklch,var(--text-1) 20%,transparent)}input[data-anta][type=file]:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}input[data-anta][type=file]:disabled{color:var(--text-4);cursor:not-allowed}input[data-anta][type=file]:disabled::file-selector-button{color:var(--text-4);background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));cursor:not-allowed}select[data-anta]{--native-field-block-size: 28px;--native-field-padding-block: 4px;--native-field-font-size: 15px;--native-field-line-height: 20px;--native-field-round: 4px;--native-field-border: var(--border-2);--native-select-picker-bg: light-dark( color-mix(in oklch, var(--bg-1) 90%, transparent), color-mix(in oklch, var(--bg-1) 78%, transparent) );--native-select-picker-radius: var(--radius-md, 8px);--native-select-picker-border: 1px solid var(--border-3);--native-select-picker-shadow: 0 2px 6px color-mix(in oklch, var(--text-1) 8%, transparent), 0 8px 24px color-mix(in oklch, var(--text-1) 10%, transparent);--native-select-option-color: var(--text-2);--native-select-option-hover: 5%;--native-select-option-active: 8%;--native-select-option-selected: 8%;--native-select-option-padding-x: 8px;--native-select-option-padding-y: 6px;box-sizing:border-box;block-size:var(--native-field-block-size);margin:0;padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;border-radius:var(--native-field-round);outline:0;background:var(--bg-1);box-shadow:inset 0 0 0 .5px var(--native-field-border);color:var(--text-1);color-scheme:inherit;font-family:var(--sans-serif);font-size:var(--native-field-font-size);font-weight:400;font-stretch:normal;font-style:normal;line-height:var(--native-field-line-height);transition:box-shadow .12s ease}.dark select[data-anta]{--native-select-picker-shadow: 0 2px 8px color-mix(in oklch, black 50%, transparent), 0 12px 32px color-mix(in oklch, black 40%, transparent), inset 0 0 0 1px color-mix(in oklch, white 8%, transparent)}@media(hover:hover)and (pointer:fine){select[data-anta]:not(:disabled):hover{box-shadow:inset 0 0 0 1px var(--native-field-border)}}select[data-anta]:focus{box-shadow:inset 0 0 0 1px var(--native-field-border);outline:1px solid var(--focus-ring);outline-offset:1px}select[data-anta]:disabled{background:color-mix(in oklch,var(--text-1) 4%,var(--bg-1));box-shadow:inset 0 0 0 .5px color-mix(in oklch,var(--text-1) 15%,transparent);color:var(--text-4);cursor:not-allowed}@media(forced-colors:active){input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week]),select[data-anta],textarea[data-anta]{border:1px solid ButtonBorder}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[data-anta-size=small],select[data-anta][data-anta-size=small],textarea[data-anta][data-anta-size=small]{--native-field-block-size: 24px;--native-field-padding-block: 2px;--native-field-font-size: 13px;--native-field-line-height: 16px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[data-anta-size=large],select[data-anta][data-anta-size=large],textarea[data-anta][data-anta-size=large]{--native-field-block-size: 32px;--native-field-padding-block: 5px;--native-field-font-size: 17px;--native-field-line-height: 22px}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[round],select[data-anta][round],textarea[data-anta][round]{--native-field-round: 999px;@supports (border-radius: attr(probe type(<length>),1px)){--native-field-round: attr(round type(<length>), 999px)}}input[data-anta]:is(:not([type]),[type=text],[type=search],[type=email],[type=number],[type=password],[type=tel],[type=url],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[tone]:not([tone=""]),textarea[data-anta][tone]:not([tone=""]){--native-field-tone: var(--border-2);--native-field-border: light-dark( oklch(from var(--native-field-tone) .7 calc(c*.8) h), oklch(from var(--native-field-tone) .5 calc(c*.8) h) );@supports (color: attr(probe type(<color>),red)){--native-field-tone: attr(tone type(<color>), var(--border-2))}}@supports (appearance: base-select){select[data-anta],select[data-anta]::picker(select){appearance:base-select;-webkit-appearance:base-select}select[data-anta]{padding:0}select[data-anta]>button{box-sizing:border-box;display:flex;align-items:center;gap:4px;inline-size:100%;min-block-size:var(--native-field-block-size);padding-block:var(--native-field-padding-block);padding-inline:7px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-variation-settings:inherit;text-align:start}select[data-anta]>button>selectedcontent{flex:1;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}select[data-anta]::picker-icon{display:none}select[data-anta]>button>a-icon{margin-inline-start:auto;color:var(--text-3);transition:transform .12s ease}select[data-anta]:open>button>a-icon{transform:rotate(180deg)}select[data-anta]::picker(select){box-sizing:border-box;display:flex;flex-direction:column;gap:1px;margin-block-start:4px;padding:4px;border:var(--native-select-picker-border);border-radius:var(--native-select-picker-radius);background:var(--native-select-picker-bg);box-shadow:var(--native-select-picker-shadow);color:var(--native-select-option-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}select[data-anta] option{box-sizing:border-box;min-block-size:28px;padding-block:var(--native-select-option-padding-y);padding-inline:var(--native-select-option-padding-x);border-radius:var(--radius-sm, 4px);background:transparent;color:var(--native-select-option-color);cursor:pointer;font-family:var(--sans-serif);font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;line-height:16px;text-transform:none;transition:background-color .28s ease-out}select[data-anta] option:is(:hover,:focus-visible){background:color-mix(in oklch,currentColor var(--native-select-option-hover),transparent);transition:background-color 60ms ease-in-out}select[data-anta] option:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}select[data-anta] option:active{background:color-mix(in oklch,currentColor var(--native-select-option-active),transparent);transition:none}select[data-anta] option:checked{background:color-mix(in oklch,currentColor var(--native-select-option-selected),transparent);transition:background-color .28s ease-out}select[data-anta] option:disabled{color:var(--text-5);cursor:default}select[data-anta] optgroup{display:flex;flex-direction:column;gap:1px;color:var(--text-5);font-family:var(--sans-serif);font-size:.75em;font-weight:600;letter-spacing:.06em;text-transform:uppercase}}}
@@ -1,5 +1,8 @@
1
- import { HTMLElementBase } from '../anta_helpers';
1
+ import { HTMLElementBase, SYNC_POPUP_ARIA, type PopupAriaRelations } from '../anta_helpers';
2
+ import { type ShadowAriaAttribute } from './shadow-aria';
2
3
  import './a-input.css';
4
+ declare const READ_DELEGATED_ARIA: unique symbol;
5
+ declare const WRITE_DELEGATED_ARIA: unique symbol;
3
6
  export declare class AInputElement extends HTMLElementBase {
4
7
  static formAssociated: boolean;
5
8
  static observedAttributes: string[];
@@ -12,6 +15,12 @@ export declare class AInputElement extends HTMLElementBase {
12
15
  private pendingValue?;
13
16
  private ready;
14
17
  private formDisabled;
18
+ private delegatedAria;
19
+ private consumingAria;
20
+ private ariaApplyQueued;
21
+ private popupAriaSource?;
22
+ private popupControls;
23
+ private popupActiveDescendant;
15
24
  constructor();
16
25
  /** Floating-element anchor protocol (see `anchorRect` in anta_helpers): point
17
26
  * a menu / tooltip anchored to this input at the `.field` box, not the host —
@@ -19,7 +28,20 @@ export declare class AInputElement extends HTMLElementBase {
19
28
  * below the hint or misalign a tooltip. */
20
29
  getAnchorRect(): DOMRect;
21
30
  connectedCallback(): void;
31
+ [SYNC_POPUP_ARIA](relations: PopupAriaRelations): void;
22
32
  attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
33
+ /** Standard ARIA is the raw custom-element API, but its semantic target is the
34
+ * native shadow field. Consume it synchronously so the host never remains a
35
+ * duplicate control after upgrade. */
36
+ private consumeAria;
37
+ /** React/Preact may remove a prop after Anta has already consumed its host
38
+ * attribute. Catch that no-op DOM removal so the shadow control still updates. */
39
+ removeAttribute(name: string): void;
40
+ toggleAttribute(name: string, force?: boolean): boolean;
41
+ [READ_DELEGATED_ARIA](name: ShadowAriaAttribute): string | null;
42
+ [WRITE_DELEGATED_ARIA](name: ShadowAriaAttribute, value: unknown): void;
43
+ private applyDelegatedAria;
44
+ private queueDelegatedAria;
23
45
  /** (Re)build the shadow control from the current attributes. */
24
46
  private buildControl;
25
47
  /** Autogrow (no `rows`) via `field-sizing: content` — or the JS fallback where
@@ -34,6 +56,8 @@ export declare class AInputElement extends HTMLElementBase {
34
56
  private syncAutoHeight;
35
57
  private forward;
36
58
  private syncDisabled;
59
+ private syncButtonPresentation;
60
+ private syncFormValue;
37
61
  /** Reflect `status` into the control's `aria-invalid` and the `:state(invalid)`
38
62
  * custom state. Called on `status` change AND from buildControl — so a field
39
63
  * that mounts already `status="critical"` gets `:state(invalid)` on the FIRST
@@ -48,6 +72,7 @@ export declare class AInputElement extends HTMLElementBase {
48
72
  private applyLabelAria;
49
73
  private onHintSlotChange;
50
74
  private applyDescriptionAria;
75
+ private applyPopupAria;
51
76
  private updateFilled;
52
77
  private updateValidity;
53
78
  /** The current text value. Reading prefers the live control; before it's
@@ -75,3 +100,4 @@ export declare class AInputElement extends HTMLElementBase {
75
100
  formStateRestoreCallback(state: string): void;
76
101
  }
77
102
  export declare function register_a_input(): void;
103
+ export {};