@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
|
@@ -12,9 +12,9 @@ declare global {
|
|
|
12
12
|
* chevron) is slotted light DOM, styled entirely from `a-menu-item.css`.
|
|
13
13
|
* The element carries almost no logic — the parent `<a-menu>` owns
|
|
14
14
|
* click delegation, keyboard navigation, and the close contract. This
|
|
15
|
-
* class
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* class owns the active cursor state and ensures Enter / Space on a focused
|
|
16
|
+
* item synthesizes a click (the single activation path through the menu's
|
|
17
|
+
* click delegation).
|
|
18
18
|
*
|
|
19
19
|
* ARIA (`role="menuitem"`, `tabindex`, `aria-haspopup` on submenu parents) is
|
|
20
20
|
* added by the `MenuItem` JSX wrapper, never here — the element must stay
|
|
@@ -61,6 +61,8 @@ export declare class AMenuItemElement extends HTMLElementBase {
|
|
|
61
61
|
* (`<a data-anta-menu-item href>`) that `MenuItem` renders when given an `href`.
|
|
62
62
|
* Used for hit-testing (Enter/Space activation, arrow nav, close-on-select). */
|
|
63
63
|
export declare const MENU_ITEM_SELECTOR = "a-menu-item, a[data-anta-menu-item]";
|
|
64
|
+
/** True for a custom menu row across independently compiled builds and realms. */
|
|
65
|
+
export declare function isCustomMenuItem(el: EventTarget | null | undefined): el is AMenuItemElement;
|
|
64
66
|
/** True for either menu-item shape (see `MENU_ITEM_SELECTOR`). Narrows an
|
|
65
67
|
* `EventTarget` / focused node to the row element. */
|
|
66
68
|
export declare function isMenuItemEl(el: EventTarget | null | undefined): el is HTMLElement;
|
|
@@ -25,8 +25,11 @@ class AMenuItemElement extends HTMLElementBase {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
const MENU_ITEM_SELECTOR = "a-menu-item, a[data-anta-menu-item]";
|
|
28
|
+
function isCustomMenuItem(el) {
|
|
29
|
+
return isMenuItemEl(el) && el.localName === "a-menu-item";
|
|
30
|
+
}
|
|
28
31
|
function isMenuItemEl(el) {
|
|
29
|
-
return el
|
|
32
|
+
return !!el && el.nodeType === 1 && el.matches(MENU_ITEM_SELECTOR);
|
|
30
33
|
}
|
|
31
34
|
function ensureMenuItemKeyListener(doc) {
|
|
32
35
|
if (doc.hasKeyListenerForAMenuItem) return;
|
|
@@ -54,6 +57,7 @@ export {
|
|
|
54
57
|
AMenuItemElement,
|
|
55
58
|
MENU_ITEM_SELECTOR,
|
|
56
59
|
ensureMenuItemKeyListener,
|
|
60
|
+
isCustomMenuItem,
|
|
57
61
|
isMenuItemEl,
|
|
58
62
|
register_a_menu_item
|
|
59
63
|
};
|
package/dist/elements/a-menu.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-menu:not(:defined){display:none}a-menu{--menu-bg: light-dark( color-mix(in oklch, var(--bg-1) 90%, transparent), color-mix(in oklch, var(--bg-1) 78%, transparent) );--menu-radius: var(--radius-md, 8px);--menu-border: 1px solid var(--border-3);--menu-shadow: 0 2px 6px color-mix(in oklch, var(--text-1) 8%, transparent), 0 8px 24px color-mix(in oklch, var(--text-1) 10%, transparent);--menu-padding: 4px;--menu-min-width: 88px;--menu-backdrop-filter: blur(20px);--menu-width-duration: .16s}@media(prefers-reduced-motion:reduce){a-menu{--menu-width-duration: 0}}a-menu[round]{--menu-radius: 20px;@supports (border-radius: attr(probe type(<length>),1px)){--menu-radius: attr(round type(<length>), 20px)}}.dark a-menu{--menu-shadow: 0 2px 8px color-mix(in oklch, black 50%, transparent), 0 12px 32px color-mix(in oklch, black 40%, transparent), inset 0 0 0 1px color-mix(in oklch, white 8%, transparent)}}
|
|
1
|
+
@layer base,anta,components,utilities;@layer anta.reset,anta.components,anta.theme;@layer anta.components{a-menu:not(:defined){display:none}a-menu{--menu-bg: light-dark( color-mix(in oklch, var(--bg-1) 90%, transparent), color-mix(in oklch, var(--bg-1) 78%, transparent) );--menu-round: initial;--menu-radius: var(--radius-md, 8px);--menu-border: 1px solid var(--border-3);--menu-shadow: 0 2px 6px color-mix(in oklch, var(--text-1) 8%, transparent), 0 8px 24px color-mix(in oklch, var(--text-1) 10%, transparent);--menu-padding: 4px;--menu-item-radius: max(0px, calc(var(--menu-radius) - var(--menu-padding)));--menu-min-width: 88px;--menu-backdrop-filter: blur(20px);--menu-width-duration: .16s;--_anchor-width: initial;--_menu-max-height: initial;--_menu-fade-top: initial;--_menu-fade-bottom: initial;--_menu-gap-top: initial;display:contents}a-menu::part(menu){position:fixed;inset:0 auto auto 0;margin:0;padding:0;box-sizing:border-box;flex-direction:column;min-width:max(var(--menu-min-width, 88px),var(--_anchor-width, 0px));max-width:calc(100vw - 8px);max-height:var(--_menu-max-height, calc(100dvh - 8px) );overflow:hidden;background:var(--menu-bg, Canvas);color:var(--text-2, CanvasText);border:var(--menu-border, 1px solid);border-radius:var(--menu-radius, 8px);box-shadow:var(--menu-shadow, 0 8px 24px color-mix(in oklch, black 20%, transparent));-webkit-backdrop-filter:var(--menu-backdrop-filter, blur(20px));backdrop-filter:var(--menu-backdrop-filter, blur(20px));outline:none;opacity:0;translate:0 -4px;transition:opacity .14s ease-out,translate .14s ease-out,width var(--menu-width-duration, .16s) ease,display .14s allow-discrete,overlay .14s allow-discrete}a-menu::part(menu):popover-open{display:flex;opacity:1;translate:0 0;transition:opacity .1s ease-out,translate .1s ease-out,width var(--menu-width-duration, .16s) ease,display .1s allow-discrete,overlay .1s allow-discrete}@starting-style{a-menu::part(menu):popover-open{opacity:0;translate:0 -4px}}a-menu::part(header),a-menu::part(footer){display:block;flex:none}:where(a-menu>:is(a-menu-header,a-select-header)[slot=header]),:where(a-menu>:is(a-menu-footer,a-select-footer)[slot=footer]){display:block;padding:var(--menu-padding, 4px)}a-menu::part(scroll){flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:var(--menu-padding, 4px);scroll-padding-block:var(--menu-padding, 4px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent var(--_menu-gap-top, 0px),#000 var(--_menu-fade-top, 0px),#000 calc(100% - var(--_menu-fade-bottom, 0px)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,transparent var(--_menu-gap-top, 0px),#000 var(--_menu-fade-top, 0px),#000 calc(100% - var(--_menu-fade-bottom, 0px)),transparent 100%)}@media(prefers-reduced-motion:reduce){a-menu{--menu-width-duration: 0}}a-menu[round]{--menu-radius: var(--menu-round, 20px);@supports (border-radius: attr(probe type(<length>),1px)){--menu-radius: var(--menu-round, attr(round type(<length>), 20px))}}a-menu[round] a-menu:not([round]){--menu-radius: inherit}.dark a-menu{--menu-shadow: 0 2px 8px color-mix(in oklch, black 50%, transparent), 0 12px 32px color-mix(in oklch, black 40%, transparent), inset 0 0 0 1px color-mix(in oklch, white 8%, transparent)}}
|
|
@@ -14,7 +14,7 @@ type MenuState = 'open' | 'closed';
|
|
|
14
14
|
* Styling notes (`a-menu.css` ships comment-free):
|
|
15
15
|
* - `a-menu:not(:defined)` is hidden — before upgrade the host is an unknown
|
|
16
16
|
* inline element and its light-DOM items would flash in the page. Once
|
|
17
|
-
* defined,
|
|
17
|
+
* defined, external `display: contents` governs and content
|
|
18
18
|
* renders only inside the popover surface via the slot.
|
|
19
19
|
* - Only the surface "chrome" is tokenized (`--menu-*`): it lives inside the
|
|
20
20
|
* shadow popover, unreachable from plain consumer CSS; the custom
|
|
@@ -99,7 +99,7 @@ export declare class AMenuElement extends HTMLElementBase {
|
|
|
99
99
|
private scrollItemIntoView;
|
|
100
100
|
/** Fade the scrolling body's content into the top / bottom edges — but only on the
|
|
101
101
|
* side that actually has more to scroll, so a short (non-scrolling) menu and the
|
|
102
|
-
* true top / bottom stay crisp. Drives the
|
|
102
|
+
* true top / bottom stay crisp. Drives the private fade/gap properties the
|
|
103
103
|
* `.scroll` mask reads; runs on scroll and after every (re)position.
|
|
104
104
|
* Shadow-internal only. */
|
|
105
105
|
private updateScrollFade;
|
|
@@ -157,11 +157,8 @@ export declare class AMenuElement extends HTMLElementBase {
|
|
|
157
157
|
/** Apply OPEN to the DOM (no event) — used by uncontrolled intent and by the
|
|
158
158
|
* controlled `state` sync. */
|
|
159
159
|
private show;
|
|
160
|
-
/**
|
|
161
|
-
*
|
|
162
|
-
* match. `childList` only — an item toggling its own `selected` (multi-select)
|
|
163
|
-
* mutates deep in its subtree, not this menu's direct children, so it won't
|
|
164
|
-
* spuriously reset the cursor. */
|
|
160
|
+
/** Reconcile changed results while filtering. Slotted filters observe direct
|
|
161
|
+
* children only; autocomplete also observes row content and disabled changes. */
|
|
165
162
|
private startComboObserver;
|
|
166
163
|
/** Apply CLOSE without notifying this menu's owner. Notify nested menus so
|
|
167
164
|
* their controlled state follows the closing parent. */
|
|
@@ -224,6 +221,7 @@ export declare class AMenuElement extends HTMLElementBase {
|
|
|
224
221
|
teardownListeners(): void;
|
|
225
222
|
private scheduleOpen;
|
|
226
223
|
private scheduleClose;
|
|
224
|
+
private holdHoverClose;
|
|
227
225
|
private cancelOpenTimer;
|
|
228
226
|
private cancelCloseTimer;
|
|
229
227
|
}
|