@maltjoy/core-vue 6.3.0 → 6.5.0-beta.0

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.
@@ -4,7 +4,9 @@ import { TJoyDialogSizes } from './JoyDialog.types';
4
4
  declare function hide(options?: {
5
5
  fireHideEvent?: boolean;
6
6
  }): Promise<void>;
7
- declare function show(): Promise<void>;
7
+ declare function show(options?: {
8
+ restoreFocusTo?: HTMLElement;
9
+ }): Promise<void>;
8
10
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
9
11
  id: {
10
12
  type: StringConstructor;
@@ -73,6 +75,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
73
75
  bannerSrc: {
74
76
  type: StringConstructor;
75
77
  };
78
+ /** Accessible name for the banner. Leave empty to treat the banner as decorative. */
79
+ bannerSrcAlt: {
80
+ type: StringConstructor;
81
+ };
76
82
  /** Based on CSS propetty background-position. https://developer.mozilla.org/en-US/docs/Web/CSS/background-position */
77
83
  bannerPosition: {
78
84
  type: StringConstructor;
@@ -85,6 +91,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
85
91
  hasFooterSlots: import("vue").ComputedRef<boolean>;
86
92
  hide: typeof hide;
87
93
  isOpen: import("vue").Ref<boolean, boolean>;
94
+ overlayId: import("vue").ComputedRef<string>;
88
95
  show: typeof show;
89
96
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
90
97
  "dialog:open": () => any;
@@ -161,6 +168,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
161
168
  bannerSrc: {
162
169
  type: StringConstructor;
163
170
  };
171
+ /** Accessible name for the banner. Leave empty to treat the banner as decorative. */
172
+ bannerSrcAlt: {
173
+ type: StringConstructor;
174
+ };
164
175
  /** Based on CSS propetty background-position. https://developer.mozilla.org/en-US/docs/Web/CSS/background-position */
165
176
  bannerPosition: {
166
177
  type: StringConstructor;
@@ -31,6 +31,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
31
31
  readonly cancelText?: string | undefined;
32
32
  readonly confirmText?: string | undefined;
33
33
  readonly bannerSrc?: string | undefined;
34
+ readonly bannerSrcAlt?: string | undefined;
34
35
  readonly bannerPosition?: string | undefined;
35
36
  readonly "onDialog:open"?: (() => any) | undefined;
36
37
  readonly "onDialog:after-open"?: (() => any) | undefined;
@@ -106,6 +107,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
106
107
  bannerSrc: {
107
108
  type: StringConstructor;
108
109
  };
110
+ bannerSrcAlt: {
111
+ type: StringConstructor;
112
+ };
109
113
  bannerPosition: {
110
114
  type: StringConstructor;
111
115
  };
@@ -126,7 +130,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
126
130
  fireHideEvent?: boolean | undefined;
127
131
  } | undefined) => Promise<void>;
128
132
  isOpen: import("vue").Ref<boolean, boolean>;
129
- show: () => Promise<void>;
133
+ overlayId: import("vue").ComputedRef<string>;
134
+ show: (options?: {
135
+ restoreFocusTo?: HTMLElement | undefined;
136
+ } | undefined) => Promise<void>;
130
137
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
131
138
  "dialog:open": () => any;
132
139
  "dialog:after-open": () => any;
@@ -231,6 +238,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
231
238
  bannerSrc: {
232
239
  type: StringConstructor;
233
240
  };
241
+ bannerSrcAlt: {
242
+ type: StringConstructor;
243
+ };
234
244
  bannerPosition: {
235
245
  type: StringConstructor;
236
246
  };
@@ -245,13 +255,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
245
255
  "onDialog:after-hide"?: (() => any) | undefined;
246
256
  "onDialog:before-unmount"?: (() => any) | undefined;
247
257
  "onDialog:confirm"?: (() => any) | undefined;
248
- }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "patternConfirm" | "patternBrand" | "buttonSize" | "bannerHeight")> & import("vue").ShallowUnwrapRef<{
258
+ }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | "overlayId" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "patternConfirm" | "patternBrand" | "buttonSize" | "bannerHeight")> & import("vue").ShallowUnwrapRef<{
249
259
  hasFooterSlots: import("vue").ComputedRef<boolean>;
250
260
  hide: (options?: {
251
261
  fireHideEvent?: boolean | undefined;
252
262
  } | undefined) => Promise<void>;
253
263
  isOpen: import("vue").Ref<boolean, boolean>;
254
- show: () => Promise<void>;
264
+ overlayId: import("vue").ComputedRef<string>;
265
+ show: (options?: {
266
+ restoreFocusTo?: HTMLElement | undefined;
267
+ } | undefined) => Promise<void>;
255
268
  }> & {} & import("vue").ComponentCustomProperties & {} & {
256
269
  $slots: Readonly<{
257
270
  'dialog-preheader': () => any;
@@ -306,6 +319,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
306
319
  readonly cancelText?: string | undefined;
307
320
  readonly confirmText?: string | undefined;
308
321
  readonly bannerSrc?: string | undefined;
322
+ readonly bannerSrcAlt?: string | undefined;
309
323
  readonly bannerPosition?: string | undefined;
310
324
  readonly "onDialog:open"?: (() => any) | undefined;
311
325
  readonly "onDialog:after-open"?: (() => any) | undefined;
@@ -381,6 +395,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
381
395
  bannerSrc: {
382
396
  type: StringConstructor;
383
397
  };
398
+ bannerSrcAlt: {
399
+ type: StringConstructor;
400
+ };
384
401
  bannerPosition: {
385
402
  type: StringConstructor;
386
403
  };
@@ -401,7 +418,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
401
418
  fireHideEvent?: boolean | undefined;
402
419
  } | undefined) => Promise<void>;
