@duyluonganduin/acl-web-components 0.0.13 → 0.0.15

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/dist/jsx.d.ts CHANGED
@@ -313,8 +313,12 @@ declare module 'react' {
313
313
  /** Cover the full viewport; hides overlay and removes border-radius */
314
314
  fullscreen?: boolean | string
315
315
  /** Fired when the modal should close (X, overlay click, or anduin-modal-close).
316
- * Import MODAL_CLOSE_EVENT for the event name string.
317
- * @example ref.current.addEventListener(MODAL_CLOSE_EVENT, () => setOpen(false)) */
316
+ * Respond by setting open=false exit animation plays automatically.
317
+ * @example ref.current.addEventListener('anduin-close', () => setOpen(false))
318
+ *
319
+ * Fired after the exit animation completes: 'anduin-after-close'
320
+ * Use this to safely clear data / unmount when using conditional rendering.
321
+ * @example ref.current.addEventListener('anduin-after-close', () => setData(null)) */
318
322
  }
319
323
 
320
324
  // ── anduin-modal-close ────────────────────────────────────────────────
@@ -352,6 +356,61 @@ declare module 'react' {
352
356
  position?: string
353
357
  }
354
358
 
359
+ // ── anduin-dropdown ───────────────────────────────────────────────────
360
+ 'anduin-dropdown': Base & {
361
+ /** Currently selected value */
362
+ value?: string
363
+ /** Placeholder shown when no value is selected */
364
+ placeholder?: string
365
+ /** Icon name shown in the trigger button */
366
+ icon?: string
367
+ /** Show search input in the panel (default: true) */
368
+ searchable?: boolean
369
+ /** Disables the dropdown */
370
+ disabled?: boolean
371
+ /** Panel placement relative to trigger (default: 'bottom-start') */
372
+ placement?: 'bottom-start' | 'bottom-end' | 'bottom'
373
+ /** Visual style — 'filled' | 'outlined' | 'plain' (default: 'filled') */
374
+ appearance?: 'filled' | 'outlined' | 'plain'
375
+ /** Size — 'small' (24px) | 'default' (32px) */
376
+ size?: 'small' | 'default'
377
+ /** Color variant — matches button variants (default: 'gray0') */
378
+ variant?: 'gray0' | 'gray9' | 'primary' | 'danger' | 'success' | 'warning'
379
+ /** Stretch trigger to full container width */
380
+ 'full-width'?: boolean
381
+ /** Fired when selection changes — detail: string (selected value) */
382
+ onChange?: (e: CustomEvent<string>) => void
383
+ }
384
+
385
+ // ── anduin-switcher ───────────────────────────────────────────────────
386
+ 'anduin-switcher': Base & {
387
+ /** Whether the switcher is on */
388
+ checked?: boolean
389
+ /** Disables interaction */
390
+ disabled?: boolean
391
+ /** Fired when toggled — detail: boolean */
392
+ onChange?: (e: CustomEvent<boolean>) => void
393
+ }
394
+
395
+ // ── anduin-drawer ─────────────────────────────────────────────────────
396
+ 'anduin-drawer': Base & {
397
+ /** Whether the drawer is open */
398
+ open?: boolean | string
399
+ /** Drawer title text */
400
+ heading?: string
401
+ /** Initial width preset: '320' | '360' | '400' | '640', or any px value (default: '320') */
402
+ 'default-width'?: '320' | '360' | '400' | '640' | string
403
+ /** Hide the header (title + close button) */
404
+ 'hide-header'?: boolean | string
405
+ /** Hide the footer slot container */
406
+ 'hide-footer'?: boolean | string
407
+ /** When true, clicks outside the drawer pass through to underlying elements instead of dismissing (default: false) */
408
+ 'allow-interact-outside'?: boolean | string
409
+ }
410
+
411
+ // ── anduin-drawer-close ───────────────────────────────────────────────
412
+ 'anduin-drawer-close': Base
413
+
355
414
  // ── anduin-file-icon ──────────────────────────────────────────────────
