@geomak/ui 6.33.0 → 6.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4V4U2W7K.cjs +389 -0
- package/dist/chunk-4V4U2W7K.cjs.map +1 -0
- package/dist/chunk-KAFJJO5O.js +284 -0
- package/dist/chunk-KAFJJO5O.js.map +1 -0
- package/dist/icons/index.cjs +424 -0
- package/dist/icons/index.cjs.map +1 -0
- package/dist/icons/index.d.cts +274 -0
- package/dist/icons/index.d.ts +274 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.cjs +339 -609
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -157
- package/dist/index.d.ts +2 -157
- package/dist/index.js +54 -330
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk4V4U2W7K_cjs = require('./chunk-4V4U2W7K.cjs');
|
|
3
4
|
var chunkOAV4TA4B_cjs = require('./chunk-OAV4TA4B.cjs');
|
|
4
|
-
var
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var React28 = require('react');
|
|
6
6
|
var reactDom = require('react-dom');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
var AvatarPrimitive = require('@radix-ui/react-avatar');
|
|
8
9
|
var DropdownMenu = require('@radix-ui/react-dropdown-menu');
|
|
9
10
|
var Dialog = require('@radix-ui/react-dialog');
|
|
@@ -40,7 +41,7 @@ function _interopNamespace(e) {
|
|
|
40
41
|
return Object.freeze(n);
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
var
|
|
44
|
+
var React28__default = /*#__PURE__*/_interopDefault(React28);
|
|
44
45
|
var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
|
|
45
46
|
var DropdownMenu__namespace = /*#__PURE__*/_interopNamespace(DropdownMenu);
|
|
46
47
|
var Dialog__namespace = /*#__PURE__*/_interopNamespace(Dialog);
|
|
@@ -56,286 +57,9 @@ var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimit
|
|
|
56
57
|
var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
|
|
57
58
|
var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
|
|
58
59
|
|
|
59
|
-
function createIcon(displayName, content, options = {}) {
|
|
60
|
-
const { viewBox = "0 0 24 24", solid = false } = options;
|
|
61
|
-
const Component = React29.forwardRef(function Icon2({ size = 24, title, strokeWidth = 1.5, ...rest }, ref) {
|
|
62
|
-
const a11y = title ? { role: "img", "aria-label": title } : { "aria-hidden": true, focusable: false };
|
|
63
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
64
|
-
"svg",
|
|
65
|
-
{
|
|
66
|
-
ref,
|
|
67
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
68
|
-
width: size,
|
|
69
|
-
height: size,
|
|
70
|
-
viewBox,
|
|
71
|
-
fill: solid ? "currentColor" : "none",
|
|
72
|
-
stroke: solid ? void 0 : "currentColor",
|
|
73
|
-
strokeWidth: solid ? void 0 : strokeWidth,
|
|
74
|
-
strokeLinecap: solid ? void 0 : "round",
|
|
75
|
-
strokeLinejoin: solid ? void 0 : "round",
|
|
76
|
-
...a11y,
|
|
77
|
-
...rest,
|
|
78
|
-
children: [
|
|
79
|
-
title ? /* @__PURE__ */ jsxRuntime.jsx("title", { children: title }) : null,
|
|
80
|
-
content
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
});
|
|
85
|
-
Component.displayName = displayName;
|
|
86
|
-
return Component;
|
|
87
|
-
}
|
|
88
|
-
var ChevronUp = createIcon("ChevronUp", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m4.5 15.75 7.5-7.5 7.5 7.5" }));
|
|
89
|
-
var ChevronDown = createIcon("ChevronDown", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m19.5 8.25-7.5 7.5-7.5-7.5" }));
|
|
90
|
-
var ChevronLeft = createIcon("ChevronLeft", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 19.5 8.25 12l7.5-7.5" }));
|
|
91
|
-
var ChevronRight = createIcon("ChevronRight", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m8.25 4.5 7.5 7.5-7.5 7.5" }));
|
|
92
|
-
var ChevronsLeft = createIcon("ChevronsLeft", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.75 19.5 11.25 12l7.5-7.5m-6 15L5.25 12l7.5-7.5" }));
|
|
93
|
-
var ChevronsRight = createIcon("ChevronsRight", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5" }));
|
|
94
|
-
var CaretUp = createIcon("CaretUp", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 8l6 8H6z" }), { solid: true });
|
|
95
|
-
var CaretDown = createIcon("CaretDown", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 16 6 8h12z" }), { solid: true });
|
|
96
|
-
var CaretLeft = createIcon("CaretLeft", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 12l8-6v12z" }), { solid: true });
|
|
97
|
-
var CaretRight = createIcon("CaretRight", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 12 8 6v12z" }), { solid: true });
|
|
98
|
-
var ArrowUp = createIcon("ArrowUp", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18" }));
|
|
99
|
-
var ArrowDown = createIcon("ArrowDown", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3" }));
|
|
100
|
-
var ArrowLeft = createIcon("ArrowLeft", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" }));
|
|
101
|
-
var ArrowRight = createIcon("ArrowRight", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" }));
|
|
102
|
-
var Menu = createIcon("Menu", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" }));
|
|
103
|
-
var DotsHorizontal = createIcon("DotsHorizontal", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
104
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "12", r: "1.6" }),
|
|
105
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1.6" }),
|
|
106
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "19", cy: "12", r: "1.6" })
|
|
107
|
-
] }), { solid: true });
|
|
108
|
-
var DotsVertical = createIcon("DotsVertical", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
109
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "5", r: "1.6" }),
|
|
110
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1.6" }),
|
|
111
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "19", r: "1.6" })
|
|
112
|
-
] }), { solid: true });
|
|
113
|
-
var ExternalLink = createIcon("ExternalLink", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" }));
|
|
114
|
-
var X = createIcon("X", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 18 18 6M6 6l12 12" }));
|
|
115
|
-
var XCircle = createIcon("XCircle", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
|
|
116
|
-
var Plus = createIcon("Plus", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 4.5v15m7.5-7.5h-15" }));
|
|
117
|
-
var PlusCircle = createIcon("PlusCircle", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
|
|
118
|
-
var Minus = createIcon("Minus", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.5 12h-15" }));
|
|
119
|
-
var MinusCircle = createIcon("MinusCircle", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 12H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
|
|
120
|
-
var Check = createIcon("Check", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.5 12.75l6 6 9-13.5" }));
|
|
121
|
-
var CheckCircle = createIcon("CheckCircle", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
|
|
122
|
-
var Search = createIcon("Search", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" }));
|
|
123
|
-
var Edit = createIcon("Edit", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10" }));
|
|
124
|
-
var Trash = createIcon("Trash", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" }));
|
|
125
|
-
var Copy = createIcon("Copy", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184" }));
|
|
126
|
-
var Clipboard = createIcon("Clipboard", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25Z" }));
|
|
127
|
-
var Download = createIcon("Download", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" }));
|
|
128
|
-
var Upload = createIcon("Upload", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }));
|
|
129
|
-
var Save = createIcon("Save", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25h12A2.25 2.25 0 0 0 20.25 18V8.31a2.25 2.25 0 0 0-.659-1.591l-2.872-2.872A2.25 2.25 0 0 0 15.129 3.75H15m-7.5 0v3.375c0 .621.504 1.125 1.125 1.125h5.25c.621 0 1.125-.504 1.125-1.125V3.75m-7.5 0H15m-3 11.25a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" }));
|
|
130
|
-
var Filter = createIcon("Filter", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z" }));
|
|
131
|
-
var Sort = createIcon("Sort", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 7.5 7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5" }));
|
|
132
|
-
var Refresh = createIcon("Refresh", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" }));
|
|
133
|
-
var Share = createIcon("Share", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z" }));
|
|
134
|
-
var Print = createIcon("Print", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0 1 10.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0 .229 2.523a1.125 1.125 0 0 1-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0 0 21 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 0 0-1.913-.247M6.34 18H5.25A2.25 2.25 0 0 1 3 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 0 1 1.913-.247m10.5 0a48.536 48.536 0 0 0-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5Z" }));
|
|
135
|
-
var Settings = createIcon("Settings", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
136
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.397-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" }),
|
|
137
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" })
|
|
138
|
-
] }));
|
|
139
|
-
var Sliders = createIcon("Sliders", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75" }));
|
|
140
|
-
var Maximize = createIcon("Maximize", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15" }));
|
|
141
|
-
var Minimize = createIcon("Minimize", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25" }));
|
|
142
|
-
var Info = createIcon("Info", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" }));
|
|
143
|
-
var Warning = createIcon("Warning", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008Z" }));
|
|
144
|
-
var Error2 = createIcon("Error", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" }));
|
|
145
|
-
var Question = createIcon("Question", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z" }));
|
|
146
|
-
var Ban = createIcon("Ban", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636" }));
|
|
147
|
-
var Bell = createIcon("Bell", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0" }));
|
|
148
|
-
var Play = createIcon("Play", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 0 1 0 1.971l-11.54 6.347a1.125 1.125 0 0 1-1.667-.985V5.653Z" }));
|
|
149
|
-
var Pause = createIcon("Pause", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 5.25v13.5m-7.5-13.5v13.5" }));
|
|
150
|
-
var Stop = createIcon("Stop", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z" }));
|
|
151
|
-
var VolumeUp = createIcon("VolumeUp", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }));
|
|
152
|
-
var VolumeOff = createIcon("VolumeOff", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }));
|
|
153
|
-
var Image = createIcon("Image", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" }));
|
|
154
|
-
var Video = createIcon("Video", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z" }));
|
|
155
|
-
var Camera = createIcon("Camera", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
156
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.821 1.316Z" }),
|
|
157
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z" })
|
|
158
|
-
] }));
|
|
159
|
-
var Microphone = createIcon("Microphone", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z" }));
|
|
160
|
-
var Mail = createIcon("Mail", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" }));
|
|
161
|
-
var Chat = createIcon("Chat", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 0 1 .778-.332 48.294 48.294 0 0 0 5.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.019Z" }));
|
|
162
|
-
var Phone = createIcon("Phone", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z" }));
|
|
163
|
-
var Send = createIcon("Send", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5" }));
|
|
164
|
-
var User = createIcon("User", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" }));
|
|
165
|
-
var Users = createIcon("Users", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" }));
|
|
166
|
-
var Home = createIcon("Home", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" }));
|
|
167
|
-
var Globe = createIcon("Globe", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418" }));
|
|
168
|
-
var MapPin = createIcon("MapPin", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
169
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" }),
|
|
170
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z" })
|
|
171
|
-
] }));
|
|
172
|
-
var Calendar = createIcon("Calendar", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" }));
|
|
173
|
-
var Clock = createIcon("Clock", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }));
|
|
174
|
-
var Document = createIcon("Document", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" }));
|
|
175
|
-
var File = createIcon("File", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" }));
|
|
176
|
-
var Folder = createIcon("Folder", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z" }));
|
|
177
|
-
var Database = createIcon("Database", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125" }));
|
|
178
|
-
var Grid = createIcon("Grid", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25a2.25 2.25 0 0 1-2.25-2.25v-2.25Z" }));
|
|
179
|
-
var List = createIcon("List", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" }));
|
|
180
|
-
var Table = createIcon("Table", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5" }));
|
|
181
|
-
var ChartBar = createIcon("ChartBar", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z" }));
|
|
182
|
-
var PieChart = createIcon("PieChart", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
183
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.5 6a7.5 7.5 0 1 0 7.5 7.5h-7.5V6Z" }),
|
|
184
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.5 10.5H21A7.5 7.5 0 0 0 13.5 3v7.5Z" })
|
|
185
|
-
] }));
|
|
186
|
-
var TrendingUp = createIcon("TrendingUp", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.941" }));
|
|
187
|
-
var TrendingDown = createIcon("TrendingDown", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.25 6 9 12.75l4.286-4.286a11.948 11.948 0 0 1 4.306 6.43l.776 2.898m0 0 3.182-5.511m-3.182 5.51-5.511-3.181" }));
|
|
188
|
-
var Calculator = createIcon("Calculator", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z" }));
|
|
189
|
-
var Lock = createIcon("Lock", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" }));
|
|
190
|
-
var Unlock = createIcon("Unlock", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.5 10.5V6.75a4.5 4.5 0 1 1 9 0v3.75M3.75 21.75h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H3.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" }));
|
|
191
|
-
var Key = createIcon("Key", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z" }));
|
|
192
|
-
var Shield = createIcon("Shield", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z" }));
|
|
193
|
-
var ShieldCheck = createIcon("ShieldCheck", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" }));
|
|
194
|
-
var Star = createIcon("Star", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z" }));
|
|
195
|
-
var StarFilled = createIcon("StarFilled", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.005Z" }), { solid: true });
|
|
196
|
-
var Heart = createIcon("Heart", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z" }));
|
|
197
|
-
var Bookmark = createIcon("Bookmark", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17.593 3.322c1.1.128 1.907 1.077 1.907 2.185V21L12 17.25 4.5 21V5.507c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0 1 11.186 0Z" }));
|
|
198
|
-
var Tag = createIcon("Tag", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
199
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z" }),
|
|
200
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 6h.008v.008H6V6Z" })
|
|
201
|
-
] }));
|
|
202
|
-
var Link = createIcon("Link", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" }));
|
|
203
|
-
var Eye = createIcon("Eye", /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
204
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z" }),
|
|
205
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" })
|
|
206
|
-
] }));
|
|
207
|
-
var EyeSlash = createIcon("EyeSlash", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88" }));
|
|
208
|
-
var Bolt = createIcon("Bolt", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z" }));
|
|
209
|
-
var Sparkles = createIcon("Sparkles", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456Z" }));
|
|
210
|
-
var Sun = createIcon("Sun", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" }));
|
|
211
|
-
var Moon = createIcon("Moon", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" }));
|
|
212
|
-
var Spinner = createIcon("Spinner", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" }));
|
|
213
|
-
var Login = createIcon("Login", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9" }));
|
|
214
|
-
var Logout = createIcon("Logout", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75" }));
|
|
215
|
-
var Power = createIcon("Power", /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.636 5.636a9 9 0 1 0 12.728 0M12 3v9" }));
|
|
216
|
-
var Icon = {
|
|
217
|
-
ChevronUp,
|
|
218
|
-
ChevronDown,
|
|
219
|
-
ChevronLeft,
|
|
220
|
-
ChevronRight,
|
|
221
|
-
ChevronsLeft,
|
|
222
|
-
ChevronsRight,
|
|
223
|
-
CaretUp,
|
|
224
|
-
CaretDown,
|
|
225
|
-
CaretLeft,
|
|
226
|
-
CaretRight,
|
|
227
|
-
ArrowUp,
|
|
228
|
-
ArrowDown,
|
|
229
|
-
ArrowLeft,
|
|
230
|
-
ArrowRight,
|
|
231
|
-
Menu,
|
|
232
|
-
DotsHorizontal,
|
|
233
|
-
DotsVertical,
|
|
234
|
-
ExternalLink,
|
|
235
|
-
X,
|
|
236
|
-
XCircle,
|
|
237
|
-
Plus,
|
|
238
|
-
PlusCircle,
|
|
239
|
-
Minus,
|
|
240
|
-
MinusCircle,
|
|
241
|
-
Check,
|
|
242
|
-
CheckCircle,
|
|
243
|
-
Search,
|
|
244
|
-
Edit,
|
|
245
|
-
Trash,
|
|
246
|
-
Copy,
|
|
247
|
-
Clipboard,
|
|
248
|
-
Download,
|
|
249
|
-
Upload,
|
|
250
|
-
Save,
|
|
251
|
-
Filter,
|
|
252
|
-
Sort,
|
|
253
|
-
Refresh,
|
|
254
|
-
Share,
|
|
255
|
-
Print,
|
|
256
|
-
Settings,
|
|
257
|
-
Sliders,
|
|
258
|
-
Maximize,
|
|
259
|
-
Minimize,
|
|
260
|
-
Info,
|
|
261
|
-
Warning,
|
|
262
|
-
Error: Error2,
|
|
263
|
-
Question,
|
|
264
|
-
Ban,
|
|
265
|
-
Bell,
|
|
266
|
-
Play,
|
|
267
|
-
Pause,
|
|
268
|
-
Stop,
|
|
269
|
-
VolumeUp,
|
|
270
|
-
VolumeOff,
|
|
271
|
-
Image,
|
|
272
|
-
Video,
|
|
273
|
-
Camera,
|
|
274
|
-
Microphone,
|
|
275
|
-
Mail,
|
|
276
|
-
Chat,
|
|
277
|
-
Phone,
|
|
278
|
-
Send,
|
|
279
|
-
User,
|
|
280
|
-
Users,
|
|
281
|
-
Home,
|
|
282
|
-
Globe,
|
|
283
|
-
MapPin,
|
|
284
|
-
Calendar,
|
|
285
|
-
Clock,
|
|
286
|
-
Document,
|
|
287
|
-
File,
|
|
288
|
-
Folder,
|
|
289
|
-
Database,
|
|
290
|
-
Grid,
|
|
291
|
-
List,
|
|
292
|
-
Table,
|
|
293
|
-
ChartBar,
|
|
294
|
-
PieChart,
|
|
295
|
-
TrendingUp,
|
|
296
|
-
TrendingDown,
|
|
297
|
-
Calculator,
|
|
298
|
-
Lock,
|
|
299
|
-
Unlock,
|
|
300
|
-
Key,
|
|
301
|
-
Shield,
|
|
302
|
-
ShieldCheck,
|
|
303
|
-
Star,
|
|
304
|
-
StarFilled,
|
|
305
|
-
Heart,
|
|
306
|
-
Bookmark,
|
|
307
|
-
Tag,
|
|
308
|
-
Link,
|
|
309
|
-
Eye,
|
|
310
|
-
EyeSlash,
|
|
311
|
-
Bolt,
|
|
312
|
-
Sparkles,
|
|
313
|
-
Sun,
|
|
314
|
-
Moon,
|
|
315
|
-
Spinner,
|
|
316
|
-
Login,
|
|
317
|
-
Logout,
|
|
318
|
-
Power,
|
|
319
|
-
// ── Back-compat aliases (legacy names) ──
|
|
320
|
-
XClose: X,
|
|
321
|
-
Checked: Check,
|
|
322
|
-
Cog: Settings,
|
|
323
|
-
Tweak: Sliders,
|
|
324
|
-
Expand: Maximize,
|
|
325
|
-
Collapse: Minimize,
|
|
326
|
-
ShowMore: DotsVertical,
|
|
327
|
-
Delete: Trash,
|
|
328
|
-
Bookmarks: Bookmark,
|
|
329
|
-
CircleStack: Database,
|
|
330
|
-
Data: Database,
|
|
331
|
-
DoubleChevronRight: ChevronsRight,
|
|
332
|
-
Loading: Spinner,
|
|
333
|
-
PowerOff: Power
|
|
334
|
-
};
|
|
335
|
-
var icons_default = Icon;
|
|
336
60
|
function Portal({ children, target }) {
|
|
337
|
-
const [resolved, setResolved] =
|
|
338
|
-
|
|
61
|
+
const [resolved, setResolved] = React28.useState(null);
|
|
62
|
+
React28.useEffect(() => {
|
|
339
63
|
if (target === null) {
|
|
340
64
|
setResolved(null);
|
|
341
65
|
return;
|
|
@@ -552,7 +276,7 @@ var JUSTIFY_CLASS2 = {
|
|
|
552
276
|
end: "justify-items-end",
|
|
553
277
|
stretch: "justify-items-stretch"
|
|
554
278
|
};
|
|
555
|
-
function
|
|
279
|
+
function Grid({
|
|
556
280
|
cols,
|
|
557
281
|
rows,
|
|
558
282
|
gap,
|
|
@@ -769,7 +493,7 @@ function IconButton({
|
|
|
769
493
|
className = "",
|
|
770
494
|
style
|
|
771
495
|
}) {
|
|
772
|
-
const colorScheme =
|
|
496
|
+
const colorScheme = React28.useMemo(() => {
|
|
773
497
|
if (type === "primary") {
|
|
774
498
|
return "bg-accent text-accent-fg hover:bg-accent-hover";
|
|
775
499
|
}
|
|
@@ -859,7 +583,7 @@ var SIZE_CLASSES = {
|
|
|
859
583
|
md: "h-9 px-4 text-sm gap-1.5 rounded-lg",
|
|
860
584
|
lg: "h-11 px-5 text-sm gap-2 rounded-xl"
|
|
861
585
|
};
|
|
862
|
-
var Button =
|
|
586
|
+
var Button = React28__default.default.forwardRef(function Button2({
|
|
863
587
|
content,
|
|
864
588
|
variant = "primary",
|
|
865
589
|
size = "md",
|
|
@@ -967,7 +691,7 @@ function MenuButton({
|
|
|
967
691
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
968
692
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
|
|
969
693
|
].join(" "),
|
|
970
|
-
children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
694
|
+
children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(React28__default.default.Fragment, { children: [
|
|
971
695
|
item.separatorBefore && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Separator, { className: "my-1 h-px bg-border" }),
|
|
972
696
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
973
697
|
DropdownMenu__namespace.Item,
|
|
@@ -1210,9 +934,9 @@ function Tooltip({
|
|
|
1210
934
|
] }) });
|
|
1211
935
|
}
|
|
1212
936
|
var TooltipProvider = TooltipPrimitive__namespace.Provider;
|
|
1213
|
-
var TabsContext =
|
|
937
|
+
var TabsContext = React28.createContext(null);
|
|
1214
938
|
function useTabsContext() {
|
|
1215
|
-
const ctx =
|
|
939
|
+
const ctx = React28.useContext(TabsContext);
|
|
1216
940
|
if (!ctx) throw new Error("Tabs.List / Tabs.Trigger / Tabs.Panel must be rendered inside <Tabs>.");
|
|
1217
941
|
return ctx;
|
|
1218
942
|
}
|
|
@@ -1234,26 +958,26 @@ function Tabs({
|
|
|
1234
958
|
children
|
|
1235
959
|
}) {
|
|
1236
960
|
const isControlled = value !== void 0;
|
|
1237
|
-
const [internal, setInternal] =
|
|
961
|
+
const [internal, setInternal] = React28.useState(defaultValue);
|
|
1238
962
|
const current = isControlled ? value : internal;
|
|
1239
963
|
const reduced = !!framerMotion.useReducedMotion();
|
|
1240
|
-
const indicatorId =
|
|
1241
|
-
const select =
|
|
964
|
+
const indicatorId = React28.useId();
|
|
965
|
+
const select = React28.useCallback((next) => {
|
|
1242
966
|
if (!isControlled) setInternal(next);
|
|
1243
967
|
onValueChange?.(next);
|
|
1244
968
|
}, [isControlled, onValueChange]);
|
|
1245
|
-
const registry =
|
|
1246
|
-
const orderRef =
|
|
1247
|
-
const [, bump] =
|
|
1248
|
-
const registerTab =
|
|
969
|
+
const registry = React28.useRef(/* @__PURE__ */ new Map());
|
|
970
|
+
const orderRef = React28.useRef(0);
|
|
971
|
+
const [, bump] = React28.useState(0);
|
|
972
|
+
const registerTab = React28.useCallback((val, meta) => {
|
|
1249
973
|
const existing = registry.current.get(val);
|
|
1250
974
|
registry.current.set(val, { ...meta, order: existing?.order ?? orderRef.current++ });
|
|
1251
975
|
if (!existing) bump((v) => v + 1);
|
|
1252
976
|
}, []);
|
|
1253
|
-
const unregisterTab =
|
|
977
|
+
const unregisterTab = React28.useCallback((val) => {
|
|
1254
978
|
if (registry.current.delete(val)) bump((v) => v + 1);
|
|
1255
979
|
}, []);
|
|
1256
|
-
const getTabs =
|
|
980
|
+
const getTabs = React28.useCallback(() => [...registry.current.entries()].sort((a, b) => a[1].order - b[1].order).map(([val, m]) => ({ value: val, label: m.label, icon: m.icon, disabled: m.disabled })), []);
|
|
1257
981
|
return /* @__PURE__ */ jsxRuntime.jsx(TabsContext.Provider, { value: { value: current, variant, size, orientation, indicatorId, reduced, select, registerTab, unregisterTab, getTabs }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1258
982
|
TabsPrimitive__namespace.Root,
|
|
1259
983
|
{
|
|
@@ -1273,10 +997,10 @@ function Tabs({
|
|
|
1273
997
|
function TabsList({ children, "aria-label": ariaLabel, className = "" }) {
|
|
1274
998
|
const { variant, orientation, reduced, value } = useTabsContext();
|
|
1275
999
|
const horizontal = orientation === "horizontal";
|
|
1276
|
-
const scrollRef =
|
|
1277
|
-
const [edges, setEdges] =
|
|
1000
|
+
const scrollRef = React28.useRef(null);
|
|
1001
|
+
const [edges, setEdges] = React28.useState({ start: false, end: false });
|
|
1278
1002
|
const scrollable = variant !== "segmented";
|
|
1279
|
-
|
|
1003
|
+
React28.useLayoutEffect(() => {
|
|
1280
1004
|
const el = scrollRef.current;
|
|
1281
1005
|
if (!el || !scrollable) return;
|
|
1282
1006
|
const update = () => {
|
|
@@ -1301,13 +1025,13 @@ function TabsList({ children, "aria-label": ariaLabel, className = "" }) {
|
|
|
1301
1025
|
ro.disconnect();
|
|
1302
1026
|
};
|
|
1303
1027
|
}, [horizontal, scrollable, children]);
|
|
1304
|
-
const nudge =
|
|
1028
|
+
const nudge = React28.useCallback((dir) => {
|
|
1305
1029
|
const el = scrollRef.current;
|
|
1306
1030
|
if (!el) return;
|
|
1307
1031
|
const amount = (horizontal ? el.clientWidth : el.clientHeight) * 0.7 * dir;
|
|
1308
1032
|
el.scrollBy({ [horizontal ? "left" : "top"]: amount, behavior: reduced ? "auto" : "smooth" });
|
|
1309
1033
|
}, [horizontal, reduced]);
|
|
1310
|
-
|
|
1034
|
+
React28.useLayoutEffect(() => {
|
|
1311
1035
|
const el = scrollRef.current;
|
|
1312
1036
|
if (!el || !scrollable) return;
|
|
1313
1037
|
const active = el.querySelector("[role=tab][data-state=active]");
|
|
@@ -1365,9 +1089,9 @@ function Chevron2({ side, orientation, onClick }) {
|
|
|
1365
1089
|
function OverflowMenu() {
|
|
1366
1090
|
const { getTabs, value, select, orientation } = useTabsContext();
|
|
1367
1091
|
const horizontal = orientation === "horizontal";
|
|
1368
|
-
const [open, setOpen] =
|
|
1369
|
-
const wrapRef =
|
|
1370
|
-
const timer =
|
|
1092
|
+
const [open, setOpen] = React28.useState(false);
|
|
1093
|
+
const wrapRef = React28.useRef(null);
|
|
1094
|
+
const timer = React28.useRef(null);
|
|
1371
1095
|
const openNow = () => {
|
|
1372
1096
|
if (timer.current) clearTimeout(timer.current);
|
|
1373
1097
|
setOpen(true);
|
|
@@ -1375,7 +1099,7 @@ function OverflowMenu() {
|
|
|
1375
1099
|
const closeSoon = () => {
|
|
1376
1100
|
timer.current = setTimeout(() => setOpen(false), 160);
|
|
1377
1101
|
};
|
|
1378
|
-
|
|
1102
|
+
React28.useLayoutEffect(() => {
|
|
1379
1103
|
if (!open) return;
|
|
1380
1104
|
const onDoc = (e) => {
|
|
1381
1105
|
if (wrapRef.current && !wrapRef.current.contains(e.target)) setOpen(false);
|
|
@@ -1456,7 +1180,7 @@ function TabsTrigger({ value, icon, badge, closeable, onClose, disabled, classNa
|
|
|
1456
1180
|
const isActive = active === value;
|
|
1457
1181
|
const horizontal = orientation === "horizontal";
|
|
1458
1182
|
const sz = SIZE[size];
|
|
1459
|
-
|
|
1183
|
+
React28.useLayoutEffect(() => {
|
|
1460
1184
|
registerTab(value, { label: children, icon, disabled });
|
|
1461
1185
|
return () => unregisterTab(value);
|
|
1462
1186
|
}, [value, children, icon, disabled, registerTab, unregisterTab]);
|
|
@@ -1654,7 +1378,7 @@ function Tree({
|
|
|
1654
1378
|
item.key
|
|
1655
1379
|
)) });
|
|
1656
1380
|
}
|
|
1657
|
-
var AccordionCtx =
|
|
1381
|
+
var AccordionCtx = React28.createContext({ variant: "separated" });
|
|
1658
1382
|
function Accordion2({
|
|
1659
1383
|
children,
|
|
1660
1384
|
type = "single",
|
|
@@ -1713,7 +1437,7 @@ var Chevron3 = /* @__PURE__ */ jsxRuntime.jsx(
|
|
|
1713
1437
|
}
|
|
1714
1438
|
);
|
|
1715
1439
|
function AccordionItem({ value, title, icon, children, disabled, className = "" }) {
|
|
1716
|
-
const { variant } =
|
|
1440
|
+
const { variant } = React28.useContext(AccordionCtx);
|
|
1717
1441
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1718
1442
|
AccordionPrimitive__namespace.Item,
|
|
1719
1443
|
{
|
|
@@ -1772,7 +1496,7 @@ function Breadcrumbs({
|
|
|
1772
1496
|
className = "",
|
|
1773
1497
|
style
|
|
1774
1498
|
}) {
|
|
1775
|
-
const [expanded, setExpanded] =
|
|
1499
|
+
const [expanded, setExpanded] = React28.useState(false);
|
|
1776
1500
|
const shouldCollapse = maxItems > 0 && items.length > maxItems && !expanded;
|
|
1777
1501
|
const visible = [];
|
|
1778
1502
|
if (shouldCollapse) {
|
|
@@ -1906,9 +1630,9 @@ var SIZES = {
|
|
|
1906
1630
|
sm: { box: "h-7 w-7 text-xs", center: 14, title: "text-xs", desc: "text-[11px]" },
|
|
1907
1631
|
md: { box: "h-9 w-9 text-sm", center: 18, title: "text-sm", desc: "text-xs" }
|
|
1908
1632
|
};
|
|
1909
|
-
var
|
|
1633
|
+
var Check = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-1/2 w-1/2 animate-check-pop", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
|
|
1910
1634
|
var Cross = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-1/2 w-1/2", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 6 6 18M6 6l12 12" }) });
|
|
1911
|
-
var
|
|
1635
|
+
var Spinner = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-1/2 w-1/2 animate-spin", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
|
|
1912
1636
|
function Indicator({ state, index, step, sizeKey }) {
|
|
1913
1637
|
const reduced = framerMotion.useReducedMotion();
|
|
1914
1638
|
const s = SIZES[sizeKey];
|
|
@@ -1920,7 +1644,7 @@ function Indicator({ state, index, step, sizeKey }) {
|
|
|
1920
1644
|
error: "bg-status-error text-white",
|
|
1921
1645
|
pending: "border border-border bg-surface text-foreground-muted"
|
|
1922
1646
|
};
|
|
1923
|
-
const content = step.icon ?? (state === "completed" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1647
|
+
const content = step.icon ?? (state === "completed" ? /* @__PURE__ */ jsxRuntime.jsx(Check, {}) : state === "error" ? /* @__PURE__ */ jsxRuntime.jsx(Cross, {}) : state === "loading" ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, {}) : index + 1);
|
|
1924
1648
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1925
1649
|
framerMotion.motion.span,
|
|
1926
1650
|
{
|
|
@@ -1956,8 +1680,8 @@ function Stepper({
|
|
|
1956
1680
|
className = ""
|
|
1957
1681
|
}) {
|
|
1958
1682
|
const reduced = framerMotion.useReducedMotion();
|
|
1959
|
-
const [forcedVertical, setForcedVertical] =
|
|
1960
|
-
|
|
1683
|
+
const [forcedVertical, setForcedVertical] = React28.useState(false);
|
|
1684
|
+
React28.useEffect(() => {
|
|
1961
1685
|
if (!responsive || orientation === "vertical") return;
|
|
1962
1686
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
|
|
1963
1687
|
const mq = window.matchMedia("(max-width: 767px)");
|
|
@@ -2009,7 +1733,7 @@ function Stepper({
|
|
|
2009
1733
|
] }, step.key);
|
|
2010
1734
|
}) });
|
|
2011
1735
|
}
|
|
2012
|
-
var
|
|
1736
|
+
var Check2 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-3 w-3", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6L9 17l-5-5" }) });
|
|
2013
1737
|
var Cross2 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, "aria-hidden": "true", className: "h-3 w-3", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M18 6 6 18M6 6l12 12" }) });
|
|
2014
1738
|
var NODE = {
|
|
2015
1739
|
complete: "bg-accent text-accent-fg border-accent",
|
|
@@ -2038,7 +1762,7 @@ function Timeline({ events, current, className = "" }) {
|
|
|
2038
1762
|
].join(" "),
|
|
2039
1763
|
children: [
|
|
2040
1764
|
status === "current" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inset-0 animate-breathe rounded-full ring-2 ring-accent/40", "aria-hidden": "true" }),
|
|
2041
|
-
event.icon ?? (status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1765
|
+
event.icon ?? (status === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(Check2, {}) : status === "error" ? /* @__PURE__ */ jsxRuntime.jsx(Cross2, {}) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: `h-2 w-2 rounded-full ${status === "current" ? "bg-accent" : "bg-border"}` }))
|
|
2042
1766
|
]
|
|
2043
1767
|
}
|
|
2044
1768
|
),
|
|
@@ -2066,7 +1790,7 @@ function Kbd({
|
|
|
2066
1790
|
style
|
|
2067
1791
|
}) {
|
|
2068
1792
|
if (keys && keys.length > 0) {
|
|
2069
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1793
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: ["inline-flex items-center gap-1", className].filter(Boolean).join(" "), style, children: keys.map((k, i) => /* @__PURE__ */ jsxRuntime.jsxs(React28__default.default.Fragment, { children: [
|
|
2070
1794
|
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground-muted text-xs select-none", children: separator }),
|
|
2071
1795
|
/* @__PURE__ */ jsxRuntime.jsx("kbd", { className: [cap, SIZE3[size]].join(" "), children: k })
|
|
2072
1796
|
] }, `${k}-${i}`)) });
|
|
@@ -2157,13 +1881,13 @@ function FlatCarousel({
|
|
|
2157
1881
|
className = "",
|
|
2158
1882
|
style
|
|
2159
1883
|
}) {
|
|
2160
|
-
const scrollerRef =
|
|
2161
|
-
const slides =
|
|
2162
|
-
const [active, setActive] =
|
|
2163
|
-
const [atStart, setAtStart] =
|
|
2164
|
-
const [atEnd, setAtEnd] =
|
|
1884
|
+
const scrollerRef = React28.useRef(null);
|
|
1885
|
+
const slides = React28__default.default.Children.toArray(children);
|
|
1886
|
+
const [active, setActive] = React28.useState(0);
|
|
1887
|
+
const [atStart, setAtStart] = React28.useState(true);
|
|
1888
|
+
const [atEnd, setAtEnd] = React28.useState(false);
|
|
2165
1889
|
const width = typeof itemWidth === "number" ? `${itemWidth}px` : itemWidth;
|
|
2166
|
-
const update =
|
|
1890
|
+
const update = React28.useCallback(() => {
|
|
2167
1891
|
const el = scrollerRef.current;
|
|
2168
1892
|
if (!el) return;
|
|
2169
1893
|
setAtStart(el.scrollLeft <= 1);
|
|
@@ -2172,7 +1896,7 @@ function FlatCarousel({
|
|
|
2172
1896
|
const slideW = first ? first.getBoundingClientRect().width + gap : el.clientWidth;
|
|
2173
1897
|
setActive(Math.round(el.scrollLeft / slideW));
|
|
2174
1898
|
}, [gap]);
|
|
2175
|
-
|
|
1899
|
+
React28.useEffect(() => {
|
|
2176
1900
|
update();
|
|
2177
1901
|
const el = scrollerRef.current;
|
|
2178
1902
|
if (!el) return;
|
|
@@ -2213,9 +1937,9 @@ function RotatingCarousel({
|
|
|
2213
1937
|
className = "",
|
|
2214
1938
|
style
|
|
2215
1939
|
}) {
|
|
2216
|
-
const slides =
|
|
1940
|
+
const slides = React28__default.default.Children.toArray(children);
|
|
2217
1941
|
const count = slides.length;
|
|
2218
|
-
const [active, setActive] =
|
|
1942
|
+
const [active, setActive] = React28.useState(0);
|
|
2219
1943
|
const reduced = framerMotion.useReducedMotion();
|
|
2220
1944
|
const wrap = (n) => count > 0 ? (n % count + count) % count : 0;
|
|
2221
1945
|
const idx = wrap(active);
|
|
@@ -2418,7 +2142,7 @@ var toDate = (d) => d instanceof Date ? d : new Date(d);
|
|
|
2418
2142
|
var timeLabel = (d) => `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
|
|
2419
2143
|
var initials = (name) => (name ?? "").trim().split(/\s+/).slice(0, 2).map((w) => w[0]?.toUpperCase() ?? "").join("") || void 0;
|
|
2420
2144
|
var SendIcon = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M22 2 11 13M22 2l-7 20-4-9-9-4 20-7z" }) });
|
|
2421
|
-
var
|
|
2145
|
+
var ArrowDown = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
|
|
2422
2146
|
function TypingDots() {
|
|
2423
2147
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-1", "aria-hidden": "true", children: [0, 1, 2].map((i) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full bg-foreground-muted", style: { animationDelay: `${i * 0.15}s` } }, i)) });
|
|
2424
2148
|
}
|
|
@@ -2435,7 +2159,7 @@ function ChatSkeleton() {
|
|
|
2435
2159
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-8 animate-pulse rounded-2xl bg-surface", style: { width: r.w } })
|
|
2436
2160
|
] }, i)) });
|
|
2437
2161
|
}
|
|
2438
|
-
function
|
|
2162
|
+
function Chat({
|
|
2439
2163
|
messages,
|
|
2440
2164
|
currentUserId,
|
|
2441
2165
|
onSend,
|
|
@@ -2453,13 +2177,13 @@ function Chat2({
|
|
|
2453
2177
|
className = "",
|
|
2454
2178
|
style
|
|
2455
2179
|
}) {
|
|
2456
|
-
const listRef =
|
|
2457
|
-
const atBottomRef =
|
|
2458
|
-
const [showJump, setShowJump] =
|
|
2459
|
-
const [draft, setDraft] =
|
|
2180
|
+
const listRef = React28.useRef(null);
|
|
2181
|
+
const atBottomRef = React28.useRef(true);
|
|
2182
|
+
const [showJump, setShowJump] = React28.useState(false);
|
|
2183
|
+
const [draft, setDraft] = React28.useState("");
|
|
2460
2184
|
const hasHeader = title != null || subtitle != null || avatar != null || headerActions != null;
|
|
2461
2185
|
const isTyping = typingNames.length > 0;
|
|
2462
|
-
const scrollToBottom =
|
|
2186
|
+
const scrollToBottom = React28.useCallback((smooth = true) => {
|
|
2463
2187
|
const el = listRef.current;
|
|
2464
2188
|
if (!el) return;
|
|
2465
2189
|
if (typeof el.scrollTo === "function") el.scrollTo({ top: el.scrollHeight, behavior: smooth ? "smooth" : "auto" });
|
|
@@ -2472,10 +2196,10 @@ function Chat2({
|
|
|
2472
2196
|
atBottomRef.current = near;
|
|
2473
2197
|
setShowJump(!near);
|
|
2474
2198
|
};
|
|
2475
|
-
|
|
2199
|
+
React28.useEffect(() => {
|
|
2476
2200
|
if (atBottomRef.current) scrollToBottom(messages.length > 0);
|
|
2477
2201
|
}, [messages.length, isTyping]);
|
|
2478
|
-
|
|
2202
|
+
React28.useEffect(() => {
|
|
2479
2203
|
scrollToBottom(false);
|
|
2480
2204
|
}, [scrollToBottom]);
|
|
2481
2205
|
const send = () => {
|
|
@@ -2553,7 +2277,7 @@ function Chat2({
|
|
|
2553
2277
|
onClick: () => scrollToBottom(true),
|
|
2554
2278
|
"aria-label": "Jump to latest",
|
|
2555
2279
|
className: "absolute bottom-3 left-1/2 flex h-8 w-8 -translate-x-1/2 items-center justify-center rounded-full border border-border bg-surface text-foreground-secondary shadow-md transition-colors hover:bg-surface-raised hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-accent",
|
|
2556
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2280
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ArrowDown, {})
|
|
2557
2281
|
}
|
|
2558
2282
|
)
|
|
2559
2283
|
] }),
|
|
@@ -2596,8 +2320,8 @@ var TONE2 = {
|
|
|
2596
2320
|
bad: "text-status-error",
|
|
2597
2321
|
neutral: "text-foreground-muted"
|
|
2598
2322
|
};
|
|
2599
|
-
var
|
|
2600
|
-
var
|
|
2323
|
+
var ArrowUp = /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 19V5M5 12l7-7 7 7" }) });
|
|
2324
|
+
var ArrowDown2 = /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, "aria-hidden": "true", className: "h-3.5 w-3.5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12l7 7 7-7" }) });
|
|
2601
2325
|
function Statistic({
|
|
2602
2326
|
label,
|
|
2603
2327
|
value,
|
|
@@ -2629,7 +2353,7 @@ function Statistic({
|
|
|
2629
2353
|
suffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground-muted text-[0.5em] font-medium self-center", children: suffix })
|
|
2630
2354
|
] }),
|
|
2631
2355
|
delta && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `mt-1.5 flex items-center gap-1 text-sm font-medium ${align === "center" ? "justify-center" : ""} ${TONE2[deltaTone]}`, children: [
|
|
2632
|
-
dir === "up" ?
|
|
2356
|
+
dir === "up" ? ArrowUp : dir === "down" ? ArrowDown2 : null,
|
|
2633
2357
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: delta.value }),
|
|
2634
2358
|
delta.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground-muted font-normal", children: delta.label })
|
|
2635
2359
|
] }),
|
|
@@ -2665,7 +2389,7 @@ function FAB({
|
|
|
2665
2389
|
className = "",
|
|
2666
2390
|
style
|
|
2667
2391
|
}) {
|
|
2668
|
-
const [open, setOpen] =
|
|
2392
|
+
const [open, setOpen] = React28.useState(false);
|
|
2669
2393
|
const reduced = framerMotion.useReducedMotion();
|
|
2670
2394
|
const hasDial = !!actions && actions.length > 0;
|
|
2671
2395
|
const bottom = position.startsWith("bottom");
|
|
@@ -2767,8 +2491,8 @@ function PopConfirm({
|
|
|
2767
2491
|
onOpenChange,
|
|
2768
2492
|
className = ""
|
|
2769
2493
|
}) {
|
|
2770
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
2771
|
-
const [loading, setLoading] =
|
|
2494
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React28.useState(false);
|
|
2495
|
+
const [loading, setLoading] = React28.useState(false);
|
|
2772
2496
|
const isOpen = open ?? uncontrolledOpen;
|
|
2773
2497
|
const setOpen = (next) => {
|
|
2774
2498
|
onOpenChange?.(next);
|
|
@@ -2855,16 +2579,16 @@ function LogoutTimer({
|
|
|
2855
2579
|
logoutLabel = "Sign out now"
|
|
2856
2580
|
}) {
|
|
2857
2581
|
const reduced = framerMotion.useReducedMotion();
|
|
2858
|
-
const [warning, setWarning] =
|
|
2859
|
-
const [remaining, setRemaining] =
|
|
2860
|
-
const idleTimer =
|
|
2861
|
-
const tick =
|
|
2862
|
-
const deadline =
|
|
2863
|
-
const warningRef =
|
|
2864
|
-
const lastReset =
|
|
2865
|
-
const cbs =
|
|
2582
|
+
const [warning, setWarning] = React28.useState(false);
|
|
2583
|
+
const [remaining, setRemaining] = React28.useState(countdown);
|
|
2584
|
+
const idleTimer = React28.useRef(null);
|
|
2585
|
+
const tick = React28.useRef(null);
|
|
2586
|
+
const deadline = React28.useRef(0);
|
|
2587
|
+
const warningRef = React28.useRef(false);
|
|
2588
|
+
const lastReset = React28.useRef(0);
|
|
2589
|
+
const cbs = React28.useRef({ onLogout, onContinue, onWarning });
|
|
2866
2590
|
cbs.current = { onLogout, onContinue, onWarning };
|
|
2867
|
-
const clearTimers =
|
|
2591
|
+
const clearTimers = React28.useCallback(() => {
|
|
2868
2592
|
if (idleTimer.current) {
|
|
2869
2593
|
clearTimeout(idleTimer.current);
|
|
2870
2594
|
idleTimer.current = null;
|
|
@@ -2874,13 +2598,13 @@ function LogoutTimer({
|
|
|
2874
2598
|
tick.current = null;
|
|
2875
2599
|
}
|
|
2876
2600
|
}, []);
|
|
2877
|
-
const logout =
|
|
2601
|
+
const logout = React28.useCallback(() => {
|
|
2878
2602
|
clearTimers();
|
|
2879
2603
|
warningRef.current = false;
|
|
2880
2604
|
setWarning(false);
|
|
2881
2605
|
cbs.current.onLogout();
|
|
2882
2606
|
}, [clearTimers]);
|
|
2883
|
-
const startIdle =
|
|
2607
|
+
const startIdle = React28.useCallback(() => {
|
|
2884
2608
|
if (idleTimer.current) clearTimeout(idleTimer.current);
|
|
2885
2609
|
idleTimer.current = setTimeout(() => {
|
|
2886
2610
|
warningRef.current = true;
|
|
@@ -2895,7 +2619,7 @@ function LogoutTimer({
|
|
|
2895
2619
|
}, 250);
|
|
2896
2620
|
}, timeout);
|
|
2897
2621
|
}, [timeout, countdown, logout]);
|
|
2898
|
-
const stay =
|
|
2622
|
+
const stay = React28.useCallback(() => {
|
|
2899
2623
|
if (tick.current) {
|
|
2900
2624
|
clearInterval(tick.current);
|
|
2901
2625
|
tick.current = null;
|
|
@@ -2905,7 +2629,7 @@ function LogoutTimer({
|
|
|
2905
2629
|
cbs.current.onContinue?.();
|
|
2906
2630
|
startIdle();
|
|
2907
2631
|
}, [startIdle]);
|
|
2908
|
-
|
|
2632
|
+
React28.useEffect(() => {
|
|
2909
2633
|
if (!enabled) {
|
|
2910
2634
|
clearTimers();
|
|
2911
2635
|
warningRef.current = false;
|
|
@@ -2970,11 +2694,11 @@ function SegmentedControl({
|
|
|
2970
2694
|
"aria-label": ariaLabel
|
|
2971
2695
|
}) {
|
|
2972
2696
|
const sz = SIZE5[size];
|
|
2973
|
-
const groupId =
|
|
2974
|
-
const errorId =
|
|
2697
|
+
const groupId = React28.useId();
|
|
2698
|
+
const errorId = React28.useId();
|
|
2975
2699
|
const hasError = errorMessage != null;
|
|
2976
2700
|
const isControlled = value !== void 0;
|
|
2977
|
-
const [internal, setInternal] =
|
|
2701
|
+
const [internal, setInternal] = React28.useState(defaultValue);
|
|
2978
2702
|
const current = isControlled ? value : internal;
|
|
2979
2703
|
const handle = (v) => {
|
|
2980
2704
|
if (!v) return;
|
|
@@ -3115,8 +2839,8 @@ var normalize = (e) => {
|
|
|
3115
2839
|
const end = e.end ? toDate2(e.end) : new Date(start.getTime() + 36e5);
|
|
3116
2840
|
return { ...e, start, end };
|
|
3117
2841
|
};
|
|
3118
|
-
var
|
|
3119
|
-
var
|
|
2842
|
+
var Spinner2 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-5 w-5 animate-spin text-accent", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
|
|
2843
|
+
var Plus = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 5v14M5 12h14" }) });
|
|
3120
2844
|
var Chevron4 = ({ dir }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true", className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: dir === "left" ? "M15 19l-7-7 7-7" : "M9 5l7 7-7 7" }) });
|
|
3121
2845
|
function Scheduler({
|
|
3122
2846
|
events: controlledEvents,
|
|
@@ -3134,22 +2858,22 @@ function Scheduler({
|
|
|
3134
2858
|
style
|
|
3135
2859
|
}) {
|
|
3136
2860
|
const reduced = framerMotion.useReducedMotion();
|
|
3137
|
-
const [view, setView] =
|
|
3138
|
-
const [cursor, setCursor] =
|
|
3139
|
-
const [loaded, setLoaded] =
|
|
3140
|
-
const [loading, setLoading] =
|
|
3141
|
-
const [error, setError] =
|
|
3142
|
-
const [reloadKey, setReloadKey] =
|
|
3143
|
-
const [dir, setDir] =
|
|
3144
|
-
const cbRef =
|
|
2861
|
+
const [view, setView] = React28.useState(defaultView);
|
|
2862
|
+
const [cursor, setCursor] = React28.useState(() => defaultDate ?? /* @__PURE__ */ new Date());
|
|
2863
|
+
const [loaded, setLoaded] = React28.useState([]);
|
|
2864
|
+
const [loading, setLoading] = React28.useState(false);
|
|
2865
|
+
const [error, setError] = React28.useState(null);
|
|
2866
|
+
const [reloadKey, setReloadKey] = React28.useState(0);
|
|
2867
|
+
const [dir, setDir] = React28.useState(0);
|
|
2868
|
+
const cbRef = React28.useRef({ loadEvents, onError });
|
|
3145
2869
|
cbRef.current = { loadEvents, onError };
|
|
3146
|
-
const range =
|
|
2870
|
+
const range = React28.useMemo(
|
|
3147
2871
|
() => view === "month" ? monthRange(cursor) : weekRange(cursor, weekStartsOn),
|
|
3148
2872
|
[view, cursor, weekStartsOn]
|
|
3149
2873
|
);
|
|
3150
2874
|
const fromKey = range.from.getTime();
|
|
3151
2875
|
const toKey = range.to.getTime();
|
|
3152
|
-
|
|
2876
|
+
React28.useEffect(() => {
|
|
3153
2877
|
const { loadEvents: loader, onError: onErr } = cbRef.current;
|
|
3154
2878
|
if (!loader) return;
|
|
3155
2879
|
let cancelled = false;
|
|
@@ -3169,16 +2893,16 @@ function Scheduler({
|
|
|
3169
2893
|
cancelled = true;
|
|
3170
2894
|
};
|
|
3171
2895
|
}, [fromKey, toKey, view, reloadKey]);
|
|
3172
|
-
const retry =
|
|
3173
|
-
const events =
|
|
2896
|
+
const retry = React28.useCallback(() => setReloadKey((k) => k + 1), []);
|
|
2897
|
+
const events = React28.useMemo(
|
|
3174
2898
|
() => (controlledEvents ?? loaded).map(normalize),
|
|
3175
2899
|
[controlledEvents, loaded]
|
|
3176
2900
|
);
|
|
3177
|
-
const go =
|
|
2901
|
+
const go = React28.useCallback((delta) => {
|
|
3178
2902
|
setDir(delta);
|
|
3179
2903
|
setCursor((c) => view === "month" ? addMonths(c, delta) : addDays(c, delta * 7));
|
|
3180
2904
|
}, [view]);
|
|
3181
|
-
const goToday =
|
|
2905
|
+
const goToday = React28.useCallback(() => {
|
|
3182
2906
|
setDir(0);
|
|
3183
2907
|
setCursor(/* @__PURE__ */ new Date());
|
|
3184
2908
|
}, []);
|
|
@@ -3206,7 +2930,7 @@ function Scheduler({
|
|
|
3206
2930
|
}
|
|
3207
2931
|
}
|
|
3208
2932
|
),
|
|
3209
|
-
loading && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2933
|
+
loading && /* @__PURE__ */ jsxRuntime.jsx(Spinner2, {})
|
|
3210
2934
|
] }),
|
|
3211
2935
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3212
2936
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3219,7 +2943,7 @@ function Scheduler({
|
|
|
3219
2943
|
options: [{ value: "month", label: "Month" }, { value: "week", label: "Week" }]
|
|
3220
2944
|
}
|
|
3221
2945
|
),
|
|
3222
|
-
onNewEvent && /* @__PURE__ */ jsxRuntime.jsx(Button_default, { size: "sm", icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2946
|
+
onNewEvent && /* @__PURE__ */ jsxRuntime.jsx(Button_default, { size: "sm", icon: /* @__PURE__ */ jsxRuntime.jsx(Plus, {}), content: "New event", onClick: onNewEvent })
|
|
3223
2947
|
] })
|
|
3224
2948
|
] }),
|
|
3225
2949
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex-1 overflow-hidden", children: error ? /* @__PURE__ */ jsxRuntime.jsx(SchedulerError, { onRetry: retry }) : loadEvents && loading && events.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(SchedulerSkeleton, { view }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3288,9 +3012,9 @@ function SchedulerError({ onRetry }) {
|
|
|
3288
3012
|
] });
|
|
3289
3013
|
}
|
|
3290
3014
|
function MonthYearPicker({ label, cursor, onPick }) {
|
|
3291
|
-
const [open, setOpen] =
|
|
3292
|
-
const [viewYear, setViewYear] =
|
|
3293
|
-
|
|
3015
|
+
const [open, setOpen] = React28.useState(false);
|
|
3016
|
+
const [viewYear, setViewYear] = React28.useState(cursor.getFullYear());
|
|
3017
|
+
React28.useEffect(() => {
|
|
3294
3018
|
if (open) setViewYear(cursor.getFullYear());
|
|
3295
3019
|
}, [open, cursor]);
|
|
3296
3020
|
return /* @__PURE__ */ jsxRuntime.jsxs(Popover__namespace.Root, { open, onOpenChange: setOpen, children: [
|
|
@@ -3353,7 +3077,7 @@ function MonthView({
|
|
|
3353
3077
|
onSelectSlot,
|
|
3354
3078
|
onSelectEvent
|
|
3355
3079
|
}) {
|
|
3356
|
-
const grid =
|
|
3080
|
+
const grid = React28.useMemo(() => buildMonthGrid(cursor, weekStartsOn), [cursor, weekStartsOn]);
|
|
3357
3081
|
const labels = weekdayLabels(weekStartsOn);
|
|
3358
3082
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col", children: [
|
|
3359
3083
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-7 border-b border-border", children: labels.map((l) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5 text-center text-[11px] font-medium uppercase tracking-wide text-foreground-muted", children: l }, l)) }),
|
|
@@ -3427,11 +3151,11 @@ function WeekView({
|
|
|
3427
3151
|
onSelectSlot,
|
|
3428
3152
|
onSelectEvent
|
|
3429
3153
|
}) {
|
|
3430
|
-
const days =
|
|
3431
|
-
const labels =
|
|
3154
|
+
const days = React28.useMemo(() => getWeekDays(cursor, weekStartsOn), [cursor, weekStartsOn]);
|
|
3155
|
+
const labels = React28.useMemo(() => weekdayLabels(weekStartsOn), [weekStartsOn]);
|
|
3432
3156
|
const dow = (d) => labels[(d.getDay() - weekStartsOn + 7) % 7];
|
|
3433
3157
|
const [startHour, endHour] = dayHours;
|
|
3434
|
-
const hours =
|
|
3158
|
+
const hours = React28.useMemo(
|
|
3435
3159
|
() => Array.from({ length: endHour - startHour }, (_, i) => startHour + i),
|
|
3436
3160
|
[startHour, endHour]
|
|
3437
3161
|
);
|
|
@@ -3622,17 +3346,17 @@ function Cart({
|
|
|
3622
3346
|
] })
|
|
3623
3347
|
] });
|
|
3624
3348
|
}
|
|
3625
|
-
var CartContext =
|
|
3349
|
+
var CartContext = React28.createContext(null);
|
|
3626
3350
|
var clampQty = (qty, max) => {
|
|
3627
3351
|
const lower = Math.max(1, Math.round(qty));
|
|
3628
3352
|
return max != null ? Math.min(lower, max) : lower;
|
|
3629
3353
|
};
|
|
3630
3354
|
function CartProvider({ children, initialItems = [], onChange }) {
|
|
3631
|
-
const [items, setItems] =
|
|
3632
|
-
|
|
3355
|
+
const [items, setItems] = React28.useState(initialItems);
|
|
3356
|
+
React28.useEffect(() => {
|
|
3633
3357
|
onChange?.(items);
|
|
3634
3358
|
}, [items]);
|
|
3635
|
-
const addToCart =
|
|
3359
|
+
const addToCart = React28.useCallback((item, quantity) => {
|
|
3636
3360
|
const addQty = quantity ?? item.quantity ?? 1;
|
|
3637
3361
|
setItems((prev) => {
|
|
3638
3362
|
const existing = prev.find((it) => it.id === item.id);
|
|
@@ -3645,29 +3369,29 @@ function CartProvider({ children, initialItems = [], onChange }) {
|
|
|
3645
3369
|
return [...prev, { ...rest, quantity: clampQty(addQty, item.max) }];
|
|
3646
3370
|
});
|
|
3647
3371
|
}, []);
|
|
3648
|
-
const removeFromCart =
|
|
3372
|
+
const removeFromCart = React28.useCallback((id) => {
|
|
3649
3373
|
setItems((prev) => prev.filter((it) => it.id !== id));
|
|
3650
3374
|
}, []);
|
|
3651
|
-
const updateQuantity =
|
|
3375
|
+
const updateQuantity = React28.useCallback((id, quantity) => {
|
|
3652
3376
|
setItems(
|
|
3653
3377
|
(prev) => prev.map((it) => it.id === id ? { ...it, quantity: clampQty(quantity, it.max) } : it)
|
|
3654
3378
|
);
|
|
3655
3379
|
}, []);
|
|
3656
|
-
const clearCart =
|
|
3657
|
-
const isInCart =
|
|
3658
|
-
const getItemCount =
|
|
3659
|
-
const getCartTotal =
|
|
3380
|
+
const clearCart = React28.useCallback(() => setItems([]), []);
|
|
3381
|
+
const isInCart = React28.useCallback((id) => items.some((it) => it.id === id), [items]);
|
|
3382
|
+
const getItemCount = React28.useCallback(() => items.reduce((sum, it) => sum + it.quantity, 0), [items]);
|
|
3383
|
+
const getCartTotal = React28.useCallback(
|
|
3660
3384
|
() => items.reduce((sum, it) => sum + it.price * it.quantity, 0),
|
|
3661
3385
|
[items]
|
|
3662
3386
|
);
|
|
3663
|
-
const value =
|
|
3387
|
+
const value = React28.useMemo(
|
|
3664
3388
|
() => ({ items, addToCart, removeFromCart, updateQuantity, clearCart, isInCart, getItemCount, getCartTotal }),
|
|
3665
3389
|
[items, addToCart, removeFromCart, updateQuantity, clearCart, isInCart, getItemCount, getCartTotal]
|
|
3666
3390
|
);
|
|
3667
3391
|
return /* @__PURE__ */ jsxRuntime.jsx(CartContext.Provider, { value, children });
|
|
3668
3392
|
}
|
|
3669
3393
|
function useCart() {
|
|
3670
|
-
const ctx =
|
|
3394
|
+
const ctx = React28.useContext(CartContext);
|
|
3671
3395
|
if (!ctx) {
|
|
3672
3396
|
throw new Error("useCart must be used within a <CartProvider>.");
|
|
3673
3397
|
}
|
|
@@ -4001,11 +3725,11 @@ function buildBindings(store, name, kind, snap) {
|
|
|
4001
3725
|
|
|
4002
3726
|
// src/form/useForm.ts
|
|
4003
3727
|
function useForm(options = {}) {
|
|
4004
|
-
const ref =
|
|
3728
|
+
const ref = React28.useRef(null);
|
|
4005
3729
|
if (ref.current === null) ref.current = new FormStore(options);
|
|
4006
3730
|
const store = ref.current;
|
|
4007
|
-
|
|
4008
|
-
const make =
|
|
3731
|
+
React28.useSyncExternalStore(store.subscribe, store.getRootSnapshot, store.getRootSnapshot);
|
|
3732
|
+
const make = React28.useCallback(
|
|
4009
3733
|
(kind) => (name, rules) => {
|
|
4010
3734
|
if (rules !== void 0) store.setRule(name, rules);
|
|
4011
3735
|
return buildBindings(store, name, kind, store.getFieldSnapshot(name));
|
|
@@ -4034,9 +3758,9 @@ function useForm(options = {}) {
|
|
|
4034
3758
|
fieldTarget: make("target")
|
|
4035
3759
|
};
|
|
4036
3760
|
}
|
|
4037
|
-
var FormContext =
|
|
3761
|
+
var FormContext = React28.createContext(null);
|
|
4038
3762
|
function useFormStore() {
|
|
4039
|
-
const store =
|
|
3763
|
+
const store = React28.useContext(FormContext);
|
|
4040
3764
|
if (!store) {
|
|
4041
3765
|
throw new Error("useFormStore must be used within a <Form>. Did you forget to wrap your fields?");
|
|
4042
3766
|
}
|
|
@@ -4050,8 +3774,8 @@ function Form({
|
|
|
4050
3774
|
children,
|
|
4051
3775
|
...rest
|
|
4052
3776
|
}) {
|
|
4053
|
-
const ref =
|
|
4054
|
-
const bypass =
|
|
3777
|
+
const ref = React28.useRef(null);
|
|
3778
|
+
const bypass = React28.useRef(false);
|
|
4055
3779
|
const handleSubmit = async (e) => {
|
|
4056
3780
|
if (bypass.current) {
|
|
4057
3781
|
bypass.current = false;
|
|
@@ -4103,12 +3827,12 @@ function useFormField(name, options = {}) {
|
|
|
4103
3827
|
const store = useFormStore();
|
|
4104
3828
|
const { kind = "value", rules } = options;
|
|
4105
3829
|
if (rules !== void 0 && store.getRule(name) !== rules) store.setRule(name, rules);
|
|
4106
|
-
|
|
3830
|
+
React28.useEffect(() => {
|
|
4107
3831
|
return () => {
|
|
4108
3832
|
if (rules !== void 0) store.removeRule(name);
|
|
4109
3833
|
};
|
|
4110
3834
|
}, [store, name]);
|
|
4111
|
-
const snap =
|
|
3835
|
+
const snap = React28.useSyncExternalStore(
|
|
4112
3836
|
store.subscribe,
|
|
4113
3837
|
() => store.getFieldSnapshot(name)
|
|
4114
3838
|
);
|
|
@@ -4120,7 +3844,7 @@ function FormField({ name, kind, rules, children }) {
|
|
|
4120
3844
|
}
|
|
4121
3845
|
function useFieldArray(name) {
|
|
4122
3846
|
const store = useFormStore();
|
|
4123
|
-
|
|
3847
|
+
React28.useSyncExternalStore(store.subscribe, store.getRootSnapshot, store.getRootSnapshot);
|
|
4124
3848
|
const arr = store.getValue(name) ?? [];
|
|
4125
3849
|
const keys = store.getKeys(name);
|
|
4126
3850
|
return {
|
|
@@ -4153,7 +3877,7 @@ function TextInput({
|
|
|
4153
3877
|
suffix,
|
|
4154
3878
|
id
|
|
4155
3879
|
}) {
|
|
4156
|
-
const errorId =
|
|
3880
|
+
const errorId = React28.useId();
|
|
4157
3881
|
const hasError = errorMessage != null;
|
|
4158
3882
|
const hasAdornment = prefix != null || suffix != null;
|
|
4159
3883
|
const inputId = htmlFor ?? id;
|
|
@@ -4314,7 +4038,7 @@ function CreditCardForm({
|
|
|
4314
4038
|
className = "",
|
|
4315
4039
|
style
|
|
4316
4040
|
}) {
|
|
4317
|
-
const initial =
|
|
4041
|
+
const initial = React28.useRef({
|
|
4318
4042
|
number: formatCardNumber(defaultValue?.number ?? ""),
|
|
4319
4043
|
name: defaultValue?.name ?? "",
|
|
4320
4044
|
expiry: formatExpiry(defaultValue?.expiry ?? ""),
|
|
@@ -4323,7 +4047,7 @@ function CreditCardForm({
|
|
|
4323
4047
|
const form = useForm({ initialValues: initial });
|
|
4324
4048
|
const numberStr = String(form.values.number ?? "");
|
|
4325
4049
|
const brand = detectBrand(numberStr);
|
|
4326
|
-
|
|
4050
|
+
React28.useEffect(() => {
|
|
4327
4051
|
onChange?.(toCard(form.values));
|
|
4328
4052
|
}, [form.values.number, form.values.name, form.values.expiry, form.values.cvv]);
|
|
4329
4053
|
const numberBind = form.fieldNative("number", {
|
|
@@ -4446,7 +4170,7 @@ function Checkout({
|
|
|
4446
4170
|
] })
|
|
4447
4171
|
] });
|
|
4448
4172
|
}
|
|
4449
|
-
var NotificationContext =
|
|
4173
|
+
var NotificationContext = React28.createContext({
|
|
4450
4174
|
open: () => void 0,
|
|
4451
4175
|
close: () => void 0
|
|
4452
4176
|
});
|
|
@@ -4504,26 +4228,26 @@ function NotificationItem({
|
|
|
4504
4228
|
onClose,
|
|
4505
4229
|
reduced
|
|
4506
4230
|
}) {
|
|
4507
|
-
const [paused, setPaused] =
|
|
4231
|
+
const [paused, setPaused] = React28.useState(false);
|
|
4508
4232
|
const duration = n.duration ?? 4e3;
|
|
4509
4233
|
const isAutoDismissing = isFinite(duration) && duration > 0;
|
|
4510
4234
|
const showProgress = !reduced && isAutoDismissing;
|
|
4511
|
-
const timerRef =
|
|
4512
|
-
const startTimeRef =
|
|
4513
|
-
const remainingRef =
|
|
4514
|
-
const clearTimer =
|
|
4235
|
+
const timerRef = React28.useRef(null);
|
|
4236
|
+
const startTimeRef = React28.useRef(0);
|
|
4237
|
+
const remainingRef = React28.useRef(duration);
|
|
4238
|
+
const clearTimer = React28.useCallback(() => {
|
|
4515
4239
|
if (timerRef.current !== null) {
|
|
4516
4240
|
clearTimeout(timerRef.current);
|
|
4517
4241
|
timerRef.current = null;
|
|
4518
4242
|
}
|
|
4519
4243
|
}, []);
|
|
4520
|
-
const scheduleDismiss =
|
|
4244
|
+
const scheduleDismiss = React28.useCallback((ms) => {
|
|
4521
4245
|
clearTimer();
|
|
4522
4246
|
if (!isAutoDismissing) return;
|
|
4523
4247
|
startTimeRef.current = Date.now();
|
|
4524
4248
|
timerRef.current = setTimeout(() => onClose(n.id), ms);
|
|
4525
4249
|
}, [clearTimer, isAutoDismissing, n.id, onClose]);
|
|
4526
|
-
|
|
4250
|
+
React28.useEffect(() => {
|
|
4527
4251
|
if (paused || !isAutoDismissing) return;
|
|
4528
4252
|
scheduleDismiss(remainingRef.current);
|
|
4529
4253
|
return clearTimer;
|
|
@@ -4606,15 +4330,15 @@ function NotificationProvider({
|
|
|
4606
4330
|
children,
|
|
4607
4331
|
position = "top-right"
|
|
4608
4332
|
}) {
|
|
4609
|
-
const [notifications, setNotifications] =
|
|
4333
|
+
const [notifications, setNotifications] = React28.useState([]);
|
|
4610
4334
|
const reduced = framerMotion.useReducedMotion();
|
|
4611
|
-
const open =
|
|
4335
|
+
const open = React28.useCallback((payload) => {
|
|
4612
4336
|
setNotifications((prev) => [
|
|
4613
4337
|
...prev,
|
|
4614
4338
|
{ duration: 4e3, ...payload, id: Date.now() + Math.random() }
|
|
4615
4339
|
]);
|
|
4616
4340
|
}, []);
|
|
4617
|
-
const close =
|
|
4341
|
+
const close = React28.useCallback((id) => {
|
|
4618
4342
|
setNotifications((prev) => prev.filter((n) => n.id !== id));
|
|
4619
4343
|
}, []);
|
|
4620
4344
|
return /* @__PURE__ */ jsxRuntime.jsxs(NotificationContext.Provider, { value: { open, close }, children: [
|
|
@@ -4643,7 +4367,7 @@ function NotificationProvider({
|
|
|
4643
4367
|
] });
|
|
4644
4368
|
}
|
|
4645
4369
|
function useNotification() {
|
|
4646
|
-
const { open } =
|
|
4370
|
+
const { open } = React28.useContext(NotificationContext);
|
|
4647
4371
|
return {
|
|
4648
4372
|
info: (props) => open({ type: "info", ...props }),
|
|
4649
4373
|
success: (props) => open({ type: "success", ...props }),
|
|
@@ -4760,10 +4484,10 @@ function FadingBase({
|
|
|
4760
4484
|
isMounted = false,
|
|
4761
4485
|
children
|
|
4762
4486
|
}) {
|
|
4763
|
-
const [shouldRender, setShouldRender] =
|
|
4764
|
-
const [visible, setVisible] =
|
|
4765
|
-
const timerRef =
|
|
4766
|
-
|
|
4487
|
+
const [shouldRender, setShouldRender] = React28.useState(isMounted);
|
|
4488
|
+
const [visible, setVisible] = React28.useState(false);
|
|
4489
|
+
const timerRef = React28.useRef(null);
|
|
4490
|
+
React28.useEffect(() => {
|
|
4767
4491
|
if (isMounted) {
|
|
4768
4492
|
setShouldRender(true);
|
|
4769
4493
|
const rafId = requestAnimationFrame(() => setVisible(true));
|
|
@@ -4796,7 +4520,7 @@ var DENSITY_PADDING = {
|
|
|
4796
4520
|
"comfortable": "py-2.5 px-3",
|
|
4797
4521
|
"spacious": "py-3.5 px-4"
|
|
4798
4522
|
};
|
|
4799
|
-
function
|
|
4523
|
+
function List2({
|
|
4800
4524
|
items,
|
|
4801
4525
|
onItemClick,
|
|
4802
4526
|
activeKey,
|
|
@@ -4861,8 +4585,8 @@ function ScalableContainer({
|
|
|
4861
4585
|
togglePosition = "top-right",
|
|
4862
4586
|
className = ""
|
|
4863
4587
|
}) {
|
|
4864
|
-
const containerRef =
|
|
4865
|
-
const [internalScaled, setInternalScaled] =
|
|
4588
|
+
const containerRef = React28.useRef(null);
|
|
4589
|
+
const [internalScaled, setInternalScaled] = React28.useState(false);
|
|
4866
4590
|
const isScaled = expanded ?? internalScaled;
|
|
4867
4591
|
const reduced = framerMotion.useReducedMotion();
|
|
4868
4592
|
const onToggle = () => {
|
|
@@ -5000,17 +4724,17 @@ function CatalogGrid({ items, buttonText, onOpen, className = "" }) {
|
|
|
5000
4724
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex flex-wrap gap-2 ${className}`.trim(), children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(GridCard, { item, buttonText, onOpen }, item.key)) });
|
|
5001
4725
|
}
|
|
5002
4726
|
function CatalogCarousel({ items, buttonText, onOpen, className = "" }) {
|
|
5003
|
-
const [activeIndex, setActiveIndex] =
|
|
5004
|
-
const [indexPool, setIndexPool] =
|
|
5005
|
-
const cardRefs =
|
|
5006
|
-
const getIndexes =
|
|
4727
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
4728
|
+
const [indexPool, setIndexPool] = React28.useState([]);
|
|
4729
|
+
const cardRefs = React28.useRef([]);
|
|
4730
|
+
const getIndexes = React28.useMemo(() => {
|
|
5007
4731
|
let nextIndex = activeIndex + 1;
|
|
5008
4732
|
let previousIndex = activeIndex - 1;
|
|
5009
4733
|
if (activeIndex === 0) previousIndex = items.length - 1;
|
|
5010
4734
|
if (activeIndex === items.length - 1) nextIndex = 0;
|
|
5011
4735
|
return { previousIndex, nextIndex };
|
|
5012
4736
|
}, [activeIndex, items.length]);
|
|
5013
|
-
|
|
4737
|
+
React28.useEffect(() => {
|
|
5014
4738
|
const { nextIndex, previousIndex } = getIndexes;
|
|
5015
4739
|
let indexes = [previousIndex, activeIndex, nextIndex];
|
|
5016
4740
|
if (activeIndex !== 0 && activeIndex !== items.length - 1) {
|
|
@@ -5129,7 +4853,7 @@ function renderItem(item) {
|
|
|
5129
4853
|
className: ITEM_CLASSNAME,
|
|
5130
4854
|
children: [
|
|
5131
4855
|
/* @__PURE__ */ jsxRuntime.jsx(ContextMenuLabel, { icon: item.icon, value: item.value }),
|
|
5132
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4856
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChevronRight, {})
|
|
5133
4857
|
]
|
|
5134
4858
|
}
|
|
5135
4859
|
),
|
|
@@ -5162,7 +4886,7 @@ function ContextMenuLabel({ icon, value }) {
|
|
|
5162
4886
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: value })
|
|
5163
4887
|
] });
|
|
5164
4888
|
}
|
|
5165
|
-
function
|
|
4889
|
+
function ChevronRight() {
|
|
5166
4890
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "h-4 w-4 flex-shrink-0", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
|
|
5167
4891
|
}
|
|
5168
4892
|
function readDismissed(key) {
|
|
@@ -5183,8 +4907,8 @@ function writeDismissed(key) {
|
|
|
5183
4907
|
}
|
|
5184
4908
|
}
|
|
5185
4909
|
function useTargetBbox(ref) {
|
|
5186
|
-
const [bbox, setBbox] =
|
|
5187
|
-
|
|
4910
|
+
const [bbox, setBbox] = React28.useState(null);
|
|
4911
|
+
React28.useLayoutEffect(() => {
|
|
5188
4912
|
const el = ref?.current;
|
|
5189
4913
|
if (!el) {
|
|
5190
4914
|
setBbox(null);
|
|
@@ -5214,7 +4938,7 @@ function tooltipStyleFor(bbox, placement) {
|
|
|
5214
4938
|
return { left: bbox.left + bbox.width / 2, top: bbox.top - TOOLTIP_GAP, transform: "translate(-50%, -100%)", width: TOOLTIP_WIDTH };
|
|
5215
4939
|
}
|
|
5216
4940
|
function useFocusTrap(containerRef, active) {
|
|
5217
|
-
|
|
4941
|
+
React28.useEffect(() => {
|
|
5218
4942
|
if (!active) return;
|
|
5219
4943
|
const el = containerRef.current;
|
|
5220
4944
|
if (!el) return;
|
|
@@ -5253,16 +4977,16 @@ function Wizard({
|
|
|
5253
4977
|
onComplete,
|
|
5254
4978
|
onSkip
|
|
5255
4979
|
}) {
|
|
5256
|
-
const tooltipRef =
|
|
5257
|
-
const tooltipTitleId =
|
|
5258
|
-
const tooltipBodyId =
|
|
4980
|
+
const tooltipRef = React28.useRef(null);
|
|
4981
|
+
const tooltipTitleId = React28.useId();
|
|
4982
|
+
const tooltipBodyId = React28.useId();
|
|
5259
4983
|
const reduced = framerMotion.useReducedMotion();
|
|
5260
|
-
const [open, setOpen] =
|
|
5261
|
-
const [activeIndex, setActiveIndex] =
|
|
4984
|
+
const [open, setOpen] = React28.useState(() => steps.length > 0 && !readDismissed(storageKey));
|
|
4985
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
5262
4986
|
const step = steps[activeIndex];
|
|
5263
4987
|
const bbox = useTargetBbox(step?.stepRef);
|
|
5264
4988
|
useFocusTrap(tooltipRef, open);
|
|
5265
|
-
|
|
4989
|
+
React28.useEffect(() => {
|
|
5266
4990
|
if (!open || !dismissible) return;
|
|
5267
4991
|
const onKey = (e) => {
|
|
5268
4992
|
if (e.key === "Escape") {
|
|
@@ -5273,12 +4997,12 @@ function Wizard({
|
|
|
5273
4997
|
document.addEventListener("keydown", onKey);
|
|
5274
4998
|
return () => document.removeEventListener("keydown", onKey);
|
|
5275
4999
|
}, [open, dismissible]);
|
|
5276
|
-
const handleSkip =
|
|
5000
|
+
const handleSkip = React28.useCallback(() => {
|
|
5277
5001
|
writeDismissed(storageKey);
|
|
5278
5002
|
setOpen(false);
|
|
5279
5003
|
onSkip?.();
|
|
5280
5004
|
}, [storageKey, onSkip]);
|
|
5281
|
-
const handleComplete =
|
|
5005
|
+
const handleComplete = React28.useCallback(() => {
|
|
5282
5006
|
writeDismissed(storageKey);
|
|
5283
5007
|
setOpen(false);
|
|
5284
5008
|
onComplete?.();
|
|
@@ -5421,7 +5145,7 @@ function Wizard({
|
|
|
5421
5145
|
] });
|
|
5422
5146
|
}
|
|
5423
5147
|
var SearchIcon = /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) });
|
|
5424
|
-
var SearchInput =
|
|
5148
|
+
var SearchInput = React28__default.default.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
|
|
5425
5149
|
return /* @__PURE__ */ jsxRuntime.jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5426
5150
|
"div",
|
|
5427
5151
|
{
|
|
@@ -5605,7 +5329,7 @@ function TableBody({
|
|
|
5605
5329
|
expandRow,
|
|
5606
5330
|
getRowKey
|
|
5607
5331
|
}) {
|
|
5608
|
-
const [expanded, setExpanded] =
|
|
5332
|
+
const [expanded, setExpanded] = React28.useState(() => /* @__PURE__ */ new Set());
|
|
5609
5333
|
const reduced = framerMotion.useReducedMotion();
|
|
5610
5334
|
const toggleRow = (rowKey) => {
|
|
5611
5335
|
setExpanded((prev) => {
|
|
@@ -5620,7 +5344,7 @@ function TableBody({
|
|
|
5620
5344
|
return /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: rows.map((row, i) => {
|
|
5621
5345
|
const rowKey = getRowKey(row, i);
|
|
5622
5346
|
const isExpanded = expanded.has(rowKey);
|
|
5623
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5347
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React28__default.default.Fragment, { children: [
|
|
5624
5348
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5625
5349
|
"tr",
|
|
5626
5350
|
{
|
|
@@ -5676,9 +5400,9 @@ function Pagination({
|
|
|
5676
5400
|
const matchedOption = picker.find(
|
|
5677
5401
|
(o) => o.label === options.perPage || o.value === options.perPage
|
|
5678
5402
|
);
|
|
5679
|
-
const [perPageKey, setPerPageKey] =
|
|
5403
|
+
const [perPageKey, setPerPageKey] = React28.useState(() => matchedOption?.key ?? picker[0]?.key);
|
|
5680
5404
|
const displayPerPageKey = serverSide ? matchedOption?.key ?? perPageKey : perPageKey;
|
|
5681
|
-
|
|
5405
|
+
React28.useEffect(() => {
|
|
5682
5406
|
if (serverSide && options.perPage != null) {
|
|
5683
5407
|
const next = picker.find((o) => o.label === options.perPage || o.value === options.perPage);
|
|
5684
5408
|
if (next) setPerPageKey(next.key);
|
|
@@ -5728,7 +5452,7 @@ function Pagination({
|
|
|
5728
5452
|
] })
|
|
5729
5453
|
] });
|
|
5730
5454
|
}
|
|
5731
|
-
function
|
|
5455
|
+
function Table({
|
|
5732
5456
|
columns = [],
|
|
5733
5457
|
rows = [],
|
|
5734
5458
|
getRowKey = defaultGetRowKey,
|
|
@@ -5742,14 +5466,14 @@ function Table2({
|
|
|
5742
5466
|
className = "",
|
|
5743
5467
|
style
|
|
5744
5468
|
}) {
|
|
5745
|
-
const searchRef =
|
|
5746
|
-
const [searchTerm, setSearchTerm] =
|
|
5747
|
-
const [perPage, setPerPage] =
|
|
5469
|
+
const searchRef = React28.useRef(null);
|
|
5470
|
+
const [searchTerm, setSearchTerm] = React28.useState("");
|
|
5471
|
+
const [perPage, setPerPage] = React28.useState(
|
|
5748
5472
|
typeof pagination.perPage === "number" ? pagination.perPage : 15
|
|
5749
5473
|
);
|
|
5750
|
-
const [activePage, setActivePage] =
|
|
5474
|
+
const [activePage, setActivePage] = React28.useState(0);
|
|
5751
5475
|
const isServerSide = !!(pagination.enabled && pagination.serverSide);
|
|
5752
|
-
const filteredRows =
|
|
5476
|
+
const filteredRows = React28.useMemo(() => {
|
|
5753
5477
|
if (isServerSide || !searchTerm) return rows;
|
|
5754
5478
|
const term = searchTerm.toLowerCase();
|
|
5755
5479
|
return rows.filter(
|
|
@@ -5758,29 +5482,29 @@ function Table2({
|
|
|
5758
5482
|
)
|
|
5759
5483
|
);
|
|
5760
5484
|
}, [rows, searchTerm, isServerSide]);
|
|
5761
|
-
const datasets =
|
|
5485
|
+
const datasets = React28.useMemo(() => {
|
|
5762
5486
|
if (isServerSide) return [rows];
|
|
5763
5487
|
return createDatasets(filteredRows, pagination.enabled ? perPage : null);
|
|
5764
5488
|
}, [filteredRows, perPage, pagination.enabled, isServerSide, rows]);
|
|
5765
|
-
const MAX_PAGE =
|
|
5489
|
+
const MAX_PAGE = React28.useMemo(() => {
|
|
5766
5490
|
if (isServerSide && typeof pagination.maxPage === "number") return Math.max(0, pagination.maxPage);
|
|
5767
5491
|
if (isServerSide && typeof pagination.totalCount === "number")
|
|
5768
5492
|
return Math.max(0, Math.ceil(pagination.totalCount / perPage) - 1);
|
|
5769
5493
|
return datasets.length ? datasets.length - 1 : 0;
|
|
5770
5494
|
}, [isServerSide, pagination.maxPage, pagination.totalCount, perPage, datasets.length]);
|
|
5771
|
-
const currentPageRows =
|
|
5495
|
+
const currentPageRows = React28.useMemo(() => {
|
|
5772
5496
|
if (isServerSide) return rows;
|
|
5773
5497
|
return datasets[activePage] ?? [];
|
|
5774
5498
|
}, [isServerSide, rows, datasets, activePage]);
|
|
5775
|
-
|
|
5499
|
+
React28.useEffect(() => {
|
|
5776
5500
|
if (pagination.enabled && !isServerSide && typeof pagination.perPage === "number") {
|
|
5777
5501
|
setPerPage(pagination.perPage);
|
|
5778
5502
|
}
|
|
5779
5503
|
}, [pagination.enabled, pagination.perPage, isServerSide]);
|
|
5780
|
-
|
|
5504
|
+
React28.useEffect(() => {
|
|
5781
5505
|
if (isServerSide && typeof pagination.perPage === "number") setPerPage(pagination.perPage);
|
|
5782
5506
|
}, [isServerSide, pagination.perPage]);
|
|
5783
|
-
|
|
5507
|
+
React28.useEffect(() => {
|
|
5784
5508
|
if (isServerSide && typeof pagination.page === "number" && pagination.page >= 1)
|
|
5785
5509
|
setActivePage(pagination.page - 1);
|
|
5786
5510
|
}, [isServerSide, pagination.page]);
|
|
@@ -5864,7 +5588,7 @@ function TableSkeletonBody({
|
|
|
5864
5588
|
)) });
|
|
5865
5589
|
}
|
|
5866
5590
|
function ThemeSwitch({ checked, onChange, label = "Toggle dark mode", className = "" }) {
|
|
5867
|
-
const id =
|
|
5591
|
+
const id = React28.useId();
|
|
5868
5592
|
return /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, className: `flex items-center gap-2 cursor-pointer select-none ${className}`.trim(), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5869
5593
|
SwitchPrimitive__namespace.Root,
|
|
5870
5594
|
{
|
|
@@ -6048,7 +5772,7 @@ function Sidebar({
|
|
|
6048
5772
|
}
|
|
6049
5773
|
) });
|
|
6050
5774
|
}
|
|
6051
|
-
var MegaMenuContext =
|
|
5775
|
+
var MegaMenuContext = React28.createContext({ align: "start" });
|
|
6052
5776
|
function MegaMenu({
|
|
6053
5777
|
children,
|
|
6054
5778
|
align = "start",
|
|
@@ -6079,7 +5803,7 @@ function MegaMenu({
|
|
|
6079
5803
|
}
|
|
6080
5804
|
var TOP_ITEM = "group/top inline-flex items-center gap-1.5 h-10 px-3 rounded-md text-sm font-medium select-none text-foreground-secondary hover:text-foreground hover:bg-surface-raised data-[state=open]:text-accent data-[active]:text-accent transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-accent";
|
|
6081
5805
|
function MegaMenuItem({ label, icon, href, children, className = "" }) {
|
|
6082
|
-
const { align } =
|
|
5806
|
+
const { align } = React28.useContext(MegaMenuContext);
|
|
6083
5807
|
const pos = align === "center" ? "left-1/2 -translate-x-1/2" : align === "end" ? "right-0" : "left-0";
|
|
6084
5808
|
if (!children) {
|
|
6085
5809
|
return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu__namespace.Item, { children: /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenu__namespace.Link, { href, className: [TOP_ITEM, className].filter(Boolean).join(" "), children: [
|
|
@@ -6164,8 +5888,8 @@ function MegaMenuLink({ href, icon, description, active, onClick, children, clas
|
|
|
6164
5888
|
function MegaMenuFeatured({ children, className = "" }) {
|
|
6165
5889
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ["min-w-0 rounded-lg bg-surface-raised border border-border p-4 flex flex-col", className].filter(Boolean).join(" "), children });
|
|
6166
5890
|
}
|
|
6167
|
-
var elementsOfType = (children, type) =>
|
|
6168
|
-
(c) =>
|
|
5891
|
+
var elementsOfType = (children, type) => React28__default.default.Children.toArray(children).filter(
|
|
5892
|
+
(c) => React28__default.default.isValidElement(c) && c.type === type
|
|
6169
5893
|
);
|
|
6170
5894
|
var MOBILE_CHEVRON = /* @__PURE__ */ jsxRuntime.jsx(
|
|
6171
5895
|
"svg",
|
|
@@ -6202,9 +5926,9 @@ function MobileLinkRow({ link, onNavigate }) {
|
|
|
6202
5926
|
);
|
|
6203
5927
|
}
|
|
6204
5928
|
function MobilePanel({ panel, onNavigate }) {
|
|
6205
|
-
const nodes =
|
|
5929
|
+
const nodes = React28__default.default.Children.toArray(panel.props.children);
|
|
6206
5930
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 px-2 pb-3 pt-1", children: nodes.map((node, i) => {
|
|
6207
|
-
if (!
|
|
5931
|
+
if (!React28__default.default.isValidElement(node)) return null;
|
|
6208
5932
|
const el = node;
|
|
6209
5933
|
if (el.type === MegaMenuSection) {
|
|
6210
5934
|
const { title, children } = el.props;
|
|
@@ -6223,8 +5947,8 @@ function MegaMenuMobile({
|
|
|
6223
5947
|
children,
|
|
6224
5948
|
label
|
|
6225
5949
|
}) {
|
|
6226
|
-
const [open, setOpen] =
|
|
6227
|
-
const [expanded, setExpanded] =
|
|
5950
|
+
const [open, setOpen] = React28.useState(false);
|
|
5951
|
+
const [expanded, setExpanded] = React28.useState(null);
|
|
6228
5952
|
const items = elementsOfType(children, MegaMenuItem);
|
|
6229
5953
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:hidden w-full", children: [
|
|
6230
5954
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -6297,17 +6021,17 @@ function AppShell({
|
|
|
6297
6021
|
children,
|
|
6298
6022
|
className = ""
|
|
6299
6023
|
}) {
|
|
6300
|
-
const [expanded, setExpanded] =
|
|
6301
|
-
const [isMobile, setIsMobile] =
|
|
6302
|
-
const [mobileOpen, setMobileOpen] =
|
|
6303
|
-
|
|
6024
|
+
const [expanded, setExpanded] = React28.useState(sidebarDefaultExpanded);
|
|
6025
|
+
const [isMobile, setIsMobile] = React28.useState(false);
|
|
6026
|
+
const [mobileOpen, setMobileOpen] = React28.useState(false);
|
|
6027
|
+
React28.useEffect(() => {
|
|
6304
6028
|
const mq = window.matchMedia("(max-width: 767px)");
|
|
6305
6029
|
const update = (e) => setIsMobile(e.matches);
|
|
6306
6030
|
update(mq);
|
|
6307
6031
|
mq.addEventListener("change", update);
|
|
6308
6032
|
return () => mq.removeEventListener("change", update);
|
|
6309
6033
|
}, []);
|
|
6310
|
-
|
|
6034
|
+
React28.useEffect(() => {
|
|
6311
6035
|
if (!isMobile) setMobileOpen(false);
|
|
6312
6036
|
}, [isMobile]);
|
|
6313
6037
|
const hasSidebar = sidebarSections.length > 0;
|
|
@@ -6414,7 +6138,7 @@ function tokenValid(token) {
|
|
|
6414
6138
|
return exp * 1e3 > Date.now();
|
|
6415
6139
|
}
|
|
6416
6140
|
var has = (have, need, all) => all ? need.every((n) => have?.includes(n)) : need.some((n) => have?.includes(n));
|
|
6417
|
-
var
|
|
6141
|
+
var Spinner3 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-6 w-6 animate-spin text-accent", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z" }) });
|
|
6418
6142
|
function SecureLayout({
|
|
6419
6143
|
children,
|
|
6420
6144
|
isAuthenticated,
|
|
@@ -6434,7 +6158,7 @@ function SecureLayout({
|
|
|
6434
6158
|
className = ""
|
|
6435
6159
|
}) {
|
|
6436
6160
|
const reduced = framerMotion.useReducedMotion();
|
|
6437
|
-
const cbs =
|
|
6161
|
+
const cbs = React28.useRef({ canAccess, onGranted, onDeny });
|
|
6438
6162
|
cbs.current = { canAccess, onGranted, onDeny };
|
|
6439
6163
|
const rolesKey = JSON.stringify(roles);
|
|
6440
6164
|
const requiredRolesKey = JSON.stringify(requiredRoles);
|
|
@@ -6449,10 +6173,10 @@ function SecureLayout({
|
|
|
6449
6173
|
if (requiredPermissions?.length && !has(permissions, requiredPermissions, requireAllPermissions)) return false;
|
|
6450
6174
|
return true;
|
|
6451
6175
|
};
|
|
6452
|
-
const [state, setState] =
|
|
6176
|
+
const [state, setState] = React28.useState(
|
|
6453
6177
|
() => !passesSync() ? "denied" : canAccess ? "checking" : "granted"
|
|
6454
6178
|
);
|
|
6455
|
-
|
|
6179
|
+
React28.useEffect(() => {
|
|
6456
6180
|
let cancelled = false;
|
|
6457
6181
|
const { canAccess: check, onGranted: granted, onDeny: deny } = cbs.current;
|
|
6458
6182
|
const finish = (ok) => {
|
|
@@ -6490,7 +6214,7 @@ function SecureLayout({
|
|
|
6490
6214
|
]);
|
|
6491
6215
|
if (state === "checking") {
|
|
6492
6216
|
if (loadingFallback === null) return null;
|
|
6493
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ["flex min-h-[8rem] items-center justify-center", className].filter(Boolean).join(" "), children: loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6217
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ["flex min-h-[8rem] items-center justify-center", className].filter(Boolean).join(" "), children: loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ jsxRuntime.jsx(Spinner3, {}) });
|
|
6494
6218
|
}
|
|
6495
6219
|
if (state === "denied") {
|
|
6496
6220
|
if (fallback === null) return null;
|
|
@@ -6613,10 +6337,10 @@ function ThemeProvider({
|
|
|
6613
6337
|
className = "",
|
|
6614
6338
|
style
|
|
6615
6339
|
}) {
|
|
6616
|
-
const id =
|
|
6340
|
+
const id = React28__default.default.useId().replace(/:/g, "");
|
|
6617
6341
|
const scopeClass = `geo-th-${id}`;
|
|
6618
|
-
const divRef =
|
|
6619
|
-
|
|
6342
|
+
const divRef = React28.useRef(null);
|
|
6343
|
+
React28.useEffect(() => {
|
|
6620
6344
|
const el = divRef.current;
|
|
6621
6345
|
if (!el) return;
|
|
6622
6346
|
if (colorScheme === "auto") return;
|
|
@@ -6631,8 +6355,8 @@ function ThemeProvider({
|
|
|
6631
6355
|
}
|
|
6632
6356
|
el.classList.toggle("dark", colorScheme === "dark");
|
|
6633
6357
|
}, [colorScheme]);
|
|
6634
|
-
const lightVars =
|
|
6635
|
-
const darkVarStr =
|
|
6358
|
+
const lightVars = React28.useMemo(() => toCssVars(theme), [theme]);
|
|
6359
|
+
const darkVarStr = React28.useMemo(() => {
|
|
6636
6360
|
if (!darkTheme) return "";
|
|
6637
6361
|
const dvars = toCssVars(darkTheme);
|
|
6638
6362
|
if (!Object.keys(dvars).length) return "";
|
|
@@ -6674,7 +6398,7 @@ function NumberInput({
|
|
|
6674
6398
|
readOnly = false,
|
|
6675
6399
|
precision
|
|
6676
6400
|
}) {
|
|
6677
|
-
const errorId =
|
|
6401
|
+
const errorId = React28.useId();
|
|
6678
6402
|
const hasError = errorMessage != null;
|
|
6679
6403
|
const inferredPrecision = precision ?? (Number.isInteger(step) ? 0 : String(step).split(".")[1]?.length ?? 0);
|
|
6680
6404
|
const round = (n) => {
|
|
@@ -6805,8 +6529,8 @@ function Password({
|
|
|
6805
6529
|
showIcon,
|
|
6806
6530
|
hideIcon
|
|
6807
6531
|
}) {
|
|
6808
|
-
const [visible, setVisible] =
|
|
6809
|
-
const errorId =
|
|
6532
|
+
const [visible, setVisible] = React28.useState(false);
|
|
6533
|
+
const errorId = React28.useId();
|
|
6810
6534
|
const hasError = errorMessage != null;
|
|
6811
6535
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6812
6536
|
Field,
|
|
@@ -6879,7 +6603,7 @@ function Checkbox({
|
|
|
6879
6603
|
}) {
|
|
6880
6604
|
const isChecked = checked ?? value ?? false;
|
|
6881
6605
|
const labelFirst = labelPosition === "left";
|
|
6882
|
-
const errorId =
|
|
6606
|
+
const errorId = React28.useId();
|
|
6883
6607
|
const hasError = errorMessage != null;
|
|
6884
6608
|
const box = /* @__PURE__ */ jsxRuntime.jsx(
|
|
6885
6609
|
CheckboxPrimitive__namespace.Root,
|
|
@@ -6987,8 +6711,8 @@ function RadioGroup({
|
|
|
6987
6711
|
className,
|
|
6988
6712
|
errorMessage
|
|
6989
6713
|
}) {
|
|
6990
|
-
const errorId =
|
|
6991
|
-
const groupId =
|
|
6714
|
+
const errorId = React28.useId();
|
|
6715
|
+
const groupId = React28.useId();
|
|
6992
6716
|
const hasError = errorMessage != null;
|
|
6993
6717
|
const labelFirst = labelPosition === "left";
|
|
6994
6718
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7088,11 +6812,11 @@ function Switch({
|
|
|
7088
6812
|
disabled,
|
|
7089
6813
|
errorMessage
|
|
7090
6814
|
}) {
|
|
7091
|
-
const id =
|
|
7092
|
-
const errorId =
|
|
6815
|
+
const id = React28.useId();
|
|
6816
|
+
const errorId = React28.useId();
|
|
7093
6817
|
const hasError = errorMessage != null;
|
|
7094
6818
|
const isControlled = checked !== void 0;
|
|
7095
|
-
const [internal, setInternal] =
|
|
6819
|
+
const [internal, setInternal] = React28.useState(defaultChecked);
|
|
7096
6820
|
const isOn = isControlled ? checked : internal;
|
|
7097
6821
|
const handle = (c) => {
|
|
7098
6822
|
if (!isControlled) setInternal(c);
|
|
@@ -7143,7 +6867,7 @@ function Switch({
|
|
|
7143
6867
|
}
|
|
7144
6868
|
);
|
|
7145
6869
|
}
|
|
7146
|
-
function
|
|
6870
|
+
function Tag({ children, onRemove, removeLabel, disabled }) {
|
|
7147
6871
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 rounded-md border border-border bg-surface-raised text-foreground text-xs pl-2 pr-1 py-0.5 max-w-full", children: [
|
|
7148
6872
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children }),
|
|
7149
6873
|
onRemove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7168,11 +6892,11 @@ function MultiTagRow({
|
|
|
7168
6892
|
labelFor,
|
|
7169
6893
|
onRemove
|
|
7170
6894
|
}) {
|
|
7171
|
-
const wrapRef =
|
|
7172
|
-
const measureRef =
|
|
7173
|
-
const [visibleCount, setVisibleCount] =
|
|
6895
|
+
const wrapRef = React28.useRef(null);
|
|
6896
|
+
const measureRef = React28.useRef(null);
|
|
6897
|
+
const [visibleCount, setVisibleCount] = React28.useState(values.length);
|
|
7174
6898
|
const key = values.map(String).join("|");
|
|
7175
|
-
|
|
6899
|
+
React28.useLayoutEffect(() => {
|
|
7176
6900
|
const wrap = wrapRef.current;
|
|
7177
6901
|
const measure = measureRef.current;
|
|
7178
6902
|
if (!wrap || !measure) return;
|
|
@@ -7227,14 +6951,14 @@ function MultiTagRow({
|
|
|
7227
6951
|
className: "absolute invisible pointer-events-none flex flex-nowrap items-center gap-1.5",
|
|
7228
6952
|
style: { left: -9999, top: -9999 },
|
|
7229
6953
|
children: [
|
|
7230
|
-
values.map((val) => /* @__PURE__ */ jsxRuntime.jsx("span", { "data-mt": true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6954
|
+
values.map((val) => /* @__PURE__ */ jsxRuntime.jsx("span", { "data-mt": true, children: /* @__PURE__ */ jsxRuntime.jsx(Tag, { removeLabel: "x", onRemove: () => {
|
|
7231
6955
|
}, children: labelFor(val) }) }, `m-${val}`)),
|
|
7232
6956
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "data-mm": true, children: moreChip(values.length) })
|
|
7233
6957
|
]
|
|
7234
6958
|
}
|
|
7235
6959
|
),
|
|
7236
6960
|
values.slice(0, visibleCount).map((val) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7237
|
-
|
|
6961
|
+
Tag,
|
|
7238
6962
|
{
|
|
7239
6963
|
disabled,
|
|
7240
6964
|
removeLabel: `Remove ${labelFor(val)}`,
|
|
@@ -7266,16 +6990,16 @@ function Dropdown({
|
|
|
7266
6990
|
size = "md",
|
|
7267
6991
|
className = ""
|
|
7268
6992
|
}) {
|
|
7269
|
-
const [open, setOpen] =
|
|
7270
|
-
const [selectedItems, setSelectedItems] =
|
|
7271
|
-
const [searchTerm, setSearchTerm] =
|
|
7272
|
-
const [innerItems, setInnerItems] =
|
|
7273
|
-
const errorId =
|
|
6993
|
+
const [open, setOpen] = React28.useState(false);
|
|
6994
|
+
const [selectedItems, setSelectedItems] = React28.useState([]);
|
|
6995
|
+
const [searchTerm, setSearchTerm] = React28.useState("");
|
|
6996
|
+
const [innerItems, setInnerItems] = React28.useState([]);
|
|
6997
|
+
const errorId = React28.useId();
|
|
7274
6998
|
const hasError = errorMessage != null;
|
|
7275
|
-
|
|
6999
|
+
React28.useEffect(() => {
|
|
7276
7000
|
setInnerItems(items);
|
|
7277
7001
|
}, [items]);
|
|
7278
|
-
|
|
7002
|
+
React28.useEffect(() => {
|
|
7279
7003
|
if (isMultiselect && Array.isArray(value)) {
|
|
7280
7004
|
setSelectedItems(value);
|
|
7281
7005
|
}
|
|
@@ -7359,7 +7083,7 @@ function Dropdown({
|
|
|
7359
7083
|
onRemove: removeSelected
|
|
7360
7084
|
}
|
|
7361
7085
|
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0 flex items-center overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7362
|
-
|
|
7086
|
+
Tag,
|
|
7363
7087
|
{
|
|
7364
7088
|
disabled,
|
|
7365
7089
|
removeLabel: `Remove ${labelFor(value)}`,
|
|
@@ -7467,19 +7191,19 @@ function AutoComplete({
|
|
|
7467
7191
|
required,
|
|
7468
7192
|
htmlFor
|
|
7469
7193
|
}) {
|
|
7470
|
-
const errorId =
|
|
7194
|
+
const errorId = React28.useId();
|
|
7471
7195
|
const hasError = errorMessage != null;
|
|
7472
|
-
const [term, setTerm] =
|
|
7473
|
-
const [open, setOpen] =
|
|
7474
|
-
const [asyncItems, setAsyncItems] =
|
|
7475
|
-
const [loading, setLoading] =
|
|
7196
|
+
const [term, setTerm] = React28.useState("");
|
|
7197
|
+
const [open, setOpen] = React28.useState(false);
|
|
7198
|
+
const [asyncItems, setAsyncItems] = React28.useState([]);
|
|
7199
|
+
const [loading, setLoading] = React28.useState(false);
|
|
7476
7200
|
const isAsync = typeof onSearch === "function";
|
|
7477
|
-
const debounceRef =
|
|
7478
|
-
const requestIdRef =
|
|
7201
|
+
const debounceRef = React28.useRef(null);
|
|
7202
|
+
const requestIdRef = React28.useRef(0);
|
|
7479
7203
|
const staticFiltered = isAsync || !items ? [] : term.trim() ? items.filter(
|
|
7480
7204
|
({ key, label: label2 }) => label2.toLowerCase().includes(term.toLowerCase()) || key.toLowerCase().includes(term.toLowerCase())
|
|
7481
7205
|
) : [];
|
|
7482
|
-
|
|
7206
|
+
React28.useEffect(() => {
|
|
7483
7207
|
if (!isAsync) return;
|
|
7484
7208
|
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
7485
7209
|
if (!term.trim()) {
|
|
@@ -7635,15 +7359,15 @@ function TreeSelect({
|
|
|
7635
7359
|
defaultExpandedKeys = [],
|
|
7636
7360
|
size = "md"
|
|
7637
7361
|
}) {
|
|
7638
|
-
const errorId =
|
|
7362
|
+
const errorId = React28.useId();
|
|
7639
7363
|
const hasError = errorMessage != null;
|
|
7640
|
-
const [open, setOpen] =
|
|
7641
|
-
const [expanded, setExpanded] =
|
|
7642
|
-
const [activeIndex, setActiveIndex] =
|
|
7643
|
-
const listRef =
|
|
7644
|
-
const visible =
|
|
7645
|
-
const didSyncOnOpenRef =
|
|
7646
|
-
|
|
7364
|
+
const [open, setOpen] = React28.useState(false);
|
|
7365
|
+
const [expanded, setExpanded] = React28.useState(() => new Set(defaultExpandedKeys));
|
|
7366
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
7367
|
+
const listRef = React28.useRef(null);
|
|
7368
|
+
const visible = React28.useMemo(() => flattenVisible(items, expanded), [items, expanded]);
|
|
7369
|
+
const didSyncOnOpenRef = React28.useRef(false);
|
|
7370
|
+
React28.useEffect(() => {
|
|
7647
7371
|
if (!open) {
|
|
7648
7372
|
didSyncOnOpenRef.current = false;
|
|
7649
7373
|
return;
|
|
@@ -7653,7 +7377,7 @@ function TreeSelect({
|
|
|
7653
7377
|
setActiveIndex(selectedIdx >= 0 ? selectedIdx : 0);
|
|
7654
7378
|
didSyncOnOpenRef.current = true;
|
|
7655
7379
|
}, [open, value]);
|
|
7656
|
-
const selectedNode =
|
|
7380
|
+
const selectedNode = React28.useMemo(
|
|
7657
7381
|
() => value != null ? findNodeByKey(items, value) : null,
|
|
7658
7382
|
[items, value]
|
|
7659
7383
|
);
|
|
@@ -7884,11 +7608,11 @@ function FileInput({
|
|
|
7884
7608
|
required,
|
|
7885
7609
|
icon
|
|
7886
7610
|
}) {
|
|
7887
|
-
const inputRef =
|
|
7888
|
-
const errorId =
|
|
7889
|
-
const [files, setFiles] =
|
|
7890
|
-
const [dragging, setDragging] =
|
|
7891
|
-
const [sizeError, setSizeError] =
|
|
7611
|
+
const inputRef = React28.useRef(null);
|
|
7612
|
+
const errorId = React28.useId();
|
|
7613
|
+
const [files, setFiles] = React28.useState([]);
|
|
7614
|
+
const [dragging, setDragging] = React28.useState(false);
|
|
7615
|
+
const [sizeError, setSizeError] = React28.useState(null);
|
|
7892
7616
|
const effectiveError = errorMessage ?? sizeError ?? void 0;
|
|
7893
7617
|
const openPicker = () => {
|
|
7894
7618
|
if (!disabled) inputRef.current?.click();
|
|
@@ -8079,30 +7803,30 @@ function DatePicker({
|
|
|
8079
7803
|
size = "md",
|
|
8080
7804
|
className = ""
|
|
8081
7805
|
}) {
|
|
8082
|
-
const errorId =
|
|
7806
|
+
const errorId = React28.useId();
|
|
8083
7807
|
const hasError = errorMessage != null;
|
|
8084
|
-
const [open, setOpen] =
|
|
8085
|
-
const [viewMonth, setViewMonth] =
|
|
8086
|
-
const [focusDate, setFocusDate] =
|
|
8087
|
-
const [view, setView] =
|
|
8088
|
-
const gridRef =
|
|
8089
|
-
|
|
7808
|
+
const [open, setOpen] = React28.useState(false);
|
|
7809
|
+
const [viewMonth, setViewMonth] = React28.useState(() => startOfMonth2(value ?? /* @__PURE__ */ new Date()));
|
|
7810
|
+
const [focusDate, setFocusDate] = React28.useState(() => value ?? /* @__PURE__ */ new Date());
|
|
7811
|
+
const [view, setView] = React28.useState("days");
|
|
7812
|
+
const gridRef = React28.useRef(null);
|
|
7813
|
+
React28.useEffect(() => {
|
|
8090
7814
|
if (!open) return;
|
|
8091
7815
|
const target = value ?? /* @__PURE__ */ new Date();
|
|
8092
7816
|
setViewMonth(startOfMonth2(target));
|
|
8093
7817
|
setFocusDate(target);
|
|
8094
7818
|
setView("days");
|
|
8095
7819
|
}, [open, value]);
|
|
8096
|
-
|
|
7820
|
+
React28.useEffect(() => {
|
|
8097
7821
|
if (!open) return;
|
|
8098
7822
|
const cell = gridRef.current?.querySelector(`[data-day="${defaultFormat3(focusDate)}"]`);
|
|
8099
7823
|
cell?.focus();
|
|
8100
7824
|
}, [open, focusDate]);
|
|
8101
|
-
const weekdays =
|
|
7825
|
+
const weekdays = React28.useMemo(() => {
|
|
8102
7826
|
const ordered = WEEKDAY_SHORT.slice(weekStartsOn).concat(WEEKDAY_SHORT.slice(0, weekStartsOn));
|
|
8103
7827
|
return ordered;
|
|
8104
7828
|
}, [weekStartsOn]);
|
|
8105
|
-
const grid =
|
|
7829
|
+
const grid = React28.useMemo(() => buildGrid(viewMonth, weekStartsOn), [viewMonth, weekStartsOn]);
|
|
8106
7830
|
const isDisabled = (d) => {
|
|
8107
7831
|
if (min && d < min) return true;
|
|
8108
7832
|
if (max && d > max) return true;
|
|
@@ -8211,7 +7935,7 @@ function DatePicker({
|
|
|
8211
7935
|
},
|
|
8212
7936
|
"aria-label": view === "days" ? "Previous month" : view === "months" ? "Previous year" : "Previous decade",
|
|
8213
7937
|
className: "w-7 h-7 inline-flex items-center justify-center rounded-md hover:bg-surface-raised focus:outline-none focus-visible:ring-2 focus-visible:ring-accent transition-colors",
|
|
8214
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7938
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeft, {})
|
|
8215
7939
|
}
|
|
8216
7940
|
),
|
|
8217
7941
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -8246,7 +7970,7 @@ function DatePicker({
|
|
|
8246
7970
|
},
|
|
8247
7971
|
"aria-label": view === "days" ? "Next month" : view === "months" ? "Next year" : "Next decade",
|
|
8248
7972
|
className: "w-7 h-7 inline-flex items-center justify-center rounded-md hover:bg-surface-raised focus:outline-none focus-visible:ring-2 focus-visible:ring-accent transition-colors",
|
|
8249
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7973
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRight2, {})
|
|
8250
7974
|
}
|
|
8251
7975
|
)
|
|
8252
7976
|
] }),
|
|
@@ -8361,10 +8085,10 @@ function CalendarIcon() {
|
|
|
8361
8085
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 9h18M8 3v4M16 3v4", strokeLinecap: "round" })
|
|
8362
8086
|
] });
|
|
8363
8087
|
}
|
|
8364
|
-
function
|
|
8088
|
+
function ChevronLeft() {
|
|
8365
8089
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15 19l-7-7 7-7" }) });
|
|
8366
8090
|
}
|
|
8367
|
-
function
|
|
8091
|
+
function ChevronRight2() {
|
|
8368
8092
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
|
|
8369
8093
|
}
|
|
8370
8094
|
var LINE_HEIGHT_PX = 21;
|
|
@@ -8392,10 +8116,10 @@ function TextArea({
|
|
|
8392
8116
|
style,
|
|
8393
8117
|
inputStyle
|
|
8394
8118
|
}) {
|
|
8395
|
-
const errorId =
|
|
8119
|
+
const errorId = React28.useId();
|
|
8396
8120
|
const hasError = errorMessage != null;
|
|
8397
|
-
const ref =
|
|
8398
|
-
|
|
8121
|
+
const ref = React28.useRef(null);
|
|
8122
|
+
React28.useLayoutEffect(() => {
|
|
8399
8123
|
if (!autoGrow) return;
|
|
8400
8124
|
const el = ref.current;
|
|
8401
8125
|
if (!el) return;
|
|
@@ -8467,14 +8191,14 @@ function Slider({
|
|
|
8467
8191
|
name,
|
|
8468
8192
|
htmlFor
|
|
8469
8193
|
}) {
|
|
8470
|
-
const errorId =
|
|
8194
|
+
const errorId = React28.useId();
|
|
8471
8195
|
const hasError = errorMessage != null;
|
|
8472
8196
|
const isRange = Array.isArray(value ?? defaultValue);
|
|
8473
|
-
const [internal, setInternal] =
|
|
8197
|
+
const [internal, setInternal] = React28.useState(
|
|
8474
8198
|
() => toArray(value) ?? toArray(defaultValue) ?? [min]
|
|
8475
8199
|
);
|
|
8476
8200
|
const current = toArray(value) ?? internal;
|
|
8477
|
-
const [dragging, setDragging] =
|
|
8201
|
+
const [dragging, setDragging] = React28.useState(false);
|
|
8478
8202
|
const emit = (arr) => {
|
|
8479
8203
|
setInternal(arr);
|
|
8480
8204
|
const next = isRange ? [arr[0], arr[1]] : arr[0];
|
|
@@ -8569,11 +8293,11 @@ function TagsInput({
|
|
|
8569
8293
|
validate,
|
|
8570
8294
|
separators = ["Enter", ","]
|
|
8571
8295
|
}) {
|
|
8572
|
-
const errorId =
|
|
8573
|
-
const inputRef =
|
|
8574
|
-
const [internal, setInternal] =
|
|
8575
|
-
const [draft, setDraft] =
|
|
8576
|
-
const [localError, setLocalError] =
|
|
8296
|
+
const errorId = React28.useId();
|
|
8297
|
+
const inputRef = React28.useRef(null);
|
|
8298
|
+
const [internal, setInternal] = React28.useState(defaultValue ?? []);
|
|
8299
|
+
const [draft, setDraft] = React28.useState("");
|
|
8300
|
+
const [localError, setLocalError] = React28.useState(null);
|
|
8577
8301
|
const tags = value ?? internal;
|
|
8578
8302
|
const hasError = errorMessage != null || localError != null;
|
|
8579
8303
|
const errorText = errorMessage ?? localError ?? void 0;
|
|
@@ -8641,7 +8365,7 @@ function TagsInput({
|
|
|
8641
8365
|
onClick: () => inputRef.current?.focus(),
|
|
8642
8366
|
children: [
|
|
8643
8367
|
tags.map((tag, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8644
|
-
|
|
8368
|
+
Tag,
|
|
8645
8369
|
{
|
|
8646
8370
|
disabled,
|
|
8647
8371
|
removeLabel: `Remove ${tag}`,
|
|
@@ -8704,9 +8428,9 @@ function OtpInput({
|
|
|
8704
8428
|
className,
|
|
8705
8429
|
groupAfter
|
|
8706
8430
|
}) {
|
|
8707
|
-
const errorId =
|
|
8431
|
+
const errorId = React28.useId();
|
|
8708
8432
|
const hasError = errorMessage != null;
|
|
8709
|
-
const refs =
|
|
8433
|
+
const refs = React28.useRef([]);
|
|
8710
8434
|
const chars = Array.from({ length }, (_, i) => value[i] ?? "");
|
|
8711
8435
|
const pattern = mode === "numeric" ? /[0-9]/ : /[a-zA-Z0-9]/;
|
|
8712
8436
|
const emit = (next) => {
|
|
@@ -8755,7 +8479,7 @@ function OtpInput({
|
|
|
8755
8479
|
emit(valid.join(""));
|
|
8756
8480
|
focusBox(valid.length);
|
|
8757
8481
|
};
|
|
8758
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8482
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxRuntime.jsxs(React28__default.default.Fragment, { children: [
|
|
8759
8483
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8760
8484
|
"input",
|
|
8761
8485
|
{
|
|
@@ -8793,7 +8517,7 @@ function OtpInput({
|
|
|
8793
8517
|
] }, idx)) }) });
|
|
8794
8518
|
}
|
|
8795
8519
|
var ICON_SIZE = { sm: "w-4 h-4", md: "w-5 h-5", lg: "w-7 h-7" };
|
|
8796
|
-
var
|
|
8520
|
+
var Star = (filled) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: filled ? "currentColor" : "none", stroke: "currentColor", strokeWidth: filled ? 0 : 1.5, className: "w-full h-full", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11.48 3.5a.56.56 0 011.04 0l2.13 4.77 5.18.5a.56.56 0 01.32.97l-3.9 3.46 1.15 5.1a.56.56 0 01-.83.6L12 16.8l-4.57 2.6a.56.56 0 01-.83-.6l1.15-5.1-3.9-3.46a.56.56 0 01.32-.97l5.18-.5L11.48 3.5z" }) });
|
|
8797
8521
|
function Rating({
|
|
8798
8522
|
value,
|
|
8799
8523
|
defaultValue = 0,
|
|
@@ -8805,7 +8529,7 @@ function Rating({
|
|
|
8805
8529
|
label,
|
|
8806
8530
|
size = "md",
|
|
8807
8531
|
disabled,
|
|
8808
|
-
icon =
|
|
8532
|
+
icon = Star,
|
|
8809
8533
|
errorMessage,
|
|
8810
8534
|
name,
|
|
8811
8535
|
layout = "vertical",
|
|
@@ -8813,9 +8537,9 @@ function Rating({
|
|
|
8813
8537
|
className,
|
|
8814
8538
|
required
|
|
8815
8539
|
}) {
|
|
8816
|
-
const errorId =
|
|
8817
|
-
const [internal, setInternal] =
|
|
8818
|
-
const [hover, setHover] =
|
|
8540
|
+
const errorId = React28.useId();
|
|
8541
|
+
const [internal, setInternal] = React28.useState(defaultValue);
|
|
8542
|
+
const [hover, setHover] = React28.useState(null);
|
|
8819
8543
|
const current = value ?? internal;
|
|
8820
8544
|
const display2 = hover ?? current;
|
|
8821
8545
|
const interactive = !readOnly && !disabled;
|
|
@@ -8938,9 +8662,9 @@ function TimePicker({
|
|
|
8938
8662
|
required,
|
|
8939
8663
|
style
|
|
8940
8664
|
}) {
|
|
8941
|
-
const errorId =
|
|
8665
|
+
const errorId = React28.useId();
|
|
8942
8666
|
const hasError = errorMessage != null;
|
|
8943
|
-
const [open, setOpen] =
|
|
8667
|
+
const [open, setOpen] = React28.useState(false);
|
|
8944
8668
|
const parsed = parse(value) ?? { h: 0, m: 0, s: 0 };
|
|
8945
8669
|
const update = (next) => {
|
|
8946
8670
|
const merged = { ...parsed, ...next };
|
|
@@ -9064,13 +8788,13 @@ function DateRangePicker({
|
|
|
9064
8788
|
required,
|
|
9065
8789
|
style
|
|
9066
8790
|
}) {
|
|
9067
|
-
const errorId =
|
|
8791
|
+
const errorId = React28.useId();
|
|
9068
8792
|
const hasError = errorMessage != null;
|
|
9069
|
-
const [open, setOpen] =
|
|
9070
|
-
const [leftMonth, setLeftMonth] =
|
|
9071
|
-
const [pendingStart, setPendingStart] =
|
|
9072
|
-
const [hoverDate, setHoverDate] =
|
|
9073
|
-
const weekdays =
|
|
8793
|
+
const [open, setOpen] = React28.useState(false);
|
|
8794
|
+
const [leftMonth, setLeftMonth] = React28.useState(() => startOfMonth3(value.start ?? /* @__PURE__ */ new Date()));
|
|
8795
|
+
const [pendingStart, setPendingStart] = React28.useState(null);
|
|
8796
|
+
const [hoverDate, setHoverDate] = React28.useState(null);
|
|
8797
|
+
const weekdays = React28.useMemo(
|
|
9074
8798
|
() => WEEKDAY.slice(weekStartsOn).concat(WEEKDAY.slice(0, weekStartsOn)),
|
|
9075
8799
|
[weekStartsOn]
|
|
9076
8800
|
);
|
|
@@ -9246,10 +8970,10 @@ function ColorPicker({
|
|
|
9246
8970
|
required,
|
|
9247
8971
|
placeholder = "Pick a colour\u2026"
|
|
9248
8972
|
}) {
|
|
9249
|
-
const errorId =
|
|
8973
|
+
const errorId = React28.useId();
|
|
9250
8974
|
const hasError = errorMessage != null;
|
|
9251
|
-
const [open, setOpen] =
|
|
9252
|
-
const [draft, setDraft] =
|
|
8975
|
+
const [open, setOpen] = React28.useState(false);
|
|
8976
|
+
const [draft, setDraft] = React28.useState(value);
|
|
9253
8977
|
const valid = HEX_RE.test(value);
|
|
9254
8978
|
const pick = (hex) => {
|
|
9255
8979
|
onChange?.(hex);
|
|
@@ -9336,7 +9060,7 @@ function ColorPicker({
|
|
|
9336
9060
|
}
|
|
9337
9061
|
var CUSTOM_EVENT = "oxy-local-storage";
|
|
9338
9062
|
function useLocalStorage(key, initialValue) {
|
|
9339
|
-
const read =
|
|
9063
|
+
const read = React28.useCallback(() => {
|
|
9340
9064
|
if (typeof window === "undefined") return initialValue;
|
|
9341
9065
|
try {
|
|
9342
9066
|
const item = window.localStorage.getItem(key);
|
|
@@ -9345,8 +9069,8 @@ function useLocalStorage(key, initialValue) {
|
|
|
9345
9069
|
return initialValue;
|
|
9346
9070
|
}
|
|
9347
9071
|
}, [key]);
|
|
9348
|
-
const [stored, setStored] =
|
|
9349
|
-
const setValue =
|
|
9072
|
+
const [stored, setStored] = React28.useState(read);
|
|
9073
|
+
const setValue = React28.useCallback((value) => {
|
|
9350
9074
|
setStored((prev) => {
|
|
9351
9075
|
const next = value instanceof Function ? value(prev) : value;
|
|
9352
9076
|
try {
|
|
@@ -9359,7 +9083,7 @@ function useLocalStorage(key, initialValue) {
|
|
|
9359
9083
|
return next;
|
|
9360
9084
|
});
|
|
9361
9085
|
}, [key]);
|
|
9362
|
-
const remove =
|
|
9086
|
+
const remove = React28.useCallback(() => {
|
|
9363
9087
|
try {
|
|
9364
9088
|
if (typeof window !== "undefined") {
|
|
9365
9089
|
window.localStorage.removeItem(key);
|
|
@@ -9369,10 +9093,10 @@ function useLocalStorage(key, initialValue) {
|
|
|
9369
9093
|
}
|
|
9370
9094
|
setStored(initialValue);
|
|
9371
9095
|
}, [key]);
|
|
9372
|
-
|
|
9096
|
+
React28.useEffect(() => {
|
|
9373
9097
|
setStored(read());
|
|
9374
9098
|
}, [key, read]);
|
|
9375
|
-
|
|
9099
|
+
React28.useEffect(() => {
|
|
9376
9100
|
if (typeof window === "undefined") return;
|
|
9377
9101
|
const onStorage = (e) => {
|
|
9378
9102
|
if (e.key === null || e.key === key) setStored(read());
|
|
@@ -9391,8 +9115,8 @@ function useLocalStorage(key, initialValue) {
|
|
|
9391
9115
|
}
|
|
9392
9116
|
function useMediaQuery(query) {
|
|
9393
9117
|
const get = () => typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia(query).matches : false;
|
|
9394
|
-
const [matches, setMatches] =
|
|
9395
|
-
|
|
9118
|
+
const [matches, setMatches] = React28.useState(get);
|
|
9119
|
+
React28.useEffect(() => {
|
|
9396
9120
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
|
|
9397
9121
|
const mql = window.matchMedia(query);
|
|
9398
9122
|
const onChange = () => setMatches(mql.matches);
|
|
@@ -9423,8 +9147,8 @@ function decodeSegment(seg) {
|
|
|
9423
9147
|
}
|
|
9424
9148
|
}
|
|
9425
9149
|
function useJwt(token) {
|
|
9426
|
-
const [, tick] =
|
|
9427
|
-
const decoded =
|
|
9150
|
+
const [, tick] = React28.useState(0);
|
|
9151
|
+
const decoded = React28.useMemo(() => {
|
|
9428
9152
|
if (!token) return { payload: null, header: null, exp: null };
|
|
9429
9153
|
const [h, p] = token.split(".");
|
|
9430
9154
|
const header = decodeSegment(h);
|
|
@@ -9432,7 +9156,7 @@ function useJwt(token) {
|
|
|
9432
9156
|
const exp = payload && typeof payload.exp === "number" ? payload.exp : null;
|
|
9433
9157
|
return { payload, header, exp };
|
|
9434
9158
|
}, [token]);
|
|
9435
|
-
|
|
9159
|
+
React28.useEffect(() => {
|
|
9436
9160
|
if (decoded.exp == null) return;
|
|
9437
9161
|
const ms = decoded.exp * 1e3 - Date.now();
|
|
9438
9162
|
if (ms <= 0) return;
|
|
@@ -9515,7 +9239,7 @@ function FeatureGrid({
|
|
|
9515
9239
|
] }, f.key ?? i)) })
|
|
9516
9240
|
] });
|
|
9517
9241
|
}
|
|
9518
|
-
var
|
|
9242
|
+
var Check3 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true", className: "mt-0.5 h-4 w-4 flex-shrink-0 text-accent", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M20 6 9 17l-5-5" }) });
|
|
9519
9243
|
function PricingPlans({ plans, eyebrow, title, description, className = "", style }) {
|
|
9520
9244
|
const hasHeader = eyebrow != null || title != null || description != null;
|
|
9521
9245
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: ["px-2", className].filter(Boolean).join(" "), style, children: [
|
|
@@ -9540,7 +9264,7 @@ function PricingPlans({ plans, eyebrow, title, description, className = "", styl
|
|
|
9540
9264
|
] }),
|
|
9541
9265
|
p.description != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-foreground-secondary", children: p.description }),
|
|
9542
9266
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-6 flex flex-1 flex-col gap-2.5", children: p.features.map((f, fi) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex gap-2 text-sm text-foreground-secondary", children: [
|
|
9543
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9267
|
+
/* @__PURE__ */ jsxRuntime.jsx(Check3, {}),
|
|
9544
9268
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: f })
|
|
9545
9269
|
] }, fi)) }),
|
|
9546
9270
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9606,13 +9330,13 @@ function SlideShow({
|
|
|
9606
9330
|
style
|
|
9607
9331
|
}) {
|
|
9608
9332
|
const reduced = framerMotion.useReducedMotion();
|
|
9609
|
-
const [index, setIndex] =
|
|
9610
|
-
const [paused, setPaused] =
|
|
9333
|
+
const [index, setIndex] = React28.useState(0);
|
|
9334
|
+
const [paused, setPaused] = React28.useState(false);
|
|
9611
9335
|
const count = slides.length;
|
|
9612
9336
|
const idx = count ? (index % count + count) % count : 0;
|
|
9613
|
-
const go =
|
|
9614
|
-
const timer =
|
|
9615
|
-
|
|
9337
|
+
const go = React28.useCallback((d) => setIndex((i) => i + d), []);
|
|
9338
|
+
const timer = React28.useRef(null);
|
|
9339
|
+
React28.useEffect(() => {
|
|
9616
9340
|
if (!autoPlay || paused || count <= 1) return;
|
|
9617
9341
|
timer.current = setInterval(() => setIndex((i) => i + 1), interval);
|
|
9618
9342
|
return () => {
|
|
@@ -9674,7 +9398,7 @@ function SlideShow({
|
|
|
9674
9398
|
);
|
|
9675
9399
|
}
|
|
9676
9400
|
var PlayGlyph = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", className: "h-7 w-7 translate-x-0.5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5v14l11-7z" }) });
|
|
9677
|
-
function
|
|
9401
|
+
function Video({
|
|
9678
9402
|
src,
|
|
9679
9403
|
embedUrl,
|
|
9680
9404
|
poster,
|
|
@@ -9688,7 +9412,7 @@ function Video2({
|
|
|
9688
9412
|
className = "",
|
|
9689
9413
|
style
|
|
9690
9414
|
}) {
|
|
9691
|
-
const [playing, setPlaying] =
|
|
9415
|
+
const [playing, setPlaying] = React28.useState(autoPlay);
|
|
9692
9416
|
const frame = ["relative w-full overflow-hidden bg-backdrop", framed ? "rounded-2xl border border-border shadow-sm" : "", className].filter(Boolean).join(" ");
|
|
9693
9417
|
const ratio = aspect.replace("/", " / ");
|
|
9694
9418
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: frame, style: { aspectRatio: ratio, ...style }, children: embedUrl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9743,7 +9467,7 @@ function Parallax({
|
|
|
9743
9467
|
style
|
|
9744
9468
|
}) {
|
|
9745
9469
|
const reduced = framerMotion.useReducedMotion();
|
|
9746
|
-
const ref =
|
|
9470
|
+
const ref = React28.useRef(null);
|
|
9747
9471
|
const { scrollYProgress } = framerMotion.useScroll({ target: ref, offset: ["start end", "end start"] });
|
|
9748
9472
|
const shift = Math.max(0, Math.min(1, speed)) * 100;
|
|
9749
9473
|
const y = framerMotion.useTransform(scrollYProgress, [0, 1], reduced ? ["0%", "0%"] : [`-${shift / 2}%`, `${shift / 2}%`]);
|
|
@@ -9811,7 +9535,7 @@ function Blog({
|
|
|
9811
9535
|
post.tag != null && !post.image && /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { tone: "accent", variant: "soft", size: "sm", children: post.tag }) }),
|
|
9812
9536
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold leading-snug text-foreground transition-colors group-hover:text-accent", children: post.title }),
|
|
9813
9537
|
post.excerpt != null && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-3 text-sm leading-relaxed text-foreground-secondary", children: post.excerpt }),
|
|
9814
|
-
meta.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto flex flex-wrap items-center gap-x-2 gap-y-1 pt-3 text-xs text-foreground-muted", children: meta.map((m, j) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9538
|
+
meta.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto flex flex-wrap items-center gap-x-2 gap-y-1 pt-3 text-xs text-foreground-muted", children: meta.map((m, j) => /* @__PURE__ */ jsxRuntime.jsxs(React28__default.default.Fragment, { children: [
|
|
9815
9539
|
j > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: "\xB7" }),
|
|
9816
9540
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: m })
|
|
9817
9541
|
] }, j)) })
|
|
@@ -9940,8 +9664,8 @@ function LeadCapture({
|
|
|
9940
9664
|
className = "",
|
|
9941
9665
|
style
|
|
9942
9666
|
}) {
|
|
9943
|
-
const [email, setEmail] =
|
|
9944
|
-
const [done, setDone] =
|
|
9667
|
+
const [email, setEmail] = React28.useState("");
|
|
9668
|
+
const [done, setDone] = React28.useState(false);
|
|
9945
9669
|
const submit = (e) => {
|
|
9946
9670
|
e.preventDefault();
|
|
9947
9671
|
const value = email.trim();
|
|
@@ -9984,6 +9708,14 @@ function LeadCapture({
|
|
|
9984
9708
|
);
|
|
9985
9709
|
}
|
|
9986
9710
|
|
|
9711
|
+
Object.defineProperty(exports, "Icon", {
|
|
9712
|
+
enumerable: true,
|
|
9713
|
+
get: function () { return chunk4V4U2W7K_cjs.icons_default; }
|
|
9714
|
+
});
|
|
9715
|
+
Object.defineProperty(exports, "createIcon", {
|
|
9716
|
+
enumerable: true,
|
|
9717
|
+
get: function () { return chunk4V4U2W7K_cjs.createIcon; }
|
|
9718
|
+
});
|
|
9987
9719
|
Object.defineProperty(exports, "COLORS", {
|
|
9988
9720
|
enumerable: true,
|
|
9989
9721
|
get: function () { return chunkOAV4TA4B_cjs.colors_default; }
|
|
@@ -10018,7 +9750,7 @@ exports.CartProvider = CartProvider;
|
|
|
10018
9750
|
exports.Catalog = Catalog;
|
|
10019
9751
|
exports.CatalogCarousel = CatalogCarousel;
|
|
10020
9752
|
exports.CatalogGrid = CatalogGrid;
|
|
10021
|
-
exports.Chat =
|
|
9753
|
+
exports.Chat = Chat;
|
|
10022
9754
|
exports.Checkbox = Checkbox;
|
|
10023
9755
|
exports.Checkout = Checkout;
|
|
10024
9756
|
exports.ColorPicker = ColorPicker;
|
|
@@ -10041,14 +9773,13 @@ exports.Form = Form;
|
|
|
10041
9773
|
exports.FormContext = FormContext;
|
|
10042
9774
|
exports.FormField = FormField;
|
|
10043
9775
|
exports.FormStore = FormStore;
|
|
10044
|
-
exports.Grid =
|
|
9776
|
+
exports.Grid = Grid;
|
|
10045
9777
|
exports.GridCard = GridCard;
|
|
10046
|
-
exports.Icon = icons_default;
|
|
10047
9778
|
exports.IconButton = IconButton;
|
|
10048
9779
|
exports.Jumbotron = Jumbotron;
|
|
10049
9780
|
exports.Kbd = Kbd;
|
|
10050
9781
|
exports.LeadCapture = LeadCapture;
|
|
10051
|
-
exports.List =
|
|
9782
|
+
exports.List = List2;
|
|
10052
9783
|
exports.LoadingSpinner = LoadingSpinner;
|
|
10053
9784
|
exports.LogoutTimer = LogoutTimer;
|
|
10054
9785
|
exports.MegaMenu = MegaMenu_default;
|
|
@@ -10081,7 +9812,7 @@ exports.Socials = Socials;
|
|
|
10081
9812
|
exports.Statistic = Statistic;
|
|
10082
9813
|
exports.Stepper = Stepper;
|
|
10083
9814
|
exports.Switch = Switch;
|
|
10084
|
-
exports.Table =
|
|
9815
|
+
exports.Table = Table;
|
|
10085
9816
|
exports.Tabs = Tabs_default;
|
|
10086
9817
|
exports.TagsInput = TagsInput;
|
|
10087
9818
|
exports.Temporal = DatePicker;
|
|
@@ -10098,10 +9829,9 @@ exports.TopBar = TopBar;
|
|
|
10098
9829
|
exports.Tree = Tree;
|
|
10099
9830
|
exports.TreeSelect = TreeSelect;
|
|
10100
9831
|
exports.Typography = Typography;
|
|
10101
|
-
exports.Video =
|
|
9832
|
+
exports.Video = Video;
|
|
10102
9833
|
exports.Wizard = Wizard;
|
|
10103
9834
|
exports.cardNumberError = cardNumberError;
|
|
10104
|
-
exports.createIcon = createIcon;
|
|
10105
9835
|
exports.cvvError = cvvError;
|
|
10106
9836
|
exports.detectBrand = detectBrand;
|
|
10107
9837
|
exports.expiryError = expiryError;
|