403
420
  isOpen: import("vue").Ref<boolean, boolean>;
404
- show: () => Promise<void>;
421
+ overlayId: import("vue").ComputedRef<string>;
422
+ show: (options?: {
423
+ restoreFocusTo?: HTMLElement | undefined;
424
+ } | undefined) => Promise<void>;
405
425
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
406
426
  "dialog:open": () => any;
407
427
  "dialog:after-open": () => any;
@@ -506,6 +526,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
506
526
  bannerSrc: {
507
527
  type: StringConstructor;
508
528
  };
529
+ bannerSrcAlt: {
530
+ type: StringConstructor;
531
+ };
509
532
  bannerPosition: {
510
533
  type: StringConstructor;
511
534
  };
@@ -520,13 +543,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
520
543
  "onDialog:after-hide"?: (() => any) | undefined;
521
544
  "onDialog:before-unmount"?: (() => any) | undefined;
522
545
  "onDialog:confirm"?: (() => any) | undefined;
523
- }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "patternConfirm" | "patternBrand" | "buttonSize" | "bannerHeight")> & import("vue").ShallowUnwrapRef<{
546
+ }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | "overlayId" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "patternConfirm" | "patternBrand" | "buttonSize" | "bannerHeight")> & import("vue").ShallowUnwrapRef<{
524
547
  hasFooterSlots: import("vue").ComputedRef<boolean>;
525
548
  hide: (options?: {
526
549
  fireHideEvent?: boolean | undefined;
527
550
  } | undefined) => Promise<void>;
528
551
  isOpen: import("vue").Ref<boolean, boolean>;
529
- show: () => Promise<void>;
552
+ overlayId: import("vue").ComputedRef<string>;
553
+ show: (options?: {
554
+ restoreFocusTo?: HTMLElement | undefined;
555
+ } | undefined) => Promise<void>;
530
556
  }> & {} & import("vue").ComponentCustomProperties & {} & {
531
557
  $slots: Readonly<{
532
558
  'dialog-preheader': () => any;
@@ -7,7 +7,9 @@ declare function hide(options?: {
7
7
  /**
8
8
  * @returns {Promise<void>} -
9
9
  */
10
- declare function show(): Promise<void>;
10
+ declare function show(options?: {
11
+ restoreFocusTo?: HTMLElement;
12
+ }): Promise<void>;
11
13
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
14
  id: {
13
15
  type: StringConstructor;
@@ -72,6 +74,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
72
74
  hasFooterSlots: import("vue").ComputedRef<boolean>;
73
75
  hide: typeof hide;
74
76
  isOpen: import("vue").Ref<boolean, boolean>;
77
+ overlayId: import("vue").ComputedRef<string>;
75
78
  show: typeof show;
76
79
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
77
80
  "drawer:open": () => any;
@@ -110,7 +110,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
110
110
  fireHideEvent?: boolean | undefined;
111
111
  } | undefined) => Promise<void>;
112
112
  isOpen: import("vue").Ref<boolean, boolean>;
113
- show: () => Promise<void>;
113
+ overlayId: import("vue").ComputedRef<string>;
114
+ show: (options?: {
115
+ restoreFocusTo?: HTMLElement | undefined;
116
+ } | undefined) => Promise<void>;
114
117
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
115
118
  "drawer:open": () => any;
116
119
  "drawer:after-open": () => any;
@@ -214,13 +217,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
214
217
  "onDrawer:after-hide"?: (() => any) | undefined;
215
218
  "onDrawer:before-unmount"?: (() => any) | undefined;
216
219
  "onDrawer:confirm"?: (() => any) | undefined;
217
- }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "buttonSize" | "elevated")> & import("vue").ShallowUnwrapRef<{
220
+ }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | "overlayId" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "buttonSize" | "elevated")> & import("vue").ShallowUnwrapRef<{
218
221
  hasFooterSlots: import("vue").ComputedRef<boolean>;
219
222
  hide: (options?: {
220
223
  fireHideEvent?: boolean | undefined;
221
224
  } | undefined) => Promise<void>;
222
225
  isOpen: import("vue").Ref<boolean, boolean>;
223
- show: () => Promise<void>;
226
+ overlayId: import("vue").ComputedRef<string>;
227
+ show: (options?: {
228
+ restoreFocusTo?: HTMLElement | undefined;
229
+ } | undefined) => Promise<void>;
224
230
  }> & {} & import("vue").ComponentCustomProperties & {} & {
225
231
  $slots: Readonly<{
226
232
  'drawer-preheader': () => any;
@@ -352,7 +358,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
352
358
  fireHideEvent?: boolean | undefined;
353
359
  } | undefined) => Promise<void>;
