@hawiyah/react 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 (77) hide show
  1. package/LICENSE +73 -0
  2. package/NOTICE +19 -0
  3. package/PORTAL.md +74 -0
  4. package/README.md +461 -2
  5. package/dist/calendar.d.ts +52 -0
  6. package/dist/calendar.d.ts.map +1 -0
  7. package/dist/calendar.js +148 -0
  8. package/dist/calendar.js.map +1 -0
  9. package/dist/content-navigation.d.ts +15 -0
  10. package/dist/content-navigation.d.ts.map +1 -0
  11. package/dist/content-navigation.js +29 -0
  12. package/dist/content-navigation.js.map +1 -0
  13. package/dist/display.d.ts +421 -0
  14. package/dist/display.d.ts.map +1 -0
  15. package/dist/display.js +208 -0
  16. package/dist/display.js.map +1 -0
  17. package/dist/expanded-content.d.ts +217 -0
  18. package/dist/expanded-content.d.ts.map +1 -0
  19. package/dist/expanded-content.js +124 -0
  20. package/dist/expanded-content.js.map +1 -0
  21. package/dist/expanded-controls.d.ts +107 -0
  22. package/dist/expanded-controls.d.ts.map +1 -0
  23. package/dist/expanded-controls.js +142 -0
  24. package/dist/expanded-controls.js.map +1 -0
  25. package/dist/expanded-interactive.d.ts +116 -0
  26. package/dist/expanded-interactive.d.ts.map +1 -0
  27. package/dist/expanded-interactive.js +204 -0
  28. package/dist/expanded-interactive.js.map +1 -0
  29. package/dist/expanded-layout.d.ts +80 -0
  30. package/dist/expanded-layout.d.ts.map +1 -0
  31. package/dist/expanded-layout.js +26 -0
  32. package/dist/expanded-layout.js.map +1 -0
  33. package/dist/expanded-shared.d.ts +3 -0
  34. package/dist/expanded-shared.d.ts.map +1 -0
  35. package/dist/expanded-shared.js +14 -0
  36. package/dist/expanded-shared.js.map +1 -0
  37. package/dist/file-upload-list.d.ts +10 -0
  38. package/dist/file-upload-list.d.ts.map +1 -0
  39. package/dist/file-upload-list.js +7 -0
  40. package/dist/file-upload-list.js.map +1 -0
  41. package/dist/forms.d.ts +34 -0
  42. package/dist/forms.d.ts.map +1 -0
  43. package/dist/forms.js +65 -0
  44. package/dist/forms.js.map +1 -0
  45. package/dist/index.d.ts +20 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +17 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/interactive.d.ts +60 -0
  50. package/dist/interactive.d.ts.map +1 -0
  51. package/dist/interactive.js +321 -0
  52. package/dist/interactive.js.map +1 -0
  53. package/dist/mobile-top-bar.d.ts +14 -0
  54. package/dist/mobile-top-bar.d.ts.map +1 -0
  55. package/dist/mobile-top-bar.js +8 -0
  56. package/dist/mobile-top-bar.js.map +1 -0
  57. package/dist/navigation-drawer.d.ts +20 -0
  58. package/dist/navigation-drawer.d.ts.map +1 -0
  59. package/dist/navigation-drawer.js +37 -0
  60. package/dist/navigation-drawer.js.map +1 -0
  61. package/dist/portal.d.ts +27 -0
  62. package/dist/portal.d.ts.map +1 -0
  63. package/dist/portal.js +16 -0
  64. package/dist/portal.js.map +1 -0
  65. package/dist/search-field.d.ts +15 -0
  66. package/dist/search-field.d.ts.map +1 -0
  67. package/dist/search-field.js +113 -0
  68. package/dist/search-field.js.map +1 -0
  69. package/dist/shared.d.ts +35 -0
  70. package/dist/shared.d.ts.map +1 -0
  71. package/dist/shared.js +78 -0
  72. package/dist/shared.js.map +1 -0
  73. package/dist/site-verification.d.ts +10 -0
  74. package/dist/site-verification.d.ts.map +1 -0
  75. package/dist/site-verification.js +16 -0
  76. package/dist/site-verification.js.map +1 -0
  77. package/package.json +54 -3