356
415
  'anduin-file-icon': Base & {
357
416
  /** 'archive' | 'audio' | 'blueprint' | 'box' | 'csv' | 'excel' | 'folder'
package/dist/react.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("@lit/react"),e=require("./anduin-toast-B-9dgTkL.cjs"),a=t.createComponent({react:n,tagName:"anduin-spinner",elementClass:e.AnduinSpinner}),o=t.createComponent({react:n,tagName:"anduin-icon",elementClass:e.AnduinIcon}),s=t.createComponent({react:n,tagName:"anduin-badge",elementClass:e.AnduinBadge}),l=t.createComponent({react:n,tagName:"anduin-badge-count",elementClass:e.AnduinBadgeCount}),i=t.createComponent({react:n,tagName:"anduin-button",elementClass:e.AnduinButton}),C=t.createComponent({react:n,tagName:"anduin-callout",elementClass:e.AnduinCallout}),r=t.createComponent({react:n,tagName:"anduin-divider",elementClass:e.AnduinDivider}),c=t.createComponent({react:n,tagName:"anduin-dot",elementClass:e.AnduinDot}),d=t.createComponent({react:n,tagName:"anduin-progress",elementClass:e.AnduinProgress}),m=t.createComponent({react:n,tagName:"anduin-skeleton",elementClass:e.AnduinSkeleton}),u=t.createComponent({react:n,tagName:"anduin-loading-state",elementClass:e.AnduinLoadingState}),g=t.createComponent({react:n,tagName:"anduin-field",elementClass:e.AnduinField}),A=t.createComponent({react:n,tagName:"anduin-field-label",elementClass:e.AnduinFieldLabel}),p=t.createComponent({react:n,tagName:"anduin-field-description",elementClass:e.AnduinFieldDescription}),N=t.createComponent({react:n,tagName:"anduin-field-error",elementClass:e.AnduinFieldError}),T=t.createComponent({react:n,tagName:"anduin-field-group",elementClass:e.AnduinFieldGroup}),E=t.createComponent({react:n,tagName:"anduin-radio",elementClass:e.AnduinRadio,events:{onChange:e.RADIO_CHANGE}}),_=t.createComponent({react:n,tagName:"anduin-radio-group",elementClass:e.AnduinRadioGroup,events:{onChange:e.RADIO_GROUP_CHANGE}}),L=t.createComponent({react:n,tagName:"anduin-checkbox",elementClass:e.AnduinCheckbox,events:{onChange:e.CHECKBOX_CHANGE}}),I=t.createComponent({react:n,tagName:"anduin-input",elementClass:e.AnduinInput,events:{onChange:e.INPUT_CHANGE,onClear:e.INPUT_CLEAR}}),G=t.createComponent({react:n,tagName:"anduin-textarea",elementClass:e.AnduinTextarea,events:{onChange:e.TEXTAREA_CHANGE}}),b=t.createComponent({react:n,tagName:"anduin-popover",elementClass:e.AnduinPopover}),v=t.createComponent({react:n,tagName:"anduin-popover-close",elementClass:e.AnduinPopoverClose}),O=t.createComponent({react:n,tagName:"anduin-menu",elementClass:e.AnduinMenu}),M=t.createComponent({react:n,tagName:"anduin-menu-item",elementClass:e.AnduinMenuItem,events:{onClick:e.MENU_ITEM_CLICK}}),R=t.createComponent({react:n,tagName:"anduin-modal",elementClass:e.AnduinModal,events:{onClose:e.MODAL_CLOSE_EVENT}}),H=t.createComponent({react:n,tagName:"anduin-modal-close",elementClass:e.AnduinModalClose}),S=t.createComponent({react:n,tagName:"anduin-tabs",elementClass:e.AnduinTabs,events:{onChange:e.TAB_CHANGE}}),P=t.createComponent({react:n,tagName:"anduin-tabs-list",elementClass:e.AnduinTabsList}),D=t.createComponent({react:n,tagName:"anduin-tab-trigger",elementClass:e.AnduinTabTrigger}),F=t.createComponent({react:n,tagName:"anduin-tab-content",elementClass:e.AnduinTabContent}),B=t.createComponent({react:n,tagName:"anduin-tag",elementClass:e.AnduinTag}),K=t.createComponent({react:n,tagName:"anduin-tag-close",elementClass:e.AnduinTagClose,events:{onClick:e.TAG_CLOSE_CLICK}}),U=t.createComponent({react:n,tagName:"anduin-tooltip",elementClass:e.AnduinTooltip}),k=t.createComponent({react:n,tagName:"anduin-tooltip-trigger",elementClass:e.AnduinTooltipTrigger}),h=t.createComponent({react:n,tagName:"anduin-tooltip-content",elementClass:e.AnduinTooltipContent}),W=t.createComponent({react:n,tagName:"anduin-well",elementClass:e.AnduinWell}),x=t.createComponent({react:n,tagName:"anduin-well-close",elementClass:e.AnduinWellClose,events:{onClick:e.WELL_CLOSE_CLICK}}),f=t.createComponent({react:n,tagName:"anduin-avatar",elementClass:e.AnduinAvatar}),X=t.createComponent({react:n,tagName:"anduin-file-icon",elementClass:e.AnduinFileIcon}),q=t.createComponent({react:n,tagName:"anduin-toast",elementClass:e.AnduinToast}),V=t.createComponent({react:n,tagName:"anduin-toaster",elementClass:e.AnduinToaster});exports.CHECKBOX_CHANGE=e.CHECKBOX_CHANGE;exports.INPUT_CHANGE=e.INPUT_CHANGE;exports.INPUT_CLEAR=e.INPUT_CLEAR;exports.MENU_ITEM_CLICK=e.MENU_ITEM_CLICK;exports.MODAL_CLOSE_EVENT=e.MODAL_CLOSE_EVENT;exports.RADIO_CHANGE=e.RADIO_CHANGE;exports.RADIO_GROUP_CHANGE=e.RADIO_GROUP_CHANGE;exports.TAB_CHANGE=e.TAB_CHANGE;exports.TAG_CLOSE_CLICK=e.TAG_CLOSE_CLICK;exports.TEXTAREA_CHANGE=e.TEXTAREA_CHANGE;exports.WELL_CLOSE_CLICK=e.WELL_CLOSE_CLICK;exports.Avatar=f;exports.Badge=s;exports.BadgeCount=l;exports.Button=i;exports.Callout=C;exports.Checkbox=L;exports.Divider=r;exports.Dot=c;exports.Field=g;exports.FieldDescription=p;exports.FieldError=N;exports.FieldGroup=T;exports.FieldLabel=A;exports.FileIcon=X;exports.Icon=o;exports.Input=I;exports.LoadingState=u;exports.Menu=O;exports.MenuItem=M;exports.Modal=R;exports.ModalClose=H;exports.Popover=b;exports.PopoverClose=v;exports.Progress=d;exports.Radio=E;exports.RadioGroup=_;exports.Skeleton=m;exports.Spinner=a;exports.TabContent=F;exports.TabTrigger=D;exports.Tabs=S;exports.TabsList=P;exports.Tag=B;exports.TagClose=K;exports.Textarea=G;exports.Toast=q;exports.Toaster=V;exports.Tooltip=U;exports.TooltipContent=h;exports.TooltipTrigger=k;exports.Well=W;exports.WellClose=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("@lit/react"),e=require("./anduin-drawer-BwC5mziU.cjs"),a=t.createComponent({react:n,tagName:"anduin-spinner",elementClass:e.AnduinSpinner}),o=t.createComponent({react:n,tagName:"anduin-icon",elementClass:e.AnduinIcon}),s=t.createComponent({react:n,tagName:"anduin-badge",elementClass:e.AnduinBadge}),r=t.createComponent({react:n,tagName:"anduin-badge-count",elementClass:e.AnduinBadgeCount}),C=t.createComponent({react:n,tagName:"anduin-button",elementClass:e.AnduinButton}),l=t.createComponent({react:n,tagName:"anduin-callout",elementClass:e.AnduinCallout}),i=t.createComponent({react:n,tagName:"anduin-divider",elementClass:e.AnduinDivider}),c=t.createComponent({react:n,tagName:"anduin-dot",elementClass:e.AnduinDot}),d=t.createComponent({react:n,tagName:"anduin-progress",elementClass:e.AnduinProgress}),m=t.createComponent({react:n,tagName:"anduin-skeleton",elementClass:e.AnduinSkeleton}),u=t.createComponent({react:n,tagName:"anduin-loading-state",elementClass:e.AnduinLoadingState}),A=t.createComponent({react:n,tagName:"anduin-field",elementClass:e.AnduinField}),E=t.createComponent({react:n,tagName:"anduin-field-label",elementClass:e.AnduinFieldLabel}),g=t.createComponent({react:n,tagName:"anduin-field-description",elementClass:e.AnduinFieldDescription}),p=t.createComponent({react:n,tagName:"anduin-field-error",elementClass:e.AnduinFieldError}),N=t.createComponent({react:n,tagName:"anduin-field-group",elementClass:e.AnduinFieldGroup}),T=t.createComponent({react:n,tagName:"anduin-radio",elementClass:e.AnduinRadio,events:{onChange:e.RADIO_CHANGE}}),_=t.createComponent({react:n,tagName:"anduin-radio-group",elementClass:e.AnduinRadioGroup,events:{onChange:e.RADIO_GROUP_CHANGE}}),L=t.createComponent({react:n,tagName:"anduin-checkbox",elementClass:e.AnduinCheckbox,events:{onChange:e.CHECKBOX_CHANGE}}),R=t.createComponent({react:n,tagName:"anduin-input",elementClass:e.AnduinInput,events:{onChange:e.INPUT_CHANGE,onClear:e.INPUT_CLEAR}}),D=t.createComponent({react:n,tagName:"anduin-textarea",elementClass:e.AnduinTextarea,events:{onChange:e.TEXTAREA_CHANGE}}),O=t.createComponent({react:n,tagName:"anduin-popover",elementClass:e.AnduinPopover}),I=t.createComponent({react:n,tagName:"anduin-popover-close",elementClass:e.AnduinPopoverClose}),G=t.createComponent({react:n,tagName:"anduin-menu",elementClass:e.AnduinMenu}),S=t.createComponent({react:n,tagName:"anduin-menu-item",elementClass:e.AnduinMenuItem,events:{onClick:e.MENU_ITEM_CLICK}}),v=t.createComponent({react:n,tagName:"anduin-modal",elementClass:e.AnduinModal,events:{onClose:e.MODAL_CLOSE_EVENT,onAfterClose:e.MODAL_AFTER_CLOSE_EVENT}}),H=t.createComponent({react:n,tagName:"anduin-modal-close",elementClass:e.AnduinModalClose}),b=t.createComponent({react:n,tagName:"anduin-tabs",elementClass:e.AnduinTabs,events:{onChange:e.TAB_CHANGE}}),M=t.createComponent({react:n,tagName:"anduin-tabs-list",elementClass:e.AnduinTabsList}),F=t.createComponent({react:n,tagName:"anduin-tab-trigger",elementClass:e.AnduinTabTrigger}),P=t.createComponent({react:n,tagName:"anduin-tab-content",elementClass:e.AnduinTabContent}),W=t.createComponent({react:n,tagName:"anduin-tag",elementClass:e.AnduinTag}),w=t.createComponent({react:n,tagName:"anduin-tag-close",elementClass:e.AnduinTagClose,events:{onClick:e.TAG_CLOSE_CLICK}}),h=t.createComponent({react:n,tagName:"anduin-tooltip",elementClass:e.AnduinTooltip}),B=t.createComponent({react:n,tagName:"anduin-tooltip-trigger",elementClass:e.AnduinTooltipTrigger}),K=t.createComponent({react:n,tagName:"anduin-tooltip-content",elementClass:e.AnduinTooltipContent}),U=t.createComponent({react:n,tagName:"anduin-well",elementClass:e.AnduinWell}),V=t.createComponent({react:n,tagName:"anduin-well-close",elementClass:e.AnduinWellClose,events:{onClick:e.WELL_CLOSE_CLICK}}),k=t.createComponent({react:n,tagName:"anduin-avatar",elementClass:e.AnduinAvatar}),f=t.createComponent({react:n,tagName:"anduin-file-icon",elementClass:e.AnduinFileIcon}),x=t.createComponent({react:n,tagName:"anduin-toast",elementClass:e.AnduinToast}),X=t.createComponent({react:n,tagName:"anduin-toaster",elementClass:e.AnduinToaster}),q=t.createComponent({react:n,tagName:"anduin-dropdown",elementClass:e.AnduinDropdown,events:{onChange:e.DROPDOWN_CHANGE}}),y=t.createComponent({react:n,tagName:"anduin-drawer",elementClass:e.AnduinDrawer,events:{onClose:e.DRAWER_CLOSE_EVENT,onAfterClose:e.DRAWER_AFTER_CLOSE_EVENT}}),j=t.createComponent({react:n,tagName:"anduin-drawer-close",elementClass:e.AnduinDrawerClose}),z=t.createComponent({react:n,tagName:"anduin-switcher",elementClass:e.AnduinSwitcher,events:{onChange:e.SWITCHER_CHANGE}});exports.CHECKBOX_CHANGE=e.CHECKBOX_CHANGE;exports.DRAWER_AFTER_CLOSE_EVENT=e.DRAWER_AFTER_CLOSE_EVENT;exports.DRAWER_CLOSE_EVENT=e.DRAWER_CLOSE_EVENT;exports.DROPDOWN_CHANGE=e.DROPDOWN_CHANGE;exports.INPUT_CHANGE=e.INPUT_CHANGE;exports.INPUT_CLEAR=e.INPUT_CLEAR;exports.MENU_ITEM_CLICK=e.MENU_ITEM_CLICK;exports.MODAL_AFTER_CLOSE_EVENT=e.MODAL_AFTER_CLOSE_EVENT;exports.MODAL_CLOSE_EVENT=e.MODAL_CLOSE_EVENT;exports.RADIO_CHANGE=e.RADIO_CHANGE;exports.RADIO_GROUP_CHANGE=e.RADIO_GROUP_CHANGE;exports.SWITCHER_CHANGE=e.SWITCHER_CHANGE;exports.TAB_CHANGE=e.TAB_CHANGE;exports.TAG_CLOSE_CLICK=e.TAG_CLOSE_CLICK;exports.TEXTAREA_CHANGE=e.TEXTAREA_CHANGE;exports.WELL_CLOSE_CLICK=e.WELL_CLOSE_CLICK;exports.Avatar=k;exports.Badge=s;exports.BadgeCount=r;exports.Button=C;exports.Callout=l;exports.Checkbox=L;exports.Divider=i;exports.Dot=c;exports.Drawer=y;exports.DrawerClose=j;exports.Dropdown=q;exports.Field=A;exports.FieldDescription=g;exports.FieldError=p;exports.FieldGroup=N;exports.FieldLabel=E;exports.FileIcon=f;exports.Icon=o;exports.Input=R;exports.LoadingState=u;exports.Menu=G;exports.MenuItem=S;exports.Modal=v;exports.ModalClose=H;exports.Popover=O;exports.PopoverClose=I;exports.Progress=d;exports.Radio=T;exports.RadioGroup=_;exports.Skeleton=m;exports.Spinner=a;exports.Switcher=z;exports.TabContent=P;exports.TabTrigger=F;exports.Tabs=b;exports.TabsList=M;exports.Tag=W;exports.TagClose=w;exports.Textarea=D;exports.Toast=x;exports.Toaster=X;exports.Tooltip=h;exports.TooltipContent=K;exports.TooltipTrigger=B;exports.Well=U;exports.WellClose=V;
package/dist/react.d.ts CHANGED
@@ -92,6 +92,69 @@ declare class AnduinDot extends LitElement {
92
92
  render(): TemplateResult<1>;
93
93
  }
94
94
 
95
+ declare class AnduinDrawer extends LitElement {
96
+ static styles: CSSResult;
97
+ open: boolean;
98
+ heading: string;
99
+ hideHeader: boolean;
100
+ hideFooter: boolean;
101
+ defaultWidth: DrawerWidth | string;
102
+ /** When true, clicks outside the drawer pass through to underlying elements instead of dismissing */
103
+ allowInteractOutside: boolean;
104
+ private _leaving;
105
+ private _width;
106
+ private _resizing;
107
+ private _startX;
108
+ private _startWidth;
109
+ willUpdate(changed: Map<PropertyKey, unknown>): void;
110
+ updated(changed: Map<PropertyKey, unknown>): void;
111
+ private _dispatch;
112
+ private _onClose;
113
+ private _onBackdropClick;
114
+ private _onResizeStart;
115
+ private _onResizeMove;
116
+ private _onResizeEnd;
117
+ render(): TemplateResult<1>;
118
+ }
119
+
120
+ declare class AnduinDrawerClose extends HTMLElement {
121
+ connectedCallback(): void;
122
+ disconnectedCallback(): void;
123
+ private _onClick;
124
+ }
125
+
126
+ declare class AnduinDropdown extends LitElement {
127
+ static styles: CSSResult;
128
+ value: string;
129
+ placeholder: string;
130
+ options: DropdownOption[];
131
+ icon: string;
132
+ searchable: boolean;
133
+ disabled: boolean;
134
+ placement: 'bottom-start' | 'bottom-end' | 'bottom';
135
+ appearance: DropdownAppearance;
136
+ variant: DropdownVariant;
137
+ size: 'small' | 'default';
138
+ fullWidth: boolean;
139
+ private _open;
140
+ private _query;
141
+ private _triggerEl;
142
+ private _panelEl;
143
+ private _searchEl;
144
+ connectedCallback(): void;
145
+ disconnectedCallback(): void;
146
+ updated(changed: Map<PropertyKey, unknown>): void;
147
+ private _onOutsideClick;
148
+ private _onScrollOrResize;
149
+ private _onTriggerClick;
150
+ private _onKeyDown;
151
+ private _onClear;
152
+ private _selectOption;
153
+ private _updatePosition;
154
+ private get _filteredOptions();
155
+ render(): TemplateResult<1>;
156
+ }
157
+
95
158
  declare class AnduinField extends LitElement {
96
159
  static styles: CSSResult;
97
160
  orientation: string;
@@ -294,6 +357,14 @@ declare class AnduinSpinner extends LitElement {
294
357
  render(): TemplateResult<2>;
295
358
  }
296
359
 
360
+ declare class AnduinSwitcher extends LitElement {
361
+ static styles: CSSResult;
362
+ checked: boolean;
363
+ disabled: boolean;
364
+ private onChange;
365
+ render(): TemplateResult<1>;
366
+ }
367
+
297
368
  declare class AnduinTabContent extends LitElement {
298
369
  static styles: CSSResult;
299
370
  value: string;
@@ -485,6 +556,35 @@ export declare const Divider: ReactWebComponent<AnduinDivider, {}>;
485
556
 
486
557
  export declare const Dot: ReactWebComponent<AnduinDot, {}>;
487
558
 
559
+ export declare const Drawer: ReactWebComponent<AnduinDrawer, {
560
+ onClose: string;
561
+ onAfterClose: string;
562
+ }>;
563
+
564
+ export declare const DRAWER_AFTER_CLOSE_EVENT = "anduin-after-close";
565
+
566
+ export declare const DRAWER_CLOSE_EVENT = "anduin-close";
567
+
568
+ export declare const DrawerClose: ReactWebComponent<AnduinDrawerClose, {}>;
569
+
570
+ declare type DrawerWidth = '320' | '360' | '400' | '640';
571
+
572
+ export declare const Dropdown: ReactWebComponent<AnduinDropdown, {
573
+ onChange: string;
574
+ }>;
575
+
576
+ export declare const DROPDOWN_CHANGE = "anduin-dropdown:change";
577
+
578
+ declare type DropdownAppearance = 'filled' | 'outlined' | 'plain';
579
+
580
+ declare interface DropdownOption {
581
+ value: string;
582
+ label: string;
583
+ icon?: string;
584
+ }
585
+
586
+ declare type DropdownVariant = 'gray0' | 'gray9' | 'primary' | 'danger' | 'success' | 'warning';
587
+
488
588
  export declare const Field: ReactWebComponent<AnduinField, {}>;
489
589
 
490
590
  export declare const FieldDescription: ReactWebComponent<AnduinFieldDescription, {}>;
@@ -522,12 +622,22 @@ onClick: string;
522
622
 
523
623
  export declare const Modal: ReactWebComponent<AnduinModal, {
524
624
  onClose: string;
625
+ onAfterClose: string;
525
626
  }>;
526
627
 
527
- /** Event fired when the modal requests to close. Use with addEventListener since the
528
- * hyphenated name can't be expressed as a JSX prop (onAnduinClose won't work).
628
+ /** Event fired after the exit animation finishes and the modal is fully hidden.
629
+ * Use this to safely unmount / clear data when using conditional rendering.
529
630
  * @example
530
- * ref.current.addEventListener(MODAL_CLOSE_EVENT, () => setOpen(false))
631
+ * // Separate open state from data state so the modal stays mounted during exit animation:
632
+ * const [open, setOpen] = useState(false)
633
+ * const [data, setData] = useState(null)
634
+ *
635
+ * <Modal open={open} onClose={() => setOpen(false)} onAfterClose={() => setData(null)} />
636
+ */
637
+ export declare const MODAL_AFTER_CLOSE_EVENT = "anduin-after-close";
638
+
639
+ /** Event fired when the modal requests to close (user clicked X, overlay, or anduin-modal-close).
640
+ * Respond by setting open=false. The exit animation then plays automatically.
531
641
  */
532
642
  export declare const MODAL_CLOSE_EVENT = "anduin-close";
533
643
 
@@ -555,6 +665,12 @@ export declare const Skeleton: ReactWebComponent<AnduinSkeleton, {}>;
555
665
 
556
666
  export declare const Spinner: ReactWebComponent<AnduinSpinner, {}>;
557
667
 
668
+ export declare const Switcher: ReactWebComponent<AnduinSwitcher, {
669
+ onChange: string;
670
+ }>;
671
+
672
+ export declare const SWITCHER_CHANGE = "anduin-switcher:change";
673
+
558
674
  export declare const TAB_CHANGE = "anduin-tab:change";
559
675
 
560
676
  export declare const TabContent: ReactWebComponent<AnduinTabContent, {}>;
package/dist/react.js CHANGED
@@ -1,109 +1,133 @@
1
1
  import e from "react";
2
2
  import { createComponent as a } from "@lit/react";
3
- import { B as n, n as t, a as s, b as o, c as l, d as i, f as d, g as c, w as r, z as u, p as m, h as C, l as g, i as A, j as N, k as p, Z as T, x as v, _ as b, y as E, R as I, e as L, W as _, V as F, o as G, a3 as M, I as R, u as f, v as h, q as k, X as D, r as P, ae as B, s as O, t as S, $ as x, E as H, F as W, D as K, C as U, G as w, a2 as X, H as V, L as j, N as q, M as y, O as z, aa as J, P as Z, A as $, m as Q, J as Y, K as ee } from "./anduin-toast-ovQqFluZ.js";
4
- const se = a({ react: e, tagName: "anduin-spinner", elementClass: n }), oe = a({ react: e, tagName: "anduin-icon", elementClass: t }), le = a({ react: e, tagName: "anduin-badge", elementClass: s }), ie = a({ react: e, tagName: "anduin-badge-count", elementClass: o }), de = a({ react: e, tagName: "anduin-button", elementClass: l }), ce = a({ react: e, tagName: "anduin-callout", elementClass: i }), re = a({ react: e, tagName: "anduin-divider", elementClass: d }), ue = a({ react: e, tagName: "anduin-dot", elementClass: c }), me = a({ react: e, tagName: "anduin-progress", elementClass: r }), Ce = a({ react: e, tagName: "anduin-skeleton", elementClass: u }), ge = a({ react: e, tagName: "anduin-loading-state", elementClass: m }), Ae = a({ react: e, tagName: "anduin-field", elementClass: C }), Ne = a({ react: e, tagName: "anduin-field-label", elementClass: g }), pe = a({ react: e, tagName: "anduin-field-description", elementClass: A }), Te = a({ react: e, tagName: "anduin-field-error", elementClass: N }), ve = a({ react: e, tagName: "anduin-field-group", elementClass: p }), be = a({
3
+ import { E as n, q as t, a as s, b as o, c as l, d as i, f as d, g as r, z as c, D as u, s as C, k as m, o as g, l as A, m as N, n as T, a6 as p, B as E, a7 as v, C as _, V as b, e as D, a1 as L, a0 as R, r as I, ad as S, M as h, x as w, y as F, t as G, a2 as O, u as M, a3 as f, a4 as k, v as H, w as P, a9 as W, I as B, J as x, H as K, G as V, K as U, ac as X, L as j, P as q, R as y, Q as z, S as J, ak as Q, T as Y, A as Z, p as $, N as ee, O as ae, Y as ne, j as te, W as se, X as oe, h as le, i as ie, a8 as de, F as re } from "./anduin-drawer-DSyr65l3.js";
4
+ const me = a({ react: e, tagName: "anduin-spinner", elementClass: n }), ge = a({ react: e, tagName: "anduin-icon", elementClass: t }), Ae = a({ react: e, tagName: "anduin-badge", elementClass: s }), Ne = a({ react: e, tagName: "anduin-badge-count", elementClass: o }), Te = a({ react: e, tagName: "anduin-button", elementClass: l }), pe = a({ react: e, tagName: "anduin-callout", elementClass: i }), Ee = a({ react: e, tagName: "anduin-divider", elementClass: d }), ve = a({ react: e, tagName: "anduin-dot", elementClass: r }), _e = a({ react: e, tagName: "anduin-progress", elementClass: c }), be = a({ react: e, tagName: "anduin-skeleton", elementClass: u }), De = a({ react: e, tagName: "anduin-loading-state", elementClass: C }), Le = a({ react: e, tagName: "anduin-field", elementClass: m }), Re = a({ react: e, tagName: "anduin-field-label", elementClass: g }), Ie = a({ react: e, tagName: "anduin-field-description", elementClass: A }), Se = a({ react: e, tagName: "anduin-field-error", elementClass: N }), he = a({ react: e, tagName: "anduin-field-group", elementClass: T }), we = a({
5
5
  react: e,
6
6
  tagName: "anduin-radio",
7
- elementClass: v,
8
- events: { onChange: T }
9
- }), Ee = a({
7
+ elementClass: E,
8
+ events: { onChange: p }
9
+ }), Fe = a({
10
10
  react: e,
11
11
  tagName: "anduin-radio-group",
12
- elementClass: E,
13
- events: { onChange: b }
14
- }), Ie = a({
12
+ elementClass: _,
13
+ events: { onChange: v }
14
+ }), Ge = a({
15
15
  react: e,
16
16
  tagName: "anduin-checkbox",
17
- elementClass: L,
18
- events: { onChange: I }
19
- }), Le = a({
17
+ elementClass: D,
18
+ events: { onChange: b }
19
+ }), Oe = a({
20
20
  react: e,
21
21
  tagName: "anduin-input",
22
- elementClass: G,
23
- events: { onChange: F, onClear: _ }
24
- }), _e = a({
22
+ elementClass: I,
23
+ events: { onChange: R, onClear: L }
24
+ }), Me = a({
25
25
  react: e,
26
26
  tagName: "anduin-textarea",
27
- elementClass: R,
28
- events: { onChange: M }
29
- }), Fe = a({ react: e, tagName: "anduin-popover", elementClass: f }), Ge = a({ react: e, tagName: "anduin-popover-close", elementClass: h }), Me = a({ react: e, tagName: "anduin-menu", elementClass: k }), Re = a({
27
+ elementClass: h,
28
+ events: { onChange: S }
29
+ }), fe = a({ react: e, tagName: "anduin-popover", elementClass: w }), ke = a({ react: e, tagName: "anduin-popover-close", elementClass: F }), He = a({ react: e, tagName: "anduin-menu", elementClass: G }), Pe = a({
30
30
  react: e,
31
31
  tagName: "anduin-menu-item",
32
- elementClass: P,
33
- events: { onClick: D }
34
- }), fe = a({
32
+ elementClass: M,
33
+ events: { onClick: O }
34
+ }), We = a({
35
35
  react: e,
36
36
  tagName: "anduin-modal",
37
- elementClass: O,
38
- events: { onClose: B }
39
- }), he = a({ react: e, tagName: "anduin-modal-close", elementClass: S }), ke = a({
37
+ elementClass: H,
38
+ events: { onClose: k, onAfterClose: f }
39
+ }), Be = a({ react: e, tagName: "anduin-modal-close", elementClass: P }), xe = a({
40
40
  react: e,
41
41
  tagName: "anduin-tabs",
42
- elementClass: H,
43
- events: { onChange: x }
44
- }), De = a({ react: e, tagName: "anduin-tabs-list", elementClass: W }), Pe = a({ react: e, tagName: "anduin-tab-trigger", elementClass: K }), Be = a({ react: e, tagName: "anduin-tab-content", elementClass: U }), Oe = a({ react: e, tagName: "anduin-tag", elementClass: w }), Se = a({
42
+ elementClass: B,
43
+ events: { onChange: W }
44
+ }), Ke = a({ react: e, tagName: "anduin-tabs-list", elementClass: x }), Ve = a({ react: e, tagName: "anduin-tab-trigger", elementClass: K }), Ue = a({ react: e, tagName: "anduin-tab-content", elementClass: V }), Xe = a({ react: e, tagName: "anduin-tag", elementClass: U }), je = a({
45
45
  react: e,
46
46
  tagName: "anduin-tag-close",
47
- elementClass: V,
47
+ elementClass: j,
48
48
  events: { onClick: X }
49
- }), xe = a({ react: e, tagName: "anduin-tooltip", elementClass: j }), He = a({ react: e, tagName: "anduin-tooltip-trigger", elementClass: q }), We = a({ react: e, tagName: "anduin-tooltip-content", elementClass: y }), Ke = a({ react: e, tagName: "anduin-well", elementClass: z }), Ue = a({
49
+ }), qe = a({ react: e, tagName: "anduin-tooltip", elementClass: q }), ye = a({ react: e, tagName: "anduin-tooltip-trigger", elementClass: y }), ze = a({ react: e, tagName: "anduin-tooltip-content", elementClass: z }), Je = a({ react: e, tagName: "anduin-well", elementClass: J }), Qe = a({
50
50
  react: e,
51
51
  tagName: "anduin-well-close",
52
- elementClass: Z,
53
- events: { onClick: J }
54
- }), we = a({ react: e, tagName: "anduin-avatar", elementClass: $ }), Xe = a({ react: e, tagName: "anduin-file-icon", elementClass: Q }), Ve = a({ react: e, tagName: "anduin-toast", elementClass: Y }), je = a({ react: e, tagName: "anduin-toaster", elementClass: ee });
52
+ elementClass: Y,
53
+ events: { onClick: Q }
54
+ }), Ye = a({ react: e, tagName: "anduin-avatar", elementClass: Z }), Ze = a({ react: e, tagName: "anduin-file-icon", elementClass: $ }), $e = a({ react: e, tagName: "anduin-toast", elementClass: ee }), ea = a({ react: e, tagName: "anduin-toaster", elementClass: ae }), aa = a({
55
+ react: e,
56
+ tagName: "anduin-dropdown",
57
+ elementClass: te,
58
+ events: { onChange: ne }
59
+ }), na = a({
60
+ react: e,
61
+ tagName: "anduin-drawer",
62
+ elementClass: le,
63
+ events: { onClose: oe, onAfterClose: se }
64
+ }), ta = a({ react: e, tagName: "anduin-drawer-close", elementClass: ie }), sa = a({
65
+ react: e,
66
+ tagName: "anduin-switcher",
67
+ elementClass: re,
68
+ events: { onChange: de }
69
+ });
55
70
  export {
56
- we as Avatar,
57
- le as Badge,
58
- ie as BadgeCount,
59
- de as Button,
60
- I as CHECKBOX_CHANGE,
61
- ce as Callout,
62
- Ie as Checkbox,
63
- re as Divider,
64
- ue as Dot,
65
- Ae as Field,
66
- pe as FieldDescription,
67
- Te as FieldError,
68
- ve as FieldGroup,
69
- Ne as FieldLabel,
70
- Xe as FileIcon,
71
- F as INPUT_CHANGE,
72
- _ as INPUT_CLEAR,
73
- oe as Icon,
74
- Le as Input,
75
- ge as LoadingState,
76
- D as MENU_ITEM_CLICK,
77
- B as MODAL_CLOSE_EVENT,
78
- Me as Menu,
79
- Re as MenuItem,
80
- fe as Modal,
81
- he as ModalClose,
82
- Fe as Popover,
83
- Ge as PopoverClose,
84
- me as Progress,
85
- T as RADIO_CHANGE,
86
- b as RADIO_GROUP_CHANGE,
87
- be as Radio,
88
- Ee as RadioGroup,
89
- Ce as Skeleton,
90
- se as Spinner,
91
- x as TAB_CHANGE,
71
+ Ye as Avatar,
72
+ Ae as Badge,
73
+ Ne as BadgeCount,
74
+ Te as Button,
75
+ b as CHECKBOX_CHANGE,
76
+ pe as Callout,
77
+ Ge as Checkbox,
78
+ se as DRAWER_AFTER_CLOSE_EVENT,
79
+ oe as DRAWER_CLOSE_EVENT,
80
+ ne as DROPDOWN_CHANGE,
81
+ Ee as Divider,
82
+ ve as Dot,
83
+ na as Drawer,
84
+ ta as DrawerClose,
85
+ aa as Dropdown,
86
+ Le as Field,
87
+ Ie as FieldDescription,
88
+ Se as FieldError,
89
+ he as FieldGroup,
90
+ Re as FieldLabel,
91
+ Ze as FileIcon,
92
+ R as INPUT_CHANGE,
93
+ L as INPUT_CLEAR,
94
+ ge as Icon,
95
+ Oe as Input,
96
+ De as LoadingState,
97
+ O as MENU_ITEM_CLICK,
98
+ f as MODAL_AFTER_CLOSE_EVENT,
99
+ k as MODAL_CLOSE_EVENT,
100
+ He as Menu,
101
+ Pe as MenuItem,
102
+ We as Modal,
103
+ Be as ModalClose,
104
+ fe as Popover,
105
+ ke as PopoverClose,
106
+ _e as Progress,
107
+ p as RADIO_CHANGE,
108
+ v as RADIO_GROUP_CHANGE,
109
+ we as Radio,
110
+ Fe as RadioGroup,
111
+ de as SWITCHER_CHANGE,
112
+ be as Skeleton,
113
+ me as Spinner,
114
+ sa as Switcher,
115
+ W as TAB_CHANGE,
92
116
  X as TAG_CLOSE_CLICK,
93
- M as TEXTAREA_CHANGE,
94
- Be as TabContent,
95
- Pe as TabTrigger,
96
- ke as Tabs,
97
- De as TabsList,
98
- Oe as Tag,
99
- Se as TagClose,
100
- _e as Textarea,
101
- Ve as Toast,
102
- je as Toaster,
103
- xe as Tooltip,
104
- We as TooltipContent,
105
- He as TooltipTrigger,
106
- J as WELL_CLOSE_CLICK,
107
- Ke as Well,
108
- Ue as WellClose
117
+ S as TEXTAREA_CHANGE,
118
+ Ue as TabContent,
119
+ Ve as TabTrigger,
120
+ xe as Tabs,
121
+ Ke as TabsList,
122
+ Xe as Tag,
123
+ je as TagClose,
124
+ Me as Textarea,
125
+ $e as Toast,
126
+ ea as Toaster,
127
+ qe as Tooltip,
128
+ ze as TooltipContent,
129
+ ye as TooltipTrigger,
130
+ Q as WELL_CLOSE_CLICK,
131
+ Je as Well,
132
+ Qe as WellClose
109
133
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duyluonganduin/acl-web-components",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "type": "module",
5
5
  "main": "./dist/acl-web-components.cjs",
6
6
  "module": "./dist/acl-web-components.js",