@hawiyah/vue 0.0.0-stage → 0.2.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.
Files changed (81) hide show
  1. package/LICENSE +73 -0
  2. package/NOTICE +19 -0
  3. package/PORTAL.md +70 -0
  4. package/README.md +388 -2
  5. package/dist/calendar.d.ts +183 -0
  6. package/dist/calendar.d.ts.map +1 -0
  7. package/dist/calendar.js +448 -0
  8. package/dist/calendar.js.map +1 -0
  9. package/dist/content-navigation.d.ts +61 -0
  10. package/dist/content-navigation.d.ts.map +1 -0
  11. package/dist/content-navigation.js +31 -0
  12. package/dist/content-navigation.js.map +1 -0
  13. package/dist/content.d.ts +392 -0
  14. package/dist/content.d.ts.map +1 -0
  15. package/dist/content.js +305 -0
  16. package/dist/content.js.map +1 -0
  17. package/dist/controls.d.ts +657 -0
  18. package/dist/controls.d.ts.map +1 -0
  19. package/dist/controls.js +679 -0
  20. package/dist/controls.js.map +1 -0
  21. package/dist/display.d.ts +387 -0
  22. package/dist/display.d.ts.map +1 -0
  23. package/dist/display.js +293 -0
  24. package/dist/display.js.map +1 -0
  25. package/dist/expansion-interactive.d.ts +476 -0
  26. package/dist/expansion-interactive.d.ts.map +1 -0
  27. package/dist/expansion-interactive.js +613 -0
  28. package/dist/expansion-interactive.js.map +1 -0
  29. package/dist/file-upload-list.d.ts +54 -0
  30. package/dist/file-upload-list.d.ts.map +1 -0
  31. package/dist/file-upload-list.js +21 -0
  32. package/dist/file-upload-list.js.map +1 -0
  33. package/dist/forms.d.ts +388 -0
  34. package/dist/forms.d.ts.map +1 -0
  35. package/dist/forms.js +156 -0
  36. package/dist/forms.js.map +1 -0
  37. package/dist/index.d.ts +26 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +16 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/interactive.d.ts +240 -0
  42. package/dist/interactive.d.ts.map +1 -0
  43. package/dist/interactive.js +341 -0
  44. package/dist/interactive.js.map +1 -0
  45. package/dist/layout.d.ts +755 -0
  46. package/dist/layout.d.ts.map +1 -0
  47. package/dist/layout.js +101 -0
  48. package/dist/layout.js.map +1 -0
  49. package/dist/mobile-top-bar.d.ts +47 -0
  50. package/dist/mobile-top-bar.d.ts.map +1 -0
  51. package/dist/mobile-top-bar.js +18 -0
  52. package/dist/mobile-top-bar.js.map +1 -0
  53. package/dist/native-attributes.d.ts +38 -0
  54. package/dist/native-attributes.d.ts.map +1 -0
  55. package/dist/native-attributes.js +27 -0
  56. package/dist/native-attributes.js.map +1 -0
  57. package/dist/navigation-drawer.d.ts +87 -0
  58. package/dist/navigation-drawer.d.ts.map +1 -0
  59. package/dist/navigation-drawer.js +56 -0
  60. package/dist/navigation-drawer.js.map +1 -0
  61. package/dist/patterns.d.ts +455 -0
  62. package/dist/patterns.d.ts.map +1 -0
  63. package/dist/patterns.js +355 -0
  64. package/dist/patterns.js.map +1 -0
  65. package/dist/portal.d.ts +174 -0
  66. package/dist/portal.d.ts.map +1 -0
  67. package/dist/portal.js +36 -0
  68. package/dist/portal.js.map +1 -0
  69. package/dist/search-field.d.ts +87 -0
  70. package/dist/search-field.d.ts.map +1 -0
  71. package/dist/search-field.js +123 -0
  72. package/dist/search-field.js.map +1 -0
  73. package/dist/shared.d.ts +46 -0
  74. package/dist/shared.d.ts.map +1 -0
  75. package/dist/shared.js +40 -0
  76. package/dist/shared.js.map +1 -0
  77. package/dist/site-verification.d.ts +63 -0
  78. package/dist/site-verification.d.ts.map +1 -0
  79. package/dist/site-verification.js +34 -0
  80. package/dist/site-verification.js.map +1 -0
  81. package/package.json +53 -3
