@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.
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 +310 -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,310 @@
1
+ import { defineComponent, h, mergeProps, ref, useId } from "vue";
2
+ import { formatNumber, sortRows } from "@hawiyah/core";
3
+ import { Button } from "./forms.js";
4
+ import { Avatar } from "./display.js";
5
+ import { useValue } from "./shared.js";
6
+ export const Link = defineComponent({
7
+ name: 'HwLink', inheritAttrs: false,
8
+ props: { href: String, disabled: Boolean, external: Boolean, variant: String },
9
+ setup(props, { attrs, slots }) {
10
+ return () => {
11
+ const unavailable = props.disabled || attrs['aria-disabled'] === true || attrs['aria-disabled'] === 'true';
12
+ const activation = (name) => (event) => {
13
+ if (unavailable) {
14
+ event.preventDefault();
15
+ event.stopPropagation();
16
+ return;
17
+ }
18
+ const handlers = attrs[name];
19
+ for (const handler of Array.isArray(handlers) ? handlers : [handlers])
20
+ if (typeof handler === 'function')
21
+ handler(event);
22
+ };
23
+ return h('a', { ...mergeProps(attrs, { class: 'hw-link', href: unavailable ? undefined : props.href, role: unavailable ? 'link' : attrs.role, 'data-variant': props.variant ?? attrs['data-variant'], target: props.external ? '_blank' : attrs.target, rel: props.external ? 'noopener noreferrer' : attrs.rel, 'aria-disabled': unavailable || undefined, tabindex: unavailable ? -1 : attrs.tabindex }), onClick: activation('onClick'), onAuxclick: activation('onAuxclick') }, slots.default?.());
24
+ };
25
+ },
26
+ });
27
+ export const IconButton = defineComponent({
28
+ name: "HwIconButton",
29
+ inheritAttrs: false,
30
+ props: {
31
+ label: { type: String, required: true },
32
+ variant: {
33
+ type: String,
34
+ default: "ghost",
35
+ },
36
+ size: { type: String, default: "md" },
37
+ shape: String,
38
+ disabled: Boolean,
39
+ loading: Boolean,
40
+ },
41
+ setup(props, { attrs, slots, expose }) {
42
+ const button = ref();
43
+ expose({ focus: () => button.value?.focus() });
44
+ return () => h(Button, mergeProps(attrs, {
45
+ ref: button, variant: props.variant, size: props.size, disabled: props.disabled, loading: props.loading,
46
+ "data-shape": props.shape ?? attrs["data-shape"],
47
+ class: "hw-icon-button",
48
+ "aria-label": props.label,
49
+ }), () => h("span", { "aria-hidden": "true" }, slots.default?.()));
50
+ },
51
+ });
52
+ export const ButtonGroup = defineComponent({
53
+ name: "HwButtonGroup",
54
+ inheritAttrs: false,
55
+ props: { label: { type: String, required: true }, variant: String, orientation: String },
56
+ setup(props, { attrs, slots }) {
57
+ return () => h("div", mergeProps(attrs, {
58
+ class: "hw-button-group", "data-variant": props.variant ?? attrs["data-variant"], "data-orientation": props.orientation ?? attrs["data-orientation"],
59
+ role: "group",
60
+ "aria-label": props.label,
61
+ }), slots.default?.());
62
+ },
63
+ });
64
+ export const Chip = defineComponent({
65
+ name: "HwChip",
66
+ inheritAttrs: false,
67
+ props: {
68
+ label: String,
69
+ removable: Boolean,
70
+ disabled: Boolean,
71
+ removeLabel: { type: String, default: "Remove" },
72
+ tone: {
73
+ type: String,
74
+ default: "neutral",
75
+ },
76
+ },
77
+ emits: { remove: () => true },
78
+ setup(props, { attrs, slots, emit }) {
79
+ return () => h("span", mergeProps(attrs, { class: "hw-chip", "data-tone": props.tone }), [
80
+ props.label ?? slots.default?.(),
81
+ props.removable &&
82
+ h(Button, {
83
+ variant: "ghost",
84
+ size: "sm",
85
+ disabled: props.disabled,
86
+ "aria-label": props.removeLabel,
87
+ onClick: () => emit("remove"),
88
+ }, () => h('span', { class: 'hw-icon', 'data-icon': 'cancel-01', 'data-size': 'md', 'aria-hidden': 'true' })),
89
+ ]);
90
+ },
91
+ });
92
+ export const DescriptionList = defineComponent({
93
+ name: "HwDescriptionList",
94
+ inheritAttrs: false,
95
+ props: {
96
+ items: {
97
+ type: Array,
98
+ required: true,
99
+ },
100
+ variant: {
101
+ type: String,
102
+ default: "horizontal",
103
+ },
104
+ },
105
+ setup(props, { attrs, slots }) {
106
+ return () => h("dl", mergeProps(attrs, {
107
+ class: "hw-description-list",
108
+ "data-variant": props.variant,
109
+ }), props.items.map((item, index) => h("div", { key: index }, [
110
+ h("dt", {}, item.term),
111
+ h("dd", {}, [
112
+ slots[`item:${index}`]?.({ item }) ?? item.description,
113
+ ]),
114
+ ])));
115
+ },
116
+ });
117
+ export const Stat = defineComponent({
118
+ name: "HwStat",
119
+ inheritAttrs: false,
120
+ props: {
121
+ label: { type: String, required: true },
122
+ value: { type: [String, Number], required: true },
123
+ description: String,
124
+ locale: { type: String, default: "ar-SA" },
125
+ trend: String,
126
+ },
127
+ setup(props, { attrs, slots }) {
128
+ return () => h("div", mergeProps(attrs, { class: "hw-stat" }), [
129
+ h("span", { class: "hw-stat-label" }, props.label),
130
+ h("strong", { class: "hw-stat-value" }, typeof props.value === "number"
131
+ ? formatNumber(props.value, { locale: props.locale })
132
+ : props.value),
133
+ props.description &&
134
+ h("p", { class: "hw-stat-description" }, props.description),
135
+ props.trend && h("span", { class: "hw-stat-trend" }, props.trend),
136
+ slots.default?.(),
137
+ ]);
138
+ },
139
+ });
140
+ export const Timeline = defineComponent({
141
+ name: "HwTimeline",
142
+ inheritAttrs: false,
143
+ props: {
144
+ items: { type: Array, required: true },
145
+ label: { type: String, required: true },
146
+ },
147
+ setup(props, { attrs, slots }) {
148
+ return () => h("ol", mergeProps(attrs, { class: "hw-timeline", "aria-label": props.label }), props.items.map((item) => h("li", {
149
+ key: item.id,
150
+ class: "hw-timeline-item",
151
+ "data-state": item.status,
152
+ "aria-current": item.status === "current" ? "step" : undefined,
153
+ }, [
154
+ h("h3", {}, item.title),
155
+ item.date &&
156
+ h("time", { datetime: item.date }, item.dateLabel ?? item.date),
157
+ item.description && h("p", {}, item.description),
158
+ slots[item.id]?.({ item }),
159
+ ])));
160
+ },
161
+ });
162
+ export const Meter = defineComponent({
163
+ name: "HwMeter",
164
+ inheritAttrs: false,
165
+ props: {
166
+ label: { type: String, required: true },
167
+ value: { type: Number, required: true },
168
+ min: { type: Number, default: 0 },
169
+ max: { type: Number, default: 100 },
170
+ low: Number,
171
+ high: Number,
172
+ optimum: Number,
173
+ },
174
+ setup(props, { attrs }) {
175
+ return () => h("meter", mergeProps(attrs, {
176
+ class: "hw-meter",
177
+ "aria-label": props.label,
178
+ value: props.value,
179
+ min: props.min,
180
+ max: props.max,
181
+ low: props.low,
182
+ high: props.high,
183
+ optimum: props.optimum,
184
+ }));
185
+ },
186
+ });
187
+ export const AvatarGroup = defineComponent({
188
+ name: "HwAvatarGroup",
189
+ inheritAttrs: false,
190
+ props: {
191
+ items: { type: Array, required: true },
192
+ max: { type: Number, default: 5 },
193
+ label: { type: String, required: true },
194
+ remainingLabel: {
195
+ type: Function,
196
+ default: (count) => `${count} more people`,
197
+ },
198
+ },
199
+ setup(props, { attrs }) {
200
+ return () => {
201
+ const rounded = Math.floor(props.max);
202
+ const max = Number.isNaN(rounded) ? 5 : Math.max(0, rounded);
203
+ return h("div", mergeProps(attrs, {
204
+ class: "hw-avatar-group",
205
+ role: "group",
206
+ "aria-label": props.label,
207
+ }), [
208
+ ...props.items
209
+ .slice(0, max)
210
+ .map((item, index) => h(Avatar, { ...item, key: index })),
211
+ props.items.length > max &&
212
+ h("span", {
213
+ class: "hw-avatar",
214
+ role: "img",
215
+ "aria-label": props.remainingLabel(props.items.length - max),
216
+ }, `+${props.items.length - max}`),
217
+ ]);
218
+ };
219
+ },
220
+ });
221
+ export const DataTable = defineComponent({
222
+ name: "HwDataTable",
223
+ inheritAttrs: false,
224
+ props: {
225
+ variant: String,
226
+ size: String,
227
+ wrapperProps: Object,
228
+ emptyMessage: { type: String, default: 'لا توجد سجلات' },
229
+ columns: { type: Array, required: true },
230
+ rows: {
231
+ type: Array,
232
+ required: true,
233
+ },
234
+ caption: { type: String, required: true },
235
+ sortKey: String,
236
+ defaultSortKey: { type: String, default: "" },
237
+ sortDirection: String,
238
+ defaultSortDirection: {
239
+ type: String,
240
+ default: "ascending",
241
+ },
242
+ locale: { type: String, default: "ar-SA" },
243
+ rowKey: Function,
244
+ sortLabel: {
245
+ type: Function,
246
+ default: (column, direction) => `ترتيب ${column.label} ${direction === 'ascending' ? 'تصاعديًا' : 'تنازليًا'}`,
247
+ },
248
+ },
249
+ emits: {
250
+ "update:sortKey": (_value) => true,
251
+ "update:sortDirection": (_value) => true,
252
+ },
253
+ setup(props, { attrs, slots, emit }) {
254
+ const captionId = useId();
255
+ const key = useValue(() => props.sortKey, props.defaultSortKey, (v) => emit("update:sortKey", v));
256
+ const direction = useValue(() => props.sortDirection, props.defaultSortDirection, (v) => emit("update:sortDirection", v));
257
+ return () => {
258
+ const rows = key.value.value
259
+ ? sortRows(props.rows, key.value.value, direction.value.value, props.locale)
260
+ : props.rows;
261
+ return h("div", mergeProps({ class: "hw-table-wrap hw-data-table", tabindex: 0, role: "region", "aria-labelledby": captionId }, props.wrapperProps ?? {}), [
262
+ h("table", mergeProps(attrs, { class: "hw-table", "data-variant": props.variant ?? attrs["data-variant"], "data-size": props.size ?? attrs["data-size"] }), [
263
+ h("caption", { id: captionId }, props.caption),
264
+ h("thead", {}, h("tr", {}, props.columns.map((column) => {
265
+ const active = column.key === key.value.value;
266
+ const next = active && direction.value.value === "ascending"
267
+ ? "descending"
268
+ : "ascending";
269
+ return h("th", {
270
+ key: column.key,
271
+ scope: "col",
272
+ "aria-sort": column.sortable
273
+ ? active
274
+ ? direction.value.value
275
+ : "none"
276
+ : undefined,
277
+ }, column.sortable
278
+ ? h("button", {
279
+ type: "button",
280
+ "aria-label": props.sortLabel(column, next),
281
+ onClick: () => {
282
+ key.set(column.key);
283
+ direction.set(next);
284
+ },
285
+ }, [
286
+ column.label,
287
+ h("span", {
288
+ class: "hw-icon",
289
+ "data-size": "sm",
290
+ "aria-hidden": "true",
291
+ "data-icon": active
292
+ ? direction.value.value === "ascending"
293
+ ? "arrow-up-02"
294
+ : "arrow-down-02"
295
+ : "arrow-data-transfer-vertical",
296
+ }),
297
+ ])
298
+ : column.label);
299
+ }))),
300
+ h("tbody", {}, rows.length ? rows.map((row, index) => h("tr", { key: props.rowKey?.(row, index) ?? index }, props.columns.map((column) => h(column.rowHeader ? "th" : "td", {
301
+ key: column.key,
302
+ scope: column.rowHeader ? "row" : undefined,
303
+ }, slots[`cell:${column.key}`]?.({ row, index }) ??
304
+ String(row[column.key] ?? ""))))) : h("tr", {}, h("td", { colspan: props.columns.length || 1 }, props.emptyMessage))),
305
+ ]),
306
+ ]);
307
+ };
308
+ },
309
+ });
310
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}