@@ -0,0 +1,124 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useId, useRef, useState } from 'react';
3
+ import { sortRows } from '@hawiyah/core';
4
+ import { Button, Radio, Textarea } from './forms.js';
5
+ import { Avatar, Badge, Card } from './display.js';
6
+ import { cx, useControllable } from './shared.js';
7
+ export function Link({ external, disabled = false, variant, 'data-variant': dataVariant, className, target, rel, href, tabIndex, onClick, onAuxClick, ...props }) {
8
+ const unavailable = disabled || props['aria-disabled'] === true || props['aria-disabled'] === 'true';
9
+ return _jsx("a", { ...props, className: cx('hw-link', className), "data-variant": variant ?? dataVariant, href: unavailable ? undefined : href, role: unavailable ? 'link' : props.role, "aria-disabled": unavailable || undefined, tabIndex: unavailable ? -1 : tabIndex, target: external ? '_blank' : target, rel: external ? [rel, 'noopener', 'noreferrer'].filter(Boolean).join(' ') : rel, onClick: event => { if (unavailable) {
10
+ event.preventDefault();
11
+ event.stopPropagation();
12
+ }
13
+ else
14
+ onClick?.(event); }, onAuxClick: event => { if (unavailable) {
15
+ event.preventDefault();
16
+ event.stopPropagation();
17
+ }
18
+ else
19
+ onAuxClick?.(event); } });
20
+ }
21
+ export function IconButton({ label, shape, variant = 'ghost', className, children, ...props }) { return _jsx(Button, { ...props, variant: variant, "data-shape": shape ?? props['data-shape'], "aria-label": label, className: cx('hw-icon-button', className), children: _jsx("span", { "aria-hidden": "true", children: children }) }); }
22
+ export function ButtonGroup({ label, variant, orientation, className, ...props }) { return _jsx("div", { ...props, "data-variant": variant ?? props['data-variant'], "data-orientation": orientation ?? props['data-orientation'], role: "group", "aria-label": label, className: cx('hw-button-group', className) }); }
23
+ export function Chip({ onRemove, removeLabel = 'Remove', disabled, tone = 'neutral', children, className, ...props }) { return _jsxs("span", { ...props, className: cx('hw-chip', className), "data-tone": tone, children: [children, onRemove && _jsx(Button, { variant: "ghost", size: "sm", disabled: disabled, "aria-label": removeLabel, onClick: onRemove, children: "\u00D7" })] }); }
24
+ export function DescriptionList({ items, className, ...props }) { return _jsx("dl", { ...props, className: cx('hw-description-list', className), children: items.map((item, index) => _jsxs("div", { children: [_jsx("dt", { children: item.term }), _jsx("dd", { children: item.description })] }, item.key ?? index)) }); }
25
+ export function Stat({ label, value, description, trend, className, ...props }) { return _jsxs("div", { ...props, className: cx('hw-stat', className), children: [_jsxs("dl", { children: [_jsx("dt", { children: label }), _jsx("dd", { className: "hw-stat-value", children: value })] }), description && _jsx("p", { children: description }), trend && _jsx("div", { className: "hw-stat-trend", children: trend })] }); }
26
+ export function Timeline({ items, label = 'Timeline', className, ...props }) { return _jsx("ol", { ...props, className: cx('hw-timeline', className), "aria-label": props['aria-label'] ?? label, children: items.map(item => _jsxs("li", { "data-state": item.status, "aria-current": item.status === 'active' ? 'step' : undefined, children: [_jsx("h3", { children: item.title }), item.description && _jsx("div", { children: item.description }), item.dateLabel && _jsx("time", { dateTime: item.dateTime, children: item.dateLabel })] }, item.id)) }); }
27
+ export function Meter({ label, className, ...props }) { return _jsx("meter", { ...props, "aria-label": label, className: cx('hw-meter', className) }); }
28
+ export function AvatarGroup({ items, label, max = 5, getOverflowLabel = count => `${count} more people`, className, ...props }) {
29
+ const rounded = Math.floor(max);
30
+ const visible = items.slice(0, Number.isNaN(rounded) ? 5 : Math.max(0, rounded));
31
+ const remaining = items.length - visible.length;
32
+ return _jsxs("div", { ...props, className: cx('hw-avatar-group', className), role: "group", "aria-label": label, children: [visible.map((item, index) => _jsx(Avatar, { ...item }, index)), remaining > 0 && _jsxs("span", { className: "hw-avatar", role: "img", "aria-label": getOverflowLabel(remaining), children: ["+", remaining] })] });
33
+ }
34
+ export function DataTable({ columns, rows, caption, rowKey = (_, index) => index, sort, defaultSort = null, onSortChange, locale = 'ar-SA', emptyMessage = 'لا توجد سجلات', getSortLabel, className, variant, size, wrapperProps, ...props }) {
35
+ const captionId = useId();
36
+ const [sorting, setSort] = useControllable(sort, defaultSort, next => { if (next)
37
+ onSortChange?.(next); });
38
+ const sorted = sorting ? sortRows(rows, sorting.key, sorting.direction, locale) : rows;
39
+ return _jsx("div", { tabIndex: 0, role: "region", "aria-labelledby": captionId, ...wrapperProps, className: cx('hw-table-wrap', wrapperProps?.className), children: _jsxs("table", { ...props, "data-variant": variant ?? props['data-variant'], "data-size": size ?? props['data-size'], className: cx('hw-table hw-data-table', className), children: [_jsx("caption", { id: captionId, children: caption }), _jsx("thead", { children: _jsx("tr", { children: columns.map(column => { const active = sorting?.key === column.key; const direction = active && sorting.direction === 'ascending' ? 'descending' : 'ascending'; return _jsx("th", { scope: "col", "aria-sort": column.sortable ? active ? sorting.direction : 'none' : undefined, children: column.sortable ? _jsxs(Button, { variant: "ghost", "aria-label": getSortLabel?.(column.label, direction), onClick: () => setSort({ key: column.key, direction }), children: [column.label, _jsx("span", { "aria-hidden": "true", children: active ? sorting.direction === 'ascending' ? ' ↑' : ' ↓' : ' ↕' })] }) : column.label }, column.key); }) }) }), _jsx("tbody", { children: sorted.length ? sorted.map((row, index) => _jsx("tr", { children: columns.map(column => { const content = column.render ? column.render(row[column.key], row) : String(row[column.key] ?? ''); return column.rowHeader ? _jsx("th", { scope: "row", children: content }, column.key) : _jsx("td", { children: content }, column.key); }) }, rowKey(row, index))) : _jsx("tr", { children: _jsx("td", { colSpan: columns.length || 1, children: emptyMessage }) }) })] }) });
40
+ }
41
+ export function ServiceCard({ title, description, href, action, actionLabel = 'View service', category, metadata, icon, children, className, ...props }) { return _jsxs(Card, { ...props, className: cx('hw-service-card', className), header: _jsxs(_Fragment, { children: [icon && _jsx("span", { "aria-hidden": "true", children: icon }), _jsxs("div", { children: [category && _jsx(Badge, { children: category }), _jsx("h3", { children: title })] })] }), footer: action ?? (href && _jsx(Link, { href: href, children: actionLabel })), children: [description && _jsx("p", { children: description }), metadata && _jsx(DescriptionList, { items: metadata }), children] }); }
42
+ export function ServiceDetails({ title, description, metadata, requirements, requirementsLabel = 'Requirements', action, children, className, ...props }) { return _jsxs("article", { ...props, className: cx('hw-service-details', className), children: [_jsxs("header", { children: [_jsx("h2", { children: title }), description && _jsx("p", { children: description })] }), metadata && _jsx(DescriptionList, { items: metadata }), requirements && _jsxs("section", { children: [_jsx("h3", { children: requirementsLabel }), _jsx("ul", { children: requirements.map((item, index) => _jsx("li", { children: item }, index)) })] }), children, action && _jsx("footer", { children: action })] }); }
43
+ export function PortalHeader({ brand, brandHref, navigation, navigationLabel = 'التنقل الرئيسي', menuLabel = 'القائمة', navigationId, mainId, skipLabel = 'انتقل إلى المحتوى', actions, notice, children, className, onKeyDown, onBlur, ...props }) {
44
+ const id = useId();
45
+ const [open, setOpen] = useState(false);
46
+ const container = useRef(null);
47
+ const trigger = useRef(null);
48
+ const navId = navigationId ?? `${id}-navigation`;
49
+ const [branch, setBranch] = useState(null);
50
+ const closeNavigation = () => { setBranch(null); setOpen(false); };
51
+ useEffect(() => {
52
+ if (!open && !branch)
53
+ return;
54
+ const root = container.current;
55
+ const outside = (event) => {
56
+ const target = event.target;
57
+ if (!branch?.contains(target))
58
+ setBranch(null);
59
+ if (!root?.contains(target))
60
+ setOpen(false);
61
+ };
62
+ root?.ownerDocument.addEventListener('pointerdown', outside);
63
+ return () => root?.ownerDocument.removeEventListener('pointerdown', outside);
64
+ }, [open, branch]);
65
+ const link = (item, overview = false) => _jsx(Link, { href: item.href, className: overview ? 'hw-portal-branch-overview' : undefined, "aria-current": item.current ? 'page' : undefined, onClick: closeNavigation, children: item.label });
66
+ return _jsxs("header", { ...props, className: cx('hw-portal-header', className), onKeyDown: event => {
67
+ onKeyDown?.(event);
68
+ if (event.defaultPrevented || event.key !== 'Escape')
69
+ return;
70
+ if (branch?.isConnected) {
71
+ event.preventDefault();
72
+ event.stopPropagation();
73
+ setBranch(null);
74
+ branch.querySelector(':scope > summary')?.focus();
75
+ }
76
+ else if (open) {
77
+ event.preventDefault();
78
+ event.stopPropagation();
79
+ closeNavigation();
80
+ trigger.current?.focus();
81
+ }
82
+ }, onBlur: event => {
83
+ onBlur?.(event);
84
+ const target = event.relatedTarget ?? event.currentTarget.ownerDocument.activeElement;
85
+ if (!branch?.contains(target))
86
+ setBranch(null);
87
+ if (!event.currentTarget.contains(target))
88
+ setOpen(false);
89
+ }, children: [mainId && _jsx("a", { className: "hw-skip-link", href: `#${mainId}`, children: skipLabel }), notice && _jsx("div", { className: "hw-portal-notice", children: notice }), _jsxs("div", { ref: container, className: "hw-portal-header-main", children: [brandHref ? _jsx(Link, { href: brandHref, className: "hw-portal-brand", children: brand }) : _jsx("div", { className: "hw-portal-brand", children: brand }), !!navigation?.length && _jsxs(_Fragment, { children: [_jsxs("button", { ref: trigger, className: "hw-button hw-portal-menu-toggle", type: "button", "aria-expanded": open, "aria-controls": navId, onClick: () => { setBranch(null); setOpen(!open); }, children: [_jsx("span", { className: "hw-icon", "data-icon": open ? 'cancel-01' : 'menu-01', "aria-hidden": "true" }), menuLabel] }), _jsx("nav", { id: navId, "aria-label": navigationLabel, "data-open": open, children: _jsx("ul", { children: navigation.map(item => {
90
+ const groups = item.groups?.filter(group => group.links.length);
91
+ if (!groups?.length)
92
+ return _jsx("li", { children: link(item) }, item.href);
93
+ const childCurrent = groups.some(group => group.links.some(child => child.current));
94
+ const current = item.current || childCurrent;
95
+ return _jsx("li", { children: _jsxs("details", { "data-hw-portal-branch": "", className: "hw-portal-branch", "data-current": current || undefined, open: Boolean(branch?.isConnected && branch.dataset.branchHref === item.href), "data-branch-href": item.href, children: [_jsx("summary", { onClick: event => {
96
+ event.preventDefault();
97
+ const details = event.currentTarget.parentElement;
98
+ setBranch(branch === details ? null : details);
99
+ }, children: item.label }), _jsxs("div", { className: "hw-portal-branch-panel", children: [link({ ...item, current: item.current && !childCurrent }, true), groups.map((group, i) => _jsxs("section", { className: "hw-portal-branch-group", children: [group.label && _jsx("h2", { children: group.label }), _jsx("ul", { children: group.links.map(child => _jsx("li", { children: link(child) }, child.href)) })] }, i))] })] }) }, item.href);
100
+ }) }) })] }), actions && _jsx("div", { className: "hw-portal-actions", children: actions }), children] })] });
101
+ }
102
+ export function PortalFooter({ brand, description, links, linksLabel = 'روابط التذييل', legal, groups = [], legalLinks = [], legalLinksLabel = 'السياسات وإمكانية الوصول', support, supportLabel = 'المساعدة والتواصل', partners, externalLabel = 'يفتح في نافذة جديدة', children, className, ...props }) {
103
+ const linkList = (items) => _jsx("ul", { className: "hw-portal-footer-links", children: items.map((item, index) => _jsx("li", { children: _jsxs(Link, { href: item.href, external: item.external, children: [item.label, item.external && _jsxs(_Fragment, { children: [_jsx("span", { className: "hw-portal-footer-external", "aria-hidden": "true", children: "\u2197" }), _jsxs("span", { className: "hw-sr-only", children: [" \u00B7 ", externalLabel] })] })] }) }, index)) });
104
+ return _jsxs("footer", { ...props, className: cx('hw-portal-footer', className), children: [_jsxs("div", { className: "hw-portal-footer-main", children: [(brand || description) && _jsxs("div", { className: "hw-portal-footer-brand", children: [brand && _jsx("div", { className: "hw-portal-footer-brand-marks", children: brand }), description && _jsx("p", { children: description })] }), !!links?.length && _jsxs("nav", { className: "hw-portal-footer-group", "aria-label": linksLabel, children: [_jsx("h2", { children: linksLabel }), linkList(links)] }), groups.map((group, index) => group.links.length > 0 && _jsxs("nav", { className: "hw-portal-footer-group", "aria-label": group.title, children: [_jsx("h2", { children: group.title }), linkList(group.links)] }, index)), support && _jsxs("section", { className: "hw-portal-footer-support", "aria-label": supportLabel, children: [_jsx("h2", { children: supportLabel }), _jsx("div", { className: "hw-portal-footer-support-content", children: support })] }), children && _jsx("div", { className: "hw-portal-footer-extra", children: children })] }), (legal || legalLinks.length > 0 || partners) && _jsxs("div", { className: "hw-portal-footer-bottom", children: [legal && _jsx("small", { children: legal }), legalLinks.length > 0 && _jsx("nav", { className: "hw-portal-footer-legal", "aria-label": legalLinksLabel, children: linkList(legalLinks) }), partners && _jsx("div", { className: "hw-portal-footer-partners", children: partners })] })] });
105
+ }
106
+ export function Feedback({ label, value, defaultValue = { helpful: '', comment: '' }, onValueChange, onFeedback, yesLabel = 'Yes', noLabel = 'No', commentLabel = 'Tell us more (optional)', submitLabel = 'Send feedback', successMessage = 'Thank you for your feedback.', choiceVariant = 'text', disabled, className, onReset, ...props }) {
107
+ const id = useId();
108
+ const [current, setCurrent] = useControllable(value, defaultValue, onValueChange);
109
+ const [sent, setSent] = useState(false);
110
+ return _jsxs("form", { ...props, className: cx('hw-feedback', className), "data-choice-variant": choiceVariant, onReset: event => { onReset?.(event); const native = event.nativeEvent; queueMicrotask(() => { if (!native.defaultPrevented) {
111
+ if (value === undefined)
112
+ setCurrent(defaultValue);
113
+ setSent(false);
114
+ } }); }, onSubmit: event => { event.preventDefault(); if (disabled || !current.helpful)
115
+ return; onFeedback?.(current); setSent(true); }, children: [_jsxs("fieldset", { disabled: disabled, children: [_jsx("legend", { children: label }), _jsxs("div", { className: "hw-feedback-actions", children: [_jsx(Radio, { name: `${id}-helpful`, label: _jsxs(_Fragment, { children: [_jsx("span", { className: "hw-icon hw-feedback-icon", "data-icon": "thumbs-up", "aria-hidden": "true" }), _jsx("span", { className: "hw-feedback-label", children: yesLabel })] }), value: "yes", checked: current.helpful === 'yes', required: true, onChange: () => { setCurrent({ ...current, helpful: 'yes' }); setSent(false); } }), _jsx(Radio, { name: `${id}-helpful`, label: _jsxs(_Fragment, { children: [_jsx("span", { className: "hw-icon hw-feedback-icon", "data-icon": "thumbs-down", "aria-hidden": "true" }), _jsx("span", { className: "hw-feedback-label", children: noLabel })] }), value: "no", checked: current.helpful === 'no', onChange: () => { setCurrent({ ...current, helpful: 'no' }); setSent(false); } })] }), _jsx(Textarea, { label: commentLabel, name: "comment", value: current.comment, onChange: event => { setCurrent({ ...current, comment: event.currentTarget.value }); setSent(false); } }), _jsx(Button, { type: "submit", disabled: disabled || !current.helpful, children: submitLabel })] }), _jsx("div", { role: "status", children: sent ? successMessage : null })] });
116
+ }
117
+ export function CookieConsent({ title, description, value, defaultValue = null, onValueChange, acceptLabel = 'Accept optional cookies', rejectLabel = 'Reject optional cookies', policyHref, policyLabel = 'Cookie policy', className, ...props }) {
118
+ const id = useId();
119
+ const [choice, setChoice] = useControllable(value, defaultValue, next => { if (next)
120
+ onValueChange?.(next); });
121
+ return _jsxs("section", { ...props, hidden: choice !== null, className: cx('hw-cookie-consent', className), "aria-labelledby": `${id}-title`, children: [_jsx("h2", { id: `${id}-title`, children: title }), _jsx("p", { children: description }), policyHref && _jsx(Link, { href: policyHref, children: policyLabel }), _jsxs("div", { className: "hw-inline", children: [_jsx(Button, { variant: "secondary", onClick: () => setChoice('rejected'), children: rejectLabel }), _jsx(Button, { onClick: () => setChoice('accepted'), children: acceptLabel })] })] });
122
+ }
123
+ export function NotificationList({ items, label, emptyMessage = 'No notifications', onMarkRead, getMarkReadLabel = () => 'Mark as read', unreadLabel = 'Unread', className, ...props }) { const id = useId(); return _jsxs("section", { ...props, className: cx('hw-notification-list', className), "aria-labelledby": `${id}-title`, children: [_jsx("h2", { id: `${id}-title`, children: label }), items.length ? _jsx("ul", { children: items.map(item => _jsxs("li", { "data-state": item.read ? 'read' : 'unread', children: [_jsx("h3", { children: item.href ? _jsx(Link, { href: item.href, children: item.title }) : item.title }), !item.read && _jsx(Badge, { tone: "info", children: unreadLabel }), item.description && _jsx("p", { children: item.description }), item.dateLabel && _jsx("time", { dateTime: item.dateTime, children: item.dateLabel }), !item.read && onMarkRead && _jsx(Button, { variant: "ghost", onClick: () => onMarkRead(item.id), children: getMarkReadLabel(item) })] }, item.id)) }) : _jsx("p", { children: emptyMessage })] }); }
124
+ //# sourceMappingURL=expanded-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expanded-content.js","sourceRoot":"","sources":["../src/expanded-content.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAa;IACvK,MAAM,WAAW,GAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,KAAG,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,KAAG,MAAM,CAAC;IAC/F,OAAO,eAAO,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,kBAAgB,OAAO,IAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,mBAAiB,WAAW,IAAI,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAA,EAAE,GAAC,IAAG,WAAW,EAAC,CAAC;YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;QAAA,CAAC;;YAAK,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,EAAE,UAAU,EAAE,KAAK,CAAA,EAAE,GAAC,IAAG,WAAW,EAAC,CAAC;YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;QAAA,CAAC;;YAAK,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,GAAI,CAAC;AACrlB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAmB,IAAI,OAAO,KAAC,MAAM,OAAK,KAAK,EAAE,OAAO,EAAE,OAAO,gBAAc,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,gBAAc,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAAE,8BAAkB,MAAM,YAAE,QAAQ,GAAQ,GAAS,CAAC,CAAC,CAAC;AAE7T,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB,IAAI,OAAO,iBAAS,KAAK,kBAAgB,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,sBAAoB,WAAW,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAI,CAAC,CAAC,CAAC;AAE3T,MAAM,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa,IAAI,OAAO,mBAAU,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,eAAa,IAAI,aAAG,QAAQ,EAAE,QAAQ,IAAI,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,gBAAc,WAAW,EAAE,OAAO,EAAE,QAAQ,uBAAY,IAAQ,CAAC,CAAC,CAAC;AAG/V,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwB,IAAI,OAAO,gBAAQ,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,YAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,0BAA6B,uBAAK,IAAI,CAAC,IAAI,GAAM,EAAA,uBAAK,IAAI,CAAC,WAAW,GAAM,KAAlE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAuD,CAAC,GAAM,CAAC,CAAC,CAAC;AAEvR,MAAM,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa,IAAI,OAAO,kBAAS,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,aAAE,yBAAI,uBAAK,KAAK,GAAM,EAAA,aAAI,SAAS,EAAC,eAAe,YAAE,KAAK,GAAM,IAAK,EAAC,WAAW,IAAI,sBAAI,WAAW,GAAK,EAAE,KAAK,IAAI,cAAK,SAAS,EAAC,eAAe,YAAE,KAAK,GAAO,IAAO,CAAC,CAAC,CAAC;AAGjU,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiB,IAAI,OAAO,gBAAQ,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,gBAAc,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,YAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,4BAA8B,IAAI,CAAC,MAAM,kBAAgB,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAAE,uBAAK,IAAI,CAAC,KAAK,GAAM,EAAC,IAAI,CAAC,WAAW,IAAI,wBAAM,IAAI,CAAC,WAAW,GAAO,EAAE,IAAI,CAAC,SAAS,IAAI,eAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,YAAG,IAAI,CAAC,SAAS,GAAQ,KAAhP,IAAI,CAAC,EAAE,CAA+O,CAAC,GAAM,CAAC,CAAC,CAAC;AAEne,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAc,IAAI,OAAO,mBAAW,KAAK,gBAAc,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,GAAI,CAAC,CAAC,CAAC;AAE3J,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB;IAC9I,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,OAAO,kBAAS,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,KAAK,aAC/F,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAC,MAAM,OAAiB,IAAI,IAAf,KAAK,CAAc,CAAC,EAC9D,SAAS,GAAG,CAAC,IAAI,gBAAM,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,KAAK,gBAAa,gBAAgB,CAAC,SAAS,CAAC,kBAAI,SAAS,IAAQ,IACjH,CAAC;AACT,CAAC;AAID,MAAM,UAAU,SAAS,CAAsC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,EAAE,YAAY,GAAG,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,KAAK,EAAuB;IACpS,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,eAAe,CAAuB,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI;QAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzN,OAAO,cAAK,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,qBAAkB,SAAS,KAAM,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,SAAS,CAAC,YAAE,oBAAW,KAAK,kBAAgB,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,eAAa,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,aAAE,kBAAS,EAAE,EAAE,SAAS,YAAG,OAAO,GAAW,EAAA,0BAAO,uBAAK,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,MAAM,GAAG,OAAO,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,aAAqB,KAAK,EAAC,KAAK,eAAY,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAC,MAAM,IAAC,OAAO,EAAC,OAAO,gBAAa,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,aAAG,MAAM,CAAC,KAAK,EAAC,8BAAkB,MAAM,YAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAQ,IAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAArY,MAAM,CAAC,GAAG,CAAiY,CAAC,CAAC,CAAC,CAAC,GAAM,GAAQ,EAAA,0BAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,uBAA8B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,aAAqB,KAAK,EAAC,KAAK,YAAE,OAAO,IAAhC,MAAM,CAAC,GAAG,CAA4B,CAAC,CAAC,CAAC,uBAAsB,OAAO,IAApB,MAAM,CAAC,GAAG,CAAgB,CAAC,CAAC,CAAC,CAAC,IAArQ,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAyP,CAAC,CAAC,CAAC,CAAC,uBAAI,aAAI,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,YAAG,YAAY,GAAM,GAAK,GAAS,IAAQ,GAAM,CAAC;AACl1C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAG,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB,IAAI,OAAO,MAAC,IAAI,OAAK,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,8BAAG,IAAI,IAAI,8BAAkB,MAAM,YAAE,IAAI,GAAQ,EAAC,0BAAM,QAAQ,IAAI,KAAC,KAAK,cAAE,QAAQ,GAAS,EAAC,uBAAK,KAAK,GAAM,IAAM,IAAG,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,YAAG,WAAW,GAAQ,CAAC,aAAG,WAAW,IAAI,sBAAI,WAAW,GAAK,EAAE,QAAQ,IAAI,KAAC,eAAe,IAAC,KAAK,EAAE,QAAQ,GAAI,EAAE,QAAQ,IAAQ,CAAC,CAAC,CAAC;AAEliB,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAuB,IAAI,OAAO,sBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,aAAE,6BAAQ,uBAAK,KAAK,GAAM,EAAC,WAAW,IAAI,sBAAI,WAAW,GAAK,IAAU,EAAC,QAAQ,IAAI,KAAC,eAAe,IAAC,KAAK,EAAE,QAAQ,GAAI,EAAE,YAAY,IAAI,8BAAS,uBAAK,iBAAiB,GAAM,EAAA,uBAAK,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAiB,IAAI,IAAZ,KAAK,CAAa,CAAC,GAAM,IAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,2BAAS,MAAM,GAAU,IAAW,CAAC,CAAC,CAAC;AAI1jB,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,GAAG,gBAAgB,EAAE,SAAS,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,GAAG,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAqB;IACnQ,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAAC,MAAM,OAAO,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,YAAY,IAAI,GAAG,EAAE,aAAa,CAAC;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAc,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,IAAI,EAAE,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,IAAmB,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,CACrD,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,kBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,YAAG,IAAI,CAAC,KAAK,GAAQ,CAAC;IACvL,OAAO,qBAAY,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;YACzF,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO;YAC7D,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gBAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,CAAC,aAAa,CAAc,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC;YACjE,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;gBAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAAC,eAAe,EAAE,CAAC;gBAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC/F,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC;YACtF,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAqB,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAqB,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC,aACE,MAAM,IAAI,YAAG,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,IAAI,MAAM,EAAE,YAAG,SAAS,GAAK,EACzE,MAAM,IAAI,cAAK,SAAS,EAAC,kBAAkB,YAAE,MAAM,GAAO,EAC3D,eAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,uBAAuB,aACnD,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAO,EAC9H,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,8BAAE,kBAAQ,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,iCAAiC,EAAC,IAAI,EAAC,QAAQ,mBAAgB,IAAI,mBAAiB,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAE,eAAM,SAAS,EAAC,SAAS,eAAY,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,iBAAc,MAAM,GAAG,EAAC,SAAS,IAAU,EACvT,cAAK,EAAE,EAAE,KAAK,gBAAc,eAAe,eAAa,IAAI,YAAE,uBAAK,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wCACvF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wCAChE,IAAI,CAAC,MAAM,EAAE,MAAM;4CAAE,OAAO,uBAAqB,IAAI,CAAC,IAAI,CAAC,IAAtB,IAAI,CAAC,IAAI,CAAmB,CAAC;wCAClE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wCACpF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC;wCAC7C,OAAO,uBAAoB,4CAA+B,EAAE,EAAC,SAAS,EAAC,kBAAkB,kBAAe,OAAO,IAAI,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,sBAAoB,IAAI,CAAC,IAAI,aACtO,kBAAS,OAAO,EAAE,KAAK,CAAC,EAAE;4DACxB,KAAK,CAAC,cAAc,EAAE,CAAC;4DACvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAmC,CAAC;4DACxE,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wDACjD,CAAC,YAAG,IAAI,CAAC,KAAK,GAAW,EACzB,eAAK,SAAS,EAAC,wBAAwB,aAAE,IAAI,CAAC,EAAC,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAC,EAAE,IAAI,CAAC,EACnG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAS,SAAS,EAAC,wBAAwB,aAAU,KAAK,CAAC,KAAK,IAAI,uBAAK,KAAK,CAAC,KAAK,GAAM,EAClH,uBAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAsB,IAAI,CAAC,KAAK,CAAC,IAAxB,KAAK,CAAC,IAAI,CAAoB,CAAC,GAAM,KADH,CAAC,CAElE,CAAC,IACP,IACE,IAXM,IAAI,CAAC,IAAI,CAWV,CAAC;oCAClB,CAAC,CAAC,GAAM,GAAM,IAAG,EAClB,OAAO,IAAI,cAAK,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAO,EAAE,QAAQ,IACpE,IACC,CAAC;AACZ,CAAC;AAQD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,eAAe,GAAG,0BAA0B,EAAE,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,QAAQ,EAAE,aAAa,GAAG,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAqB;IACzT,MAAM,QAAQ,GAAG,CAAC,KAAkC,EAAE,EAAE,CAAC,aAAI,SAAS,EAAC,wBAAwB,YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAgB,MAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,aAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,8BAAE,eAAM,SAAS,EAAC,2BAA2B,iBAAa,MAAM,uBAAS,EAAA,gBAAM,SAAS,EAAC,YAAY,yBAAK,aAAa,IAAQ,IAAG,IAAQ,IAA/N,KAAK,CAA+N,CAAC,GAAM,CAAC;IACjX,OAAO,qBAAY,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,aACpE,eAAK,SAAS,EAAC,uBAAuB,aACnC,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,eAAK,SAAS,EAAC,wBAAwB,aAAE,KAAK,IAAI,cAAK,SAAS,EAAC,8BAA8B,YAAE,KAAK,GAAO,EAAE,WAAW,IAAI,sBAAI,WAAW,GAAK,IAAO,EACnL,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,eAAK,SAAS,EAAC,wBAAwB,gBAAa,UAAU,aAAE,uBAAK,UAAU,GAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,IAAO,EAC/H,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,eAAK,SAAS,EAAC,wBAAwB,gBAAa,KAAK,CAAC,KAAK,aAAc,uBAAK,KAAK,CAAC,KAAK,GAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAnD,KAAK,CAAqD,CAAC,EACxL,OAAO,IAAI,mBAAS,SAAS,EAAC,0BAA0B,gBAAa,YAAY,aAAE,uBAAK,YAAY,GAAM,EAAA,cAAK,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAO,IAAU,EACrL,QAAQ,IAAI,cAAK,SAAS,EAAC,wBAAwB,YAAE,QAAQ,GAAO,IACjE,EACL,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,eAAK,SAAS,EAAC,yBAAyB,aAAE,KAAK,IAAI,0BAAQ,KAAK,GAAS,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,cAAK,SAAS,EAAC,wBAAwB,gBAAa,eAAe,YAAG,QAAQ,CAAC,UAAU,CAAC,GAAO,EAAE,QAAQ,IAAI,cAAK,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAO,IAAO,IAC/T,CAAC;AACZ,CAAC;AAGD,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,GAAG,yBAAyB,EAAE,WAAW,GAAG,eAAe,EAAE,cAAc,GAAG,8BAA8B,EAAE,aAAa,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAiB;IAC1V,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/I,OAAO,mBAAU,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,yBAAuB,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAAC,IAAI,KAAK,KAAK,SAAS;gBAAE,UAAU,CAAC,YAAY,CAAC,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAE,oBAAU,QAAQ,EAAE,QAAQ,aAAE,2BAAS,KAAK,GAAU,EAAA,eAAK,SAAS,EAAC,qBAAqB,aAAC,KAAC,KAAK,IAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,8BAAE,eAAM,SAAS,EAAC,0BAA0B,eAAW,WAAW,iBAAa,MAAM,GAAG,EAAA,eAAM,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAQ,IAAG,EAAE,KAAK,EAAC,KAAK,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,QAAQ,QAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAI,EAAA,KAAC,KAAK,IAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,8BAAE,eAAM,SAAS,EAAC,0BAA0B,eAAW,aAAa,iBAAa,MAAM,GAAG,EAAA,eAAM,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAQ,IAAG,EAAE,KAAK,EAAC,IAAI,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAI,IAAM,EAAA,KAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAI,EAAA,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,YAAG,WAAW,GAAU,IAAW,EAAA,cAAK,IAAI,EAAC,QAAQ,YAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAO,IAAO,CAAC;AAC59C,CAAC;AAGD,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,EAAE,WAAW,GAAG,yBAAyB,EAAE,WAAW,GAAG,yBAAyB,EAAE,UAAU,EAAE,WAAW,GAAG,eAAe,EAAE,SAAS,EAAE,GAAG,KAAK,EAAsB;IACnQ,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,eAAe,CAAe,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI;QAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjJ,OAAO,sBAAa,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,qBAAmB,GAAG,EAAE,QAAQ,aAAE,aAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,YAAG,KAAK,GAAM,EAAA,sBAAI,WAAW,GAAK,EAAC,UAAU,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,YAAG,WAAW,GAAQ,EAAC,eAAK,SAAS,EAAC,WAAW,aAAC,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,YAAG,WAAW,GAAU,EAAA,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,YAAG,WAAW,GAAU,IAAM,IAAU,CAAC;AAChc,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,GAAG,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,WAAW,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB,IAAI,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,OAAO,sBAAa,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,qBAAmB,GAAG,EAAE,QAAQ,aAAE,aAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,YAAG,KAAK,GAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,4BAA8B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,aAAE,uBAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAG,IAAI,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAM,EAAC,CAAC,IAAI,CAAC,IAAI,IAAI,KAAC,KAAK,IAAC,IAAI,EAAC,MAAM,YAAE,WAAW,GAAS,EAAE,IAAI,CAAC,WAAW,IAAI,sBAAI,IAAI,CAAC,WAAW,GAAK,EAAE,IAAI,CAAC,SAAS,IAAI,eAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,YAAG,IAAI,CAAC,SAAS,GAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,IAAI,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,YAAG,gBAAgB,CAAC,IAAI,CAAC,GAAU,KAA7a,IAAI,CAAC,EAAE,CAA4a,CAAC,GAAM,CAAC,CAAC,CAAC,sBAAI,YAAY,GAAK,IAAW,CAAC,CAAC,CAAC"}
@@ -0,0 +1,107 @@
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import type { Option } from '@hawiyah/core';
3
+ import type { TextFieldProps } from './forms.js';
4
+ import type { FieldDecoration } from './shared.js';
5
+ export interface InputGroupProps extends ComponentPropsWithRef<'div'> {
6
+ start?: ReactNode;
7
+ end?: ReactNode;
8
+ }
9
+ export declare function InputGroup({ start, end, children, className, ...props }: InputGroupProps): import("react").JSX.Element;
10
+ export interface PasswordFieldProps extends Omit<TextFieldProps, 'type'> {
11
+ visible?: boolean;
12
+ defaultVisible?: boolean;
13
+ onVisibleChange?: (visible: boolean) => void;
14
+ showLabel?: string;
15
+ hideLabel?: string;
16
+ toggleVariant?: 'icon' | 'text';
17
+ }
18
+ export declare function PasswordField({ visible, defaultVisible, onVisibleChange, showLabel, hideLabel, toggleVariant, label, hint, error, className, ref, ...props }: PasswordFieldProps): import("react").JSX.Element;
19
+ export { SearchField } from './search-field.js';
20
+ export type { SearchFieldProps } from './search-field.js';
21
+ export interface NumberFieldProps extends Omit<TextFieldProps, 'type'> {
22
+ }
23
+ export declare function NumberField({ className, ...props }: NumberFieldProps): import("react").JSX.Element;
24
+ export interface SliderProps extends Omit<TextFieldProps, 'type' | 'value' | 'defaultValue' | 'onChange'> {
25
+ value?: number;
26
+ defaultValue?: number;
27
+ onValueChange?: (value: number) => void;
28
+ showValue?: boolean;
29
+ formatValue?: (value: number) => string;
30
+ }
31
+ export declare function Slider({ value, defaultValue, onValueChange, showValue, formatValue, min, max, label, hint, error, ref, className, onPointerDown, onKeyDown, ...props }: SliderProps): import("react").JSX.Element;
32
+ export interface RangeSliderProps extends Omit<ComponentPropsWithRef<'fieldset'>, 'onChange' | 'defaultValue'>, FieldDecoration {
33
+ value?: readonly [number, number];
34
+ defaultValue?: readonly [number, number];
35
+ onValueChange?: (value: [number, number]) => void;
36
+ min?: number;
37
+ max?: number;
38
+ step?: number;
39
+ lowerLabel: string;
40
+ upperLabel: string;
41
+ name?: string;
42
+ lowerName?: string;
43
+ upperName?: string;
44
+ form?: string;
45
+ readOnly?: boolean;
46
+ formatValue?: (value: number) => string;
47
+ }
48
+ export declare function RangeSlider({ value, defaultValue, onValueChange, min, max, step, lowerLabel, upperLabel, name, lowerName, upperName, form, readOnly, formatValue, label, hint, error, className, disabled, ...props }: RangeSliderProps): import("react").JSX.Element;
49
+ export interface RatingProps extends Omit<ComponentPropsWithRef<'fieldset'>, 'onChange' | 'defaultValue'>, FieldDecoration {
50
+ value?: number;
51
+ defaultValue?: number;
52
+ onValueChange?: (value: number) => void;
53
+ max?: number;
54
+ name?: string;
55
+ form?: string;
56
+ required?: boolean;
57
+ readOnly?: boolean;
58
+ getRatingLabel?: (value: number, max: number) => string;
59
+ }
60
+ export declare function Rating({ value, defaultValue, onValueChange, max, name, form, required, readOnly, getRatingLabel, label, hint, error, className, disabled, ...props }: RatingProps): import("react").JSX.Element;
61
+ /** Read-only aggregate score; use Rating for integer input selection. */
62
+ export interface RatingDisplayProps extends ComponentPropsWithRef<'div'> {
63
+ label: string;
64
+ value?: number;
65
+ max?: number;
66
+ showValue?: boolean;
67
+ getValueLabel?: (value: number, max: number) => string;
68
+ }
69
+ export declare function RatingDisplay({ label, value, max, showValue, getValueLabel, className, ...props }: RatingDisplayProps): import("react").JSX.Element;
70
+ export interface PinInputProps extends Omit<TextFieldProps, 'type' | 'value' | 'defaultValue' | 'onChange' | 'maxLength'> {
71
+ value?: string;
72
+ defaultValue?: string;
73
+ onValueChange?: (value: string) => void;
74
+ length?: number;
75
+ showSlots?: boolean;
76
+ }
77
+ export declare function PinInput({ value, defaultValue, onValueChange, length, showSlots, label, hint, error, ref, className, ...props }: PinInputProps): import("react").JSX.Element;
78
+ export interface TagInputProps extends Omit<TextFieldProps, 'type' | 'value' | 'defaultValue' | 'onChange'> {
79
+ value?: readonly string[];
80
+ defaultValue?: readonly string[];
81
+ onValueChange?: (value: string[]) => void;
82
+ getRemoveLabel?: (tag: string) => string;
83
+ requiredMessage?: string;
84
+ }
85
+ export declare function TagInput({ value, defaultValue, onValueChange, getRemoveLabel, requiredMessage, label, hint, error, name, ref, onKeyDown, className, ...props }: TagInputProps): import("react").JSX.Element;
86
+ export interface MultiSelectProps extends Omit<ComponentPropsWithRef<'fieldset'>, 'onChange' | 'defaultValue'>, FieldDecoration {
87
+ label: ReactNode;
88
+ options: readonly Option[];
89
+ value?: readonly string[];
90
+ defaultValue?: readonly string[];
91
+ onValueChange?: (value: string[]) => void;
92
+ name?: string;
93
+ form?: string;
94
+ required?: boolean;
95
+ readOnly?: boolean;
96
+ searchLabel?: string;
97
+ emptyMessage?: string;
98
+ requiredMessage?: string;
99
+ }
100
+ export declare function MultiSelect({ options, value, defaultValue, onValueChange, name, form, required, readOnly, searchLabel, emptyMessage, requiredMessage, label, hint, error, className, disabled, ...props }: MultiSelectProps): import("react").JSX.Element;
101
+ export interface FileDropzoneProps extends Omit<TextFieldProps, 'type' | 'value' | 'defaultValue' | 'readOnly'> {
102
+ onFilesChange?: (files: File[]) => void;
103
+ dropLabel?: string;
104
+ getRejectedMessage?: (files: File[]) => string;
105
+ }
106
+ export declare function FileDropzone({ onFilesChange, dropLabel, getRejectedMessage, label, hint, error, ref, onChange, className, ...props }: FileDropzoneProps): import("react").JSX.Element;
107
+ //# sourceMappingURL=expanded-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expanded-controls.d.ts","sourceRoot":"","sources":["../src/expanded-controls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useId, useRef, useState } from 'react';
3
+ import { clampRange, filterOptions, isDisabled, normalizeDigits, normalizeRatingMax, normalizeRatingValue } from '@hawiyah/core';
4
+ import { Button, TextField } from './forms.js';
5
+ import { assignRef, cx, Field, useControllable, useFieldControl } from './shared.js';
6
+ import { useFormReset } from './expanded-shared.js';
7
+ export function InputGroup({ start, end, children, className, ...props }) { return _jsxs("div", { ...props, className: cx('hw-input-group', className), children: [start != null && _jsx("span", { className: "hw-input-addon", children: start }), children, end != null && _jsx("span", { className: "hw-input-addon", children: end })] }); }
8
+ export function PasswordField({ visible, defaultVisible = false, onVisibleChange, showLabel = 'Show password', hideLabel = 'Hide password', toggleVariant = 'icon', label, hint, error, className, ref, ...props }) {
9
+ const id = useId();
10
+ const input = useRef(null);
11
+ const [shown, setShown] = useControllable(visible, defaultVisible, onVisibleChange);
12
+ useFormReset(input, () => { if (visible === undefined)
13
+ setShown(defaultVisible); }, props.form);
14
+ return _jsx(Field, { label: label, hint: hint, error: error, controlId: props.id ?? id, required: props.required, className: "hw-password-field", children: _jsxs("div", { className: "hw-password-control", children: [_jsx(TextField, { ...props, ref: node => { input.current = node; assignRef(ref, node); }, className: className, type: shown ? 'text' : 'password' }), _jsx(Button, { className: "hw-password-toggle", "data-toggle-variant": toggleVariant, variant: "ghost", disabled: props.disabled, "aria-label": shown ? hideLabel : showLabel, "aria-pressed": shown, "aria-controls": props.id ?? id, onClick: () => { if (input.current && !isDisabled(input.current))
15
+ setShown(!shown); }, children: toggleVariant === 'text' ? shown ? hideLabel : showLabel : _jsx("span", { className: "hw-password-icon", "aria-hidden": "true" }) })] }) });
16
+ }
17
+ export { SearchField } from './search-field.js';
18
+ export function NumberField({ className, ...props }) { return _jsx(TextField, { ...props, type: "number", className: cx('hw-number-field', className) }); }
19
+ function SliderInput(props) {
20
+ const field = useFieldControl(props);
21
+ return _jsx("input", { ...props, ...field, className: cx('hw-slider', props.className) });
22
+ }
23
+ export function Slider({ value, defaultValue, onValueChange, showValue = true, formatValue = String, min = 0, max = 100, label, hint, error, ref, className, onPointerDown, onKeyDown, ...props }) {
24
+ const id = useId();
25
+ const input = useRef(null);
26
+ const initial = defaultValue ?? (Number(min) + Number(max)) / 2;
27
+ const [current, setCurrent] = useControllable(value, initial, onValueChange);
28
+ useFormReset(input, () => { if (value === undefined)
29
+ setCurrent(initial); }, props.form);
30
+ return _jsxs(Field, { label: label, hint: hint, error: error, controlId: props.id ?? id, children: [_jsx(SliderInput, { ...props, min: min, max: max, type: "range", value: current, className: className, ref: node => { input.current = node; assignRef(ref, node); }, "aria-valuetext": formatValue(current), "aria-readonly": props.readOnly || props['aria-readonly'], onPointerDown: event => { onPointerDown?.(event); if (props.readOnly)
31
+ event.preventDefault(); }, onKeyDown: event => { onKeyDown?.(event); if (props.readOnly && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes(event.key))
32
+ event.preventDefault(); }, onChange: event => { if (props.readOnly || isDisabled(event.currentTarget)) {
33
+ event.currentTarget.value = String(current);
34
+ return;
35
+ } setCurrent(event.currentTarget.valueAsNumber); } }), showValue && _jsx("output", { htmlFor: props.id ?? id, children: formatValue(current) })] });
36
+ }
37
+ export function RangeSlider({ value, defaultValue = [0, 100], onValueChange, min = 0, max = 100, step, lowerLabel, upperLabel, name, lowerName, upperName, form, readOnly, formatValue = String, label, hint, error, className, disabled, ...props }) {
38
+ const id = useId();
39
+ const first = useRef(null);
40
+ const [stored, setStored] = useControllable(value, defaultValue, next => onValueChange?.([next[0], next[1]]));
41
+ const current = clampRange([stored[0], stored[1]], min, max, 'lower');
42
+ useFormReset(first, () => { if (value === undefined)
43
+ setStored(defaultValue); }, form);
44
+ return _jsxs("fieldset", { ...props, disabled: disabled, className: cx('hw-range-slider', className), "aria-describedby": [hint ? `${id}-hint` : '', error ? `${id}-error` : ''].filter(Boolean).join(' ') || undefined, "aria-invalid": error ? true : undefined, children: [label != null && _jsx("legend", { className: "hw-label", children: label }), _jsx(Slider, { ref: first, label: lowerLabel, name: lowerName ?? name, form: form, min: min, max: current[1], step: step, value: current[0], readOnly: readOnly, disabled: disabled, formatValue: formatValue, onValueChange: lower => setStored(clampRange([lower, current[1]], min, max, 'lower')) }), _jsx(Slider, { label: upperLabel, name: upperName ?? name, form: form, min: current[0], max: max, step: step, value: current[1], readOnly: readOnly, disabled: disabled, formatValue: formatValue, onValueChange: upper => setStored(clampRange([current[0], upper], min, max, 'upper')) }), hint && _jsx("p", { className: "hw-hint", id: `${id}-hint`, children: hint }), error && _jsx("p", { className: "hw-error", id: `${id}-error`, children: error })] });
45
+ }
46
+ export function Rating({ value, defaultValue = 0, onValueChange, max = 5, name, form, required, readOnly, getRatingLabel = (number, total) => `${number} من ${total}`, label, hint, error, className, disabled, ...props }) {
47
+ const id = useId();
48
+ const input = useRef(null);
49
+ const total = normalizeRatingMax(max);
50
+ const [stored, setCurrent] = useControllable(value, defaultValue, onValueChange);
51
+ const current = Math.floor(normalizeRatingValue(stored, total));
52
+ useFormReset(input, () => { if (value === undefined)
53
+ setCurrent(defaultValue); }, form);
54
+ return _jsxs("fieldset", { ...props, className: cx('hw-rating', className), disabled: disabled, "data-hw-readonly": readOnly || undefined, "aria-describedby": [hint ? `${id}-hint` : '', error ? `${id}-error` : ''].filter(Boolean).join(' ') || undefined, "aria-invalid": error ? true : undefined, children: [_jsx("legend", { className: "hw-label", children: label }), Array.from({ length: total }, (_, index) => index + 1).map(number => _jsxs("label", { children: [_jsx("input", { ref: number === 1 ? input : undefined, type: "radio", className: "hw-radio", name: name ?? id, form: form, value: number, checked: current === number, required: required, "aria-label": getRatingLabel(number, total), "aria-disabled": readOnly || undefined, onClick: event => { if (readOnly)
55
+ event.preventDefault(); }, onKeyDown: event => { if (readOnly && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', ' '].includes(event.key))
56
+ event.preventDefault(); }, onChange: event => { if (!readOnly && !isDisabled(event.currentTarget))
57
+ setCurrent(number); } }), _jsx("span", { "aria-hidden": "true", "data-state": number <= current ? 'selected' : undefined, children: "\u2605" })] }, number)), hint && _jsx("p", { id: `${id}-hint`, className: "hw-hint", children: hint }), error && _jsx("p", { id: `${id}-error`, className: "hw-error", children: error })] });
58
+ }
59
+ export function RatingDisplay({ label, value = 0, max = 5, showValue = true, getValueLabel = (score, total) => `${score} من ${total}`, className, ...props }) {
60
+ const total = normalizeRatingMax(max), score = normalizeRatingValue(value, total);
61
+ return _jsxs("div", { ...props, className: cx('hw-rating-display', className), role: "img", "aria-label": props['aria-label'] ?? `${label}: ${getValueLabel(score, total)}`, children: [_jsx("span", { className: "hw-rating-stars", "aria-hidden": "true", children: Array.from({ length: total }, (_, index) => _jsxs("span", { className: "hw-rating-star", children: ["\u2605", _jsx("span", { className: "hw-rating-fill", style: { '--hw-rating-fill': `${Math.min(1, Math.max(0, score - index)) * 100}%` } })] }, index)) }), showValue && _jsxs("span", { className: "hw-rating-score", "aria-hidden": "true", children: [score, "/", total] })] });
62
+ }
63
+ export function PinInput({ value, defaultValue = '', onValueChange, length = 6, showSlots = false, label, hint, error, ref, className, ...props }) {
64
+ const id = useId();
65
+ const input = useRef(null);
66
+ const count = Math.max(1, Math.min(32, Math.floor(length)));
67
+ const normalize = (text) => normalizeDigits(text).replace(/[^0-9]/gu, '').slice(0, count);
68
+ const [stored, setStored] = useControllable(value, normalize(defaultValue), onValueChange);
69
+ const current = normalize(stored);
70
+ useFormReset(input, () => { if (value === undefined)
71
+ setStored(normalize(defaultValue)); }, props.form);
72
+ return _jsxs(Field, { label: label, hint: hint, error: error, required: props.required, controlId: props.id ?? id, className: "hw-pin-input", children: [_jsx(TextField, { ...props, ref: node => { input.current = node; assignRef(ref, node); }, className: className, type: "text", inputMode: "numeric", autoComplete: "one-time-code", pattern: `[0-9]{${count}}`, maxLength: count, value: current, onChange: event => setStored(normalize(event.currentTarget.value)) }), showSlots && _jsx("span", { "aria-hidden": "true", className: "hw-pin-slots", children: Array.from({ length: count }, (_, index) => _jsx("span", { children: current[index] || '·' }, index)) })] });
73
+ }
74
+ export function TagInput({ value, defaultValue = [], onValueChange, getRemoveLabel = tag => `Remove ${tag}`, requiredMessage = 'Add at least one tag.', label, hint, error, name, ref, onKeyDown, className, ...props }) {
75
+ const composing = useRef(false);
76
+ const id = useId();
77
+ const input = useRef(null);
78
+ const [query, setQuery] = useState('');
79
+ const [tags, setTags] = useControllable(value, defaultValue, next => onValueChange?.([...next]));
80
+ useFormReset(input, () => { if (value === undefined)
81
+ setTags(defaultValue); setQuery(''); }, props.form);
82
+ useEffect(() => { input.current?.setCustomValidity(props.required && !tags.length ? requiredMessage : ''); }, [props.required, tags.length, requiredMessage]);
83
+ return _jsxs(Field, { label: label, hint: hint, error: error, required: props.required, controlId: props.id ?? id, className: "hw-tag-input", children: [_jsx("div", { className: "hw-inline", children: tags.map(tag => _jsxs("span", { className: "hw-chip", children: [tag, !props.readOnly && _jsx(Button, { variant: "ghost", size: "sm", disabled: props.disabled, "aria-label": getRemoveLabel(tag), onClick: () => { if (input.current && !isDisabled(input.current)) {
84
+ setTags(tags.filter(item => item !== tag));
85
+ input.current.focus();
86
+ } }, children: "\u00D7" }), _jsx("input", { type: "hidden", name: name, form: props.form, value: tag, disabled: props.disabled })] }, tag)) }), _jsx(TextField, { ...props, required: false, "aria-required": props.required ? true : props['aria-required'], ref: node => { input.current = node; assignRef(ref, node); }, className: className, type: "text", value: query, onChange: event => setQuery(event.currentTarget.value), onCompositionStart: event => { composing.current = true; props.onCompositionStart?.(event); }, onCompositionEnd: event => { composing.current = false; props.onCompositionEnd?.(event); }, onKeyDown: event => { onKeyDown?.(event); if (event.defaultPrevented || props.disabled || props.readOnly || isDisabled(event.currentTarget) || composing.current || event.nativeEvent.isComposing || event.ctrlKey || event.altKey || event.metaKey)
87
+ return; if ((event.key === 'Enter' || event.key === ',') && query.trim()) {
88
+ event.preventDefault();
89
+ const tag = query.trim();
90
+ if (tag && !tags.includes(tag))
91
+ setTags([...tags, tag]);
92
+ setQuery('');
93
+ }
94
+ else if (event.key === 'Backspace' && !query && tags.length) {
95
+ event.preventDefault();
96
+ setTags(tags.slice(0, -1));
97
+ } } })] });
98
+ }
99
+ export function MultiSelect({ options, value, defaultValue = [], onValueChange, name, form, required, readOnly, searchLabel = 'Search options', emptyMessage = 'No options found', requiredMessage = 'Choose at least one option.', label, hint, error, className, disabled, ...props }) {
100
+ const id = useId();
101
+ const input = useRef(null);
102
+ const [query, setQuery] = useState('');
103
+ const [selected, setSelected] = useControllable(value, defaultValue, next => onValueChange?.([...next]));
104
+ const allowed = selected.filter(item => options.some(option => option.value === item && !option.disabled));
105
+ const results = filterOptions(options, query);
106
+ useFormReset(input, () => { if (value === undefined)
107
+ setSelected(defaultValue); setQuery(''); }, form);
108
+ useEffect(() => { input.current?.setCustomValidity(required && !disabled && !allowed.length ? requiredMessage : ''); }, [required, disabled, allowed.length, requiredMessage]);
109
+ return _jsxs("fieldset", { ...props, disabled: disabled, className: cx('hw-multi-select', className), "aria-describedby": [hint ? `${id}-hint` : '', error ? `${id}-error` : ''].filter(Boolean).join(' ') || undefined, "aria-invalid": error ? true : undefined, children: [_jsxs("legend", { className: "hw-label", children: [label, required && _jsx("span", { "aria-hidden": "true", children: " *" })] }), _jsx(TextField, { ref: input, form: form, type: "search", "aria-label": searchLabel, "aria-required": required || undefined, "aria-describedby": [hint ? `${id}-hint` : '', error ? `${id}-error` : ''].filter(Boolean).join(' ') || undefined, "aria-invalid": error ? true : undefined, value: query, onChange: event => setQuery(event.currentTarget.value), disabled: disabled }), _jsxs("div", { className: "hw-stack", children: [results.map(option => _jsxs("label", { className: "hw-choice", children: [_jsx("input", { className: "hw-checkbox", type: "checkbox", checked: allowed.includes(option.value), disabled: disabled || readOnly || option.disabled, value: option.value, onChange: event => { if (!disabled && !readOnly)
110
+ setSelected(event.currentTarget.checked ? [...allowed, option.value] : allowed.filter(item => item !== option.value)); } }), option.label] }, option.value)), !results.length && _jsx("p", { className: "hw-hint", children: emptyMessage })] }), allowed.map(item => _jsx("input", { type: "hidden", name: name, form: form, value: item, disabled: disabled }, item)), hint && _jsx("p", { id: `${id}-hint`, className: "hw-hint", children: hint }), error && _jsx("p", { id: `${id}-error`, className: "hw-error", children: error })] });
111
+ }
112
+ export function FileDropzone({ onFilesChange, dropLabel = 'Drop files here or choose files', getRejectedMessage = () => 'Some files do not match the accepted file types.', label, hint, error, ref, onChange, className, ...props }) {
113
+ const input = useRef(null);
114
+ const id = useId();
115
+ const [dragging, setDragging] = useState(false);
116
+ const [files, setFiles] = useState([]);
117
+ const [rejection, setRejection] = useState('');
118
+ useFormReset(input, () => { setFiles([]); setRejection(''); }, props.form);
119
+ const unavailable = () => props.disabled || !input.current || isDisabled(input.current);
120
+ const accept = (file) => !props.accept || props.accept.split(',').some(raw => { const type = raw.trim().toLowerCase(); return type.startsWith('.') ? file.name.toLowerCase().endsWith(type) : type.endsWith('/*') ? file.type.toLowerCase().startsWith(type.slice(0, -1)) : file.type.toLowerCase() === type; });
121
+ const rejectSelection = (files) => {
122
+ const rejected = files.filter(file => !accept(file));
123
+ if (!rejected.length)
124
+ return false;
125
+ if (input.current)
126
+ input.current.value = '';
127
+ setFiles([]);
128
+ setRejection(getRejectedMessage(rejected));
129
+ onFilesChange?.([]);
130
+ return true;
131
+ };
132
+ return _jsx("div", { className: cx('hw-file-dropzone', className), "data-state": dragging ? 'dragging' : rejection || error ? 'error' : undefined, onDragOver: event => { if (event.dataTransfer.types.includes('Files')) {
133
+ event.preventDefault();
134
+ setDragging(!unavailable());
135
+ } }, onDragLeave: event => { if (!event.currentTarget.contains(event.relatedTarget))
136
+ setDragging(false); }, onDrop: event => { event.preventDefault(); setDragging(false); if (unavailable() || !input.current)
137
+ return; const incoming = Array.from(event.dataTransfer.files); if (rejectSelection(incoming))
138
+ return; const accepted = props.multiple ? incoming : incoming.slice(0, 1); const transfer = new DataTransfer(); accepted.forEach(file => transfer.items.add(file)); input.current.files = transfer.files; input.current.dispatchEvent(new Event('change', { bubbles: true })); }, children: _jsxs(Field, { label: label ?? dropLabel, hint: hint, error: rejection || error, required: props.required, controlId: props.id ?? id, children: [_jsx(TextField, { ...props, ref: node => { input.current = node; assignRef(ref, node); }, type: "file", onChange: event => { if (unavailable())
139
+ return; onChange?.(event); const next = Array.from(event.currentTarget.files ?? []); if (rejectSelection(next))
140
+ return; setFiles(next); setRejection(''); onFilesChange?.(next); } }), files.length > 0 && _jsx("ul", { children: files.map((file, index) => _jsx("li", { children: file.name }, `${file.name}-${index}`)) })] }) });
141
+ }
142
+ //# sourceMappingURL=expanded-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expanded-controls.js","sourceRoot":"","sources":["../src/expanded-controls.tsx"],"names":[],"mappings":"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"}