354
360
  isOpen: import("vue").Ref<boolean, boolean>;
355
- show: () => Promise<void>;
361
+ overlayId: import("vue").ComputedRef<string>;
362
+ show: (options?: {
363
+ restoreFocusTo?: HTMLElement | undefined;
364
+ } | undefined) => Promise<void>;
356
365
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
357
366
  "drawer:open": () => any;
358
367
  "drawer:after-open": () => any;
@@ -456,13 +465,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
456
465
  "onDrawer:after-hide"?: (() => any) | undefined;
457
466
  "onDrawer:before-unmount"?: (() => any) | undefined;
458
467
  "onDrawer:confirm"?: (() => any) | undefined;
459
- }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "buttonSize" | "elevated")> & import("vue").ShallowUnwrapRef<{
468
+ }>, "isOpen" | "hide" | "show" | "hasFooterSlots" | "overlayId" | ("size" | "closeLabel" | "open" | "preventBodyScroll" | "teleport" | "disableTeleport" | "demoMode" | "buttonSize" | "elevated")> & import("vue").ShallowUnwrapRef<{
460
469
  hasFooterSlots: import("vue").ComputedRef<boolean>;
461
470
  hide: (options?: {
462
471
  fireHideEvent?: boolean | undefined;
463
472
  } | undefined) => Promise<void>;
464
473
  isOpen: import("vue").Ref<boolean, boolean>;
465
- show: () => Promise<void>;
474
+ overlayId: import("vue").ComputedRef<string>;
475
+ show: (options?: {
476
+ restoreFocusTo?: HTMLElement | undefined;
477
+ } | undefined) => Promise<void>;
466
478
  }> & {} & import("vue").ComponentCustomProperties & {} & {
467
479
  $slots: Readonly<{
468
480
  'drawer-preheader': () => any;
@@ -1,5 +1,4 @@
1
1
  import { PropType } from 'vue';
2
- import { TJoyIndicatorsVariants } from '../JoyIndicators/JoyIndicators.types';
3
2
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
3
  /** Value is used for the parent v-model. Mandatory */
5
4
  value: {
@@ -12,7 +11,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
12
11
  default: boolean;
13
12
  };
14
13
  variant: {
15
- type: PropType<TJoyIndicatorsVariants>;
14
+ type: PropType<"default">;
16
15
  default: string;
17
16
  };
18
17
  /** Indicators are text-less buttons by design. To make them more accessible, you can pass them an aria-label that will describe more their action. */
@@ -31,7 +30,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
31
30
  default: boolean;
32
31
  };
33
32
  variant: {
34
- type: PropType<TJoyIndicatorsVariants>;
33
+ type: PropType<"default">;
35
34
  default: string;
36
35
  };
37
36
  /** Indicators are text-less buttons by design. To make them more accessible, you can pass them an aria-label that will describe more their action. */
@@ -40,6 +39,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
40
39
  };
