@antadesign/anta 0.3.27 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICES.md +32 -1
- package/dist/anta_helpers.d.ts +25 -0
- package/dist/anta_helpers.js +28 -0
- package/dist/box-observation.d.ts +8 -0
- package/dist/box-observation.js +41 -0
- package/dist/box-types.d.ts +2 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.js +77 -46
- package/dist/components/Banner.js +2 -2
- package/dist/components/Box.d.ts +28 -12
- package/dist/components/Box.js +18 -11
- package/dist/components/Breadcrumbs.css +1 -1
- package/dist/components/Button.js +2 -2
- package/dist/components/Calendar.js +3 -5
- package/dist/components/Card.js +2 -2
- package/dist/components/Checkbox.d.ts +12 -13
- package/dist/components/Checkbox.js +5 -13
- package/dist/components/Expander.js +2 -2
- package/dist/components/Input.d.ts +8 -2
- package/dist/components/Input.js +6 -2
- package/dist/components/InputAutocomplete.js +3 -12
- package/dist/components/InputDate.css +1 -1
- package/dist/components/InputDate.js +2 -0
- package/dist/components/InputTime.js +2 -2
- package/dist/components/Loader.js +2 -1
- package/dist/components/Menu.d.ts +4 -4
- package/dist/components/Menu.js +1 -1
- package/dist/components/MenuItem.d.ts +7 -8
- package/dist/components/MenuItem.js +4 -4
- package/dist/components/Panel.d.ts +17 -0
- package/dist/components/Panel.js +22 -0
- package/dist/components/Progress.js +2 -2
- package/dist/components/RadioGroup.d.ts +14 -14
- package/dist/components/RadioGroup.js +7 -23
- package/dist/components/Select.d.ts +26 -21
- package/dist/components/Select.js +51 -38
- package/dist/components/SelectFaceted.d.ts +24 -11
- package/dist/components/SelectFaceted.js +65 -44
- package/dist/components/Slider.js +3 -3
- package/dist/components/Steps.css +1 -1
- package/dist/components/Switch.d.ts +10 -11
- package/dist/components/Switch.js +3 -11
- package/dist/components/TabPanel.d.ts +3 -8
- package/dist/components/TabPanel.js +2 -1
- package/dist/components/Tabs.d.ts +2 -2
- package/dist/components/Tabs.js +4 -3
- package/dist/components/Tag.d.ts +7 -9
- package/dist/components/Tag.js +2 -2
- package/dist/components/Text.js +2 -2
- package/dist/components/Title.js +2 -2
- package/dist/components/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/select-parts.css +1 -1
- package/dist/elements/a-avatar.css +1 -1
- package/dist/elements/a-banner.css +1 -1
- package/dist/elements/a-box.css +1 -1
- package/dist/elements/a-box.d.ts +6 -6
- package/dist/elements/a-box.js +74 -23
- package/dist/elements/a-button.css +1 -1
- package/dist/elements/a-button.d.ts +16 -10
- package/dist/elements/a-button.js +64 -1
- package/dist/elements/a-calendar.css +1 -1
- package/dist/elements/a-capture.css +1 -1
- package/dist/elements/a-card.css +1 -1
- package/dist/elements/a-checkbox.css +1 -1
- package/dist/elements/a-checkbox.d.ts +3 -0
- package/dist/elements/a-checkbox.js +17 -1
- package/dist/elements/a-copy.css +1 -1
- package/dist/elements/a-dialog.css +1 -1
- package/dist/elements/a-expander.css +1 -1
- package/dist/elements/a-expander.js +1 -0
- package/dist/elements/a-icon.css +1 -1
- package/dist/elements/a-icon.shapes.css +1 -1
- package/dist/elements/a-input-time.css +1 -1
- package/dist/elements/a-input-time.d.ts +8 -0
- package/dist/elements/a-input-time.js +120 -15
- package/dist/elements/a-input.css +1 -1
- package/dist/elements/a-input.d.ts +27 -1
- package/dist/elements/a-input.js +180 -41
- package/dist/elements/a-loader.css +1 -1
- package/dist/elements/a-menu-group.css +1 -1
- package/dist/elements/a-menu-item.css +1 -1
- package/dist/elements/a-menu-item.js +1 -0
- package/dist/elements/a-menu-separator.css +1 -1
- package/dist/elements/a-menu.css +1 -1
- package/dist/elements/a-menu.d.ts +8 -13
- package/dist/elements/a-menu.js +146 -45
- package/dist/elements/a-panel.css +1 -0
- package/dist/elements/a-panel.d.ts +16 -0
- package/dist/elements/a-panel.js +153 -0
- package/dist/elements/a-progress.css +1 -1
- package/dist/elements/a-radio-group.css +1 -1
- package/dist/elements/a-radio.css +1 -1
- package/dist/elements/a-radio.d.ts +4 -0
- package/dist/elements/a-radio.js +18 -0
- package/dist/elements/a-slider.css +1 -1
- package/dist/elements/a-slider.d.ts +1 -0
- package/dist/elements/a-slider.js +3 -6
- package/dist/elements/a-switch.css +1 -1
- package/dist/elements/a-switch.d.ts +3 -0
- package/dist/elements/a-switch.js +17 -1
- package/dist/elements/a-tab.css +1 -1
- package/dist/elements/a-tabpanel.css +1 -1
- package/dist/elements/a-tabs.css +1 -1
- package/dist/elements/a-tag.css +1 -1
- package/dist/elements/a-text.css +1 -1
- package/dist/elements/a-text.js +1 -0
- package/dist/elements/a-title.css +1 -1
- package/dist/elements/a-toast.css +1 -1
- package/dist/elements/a-toaster.css +1 -1
- package/dist/elements/a-tooltip.css +1 -1
- package/dist/elements/a-tooltip.d.ts +3 -4
- package/dist/elements/a-tooltip.js +30 -8
- package/dist/elements/focus.d.ts +9 -0
- package/dist/elements/focus.js +41 -0
- package/dist/elements/index.d.ts +1 -0
- package/dist/elements/index.js +3 -0
- package/dist/elements/panel-focus.d.ts +10 -0
- package/dist/elements/panel-focus.js +86 -0
- package/dist/elements/shadow-aria.d.ts +10 -0
- package/dist/elements/shadow-aria.js +155 -0
- package/dist/general_types.d.ts +70 -42
- package/dist/generate-icons.mjs +3 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +2 -0
- package/dist/jsx-runtime.d.ts +10 -1
- package/dist/reset.css +1 -1
- package/dist/theme-antithesis.css +1 -0
- package/dist/theme-antune.css +1 -0
- package/dist/tokens.css +1 -1
- package/docs/accessibility.md +4 -2
- package/docs/changelog.md +135 -0
- package/docs/colors.md +7 -7
- package/docs/comparison.md +2 -2
- package/docs/components/box.md +98 -34
- package/docs/components/breadcrumbs.md +75 -6
- package/docs/components/button.md +2 -2
- package/docs/components/capture.md +8 -8
- package/docs/components/checkbox.md +21 -16
- package/docs/components/input-autocomplete.md +6 -0
- package/docs/components/input-date.md +8 -2
- package/docs/components/input.md +99 -40
- package/docs/components/menu.md +5 -6
- package/docs/components/panel.md +189 -0
- package/docs/components/radio.md +16 -13
- package/docs/components/select-faceted.md +58 -2
- package/docs/components/select.md +72 -59
- package/docs/components/steps.md +4 -4
- package/docs/components/switch.md +16 -10
- package/docs/components/tabs.md +21 -8
- package/docs/components/tag.md +5 -3
- package/docs/components/tooltip.md +6 -4
- package/docs/index.md +1 -0
- package/docs/install-config.md +23 -12
- package/docs/normalization.md +6 -4
- package/docs/theming.md +95 -17
- package/package.json +8 -4
- package/dist/components/InputDate.module.css +0 -1
- package/dist/components/Select.module.css +0 -1
- package/dist/components/SelectFaceted.module.css +0 -1
- package/dist/search-index.json +0 -0
- package/dist/theme-anta.css +0 -1
|
@@ -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 = Symbol("readDelegatedAria");
|
|
14
|
+
const WRITE_DELEGATED_ARIA = 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");
|
|
@@ -74,8 +86,8 @@ const SHADOW_STYLE = `
|
|
|
74
86
|
padding-inline: 7px;
|
|
75
87
|
color: var(--input-time-text);
|
|
76
88
|
font-family: var(--sans-serif);
|
|
77
|
-
font-
|
|
78
|
-
font-
|
|
89
|
+
font-stretch: normal;
|
|
90
|
+
font-style: normal;
|
|
79
91
|
font-size: var(--input-time-font-size);
|
|
80
92
|
line-height: var(--input-time-line-height);
|
|
81
93
|
font-weight: 400;
|
|
@@ -92,8 +104,9 @@ const SHADOW_STYLE = `
|
|
|
92
104
|
background: transparent;
|
|
93
105
|
color: inherit;
|
|
94
106
|
font: inherit;
|
|
95
|
-
font-
|
|
96
|
-
font-
|
|
107
|
+
font-variation-settings: inherit;
|
|
108
|
+
font-stretch: inherit;
|
|
109
|
+
font-style: inherit;
|
|
97
110
|
line-height: inherit;
|
|
98
111
|
text-align: center;
|
|
99
112
|
white-space: nowrap;
|
|
@@ -101,9 +114,6 @@ const SHADOW_STYLE = `
|
|
|
101
114
|
cursor: text;
|
|
102
115
|
font-variant-numeric: tabular-nums;
|
|
103
116
|
}
|
|
104
|
-
@media (pointer: coarse) {
|
|
105
|
-
:host(:focus-within) .seg { font-size: max(16px, var(--input-time-font-size)); }
|
|
106
|
-
}
|
|
107
117
|
.seg--period {
|
|
108
118
|
field-sizing: content;
|
|
109
119
|
width: auto;
|
|
@@ -193,18 +203,22 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
193
203
|
"disabled",
|
|
194
204
|
"min",
|
|
195
205
|
"max",
|
|
196
|
-
"
|
|
197
|
-
|
|
206
|
+
"required",
|
|
207
|
+
...INPUT_TIME_ARIA
|
|
198
208
|
];
|
|
199
209
|
#internals;
|
|
200
210
|
#field;
|
|
201
211
|
#labelSlot;
|
|
212
|
+
#hintSlot;
|
|
202
213
|
#segRow;
|
|
203
214
|
#ready = false;
|
|
204
215
|
#formDisabled = false;
|
|
205
216
|
// True once a value arrived via the `value` property setter — so connect
|
|
206
217
|
// doesn't re-seed from the (possibly empty) attribute and wipe it.
|
|
207
218
|
#seeded = false;
|
|
219
|
+
#delegatedAria = /* @__PURE__ */ new Map();
|
|
220
|
+
#consumingAria = /* @__PURE__ */ new Set();
|
|
221
|
+
#ariaApplyQueued = false;
|
|
208
222
|
// The canonical 24-hour "HH:mm" (or ''), kept in step with the segment state.
|
|
209
223
|
// Mode-independent, so a locale / hour12 switch re-derives display from it
|
|
210
224
|
// rather than from the now-stale display digits.
|
|
@@ -232,6 +246,8 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
232
246
|
this.#labelSlot = shadow.querySelector(".label");
|
|
233
247
|
this.#labelSlot.addEventListener("click", () => this.#segs[0]?.el.focus());
|
|
234
248
|
this.#labelSlot.addEventListener("slotchange", this.#onLabelSlotChange);
|
|
249
|
+
this.#hintSlot = shadow.querySelector(".hint");
|
|
250
|
+
this.#hintSlot.addEventListener("slotchange", this.#onHintSlotChange);
|
|
235
251
|
this.#field = shadow.querySelector(".field");
|
|
236
252
|
this.#segRow = shadow.querySelector(".segments");
|
|
237
253
|
this.#field.addEventListener("mousedown", this.#onFieldMouseDown);
|
|
@@ -262,6 +278,11 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
262
278
|
this.#iso = this.value;
|
|
263
279
|
}
|
|
264
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
|
+
}
|
|
265
286
|
if (!this.#ready) return;
|
|
266
287
|
if (name === "value") {
|
|
267
288
|
if (value !== null) this.value = value;
|
|
@@ -284,15 +305,68 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
284
305
|
this.#updateValidity();
|
|
285
306
|
return;
|
|
286
307
|
}
|
|
287
|
-
if (name === "aria-label") {
|
|
288
|
-
this.#applyGroupLabel();
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
308
|
if (name === "required") {
|
|
309
|
+
this.#syncRequired();
|
|
292
310
|
this.#updateValidity();
|
|
293
311
|
return;
|
|
294
312
|
}
|
|
295
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
|
+
}
|
|
296
370
|
// --- Locale-driven segment construction ---
|
|
297
371
|
get #locale() {
|
|
298
372
|
return this.getAttribute("locale") || (typeof navigator !== "undefined" ? navigator.language : "en-US");
|
|
@@ -373,7 +447,11 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
373
447
|
}
|
|
374
448
|
}
|
|
375
449
|
this.#applyValue(keep);
|
|
450
|
+
for (const name of this.#delegatedAria.keys()) this.#applyDelegatedAria(name);
|
|
451
|
+
this.#queueDelegatedAria();
|
|
376
452
|
this.#applyGroupLabel();
|
|
453
|
+
this.#applyGroupDescription();
|
|
454
|
+
this.#syncRequired();
|
|
377
455
|
this.#syncStatus();
|
|
378
456
|
this.#syncDisabled();
|
|
379
457
|
this.#commitEdit({ dispatch: false });
|
|
@@ -660,25 +738,40 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
660
738
|
this.dispatchEvent(new Event(type, { bubbles: true, composed: type === "input" }));
|
|
661
739
|
}
|
|
662
740
|
#applyGroupLabel() {
|
|
663
|
-
|
|
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();
|
|
664
743
|
if (label) this.#segRow.setAttribute("aria-label", label);
|
|
665
744
|
else this.#segRow.removeAttribute("aria-label");
|
|
666
745
|
}
|
|
667
746
|
#onLabelSlotChange = () => {
|
|
668
747
|
this.#applyGroupLabel();
|
|
669
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
|
+
};
|
|
670
758
|
#syncDisabled() {
|
|
671
759
|
const off = this.hasAttribute("disabled") || this.#formDisabled;
|
|
672
760
|
for (const seg of this.#segs) seg.el.disabled = off;
|
|
673
761
|
}
|
|
674
762
|
#syncStatus() {
|
|
675
763
|
const critical = this.getAttribute("status") === "critical";
|
|
676
|
-
|
|
764
|
+
const explicit = this.#delegatedAria.get("aria-invalid");
|
|
765
|
+
for (const seg of this.#segs) seg.el.setAttribute("aria-invalid", explicit ?? (critical ? "true" : "false"));
|
|
677
766
|
try {
|
|
678
767
|
critical ? this.#internals?.states?.add("invalid") : this.#internals?.states?.delete("invalid");
|
|
679
768
|
} catch {
|
|
680
769
|
}
|
|
681
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
|
+
}
|
|
682
775
|
#updateFilled() {
|
|
683
776
|
if (this.value) this.#internals?.states?.add("filled");
|
|
684
777
|
else this.#internals?.states?.delete("filled");
|
|
@@ -772,6 +865,18 @@ class AInputTimeElement extends HTMLElementBase {
|
|
|
772
865
|
this.value = state ?? "";
|
|
773
866
|
}
|
|
774
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
|
+
}
|
|
775
880
|
function register_a_input_time() {
|
|
776
881
|
if (typeof customElements === "undefined") return;
|
|
777
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-feature-settings:"ss02","ss05","tnum";font-variation-settings:"wdth" 100,"slnt" 0,"ital" 0;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: oklch(from var(--input-tone-source) .7 calc(c*.8) h);.dark &{--input-border: 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: oklch(from var(--input-status-source) .58 c h)}.dark a-input[status]:not([status=neutral]){--input-border: oklch(from var(--input-status-source) .52 c h)}a-input:disabled{--input-bg: #44374b12;--input-border: #44374b26;--input-text: var(--text-4);--input-label: var(--text-4);--input-hint: var(--text-5);cursor:not-allowed}a-input[status]:disabled{--input-bg: #44374b12;--input-border: #44374b26;--input-hint: var(--text-5)}.dark a-input:disabled{--input-bg: #e4d1ef0d;--input-border: #e4d1ef1f}.dark a-input[status]:disabled{--input-bg: #e4d1ef0d;--input-border: #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:light;font-family:var(--sans-serif);font-size:var(--native-field-zoom-safe-font-size, var(--native-field-font-size));font-weight:400;font-feature-settings:"ss02","ss05","tnum";font-variation-settings:"wdth" 100,"slnt" 0,"ital" 0;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}.dark 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]),.dark textarea[data-anta]{color-scheme:dark}@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:light;font-family:var(--sans-serif);font-size:var(--native-file-font-size);font-weight:400;font-feature-settings:"ss02","ss05","tnum";font-variation-settings:"wdth" 100,"slnt" 0,"ital" 0;line-height:var(--native-file-line-height)}.dark input[data-anta][type=file]{color-scheme:dark}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-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: color-mix(in oklch, var(--bg-1) 90%, 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:light;font-family:var(--sans-serif);font-size:var(--native-field-zoom-safe-font-size, var(--native-field-font-size));font-weight:400;font-feature-settings:"ss02","ss05","tnum";font-variation-settings:"wdth" 100,"slnt" 0,"ital" 0;line-height:var(--native-field-line-height);transition:box-shadow .12s ease}.dark select[data-anta]{--native-select-picker-bg: color-mix(in oklch, var(--bg-1) 78%, transparent);--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);color-scheme:dark}@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}@media(pointer:coarse){input[data-anta]:focus,select[data-anta]:focus,textarea[data-anta]:focus{--native-field-zoom-safe-font-size: max(16px, var(--native-field-font-size))}}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: oklch(from var(--native-field-tone) .7 calc(c*.8) h);@supports (color: attr(probe type(<color>),red)){--native-field-tone: attr(tone type(<color>), var(--border-2))}}.dark 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=""]),.dark textarea[data-anta][tone]:not([tone=""]){--native-field-border: oklch(from var(--native-field-tone) .5 calc(c*.8) h)}@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;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-feature-settings:"ss02","ss05","tnum";font-size:14px;font-weight:400;font-variation-settings:"wdth" 100,"slnt" 0,"ital" 0;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 {};
|