@sectile/vue 0.2.1 → 0.3.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.
package/dist/toast.d.ts CHANGED
@@ -2,9 +2,16 @@ import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
2
  import { type ToastInput, type ToastItem } from '@sectile/dom/toast';
3
3
  import { type PrimitiveAs } from './primitive.js';
4
4
  export interface ToastProviderProps {
5
+ readonly toasts?: readonly ToastInput<string>[];
5
6
  readonly initialToasts?: readonly ToastInput<string>[];
6
7
  readonly defaultDurationMs?: number | null;
7
8
  readonly maxVisible?: number;
9
+ readonly closeLabel?: string;
10
+ readonly hotkey?: readonly string[] | false;
11
+ readonly pauseOnWindowBlur?: boolean;
12
+ readonly dismissOnEscape?: boolean;
13
+ readonly swipeDirection?: 'up' | 'right' | 'down' | 'left';
14
+ readonly swipeThreshold?: number;
8
15
  }
9
16
  export interface ToastProviderSlotProps {
10
17
  readonly toasts: readonly ToastItem<string>[];
@@ -17,6 +24,10 @@ export interface ToastPartProps {
17
24
  readonly as?: PrimitiveAs;
18
25
  readonly asChild?: boolean;
19
26
  }
27
+ export interface ToastPortalProps {
28
+ readonly to?: string | HTMLElement;
29
+ readonly disabled?: boolean;
30
+ }
20
31
  export interface ToastRootProps extends ToastPartProps {
21
32
  readonly value: string;
22
33
  }
@@ -25,6 +36,10 @@ export interface ToastRootSlotProps {
25
36
  readonly open: boolean;
26
37
  }
27
38
  export declare const ToastProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
39
+ toasts: {
40
+ type: PropType<readonly ToastInput<string>[]>;
41
+ default: undefined;
42
+ };
28
43
  initialToasts: {
29
44
  type: PropType<readonly ToastInput<string>[]>;
30
45
  default: () => never[];
@@ -37,7 +52,37 @@ export declare const ToastProvider: import("vue").DefineComponent<import("vue").
37
52
  type: NumberConstructor;
38
53
  default: number;
39
54
  };
40
- }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
55
+ closeLabel: {
56
+ type: StringConstructor;
57
+ default: string;
58
+ };
59
+ hotkey: {
60
+ type: PropType<readonly string[] | false>;
61
+ default: () => string[];
62
+ };
63
+ pauseOnWindowBlur: {
64
+ type: BooleanConstructor;
65
+ default: boolean;
66
+ };
67
+ dismissOnEscape: {
68
+ type: BooleanConstructor;
69
+ default: boolean;
70
+ };
71
+ swipeDirection: {
72
+ type: PropType<'up' | 'right' | 'down' | 'left'>;
73
+ default: string;
74
+ };
75
+ swipeThreshold: {
76
+ type: NumberConstructor;
77
+ default: number;
78
+ };
79
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
80
+ 'update:toasts': (_items: readonly ToastInput<string>[]) => boolean;
81
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
82
+ toasts: {
83
+ type: PropType<readonly ToastInput<string>[]>;
84
+ default: undefined;
85
+ };
41
86
  initialToasts: {
42
87
  type: PropType<readonly ToastInput<string>[]>;
43
88
  default: () => never[];
@@ -50,13 +95,68 @@ export declare const ToastProvider: import("vue").DefineComponent<import("vue").
50
95
  type: NumberConstructor;
51
96
  default: number;
52
97
  };