@@ -0,0 +1,355 @@
1
+ import { defineComponent, h, mergeProps, onMounted, onBeforeUnmount, ref, useId } from "vue";
2
+ import { Button, Textarea } from "./forms.js";
3
+ import { Badge, Card } from "./display.js";
4
+ import { DescriptionList, Link } from "./content.js";
5
+ import { useValue } from "./shared.js";
6
+ export const ServiceCard = defineComponent({
7
+ name: "HwServiceCard",
8
+ inheritAttrs: false,
9
+ props: {
10
+ title: { type: String, required: true },
11
+ description: String,
12
+ href: String,
13
+ actionLabel: { type: String, default: "Start service" },
14
+ badge: String,
15
+ metadata: Array,
16
+ },
17
+ setup(props, { attrs, slots }) {
18
+ return () => h(Card, mergeProps(attrs, { class: "hw-service-card" }), {
19
+ header: () => [
20
+ slots.icon?.(),
21
+ h("h3", {}, props.title),
22
+ props.badge && h(Badge, { tone: "info" }, () => props.badge),
23
+ ],
24
+ default: () => [
25
+ props.description && h("p", {}, props.description),
26
+ props.metadata?.length &&
27
+ h("ul", {}, props.metadata.map((item) => h("li", {}, item))),
28
+ slots.default?.(),
29
+ ],
30
+ footer: () => slots.action?.() ??
31
+ (props.href
32
+ ? h(Link, { href: props.href }, () => props.actionLabel)
33
+ : undefined),
34
+ });
35
+ },
36
+ });
37
+ export const ServiceDetails = defineComponent({
38
+ name: "HwServiceDetails",
39
+ inheritAttrs: false,
40
+ props: {
41
+ title: { type: String, required: true },
42
+ description: String,
43
+ items: {
44
+ type: Array,
45
+ default: () => [],
46
+ },
47
+ },
48
+ setup(props, { attrs, slots }) {
49
+ return () => h("section", mergeProps(attrs, { class: "hw-service-details" }), [
50
+ h("header", {}, [
51
+ h("h2", {}, props.title),
52
+ props.description && h("p", {}, props.description),
53
+ ]),
54
+ h(DescriptionList, { items: props.items }),
55
+ slots.default?.(),
56
+ slots.action &&
57
+ h("div", { class: "hw-service-details-action" }, slots.action()),
58
+ ]);
59
+ },
60
+ });
61
+ export const PortalHeader = defineComponent({
62
+ name: "HwPortalHeader",
63
+ inheritAttrs: false,
64
+ props: {
65
+ brand: { type: String, required: true },
66
+ homeHref: { type: String, default: "/" },
67
+ links: {
68
+ type: Array,
69
+ default: () => [],
70
+ },
71
+ navLabel: { type: String, default: "التنقل الرئيسي" },
72
+ menuLabel: { type: String, default: "القائمة" },
73
+ navigationId: String,
74
+ mainId: String,
75
+ skipLabel: { type: String, default: "انتقل إلى المحتوى" },
76
+ },
77
+ setup(props, { attrs, slots }) {
78
+ const id = useId();
79
+ const open = ref(false);
80
+ const root = ref();
81
+ const trigger = ref();
82
+ const branch = ref();
83
+ const close = () => { branch.value = undefined; open.value = false; };
84
+ const outside = (event) => {
85
+ const target = event.target;
86
+ if (!branch.value?.contains(target))
87
+ branch.value = undefined;
88
+ if (!root.value?.contains(target))
89
+ open.value = false;
90
+ };
91
+ onMounted(() => root.value?.ownerDocument.addEventListener('pointerdown', outside));
92
+ onBeforeUnmount(() => root.value?.ownerDocument.removeEventListener('pointerdown', outside));
93
+ const link = (item, className) => h('a', {
94
+ href: item.href, class: className,
95
+ 'aria-current': item.current ? 'page' : undefined, onClick: close,
96
+ }, item.label);
97
+ function navigationItem(item) {
98
+ const groups = item.groups?.filter(group => group.links.length);
99
+ if (!groups?.length)
100
+ return h('li', { key: item.href }, link(item));
101
+ const childCurrent = groups.some(group => group.links.some(child => child.current));
102
+ const current = item.current || childCurrent;
103
+ return h('li', { key: item.href }, h('details', {
104
+ class: 'hw-portal-branch', 'data-hw-portal-branch': '', 'data-current': current || undefined,
105
+ 'data-branch-href': item.href, open: Boolean(branch.value?.isConnected && branch.value.dataset.branchHref === item.href),
106
+ }, [
107
+ h('summary', { onClick(event) {
108
+ event.preventDefault();
109
+ const details = event.currentTarget.parentElement;
110
+ branch.value = details === branch.value ? undefined : details;
111
+ } }, item.label),
112
+ h('div', { class: 'hw-portal-branch-panel' }, [
113
+ link({ ...item, current: item.current && !childCurrent }, 'hw-link hw-portal-branch-overview'),
114
+ ...groups.map(group => h('section', { class: 'hw-portal-branch-group' }, [
115
+ group.label && h('h2', group.label),
116
+ h('ul', group.links.map(child => h('li', { key: child.href }, link(child, 'hw-link')))),
117
+ ])),
118
+ ]),
119
+ ]));
120
+ }
121
+ return () => h("header", mergeProps(attrs, { class: "hw-portal-header", ref: root,
122
+ onKeydown: (event) => {
123
+ if (event.defaultPrevented || event.key !== 'Escape')
124
+ return;
125
+ if (branch.value?.isConnected) {
126
+ event.preventDefault();
127
+ event.stopPropagation();
128
+ const summary = branch.value.querySelector(':scope > summary');
129
+ branch.value = undefined;
130
+ summary?.focus();
131
+ }
132
+ else if (open.value) {
133
+ event.preventDefault();
134
+ event.stopPropagation();
135
+ close();
136
+ trigger.value?.focus();
137
+ }
138
+ },
139
+ onFocusout: (event) => {
140
+ const target = (event.relatedTarget ?? root.value?.ownerDocument.activeElement);
141
+ if (!branch.value?.contains(target))
142
+ branch.value = undefined;
143
+ if (!root.value?.contains(target))
144
+ open.value = false;
145
+ },
146
+ }), [
147
+ props.mainId && h('a', { class: 'hw-skip-link', href: `#${props.mainId}` }, props.skipLabel),
148
+ h("a", {
149
+ href: props.homeHref,
150
+ class: "hw-portal-brand",
151
+ "aria-label": props.brand,
152
+ }, slots.logo?.() ?? props.brand),
153
+ props.links.length > 0 && h('button', { ref: trigger, type: 'button', class: 'hw-button hw-portal-menu-toggle', 'aria-expanded': open.value, 'aria-controls': props.navigationId ?? `${id}-navigation`, onClick: () => { branch.value = undefined; open.value = !open.value; } }, [h('span', { class: 'hw-icon', 'data-icon': open.value ? 'cancel-01' : 'menu-01', 'aria-hidden': 'true' }), props.menuLabel]),
154
+ props.links.length > 0 && h("nav", { id: props.navigationId ?? `${id}-navigation`, "aria-label": props.navLabel, 'data-open': String(open.value) }, h('ul', props.links.map(navigationItem))),
155
+ slots.actions &&
156
+ h("div", { class: "hw-portal-header-actions" }, slots.actions()),
157
+ slots.default?.(),
158
+ ]);
159
+ },
160
+ });
161
+ export const PortalFooter = defineComponent({
162
+ name: "HwPortalFooter", inheritAttrs: false,
163
+ props: {
164
+ brand: String, description: String, copyright: String,
165
+ links: { type: Array, default: () => [] },
166
+ groups: { type: Array, default: () => [] },
167
+ legalLinks: { type: Array, default: () => [] },
168
+ navLabel: { type: String, default: "روابط التذييل" },
169
+ legalLinksLabel: { type: String, default: "السياسات وإمكانية الوصول" },
170
+ supportLabel: { type: String, default: "المساعدة والتواصل" },
171
+ externalLabel: { type: String, default: "يفتح في نافذة جديدة" },
172
+ },
173
+ setup(props, { attrs, slots }) {
174
+ const linkList = (items) => h('ul', { class: 'hw-portal-footer-links' }, items.map((link, index) => h('li', { key: index }, h('a', { href: link.href, target: link.external ? '_blank' : undefined, rel: link.external ? 'noopener noreferrer' : undefined }, [link.label, link.external && h('span', { class: 'hw-portal-footer-external', 'aria-hidden': 'true' }, '↗'), link.external && h('span', { class: 'hw-sr-only' }, ` · ${props.externalLabel}`)]))));
175
+ return () => h('footer', mergeProps(attrs, { class: 'hw-portal-footer' }), [
176
+ h('div', { class: 'hw-portal-footer-main' }, [
177
+ (props.brand || props.description || slots.logo) && h('div', { class: 'hw-portal-footer-brand' }, [(slots.logo || props.brand) && h('div', { class: 'hw-portal-footer-brand-marks' }, slots.logo?.() ?? h('strong', {}, props.brand)), props.description && h('p', {}, props.description)]),
178
+ props.links.length > 0 && h('nav', { class: 'hw-portal-footer-group', 'aria-label': props.navLabel }, [h('h2', {}, props.navLabel), linkList(props.links)]),
179
+ ...props.groups.filter(group => group.links.length > 0).map((group, index) => h('nav', { class: 'hw-portal-footer-group', 'aria-label': group.title, key: index }, [h('h2', {}, group.title), linkList(group.links)])),
180
+ slots.support && h('section', { class: 'hw-portal-footer-support', 'aria-label': props.supportLabel }, [h('h2', {}, props.supportLabel), h('div', { class: 'hw-portal-footer-support-content' }, slots.support())]),
181
+ slots.default && h('div', { class: 'hw-portal-footer-extra' }, slots.default()),
182
+ ]),
183
+ (props.copyright || props.legalLinks.length || slots.partners) && h('div', { class: 'hw-portal-footer-bottom' }, [
184
+ props.copyright && h('small', {}, props.copyright),
185
+ props.legalLinks.length > 0 && h('nav', { class: 'hw-portal-footer-legal', 'aria-label': props.legalLinksLabel }, linkList(props.legalLinks)),
186
+ slots.partners && h('div', { class: 'hw-portal-footer-partners' }, slots.partners()),
187
+ ]),
188
+ ]);
189
+ },
190
+ });
191
+ export const Feedback = defineComponent({
192
+ name: "HwFeedback",
193
+ inheritAttrs: false,
194
+ props: {
195
+ choiceVariant: { type: String, default: 'text' },
196
+ label: { type: String, default: "Was this page helpful?" },
197
+ modelValue: String,
198
+ defaultValue: { type: String, default: "" },
199
+ yesLabel: { type: String, default: "Yes" },
200
+ noLabel: { type: String, default: "No" },
201
+ commentLabel: { type: String, default: "Tell us more" },
202
+ submitLabel: { type: String, default: "Send feedback" },
203
+ thanks: { type: String, default: "Thank you for your feedback." },
204
+ disabled: Boolean,
205
+ readonly: Boolean,
206
+ },
207
+ emits: {
208
+ "update:modelValue": (_value) => true,
209
+ submit: (_value) => true,
210
+ },
211
+ setup(props, { attrs, emit, slots }) {
212
+ const model = useValue(() => props.modelValue, props.defaultValue, (v) => emit("update:modelValue", v));
213
+ const comment = ref("");
214
+ const submitted = ref(false);
215
+ return () => h("section", mergeProps(attrs, { class: "hw-feedback", "aria-label": props.label, "data-choice-variant": props.choiceVariant }), [
216
+ h("h2", {}, props.label),
217
+ h("div", {
218
+ class: "hw-button-group hw-feedback-actions",
219
+ role: "group",
220
+ "aria-label": props.label,
221
+ }, ["yes", "no"].map((value) => h(Button, {
222
+ variant: "secondary",
223
+ disabled: props.disabled || props.readonly,
224
+ "aria-pressed": model.value.value === value,
225
+ onClick: () => {
226
+ model.set(value);
227
+ submitted.value = false;
228
+ },
229
+ }, () => [h('span', { class: 'hw-icon hw-feedback-icon', 'data-icon': value === 'yes' ? 'thumbs-up' : 'thumbs-down', 'aria-hidden': 'true' }), h('span', { class: 'hw-feedback-label' }, value === 'yes' ? props.yesLabel : props.noLabel)]))),
230
+ model.value.value &&
231
+ h("div", {}, [
232
+ h(Textarea, {
233
+ label: props.commentLabel,
234
+ modelValue: comment.value,
235
+ "onUpdate:modelValue": (value) => {
236
+ comment.value = value;
237
+ },
238
+ disabled: props.disabled,
239
+ readonly: props.readonly,
240
+ }),
241
+ h(Button, {
242
+ disabled: props.disabled || props.readonly,
243
+ onClick: () => {
244
+ emit("submit", {
245
+ value: model.value.value,
246
+ comment: comment.value,
247
+ });
248
+ submitted.value = true;
249
+ },
250
+ }, () => props.submitLabel),
251
+ ]),
252
+ h("p", { role: "status" }, submitted.value ? props.thanks : ""),
253
+ slots.default?.(),
254
+ ]);
255
+ },
256
+ });
257
+ export const CookieConsent = defineComponent({
258
+ name: "HwCookieConsent",
259
+ inheritAttrs: false,
260
+ props: {
261
+ open: { type: Boolean, default: undefined },
262
+ defaultOpen: { type: Boolean, default: true },
263
+ label: { type: String, default: "Cookie preferences" },
264
+ description: { type: String, required: true },
265
+ acceptLabel: { type: String, default: "Accept optional cookies" },
266
+ rejectLabel: { type: String, default: "Reject optional cookies" },
267
+ preferencesLabel: { type: String, default: "Manage preferences" },
268
+ },
269
+ emits: {
270
+ "update:open": (_value) => true,
271
+ accept: () => true,
272
+ reject: () => true,
273
+ preferences: () => true,
274
+ },
275
+ setup(props, { attrs, slots, emit }) {
276
+ const model = useValue(() => props.open, props.defaultOpen, (v) => emit("update:open", v));
277
+ return () => h("section", mergeProps(attrs, {
278
+ class: "hw-cookie-consent",
279
+ role: "region",
280
+ "aria-label": props.label,
281
+ hidden: !model.value.value,
282
+ }), [
283
+ h("h2", {}, props.label),
284
+ h("p", {}, props.description),
285
+ slots.default?.(),
286
+ h("div", { class: "hw-button-group" }, [
287
+ h(Button, {
288
+ onClick: () => {
289
+ emit("accept");
290
+ model.set(false);
291
+ },
292
+ }, () => props.acceptLabel),
293
+ h(Button, {
294
+ variant: "secondary",
295
+ onClick: () => {
296
+ emit("reject");
297
+ model.set(false);
298
+ },
299
+ }, () => props.rejectLabel),
300
+ h(Button, { variant: "ghost", onClick: () => emit("preferences") }, () => props.preferencesLabel),
301
+ ]),
302
+ ]);
303
+ },
304
+ });
305
+ export const NotificationList = defineComponent({
306
+ name: "HwNotificationList",
307
+ inheritAttrs: false,
308
+ props: {
309
+ items: {
310
+ type: Array,
311
+ required: true,
312
+ },
313
+ label: { type: String, default: "Notifications" },
314
+ emptyMessage: { type: String, default: "No notifications" },
315
+ readLabel: {
316
+ type: Function,
317
+ default: (item) => `Mark ${item.title} as read`,
318
+ },
319
+ dismissLabel: {
320
+ type: Function,
321
+ default: (item) => `Dismiss ${item.title}`,
322
+ },
323
+ },
324
+ emits: { read: (_id) => true, dismiss: (_id) => true },
325
+ setup(props, { attrs, emit, slots }) {
326
+ return () => h("section", mergeProps(attrs, {
327
+ class: "hw-notification-list",
328
+ "aria-label": props.label,
329
+ }), [
330
+ props.items.length
331
+ ? h("ul", {}, props.items.map((item) => h("li", { key: item.id, "data-read": String(Boolean(item.read)) }, [
332
+ h("h3", {}, item.href
333
+ ? h("a", { href: item.href }, item.title)
334
+ : item.title),
335
+ item.description && h("p", {}, item.description),
336
+ item.date &&
337
+ h("time", { datetime: item.date }, item.dateLabel ?? item.date),
338
+ slots[item.id]?.({ item }),
339
+ !item.read &&
340
+ h(Button, {
341
+ variant: "ghost",
342
+ "aria-label": props.readLabel(item),
343
+ onClick: () => emit("read", item.id),
344
+ }, () => props.readLabel(item)),
345
+ h(Button, {
346
+ variant: "ghost",
347
+ "aria-label": props.dismissLabel(item),
348
+ onClick: () => emit("dismiss", item.id),
349
+ }, () => "×"),
350
+ ])))
351
+ : h("p", { role: "status" }, props.emptyMessage),
352
+ ]);
353
+ },
354
+ });
355
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import type { PropType } from 'vue';
2
+ import type { BreadcrumbItem } from './display.js';
3
+ import type { PortalLink } from './patterns.js';
4
+ export interface SecondaryNavItem extends PortalLink {
5
+ icon?: string;
6
+ }
7
+ export declare const SecondaryNav: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
+ variant: {
9
+ type: PropType<"default" | "mobile">;
10
+ default: string;
11
+ };
12
+ items: {
13
+ type: PropType<readonly SecondaryNavItem[]>;
14
+ required: true;
15
+ };
16
+ label: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
21
+ [key: string]: any;
22
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
+ variant: {
24
+ type: PropType<"default" | "mobile">;
25
+ default: string;
26
+ };
27
+ items: {
28
+ type: PropType<readonly SecondaryNavItem[]>;
29
+ required: true;
30
+ };
31
+ label: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ }>> & Readonly<{}>, {
36
+ variant: "default" | "mobile";
37
+ label: string;
38
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
39
+ export declare const PortalLayout: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
40
+ brand: {
41
+ type: StringConstructor;
42
+ required: true;
43
+ };
44
+ homeHref: {
45
+ type: StringConstructor;
46
+ default: string;
47
+ };
48
+ links: {
49
+ type: PropType<readonly PortalLink[]>;
50
+ default: () => never[];
51
+ };
52
+ secondaryNavigation: {
53
+ type: PropType<readonly PortalLink[]>;
54
+ default: () => never[];
55
+ };
56
+ footerLinks: {
57
+ type: PropType<readonly PortalLink[]>;
58
+ default: () => never[];
59
+ };
60
+ breadcrumbs: {
61
+ type: PropType<readonly BreadcrumbItem[]>;
62
+ default: () => never[];
63
+ };
64
+ copyright: StringConstructor;
65
+ mainId: StringConstructor;
66
+ lang: {
67
+ type: StringConstructor;
68
+ default: string;
69
+ };
70
+ dir: {
71
+ type: StringConstructor;
72
+ default: string;
73
+ };
74
+ skipLabel: {
75
+ type: StringConstructor;
76
+ default: string;
77
+ };
78
+ menuLabel: {
79
+ type: StringConstructor;
80
+ default: string;
81
+ };
82
+ navigationLabel: {
83
+ type: StringConstructor;
84
+ default: string;
85
+ };
86
+ secondaryLabel: {
87
+ type: StringConstructor;
88
+ default: string;
89
+ };
90
+ breadcrumbLabel: {
91
+ type: StringConstructor;
92
+ default: string;
93
+ };
94
+ footerLabel: {
95
+ type: StringConstructor;
96
+ default: string;
97
+ };
98
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
99
+ [key: string]: any;
100
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
101
+ brand: {
102
+ type: StringConstructor;
103
+ required: true;
104
+ };
105
+ homeHref: {
106
+ type: StringConstructor;
107
+ default: string;
108
+ };
109
+ links: {
110
+ type: PropType<readonly PortalLink[]>;
111
+ default: () => never[];
112
+ };
113
+ secondaryNavigation: {
114
+ type: PropType<readonly PortalLink[]>;
115
+ default: () => never[];
116
+ };
117
+ footerLinks: {
118
+ type: PropType<readonly PortalLink[]>;
119
+ default: () => never[];
120
+ };
121
+ breadcrumbs: {
122
+ type: PropType<readonly BreadcrumbItem[]>;
123
+ default: () => never[];
124
+ };
125
+ copyright: StringConstructor;
126
+ mainId: StringConstructor;
127
+ lang: {
128
+ type: StringConstructor;
129
+ default: string;
130
+ };
131
+ dir: {
132
+ type: StringConstructor;
133
+ default: string;
134
+ };
135
+ skipLabel: {
136
+ type: StringConstructor;
137
+ default: string;
138
+ };
139
+ menuLabel: {
140
+ type: StringConstructor;
141
+ default: string;
142
+ };
143
+ navigationLabel: {
144
+ type: StringConstructor;
145
+ default: string;
146
+ };
147
+ secondaryLabel: {
148
+ type: StringConstructor;
149
+ default: string;
150
+ };
151
+ breadcrumbLabel: {
152
+ type: StringConstructor;
153
+ default: string;
154
+ };
155
+ footerLabel: {
156
+ type: StringConstructor;
157
+ default: string;
158
+ };
159
+ }>> & Readonly<{}>, {
160
+ dir: string;
161
+ navigationLabel: string;
162
+ lang: string;
163
+ homeHref: string;
164
+ links: readonly PortalLink[];
165
+ menuLabel: string;
166
+ skipLabel: string;
167
+ secondaryNavigation: readonly PortalLink[];
168
+ footerLinks: readonly PortalLink[];
169
+ breadcrumbs: readonly BreadcrumbItem[];
170
+ secondaryLabel: string;
171
+ breadcrumbLabel: string;
172
+ footerLabel: string;
173
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
174
+ //# sourceMappingURL=portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../src/portal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAAG,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACtE,eAAO,MAAM,YAAY;;cAEa,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC;;;;cAAgD,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;;;;;;;;cAAnH,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC;;;;cAAgD,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;;;;;;;4EAEvJ,CAAC;AACH,eAAO,MAAM,YAAY;;;;;;;;;;cAIG,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cACjB,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cACvC,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cAC/B,QAAQ,CAAC,SAAS,cAAc,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAHzC,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cACjB,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cACvC,QAAQ,CAAC,SAAS,UAAU,EAAE,CAAC;;;;cAC/B,QAAQ,CAAC,SAAS,cAAc,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAgBnE,CAAC"}
package/dist/portal.js ADDED
@@ -0,0 +1,36 @@
1
+ import { defineComponent, h, mergeProps, useId } from 'vue';
2
+ import { Breadcrumb } from './display.js';
3
+ import { PortalHeader, PortalFooter } from './patterns.js';
4
+ export const SecondaryNav = defineComponent({
5
+ name: 'HwSecondaryNav', inheritAttrs: false,
6
+ props: { variant: { type: String, default: 'default' }, items: { type: Array, required: true }, label: { type: String, default: 'التنقل الثانوي' } },
7
+ setup(props, { attrs }) { return () => h('nav', mergeProps(attrs, { class: 'hw-secondary-nav', 'aria-label': props.label, 'data-variant': props.variant }), h('ul', {}, props.items.map(item => h('li', { key: item.href }, h('a', { href: item.href, 'aria-current': item.current ? 'page' : undefined }, [props.variant === 'mobile' && item.icon && h('span', { class: 'hw-icon', 'data-icon': item.icon, 'aria-hidden': 'true' }), h('span', {}, item.label)]))))); },
8
+ });
9
+ export const PortalLayout = defineComponent({
10
+ name: 'HwPortalLayout', inheritAttrs: false,
11
+ props: {
12
+ brand: { type: String, required: true }, homeHref: { type: String, default: '/' },
13
+ links: { type: Array, default: () => [] },
14
+ secondaryNavigation: { type: Array, default: () => [] },
15
+ footerLinks: { type: Array, default: () => [] },
16
+ breadcrumbs: { type: Array, default: () => [] },
17
+ copyright: String, mainId: String,
18
+ lang: { type: String, default: 'ar' }, dir: { type: String, default: 'rtl' },
19
+ skipLabel: { type: String, default: 'انتقل إلى المحتوى' },
20
+ menuLabel: { type: String, default: 'القائمة' }, navigationLabel: { type: String, default: 'التنقل الرئيسي' },
21
+ secondaryLabel: { type: String, default: 'التنقل الثانوي' }, breadcrumbLabel: { type: String, default: 'مسار التنقل' }, footerLabel: { type: String, default: 'روابط التذييل' },
22
+ },
23
+ setup(props, { attrs, slots }) {
24
+ const id = useId();
25
+ return () => {
26
+ const mainId = props.mainId ?? `${id}-main`;
27
+ return h('div', mergeProps(attrs, { class: 'hw-portal-layout', lang: props.lang, dir: props.dir }), [
28
+ h(PortalHeader, { brand: props.brand, homeHref: props.homeHref, links: props.links, mainId, skipLabel: props.skipLabel, menuLabel: props.menuLabel, navLabel: props.navigationLabel }, { logo: slots.logo, actions: slots.actions }),
29
+ props.secondaryNavigation.length > 0 && h(SecondaryNav, { items: props.secondaryNavigation, label: props.secondaryLabel }),
30
+ h('main', { id: mainId, tabindex: -1, class: 'hw-portal-layout-main hw-container' }, [props.breadcrumbs.length > 0 && h(Breadcrumb, { items: props.breadcrumbs, label: props.breadcrumbLabel }), slots.default?.()]),
31
+ h(PortalFooter, { brand: props.brand, links: props.footerLinks, copyright: props.copyright, navLabel: props.footerLabel }, { default: slots.footer }),
32
+ ]);
33
+ };
34
+ },
35
+ });
36
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../src/portal.ts"],"names":[],"mappings":"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"}