@hawiyah/vue 0.0.0-stage → 0.2.1
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 +73 -0
- package/NOTICE +19 -0
- package/PORTAL.md +70 -0
- package/README.md +388 -2
- package/dist/calendar.d.ts +183 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +448 -0
- package/dist/calendar.js.map +1 -0
- package/dist/content-navigation.d.ts +61 -0
- package/dist/content-navigation.d.ts.map +1 -0
- package/dist/content-navigation.js +31 -0
- package/dist/content-navigation.js.map +1 -0
- package/dist/content.d.ts +392 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +310 -0
- package/dist/content.js.map +1 -0
- package/dist/controls.d.ts +657 -0
- package/dist/controls.d.ts.map +1 -0
- package/dist/controls.js +679 -0
- package/dist/controls.js.map +1 -0
- package/dist/display.d.ts +387 -0
- package/dist/display.d.ts.map +1 -0
- package/dist/display.js +293 -0
- package/dist/display.js.map +1 -0
- package/dist/expansion-interactive.d.ts +476 -0
- package/dist/expansion-interactive.d.ts.map +1 -0
- package/dist/expansion-interactive.js +613 -0
- package/dist/expansion-interactive.js.map +1 -0
- package/dist/file-upload-list.d.ts +54 -0
- package/dist/file-upload-list.d.ts.map +1 -0
- package/dist/file-upload-list.js +21 -0
- package/dist/file-upload-list.js.map +1 -0
- package/dist/forms.d.ts +388 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +156 -0
- package/dist/forms.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive.d.ts +240 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +341 -0
- package/dist/interactive.js.map +1 -0
- package/dist/layout.d.ts +755 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +101 -0
- package/dist/layout.js.map +1 -0
- package/dist/mobile-top-bar.d.ts +47 -0
- package/dist/mobile-top-bar.d.ts.map +1 -0
- package/dist/mobile-top-bar.js +18 -0
- package/dist/mobile-top-bar.js.map +1 -0
- package/dist/native-attributes.d.ts +38 -0
- package/dist/native-attributes.d.ts.map +1 -0
- package/dist/native-attributes.js +27 -0
- package/dist/native-attributes.js.map +1 -0
- package/dist/navigation-drawer.d.ts +87 -0
- package/dist/navigation-drawer.d.ts.map +1 -0
- package/dist/navigation-drawer.js +56 -0
- package/dist/navigation-drawer.js.map +1 -0
- package/dist/patterns.d.ts +455 -0
- package/dist/patterns.d.ts.map +1 -0
- package/dist/patterns.js +355 -0
- package/dist/patterns.js.map +1 -0
- package/dist/portal.d.ts +174 -0
- package/dist/portal.d.ts.map +1 -0
- package/dist/portal.js +36 -0
- package/dist/portal.js.map +1 -0
- package/dist/search-field.d.ts +87 -0
- package/dist/search-field.d.ts.map +1 -0
- package/dist/search-field.js +123 -0
- package/dist/search-field.js.map +1 -0
- package/dist/shared.d.ts +46 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +40 -0
- package/dist/shared.js.map +1 -0
- package/dist/site-verification.d.ts +63 -0
- package/dist/site-verification.d.ts.map +1 -0
- package/dist/site-verification.js +34 -0
- package/dist/site-verification.js.map +1 -0
- package/package.json +53 -3
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { cloneVNode, computed, defineComponent, h, isVNode, mergeProps, nextTick, onBeforeUnmount, onMounted, ref, useId, watch, watchEffect } from 'vue';
|
|
2
|
+
import { createComboboxState, getComboboxOptions, getDirection, getNextEnabledIndex, isDisabled, observeTabOverflow, restoreFocus, transitionCombobox } from '@hawiyah/core';
|
|
3
|
+
import { Button, decorate } from './forms.js';
|
|
4
|
+
import { decorationProps, joinIds, useField, useFormReset, useValue } from './shared.js';
|
|
5
|
+
export const Tabs = defineComponent({
|
|
6
|
+
name: 'HwTabs', inheritAttrs: false,
|
|
7
|
+
props: { items: { type: Array, required: true }, label: { type: String, required: true }, modelValue: String, defaultValue: String,
|
|
8
|
+
orientation: { type: String, default: 'horizontal' }, activationMode: { type: String, default: 'automatic' },
|
|
9
|
+
overflow: { type: String, default: 'menu' }, overflowLabel: { type: String, default: 'المزيد من التبويبات' } },
|
|
10
|
+
emits: { 'update:modelValue': (_value) => true },
|
|
11
|
+
setup(props, { attrs, slots, emit }) {
|
|
12
|
+
const id = `hw-${useId()}`;
|
|
13
|
+
const model = useValue(() => props.modelValue, props.defaultValue ?? props.items.find(item => !item.disabled)?.value ?? '', value => emit('update:modelValue', value));
|
|
14
|
+
const focused = ref();
|
|
15
|
+
const active = computed(() => props.items.find(item => item.value === model.value.value && !item.disabled)?.value ?? props.items.find(item => !item.disabled)?.value);
|
|
16
|
+
const buttons = new Map();
|
|
17
|
+
const bar = ref();
|
|
18
|
+
const disclosure = ref();
|
|
19
|
+
const hidden = ref([]);
|
|
20
|
+
let observer;
|
|
21
|
+
let alive = true;
|
|
22
|
+
const visible = computed(() => props.items.filter((item, index) => !hidden.value.includes(index) && !item.disabled));
|
|
23
|
+
const focusValue = computed(() => visible.value.find(item => item.value === focused.value)?.value ?? visible.value.find(item => item.value === active.value)?.value ?? visible.value[0]?.value);
|
|
24
|
+
const close = () => { if (disclosure.value)
|
|
25
|
+
disclosure.value.open = false; };
|
|
26
|
+
const outside = (event) => { if (!bar.value?.contains(event.target))
|
|
27
|
+
close(); };
|
|
28
|
+
onMounted(() => {
|
|
29
|
+
const node = bar.value;
|
|
30
|
+
observer = observeTabOverflow({ container: node, tabs: () => props.items.map(item => buttons.get(item.value)).filter(Boolean), enabled: () => props.overflow === 'menu' && props.orientation === 'horizontal', onChange: next => {
|
|
31
|
+
const focusedElement = node.ownerDocument.activeElement;
|
|
32
|
+
const menuValue = focusedElement?.dataset.hwOverflowValue;
|
|
33
|
+
const itemIndex = props.items.findIndex(item => item.value === menuValue);
|
|
34
|
+
const toMenu = menuValue !== undefined && itemIndex >= 0 && next.includes(itemIndex);
|
|
35
|
+
const toOriginal = menuValue !== undefined && itemIndex >= 0 && !toMenu;
|
|
36
|
+
const toSummary = next.some(index => buttons.get(props.items[index]?.value ?? '') === focusedElement) || (!toMenu && !toOriginal && !!next.length && !!disclosure.value?.contains(focusedElement));
|
|
37
|
+
const toTab = !next.length && disclosure.value?.contains(focusedElement);
|
|
38
|
+
if (!toMenu)
|
|
39
|
+
close();
|
|
40
|
+
hidden.value = next;
|
|
41
|
+
void nextTick(() => { if (!alive)
|
|
42
|
+
return; if (toMenu)
|
|
43
|
+
[...(disclosure.value?.querySelectorAll('[data-hw-overflow-value]') ?? [])].find(button => button.dataset.hwOverflowValue === menuValue)?.focus();
|
|
44
|
+
else if (toOriginal)
|
|
45
|
+
buttons.get(menuValue)?.focus();
|
|
46
|
+
else if (toSummary)
|
|
47
|
+
disclosure.value?.querySelector('summary')?.focus();
|
|
48
|
+
else if (toTab && focusValue.value)
|
|
49
|
+
buttons.get(focusValue.value)?.focus(); });
|
|
50
|
+
} });
|
|
51
|
+
node.ownerDocument.addEventListener('click', outside);
|
|
52
|
+
});
|
|
53
|
+
watch(() => [props.items, props.overflow, props.orientation], () => { observer?.refresh(); const focusedElement = bar.value?.ownerDocument.activeElement; if (focusedElement?.getAttribute('data-hw-overflow-hidden') === 'true' && bar.value?.contains(focusedElement))
|
|
54
|
+
disclosure.value?.querySelector('summary')?.focus(); }, { deep: true, flush: 'post' });
|
|
55
|
+
watch(active, close);
|
|
56
|
+
onBeforeUnmount(() => { alive = false; observer?.destroy(); bar.value?.ownerDocument.removeEventListener('click', outside); });
|
|
57
|
+
return () => h('div', mergeProps(attrs, { class: 'hw-tabs' }), [
|
|
58
|
+
h('div', { class: 'hw-tab-bar', ref: bar, 'data-hw-overflow': props.overflow, 'data-orientation': props.orientation }, [
|
|
59
|
+
h('div', { class: 'hw-tab-list', 'data-hw-overflow': props.overflow, role: 'tablist', 'aria-label': props.label, 'aria-orientation': props.orientation, 'aria-hidden': hidden.value.length === props.items.length || undefined }, props.items.map((item, index) => h('button', {
|
|
60
|
+
key: item.value, ref: (element) => { if (element)
|
|
61
|
+
buttons.set(item.value, element);
|
|
62
|
+
else
|
|
63
|
+
buttons.delete(item.value); },
|
|
64
|
+
class: 'hw-tab', type: 'button', role: 'tab', id: `${id}-tab-${index}`, 'aria-controls': `${id}-panel-${index}`, 'aria-selected': active.value === item.value,
|
|
65
|
+
'data-hw-overflow-hidden': hidden.value.includes(index) ? 'true' : undefined, 'aria-hidden': hidden.value.includes(index) || undefined,
|
|
66
|
+
tabindex: !hidden.value.includes(index) && focusValue.value === item.value ? 0 : -1, disabled: item.disabled,
|
|
67
|
+
onFocus: () => { focused.value = item.value; }, onClick: () => { if (!item.disabled)
|
|
68
|
+
model.set(item.value); },
|
|
69
|
+
onKeydown: (event) => {
|
|
70
|
+
if (event.altKey || event.ctrlKey || event.metaKey || event.isComposing)
|
|
71
|
+
return;
|
|
72
|
+
const keys = props.orientation === 'vertical' ? ['ArrowDown', 'ArrowUp', 'Home', 'End'] : ['ArrowLeft', 'ArrowRight', 'Home', 'End'];
|
|
73
|
+
if (!keys.includes(event.key))
|
|
74
|
+
return;
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
const next = props.items[getNextEnabledIndex(index, event.key, props.items.map((candidate, i) => ({ disabled: candidate.disabled || hidden.value.includes(i) })), getDirection(event.currentTarget), props.orientation)];
|
|
77
|
+
if (!next)
|
|
78
|
+
return;
|
|
79
|
+
focused.value = next.value;
|
|
80
|
+
buttons.get(next.value)?.focus();
|
|
81
|
+
if (props.activationMode === 'automatic')
|
|
82
|
+
model.set(next.value);
|
|
83
|
+
},
|
|
84
|
+
}, slots[`tab:${item.value}`]?.({ item }) ?? item.label))),
|
|
85
|
+
h('details', { class: 'hw-tabs-overflow', ref: disclosure, hidden: !hidden.value.length, onKeydown: (event) => { if (event.key === 'Escape' && disclosure.value?.open) {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
close();
|
|
88
|
+
disclosure.value.querySelector('summary')?.focus();
|
|
89
|
+
} } }, [
|
|
90
|
+
h('summary', { class: 'hw-tab-overflow-trigger', 'aria-label': props.overflowLabel, 'data-active': hidden.value.some(index => props.items[index]?.value === active.value) ? 'true' : undefined }, '…'),
|
|
91
|
+
h('div', { class: 'hw-tab-overflow-menu' }, hidden.value.map(index => { const item = props.items[index]; return item && h('button', { key: item.value, type: 'button', class: 'hw-tab-overflow-item', 'data-hw-overflow-value': item.value, disabled: item.disabled, 'aria-pressed': item.value === active.value, onClick: () => { if (item.disabled)
|
|
92
|
+
return; model.set(item.value); close(); disclosure.value?.querySelector('summary')?.focus(); } }, slots[`tab:${item.value}`]?.({ item }) ?? item.label); })),
|
|
93
|
+
]),
|
|
94
|
+
]),
|
|
95
|
+
...props.items.map((item, index) => h('section', { key: item.value, class: 'hw-tab-panel', id: `${id}-panel-${index}`, role: 'tabpanel', 'aria-labelledby': `${id}-tab-${index}`, tabindex: 0, hidden: active.value !== item.value }, [slots[item.value]?.() ?? item.content])),
|
|
96
|
+
]);
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
export const Dialog = defineComponent({
|
|
100
|
+
name: 'HwDialog', inheritAttrs: false,
|
|
101
|
+
props: { open: { type: Boolean, default: undefined }, defaultOpen: Boolean, title: { type: String, required: true }, description: String, closeLabel: { type: String, default: 'Close' }, closeOnBackdrop: { type: Boolean, default: true } },
|
|
102
|
+
emits: { 'update:open': (_open) => true },
|
|
103
|
+
setup(props, { attrs, slots, emit, expose }) {
|
|
104
|
+
const id = `hw-${useId()}`;
|
|
105
|
+
const element = ref();
|
|
106
|
+
const model = useValue(() => props.open, props.defaultOpen, value => emit('update:open', value));
|
|
107
|
+
let previousFocus = null;
|
|
108
|
+
let backdropStarted = false;
|
|
109
|
+
const close = () => { backdropStarted = false; model.set(false); };
|
|
110
|
+
const show = () => { backdropStarted = false; model.set(true); };
|
|
111
|
+
watchEffect(() => {
|
|
112
|
+
const dialog = element.value;
|
|
113
|
+
if (!dialog)
|
|
114
|
+
return;
|
|
115
|
+
if (model.value.value && !dialog.open) {
|
|
116
|
+
backdropStarted = false;
|
|
117
|
+
previousFocus = dialog.ownerDocument.activeElement;
|
|
118
|
+
dialog.showModal();
|
|
119
|
+
}
|
|
120
|
+
else if (!model.value.value && dialog.open) {
|
|
121
|
+
backdropStarted = false;
|
|
122
|
+
dialog.close();
|
|
123
|
+
restoreFocus(previousFocus);
|
|
124
|
+
}
|
|
125
|
+
}, { flush: 'post' });
|
|
126
|
+
onBeforeUnmount(() => { if (element.value?.open) {
|
|
127
|
+
element.value.close();
|
|
128
|
+
restoreFocus(previousFocus);
|
|
129
|
+
} });
|
|
130
|
+
expose({ element, show, close });
|
|
131
|
+
return () => [slots.trigger?.({ open: show }), h('dialog', mergeProps(attrs, {
|
|
132
|
+
ref: element, class: 'hw-dialog', 'aria-labelledby': attrs['aria-labelledby'] ?? `${id}-title`, 'aria-describedby': attrs['aria-describedby'] ?? (props.description ? `${id}-description` : undefined),
|
|
133
|
+
onCancel: (event) => { backdropStarted = false; if (!event.defaultPrevented) {
|
|
134
|
+
event.preventDefault();
|
|
135
|
+
close();
|
|
136
|
+
} },
|
|
137
|
+
onClose: () => { backdropStarted = false; if (model.value.value)
|
|
138
|
+
close(); restoreFocus(previousFocus); },
|
|
139
|
+
onPointerdown: (event) => {
|
|
140
|
+
const bounds = element.value.getBoundingClientRect();
|
|
141
|
+
backdropStarted = !event.defaultPrevented && event.button === 0 && event.target === event.currentTarget &&
|
|
142
|
+
(event.clientX < bounds.left || event.clientX > bounds.right || event.clientY < bounds.top || event.clientY > bounds.bottom);
|
|
143
|
+
},
|
|
144
|
+
onPointercancel: () => { backdropStarted = false; },
|
|
145
|
+
onClick: (event) => {
|
|
146
|
+
const started = backdropStarted;
|
|
147
|
+
backdropStarted = false;
|
|
148
|
+
if (event.defaultPrevented || !props.closeOnBackdrop || !started || event.target !== event.currentTarget)
|
|
149
|
+
return;
|
|
150
|
+
const bounds = element.value.getBoundingClientRect();
|
|
151
|
+
if (event.clientX < bounds.left || event.clientX > bounds.right || event.clientY < bounds.top || event.clientY > bounds.bottom)
|
|
152
|
+
close();
|
|
153
|
+
},
|
|
154
|
+
}), [
|
|
155
|
+
h('header', { class: 'hw-dialog-header' }, [h('h2', { id: `${id}-title` }, props.title), h(Button, { variant: 'ghost', 'aria-label': props.closeLabel, onClick: close }, () => h('span', { class: 'hw-icon', 'data-icon': 'cancel-01', 'data-size': 'md', 'aria-hidden': 'true' }))]),
|
|
156
|
+
h('div', { class: 'hw-dialog-body' }, [props.description && h('p', { id: `${id}-description` }, props.description), slots.default?.({ close })]),
|
|
157
|
+
slots.footer && h('footer', { class: 'hw-dialog-footer' }, slots.footer({ close })),
|
|
158
|
+
])];
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
export const Combobox = defineComponent({
|
|
162
|
+
name: 'HwCombobox', inheritAttrs: false,
|
|
163
|
+
props: { ...decorationProps, options: { type: Array, required: true }, modelValue: String, defaultValue: { type: String, default: '' }, disabled: Boolean, readonly: Boolean,
|
|
164
|
+
emptyMessage: { type: String, default: 'No options found' }, resultsMessage: { type: Function, default: (count) => `${count} results available` }, requiredMessage: { type: String, default: 'Choose an option from the list.' } },
|
|
165
|
+
emits: { 'update:modelValue': (_value) => true, 'update:open': (_open) => true, 'update:query': (_query) => true },
|
|
166
|
+
setup(props, { attrs, emit, expose }) {
|
|
167
|
+
const field = useField(props, attrs);
|
|
168
|
+
const element = ref();
|
|
169
|
+
const root = ref();
|
|
170
|
+
const state = ref(createComboboxState(props.options, props.modelValue ?? props.defaultValue));
|
|
171
|
+
const ancestorDisabled = ref(false);
|
|
172
|
+
const blocked = () => props.disabled || props.readonly || !!(element.value && isDisabled(element.value));
|
|
173
|
+
let disabledObserver;
|
|
174
|
+
onMounted(() => {
|
|
175
|
+
const input = element.value;
|
|
176
|
+
if (!input)
|
|
177
|
+
return;
|
|
178
|
+
const refresh = () => { ancestorDisabled.value = isDisabled(input); };
|
|
179
|
+
const Observer = input.ownerDocument.defaultView?.MutationObserver;
|
|
180
|
+
if (Observer)
|
|
181
|
+
disabledObserver = new Observer(refresh);
|
|
182
|
+
for (let ancestor = input.parentElement; ancestor; ancestor = ancestor.parentElement) {
|
|
183
|
+
if (ancestor.localName === 'fieldset')
|
|
184
|
+
disabledObserver?.observe(ancestor, { attributes: true, attributeFilter: ['disabled'] });
|
|
185
|
+
}
|
|
186
|
+
refresh();
|
|
187
|
+
});
|
|
188
|
+
onBeforeUnmount(() => disabledObserver?.disconnect());
|
|
189
|
+
watch(() => props.disabled || props.readonly || ancestorDisabled.value, unavailable => {
|
|
190
|
+
if (unavailable)
|
|
191
|
+
state.value = { ...state.value, open: false, activeIndex: -1 };
|
|
192
|
+
});
|
|
193
|
+
const effective = computed(() => ({ ...state.value, value: props.modelValue ?? state.value.value,
|
|
194
|
+
query: props.modelValue !== undefined && props.modelValue !== state.value.value ? createComboboxState(props.options, props.modelValue).query : state.value.query,
|
|
195
|
+
open: !props.disabled && !ancestorDisabled.value && !props.readonly && state.value.open }));
|
|
196
|
+
const results = computed(() => getComboboxOptions(effective.value, props.options));
|
|
197
|
+
let lastEmitted;
|
|
198
|
+
function dispatch(event) {
|
|
199
|
+
if (blocked() && event.type !== 'close' && event.type !== 'reset')
|
|
200
|
+
return;
|
|
201
|
+
const previous = effective.value;
|
|
202
|
+
const next = transitionCombobox(previous, event, props.options);
|
|
203
|
+
state.value = next;
|
|
204
|
+
if (next.value !== previous.value) {
|
|
205
|
+
lastEmitted = next.value;
|
|
206
|
+
emit('update:modelValue', next.value);
|
|
207
|
+
}
|
|
208
|
+
if (next.open !== previous.open)
|
|
209
|
+
emit('update:open', next.open);
|
|
210
|
+
}
|
|
211
|
+
watch(() => props.modelValue, value => {
|
|
212
|
+
if (value === undefined)
|
|
213
|
+
return;
|
|
214
|
+
if (value === lastEmitted) {
|
|
215
|
+
lastEmitted = undefined;
|
|
216
|
+
state.value = { ...state.value, value };
|
|
217
|
+
}
|
|
218
|
+
else
|
|
219
|
+
state.value = { ...createComboboxState(props.options, value), open: state.value.open };
|
|
220
|
+
});
|
|
221
|
+
watch(() => props.options, options => {
|
|
222
|
+
if (effective.value.value)
|
|
223
|
+
state.value = { ...createComboboxState(options, effective.value.value), open: state.value.open };
|
|
224
|
+
});
|
|
225
|
+
watchEffect(() => element.value?.setCustomValidity(field.controlAttrs.value.required && !effective.value.value ? props.requiredMessage : ''));
|
|
226
|
+
useFormReset(element, () => dispatch({ type: 'reset', value: props.defaultValue }));
|
|
227
|
+
const outside = (event) => { if (!root.value?.contains(event.target))
|
|
228
|
+
dispatch({ type: 'close' }); };
|
|
229
|
+
onMounted(() => element.value?.ownerDocument.addEventListener('pointerdown', outside));
|
|
230
|
+
onBeforeUnmount(() => element.value?.ownerDocument.removeEventListener('pointerdown', outside));
|
|
231
|
+
expose({ element, focus: () => element.value?.focus(), close: () => dispatch({ type: 'close' }) });
|
|
232
|
+
return () => {
|
|
233
|
+
const { name, form, ...inputAttrs } = attrs;
|
|
234
|
+
const listId = `${field.id.value}-listbox`;
|
|
235
|
+
const active = results.value[state.value.activeIndex];
|
|
236
|
+
const open = effective.value.open;
|
|
237
|
+
const query = effective.value.query;
|
|
238
|
+
return decorate(props, field.id.value, h('div', { ref: root, class: 'hw-combobox', onFocusout: (event) => { if (!root.value?.contains(event.relatedTarget))
|
|
239
|
+
dispatch({ type: 'close' }); } }, [
|
|
240
|
+
h('input', mergeProps(inputAttrs, field.controlAttrs.value, { ref: element, form, disabled: props.disabled, readonly: props.readonly, class: 'hw-input', type: 'text', role: 'combobox', autocomplete: 'off', 'aria-autocomplete': 'list', 'aria-readonly': props.readonly || undefined, 'aria-expanded': open, 'aria-controls': listId,
|
|
241
|
+
'aria-activedescendant': open && active && !active.disabled ? `${field.id.value}-option-${state.value.activeIndex}` : undefined, value: query,
|
|
242
|
+
onInput: (event) => { const input = event.target; if (blocked()) {
|
|
243
|
+
input.value = query;
|
|
244
|
+
return;
|
|
245
|
+
} const nextQuery = input.value; dispatch({ type: 'input', query: nextQuery }); emit('update:query', nextQuery); },
|
|
246
|
+
onFocus: (event) => { if (!event.defaultPrevented)
|
|
247
|
+
dispatch({ type: 'open' }); },
|
|
248
|
+
onClick: (event) => { if (!event.defaultPrevented && !open)
|
|
249
|
+
dispatch({ type: 'open' }); },
|
|
250
|
+
onKeydown: (event) => {
|
|
251
|
+
if (event.defaultPrevented || event.isComposing || blocked())
|
|
252
|
+
return;
|
|
253
|
+
if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
|
|
254
|
+
if (!open && (event.key === 'Home' || event.key === 'End'))
|
|
255
|
+
return;
|
|
256
|
+
event.preventDefault();
|
|
257
|
+
dispatch({ type: 'navigate', key: event.key });
|
|
258
|
+
}
|
|
259
|
+
else if (event.key === 'Enter' && open && active && !active.disabled) {
|
|
260
|
+
event.preventDefault();
|
|
261
|
+
dispatch({ type: 'select', value: active.value });
|
|
262
|
+
}
|
|
263
|
+
else if (event.key === 'Escape' && open) {
|
|
264
|
+
event.preventDefault();
|
|
265
|
+
event.stopPropagation();
|
|
266
|
+
dispatch({ type: 'close' });
|
|
267
|
+
}
|
|
268
|
+
else if (event.key === 'Tab')
|
|
269
|
+
dispatch({ type: 'close' });
|
|
270
|
+
},
|
|
271
|
+
})),
|
|
272
|
+
h('input', { type: 'hidden', name, form, disabled: props.disabled, value: effective.value.value }),
|
|
273
|
+
h('ul', { id: listId, role: 'listbox', class: 'hw-listbox', 'aria-label': attrs['aria-label'], 'aria-labelledby': field.controlAttrs.value['aria-labelledby'], hidden: !open }, [
|
|
274
|
+
...results.value.map((option, index) => h('li', { key: option.value, id: `${field.id.value}-option-${index}`, role: 'option', class: 'hw-option', 'aria-selected': effective.value.value === option.value, 'aria-disabled': option.disabled || undefined,
|
|
275
|
+
'data-active': state.value.activeIndex === index ? 'true' : undefined, 'data-state': state.value.activeIndex === index ? 'active' : undefined,
|
|
276
|
+
onPointerdown: (event) => event.preventDefault(), onClick: () => { if (!option.disabled) {
|
|
277
|
+
dispatch({ type: 'select', value: option.value });
|
|
278
|
+
element.value?.focus();
|
|
279
|
+
} }, }, option.label)), !results.value.length && h('li', { role: 'presentation', class: 'hw-hint' }, props.emptyMessage),
|
|
280
|
+
]),
|
|
281
|
+
h('span', { class: 'hw-sr-only', role: 'status', 'aria-live': 'polite', 'aria-atomic': 'true' }, open ? props.resultsMessage(results.value.length) : ''),
|
|
282
|
+
]));
|
|
283
|
+
};
|
|
284
|
+
},
|
|
285
|
+
});
|
|
286
|
+
export const Tooltip = defineComponent({
|
|
287
|
+
name: 'HwTooltip', inheritAttrs: false, props: { content: { type: String, required: true }, placement: { type: String, default: 'top' }, align: { type: String, default: 'start' } },
|
|
288
|
+
setup(props, { attrs, slots }) {
|
|
289
|
+
const id = `hw-${useId()}`;
|
|
290
|
+
const open = ref(false);
|
|
291
|
+
const root = ref();
|
|
292
|
+
let hovered = false, focused = false;
|
|
293
|
+
let hideTimer;
|
|
294
|
+
const show = () => { clearTimeout(hideTimer); open.value = true; };
|
|
295
|
+
const hide = () => { clearTimeout(hideTimer); open.value = false; };
|
|
296
|
+
const leave = () => {
|
|
297
|
+
hovered = false;
|
|
298
|
+
if (!focused)
|
|
299
|
+
hideTimer = setTimeout(hide, 120);
|
|
300
|
+
};
|
|
301
|
+
const escape = (event) => {
|
|
302
|
+
if (!open.value || event.key !== 'Escape' || event.defaultPrevented)
|
|
303
|
+
return;
|
|
304
|
+
event.preventDefault();
|
|
305
|
+
event.stopPropagation();
|
|
306
|
+
hide();
|
|
307
|
+
};
|
|
308
|
+
watch(open, (visible, _, cleanup) => {
|
|
309
|
+
const element = root.value;
|
|
310
|
+
if (!visible || !element)
|
|
311
|
+
return;
|
|
312
|
+
const doc = element.ownerDocument;
|
|
313
|
+
const outside = (event) => { if (!element.contains(event.target))
|
|
314
|
+
hide(); };
|
|
315
|
+
doc.addEventListener('keydown', escape);
|
|
316
|
+
doc.addEventListener('pointerdown', outside);
|
|
317
|
+
cleanup(() => { doc.removeEventListener('keydown', escape); doc.removeEventListener('pointerdown', outside); });
|
|
318
|
+
}, { flush: 'sync' });
|
|
319
|
+
onBeforeUnmount(() => clearTimeout(hideTimer));
|
|
320
|
+
return () => {
|
|
321
|
+
const children = slots.default?.() ?? [];
|
|
322
|
+
return h('span', mergeProps(attrs, {
|
|
323
|
+
ref: root, 'data-hw': 'tooltip',
|
|
324
|
+
onMouseenter: () => { hovered = true; show(); }, onMouseleave: leave,
|
|
325
|
+
onFocusin: () => { focused = true; show(); },
|
|
326
|
+
onFocusout: (event) => {
|
|
327
|
+
if (root.value?.contains(event.relatedTarget))
|
|
328
|
+
return;
|
|
329
|
+
focused = false;
|
|
330
|
+
if (!hovered)
|
|
331
|
+
hide();
|
|
332
|
+
},
|
|
333
|
+
onKeydown: escape,
|
|
334
|
+
}), [
|
|
335
|
+
...children.map(child => isVNode(child) ? cloneVNode(child, { 'aria-describedby': joinIds(child.props?.['aria-describedby'], id) }) : child),
|
|
336
|
+
h('span', { id, role: 'tooltip', class: 'hw-tooltip', 'data-placement': props.placement, 'data-align': props.align, hidden: !open.value }, props.content),
|
|
337
|
+
]);
|
|
338
|
+
};
|
|
339
|
+
},
|
|
340
|
+
});
|
|
341
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
|