53
- }>> & Readonly<{}>, {
98
+ closeLabel: {
99
+ type: StringConstructor;
100
+ default: string;
101
+ };
102
+ hotkey: {
103
+ type: PropType<readonly string[] | false>;
104
+ default: () => string[];
105
+ };
106
+ pauseOnWindowBlur: {
107
+ type: BooleanConstructor;
108
+ default: boolean;
109
+ };
110
+ dismissOnEscape: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ swipeDirection: {
115
+ type: PropType<'up' | 'right' | 'down' | 'left'>;
116
+ default: string;
117
+ };
118
+ swipeThreshold: {
119
+ type: NumberConstructor;
120
+ default: number;
121
+ };
122
+ }>> & Readonly<{
123
+ "onUpdate:toasts"?: (_items: readonly ToastInput<string>[]) => any;
124
+ }>, {
125
+ toasts: readonly ToastInput<string>[];
54
126
  initialToasts: readonly ToastInput<string>[];
55
127
  defaultDurationMs: number | null;
56
128
  maxVisible: number;
129
+ closeLabel: string;
130
+ hotkey: false | readonly string[];
131
+ pauseOnWindowBlur: boolean;
132
+ dismissOnEscape: boolean;
133
+ swipeDirection: "down" | "left" | "right" | "up";
134
+ swipeThreshold: number;
57
135
  }, SlotsType<{
58
136
  default: (props: ToastProviderSlotProps) => VNodeChild;
59
137
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
138
+ export declare const ToastPortal: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
139
+ to: {
140
+ type: PropType<string | HTMLElement>;
141
+ default: undefined;
142
+ };
143
+ disabled: {
144
+ type: BooleanConstructor;
145
+ default: boolean;
146
+ };
147
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
148
+ to: {
149
+ type: PropType<string | HTMLElement>;
150
+ default: undefined;
151
+ };
152
+ disabled: {
153
+ type: BooleanConstructor;
154
+ default: boolean;
155
+ };
156
+ }>> & Readonly<{}>, {
157
+ to: string | HTMLElement;
158
+ disabled: boolean;
159
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
60
160
  export declare const ToastViewport: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
61
161
  label: {
62
162
  type: StringConstructor;
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../src/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiJ,KAAK,QAAQ,EAAmB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACrO,OAAO,EAAqC,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AACxK,MAAM,WAAW,sBAAsB;IAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,IAAI,IAAI,CAAA;CAAE;AAC1M,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AACzF,MAAM,WAAW,cAAe,SAAQ,cAAc;IAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACjF,MAAM,WAAW,kBAAkB;IAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAgBxG,eAAO,MAAM,aAAa;;QAEE,IAAI,EAAW,QAAQ,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO;;;QAAmC,IAAI,EAAY,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QAAE,OAAO;;;QAAyB,IAAI;QAAU,OAAO;;UA2B7M,UAAU;;;;;;;;;;;;;;;;;;aA1Be,CAAC,KAAK,EAAE,sBAAsB,KAAK,UAAU;yEA4BnF,CAAC;AAEH,eAAO,MAAM,aAAa;;QAEN,IAAI;QAAU,OAAO;;;QAA2B,IAAI,EAAgC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO;;;QAAqB,IAAI;QAAW,OAAO;;UAKlK,UAAU;;;;;;;;;;;;;;;;;4EAEvB,CAAC;AAIH,eAAO,MAAM,SAAS;;;;;;QAEoC,IAAI,EAAgC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO;;;QAAqB,IAAI;QAAW,OAAO;;UAEuF,UAAU;;;;;;;;;;;;;;;;;aADhO,CAAC,KAAK,EAAE,kBAAkB,KAAK,UAAU;yEAE/E,CAAC;AAEH,eAAO,MAAM,UAAU;;cAQsJ,QAAQ,CAAC,WAAW,CAAC;;;;QAAuD,IAAI;QAAW,OAAO;;UAA0F,UAAU;;;;;;;;;;;;4EAR9S,CAAC;AACtE,eAAO,MAAM,gBAAgB;;cAOgJ,QAAQ,CAAC,WAAW,CAAC;;;;QAAuD,IAAI;QAAW,OAAO;;UAA0F,UAAU;;;;;;;;;;;;4EAP5R,CAAC;AACxF,eAAO,MAAM,UAAU;;QAEN,IAAI,EAAgC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO;;;QAAyB,IAAI;QAAW,OAAO;;UACC,UAAU;;;;;;;;;;;;4EAC3I,CAAC"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../src/toast.ts"],"names":[],"mappings":"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"}
package/dist/toast.js CHANGED
@@ -1,47 +1,136 @@
1
- import { Fragment, computed, defineComponent, h, inject, mergeProps, onBeforeUnmount, onMounted, provide, shallowRef } from 'vue';
2
- import { createToast } from '@sectile/dom/toast';
1
+ import { Fragment, Teleport, computed, defineComponent, h, inject, mergeProps, onBeforeUnmount, onMounted, provide, shallowRef, watch, } from 'vue';
2
+ import { createToast, createToastState } from '@sectile/dom/toast';
3
3
  import { Primitive } from './primitive.js';
4
+ import { useHostPortalTarget } from './host-provider.js';
4
5
  const key = Symbol('SectileToastProvider');