41
40
  }>> & Readonly<{}>, {
42
41
  selected: boolean;
43
- variant: TJoyIndicatorsVariants;
42
+ variant: "default";
44
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
45
44
  export default _default;
@@ -1 +1 @@
1
- export type TJoyIndicatorsVariants = 'default' | 'light';
1
+ export type TJoyIndicatorsVariants = 'default';
@@ -1,10 +1,9 @@
1
1
  import { PropType } from 'vue';
2
2
  import VJoyIndicator from '../JoyIndicator/VJoyIndicator.vue';
3
- import { TJoyIndicatorsVariants } from './JoyIndicators.types';
4
3
  declare function isSelected(indicator: typeof VJoyIndicator): boolean;
5
4
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
5
  variant: {
7
- type: PropType<TJoyIndicatorsVariants>;
6
+ type: PropType<"default">;
8
7
  };
9
8
  /** Use the component with a v-model to easily handle selected items */
10
9
  modelValue: {
@@ -21,7 +20,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
21
20
  default: boolean;
22
21
  };
23
22
  variant: {
24
- type: PropType<TJoyIndicatorsVariants>;
23
+ type: PropType<"default">;
25
24
  default: string;
26
25
  };
27
26
  ariaLabel: {
@@ -37,7 +36,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
37
36
  default: boolean;
38
37
  };
39
38
  variant: {
40
- type: PropType<TJoyIndicatorsVariants>;
39
+ type: PropType<"default">;
41
40
  default: string;
42
41
  };
43
42
  ariaLabel: {
@@ -45,14 +44,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
45
44
  };
46
45
  }>> & Readonly<{}>, {
47
46
  selected: boolean;
48
- variant: TJoyIndicatorsVariants;
47
+ variant: "default";
49
48
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>[]>;
50
49
  isSelected: typeof isSelected;
51
50
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
51
  "update:modelValue": (value: string | number) => any;
53
52
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
54
53
  variant: {
55
- type: PropType<TJoyIndicatorsVariants>;
54
+ type: PropType<"default">;
56
55
  };
57
56
  /** Use the component with a v-model to easily handle selected items */
58
57
  modelValue: {
@@ -2,3 +2,4 @@ import { Ref } from 'vue';
2
2
  export declare function useAutoFocus(element: Ref, autofocus: boolean): void;
3
3
  export * from './events';
4
4
  export * from './helpers';
5
+ export * from './overlay-a11y';
@@ -0,0 +1,21 @@
1
+ import { type MaybeRefOrGetter, type Ref } from 'vue';
2
+ export declare function getFocusableElements(root: HTMLElement): HTMLElement[];
3
+ export declare function trapFocus(event: KeyboardEvent, root: HTMLElement): void;
4
+ export interface OverlayA11yOptions {
5
+ rootRef: Ref<HTMLElement | undefined>;
6
+ isOpen: Ref<boolean>;
7
+ /** When false, skip focus trap and inert. Initial focus, restore and Escape still run. */
8
+ modal?: MaybeRefOrGetter<boolean>;
9
+ closeOnEscape?: MaybeRefOrGetter<boolean>;
10
+ onEscape: () => void;
11
+ /** Skip all a11y behavior (Storybook `demoMode`). */
12
+ enabled?: MaybeRefOrGetter<boolean>;
13
+ /** Used to find the trigger again if the original node was remounted. */
14
+ overlayId?: MaybeRefOrGetter<string | undefined>;
15
+ }
16
+ export declare function useOverlayA11y(options: OverlayA11yOptions): {
17
+ setRestoreFocus: (element?: HTMLElement | null) => void;
18
+ };
19
+ /** Test-only helper to avoid stack leakage between specs. */
20
+ export declare function resetOverlayA11yStack(): void;
21
+ export declare function getOverlayA11yStackSize(): number;