@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,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "@antadesign/anta/jsx-runtime";
|
|
2
2
|
import { useState, useMemo } from "../jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { ISOLATE_HINT, ISOLATE_HINT_DELAY, optionPresentationAttrs } from "../anta_helpers";
|
|
4
4
|
import { normalizeOpt, matchQueryRegex, matchesQuery } from "./select-options";
|
|
5
5
|
import { Button } from "./Button";
|
|
6
6
|
import { Menu } from "./Menu";
|
|
@@ -37,7 +37,8 @@ const SelectFaceted = (props) => {
|
|
|
37
37
|
size,
|
|
38
38
|
priority = "secondary",
|
|
39
39
|
disabled,
|
|
40
|
-
|
|
40
|
+
tone,
|
|
41
|
+
toneScope,
|
|
41
42
|
searchable,
|
|
42
43
|
searchPlaceholder = "Filter\u2026",
|
|
43
44
|
clearable = true,
|
|
@@ -70,11 +71,6 @@ const SelectFaceted = (props) => {
|
|
|
70
71
|
}
|
|
71
72
|
const [queries, setQueries] = useState({});
|
|
72
73
|
const [rootQuery, setRootQuery] = useState("");
|
|
73
|
-
const [activeIds, setActiveIds] = useState({});
|
|
74
|
-
const onActive = (key) => (e) => {
|
|
75
|
-
const id = nativeStateChange(e).detail?.id ?? null;
|
|
76
|
-
setActiveIds((s) => s[key] === id ? s : { ...s, [key]: id });
|
|
77
|
-
};
|
|
78
74
|
const activeCount = facets.reduce((n, f) => n + (isEmpty(current[f.key]) ? 0 : 1), 0);
|
|
79
75
|
const leavesByKey = useMemo(
|
|
80
76
|
() => new Map(
|
|
@@ -113,19 +109,20 @@ const SelectFaceted = (props) => {
|
|
|
113
109
|
placeholder: "Filter\u2026",
|
|
114
110
|
"aria-label": `Filter ${facet.label}`,
|
|
115
111
|
"aria-autocomplete": "list",
|
|
116
|
-
"aria-activedescendant": activeIds[facet.key] ?? void 0,
|
|
117
112
|
onInput: (e) => setQueries((s) => ({ ...s, [facet.key]: e.currentTarget.value }))
|
|
118
113
|
}
|
|
119
114
|
) }) : null;
|
|
120
115
|
const optionRow = (facet, opt, keyPrefix = "") => {
|
|
121
116
|
const { className: optionClassName, style: optionStyle, ...optionAttrs } = optionPresentationAttrs(opt, true);
|
|
117
|
+
const selected = facet.kind === "single" ? current[facet.key] === opt.value : (current[facet.key] ?? []).includes(opt.value);
|
|
118
|
+
const custom = facet.renderOption?.(opt, { value: opt.value, selected, disabled: !!opt.disabled });
|
|
122
119
|
const shared = {
|
|
123
120
|
...optionAttrs,
|
|
124
|
-
icon: opt.icon,
|
|
125
|
-
label: opt.label ?? String(opt.value),
|
|
126
|
-
hint: opt.hint,
|
|
127
|
-
tone: opt.tone,
|
|
128
|
-
|
|
121
|
+
icon: custom ? void 0 : opt.icon,
|
|
122
|
+
label: custom ? void 0 : opt.label ?? String(opt.value),
|
|
123
|
+
hint: custom ? void 0 : opt.hint,
|
|
124
|
+
tone: opt.tone ?? tone,
|
|
125
|
+
toneScope: opt.toneScope ?? toneScope,
|
|
129
126
|
disabled: opt.disabled,
|
|
130
127
|
className: optionClassName,
|
|
131
128
|
style: optionStyle,
|
|
@@ -138,8 +135,9 @@ const SelectFaceted = (props) => {
|
|
|
138
135
|
{
|
|
139
136
|
...shared,
|
|
140
137
|
selectionIndicator: "check",
|
|
141
|
-
selected
|
|
142
|
-
onSelect: () => setFacet(facet, cur === opt.value ? void 0 : opt.value)
|
|
138
|
+
selected,
|
|
139
|
+
onSelect: () => setFacet(facet, cur === opt.value ? void 0 : opt.value),
|
|
140
|
+
children: custom
|
|
143
141
|
},
|
|
144
142
|
`${keyPrefix}${opt.value}`
|
|
145
143
|
);
|
|
@@ -148,14 +146,17 @@ const SelectFaceted = (props) => {
|
|
|
148
146
|
const isolable = facet.selectAll !== false && !opt.disabled;
|
|
149
147
|
const tip = opt.tooltip ?? (isolable ? ISOLATE_HINT : void 0);
|
|
150
148
|
const hintOnly = opt.tooltip == null && isolable;
|
|
151
|
-
return /* @__PURE__ */
|
|
149
|
+
return /* @__PURE__ */ jsxs(
|
|
152
150
|
MenuItem,
|
|
153
151
|
{
|
|
154
152
|
...shared,
|
|
155
153
|
selectionIndicator: "checkbox",
|
|
156
|
-
selected
|
|
154
|
+
selected,
|
|
157
155
|
onSelect: (e) => isolable && e?.altKey ? setFacet(facet, [opt.value]) : setFacet(facet, arr.includes(opt.value) ? arr.filter((v) => v !== opt.value) : [...arr, opt.value]),
|
|
158
|
-
children:
|
|
156
|
+
children: [
|
|
157
|
+
custom,
|
|
158
|
+
tip && /* @__PURE__ */ jsx(Tooltip, { ...hintOnly ? { delay: ISOLATE_HINT_DELAY, placement: "left" } : { follow: true }, children: tip })
|
|
159
|
+
]
|
|
159
160
|
},
|
|
160
161
|
`${keyPrefix}${opt.value}`
|
|
161
162
|
);
|
|
@@ -232,24 +233,33 @@ const SelectFaceted = (props) => {
|
|
|
232
233
|
}) });
|
|
233
234
|
const renderEditor = (facet) => {
|
|
234
235
|
const isOptions = facet.kind === "single" || facet.kind === "multiple";
|
|
236
|
+
const dialog = !isOptions || !!facet.filter;
|
|
235
237
|
const body = facet.kind === "single" ? renderSingle(facet) : facet.kind === "multiple" ? renderMultiple(facet) : facet.kind === "text" ? renderText(facet) : renderCustom(facet);
|
|
236
238
|
const hasValue = !isEmpty(current[facet.key]);
|
|
237
|
-
return /* @__PURE__ */ jsxs(
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
"
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
239
|
+
return /* @__PURE__ */ jsxs(
|
|
240
|
+
Menu,
|
|
241
|
+
{
|
|
242
|
+
role: dialog ? "dialog" : void 0,
|
|
243
|
+
"aria-label": dialog ? `${facet.label} ${isOptions ? "options" : "editor"}` : void 0,
|
|
244
|
+
children: [
|
|
245
|
+
isOptions && filterHeader(facet),
|
|
246
|
+
body,
|
|
247
|
+
clearable && hasValue && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
248
|
+
/* @__PURE__ */ jsx(MenuSeparator, { slot: "footer" }),
|
|
249
|
+
/* @__PURE__ */ jsx("a-select-footer", { slot: "footer", children: /* @__PURE__ */ jsx(
|
|
250
|
+
MenuItem,
|
|
251
|
+
{
|
|
252
|
+
icon: "x",
|
|
253
|
+
label: "Clear",
|
|
254
|
+
role: dialog ? "button" : void 0,
|
|
255
|
+
"data-menu-open": "",
|
|
256
|
+
onSelect: () => setFacet(facet, void 0)
|
|
257
|
+
}
|
|
258
|
+
) })
|
|
259
|
+
] })
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
);
|
|
253
263
|
};
|
|
254
264
|
const summaryOf = (facet) => {
|
|
255
265
|
const v = current[facet.key];
|
|
@@ -282,7 +292,7 @@ const SelectFaceted = (props) => {
|
|
|
282
292
|
priority,
|
|
283
293
|
size,
|
|
284
294
|
disabled,
|
|
285
|
-
"aria-haspopup": "menu",
|
|
295
|
+
"aria-haspopup": searchable ? "dialog" : "menu",
|
|
286
296
|
"aria-expanded": open ? "true" : "false",
|
|
287
297
|
className,
|
|
288
298
|
style,
|
|
@@ -293,6 +303,8 @@ const SelectFaceted = (props) => {
|
|
|
293
303
|
/* @__PURE__ */ jsxs(
|
|
294
304
|
Menu,
|
|
295
305
|
{
|
|
306
|
+
role: searchable ? "dialog" : void 0,
|
|
307
|
+
"aria-label": searchable ? `${label} options` : void 0,
|
|
296
308
|
placement,
|
|
297
309
|
offset,
|
|
298
310
|
open,
|
|
@@ -300,7 +312,6 @@ const SelectFaceted = (props) => {
|
|
|
300
312
|
setOpen(next);
|
|
301
313
|
if (!next) setRootQuery("");
|
|
302
314
|
},
|
|
303
|
-
onactivedescendant: searchable ? onActive("__root__") : void 0,
|
|
304
315
|
children: [
|
|
305
316
|
searchable && // Pinned global search: flattens all options facets while a query is active.
|
|
306
317
|
/* @__PURE__ */ jsx("a-select-header", { slot: "header", "data-menu-open": "", children: /* @__PURE__ */ jsx(
|
|
@@ -312,17 +323,26 @@ const SelectFaceted = (props) => {
|
|
|
312
323
|
placeholder: searchPlaceholder,
|
|
313
324
|
"aria-label": "Filter all facets",
|
|
314
325
|
"aria-autocomplete": "list",
|
|
315
|
-
"aria-activedescendant": activeIds["__root__"] ?? void 0,
|
|
316
326
|
onInput: (e) => setRootQuery(e.currentTarget.value)
|
|
317
327
|
}
|
|
318
328
|
) }),
|
|
319
|
-
searchable && rootQuery.trim() ? renderFlatResults() : facets.map((facet) => /* @__PURE__ */ jsxs(
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
329
|
+
searchable && rootQuery.trim() ? renderFlatResults() : facets.map((facet) => /* @__PURE__ */ jsxs(
|
|
330
|
+
MenuItem,
|
|
331
|
+
{
|
|
332
|
+
submenu: true,
|
|
333
|
+
icon: facet.icon,
|
|
334
|
+
label: facet.label,
|
|
335
|
+
"aria-haspopup": facet.kind === "text" || facet.kind === "custom" || !!facet.filter ? "dialog" : "menu",
|
|
336
|
+
children: [
|
|
337
|
+
(() => {
|
|
338
|
+
const s = summaryOf(facet);
|
|
339
|
+
return s != null ? /* @__PURE__ */ jsx(Tag, { size: "small", tone: "brand", children: /* @__PURE__ */ jsx("a-select-faceted-summary", { children: s }) }) : null;
|
|
340
|
+
})(),
|
|
341
|
+
renderEditor(facet)
|
|
342
|
+
]
|
|
343
|
+
},
|
|
344
|
+
facet.key
|
|
345
|
+
)),
|
|
326
346
|
clearable && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
327
347
|
/* @__PURE__ */ jsx(MenuSeparator, { slot: "footer" }),
|
|
328
348
|
/* @__PURE__ */ jsx("a-select-footer", { slot: "footer", children: /* @__PURE__ */ jsx(
|
|
@@ -330,6 +350,7 @@ const SelectFaceted = (props) => {
|
|
|
330
350
|
{
|
|
331
351
|
icon: "filter-x",
|
|
332
352
|
label: clearAllLabel,
|
|
353
|
+
role: searchable ? "button" : void 0,
|
|
333
354
|
disabled: activeCount === 0,
|
|
334
355
|
"data-menu-open": "",
|
|
335
356
|
onSelect: clearAll
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from "@antadesign/anta/jsx-runtime";
|
|
2
|
-
import { toneStyle, roundStyle, roundAttr, lengthStyle, cssLength } from "../anta_helpers";
|
|
2
|
+
import { neutralToneAttr, toneStyle, roundStyle, roundAttr, lengthStyle, cssLength } from "../anta_helpers";
|
|
3
3
|
const number = (value, fallback) => Number.isFinite(value) ? value : fallback;
|
|
4
4
|
const isStringish = (node) => typeof node === "string" || typeof node === "number";
|
|
5
5
|
const bounds = (min, max) => {
|
|
@@ -99,8 +99,8 @@ const Slider = ({
|
|
|
99
99
|
step,
|
|
100
100
|
name,
|
|
101
101
|
disabled: disabled ? "" : void 0,
|
|
102
|
-
tone: tone
|
|
103
|
-
"thumb-tone": thumbTone
|
|
102
|
+
tone: neutralToneAttr(tone),
|
|
103
|
+
"thumb-tone": neutralToneAttr(thumbTone),
|
|
104
104
|
size: size && size !== "medium" ? size : void 0,
|
|
105
105
|
"track-size": trackSizeValue,
|
|
106
106
|
"thumb-size": thumbSizeValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer anta.components{a-steps{--steps-marker-size: 28px;--steps-icon-size: 16px;--steps-marker-border-width: 1.5px;--steps-marker-rest-border: var(--border-4);--steps-item-gap: 6px;--steps-gap: 4px;--steps-connector-color: var(--border-3);--steps-connector-width: 1px;--steps-complete-connector-color: var(--border-2);--steps-tab-padding-x: 9px;--steps-tab-padding-block: 0px;--steps-hint-leading: 16px;display:flex;flex-direction:column;width:100%;min-width:0}a-steps:has(>a-tabs[size=small]){--steps-marker-size: 24px;--steps-icon-size: 14px;--steps-tab-padding-x: 7px;--steps-hint-leading: 14px}a-steps:has(>a-tabs[size=large]){--steps-marker-size: 32px;--steps-icon-size: 18px;--steps-tab-padding-x: 13px;--steps-hint-leading: 20px}a-tabs[data-steps]{--steps-marker-active-border: var(--border-1);--steps-primary-marker-lightness: .5;--steps-primary-marker-chroma: .02;--steps-primary-marker-fg: #ffffff;--tabs-gap: 0px;align-items:center;width:fit-content;align-self:flex-start;overflow-x:auto;scrollbar-width:thin}a-tabs[data-steps][fill]{width:100%;align-self:stretch;justify-content:space-between}a-tabs[data-steps]>a-tab[tone=brand]{--steps-marker-active-border: var(--border-1-brand)}a-tabs[data-steps]>a-tab[tone=info]{--steps-marker-active-border: var(--border-1-info)}a-tabs[data-steps]>a-tab[tone=success]{--steps-marker-active-border: var(--border-1-success)}a-tabs[data-steps]>a-tab[tone=warning]{--steps-marker-active-border: var(--border-1-warning)}a-tabs[data-steps]>a-tab[tone=critical]{--steps-marker-active-border: var(--border-1-critical)}a-tabs[data-steps]>a-tab[tone=neutral]{--steps-marker-active-border: var(--border-1)}a-tabs[data-steps]>a-tab[tone]:not([tone=""],[tone=neutral]){--steps-primary-marker-chroma: .17}.dark a-tabs[data-steps]{--steps-primary-marker-lightness: .4;--steps-primary-marker-chroma: .015}.dark a-tabs[data-steps]>a-tab[tone]:not([tone=""],[tone=neutral]){--steps-primary-marker-chroma: .16}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]){--steps-marker-border-width: 2px;--steps-marker-rest-border: var(--border-3);--steps-connector-color: var(--border-3);--steps-connector-width: 2px}a-tabs[data-steps][priority=tertiary]{--steps-marker-size: calc(var(--steps-icon-size) + 4px);--steps-marker-border-width: 0px}a-steps>a-tabs[data-steps]{background:transparent;border-radius:0;box-shadow:none}a-tabs[data-steps]>a-tab{--steps-complete-connector-color: var(--tab-selected-border);--steps-primary-marker-bg: oklch( from var(--tabs-tone-source) var(--steps-primary-marker-lightness) var(--steps-primary-marker-chroma) h );--steps-primary-completed-marker-bg: color-mix( in oklch, var(--steps-primary-marker-bg) 80%, transparent );position:relative;flex:1 1 0;min-width:0;max-width:max-content;padding-block:0;justify-content:flex-start;gap:var(--steps-item-gap);transition:color var(--tab-timing),background-color var(--tab-timing),box-shadow var(--tab-timing)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=brand]){--steps-complete-connector-color: var(--border-2-brand)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=info]){--steps-complete-connector-color: var(--border-2-info)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=success]){--steps-complete-connector-color: var(--border-2-success)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=warning]){--steps-complete-connector-color: var(--border-2-warning)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=critical]){--steps-complete-connector-color: var(--border-2-critical)}a-tabs[data-steps]:not([orientation=vertical])>a-tab:first-child{padding-inline-start:0}a-steps>a-tabs[data-steps][fill]>a-tab:not(:last-child){flex:1 1 0;max-width:none}a-steps>a-tabs[data-steps][fill]>a-tab:last-child{flex:0 1 auto;max-width:max-content}a-steps>a-tabs[data-steps]>a-tab:state(selected){--tab-bg: transparent;box-shadow:none}a-steps>a-tabs[data-steps][priority=tertiary]>a-tab:after{border:0}a-step-desc{display:inline-flex;flex:0 1 auto;flex-direction:column;min-width:0;max-width:100%}a-step-desc>a-tab-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}a-step-hint{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tab-rest-tone, var(--text-3));font-size:calc(1em - 2px);font-weight:400;line-height:var(--steps-hint-leading)}a-step-marker{display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--steps-marker-size);height:var(--steps-marker-size);box-sizing:border-box;color:var(--text-4);border:var(--steps-marker-border-width) solid var(--steps-marker-rest-border);border-radius:999px;transition:color var(--tab-timing),background-color var(--tab-timing),border-color var(--tab-timing)}a-tabs[data-steps] a-step-marker :is(a-icon,a-loader){--icon-size: var(--steps-icon-size)}a-tabs[data-steps]>a-tab[tone]{--tab-secondary-bg: oklch( from var(--tabs-tone-source) var(--_track-l) var(--_track-c) h / var(--_sec-a) )}a-tabs[data-steps]>a-tab[tone] a-step-marker{color:var(--tab-selected-text)}a-tabs[data-steps]>a-tab:is(:state(selected),[data-step-state=completed]) a-step-marker{border-color:var(--steps-marker-active-border)}a-tabs[data-steps]>a-tab[data-step-state=error]:not(:state(selected)):not([disabled]) a-step-marker{border-color:var(--border-2-critical)}a-tabs[data-steps]:is([priority=secondary],[priority=tertiary])>a-tab[tone]:not([tone=""],[tone=neutral]) a-step-marker{color:var(--tab-fg)}a-tabs[data-steps][priority=secondary] a-tab:state(selected):not([disabled]) a-step-marker{color:var(--tab-selected-text);background-color:var(--tab-secondary-bg);border-color:var(--steps-marker-active-border)}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]) a-tab:state(selected):not([disabled]) a-step-marker{color:var(--steps-primary-marker-fg);background-color:var(--steps-primary-marker-bg);border-color:var(--steps-primary-marker-bg)}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]) a-tab[data-step-state=completed]:not(:state(selected)):not([disabled]) a-step-marker{color:var(--steps-primary-marker-fg);background-color:var(--steps-primary-completed-marker-bg);border-color:transparent}a-tabs[data-steps][priority=tertiary] a-tab:state(selected):not([disabled]) a-step-marker{color:var(--tab-selected-text);background-color:transparent;border-color:transparent}a-tabs[data-steps] a-step-marker>a-loader{transition:color var(--tab-timing)}a-tabs[data-steps]:is([priority=secondary],[priority=tertiary]) a-step-marker>a-loader:not([tone=neutral]){color:inherit}a-tabs[data-steps] a-tab:state(selected):not([disabled]) a-step-marker>a-loader{color:inherit}a-tabs[data-steps]:not([orientation=vertical])>a-tab:not(:last-child):before{content:"";order:3;flex:1 1 auto;align-self:center;min-width:calc(var(--steps-marker-size) / 2);height:var(--steps-connector-width);margin-inline-start:calc(1ch - var(--steps-item-gap));margin-inline-end:calc(1ch - 2 * var(--steps-tab-padding-x));background:var(--steps-connector-color);pointer-events:none}a-tabs[data-steps]:not([orientation=vertical])>a-tab[data-step-state=completed]:not(:last-child):before{background:var(--steps-complete-connector-color)}a-tabs[data-steps] a-tab[disabled]{--tab-fg: var(--text-5);opacity:1}a-tabs[data-steps] a-tab[disabled] a-step-marker,a-tabs[data-steps] a-tab[disabled] a-step-marker>a-loader{color:var(--text-5)}a-tabs[data-steps] a-tab[disabled] a-step-hint{color:var(--text-5)}a-steps[data-orientation=vertical]{--steps-content-indent: calc( var(--steps-marker-size) + var(--steps-item-gap) );--steps-vertical-gap: calc(var(--steps-gap) + 4px);display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--steps-vertical-gap)}a-steps[data-orientation=vertical]>a-tabs[orientation=vertical]{display:contents}a-steps[data-orientation=vertical]>a-tabs[orientation=vertical]>a-tab{flex:none;min-width:0;grid-column:1;width:max-content;max-width:100%;padding-inline-start:0}a-steps[data-orientation=vertical] a-tab:not(:last-child):before{content:"";position:absolute;inset-block-start:calc(var(--steps-tab-padding-block) + var(--steps-marker-size));inset-inline-start:calc(var(--steps-marker-size) / 2 - var(--steps-connector-width) / 2);inset-inline-end:auto;width:var(--steps-connector-width);height:calc(100% - var(--steps-marker-size) + var(--steps-vertical-gap));background:var(--steps-connector-color);transform:none;pointer-events:none}a-steps[data-orientation=vertical]>a-tabpanel{grid-column:1;grid-row:var(--steps-panel-row);width:calc(100% - var(--steps-content-indent));margin-inline-start:var(--steps-content-indent)}a-steps[data-orientation=vertical]:has(>a-tabpanel):has(>a-tabs[orientation=vertical]>a-tab:state(selected):not(:last-child)):after{content:"";grid-column:1;grid-row:var(--steps-panel-row);align-self:stretch;justify-self:start;width:var(--steps-connector-width);min-height:var(--steps-marker-size);margin-inline-start:calc(var(--steps-marker-size) / 2 - var(--steps-connector-width) / 2);margin-block-end:calc(-1 * var(--steps-vertical-gap));background:var(--steps-connector-color);pointer-events:none;z-index:1}a-steps[data-orientation=vertical]>a-tabs[data-steps]>a-tab[data-step-state=completed]:not(:last-child):before{background:var(--steps-complete-connector-color)}a-steps[data-orientation=vertical]:has(>a-tabpanel):has(>a-tabs[data-steps][orientation=vertical]>a-tab[data-step-state=completed]:state(selected):not(:last-child)):after{background:var(--steps-complete-connector-color)}@media(forced-colors:active){a-tabs[data-steps][priority=secondary] a-tab:state(selected){background-color:transparent;border:0;box-shadow:none}a-step-marker{color:CanvasText;background-color:Canvas;border-color:CanvasText}a-tabs[data-steps] a-tab:state(selected):not([disabled]) a-step-marker{border-color:Highlight}}}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-steps{--steps-marker-size: 28px;--steps-icon-size: 16px;--steps-marker-border-width: 1.5px;--steps-marker-rest-border: var(--border-4);--steps-item-gap: 6px;--steps-gap: 4px;--steps-connector-color: var(--border-3);--steps-connector-width: 1px;--steps-complete-connector-color: var(--border-2);--steps-tab-padding-x: 9px;--steps-tab-padding-block: 0px;--steps-hint-leading: 16px;display:flex;flex-direction:column;width:100%;min-width:0}a-steps:has(>a-tabs[size=small]){--steps-marker-size: 24px;--steps-icon-size: 14px;--steps-tab-padding-x: 7px;--steps-hint-leading: 14px}a-steps:has(>a-tabs[size=large]){--steps-marker-size: 32px;--steps-icon-size: 18px;--steps-tab-padding-x: 13px;--steps-hint-leading: 20px}a-tabs[data-steps]{--steps-marker-active-border: var(--border-1);--steps-primary-marker-fg: #ffffff;--tabs-gap: 0px;align-items:center;width:fit-content;align-self:flex-start;overflow-x:auto;scrollbar-width:thin}a-tabs[data-steps][fill]{width:100%;align-self:stretch;justify-content:space-between}a-tabs[data-steps]>a-tab[tone=brand]{--steps-marker-active-border: var(--border-1-brand)}a-tabs[data-steps]>a-tab[tone=info]{--steps-marker-active-border: var(--border-1-info)}a-tabs[data-steps]>a-tab[tone=success]{--steps-marker-active-border: var(--border-1-success)}a-tabs[data-steps]>a-tab[tone=warning]{--steps-marker-active-border: var(--border-1-warning)}a-tabs[data-steps]>a-tab[tone=critical]{--steps-marker-active-border: var(--border-1-critical)}a-tabs[data-steps]>a-tab[tone=neutral]{--steps-marker-active-border: var(--border-1)}a-tabs[data-steps]>a-tab[tone]:not([tone=""],[tone=neutral]){--steps-primary-marker-bg: light-dark( oklch(from var(--tabs-tone-source) .5 .17 h), oklch(from var(--tabs-tone-source) .4 .16 h) )}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]){--steps-marker-border-width: 2px;--steps-marker-rest-border: var(--border-3);--steps-connector-color: var(--border-3);--steps-connector-width: 2px}a-tabs[data-steps][priority=tertiary]{--steps-marker-size: calc(var(--steps-icon-size) + 4px);--steps-marker-border-width: 0px}a-steps>a-tabs[data-steps]{background:transparent;border-radius:0;box-shadow:none}a-tabs[data-steps]>a-tab{--steps-complete-connector-color: var(--tab-selected-border);--steps-primary-marker-bg: light-dark( oklch(from var(--tabs-tone-source) .5 .02 h), oklch(from var(--tabs-tone-source) .4 .015 h) );--steps-primary-completed-marker-bg: color-mix( in oklch, var(--steps-primary-marker-bg) 80%, transparent );position:relative;flex:1 1 0;min-width:0;max-width:max-content;padding-block:0;justify-content:flex-start;gap:var(--steps-item-gap);transition:color var(--tab-timing),background-color var(--tab-timing),box-shadow var(--tab-timing)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=brand]){--steps-complete-connector-color: var(--border-2-brand)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=info]){--steps-complete-connector-color: var(--border-2-info)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=success]){--steps-complete-connector-color: var(--border-2-success)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=warning]){--steps-complete-connector-color: var(--border-2-warning)}a-steps[data-orientation=vertical]:has(>a-tabs[data-steps]>a-tab:state(selected)[tone=critical]){--steps-complete-connector-color: var(--border-2-critical)}a-tabs[data-steps]:not([orientation=vertical])>a-tab:first-child{padding-inline-start:0}a-steps>a-tabs[data-steps][fill]>a-tab:not(:last-child){flex:1 1 0;max-width:none}a-steps>a-tabs[data-steps][fill]>a-tab:last-child{flex:0 1 auto;max-width:max-content}a-steps>a-tabs[data-steps]>a-tab:state(selected){--tab-bg: transparent;box-shadow:none}a-steps>a-tabs[data-steps][priority=tertiary]>a-tab:after{border:0}a-step-desc{display:inline-flex;flex:0 1 auto;flex-direction:column;min-width:0;max-width:100%}a-step-desc>a-tab-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}a-step-hint{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tab-rest-tone, var(--text-3));font-size:calc(1em - 2px);font-weight:400;line-height:var(--steps-hint-leading)}a-step-marker{display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--steps-marker-size);height:var(--steps-marker-size);box-sizing:border-box;color:var(--text-4);border:var(--steps-marker-border-width) solid var(--steps-marker-rest-border);border-radius:999px;transition:color var(--tab-timing),background-color var(--tab-timing),border-color var(--tab-timing)}a-tabs[data-steps] a-step-marker :is(a-icon,a-loader){--icon-size: var(--steps-icon-size)}a-tabs[data-steps]>a-tab[tone]{--tab-secondary-bg: light-dark( oklch(from var(--tabs-tone-source) .55 .008 h / .03), oklch(from var(--tabs-tone-source) .8 .008 h / .08) )}a-tabs[data-steps]>a-tab[tone]:not([tone=""],[tone=neutral]){--tab-secondary-bg: light-dark( oklch(from var(--tabs-tone-source) .55 .14 h / .03), oklch(from var(--tabs-tone-source) .8 .12 h / .08) )}a-tabs[data-steps]>a-tab[tone] a-step-marker{color:var(--tab-selected-text)}a-tabs[data-steps]>a-tab:is(:state(selected),[data-step-state=completed]) a-step-marker{border-color:var(--steps-marker-active-border)}a-tabs[data-steps]>a-tab[data-step-state=error]:not(:state(selected)):not([disabled]) a-step-marker{border-color:var(--border-2-critical)}a-tabs[data-steps]:is([priority=secondary],[priority=tertiary])>a-tab[tone]:not([tone=""],[tone=neutral]) a-step-marker{color:var(--tab-fg)}a-tabs[data-steps][priority=secondary] a-tab:state(selected):not([disabled]) a-step-marker{color:var(--tab-selected-text);background-color:var(--tab-secondary-bg);border-color:var(--steps-marker-active-border)}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]) a-tab:state(selected):not([disabled]) a-step-marker{color:var(--steps-primary-marker-fg);background-color:var(--steps-primary-marker-bg);border-color:var(--steps-primary-marker-bg)}a-tabs[data-steps]:not([priority=secondary],[priority=tertiary]) a-tab[data-step-state=completed]:not(:state(selected)):not([disabled]) a-step-marker{color:var(--steps-primary-marker-fg);background-color:var(--steps-primary-completed-marker-bg);border-color:transparent}a-tabs[data-steps][priority=tertiary] a-tab:state(selected):not([disabled]) a-step-marker{color:var(--tab-selected-text);background-color:transparent;border-color:transparent}a-tabs[data-steps] a-step-marker>a-loader{transition:color var(--tab-timing)}a-tabs[data-steps]:is([priority=secondary],[priority=tertiary]) a-step-marker>a-loader:not([tone=neutral]){color:inherit}a-tabs[data-steps] a-tab:state(selected):not([disabled]) a-step-marker>a-loader{color:inherit}a-tabs[data-steps]:not([orientation=vertical])>a-tab:not(:last-child):before{content:"";order:3;flex:1 1 auto;align-self:center;min-width:calc(var(--steps-marker-size) / 2);height:var(--steps-connector-width);margin-inline-start:calc(1ch - var(--steps-item-gap));margin-inline-end:calc(1ch - 2 * var(--steps-tab-padding-x));background:var(--steps-connector-color);pointer-events:none}a-tabs[data-steps]:not([orientation=vertical])>a-tab[data-step-state=completed]:not(:last-child):before{background:var(--steps-complete-connector-color)}a-tabs[data-steps] a-tab[disabled]{--tab-fg: var(--text-5);opacity:1}a-tabs[data-steps] a-tab[disabled] a-step-marker,a-tabs[data-steps] a-tab[disabled] a-step-marker>a-loader{color:var(--text-5)}a-tabs[data-steps] a-tab[disabled] a-step-hint{color:var(--text-5)}a-steps[data-orientation=vertical]{--steps-content-indent: calc( var(--steps-marker-size) + var(--steps-item-gap) );--steps-vertical-gap: calc(var(--steps-gap) + 4px);display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--steps-vertical-gap)}a-steps[data-orientation=vertical]>a-tabs[orientation=vertical]{display:contents}a-steps[data-orientation=vertical]>a-tabs[orientation=vertical]>a-tab{flex:none;min-width:0;grid-column:1;width:max-content;max-width:100%;padding-inline-start:0}a-steps[data-orientation=vertical] a-tab:not(:last-child):before{content:"";position:absolute;inset-block-start:calc(var(--steps-tab-padding-block) + var(--steps-marker-size));inset-inline-start:calc(var(--steps-marker-size) / 2 - var(--steps-connector-width) / 2);inset-inline-end:auto;width:var(--steps-connector-width);height:calc(100% - var(--steps-marker-size) + var(--steps-vertical-gap));background:var(--steps-connector-color);transform:none;pointer-events:none}a-steps[data-orientation=vertical]>a-tabpanel{grid-column:1;grid-row:var(--steps-panel-row);width:calc(100% - var(--steps-content-indent));margin-inline-start:var(--steps-content-indent)}a-steps[data-orientation=vertical]:has(>a-tabpanel):has(>a-tabs[orientation=vertical]>a-tab:state(selected):not(:last-child)):after{content:"";grid-column:1;grid-row:var(--steps-panel-row);align-self:stretch;justify-self:start;width:var(--steps-connector-width);min-height:var(--steps-marker-size);margin-inline-start:calc(var(--steps-marker-size) / 2 - var(--steps-connector-width) / 2);margin-block-end:calc(-1 * var(--steps-vertical-gap));background:var(--steps-connector-color);pointer-events:none;z-index:1}a-steps[data-orientation=vertical]>a-tabs[data-steps]>a-tab[data-step-state=completed]:not(:last-child):before{background:var(--steps-complete-connector-color)}a-steps[data-orientation=vertical]:has(>a-tabpanel):has(>a-tabs[data-steps][orientation=vertical]>a-tab[data-step-state=completed]:state(selected):not(:last-child)):after{background:var(--steps-complete-connector-color)}@media(forced-colors:active){a-tabs[data-steps][priority=secondary] a-tab:state(selected){background-color:transparent;border:0;box-shadow:none}a-step-marker{color:CanvasText;background-color:Canvas;border-color:CanvasText}a-tabs[data-steps] a-tab:state(selected):not([disabled]) a-step-marker{border-color:Highlight}}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BaseProps } from "../general_types";
|
|
1
|
+
import type { BaseProps, ToneScope } from "../general_types";
|
|
2
2
|
type SwitchState = 'checked' | 'unchecked';
|
|
3
3
|
type StateDetail = {
|
|
4
4
|
next: SwitchState;
|
|
@@ -14,8 +14,8 @@ export interface SwitchChangeAttrs {
|
|
|
14
14
|
export interface SwitchProps extends BaseProps {
|
|
15
15
|
/** Visible, stable label for the setting. Use `children` for richer label content. */
|
|
16
16
|
label?: string;
|
|
17
|
-
/** Secondary text rendered under the label
|
|
18
|
-
* accessible name. */
|
|
17
|
+
/** Secondary text rendered under the label and exposed as the switch's
|
|
18
|
+
* accessible description. It does not become part of the accessible name. */
|
|
19
19
|
hint?: React.ReactNode;
|
|
20
20
|
/** Controlled checked value. In controlled mode, update this in `onStateChange`. */
|
|
21
21
|
checked?: boolean;
|
|
@@ -33,14 +33,13 @@ export interface SwitchProps extends BaseProps {
|
|
|
33
33
|
* @defaultValue "on" */
|
|
34
34
|
value?: string;
|
|
35
35
|
/** Color of the track and thumb. A tinted tone also colors the unchecked
|
|
36
|
-
* track border and thumb; use `
|
|
37
|
-
* @defaultValue '
|
|
36
|
+
* track border and thumb; use `toneScope="selected"` to color only the checked track.
|
|
37
|
+
* @defaultValue 'neutral' */
|
|
38
38
|
tone?: 'brand' | 'neutral' | 'info' | 'success' | 'warning' | 'critical' | (string & {});
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
|
|
43
|
-
toneSelected?: 'brand' | 'neutral' | 'info' | 'success' | 'warning' | 'critical' | (string & {});
|
|
39
|
+
/** Apply `tone` to every state, or only while checked so the unchecked track
|
|
40
|
+
* and thumb stay neutral.
|
|
41
|
+
* @defaultValue 'all' */
|
|
42
|
+
toneScope?: ToneScope;
|
|
44
43
|
/** Size variant. small=26×16px, medium=30×18px, large=34×20px.
|
|
45
44
|
* @defaultValue 'medium' */
|
|
46
45
|
size?: 'small' | 'medium' | 'large';
|
|
@@ -64,5 +63,5 @@ export interface SwitchProps extends BaseProps {
|
|
|
64
63
|
* form-associated and can be controlled with `checked` or left uncontrolled with
|
|
65
64
|
* `defaultChecked`. Requires `@antadesign/anta/elements` on the client.
|
|
66
65
|
*/
|
|
67
|
-
export declare const Switch: ({ checked, defaultChecked, disabled, tone,
|
|
66
|
+
export declare const Switch: ({ checked, defaultChecked, disabled, tone, toneScope, size, round, labelPosition, onStateChange, onChange, onValueChange, label, hint, className, style, children, tabIndex, ...rest }: SwitchProps) => any;
|
|
68
67
|
export {};
|
|
@@ -10,7 +10,7 @@ const Switch = ({
|
|
|
10
10
|
defaultChecked,
|
|
11
11
|
disabled,
|
|
12
12
|
tone,
|
|
13
|
-
|
|
13
|
+
toneScope,
|
|
14
14
|
size,
|
|
15
15
|
round,
|
|
16
16
|
labelPosition,
|
|
@@ -28,15 +28,7 @@ const Switch = ({
|
|
|
28
28
|
const computedStyle = roundStyle(
|
|
29
29
|
round,
|
|
30
30
|
"--switch-round",
|
|
31
|
-
toneStyle(
|
|
32
|
-
toneSelected,
|
|
33
|
-
"--switch-tone-source",
|
|
34
|
-
toneStyle(
|
|
35
|
-
tone,
|
|
36
|
-
"--switch-off-tone-source",
|
|
37
|
-
toneSelected == null ? toneStyle(tone, "--switch-tone-source", style) : style
|
|
38
|
-
)
|
|
39
|
-
)
|
|
31
|
+
toneStyle(tone, "--switch-tone-source", toneStyle(tone, "--switch-off-tone-source", style))
|
|
40
32
|
);
|
|
41
33
|
const explicitAriaLabel = rest["aria-label"];
|
|
42
34
|
const ariaLabel = (typeof explicitAriaLabel === "string" ? explicitAriaLabel : void 0) ?? label ?? (typeof children === "string" ? children : void 0);
|
|
@@ -66,7 +58,7 @@ const Switch = ({
|
|
|
66
58
|
"default-state": defaultStateAttr,
|
|
67
59
|
disabled: disabled ? "" : void 0,
|
|
68
60
|
tone,
|
|
69
|
-
"tone-
|
|
61
|
+
"tone-scope": toneScope && toneScope !== "all" ? toneScope : void 0,
|
|
70
62
|
size: size && size !== "medium" ? size : void 0,
|
|
71
63
|
round: roundAttr(round),
|
|
72
64
|
"label-position": labelPosition && labelPosition !== "end" ? labelPosition : void 0,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BaseProps } from "../general_types";
|
|
1
2
|
/**
|
|
2
3
|
* A tab panel inside `<Tabs>`. Renders a self-managing `<a-tabpanel>` — the element
|
|
3
4
|
* finds its `<a-tabs>` (its flat sibling under the same parent — `Tabs` renders the
|
|
@@ -10,20 +11,14 @@
|
|
|
10
11
|
* unmount an inactive panel (the old `mounting="active" | "lazy"`), drive selection
|
|
11
12
|
* with a controlled `value` and render the content yourself — see the Tabs docs.
|
|
12
13
|
*/
|
|
13
|
-
export interface TabPanelProps {
|
|
14
|
+
export interface TabPanelProps extends BaseProps {
|
|
14
15
|
/** Pairs this panel with the tab (`options` entry) of the same `value`. */
|
|
15
16
|
value: string;
|
|
16
|
-
/** Panel content — arbitrary React/Preact. */
|
|
17
|
-
children?: React.ReactNode;
|
|
18
17
|
/** How this panel hides while inactive: `display` (default — removed from layout
|
|
19
18
|
* and the a11y tree) or `visibility` (keeps its layout box, to measure it or
|
|
20
19
|
* avoid reflow). Both stay mounted; to *not render* an inactive panel, render it
|
|
21
20
|
* conditionally off a controlled `value` (see the Tabs docs).
|
|
22
21
|
* @defaultValue display */
|
|
23
22
|
hideMode?: "display" | "visibility";
|
|
24
|
-
/** CSS class on the rendered `<a-tabpanel>`. */
|
|
25
|
-
className?: string;
|
|
26
|
-
/** Inline style on the rendered `<a-tabpanel>`. */
|
|
27
|
-
style?: React.CSSProperties;
|
|
28
23
|
}
|
|
29
|
-
export declare const TabPanel: ({ value, children, hideMode, className, style }: TabPanelProps) => any;
|
|
24
|
+
export declare const TabPanel: ({ value, children, hideMode, className, style, ...rest }: TabPanelProps) => any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "@antadesign/anta/jsx-runtime";
|
|
2
|
-
const TabPanel = ({ value, children, hideMode, className, style }) => /* @__PURE__ */ jsx(
|
|
2
|
+
const TabPanel = ({ value, children, hideMode, className, style, ...rest }) => /* @__PURE__ */ jsx(
|
|
3
3
|
"a-tabpanel",
|
|
4
4
|
{
|
|
5
5
|
value,
|
|
@@ -7,6 +7,7 @@ const TabPanel = ({ value, children, hideMode, className, style }) => /* @__PURE
|
|
|
7
7
|
"hide-mode": hideMode === "visibility" ? "visibility" : void 0,
|
|
8
8
|
class: className,
|
|
9
9
|
style,
|
|
10
|
+
...rest,
|
|
10
11
|
children
|
|
11
12
|
}
|
|
12
13
|
);
|
|
@@ -38,8 +38,8 @@ export interface TabOption extends OptionPresentationProps {
|
|
|
38
38
|
* tones color both in every mode. Overrides the strip's `tone` for this tab.
|
|
39
39
|
* @defaultValue inherits the strip's `tone` */
|
|
40
40
|
tone?: "neutral" | "brand" | "info" | "success" | "warning" | "critical" | (string & {});
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
41
|
+
/** Prevent user activation of this tab. A disabled tab can still indicate
|
|
42
|
+
* the current selection. */
|
|
43
43
|
disabled?: boolean;
|
|
44
44
|
/** Tooltip for this tab — a string or any node — shown **only when one of the
|
|
45
45
|
* tab's ellipsizing label parts is truncated** (tabs ellipsize when the strip
|
package/dist/components/Tabs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "@antadesign/anta/jsx-runtime";
|
|
2
2
|
import { useState } from "../jsx-runtime";
|
|
3
|
-
import { nativeStateChange, optionPresentationAttrs, toneStyle, roundStyle, roundAttr, wrapLabel } from "../anta_helpers";
|
|
3
|
+
import { nativeStateChange, neutralToneAttr, optionPresentationAttrs, toneStyle, roundStyle, roundAttr, wrapLabel } from "../anta_helpers";
|
|
4
4
|
import { Tooltip } from "./Tooltip";
|
|
5
5
|
const Tabs = ({
|
|
6
6
|
children,
|
|
@@ -49,6 +49,7 @@ const Tabs = ({
|
|
|
49
49
|
onValueChange?.(e, { value: e.currentTarget?.value ?? null });
|
|
50
50
|
} : void 0;
|
|
51
51
|
const vertical = orientation === "vertical";
|
|
52
|
+
const focusValue = currentValue != null && tabs.some((tab) => tab.value === currentValue) ? currentValue : tabs.find((tab) => !disabled && !tab.disabled)?.value;
|
|
52
53
|
const strip = /* @__PURE__ */ jsx(
|
|
53
54
|
"a-tabs",
|
|
54
55
|
{
|
|
@@ -59,7 +60,7 @@ const Tabs = ({
|
|
|
59
60
|
state: controlled ? value : void 0,
|
|
60
61
|
"default-state": !controlled ? defaultValue : void 0,
|
|
61
62
|
priority: priority && priority !== "primary" ? priority : void 0,
|
|
62
|
-
tone: tone
|
|
63
|
+
tone: neutralToneAttr(tone),
|
|
63
64
|
size: size && size !== "medium" ? size : void 0,
|
|
64
65
|
orientation: vertical ? "vertical" : void 0,
|
|
65
66
|
fill: fill ? "" : void 0,
|
|
@@ -86,7 +87,7 @@ const Tabs = ({
|
|
|
86
87
|
value: p.value,
|
|
87
88
|
tone: p.tone || void 0,
|
|
88
89
|
"aria-disabled": tabDisabled ? "true" : void 0,
|
|
89
|
-
tabIndex:
|
|
90
|
+
tabIndex: p.value === focusValue ? 0 : -1,
|
|
90
91
|
disabled: tabDisabled ? "" : void 0,
|
|
91
92
|
round: roundAttr(round) ?? roundAttr(p.round),
|
|
92
93
|
class: optionClassName,
|
package/dist/components/Tag.d.ts
CHANGED
|
@@ -28,8 +28,7 @@ export interface TagProps extends BaseProps {
|
|
|
28
28
|
* default — both render identically and emit no DOM attribute.
|
|
29
29
|
* @defaultValue medium */
|
|
30
30
|
size?: 'small' | 'medium' | 'large';
|
|
31
|
-
/** Render in all-caps instead of the default normal (mixed) case
|
|
32
|
-
* (uppercase tracks wider than the default body-text letter-spacing). */
|
|
31
|
+
/** Render in all-caps instead of the default normal (mixed) case. */
|
|
33
32
|
allcaps?: boolean;
|
|
34
33
|
/** Leading icon shape. Sits flush before the label, scaled to the pill. */
|
|
35
34
|
icon?: IconShape;
|
|
@@ -59,8 +58,8 @@ export interface TagProps extends BaseProps {
|
|
|
59
58
|
* at 20px), so text is never clipped and the padding tokens can be
|
|
60
59
|
* retuned freely. An edge icon trims ~2px off its side's padding
|
|
61
60
|
* (optical), and icons scale to `--tag-icon-size`.
|
|
62
|
-
* - Color comes from the theme-aware semantic tokens
|
|
63
|
-
*
|
|
61
|
+
* - Color comes from the theme-aware semantic tokens and `light-dark()`; the
|
|
62
|
+
* hairline border and the segment divider both
|
|
64
63
|
* derive from `--tag-text`, so every tone gets a matching edge. A lone
|
|
65
64
|
* `label` is dropped into `<a-tag-value>` by this wrapper so it keeps the
|
|
66
65
|
* default weight; `<a-tag-label>` only renders as the bold key before a
|
|
@@ -69,13 +68,12 @@ export interface TagProps extends BaseProps {
|
|
|
69
68
|
* elements) get a hairline left border per segment after the first; the
|
|
70
69
|
* flex `gap` sits left of the border and `padding-left` balances it.
|
|
71
70
|
* - Custom tones (any non-named `tone`) keep the source hue with
|
|
72
|
-
* lightness/chroma pinned via oklch relative color
|
|
73
|
-
*
|
|
71
|
+
* lightness/chroma pinned via oklch relative color. `light-dark()` selects
|
|
72
|
+
* the matching ramp from the nearest inherited color scheme. The
|
|
74
73
|
* wrapper writes `--tag-tone-source` inline; a typed `attr()` fallback
|
|
75
74
|
* picks up raw `<a-tag tone="…">` on Chrome 133+/Safari 18.2+.
|
|
76
|
-
* - `allcaps` switches on the uppercase transform
|
|
77
|
-
*
|
|
78
|
-
* figures + `ss05` stay on. Each size steps down 1px under `allcaps`
|
|
75
|
+
* - `allcaps` switches on the uppercase transform; tabular figures stay on.
|
|
76
|
+
* Each size steps down 1px under `allcaps`
|
|
79
77
|
* (uppercase reads larger than mixed case at the same px), with height
|
|
80
78
|
* unchanged.
|
|
81
79
|
*
|
package/dist/components/Tag.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from "@antadesign/anta/jsx-runtime";
|
|
2
|
-
import { toneStyle } from "../anta_helpers";
|
|
2
|
+
import { neutralToneAttr, toneStyle } from "../anta_helpers";
|
|
3
3
|
import { Icon } from "./Icon";
|
|
4
4
|
const Tag = ({
|
|
5
5
|
icon,
|
|
@@ -15,7 +15,7 @@ const Tag = ({
|
|
|
15
15
|
children,
|
|
16
16
|
...rest
|
|
17
17
|
}) => {
|
|
18
|
-
const toneAttr = tone
|
|
18
|
+
const toneAttr = neutralToneAttr(tone);
|
|
19
19
|
const computedStyle = toneStyle(toneAttr, "--tag-tone-source", style);
|
|
20
20
|
const hasValue = value != null;
|
|
21
21
|
const isIconOnly = icon != null && label == null && value == null && children == null && iconTrailing == null;
|
package/dist/components/Text.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs } from "@antadesign/anta/jsx-runtime";
|
|
2
|
-
import { toneStyle } from "../anta_helpers";
|
|
2
|
+
import { neutralToneAttr, toneStyle } from "../anta_helpers";
|
|
3
3
|
import { Tooltip } from "./Tooltip";
|
|
4
4
|
const Text = ({ priority, tone, size, inline, truncate, expandable, collapsible, className, style, children, ...rest }) => {
|
|
5
5
|
const n = typeof truncate === "number" ? truncate : truncate ? 1 : null;
|
|
6
6
|
const lineCount = n != null && n >= 1 ? n : null;
|
|
7
|
-
const toneAttr = tone
|
|
7
|
+
const toneAttr = neutralToneAttr(tone);
|
|
8
8
|
const computedStyle = toneStyle(
|
|
9
9
|
toneAttr,
|
|
10
10
|
"--text-tone-source",
|
package/dist/components/Title.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "@antadesign/anta/jsx-runtime";
|
|
2
|
-
import { toneStyle } from "../anta_helpers";
|
|
2
|
+
import { neutralToneAttr, toneStyle } from "../anta_helpers";
|
|
3
3
|
const Title = ({ level = 2, priority, tone, className, style, children, ...rest }) => {
|
|
4
|
-
const toneAttr = tone
|
|
4
|
+
const toneAttr = neutralToneAttr(tone);
|
|
5
5
|
return /* @__PURE__ */ jsx(
|
|
6
6
|
"a-title",
|
|
7
7
|
{
|
|
@@ -10,7 +10,7 @@ export interface TooltipProps extends BaseProps {
|
|
|
10
10
|
/** Which side of the anchor the bubble prefers. Auto-flips to the other
|
|
11
11
|
* side when there isn't room.
|
|
12
12
|
* @defaultValue bottom */
|
|
13
|
-
placement?: 'top' | 'bottom';
|
|
13
|
+
placement?: 'top' | 'bottom' | 'left';
|
|
14
14
|
/** Round the bubble to a 20px radius (matching a round menu). Pass a `number`
|
|
15
15
|
* (px) or a CSS length string for a custom radius. */
|
|
16
16
|
round?: boolean | number | string;
|
|
@@ -17,7 +17,7 @@ const Tooltip = ({
|
|
|
17
17
|
"a-tooltip",
|
|
18
18
|
{
|
|
19
19
|
delay: delay != null ? String(delay) : void 0,
|
|
20
|
-
placement: placement === "top"
|
|
20
|
+
placement: placement === "top" || placement === "left" ? placement : void 0,
|
|
21
21
|
round: roundAttr(round),
|
|
22
22
|
follow: follow ? "" : void 0,
|
|
23
23
|
interactive: interactive ? "" : void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer anta.components{a-select-chevron{display:inline-flex;transition:transform .15s ease}a-select-chevron[open]{transform:rotate(180deg)}a-select-faceted-summary{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-select-field{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;--select-text: var(--text-1);--select-bg: var(--bg-1);--select-border: var(--border-2);--select-hint: var(--text-3);--select-fs: 15px;--select-lh: 20px;font-family:var(--sans-serif);font-size:var(--select-fs);line-height:var(--select-lh)}a-select-field[size=small]{--select-fs: 13px;--select-lh: 16px}a-select-field[size=large]{--select-fs: 17px;--select-lh: 22px}a-select-label{color:var(--text-3);font-weight:500}a-select-hint{display:flex;align-items:start;gap:4px;padding-inline:1px;color:var(--select-hint);font-size:calc(var(--select-fs) - 1px);line-height:var(--select-lh)}a-select-field>a-button{width:100%;min-width:0;box-sizing:border-box;padding-inline:7px;color:var(--select-text);background:var(--select-bg);box-shadow:inset 0 0 0 .5px var(--select-border);font-size:var(--select-fs);line-height:var(--select-lh);font-weight:400;letter-spacing:normal}a-select-field>a-button>a-button-label{flex:1;text-align:start;line-height:var(--select-lh);padding:0}a-select-field>a-button>a-button-label[data-placeholder]{color:var(--text-4)}a-select-field>a-button:focus-visible{box-shadow:inset 0 0 0 1px var(--select-border)}@media(hover:hover)and (pointer:fine){a-select-field>a-button:hover:not([disabled]){box-shadow:inset 0 0 0 1px var(--select-border)}}a-select-leading,a-select-chevron{flex:none;color:var(--text-3)}a-select-leading{display:inline-flex;align-items:center}a-select-field[size=small] a-icon{--icon-size: 14px}a-select-field[size=large] a-icon{--icon-size: 18px}a-select-field[status=critical]{--select-status-source: var(--anta-seed-critical);--select-bg: var(--bg-2-critical);--select-hint: var(--text-2-critical)}a-select-field[status=warning]{--select-status-source: var(--anta-seed-warning);--select-bg: var(--bg-2-warning);--select-hint: var(--text-2-warning)}a-select-field[status=success]{--select-status-source: var(--anta-seed-success);--select-bg: var(--bg-2-success);--select-hint: var(--text-2-success)}a-select-field[status=info]{--select-status-source: var(--anta-seed-info);--select-bg: var(--bg-2-info);--select-hint: var(--text-2-info)}a-select-field[status=brand]{--select-status-source: var(--anta-seed-brand);--select-bg: var(--bg-2-brand);--select-hint: var(--text-2-brand)}a-select-field[status]:not([status=neutral]){--select-border: light-dark(oklch(from var(--select-status-source) .58 c h), oklch(from var(--select-status-source) .52 c h))}a-select-field[status]:not([status=neutral])>a-button{box-shadow:inset 0 0 0 1px var(--select-border)}a-select-field[disabled]{--select-text: var(--text-4);--select-hint: var(--text-5);--select-bg: color-mix(in oklch, var(--text-1) 5%, transparent);--select-border: var(--border-2)}a-select-field[disabled]>a-select-label{color:var(--text-4)}a-select-chevron{display:inline-flex;transition:transform .15s ease}a-select-chevron[open]{transform:rotate(180deg)}a-select-faceted-summary{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer anta.components{a-avatar{--avatar-size: 44px;--avatar-radius: 22%;--avatar-placeholder-bg: var(--bg-3);--avatar-badge-ratio: .24;--avatar-badge-size: calc(var(--avatar-size) * var(--avatar-badge-ratio));--avatar-badge-inset: 0px;--avatar-badge-gap: 2px;--avatar-badge-mask: none;--avatar-badge-tone-source: var(--anta-seed-neutral);--avatar-badge-chroma: .17;--avatar-badge-color: oklch(from var(--avatar-badge-tone-source) .62 var(--avatar-badge-chroma) h);display:inline-block;inline-size:var(--avatar-size);block-size:var(--avatar-size);vertical-align:middle}a-avatar[round]{--avatar-radius: var(--avatar-round, 50%);--avatar-badge-inset: calc(var(--avatar-size) * .03);@supports (border-radius: attr(probe type(<length>),1px)){--avatar-round: attr(round type(<length>))}}a-avatar[size=small]{--avatar-size: 32px;--avatar-badge-gap: 1.5px}a-avatar[size=large]{--avatar-size: 64px;--avatar-badge-gap: 2.5px}a-avatar[badge]:not([badge=""],[badge=none]){--avatar-badge-mask: radial-gradient( circle calc(var(--avatar-badge-size) / 2 + var(--avatar-badge-gap)) at calc(100% - var(--avatar-badge-inset) - var(--avatar-badge-size) / 2) calc(100% - var(--avatar-badge-inset) - var(--avatar-badge-size) / 2), transparent 99%, #000 100% )}a-avatar:not(:defined){display:inline-block;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:var(--avatar-radius);background:var(--avatar-placeholder-bg);vertical-align:middle}a-avatar[badge=neutral]{--avatar-badge-chroma: .005}a-avatar[badge=brand]{--avatar-badge-tone-source: var(--anta-seed-brand)}a-avatar[badge=info]{--avatar-badge-tone-source: var(--anta-seed-info)}a-avatar[badge=success]{--avatar-badge-tone-source: var(--anta-seed-success)}a-avatar[badge=warning]{--avatar-badge-tone-source: var(--anta-seed-warning)}a-avatar[badge=critical]{--avatar-badge-tone-source: var(--anta-seed-critical)}@supports (color: attr(badge type(<color>),transparent)){a-avatar[badge]:not([badge=""],[badge=neutral],[badge=brand],[badge=info],[badge=success],[badge=warning],[badge=critical]){--avatar-badge-tone-source: attr(badge type(<color>), transparent)}}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-avatar{--avatar-size: 44px;--avatar-radius: 22%;--avatar-placeholder-bg: var(--bg-3);--avatar-badge-ratio: .24;--avatar-badge-size: calc(var(--avatar-size) * var(--avatar-badge-ratio));--avatar-badge-inset: 0px;--avatar-badge-gap: 2px;--avatar-badge-mask: none;--avatar-badge-tone-source: var(--anta-seed-neutral);--avatar-badge-chroma: .17;--avatar-badge-color: light-dark( oklch(from var(--avatar-badge-tone-source) .62 var(--avatar-badge-chroma) h), oklch(from var(--avatar-badge-tone-source) .68 var(--avatar-badge-chroma) h) );display:inline-block;inline-size:var(--avatar-size);block-size:var(--avatar-size);vertical-align:middle}a-avatar[round]{--avatar-radius: var(--avatar-round, 50%);--avatar-badge-inset: calc(var(--avatar-size) * .03);@supports (border-radius: attr(probe type(<length>),1px)){--avatar-round: attr(round type(<length>))}}a-avatar[size=small]{--avatar-size: 32px;--avatar-badge-gap: 1.5px}a-avatar[size=large]{--avatar-size: 64px;--avatar-badge-gap: 2.5px}a-avatar[badge]:not([badge=""],[badge=none]){--avatar-badge-mask: radial-gradient( circle calc(var(--avatar-badge-size) / 2 + var(--avatar-badge-gap)) at calc(100% - var(--avatar-badge-inset) - var(--avatar-badge-size) / 2) calc(100% - var(--avatar-badge-inset) - var(--avatar-badge-size) / 2), transparent 99%, #000 100% )}a-avatar:not(:defined){display:inline-block;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:var(--avatar-radius);background:var(--avatar-placeholder-bg);vertical-align:middle}a-avatar[badge=neutral]{--avatar-badge-chroma: .005}a-avatar[badge=brand]{--avatar-badge-tone-source: var(--anta-seed-brand)}a-avatar[badge=info]{--avatar-badge-tone-source: var(--anta-seed-info)}a-avatar[badge=success]{--avatar-badge-tone-source: var(--anta-seed-success)}a-avatar[badge=warning]{--avatar-badge-tone-source: var(--anta-seed-warning)}a-avatar[badge=critical]{--avatar-badge-tone-source: var(--anta-seed-critical)}@supports (color: attr(badge type(<color>),transparent)){a-avatar[badge]:not([badge=""],[badge=neutral],[badge=brand],[badge=info],[badge=success],[badge=warning],[badge=critical]){--avatar-badge-tone-source: attr(badge type(<color>), transparent)}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer anta.components{a-banner{--banner-bg: var(--bg-4);--banner-border: var(--border-4);--banner-text: var(--text-2);display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:4px 1ch;position:relative;box-sizing:border-box;width:100%;min-height:40px;padding-block:6px;padding-inline:16px 48px;color:var(--banner-text);background:var(--banner-bg);border:0 solid var(--banner-border);border-radius:0;overflow:clip;overflow-clip-margin:3px;interpolate-size:allow-keywords;transition:opacity .16s ease,block-size .2s ease,padding-block .2s ease,border-block-width .2s ease,display .2s allow-discrete}a-banner[align=center]{justify-content:center;padding-inline:48px}a-banner[round]{border-radius:var(--banner-round, 999px);@supports (border-radius: attr(probe type(<length>),1px)){--banner-round: attr(round type(<length>))}}a-banner [slot=close] a-button,a-banner a-button[slot=close]{height:100%;width:40px}a-banner-message{font-size:14px;line-height:20px;font-weight:475;text-align:start}a-banner[align=center] a-banner-message{text-align:center}a-banner[tone=brand]{--banner-bg: var(--bg-4-brand);--banner-border: var(--border-4-brand);--banner-text: var(--text-2-brand)}a-banner[tone=info]{--banner-bg: var(--bg-4-info);--banner-border: var(--border-4-info);--banner-text: var(--text-2-info)}a-banner[tone=success]{--banner-bg: var(--bg-4-success);--banner-border: var(--border-4-success);--banner-text: var(--text-2-success)}a-banner[tone=warning]{--banner-bg: var(--bg-4-warning);--banner-border: var(--border-4-warning);--banner-text: var(--text-2-warning)}a-banner[tone=critical]{--banner-bg: var(--bg-4-critical);--banner-border: var(--border-4-critical);--banner-text: var(--text-2-critical)}a-banner[tone]:not([tone=""],[tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--banner-tone-source: currentColor;--banner-text: oklch(from var(--banner-tone-source) .5 .125 h)
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-banner{--banner-bg: var(--bg-4);--banner-border: var(--border-4);--banner-text: var(--text-2);display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:4px 1ch;position:relative;box-sizing:border-box;width:100%;min-height:40px;padding-block:6px;padding-inline:16px 48px;color:var(--banner-text);background:var(--banner-bg);border:0 solid var(--banner-border);border-radius:0;overflow:clip;overflow-clip-margin:3px;interpolate-size:allow-keywords;transition:opacity .16s ease,block-size .2s ease,padding-block .2s ease,border-block-width .2s ease,display .2s allow-discrete}a-banner[align=center]{justify-content:center;padding-inline:48px}a-banner[round]{border-radius:var(--banner-round, 999px);@supports (border-radius: attr(probe type(<length>),1px)){--banner-round: attr(round type(<length>))}}a-banner [slot=close] a-button,a-banner a-button[slot=close]{height:100%;width:40px}a-banner-message{font-size:14px;line-height:20px;font-weight:475;text-align:start}a-banner[align=center] a-banner-message{text-align:center}a-banner[tone=brand]{--banner-bg: var(--bg-4-brand);--banner-border: var(--border-4-brand);--banner-text: var(--text-2-brand)}a-banner[tone=info]{--banner-bg: var(--bg-4-info);--banner-border: var(--border-4-info);--banner-text: var(--text-2-info)}a-banner[tone=success]{--banner-bg: var(--bg-4-success);--banner-border: var(--border-4-success);--banner-text: var(--text-2-success)}a-banner[tone=warning]{--banner-bg: var(--bg-4-warning);--banner-border: var(--border-4-warning);--banner-text: var(--text-2-warning)}a-banner[tone=critical]{--banner-bg: var(--bg-4-critical);--banner-border: var(--border-4-critical);--banner-text: var(--text-2-critical)}a-banner[tone]:not([tone=""],[tone=neutral],[tone=brand],[tone=info],[tone=success],[tone=warning],[tone=critical]){--banner-tone-source: currentColor;--banner-text: light-dark( oklch(from var(--banner-tone-source) .5 .125 h), oklch(from var(--banner-tone-source) .77 .11 h) );--banner-bg: light-dark( oklch(from var(--banner-tone-source) .955 .02 h), oklch(from var(--banner-tone-source) .185 .05 h) );--banner-border: light-dark( oklch(from var(--banner-tone-source) .9 .04 h), oklch(from var(--banner-tone-source) .26 .06 h) );@supports (color: attr(probe type(<color>),red)){--banner-tone-source: attr(tone type(<color>), currentColor)}}a-banner:not(:defined){opacity:0}a-banner[state=closed],a-banner[default-state=closed],a-banner:state(closed){display:none;block-size:0;min-block-size:0;padding-block:0;border-block-width:0;opacity:0}@media(forced-colors:active){a-banner{border-width:1px;border-color:CanvasText}}@media(prefers-reduced-motion:reduce){a-banner{transition:none}}}
|
package/dist/elements/a-box.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer anta.components{a-box{display:block;min-width:0}a-box[display=inline-block]{display:inline-block}a-box[display=flex]{display:flex}a-box[display=inline-flex]{display:inline-flex}a-box[display=grid]{display:grid}a-box[display=inline-grid]{display:inline-grid}a-box[gap]{gap:var(--box-gap, normal);@supports (border-radius: attr(probe type(<length>),1px)){--box-gap: attr(gap type(<length>))}}a-box[round]{border-radius:var(--box-round, 999px);@supports (border-radius: attr(probe type(<length>),1px)){--box-round: attr(round type(<length>))}}a-box[fade]{--box-fade-size: 24px;--box-fade-x: linear-gradient(transparent, transparent);--box-fade-y: linear-gradient(transparent, transparent);--box-fade-to-start: to left;--box-fade-to-end: to right}a-box[fade]:is(:state(hidden-start-x),:state(hidden-end-x),:state(hidden-start-y),:state(hidden-end-y)){mask-image:linear-gradient(#000,#000),var(--box-fade-x),var(--box-fade-y);mask-clip:border-box,padding-box,padding-box;mask-origin:border-box,padding-box,padding-box;mask-composite:exclude,add,add;mask-repeat:no-repeat;mask-size:100% 100%}a-box[fade][fade-size]{--box-fade-size: 24px;@supports (border-radius: attr(probe type(<length>),1px)){--box-fade-size: attr(fade-size type(<length>), 24px)}}a-box[fade]:dir(rtl){--box-fade-to-start: to right;--box-fade-to-end: to left}a-box[fade]:state(hidden-end-x){--box-fade-x: linear-gradient(var(--box-fade-to-end), transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-x){--box-fade-x: linear-gradient(var(--box-fade-to-start), transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-x):state(hidden-end-x){--box-fade-x: linear-gradient( to right, black, transparent var(--box-fade-size), transparent calc(100% - var(--box-fade-size)), black )}a-box[fade]:state(hidden-end-y){--box-fade-y: linear-gradient(to bottom, transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-y){--box-fade-y: linear-gradient(to top, transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-y):state(hidden-end-y){--box-fade-y: linear-gradient( to bottom, black, transparent var(--box-fade-size), transparent calc(100% - var(--box-fade-size)), black )}}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-box{display:block;min-width:0}a-box[display=inline-block]{display:inline-block}a-box[display=flex]{display:flex}a-box[display=inline-flex]{display:inline-flex}a-box[display=grid]{display:grid}a-box[display=inline-grid]{display:inline-grid}a-box[gap]{gap:var(--box-gap, normal);@supports (border-radius: attr(probe type(<length>),1px)){--box-gap: attr(gap type(<length>))}}a-box[padding]{padding:var(--box-padding, 0px);@supports (padding: attr(padding type(*))){--box-padding: attr(padding type(*), 0px)}}a-box[margin]{margin:var(--box-margin, 0px);@supports (margin: attr(margin type(*))){--box-margin: attr(margin type(*), 0px)}}a-box[round]{border-radius:var(--box-round, 999px);@supports (border-radius: attr(probe type(<length>),1px)){--box-round: attr(round type(<length>))}}a-box[fade]{--box-fade-size: 24px;--box-fade-x: linear-gradient(transparent, transparent);--box-fade-y: linear-gradient(transparent, transparent);--box-fade-to-start: to left;--box-fade-to-end: to right}a-box[fade]:is(:state(hidden-start-x),:state(hidden-end-x),:state(hidden-start-y),:state(hidden-end-y)){mask-image:linear-gradient(#000,#000),var(--box-fade-x),var(--box-fade-y);mask-clip:border-box,padding-box,padding-box;mask-origin:border-box,padding-box,padding-box;mask-composite:exclude,add,add;mask-repeat:no-repeat;mask-size:100% 100%}a-box[fade][fade-size]{--box-fade-size: 24px;@supports (border-radius: attr(probe type(<length>),1px)){--box-fade-size: attr(fade-size type(<length>), 24px)}}a-box[fade]:dir(rtl){--box-fade-to-start: to right;--box-fade-to-end: to left}a-box[fade]:state(hidden-end-x){--box-fade-x: linear-gradient(var(--box-fade-to-end), transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-x){--box-fade-x: linear-gradient(var(--box-fade-to-start), transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-x):state(hidden-end-x){--box-fade-x: linear-gradient( to right, black, transparent var(--box-fade-size), transparent calc(100% - var(--box-fade-size)), black )}a-box[fade]:state(hidden-end-y){--box-fade-y: linear-gradient(to bottom, transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-y){--box-fade-y: linear-gradient(to top, transparent calc(100% - var(--box-fade-size)), black)}a-box[fade]:state(hidden-start-y):state(hidden-end-y){--box-fade-y: linear-gradient( to bottom, black, transparent var(--box-fade-size), transparent calc(100% - var(--box-fade-size)), black )}}
|