5
6
  export const ToastProvider = defineComponent({
6
7
  name: 'SectileToastProvider',
7
- props: { initialToasts: { type: Array, default: () => [] }, defaultDurationMs: { type: Number, default: 5_000 }, maxVisible: { type: Number, default: 3 } },
8
+ props: {
9
+ toasts: { type: Array, default: undefined },
10
+ initialToasts: { type: Array, default: () => [] },
11
+ defaultDurationMs: { type: Number, default: 5_000 },
12
+ maxVisible: { type: Number, default: 3 },
13
+ closeLabel: { type: String, default: 'Dismiss notification' },
14
+ hotkey: { type: [Array, Boolean], default: () => ['F8'] },
15
+ pauseOnWindowBlur: { type: Boolean, default: true }, dismissOnEscape: { type: Boolean, default: true },
16
+ swipeDirection: { type: String, default: 'right' },
17
+ swipeThreshold: { type: Number, default: 50 },
18
+ },
19
+ emits: { 'update:toasts': (_items) => true },
8
20
  slots: Object,
9
- setup(props, { slots }) {
21
+ setup(props, { emit, slots }) {
10
22
  const connection = shallowRef();
11
23
  const pending = [];
12
- const initialItems = props.initialToasts.map((item) => Object.freeze({ id: item.id, title: item.title.trim(), description: item.description?.trim() || null, kind: item.kind ?? 'info', durationMs: item.durationMs === undefined ? props.defaultDurationMs : item.durationMs, remainingMs: item.durationMs === undefined ? props.defaultDurationMs : item.durationMs }));
13
- const state = shallowRef({ items: Object.freeze(initialItems), paused: false });
14
- const options = { defaultDurationMs: props.defaultDurationMs, maxVisible: props.maxVisible };
15
- const refresh = () => { const next = connection.value?.getSnapshot().state; if (next !== undefined)
16
- state.value = next; };
24
+ const controlled = props.toasts !== undefined;
25
+ const initialState = createToastState(props.toasts ?? props.initialToasts, false, { defaultDurationMs: props.defaultDurationMs, maxVisible: props.maxVisible });
26
+ const state = shallowRef(initialState);
27
+ const activeIDs = shallowRef(new Set(initialState.items.map((item) => item.id)));
28
+ const closeLabel = computed(() => props.closeLabel);
29
+ const swipeDirection = computed(() => props.swipeDirection);
30
+ let activeItems = [...initialState.items];
31
+ let viewport;
32
+ const exiting = new Map();
33
+ const elements = new Map();
34
+ const exitCleanups = new Map();
35
+ const finishExit = (id) => {
36
+ exitCleanups.get(id)?.();
37
+ exitCleanups.delete(id);
38
+ exiting.delete(id);
39
+ elements.delete(id);
40
+ state.value = { ...state.value, items: Object.freeze(state.value.items.filter((item) => item.id !== id)) };
41
+ };
42
+ const scheduleExit = (id) => {
43
+ if (exitCleanups.has(id))
44
+ return;
45
+ const element = elements.get(id);
46
+ if (element === undefined)
47
+ return;
48
+ const start = setTimeout(() => {
49
+ const duration = motionDuration(element);
50
+ if (duration === 0) {
51
+ finishExit(id);
52
+ return;
53
+ }
54
+ const done = (event) => { if (event.target === element)
55
+ finishExit(id); };
56
+ element.addEventListener('animationend', done);
57
+ element.addEventListener('transitionend', done);
58
+ const fallback = setTimeout(() => finishExit(id), duration + 50);
59
+ exitCleanups.set(id, () => { clearTimeout(fallback); element.removeEventListener('animationend', done); element.removeEventListener('transitionend', done); });
60
+ }, 0);
61
+ exitCleanups.set(id, () => { clearTimeout(start); });
62
+ };
63
+ const refresh = () => {
64
+ const next = connection.value?.getSnapshot().state;
65
+ if (next === undefined)
66
+ return;
67
+ const nextIDs = new Set(next.items.map((item) => item.id));
68
+ for (const item of activeItems)
69
+ if (!nextIDs.has(item.id))
70
+ exiting.set(item.id, item);
71
+ for (const item of next.items) {
72
+ exiting.delete(item.id);
73
+ exitCleanups.get(item.id)?.();
74
+ exitCleanups.delete(item.id);
75
+ }
76
+ activeItems = [...next.items];
77
+ activeIDs.value = nextIDs;
78
+ const byID = new Map([...next.items, ...exiting.values()].map((item) => [item.id, item]));
79
+ const ordered = [
80
+ ...state.value.items.map((item) => byID.get(item.id)).filter((item) => item !== undefined),
81
+ ...next.items.filter((item) => !state.value.items.some((previous) => previous.id === item.id)),
82
+ ];
83
+ state.value = { items: Object.freeze(ordered), paused: next.paused };
84
+ for (const id of exiting.keys())
85
+ scheduleExit(id);
86
+ };
87
+ const connect = (root, label) => {
88
+ viewport = { root, label };
89
+ connection.value?.disconnect();
90
+ connection.value = createToast({
91
+ root, ...(controlled ? { items: props.toasts } : { initialToasts: props.initialToasts }),
92
+ label, closeLabel: props.closeLabel, defaultDurationMs: props.defaultDurationMs, maxVisible: props.maxVisible,
93
+ hotkey: props.hotkey, pauseOnWindowBlur: props.pauseOnWindowBlur, dismissOnEscape: props.dismissOnEscape,
94
+ swipeDirection: props.swipeDirection, swipeThreshold: props.swipeThreshold, manageVisibility: false,
95
+ onItemsChange: (items) => { emit('update:toasts', items.map(toInput)); }, onUpdate: refresh,
96
+ });
97
+ for (const input of pending.splice(0))
98
+ connection.value.push(input);
99
+ root.querySelectorAll('[data-sectile-toast-item]').forEach((node) => { const id = node.dataset['sectileToastItem']; if (id !== undefined)
100
+ connection.value?.setToastAttributes(node, id); });
101
+ root.querySelectorAll('[data-sectile-toast-close]').forEach((node) => { const id = node.dataset['sectileToastClose']; if (id !== undefined)
102
+ connection.value?.setCloseButtonAttributes(node, id); });
103
+ refresh();
104
+ };
105
+ const disconnect = () => { connection.value?.disconnect(); connection.value = undefined; for (const cleanup of exitCleanups.values())
106
+ cleanup(); exitCleanups.clear(); };
17
107
  const context = {
18
- state, connection, options,
19
- connect: (root) => {
20
- connection.value?.disconnect();
21
- connection.value = createToast({ root, initialToasts: props.initialToasts, defaultDurationMs: props.defaultDurationMs, maxVisible: props.maxVisible, onUpdate: refresh });
22
- for (const input of pending.splice(0))
23
- connection.value.push(input);
24
- root.querySelectorAll('[data-sectile-toast-item]').forEach((node) => { const id = node.dataset['sectileToastItem']; if (id !== undefined)
25
- connection.value?.setToastAttributes(node, id); });
26
- root.querySelectorAll('[data-sectile-toast-close]').forEach((node) => { const id = node.dataset['sectileToastClose']; if (id !== undefined)
27
- connection.value?.setCloseButtonAttributes(node, id); });
28
- refresh();
29
- },
30
- disconnect: () => { connection.value?.disconnect(); connection.value = undefined; },
108
+ state, activeIDs, connection, closeLabel, swipeDirection, connect, disconnect,
31
109
  push: (input) => { if (connection.value === undefined)
32
110
  pending.push(input);
33
111
  else
34
112
  connection.value.push(input); refresh(); },
35
113
  dismiss: (id) => { connection.value?.dismiss(id); refresh(); },
36
114
  dismissAll: () => { connection.value?.dismissAll(); refresh(); },
37
- registerItem: (element, id) => connection.value?.setToastAttributes(element, id),
115
+ registerItem: (element, id) => { elements.set(id, element); connection.value?.setToastAttributes(element, id); if (!activeIDs.value.has(id))
116
+ scheduleExit(id); },
38
117
  registerClose: (element, id) => connection.value?.setCloseButtonAttributes(element, id),
39
118
  };
40
119
  provide(key, context);
41
- onBeforeUnmount(context.disconnect);
120
+ watch(() => props.toasts, (items) => { if (!controlled || items === undefined || connection.value === undefined)
121
+ return; const result = connection.value.syncItems(items); if (!result.ok)
122
+ throw new TypeError(result.error.message); refresh(); });
123
+ watch([() => props.closeLabel, () => props.hotkey, () => props.pauseOnWindowBlur, () => props.dismissOnEscape, () => props.swipeDirection, () => props.swipeThreshold, () => props.defaultDurationMs, () => props.maxVisible], () => { if (viewport !== undefined)
124
+ connect(viewport.root, viewport.label); });
125
+ onBeforeUnmount(disconnect);
42
126
  return () => h(Fragment, null, slots['default']?.({ toasts: state.value.items, paused: state.value.paused, toast: context.push, dismiss: context.dismiss, dismissAll: context.dismissAll }) ?? []);
43
127
  },
44
128
  });
129
+ export const ToastPortal = defineComponent({
130
+ name: 'SectileToastPortal',
131
+ props: { to: { type: [String, Object], default: undefined }, disabled: { type: Boolean, default: false } },
132
+ setup(props, { slots }) { useProvider('ToastPortal'); const portalTarget = useHostPortalTarget(); return () => h(Teleport, { to: props.to ?? portalTarget.value ?? 'body', disabled: props.disabled }, slots['default']?.()); },
133
+ });
45
134
  export const ToastViewport = defineComponent({
46
135
  name: 'SectileToastViewport', inheritAttrs: false,
47
136
  props: { label: { type: String, default: 'Notifications' }, as: { type: [String, Object, Function], default: 'ol' }, asChild: { type: Boolean, default: false } },
@@ -49,9 +138,11 @@ export const ToastViewport = defineComponent({
49
138
  const root = useProvider('ToastViewport');
50
139
  const element = shallowRef();
51
140
  onMounted(() => { if (element.value !== undefined)
52
- root.connect(element.value); });
141
+ root.connect(element.value, props.label); });
142
+ watch(() => props.label, (label) => { if (element.value !== undefined)
143
+ root.connect(element.value, label); });
53
144
  return () => h(Primitive, mergeProps(attrs, { as: props.as, asChild: props.asChild, elementRef: (candidate) => { if (candidate instanceof HTMLElement)
54
- element.value = candidate; }, role: 'region', 'aria-label': props.label, 'aria-live': 'polite', 'data-scope': 'toast', 'data-part': 'viewport', 'data-paused': String(root.state.value.paused) }), slots);
145
+ element.value = candidate; }, tabindex: -1, role: 'region', 'aria-label': props.label, 'aria-live': 'polite', 'data-scope': 'toast', 'data-part': 'viewport', 'data-paused': String(root.state.value.paused) }), slots);
55
146
  },
