@antadesign/anta 0.3.34 → 0.3.35
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/LICENSE.md +14 -1
- package/README.md +9 -0
- package/dist/anta_helpers.d.ts +46 -30
- package/dist/anta_helpers.js +66 -25
- package/dist/bundle.css +1 -1
- package/dist/bundle.js +2 -1333
- package/dist/components/Banner.d.ts +25 -40
- package/dist/components/Banner.js +15 -17
- package/dist/components/Button.js +1 -0
- package/dist/components/ButtonCopy.js +3 -2
- package/dist/components/Calendar.js +13 -13
- package/dist/components/Card.d.ts +9 -17
- package/dist/components/Card.js +50 -46
- package/dist/components/Dialog.d.ts +1 -0
- package/dist/components/Dialog.js +16 -10
- package/dist/components/Expander.d.ts +6 -21
- package/dist/components/Expander.js +24 -23
- package/dist/components/Icon.d.ts +8 -14
- package/dist/components/Input.d.ts +77 -96
- package/dist/components/Input.js +23 -27
- package/dist/components/InputAutocomplete.d.ts +29 -10
- package/dist/components/InputAutocomplete.js +25 -8
- package/dist/components/InputDate.js +2 -2
- package/dist/components/InputTime.d.ts +10 -4
- package/dist/components/InputTime.js +20 -16
- package/dist/components/Loader.d.ts +2 -2
- package/dist/components/Menu.d.ts +5 -4
- package/dist/components/Menu.js +13 -8
- package/dist/components/MenuItem.js +1 -14
- package/dist/components/MenuItemCopy.js +2 -2
- package/dist/components/Panel.d.ts +3 -1
- package/dist/components/Panel.js +17 -11
- package/dist/components/Progress.d.ts +21 -23
- package/dist/components/Progress.js +13 -9
- package/dist/components/RadioGroup.js +6 -8
- package/dist/components/{select-parts.css → Select.css} +1 -1
- package/dist/components/Select.d.ts +53 -35
- package/dist/components/Select.js +53 -97
- package/dist/components/SelectFaceted.d.ts +7 -3
- package/dist/components/SelectFaceted.js +21 -9
- package/dist/components/Slider.d.ts +28 -11
- package/dist/components/Slider.js +20 -20
- package/dist/components/Steps.css +1 -1
- package/dist/components/Steps.js +1 -11
- package/dist/components/Tabs.d.ts +17 -20
- package/dist/components/Tabs.js +5 -8
- package/dist/components/Text.d.ts +55 -36
- package/dist/components/Text.js +35 -22
- package/dist/components/Title.d.ts +16 -26
- package/dist/components/Title.js +2 -1
- package/dist/components/Toaster.js +9 -2
- package/dist/components/Tooltip.d.ts +10 -15
- package/dist/components/copy-props.d.ts +14 -3
- package/dist/components/copy-props.js +14 -3
- package/dist/components/select-tree.d.ts +24 -0
- package/dist/components/select-tree.js +35 -0
- package/dist/element-base.d.ts +10 -0
- package/dist/element-base.js +15 -0
- package/dist/elements/a-banner.css +1 -1
- package/dist/elements/a-banner.d.ts +4 -1
- package/dist/elements/a-banner.js +22 -112
- package/dist/elements/a-button.d.ts +2 -1
- package/dist/elements/a-button.js +18 -1
- package/dist/elements/a-calendar.d.ts +14 -13
- package/dist/elements/a-calendar.js +29 -24
- package/dist/elements/a-card.css +1 -1
- package/dist/elements/a-card.d.ts +0 -9
- package/dist/elements/a-card.js +0 -184
- package/dist/elements/a-checkbox.css +1 -1
- package/dist/elements/a-copy.css +1 -1
- package/dist/elements/a-copy.d.ts +1 -5
- package/dist/elements/a-copy.js +129 -108
- package/dist/elements/a-dialog.css +1 -1
- package/dist/elements/a-dialog.d.ts +1 -1
- package/dist/elements/a-dialog.js +66 -194
- package/dist/elements/a-expander.css +1 -1
- package/dist/elements/a-expander.d.ts +4 -30
- package/dist/elements/a-expander.js +85 -344
- package/dist/elements/a-icon.d.ts +5 -23
- package/dist/elements/a-icon.js +1 -2
- package/dist/elements/a-input-time.css +1 -1
- package/dist/elements/a-input-time.d.ts +2 -1
- package/dist/elements/a-input-time.js +101 -168
- package/dist/elements/a-input.css +1 -1
- package/dist/elements/a-input.d.ts +10 -8
- package/dist/elements/a-input.js +155 -230
- package/dist/elements/a-loader.d.ts +5 -8
- package/dist/elements/a-loader.js +1 -2
- package/dist/elements/a-menu-item.css +1 -1
- package/dist/elements/a-menu-item.d.ts +5 -3
- package/dist/elements/a-menu-item.js +5 -1
- package/dist/elements/a-menu.css +1 -1
- package/dist/elements/a-menu.d.ts +5 -7
- package/dist/elements/a-menu.js +383 -299
- package/dist/elements/a-panel.css +1 -1
- package/dist/elements/a-panel.js +19 -37
- package/dist/elements/a-progress.css +1 -1
- package/dist/elements/a-progress.d.ts +0 -22
- package/dist/elements/a-progress.js +0 -100
- package/dist/elements/a-radio-group.d.ts +1 -1
- package/dist/elements/a-radio-group.js +6 -4
- package/dist/elements/a-select-faceted.d.ts +1 -1
- package/dist/elements/a-select-faceted.js +1 -1
- package/dist/elements/a-select.d.ts +1 -1
- package/dist/elements/a-select.js +1 -1
- package/dist/elements/a-slider.css +1 -1
- package/dist/elements/a-slider.d.ts +11 -3
- package/dist/elements/a-slider.js +244 -242
- package/dist/elements/a-switch.css +1 -1
- package/dist/elements/a-tab.css +1 -1
- package/dist/elements/a-tabs.css +1 -1
- package/dist/elements/a-tabs.d.ts +1 -1
- package/dist/elements/a-tabs.js +6 -4
- package/dist/elements/a-tag.css +1 -1
- package/dist/elements/a-text.css +1 -1
- package/dist/elements/a-text.d.ts +6 -43
- package/dist/elements/a-text.js +110 -193
- package/dist/elements/a-title.css +1 -1
- package/dist/elements/a-toast.css +1 -1
- package/dist/elements/a-toast.d.ts +10 -45
- package/dist/elements/a-toast.js +80 -66
- package/dist/elements/a-toaster.css +1 -1
- package/dist/elements/a-toaster.js +9 -44
- package/dist/elements/a-tooltip.css +1 -1
- package/dist/elements/a-tooltip.d.ts +1 -1
- package/dist/elements/a-tooltip.js +142 -136
- package/dist/elements/copy-behavior.d.ts +1 -1
- package/dist/elements/copy-behavior.js +21 -21
- package/dist/elements/index.d.ts +3 -3
- package/dist/elements/index.js +3 -7
- package/dist/elements/input-focus-modality.d.ts +15 -0
- package/dist/elements/input-focus-modality.js +44 -0
- package/dist/elements/input-trailing-actions.d.ts +5 -0
- package/dist/elements/input-trailing-actions.js +38 -0
- package/dist/elements/shadow-aria.d.ts +2 -0
- package/dist/elements/shadow-aria.js +2 -1
- package/dist/elements/value-input.d.ts +3 -0
- package/dist/elements/value-input.js +12 -0
- package/dist/general_types.d.ts +103 -96
- package/dist/index.d.ts +1 -1
- package/dist/input-events.d.ts +4 -0
- package/dist/input-events.js +15 -0
- package/dist/jsx-runtime.d.ts +70 -23
- package/dist/jsx-runtime.js +26 -19
- package/dist/native-event-props.d.ts +2 -0
- package/dist/native-event-props.js +10 -0
- package/dist/reset.css +1 -1
- package/dist/theme-antithesis.css +10 -1
- package/dist/theme-antune.css +1 -1
- package/docs/accessibility.md +17 -3
- package/docs/changelog.md +348 -2
- package/docs/comparison.md +2 -2
- package/docs/components/avatar.md +5 -0
- package/docs/components/banner.md +117 -187
- package/docs/components/button.md +22 -0
- package/docs/components/card.md +74 -28
- package/docs/components/checkbox.md +9 -10
- package/docs/components/dialog.md +83 -32
- package/docs/components/expander.md +198 -435
- package/docs/components/icon.md +11 -17
- package/docs/components/input-autocomplete.md +152 -52
- package/docs/components/input-date.md +175 -148
- package/docs/components/input-time.md +81 -38
- package/docs/components/input.md +343 -349
- package/docs/components/loader.md +2 -1
- package/docs/components/menu.md +35 -6
- package/docs/components/panel.md +18 -0
- package/docs/components/progress.md +83 -49
- package/docs/components/radio.md +39 -43
- package/docs/components/select-faceted.md +54 -7
- package/docs/components/select.md +390 -386
- package/docs/components/slider.md +136 -19
- package/docs/components/steps.md +2 -1
- package/docs/components/switch.md +8 -9
- package/docs/components/tabs.md +110 -104
- package/docs/components/text.md +110 -86
- package/docs/components/title.md +47 -33
- package/docs/components/toaster.md +242 -84
- package/docs/components/tooltip.md +204 -113
- package/docs/install-config.md +183 -26
- package/docs/packages/plot.md +170 -148
- package/docs/theming.md +7 -0
- package/package.json +41 -3
- package/theme-antithesis-license.md +66 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-dialog{--dialog-bg: var(--bg-1);--dialog-text: var(--text-2);--dialog-border: light-dark( color-mix(in oklch, black 9%, transparent), color-mix(in oklch, white 14%, transparent) );--dialog-radius: 10px;--dialog-shadow: inset 0 0 0 1px var(--dialog-border), 0 1px 3px color-mix(in oklch, black 10%, transparent), 0 12px 32px color-mix(in oklch, black 22%, transparent), 0 28px 64px color-mix(in oklch, black 14%, transparent);--dialog-overlay: light-dark( color-mix(in oklch, black 42%, transparent), color-mix(in oklch, black 62%, transparent) );display:contents}a-dialog[round]{--dialog-round: var(--dialog-radius, 10px);@supports (border-radius: attr(probe type(<length>),1px)){--dialog-round: attr(round type(<length>), var(--dialog-radius, 10px))}}a-dialog:not(:defined){display:none}.dark a-dialog{--dialog-shadow: inset 0 0 0 1px var(--dialog-border), 0 1px 3px color-mix(in oklch, black 40%, transparent), 0 12px 32px color-mix(in oklch, black 55%, transparent), 0 28px 64px color-mix(in oklch, black 40%, transparent)}@media(forced-colors:active){a-dialog{--dialog-outline: 1px solid CanvasText;--dialog-shadow: none}}}a-dialog>p:last-child,a-dialog>:not([slot])>p:last-child{margin-block-end:0}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-dialog{--dialog-bg: var(--bg-1);--dialog-text: var(--text-2);--dialog-border: light-dark( color-mix(in oklch, black 9%, transparent), color-mix(in oklch, white 14%, transparent) );--dialog-radius: 10px;--dialog-shadow: inset 0 0 0 1px var(--dialog-border), 0 1px 3px color-mix(in oklch, black 10%, transparent), 0 12px 32px color-mix(in oklch, black 22%, transparent), 0 28px 64px color-mix(in oklch, black 14%, transparent);--dialog-overlay: light-dark( color-mix(in oklch, black 42%, transparent), color-mix(in oklch, black 62%, transparent) );display:contents}a-dialog::part(dialog){--_dur: .2s;--_r: var(--dialog-round, var(--dialog-radius, 10px));position:fixed;box-sizing:border-box;padding:0;border:var(--dialog-outline, none);max-width:calc(100vw - 2 * var(--dialog-margin, 32px));max-height:calc(100dvh - 2 * var(--dialog-margin, 32px));width:var(--dialog-width, 480px);height:var(--dialog-height, fit-content);overflow:visible;color:var(--dialog-text, inherit);background:var(--dialog-bg, #fff);border-radius:var(--_r);box-shadow:var(--dialog-shadow, inset 0 0 0 1px color-mix(in oklch, black 8%, transparent), 0 10px 38px color-mix(in oklch, black 28%, transparent));flex-direction:column}a-dialog::part(dialog):modal{display:flex}a-dialog::part(dialog):open{display:flex}a-dialog::part(dialog):focus,a-dialog::part(dialog):focus-visible{outline:none}a-dialog::part(dialog)::backdrop{--_overlay: var(--dialog-overlay, color-mix(in oklch, black 40%, transparent));background:var(--_overlay)}a-dialog{--_enter-from: scale(.97)}a-dialog[position=left]{--_enter-from: translateX(-100%)}a-dialog[position=right]{--_enter-from: translateX(100%)}a-dialog[position=top]{--_enter-from: translateY(-100%)}a-dialog[position=bottom]{--_enter-from: translateY(100%)}@media(prefers-reduced-motion:no-preference){@supports selector(a-dialog::part(dialog):open){a-dialog::part(dialog){opacity:0;transform:var(--_enter-from);transition:opacity var(--_dur) ease,transform var(--_dur) ease,overlay var(--_dur) ease allow-discrete,display var(--_dur) ease allow-discrete}a-dialog::part(dialog):open{opacity:1;transform:none}@starting-style{a-dialog::part(dialog):open{opacity:0;transform:var(--_enter-from)}}}@supports selector(a-dialog::part(dialog):modal::backdrop){a-dialog::part(dialog)::backdrop{background:transparent;transition:background var(--_dur) ease,overlay var(--_dur) ease allow-discrete,display var(--_dur) ease allow-discrete}a-dialog::part(dialog):modal::backdrop{background:var(--_overlay)}@starting-style{a-dialog::part(dialog):modal::backdrop{background:transparent}}}}a-dialog[position=left]::part(dialog),a-dialog[position=right]::part(dialog){width:var(--dialog-width, 380px);max-width:calc(100vw - var(--dialog-margin, 32px));height:100dvh;max-height:100dvh;border-radius:0}a-dialog[position=left]::part(dialog){margin:0 auto 0 0}a-dialog[position=right]::part(dialog){margin:0 0 0 auto}a-dialog[position=top]::part(dialog),a-dialog[position=bottom]::part(dialog){width:100vw;max-width:100vw;height:var(--dialog-height, fit-content);max-height:calc(100dvh - var(--dialog-margin, 32px));border-radius:0}a-dialog[position=top]::part(dialog){margin:0 auto auto}a-dialog[position=bottom]::part(dialog){margin:auto auto 0}a-dialog[position=fullscreen]::part(dialog){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}a-dialog[round]::part(dialog){border-radius:var(--_r)}a-dialog[round=top]::part(dialog){border-radius:var(--_r) var(--_r) 0 0}a-dialog[round=bottom]::part(dialog){border-radius:0 0 var(--_r) var(--_r)}a-dialog[round=left]::part(dialog){border-radius:var(--_r) 0 0 var(--_r)}a-dialog[round=right]::part(dialog){border-radius:0 var(--_r) var(--_r) 0}a-dialog::part(header){display:none;flex:0 0 auto;padding:var(--dialog-header-padding, 18px 20px 8px);overflow:clip;overflow-wrap:anywhere;font-size:17px;font-weight:560;line-height:24px}a-dialog:state(has-header)::part(header){display:block}a-dialog:has(>[slot=close])::part(header){padding-inline-end:52px}a-dialog::part(body){display:block;flex:1 1 auto;min-height:0;overflow:auto;padding:var(--dialog-body-padding, 8px 20px 12px)}a-dialog:has(>[slot=close]):not(:state(has-header))::part(body){padding-inline-end:52px}a-dialog::part(footer){display:none;flex:0 0 auto;padding:var(--dialog-footer-padding, 8px 20px 18px)}a-dialog:state(has-footer)::part(footer){display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}a-dialog::part(close){display:block;position:absolute;inset-block-start:10px;inset-inline-end:10px;z-index:1}a-dialog>a-dialog-close[slot=close],a-dialog>a-dialog-footer[slot=footer]{display:contents}a-dialog[round]{--dialog-round: var(--dialog-radius, 10px);@supports (border-radius: attr(probe type(<length>),1px)){--dialog-round: attr(round type(<length>), var(--dialog-radius, 10px))}}a-dialog:not(:defined){display:none}.dark a-dialog{--dialog-shadow: inset 0 0 0 1px var(--dialog-border), 0 1px 3px color-mix(in oklch, black 40%, transparent), 0 12px 32px color-mix(in oklch, black 55%, transparent), 0 28px 64px color-mix(in oklch, black 40%, transparent)}@media(forced-colors:active){a-dialog{--dialog-outline: 1px solid CanvasText;--dialog-shadow: none}}}a-dialog>p:last-child,a-dialog>:not([slot])>p:last-child{margin-block-end:0}
|
|
@@ -5,8 +5,8 @@ export declare class ADialogElement extends HTMLElementBase {
|
|
|
5
5
|
static observedAttributes: string[];
|
|
6
6
|
private dialog;
|
|
7
7
|
private headerSlot;
|
|
8
|
+
private bodySlot;
|
|
8
9
|
private footerSlot;
|
|
9
|
-
private closeSlot;
|
|
10
10
|
constructor();
|
|
11
11
|
connectedCallback(): void;
|
|
12
12
|
disconnectedCallback(): void;
|
|
@@ -1,169 +1,12 @@
|
|
|
1
1
|
import { HTMLElementBase, parseOpenState } from "../anta_helpers";
|
|
2
2
|
import "./a-dialog.css";
|
|
3
3
|
const CLOSE_TRIGGER = "closerequest";
|
|
4
|
-
const ANIM_MS = 200;
|
|
5
|
-
const SHADOW_STYLE = `
|
|
6
|
-
:host { display: contents; }
|
|
7
|
-
|
|
8
|
-
dialog {
|
|
9
|
-
--_dur: ${ANIM_MS}ms;
|
|
10
|
-
--_r: var(--dialog-round, var(--dialog-radius, 10px));
|
|
11
|
-
|
|
12
|
-
position: fixed;
|
|
13
|
-
box-sizing: border-box;
|
|
14
|
-
padding: 0;
|
|
15
|
-
border: var(--dialog-outline, none);
|
|
16
|
-
max-width: calc(100vw - 2 * var(--dialog-margin, 32px));
|
|
17
|
-
max-height: calc(100dvh - 2 * var(--dialog-margin, 32px));
|
|
18
|
-
width: var(--dialog-width, 480px);
|
|
19
|
-
height: var(--dialog-height, fit-content);
|
|
20
|
-
overflow: visible;
|
|
21
|
-
color: var(--dialog-text, inherit);
|
|
22
|
-
background: var(--dialog-bg, #fff);
|
|
23
|
-
border-radius: var(--_r);
|
|
24
|
-
box-shadow: var(--dialog-shadow, inset 0 0 0 1px color-mix(in oklch, black 8%, transparent), 0 10px 38px color-mix(in oklch, black 28%, transparent));
|
|
25
|
-
|
|
26
|
-
flex-direction: column;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
dialog[open] {
|
|
30
|
-
display: flex;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
dialog:focus, dialog:focus-visible { outline: none; }
|
|
34
|
-
|
|
35
|
-
dialog::backdrop {
|
|
36
|
-
background: var(--dialog-overlay, color-mix(in oklch, black 40%, transparent));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
:host { --_enter-from: scale(0.97); }
|
|
40
|
-
:host([position="left"]) { --_enter-from: translateX(-100%); }
|
|
41
|
-
:host([position="right"]) { --_enter-from: translateX(100%); }
|
|
42
|
-
:host([position="top"]) { --_enter-from: translateY(-100%); }
|
|
43
|
-
:host([position="bottom"]) { --_enter-from: translateY(100%); }
|
|
44
|
-
|
|
45
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
46
|
-
dialog {
|
|
47
|
-
opacity: 0;
|
|
48
|
-
transform: var(--_enter-from);
|
|
49
|
-
transition:
|
|
50
|
-
opacity var(--_dur) ease,
|
|
51
|
-
transform var(--_dur) ease,
|
|
52
|
-
overlay var(--_dur) ease allow-discrete,
|
|
53
|
-
display var(--_dur) ease allow-discrete;
|
|
54
|
-
}
|
|
55
|
-
dialog[open] {
|
|
56
|
-
opacity: 1;
|
|
57
|
-
transform: none;
|
|
58
|
-
}
|
|
59
|
-
@starting-style {
|
|
60
|
-
dialog[open] { opacity: 0; transform: var(--_enter-from); }
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
dialog::backdrop {
|
|
64
|
-
background: transparent;
|
|
65
|
-
transition:
|
|
66
|
-
background var(--_dur) ease,
|
|
67
|
-
overlay var(--_dur) ease allow-discrete,
|
|
68
|
-
display var(--_dur) ease allow-discrete;
|
|
69
|
-
}
|
|
70
|
-
dialog[open]::backdrop { background: var(--dialog-overlay, color-mix(in oklch, black 40%, transparent)); }
|
|
71
|
-
@starting-style {
|
|
72
|
-
dialog[open]::backdrop { background: transparent; }
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
:host([position="left"]) dialog,
|
|
77
|
-
:host([position="right"]) dialog {
|
|
78
|
-
width: var(--dialog-width, 380px);
|
|
79
|
-
max-width: calc(100vw - var(--dialog-margin, 32px));
|
|
80
|
-
height: 100dvh;
|
|
81
|
-
max-height: 100dvh;
|
|
82
|
-
border-radius: 0;
|
|
83
|
-
}
|
|
84
|
-
:host([position="left"]) dialog { margin: 0 auto 0 0; }
|
|
85
|
-
:host([position="right"]) dialog { margin: 0 0 0 auto; }
|
|
86
|
-
|
|
87
|
-
:host([position="top"]) dialog,
|
|
88
|
-
:host([position="bottom"]) dialog {
|
|
89
|
-
width: 100vw;
|
|
90
|
-
max-width: 100vw;
|
|
91
|
-
height: var(--dialog-height, fit-content);
|
|
92
|
-
max-height: calc(100dvh - var(--dialog-margin, 32px));
|
|
93
|
-
border-radius: 0;
|
|
94
|
-
}
|
|
95
|
-
:host([position="top"]) dialog { margin: 0 auto auto auto; }
|
|
96
|
-
:host([position="bottom"]) dialog { margin: auto auto 0 auto; }
|
|
97
|
-
|
|
98
|
-
:host([position="fullscreen"]) dialog {
|
|
99
|
-
width: 100vw;
|
|
100
|
-
max-width: 100vw;
|
|
101
|
-
height: 100dvh;
|
|
102
|
-
max-height: 100dvh;
|
|
103
|
-
margin: 0;
|
|
104
|
-
border-radius: 0;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
:host([round]) dialog { border-radius: var(--_r); }
|
|
108
|
-
:host([round="top"]) dialog { border-radius: var(--_r) var(--_r) 0 0; }
|
|
109
|
-
:host([round="bottom"]) dialog { border-radius: 0 0 var(--_r) var(--_r); }
|
|
110
|
-
:host([round="left"]) dialog { border-radius: var(--_r) 0 0 var(--_r); }
|
|
111
|
-
:host([round="right"]) dialog { border-radius: 0 var(--_r) var(--_r) 0; }
|
|
112
|
-
|
|
113
|
-
slot[name="header"] {
|
|
114
|
-
display: none;
|
|
115
|
-
flex: 0 0 auto;
|
|
116
|
-
padding: var(--dialog-header-padding, 18px 20px 8px);
|
|
117
|
-
overflow: clip;
|
|
118
|
-
overflow-wrap: anywhere;
|
|
119
|
-
font-size: 17px;
|
|
120
|
-
font-weight: 560;
|
|
121
|
-
line-height: 24px;
|
|
122
|
-
}
|
|
123
|
-
slot[name="header"].has-content { display: block; }
|
|
124
|
-
dialog.has-close slot[name="header"] { padding-inline-end: 52px; }
|
|
125
|
-
|
|
126
|
-
slot[part="body"] {
|
|
127
|
-
display: block;
|
|
128
|
-
flex: 1 1 auto;
|
|
129
|
-
min-height: 0;
|
|
130
|
-
overflow: auto;
|
|
131
|
-
padding: var(--dialog-body-padding, 8px 20px 12px);
|
|
132
|
-
}
|
|
133
|
-
/* With a close button but no header, the body is the top zone, so it takes the
|
|
134
|
-
\u2715 clearance instead of the header (which is display:none when empty). */
|
|
135
|
-
dialog.has-close slot[name="header"]:not(.has-content) ~ slot[part="body"] {
|
|
136
|
-
padding-inline-end: 52px;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
slot[name="footer"] {
|
|
140
|
-
display: none;
|
|
141
|
-
flex: 0 0 auto;
|
|
142
|
-
padding: var(--dialog-footer-padding, 8px 20px 18px);
|
|
143
|
-
}
|
|
144
|
-
slot[name="footer"].has-content {
|
|
145
|
-
display: flex;
|
|
146
|
-
gap: 8px;
|
|
147
|
-
justify-content: flex-end;
|
|
148
|
-
align-items: center;
|
|
149
|
-
flex-wrap: wrap;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
slot[name="close"] { display: none; }
|
|
153
|
-
slot[name="close"].has-content {
|
|
154
|
-
display: block;
|
|
155
|
-
position: absolute;
|
|
156
|
-
inset-block-start: 10px;
|
|
157
|
-
inset-inline-end: 10px;
|
|
158
|
-
z-index: 1;
|
|
159
|
-
}
|
|
160
|
-
`;
|
|
161
4
|
class ADialogElement extends HTMLElementBase {
|
|
162
5
|
static observedAttributes = ["state", "name"];
|
|
163
6
|
dialog;
|
|
164
7
|
headerSlot;
|
|
8
|
+
bodySlot;
|
|
165
9
|
footerSlot;
|
|
166
|
-
closeSlot;
|
|
167
10
|
// Counts `dialog.close()` calls WE initiate whose async `close` event is still
|
|
168
11
|
// pending, and is decremented as each arrives. The native `close` event fires
|
|
169
12
|
// from a queued task, so a synchronous guard can't span it, and a boolean
|
|
@@ -191,35 +34,31 @@ class ADialogElement extends HTMLElementBase {
|
|
|
191
34
|
// The document click listener wired for the `name`-trigger convenience, kept so
|
|
192
35
|
// it can be torn down (and re-wired when `name` / controlled-ness changes).
|
|
193
36
|
#triggerListener;
|
|
37
|
+
#triggerDocument;
|
|
38
|
+
#internals;
|
|
39
|
+
#headerObserver;
|
|
194
40
|
constructor() {
|
|
195
41
|
super();
|
|
42
|
+
this.#internals = this.attachInternals();
|
|
196
43
|
const shadow = this.attachShadow({ mode: "open" });
|
|
197
|
-
|
|
198
|
-
style.textContent = SHADOW_STYLE;
|
|
199
|
-
this.dialog = document.createElement("dialog");
|
|
44
|
+
this.dialog = this.doc.createElement("dialog");
|
|
200
45
|
this.dialog.setAttribute("part", "dialog");
|
|
201
46
|
this.dialog.tabIndex = -1;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
this.headerSlot =
|
|
47
|
+
const closeSlot = this.doc.createElement("slot");
|
|
48
|
+
closeSlot.name = "close";
|
|
49
|
+
closeSlot.setAttribute("part", "close");
|
|
50
|
+
this.headerSlot = this.doc.createElement("slot");
|
|
206
51
|
this.headerSlot.name = "header";
|
|
207
52
|
this.headerSlot.setAttribute("part", "header");
|
|
208
|
-
|
|
209
|
-
bodySlot.setAttribute("part", "body");
|
|
210
|
-
this.footerSlot =
|
|
53
|
+
this.bodySlot = this.doc.createElement("slot");
|
|
54
|
+
this.bodySlot.setAttribute("part", "body");
|
|
55
|
+
this.footerSlot = this.doc.createElement("slot");
|
|
211
56
|
this.footerSlot.name = "footer";
|
|
212
57
|
this.footerSlot.setAttribute("part", "footer");
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (slot === this.closeSlot) this.dialog.classList.toggle("has-close", has);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
this.headerSlot.addEventListener("slotchange", () => this.#syncAccessibleName());
|
|
221
|
-
this.dialog.append(this.headerSlot, bodySlot, this.footerSlot, this.closeSlot);
|
|
222
|
-
shadow.append(style, this.dialog);
|
|
58
|
+
this.headerSlot.addEventListener("slotchange", () => this.#syncHeader());
|
|
59
|
+
this.footerSlot.addEventListener("slotchange", () => this.#syncRegions());
|
|
60
|
+
this.dialog.append(this.headerSlot, this.bodySlot, this.footerSlot, closeSlot);
|
|
61
|
+
shadow.append(this.dialog);
|
|
223
62
|
this.dialog.addEventListener("cancel", (e) => {
|
|
224
63
|
e.preventDefault();
|
|
225
64
|
if (!this.#persistent) this.requestClose();
|
|
@@ -227,23 +66,29 @@ class ADialogElement extends HTMLElementBase {
|
|
|
227
66
|
this.dialog.addEventListener("pointerdown", (e) => {
|
|
228
67
|
this.#pressedBackdrop = e.target === this.dialog;
|
|
229
68
|
});
|
|
69
|
+
this.dialog.addEventListener("pointercancel", () => {
|
|
70
|
+
this.#pressedBackdrop = false;
|
|
71
|
+
});
|
|
230
72
|
this.dialog.addEventListener("click", (e) => {
|
|
231
|
-
|
|
232
|
-
|
|
73
|
+
const pressed = this.#pressedBackdrop;
|
|
74
|
+
this.#pressedBackdrop = false;
|
|
75
|
+
if (!this.#persistent && pressed && e.target === this.dialog) this.requestClose();
|
|
233
76
|
});
|
|
234
77
|
this.dialog.addEventListener("close", () => {
|
|
235
78
|
if (this.#programmaticCloses > 0) {
|
|
236
79
|
this.#programmaticCloses--;
|
|
237
80
|
return;
|
|
238
81
|
}
|
|
82
|
+
this.#pressedBackdrop = false;
|
|
239
83
|
if (this.#controlled) this.#reflect(parseOpenState(this.getAttribute("state")));
|
|
240
84
|
else this.#wantOpen = false;
|
|
241
85
|
});
|
|
242
86
|
this.addEventListener(CLOSE_TRIGGER, (event) => {
|
|
243
|
-
if (event.
|
|
87
|
+
if (event.composedPath().find((node) => node.localName === "a-dialog") === this) this.requestClose();
|
|
244
88
|
});
|
|
245
89
|
}
|
|
246
90
|
connectedCallback() {
|
|
91
|
+
this.#syncHeader();
|
|
247
92
|
if (this.#controlled) {
|
|
248
93
|
this.#reflect(parseOpenState(this.getAttribute("state")));
|
|
249
94
|
} else {
|
|
@@ -254,10 +99,12 @@ class ADialogElement extends HTMLElementBase {
|
|
|
254
99
|
if (this.#wantOpen) this.#open();
|
|
255
100
|
}
|
|
256
101
|
this.#syncTriggerListener();
|
|
257
|
-
this.#syncAccessibleName();
|
|
258
102
|
}
|
|
259
103
|
disconnectedCallback() {
|
|
260
104
|
this.#teardownTriggerListener();
|
|
105
|
+
this.#headerObserver?.disconnect();
|
|
106
|
+
this.#headerObserver = void 0;
|
|
107
|
+
this.#pressedBackdrop = false;
|
|
261
108
|
if (this.dialog.open) {
|
|
262
109
|
this.#programmaticCloses++;
|
|
263
110
|
this.dialog.close();
|
|
@@ -316,7 +163,7 @@ class ADialogElement extends HTMLElementBase {
|
|
|
316
163
|
* false if a handler vetoed it. */
|
|
317
164
|
#announce(next) {
|
|
318
165
|
return this.dispatchEvent(
|
|
319
|
-
new CustomEvent("statechange", {
|
|
166
|
+
new this.view.CustomEvent("statechange", {
|
|
320
167
|
cancelable: true,
|
|
321
168
|
detail: { next, prev: this.#current }
|
|
322
169
|
})
|
|
@@ -335,7 +182,7 @@ class ADialogElement extends HTMLElementBase {
|
|
|
335
182
|
this.#wantOpen = true;
|
|
336
183
|
if (this.dialog.open || !this.isConnected) return;
|
|
337
184
|
this.dialog.showModal();
|
|
338
|
-
const autofocus = this.
|
|
185
|
+
const autofocus = Array.from(this.querySelectorAll("[autofocus]")).find((node) => node.closest("a-dialog") === this);
|
|
339
186
|
if (autofocus) autofocus.focus({ preventScroll: true });
|
|
340
187
|
else this.dialog.focus();
|
|
341
188
|
}
|
|
@@ -343,21 +190,43 @@ class ADialogElement extends HTMLElementBase {
|
|
|
343
190
|
* ours so the listener doesn't reconcile it. (The disconnect teardown closes
|
|
344
191
|
* the native dialog directly, NOT through here, to preserve `#wantOpen`.) */
|
|
345
192
|
#close() {
|
|
193
|
+
this.#pressedBackdrop = false;
|
|
346
194
|
this.#wantOpen = false;
|
|
347
195
|
if (!this.dialog.open) return;
|
|
348
196
|
this.#programmaticCloses++;
|
|
349
197
|
this.dialog.close();
|
|
350
198
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
199
|
+
#syncRegions(header = this.headerSlot.assignedNodes().length > 0) {
|
|
200
|
+
for (const [state, present] of [
|
|
201
|
+
["has-header", header],
|
|
202
|
+
["has-footer", this.footerSlot.assignedNodes().length > 0]
|
|
203
|
+
]) {
|
|
204
|
+
if (present) this.#internals.states.add(state);
|
|
205
|
+
else this.#internals.states.delete(state);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
#syncHeader() {
|
|
209
|
+
if (!this.isConnected) return;
|
|
210
|
+
const nodes = this.headerSlot.assignedNodes();
|
|
211
|
+
this.#syncRegions(nodes.length > 0);
|
|
212
|
+
this.#syncAccessibleName(nodes);
|
|
213
|
+
this.#headerObserver?.disconnect();
|
|
214
|
+
this.#headerObserver = void 0;
|
|
215
|
+
if (!nodes.length) return;
|
|
216
|
+
this.#headerObserver = new this.view.MutationObserver(() => this.#syncAccessibleName(nodes));
|
|
217
|
+
for (const node of nodes) {
|
|
218
|
+
this.#headerObserver.observe(node, { childList: true, characterData: true, subtree: true });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/** Keep the header-derived name on the owned native dialog. */
|
|
222
|
+
#syncAccessibleName(nodes) {
|
|
223
|
+
const text = nodes.map((n) => n.textContent ?? "").join(" ").trim();
|
|
355
224
|
if (text) this.dialog.setAttribute("aria-label", text);
|
|
356
225
|
else this.dialog.removeAttribute("aria-label");
|
|
357
226
|
}
|
|
358
227
|
// --- `name`-trigger convenience (uncontrolled only) ---
|
|
359
228
|
#syncTriggerListener() {
|
|
360
|
-
const wanted = !this.#controlled && !!this.getAttribute("name");
|
|
229
|
+
const wanted = this.isConnected && !this.#controlled && !!this.getAttribute("name");
|
|
361
230
|
if (wanted && !this.#triggerListener) this.#wireTriggerListener();
|
|
362
231
|
else if (!wanted && this.#triggerListener) this.#teardownTriggerListener();
|
|
363
232
|
}
|
|
@@ -366,15 +235,18 @@ class ADialogElement extends HTMLElementBase {
|
|
|
366
235
|
const name = this.getAttribute("name");
|
|
367
236
|
if (!name) return;
|
|
368
237
|
const t = e.target;
|
|
369
|
-
if (!
|
|
370
|
-
|
|
371
|
-
|
|
238
|
+
if (!t || t.nodeType !== 1) return;
|
|
239
|
+
const target = t;
|
|
240
|
+
if (target.closest(`[data-dialog-open="${this.view.CSS.escape(name)}"]`)) this.requestOpen();
|
|
241
|
+
else if (target.closest(`[data-dialog-close="${this.view.CSS.escape(name)}"]`)) this.requestClose();
|
|
372
242
|
};
|
|
373
|
-
this.doc
|
|
243
|
+
this.#triggerDocument = this.doc;
|
|
244
|
+
this.#triggerDocument.addEventListener("click", this.#triggerListener);
|
|
374
245
|
}
|
|
375
246
|
#teardownTriggerListener() {
|
|
376
247
|
if (this.#triggerListener) {
|
|
377
|
-
this
|
|
248
|
+
this.#triggerDocument?.removeEventListener("click", this.#triggerListener);
|
|
249
|
+
this.#triggerDocument = void 0;
|
|
378
250
|
this.#triggerListener = void 0;
|
|
379
251
|
}
|
|
380
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-expander,details[data-anta]{--_expander-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3e%3cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18 6-6-6-6'/%3e%3c/svg%3e")}a-expander{--expander-text: var(--text-2);--expander-text-hover: var(--text-1);--expander-bg-secondary: var(--bg-2);--expander-border-secondary: var(--border-5);--expander-bg-primary: var(--bg-4);--expander-border-primary: var(--border-4);--expander-bg: var(--expander-bg-secondary);--expander-border: var(--expander-border-secondary);--expander-bg-hover-lift: .01;--expander-bg-hover: oklch(from var(--expander-bg) calc(l + var(--expander-bg-hover-lift)) c h);--expander-gutter: 24px;--_expander-indicator-size: 16px;--_expander-indicator-edge: 6px;--_expander-indicator-gap: 2px;--_expander-indicator-stroke: 2px;--_expander-indicator-track: calc(var(--_expander-indicator-edge) + var(--_expander-indicator-size) + var(--_expander-indicator-gap));--_expander-indicator-start: calc(var(--expander-gutter) - var(--_expander-indicator-size) - var(--_expander-indicator-gap));--_expander-indicator-mask: var(--_expander-chevron);--_expander-skeleton-indicator-start: var(--_expander-indicator-start);--_expander-skeleton-indicator-end: auto;--_expander-skeleton-indicator-top: 50%;--_expander-skeleton-indicator-transform: translateY(-50%);--_expander-header-padding-block: 6px;--_expander-header-padding-end: 4px;--_expander-actions-gap: 2px;--_expander-actions-start: 8px;--_expander-actions-end: 4px;display:block;width:100%;box-sizing:border-box;border:1px solid var(--expander-border);border-radius:4px;color:var(--expander-text);background:var(--expander-bg);transition:background-color .1s ease}a-expander[indicator-placement=end]{--expander-gutter: 12px;--_expander-skeleton-indicator-start: auto;--_expander-skeleton-indicator-end: var(--_expander-indicator-edge);--_expander-skeleton-indicator-top: 8px;--_expander-skeleton-indicator-transform: rotate(90deg);--_expander-actions-end: var(--_expander-actions-gap)}a-expander[indicator=triangle]{--_expander-indicator-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 2.5 12 8l-7 5.5z'/%3E%3C/svg%3E")}a-expander[indicator=plus]{--_expander-indicator-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7 2h2v12H7zM2 7h12v2H2z'/%3E%3C/svg%3E")}a-expander:not(:defined):has(>[slot=indicator]){--_expander-skeleton-indicator-display: none}a-expander[round]{border-radius:var(--expander-round, var(--_expander-round-radius, 999px));@supports (border-radius: attr(probe type(<length>),1px)){--expander-round: attr(round type(<length>))}}a-expander>span[slot=actions]{display:contents}a-expander:not(:defined) a-expander-details{display:none}a-expander:not(:defined)[state=open] a-expander-details,a-expander:not(:defined)[default-state=open] a-expander-details{display:block}a-expander:not(:defined) a-expander-summary{position:relative;padding:var(--_expander-header-padding-block) var(--_expander-header-padding-end) var(--_expander-header-padding-block) var(--expander-gutter)}a-expander:not(:defined) a-expander-summary:before{content:"";display:var(--_expander-skeleton-indicator-display, block);position:absolute;inset-inline-start:var(--_expander-skeleton-indicator-start);inset-inline-end:var(--_expander-skeleton-indicator-end);top:var(--_expander-skeleton-indicator-top);width:var(--_expander-indicator-size);height:var(--_expander-indicator-size);transform:var(--_expander-skeleton-indicator-transform);background-color:currentColor;-webkit-mask:var(--_expander-indicator-mask) center / contain no-repeat;mask:var(--_expander-indicator-mask) center / contain no-repeat;opacity:.6;pointer-events:none}a-expander:not(:defined)[indicator-placement=end] a-expander-summary{position:static;grid-column:1;padding-inline-start:var(--expander-gutter);padding-inline-end:var(--_expander-header-padding-end)}a-expander:not(:defined)>[slot=indicator]{display:grid;place-items:center;position:absolute;inset-inline-start:var(--_expander-indicator-start);top:8px;width:var(--_expander-indicator-size);height:var(--_expander-indicator-size);pointer-events:none}a-expander:not(:defined)[indicator-placement=end]>[slot=indicator]{inset-inline-start:auto;inset-inline-end:var(--_expander-indicator-edge)}a-expander:not(:defined)>[slot=indicator][data-when=open]{display:none}a-expander:not(:defined):is([state=open],[default-state=open])>[slot=indicator][data-when=open]{display:grid}a-expander:not(:defined):is([state=open],[default-state=open])>[slot=indicator][data-when=closed]{display:none}a-expander:not(:defined):is([state=open],[default-state=open])>[slot=indicator]:not([data-when]){transform:rotate(90deg)}a-expander:not(:defined)[indicator-placement=end]:is([state=open],[default-state=open])>[slot=indicator]:not([data-when]){transform:rotate(180deg)}a-expander:not(:defined)[indicator-placement=end]{grid-template-columns:minmax(0,1fr) auto var(--_expander-indicator-track)}a-expander:not(:defined){display:grid;position:relative;grid-template-columns:minmax(0,1fr) auto;align-items:center}a-expander:not(:defined) a-expander-summary{grid-column:1}a-expander:not(:defined)>[slot=actions]{grid-column:2;display:flex;align-items:center;gap:var(--_expander-actions-gap);flex-shrink:0;margin-inline-start:var(--_expander-actions-start);margin-inline-end:var(--_expander-actions-end)}a-expander:not(:defined) a-expander-details{grid-column:1 / -1}a-expander-summary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:20px;font-weight:584.62;letter-spacing:0;text-decoration-line:var(--_summary-underline, none);text-decoration-style:dotted;text-decoration-color:color-mix(in oklch,currentColor 75%,transparent);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s ease}a-expander[level="1"] a-expander-summary{font-size:28px;line-height:32px}a-expander[level="2"] a-expander-summary{font-size:24px;line-height:28px}a-expander[level="3"] a-expander-summary{font-size:20px;line-height:24px}a-expander[level="4"] a-expander-summary{font-size:17px;line-height:20px}a-expander[level="6"] a-expander-summary{font-size:13px;line-height:16px}a-expander-details{display:block;padding:2px 4px 6px var(--expander-gutter);line-height:20px;overflow:auto}a-expander[indicator-placement=end] a-expander-details{padding-inline-start:var(--expander-gutter)}a-expander[priority=tertiary][outdent] a-expander-details{padding-inline-start:4px;margin-inline-start:-4px}a-expander[priority=primary]{--expander-bg: var(--expander-bg-primary);--expander-border: var(--expander-border-primary)}a-expander[priority=tertiary]{--expander-bg: transparent;--expander-border: transparent}a-expander:not([disabled]):not(:state(open)):hover{background:var(--expander-bg-hover)}a-expander:not([disabled]):not(:state(open)):active{background:var(--expander-bg)}a-expander[priority=tertiary][outdent]{--expander-gutter: 0px}a-expander[tone=brand]{--expander-text: var(--text-2-brand);--expander-text-hover: var(--text-1-brand);--expander-bg-secondary: var(--bg-2-brand);--expander-border-secondary: var(--border-5-brand);--expander-bg-primary: var(--bg-4-brand);--expander-border-primary: var(--border-4-brand)}a-expander[tone=info]{--expander-text: var(--text-2-info);--expander-text-hover: var(--text-1-info);--expander-bg-secondary: var(--bg-2-info);--expander-border-secondary: var(--border-5-info);--expander-bg-primary: var(--bg-4-info);--expander-border-primary: var(--border-4-info)}a-expander[tone=success]{--expander-text: var(--text-2-success);--expander-text-hover: var(--text-1-success);--expander-bg-secondary: var(--bg-2-success);--expander-border-secondary: var(--border-5-success);--expander-bg-primary: var(--bg-4-success);--expander-border-primary: var(--border-4-success)}a-expander[tone=warning]{--expander-text: var(--text-2-warning);--expander-text-hover: var(--text-1-warning);--expander-bg-secondary: var(--bg-2-warning);--expander-border-secondary: var(--border-5-warning);--expander-bg-primary: var(--bg-4-warning);--expander-border-primary: var(--border-4-warning)}a-expander[tone=critical]{--expander-text: var(--text-2-critical);--expander-text-hover: var(--text-1-critical);--expander-bg-secondary: var(--bg-2-critical);--expander-border-secondary: var(--border-5-critical);--expander-bg-primary: var(--bg-4-critical);--expander-border-primary: var(--border-4-critical)}a-expander[tone]:not([tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--expander-tone-source: currentColor;--expander-text: light-dark(oklch(from var(--expander-tone-source) .5 .125 h), oklch(from var(--expander-tone-source) .77 .11 h));--expander-text-hover: light-dark(oklch(from var(--expander-tone-source) .4 .11 h), oklch(from var(--expander-tone-source) .85 .1 h));--expander-bg-secondary: light-dark(oklch(from var(--expander-tone-source) .99 .004 h), oklch(from var(--expander-tone-source) .13 .02 h));--expander-border-secondary: light-dark(oklch(from var(--expander-tone-source) .935 .028 h), oklch(from var(--expander-tone-source) .21 .045 h));--expander-bg-primary: light-dark(oklch(from var(--expander-tone-source) .955 .02 h), oklch(from var(--expander-tone-source) .185 .05 h));--expander-border-primary: light-dark(oklch(from var(--expander-tone-source) .9 .04 h), oklch(from var(--expander-tone-source) .26 .06 h));@supports (color: attr(probe type(<color>),red)){--expander-tone-source: attr(tone type(<color>), currentColor)}}a-expander[disabled],a-expander[disabled][tone]{--expander-text: light-dark(#afa9b1, #635b65)}details[data-anta]{--native-expander-gutter: 24px;--native-expander-summary-padding-block: 6px;--native-expander-summary-font-size: 15px;--native-expander-summary-line-height: 20px;--native-expander-chevron-size: 16px;--native-expander-text: var(--text-2);--native-expander-text-hover: var(--text-1);--native-expander-bg-secondary: var(--bg-2);--native-expander-border-secondary: var(--border-5);--native-expander-bg-primary: var(--bg-4);--native-expander-border-primary: var(--border-4);--native-expander-round-size: 16px;--native-expander-round: 4px;--native-expander-bg: transparent;--native-expander-border: transparent;display:block;inline-size:100%;box-sizing:border-box;border:0 solid var(--native-expander-border);border-radius:var(--native-expander-round);color:var(--native-expander-text);background:var(--native-expander-bg);font-family:var(--sans-serif);font-size:15px;line-height:var(--native-expander-summary-line-height);transition:background-color .1s ease}details[data-anta][priority=secondary]{--native-expander-bg: var(--native-expander-bg-secondary);--native-expander-border: var(--native-expander-border-secondary);border-width:1px}details[data-anta][priority=primary]{--native-expander-bg: var(--native-expander-bg-primary);--native-expander-border: var(--native-expander-border-primary);border-width:1px}details[data-anta][level="1"]{--native-expander-summary-font-size: 28px;--native-expander-summary-line-height: 32px;--native-expander-round-size: 22px}details[data-anta][level="2"]{--native-expander-summary-font-size: 24px;--native-expander-summary-line-height: 28px;--native-expander-round-size: 20px}details[data-anta][level="3"]{--native-expander-summary-font-size: 20px;--native-expander-summary-line-height: 24px;--native-expander-round-size: 18px}details[data-anta][level="4"]{--native-expander-summary-font-size: 17px;--native-expander-summary-line-height: 20px}details[data-anta][level="6"]{--native-expander-summary-font-size: 13px;--native-expander-summary-line-height: 16px;--native-expander-round-size: 14px}details[data-anta][round]{--native-expander-round: var(--native-expander-round-size)}details[data-anta][round]:not([round=""]){--native-expander-round: var(--native-expander-round-size);@supports (border-radius: attr(probe type(<length>),1px)){--native-expander-round: attr(round type(<length>), var(--native-expander-round-size))}}details[data-anta][priority=tertiary][outdent]{--native-expander-gutter: 0px}details[data-anta][tone=brand]{--native-expander-text: var(--text-2-brand);--native-expander-text-hover: var(--text-1-brand);--native-expander-bg-secondary: var(--bg-2-brand);--native-expander-border-secondary: var(--border-5-brand);--native-expander-bg-primary: var(--bg-4-brand);--native-expander-border-primary: var(--border-4-brand)}details[data-anta][tone=info]{--native-expander-text: var(--text-2-info);--native-expander-text-hover: var(--text-1-info);--native-expander-bg-secondary: var(--bg-2-info);--native-expander-border-secondary: var(--border-5-info);--native-expander-bg-primary: var(--bg-4-info);--native-expander-border-primary: var(--border-4-info)}details[data-anta][tone=success]{--native-expander-text: var(--text-2-success);--native-expander-text-hover: var(--text-1-success);--native-expander-bg-secondary: var(--bg-2-success);--native-expander-border-secondary: var(--border-5-success);--native-expander-bg-primary: var(--bg-4-success);--native-expander-border-primary: var(--border-4-success)}details[data-anta][tone=warning]{--native-expander-text: var(--text-2-warning);--native-expander-text-hover: var(--text-1-warning);--native-expander-bg-secondary: var(--bg-2-warning);--native-expander-border-secondary: var(--border-5-warning);--native-expander-bg-primary: var(--bg-4-warning);--native-expander-border-primary: var(--border-4-warning)}details[data-anta][tone=critical]{--native-expander-text: var(--text-2-critical);--native-expander-text-hover: var(--text-1-critical);--native-expander-bg-secondary: var(--bg-2-critical);--native-expander-border-secondary: var(--border-5-critical);--native-expander-bg-primary: var(--bg-4-critical);--native-expander-border-primary: var(--border-4-critical)}details[data-anta][tone]:not([tone=""],[tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--native-expander-tone-source: currentColor;--native-expander-text: light-dark(oklch(from var(--native-expander-tone-source) .5 .125 h), oklch(from var(--native-expander-tone-source) .77 .11 h));--native-expander-text-hover: light-dark(oklch(from var(--native-expander-tone-source) .4 .11 h), oklch(from var(--native-expander-tone-source) .85 .1 h));--native-expander-bg-secondary: light-dark(oklch(from var(--native-expander-tone-source) .99 .004 h), oklch(from var(--native-expander-tone-source) .13 .02 h));--native-expander-border-secondary: light-dark(oklch(from var(--native-expander-tone-source) .935 .028 h), oklch(from var(--native-expander-tone-source) .21 .045 h));--native-expander-bg-primary: light-dark(oklch(from var(--native-expander-tone-source) .955 .02 h), oklch(from var(--native-expander-tone-source) .185 .05 h));--native-expander-border-primary: light-dark(oklch(from var(--native-expander-tone-source) .9 .04 h), oklch(from var(--native-expander-tone-source) .26 .06 h));@supports (color: attr(probe type(<color>),red)){--native-expander-tone-source: attr(tone type(<color>), currentColor)}}details[data-anta]>summary{position:relative;box-sizing:border-box;display:block;min-width:0;padding:var(--native-expander-summary-padding-block) 4px var(--native-expander-summary-padding-block) var(--native-expander-gutter);color:inherit;cursor:pointer;font:inherit;font-variation-settings:inherit;font-size:var(--native-expander-summary-font-size);line-height:var(--native-expander-summary-line-height);font-weight:584.62;letter-spacing:0;list-style:none;text-decoration-line:none;transition:color .15s ease}details[data-anta]>summary::-webkit-details-marker{display:none}details[data-anta]>summary::marker{content:""}details[data-anta]>summary:before{content:"";position:absolute;left:calc(var(--native-expander-gutter) - var(--native-expander-chevron-size) - 2px);top:var(--native-expander-summary-padding-block);width:var(--native-expander-chevron-size);height:var(--native-expander-summary-line-height);background-color:currentColor;-webkit-mask:var(--_expander-chevron) center / var(--native-expander-chevron-size) no-repeat;mask:var(--_expander-chevron) center / var(--native-expander-chevron-size) no-repeat;opacity:.6;transform:rotate(0);transition:transform .15s ease,opacity .15s ease,background-color .15s ease}details[data-anta][open]>summary:before{opacity:1;transform:rotate(90deg)}details[data-anta]:is([priority=primary],[priority=secondary]):not([open]):hover{background:oklch(from var(--native-expander-bg) calc(l + .01) c h)}details[data-anta]:is([priority=primary],[priority=secondary]):not([open]):active{background:var(--native-expander-bg)}details[data-anta]>summary:hover{color:var(--native-expander-text-hover);text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:color-mix(in oklch,currentColor 75%,transparent);text-decoration-thickness:1px;text-underline-offset:3px}details[data-anta]>summary:hover:before{opacity:1}details[data-anta]>summary:active{color:var(--native-expander-text)}details[data-anta]>summary:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}details[data-anta]>:not(summary){display:block;padding:2px 4px 6px var(--native-expander-gutter);line-height:20px}@media(forced-colors:active){:is(a-expander,details[data-anta]){border-color:CanvasText}:is(a-expander,details[data-anta]):not([priority=primary],[priority=tertiary]){border-style:dashed}:is(a-expander,details[data-anta])[priority=tertiary]{border-color:Canvas}a-expander::part(indicator){forced-color-adjust:none;color:CanvasText}a-expander[disabled]::part(indicator){color:GrayText}a-expander:not(:defined) a-expander-summary:before,details[data-anta]>summary:before{forced-color-adjust:none;background-color:CanvasText}a-expander:not(:defined)[disabled] a-expander-summary:before{background-color:GrayText}}}a-expander-details>p:last-child,a-expander-details>:not([slot])>p:last-child,details[data-anta]>p:last-child,details[data-anta]>:not(summary)>p:last-child{margin-block-end:0}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-expander::part(header){display:flex;align-items:stretch}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)::part(header){display:grid;grid-template-columns:minmax(0,1fr) auto var(--_expander-indicator-track)}a-expander::part(actions){display:none}a-expander:has(>a-expander-actions:not(:empty))::part(actions){display:flex;align-items:center;gap:var(--_expander-actions-gap);flex-shrink:0;margin-inline:var(--_expander-actions-start) var(--_expander-actions-end)}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)::part(actions){grid-column:2;grid-row:1;z-index:1}a-expander::part(summary){appearance:none;background:none;border:none;margin:0;position:relative;padding:var(--_expander-header-padding-block) var(--_expander-header-padding-end) var(--_expander-header-padding-block) var(--expander-gutter);flex:1;min-width:0;font:inherit;font-variation-settings:inherit;color:inherit;text-align:left;display:flex;align-items:center;gap:0;cursor:pointer;user-select:text;border-radius:2px;outline:none}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)::part(summary){grid-column:1 / -1;grid-row:1;display:grid;grid-template-columns:subgrid;padding:var(--_expander-header-padding-block) 0}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)::part(title){grid-column:1;display:block;min-width:0;margin-inline-start:var(--expander-gutter)}a-expander::part(summary):focus-visible{outline:1px solid var(--focus-ring);outline-offset:0}a-expander::part(summary):enabled:hover{color:var(--expander-text-hover);--_expander-indicator-opacity: 1}a-expander[priority=tertiary]::part(summary):enabled:hover{--_summary-underline: underline}a-expander::part(summary):enabled:active{color:var(--expander-text)}a-expander::part(summary):disabled{cursor:default}a-expander:not(:state(open))::part(summary):enabled:active{--_expander-indicator-opacity: .6}a-expander::part(indicator){position:absolute;inset-inline-start:var(--_expander-indicator-start);top:50%;width:var(--_expander-indicator-size);height:var(--_expander-indicator-size);pointer-events:none;opacity:var(--_expander-indicator-opacity, .6);transform:translateY(-50%) rotate(var(--_expander-indicator-angle));transition:transform .15s ease,opacity .15s ease}a-expander::part(indicator-content){display:grid;place-items:center;width:100%;height:100%}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)::part(indicator){position:static;grid-column:3;grid-row:1;justify-self:end;align-self:center;margin-inline-end:var(--_expander-indicator-edge);transform:rotate(var(--_expander-indicator-angle))}a-expander::part(region){display:grid;grid-template-rows:0fr;grid-template-columns:minmax(0,1fr)}a-expander:state(open)::part(region){grid-template-rows:1fr}a-expander[priority=tertiary][outdent]::part(header),a-expander[priority=tertiary][outdent]::part(region){margin-inline-start:-1px}a-expander:not(:defined)[priority=tertiary][outdent]>:is(a-expander-summary,a-expander-title){margin-inline-start:-1px}a-expander:not(:defined)[priority=tertiary][outdent]>a-expander-details{margin-inline-start:-5px}a-expander::part(content){display:block;min-height:0;overflow:var(--_expander-content-overflow)}@keyframes anta-expander-unclip{0%{--_expander-content-overflow: clip}to{--_expander-content-overflow: visible}}@media(prefers-reduced-motion:no-preference){a-expander::part(region){transition:grid-template-rows .2s ease}a-expander:state(open){animation:anta-expander-unclip .2s step-end}}a-expander,details[data-anta]{--_expander-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3e%3cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18 6-6-6-6'/%3e%3c/svg%3e")}a-expander{--_expander-content-overflow: clip;--_expander-indicator-opacity: .6;--_summary-underline: none;--expander-text: var(--text-2);--expander-text-hover: var(--text-1);--expander-bg-secondary: var(--bg-2);--expander-border-secondary: var(--border-5);--expander-bg-primary: var(--bg-4);--expander-border-primary: var(--border-4);--expander-bg: var(--expander-bg-secondary);--expander-border: var(--expander-border-secondary);--expander-bg-hover-lift: .01;--expander-bg-hover: oklch(from var(--expander-bg) calc(l + var(--expander-bg-hover-lift)) c h);--expander-gutter: 24px;--_expander-indicator-size: 16px;--_expander-indicator-edge: 6px;--_expander-indicator-gap: 2px;--_expander-indicator-stroke: 2px;--_expander-indicator-track: calc(var(--_expander-indicator-edge) + var(--_expander-indicator-size) + var(--_expander-indicator-gap));--_expander-indicator-start: calc(var(--expander-gutter) - var(--_expander-indicator-size) - var(--_expander-indicator-gap));--_expander-open: 0;--_expander-indicator-closed-angle: 0deg;--_expander-indicator-open-angle: 90deg;--_expander-indicator-angle: calc(var(--_expander-indicator-closed-angle) + (var(--_expander-indicator-open-angle) - var(--_expander-indicator-closed-angle)) * var(--_expander-open));--_expander-header-padding-block: 6px;--_expander-header-padding-end: 4px;--_expander-actions-gap: 2px;--_expander-actions-start: 8px;--_expander-actions-end: 4px;display:block;width:100%;box-sizing:border-box;border:1px solid var(--expander-border);border-radius:4px;color:var(--expander-text);background:var(--expander-bg);transition:background-color .1s ease}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator){--expander-gutter: 12px;--_expander-actions-end: var(--_expander-actions-gap);--_expander-indicator-open-angle: 180deg}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator:is([shape=chevron],[shape=triangle])){--_expander-indicator-closed-angle: 90deg;--_expander-indicator-open-angle: 270deg}a-expander:has(>a-expander-indicator:is([shape=plus],[data-when])){--_expander-indicator-closed-angle: 0deg;--_expander-indicator-open-angle: 0deg}a-expander:is(:state(open),:not(:defined)[state=open],:not(:defined):not([state])[default-state=open]){--_expander-content-overflow: visible;--_expander-open: 1;--_expander-indicator-opacity: 1}a-expander[round]{border-radius:var(--expander-round, 1rem);@supports (border-radius: attr(probe type(<length>),1px)){--expander-round: attr(round type(<length>))}}a-expander>a-expander-actions,a-expander>a-expander-title{display:contents}a-expander>a-expander-indicator{display:grid;place-items:center;position:relative;width:var(--_expander-indicator-size);height:var(--_expander-indicator-size);pointer-events:none}a-expander>a-expander-indicator[shape]:before{content:"";position:absolute;inset:0;background:currentColor;mask:var(--_expander-chevron) center / contain no-repeat}a-expander>a-expander-indicator[shape=triangle]:before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 2.5 12 8l-7 5.5z'/%3E%3C/svg%3E")}a-expander>a-expander-indicator[shape=plus]:before,a-expander>a-expander-indicator[shape=plus]:after{content:"";position:absolute;inset:auto;background:currentColor;mask:none;border-radius:calc(var(--_expander-indicator-stroke) / 2)}a-expander>a-expander-indicator[shape=plus]:before{width:calc(var(--_expander-indicator-size) - 2 * var(--_expander-indicator-stroke));height:var(--_expander-indicator-stroke);left:var(--_expander-indicator-stroke);top:calc((var(--_expander-indicator-size) - var(--_expander-indicator-stroke)) / 2)}a-expander>a-expander-indicator[shape=plus]:after{width:var(--_expander-indicator-stroke);height:calc(var(--_expander-indicator-size) - 2 * var(--_expander-indicator-stroke));left:calc((var(--_expander-indicator-size) - var(--_expander-indicator-stroke)) / 2);top:var(--_expander-indicator-stroke);transform:scaleY(calc(1 - var(--_expander-open)));transition:transform .15s ease}@media(prefers-reduced-motion:reduce){a-expander::part(indicator),a-expander>a-expander-indicator[shape=plus]:after{transition:none}}a-expander:not(:defined){display:grid;position:relative;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}a-expander:not(:defined):has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator){grid-template-columns:minmax(0,1fr) auto var(--_expander-indicator-track)}a-expander:not(:defined)>:is(a-expander-summary,a-expander-title){position:relative;display:block;grid-column:1;grid-row:1;align-self:center;padding:var(--_expander-header-padding-block) var(--_expander-header-padding-end) var(--_expander-header-padding-block) var(--expander-gutter)}a-expander:not(:defined):has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)>:is(a-expander-summary,a-expander-title){padding-inline:var(--expander-gutter) 0;text-align:left}a-expander:not(:defined)>a-expander-actions{grid-column:2;grid-row:1;display:flex;align-items:center;gap:var(--_expander-actions-gap);margin-inline:var(--_expander-actions-start) var(--_expander-actions-end)}a-expander:not(:defined)>a-expander-actions:empty{display:none}a-expander:not(:defined)>a-expander-indicator{grid-column:1;grid-row:1;align-self:center;justify-self:start;margin-inline-start:var(--_expander-indicator-start);width:var(--_expander-indicator-size);height:var(--_expander-indicator-size);transform:rotate(var(--_expander-indicator-angle));opacity:var(--_expander-indicator-opacity)}a-expander:not(:defined):has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)>a-expander-indicator{grid-column:3;justify-self:end;margin-inline:0 var(--_expander-indicator-edge)}a-expander:not(:defined)>a-expander-details{grid-column:1 / -1;display:none}a-expander:not(:defined)[state=open]>a-expander-details,a-expander:not(:defined):not([state])[default-state=open]>a-expander-details{display:block}a-expander>a-expander-indicator[data-when=open]{display:none}a-expander:is(:state(open),:not(:defined)[state=open],:not(:defined):not([state])[default-state=open])>a-expander-indicator[data-when=open]{display:grid}a-expander:is(:state(open),:not(:defined)[state=open],:not(:defined):not([state])[default-state=open])>a-expander-indicator[data-when=closed]{display:none}a-expander-summary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:20px;font-weight:584.62;letter-spacing:0;text-decoration-line:var(--_summary-underline, none);text-decoration-style:dotted;text-decoration-color:color-mix(in oklch,currentColor 75%,transparent);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s ease}a-expander-summary[level="1"]{font-size:28px;line-height:32px}a-expander-summary[level="2"]{font-size:24px;line-height:28px}a-expander-summary[level="3"]{font-size:20px;line-height:24px}a-expander-summary[level="4"]{font-size:17px;line-height:22px}a-expander-summary[level="6"]{font-size:13px;line-height:16px}a-expander-details{display:block;padding:2px 4px 6px var(--expander-gutter);line-height:20px;overflow:auto}a-expander:has(>:is(a-expander-summary,a-expander-title)~a-expander-indicator)>a-expander-details{padding-inline-start:var(--expander-gutter)}a-expander[priority=tertiary][outdent]>a-expander-details{padding-inline-start:4px;margin-inline-start:-4px}a-expander[priority=primary]{--expander-bg: var(--expander-bg-primary);--expander-border: var(--expander-border-primary)}a-expander[priority=tertiary]{--expander-bg: transparent;--expander-border: transparent}a-expander:not([disabled]):not(:state(open)):hover{background:var(--expander-bg-hover)}a-expander:not([disabled]):not(:state(open)):active{background:var(--expander-bg)}a-expander[priority=tertiary][outdent]{--expander-gutter: 0px}a-expander[tone=brand]{--expander-text: var(--text-2-brand);--expander-text-hover: var(--text-1-brand);--expander-bg-secondary: var(--bg-2-brand);--expander-border-secondary: var(--border-5-brand);--expander-bg-primary: var(--bg-4-brand);--expander-border-primary: var(--border-4-brand)}a-expander[tone=info]{--expander-text: var(--text-2-info);--expander-text-hover: var(--text-1-info);--expander-bg-secondary: var(--bg-2-info);--expander-border-secondary: var(--border-5-info);--expander-bg-primary: var(--bg-4-info);--expander-border-primary: var(--border-4-info)}a-expander[tone=success]{--expander-text: var(--text-2-success);--expander-text-hover: var(--text-1-success);--expander-bg-secondary: var(--bg-2-success);--expander-border-secondary: var(--border-5-success);--expander-bg-primary: var(--bg-4-success);--expander-border-primary: var(--border-4-success)}a-expander[tone=warning]{--expander-text: var(--text-2-warning);--expander-text-hover: var(--text-1-warning);--expander-bg-secondary: var(--bg-2-warning);--expander-border-secondary: var(--border-5-warning);--expander-bg-primary: var(--bg-4-warning);--expander-border-primary: var(--border-4-warning)}a-expander[tone=critical]{--expander-text: var(--text-2-critical);--expander-text-hover: var(--text-1-critical);--expander-bg-secondary: var(--bg-2-critical);--expander-border-secondary: var(--border-5-critical);--expander-bg-primary: var(--bg-4-critical);--expander-border-primary: var(--border-4-critical)}a-expander[tone]:not([tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--expander-tone-source: currentColor;--expander-text: light-dark(oklch(from var(--expander-tone-source) .5 .125 h), oklch(from var(--expander-tone-source) .77 .11 h));--expander-text-hover: light-dark(oklch(from var(--expander-tone-source) .4 .11 h), oklch(from var(--expander-tone-source) .85 .1 h));--expander-bg-secondary: light-dark(oklch(from var(--expander-tone-source) .99 .004 h), oklch(from var(--expander-tone-source) .13 .02 h));--expander-border-secondary: light-dark(oklch(from var(--expander-tone-source) .935 .028 h), oklch(from var(--expander-tone-source) .21 .045 h));--expander-bg-primary: light-dark(oklch(from var(--expander-tone-source) .955 .02 h), oklch(from var(--expander-tone-source) .185 .05 h));--expander-border-primary: light-dark(oklch(from var(--expander-tone-source) .9 .04 h), oklch(from var(--expander-tone-source) .26 .06 h));@supports (color: attr(probe type(<color>),red)){--expander-tone-source: attr(tone type(<color>), currentColor)}}a-expander[disabled],a-expander[disabled][tone]{--expander-text: light-dark(#afa9b1, #635b65)}details[data-anta]{--native-expander-gutter: 24px;--native-expander-summary-padding-block: 6px;--native-expander-summary-font-size: 15px;--native-expander-summary-line-height: 20px;--native-expander-chevron-size: 16px;--native-expander-text: var(--text-2);--native-expander-text-hover: var(--text-1);--native-expander-bg-secondary: var(--bg-2);--native-expander-border-secondary: var(--border-5);--native-expander-bg-primary: var(--bg-4);--native-expander-border-primary: var(--border-4);--native-expander-round-size: 1rem;--native-expander-round: 4px;--native-expander-bg: transparent;--native-expander-border: transparent;display:block;inline-size:100%;box-sizing:border-box;border:0 solid var(--native-expander-border);border-radius:var(--native-expander-round);color:var(--native-expander-text);background:var(--native-expander-bg);font-family:var(--sans-serif);font-size:15px;line-height:var(--native-expander-summary-line-height);transition:background-color .1s ease}details[data-anta][priority=secondary]{--native-expander-bg: var(--native-expander-bg-secondary);--native-expander-border: var(--native-expander-border-secondary);border-width:1px}details[data-anta][priority=primary]{--native-expander-bg: var(--native-expander-bg-primary);--native-expander-border: var(--native-expander-border-primary);border-width:1px}details[data-anta][level="1"]{--native-expander-summary-font-size: 28px;--native-expander-summary-line-height: 32px}details[data-anta][level="2"]{--native-expander-summary-font-size: 24px;--native-expander-summary-line-height: 28px}details[data-anta][level="3"]{--native-expander-summary-font-size: 20px;--native-expander-summary-line-height: 24px}details[data-anta][level="4"]{--native-expander-summary-font-size: 17px;--native-expander-summary-line-height: 20px}details[data-anta][level="6"]{--native-expander-summary-font-size: 13px;--native-expander-summary-line-height: 16px}details[data-anta][round]{--native-expander-round: var(--native-expander-round-size)}details[data-anta][round]:not([round=""]){--native-expander-round: var(--native-expander-round-size);@supports (border-radius: attr(probe type(<length>),1px)){--native-expander-round: attr(round type(<length>), var(--native-expander-round-size))}}details[data-anta][priority=tertiary][outdent]{--native-expander-gutter: 0px}details[data-anta][tone=brand]{--native-expander-text: var(--text-2-brand);--native-expander-text-hover: var(--text-1-brand);--native-expander-bg-secondary: var(--bg-2-brand);--native-expander-border-secondary: var(--border-5-brand);--native-expander-bg-primary: var(--bg-4-brand);--native-expander-border-primary: var(--border-4-brand)}details[data-anta][tone=info]{--native-expander-text: var(--text-2-info);--native-expander-text-hover: var(--text-1-info);--native-expander-bg-secondary: var(--bg-2-info);--native-expander-border-secondary: var(--border-5-info);--native-expander-bg-primary: var(--bg-4-info);--native-expander-border-primary: var(--border-4-info)}details[data-anta][tone=success]{--native-expander-text: var(--text-2-success);--native-expander-text-hover: var(--text-1-success);--native-expander-bg-secondary: var(--bg-2-success);--native-expander-border-secondary: var(--border-5-success);--native-expander-bg-primary: var(--bg-4-success);--native-expander-border-primary: var(--border-4-success)}details[data-anta][tone=warning]{--native-expander-text: var(--text-2-warning);--native-expander-text-hover: var(--text-1-warning);--native-expander-bg-secondary: var(--bg-2-warning);--native-expander-border-secondary: var(--border-5-warning);--native-expander-bg-primary: var(--bg-4-warning);--native-expander-border-primary: var(--border-4-warning)}details[data-anta][tone=critical]{--native-expander-text: var(--text-2-critical);--native-expander-text-hover: var(--text-1-critical);--native-expander-bg-secondary: var(--bg-2-critical);--native-expander-border-secondary: var(--border-5-critical);--native-expander-bg-primary: var(--bg-4-critical);--native-expander-border-primary: var(--border-4-critical)}details[data-anta][tone]:not([tone=""],[tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--native-expander-tone-source: currentColor;--native-expander-text: light-dark(oklch(from var(--native-expander-tone-source) .5 .125 h), oklch(from var(--native-expander-tone-source) .77 .11 h));--native-expander-text-hover: light-dark(oklch(from var(--native-expander-tone-source) .4 .11 h), oklch(from var(--native-expander-tone-source) .85 .1 h));--native-expander-bg-secondary: light-dark(oklch(from var(--native-expander-tone-source) .99 .004 h), oklch(from var(--native-expander-tone-source) .13 .02 h));--native-expander-border-secondary: light-dark(oklch(from var(--native-expander-tone-source) .935 .028 h), oklch(from var(--native-expander-tone-source) .21 .045 h));--native-expander-bg-primary: light-dark(oklch(from var(--native-expander-tone-source) .955 .02 h), oklch(from var(--native-expander-tone-source) .185 .05 h));--native-expander-border-primary: light-dark(oklch(from var(--native-expander-tone-source) .9 .04 h), oklch(from var(--native-expander-tone-source) .26 .06 h));@supports (color: attr(probe type(<color>),red)){--native-expander-tone-source: attr(tone type(<color>), currentColor)}}details[data-anta]>summary{position:relative;box-sizing:border-box;display:block;min-width:0;padding:var(--native-expander-summary-padding-block) 4px var(--native-expander-summary-padding-block) var(--native-expander-gutter);color:inherit;cursor:pointer;font:inherit;font-variation-settings:inherit;font-size:var(--native-expander-summary-font-size);line-height:var(--native-expander-summary-line-height);font-weight:584.62;letter-spacing:0;list-style:none;text-decoration-line:none;transition:color .15s ease}details[data-anta]>summary::-webkit-details-marker{display:none}details[data-anta]>summary::marker{content:""}details[data-anta]>summary:before{content:"";position:absolute;left:calc(var(--native-expander-gutter) - var(--native-expander-chevron-size) - 2px);top:var(--native-expander-summary-padding-block);width:var(--native-expander-chevron-size);height:var(--native-expander-summary-line-height);background-color:currentColor;-webkit-mask:var(--_expander-chevron) center / var(--native-expander-chevron-size) no-repeat;mask:var(--_expander-chevron) center / var(--native-expander-chevron-size) no-repeat;opacity:.6;transform:rotate(0);transition:transform .15s ease,opacity .15s ease,background-color .15s ease}details[data-anta][open]>summary:before{opacity:1;transform:rotate(90deg)}details[data-anta]:is([priority=primary],[priority=secondary]):not([open]):hover{background:oklch(from var(--native-expander-bg) calc(l + .01) c h)}details[data-anta]:is([priority=primary],[priority=secondary]):not([open]):active{background:var(--native-expander-bg)}details[data-anta]>summary:hover{color:var(--native-expander-text-hover);text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:color-mix(in oklch,currentColor 75%,transparent);text-decoration-thickness:1px;text-underline-offset:3px}details[data-anta]>summary:hover:before{opacity:1}details[data-anta]>summary:active{color:var(--native-expander-text)}details[data-anta]>summary:focus-visible{outline:1px solid var(--focus-ring);outline-offset:1px}details[data-anta]>:not(summary){display:block;padding:2px 4px 6px var(--native-expander-gutter);line-height:20px}@media(forced-colors:active){:is(a-expander,details[data-anta]){border-color:CanvasText}:is(a-expander,details[data-anta]):not([priority=primary],[priority=tertiary]){border-style:dashed}:is(a-expander,details[data-anta])[priority=tertiary]{border-color:Canvas}a-expander::part(indicator){forced-color-adjust:none;color:CanvasText}a-expander[disabled]::part(indicator){color:GrayText}a-expander>a-expander-indicator{forced-color-adjust:none;color:CanvasText}details[data-anta]>summary:before{forced-color-adjust:none;background-color:CanvasText}a-expander[disabled]>a-expander-indicator{color:GrayText}}}a-expander-details>p:last-child,a-expander-details>*>p:last-child,details[data-anta]>p:last-child,details[data-anta]>:not(summary)>p:last-child{margin-block-end:0}
|
|
@@ -1,40 +1,14 @@
|
|
|
1
1
|
import { HTMLElementBase } from '../anta_helpers';
|
|
2
2
|
import './a-expander.css';
|
|
3
|
+
/** Disclosure with authored regions and an owned native button and inert body.
|
|
4
|
+
* Manual projection changes neither authored attributes nor children. All
|
|
5
|
+
* default styling is external; state requests remain cancelable. */
|
|
3
6
|
export declare class AExpanderElement extends HTMLElementBase {
|
|
4
7
|
#private;
|
|
5
8
|
static observedAttributes: string[];
|
|
6
|
-
private summary;
|
|
7
|
-
private titleSlot;
|
|
8
|
-
private region;
|
|
9
|
-
private header;
|
|
10
|
-
private roundStyle;
|
|
11
|
-
private roundObserver?;
|
|
12
|
-
private internals?;
|
|
13
9
|
constructor();
|
|
14
|
-
/** Publish HALF the folded (header + host borders) height as
|
|
15
|
-
* `--_expander-round-radius` on `:host`, for `a-expander[round]` to consume.
|
|
16
|
-
* Reads layout only; writes only the shadow sheet — no host mutation. */
|
|
17
|
-
/** A `round` attribute carrying a length (`round="12px"`) is a fixed radius —
|
|
18
|
-
* the CSS uses it directly and the measured pill is unused, so skip measuring.
|
|
19
|
-
* (The wrapper's `round={12}` path sets an inline var + a bare `round=""`, so
|
|
20
|
-
* it isn't caught here; the measurement runs but its var is simply overridden.) */
|
|
21
|
-
private hasFixedRound;
|
|
22
|
-
private measureRoundRadius;
|
|
23
|
-
private startRoundObserver;
|
|
24
|
-
private stopRoundObserver;
|
|
25
10
|
connectedCallback(): void;
|
|
26
11
|
disconnectedCallback(): void;
|
|
27
|
-
attributeChangedCallback(name: string): void;
|
|
28
|
-
private syncDisabled;
|
|
29
|
-
/** Apply state to the shadow internals (idempotent; reads the host, writes
|
|
30
|
-
* only the shadow). `aria-expanded` is both the a11y signal and the CSS
|
|
31
|
-
* state hook; `inert` keeps collapsed content out of the tab order and the
|
|
32
|
-
* accessibility tree. */
|
|
33
|
-
private applyState;
|
|
34
|
-
/** Compute the requested next state, announce it (cancelable, *before*
|
|
35
|
-
* applying), then — uncontrolled only, and only if not vetoed — apply it.
|
|
36
|
-
* Controlled: never self-apply; the consumer answers via the `state`
|
|
37
|
-
* attribute. See STATEFUL-COMPONENTS.md. */
|
|
38
|
-
private onSummaryClick;
|
|
12
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
39
13
|
}
|
|
40
14
|
export declare function register_a_expander(): void;
|