56
147
  });
57
148
  const toastRootKey = Symbol('SectileToastRoot');
@@ -59,8 +150,14 @@ export const ToastRoot = defineComponent({
59
150
  name: 'SectileToastRoot', inheritAttrs: false,
60
151
  props: { value: { type: String, required: true }, as: { type: [String, Object, Function], default: 'li' }, asChild: { type: Boolean, default: false } },
61
152
  slots: Object,
62
- setup(props, { attrs, slots }) { const provider = useProvider('ToastRoot'); const item = computed(() => provider.state.value.items.find((candidate) => candidate.id === props.value) ?? null); provide(toastRootKey, { id: props.value, item }); return () => h(Primitive, mergeProps(attrs, { as: props.as, asChild: props.asChild, elementRef: (element) => { if (element instanceof HTMLElement)
63
- provider.registerItem(element, props.value); }, hidden: item.value === null, role: item.value?.kind === 'error' ? 'alert' : 'status', 'data-sectile-toast-item': props.value, 'data-scope': 'toast', 'data-part': 'root', 'data-state': item.value === null ? 'closed' : 'open', 'data-kind': item.value?.kind }), { default: () => slots['default']?.({ toast: item.value, open: item.value !== null }) }); },
153
+ setup(props, { attrs, slots }) {
154
+ const provider = useProvider('ToastRoot');
155
+ const item = computed(() => provider.state.value.items.find((candidate) => candidate.id === props.value) ?? null);
156
+ const open = computed(() => provider.activeIDs.value.has(props.value));
157
+ provide(toastRootKey, { id: props.value, item });
158
+ return () => h(Primitive, mergeProps(attrs, { as: props.as, asChild: props.asChild, elementRef: (element) => { if (element instanceof HTMLElement)
159
+ provider.registerItem(element, props.value); }, hidden: item.value === null, role: item.value?.kind === 'error' ? 'alert' : 'status', 'data-sectile-toast-item': props.value, 'data-scope': 'toast', 'data-part': 'root', 'data-state': open.value ? 'open' : 'closed', 'data-swipe-direction': provider.swipeDirection.value, 'data-kind': item.value?.kind }), { default: () => slots['default']?.({ toast: item.value, open: open.value }) });
160
+ },
64
161
  });
65
162
  export const ToastTitle = toastTextPart('SectileToastTitle', 'title');
66
163
  export const ToastDescription = toastTextPart('SectileToastDescription', 'description');
@@ -68,11 +165,16 @@ export const ToastClose = defineComponent({
68
165
  name: 'SectileToastClose', inheritAttrs: false,
69
166
  props: { as: { type: [String, Object, Function], default: 'button' }, asChild: { type: Boolean, default: false } },
70
167
  setup(props, { attrs, slots }) { const provider = useProvider('ToastClose'); const root = useToastRoot('ToastClose'); return () => h(Primitive, mergeProps(attrs, { as: props.as, asChild: props.asChild, elementRef: (element) => { if (element instanceof HTMLButtonElement)
71
- provider.registerClose(element, root.id); }, type: props.as === 'button' ? 'button' : undefined, 'aria-label': 'Dismiss notification', 'data-sectile-toast-close': root.id, 'data-scope': 'toast', 'data-part': 'close' }), slots); },
168
+ provider.registerClose(element, root.id); }, type: props.as === 'button' ? 'button' : undefined, 'aria-label': provider.closeLabel.value, 'data-sectile-toast-close': root.id, 'data-scope': 'toast', 'data-part': 'close' }), slots); },
72
169
  });
73
170
  function toastTextPart(name, part) { return defineComponent({ name, inheritAttrs: false, props: { as: { type: [String, Object, Function], default: part === 'title' ? 'h2' : 'p' }, asChild: { type: Boolean, default: false } }, setup(props, { attrs, slots }) { const root = useToastRoot(name); return () => h(Primitive, mergeProps(attrs, { as: props.as, asChild: props.asChild, 'data-scope': 'toast', 'data-part': part }), { default: () => slots['default']?.() ?? (part === 'title' ? root.item.value?.title : root.item.value?.description) }); } }); }
74
171
  function useProvider(part) { const context = inject(key); if (context === undefined)
75
172
  throw new TypeError(`${part} must be used inside ToastProvider.`); return context; }
76
173
  function useToastRoot(part) { const context = inject(toastRootKey); if (context === undefined)
77
174
  throw new TypeError(`${part} must be used inside ToastRoot.`); return context; }
175
+ function toInput(item) { return Object.freeze({ id: item.id, title: item.title, ...(item.description === null ? {} : { description: item.description }), kind: item.kind, durationMs: item.durationMs }); }
176
+ function motionDuration(element) { const view = element.ownerDocument?.defaultView; if (view === null || view === undefined)
177
+ return 0; const style = view.getComputedStyle(element); return Math.max(totalMotion(style.animationDuration, style.animationDelay), totalMotion(style.transitionDuration, style.transitionDelay)); }
178
+ function totalMotion(durations, delays) { const durationValues = durations.split(',').map(timeMs); const delayValues = delays.split(',').map(timeMs); return durationValues.reduce((maximum, duration, index) => Math.max(maximum, duration + (delayValues[index % Math.max(1, delayValues.length)] ?? 0)), 0); }
179
+ function timeMs(value) { const text = value.trim(); return text.endsWith('ms') ? Number.parseFloat(text) || 0 : (Number.parseFloat(text) || 0) * 1_000; }
78
180
  //# sourceMappingURL=toast.js.map
package/dist/toast.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","sourceRoot":"","sources":["../src/toast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../src/toast.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Headless Vue components for Sectile DOM interaction semantics.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -48,6 +48,11 @@
48
48
  "import": "./dist/dialog.js",
49
49
  "default": "./dist/dialog.js"
50
50
  },
51
+ "./drawer": {
52
+ "types": "./dist/drawer.d.ts",
53
+ "import": "./dist/drawer.js",
54
+ "default": "./dist/drawer.js"
55
+ },
51
56
  "./popover": {
52
57
  "types": "./dist/popover.d.ts",
53
58
  "import": "./dist/popover.js",
@@ -336,7 +341,7 @@
336
341
  "./package.json": "./package.json"
337
342
  },
338
343
  "dependencies": {
339
- "@sectile/dom": "0.2.1"
344
+ "@sectile/dom": "0.3.0"
340
345
  },
341
346
  "peerDependencies": {
342
347
  "vue": "^3.5.0"
@@ -350,7 +355,7 @@
350
355
  "scripts": {
351
356
  "build": "node scripts/build.mjs",
352
357
  "typecheck": "tsc --project tsconfig.json --pretty false",
353
- "test": "pnpm --silent run build && node --test tests/*.test.mjs",
358
+ "test": "pnpm --silent run build && node --test --test-concurrency=1 tests/*.test.mjs",
354
359
  "verify": "pnpm run typecheck && pnpm run test"
355
360
  }
356
361
  }