@xenide-io/the-old-ui-theme 0.6.14 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-VOCHIR3W.mjs → chunk-YB4TBWHV.mjs} +1423 -375
- package/dist/index.js +3 -1
- package/dist/index.mjs +43 -45
- package/dist/suite.d.mts +29 -3
- package/dist/suite.d.ts +29 -3
- package/dist/suite.js +1550 -325
- package/dist/suite.mjs +136 -44
- package/dist/ui.js +3 -1
- package/dist/ui.mjs +10 -12
- package/package.json +1 -1
- package/scripts/sync-posthog-icons.mjs +3 -4
- package/src/components/icons/icons.tsx +3 -1
- package/src/suite/components/app-switcher.test.tsx +96 -0
- package/src/suite/components/app-switcher.tsx +57 -39
- package/src/suite/components/suite-integration-picker.tsx +68 -0
- package/src/suite/components/suite-notification-bell.test.tsx +6 -5
- package/src/suite/components/suite-notification-bell.tsx +8 -6
- package/src/suite/index.ts +6 -0
- package/dist/chunk-E5ZBQYEX.mjs +0 -1073
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ButtonChrome,
|
|
3
|
-
DropdownMenu,
|
|
4
|
-
DropdownRadioGroup,
|
|
5
|
-
DropdownRadioItem,
|
|
6
|
-
IconArrowDown,
|
|
7
|
-
IconCancel,
|
|
8
|
-
IconCheck,
|
|
9
|
-
IconCheckCircle,
|
|
10
|
-
IconChevronDown,
|
|
11
|
-
IconChevronLeft,
|
|
12
|
-
IconChevronRight,
|
|
13
|
-
IconClose,
|
|
14
|
-
IconCodePreview,
|
|
15
|
-
IconExclamation,
|
|
16
|
-
IconInfo,
|
|
17
|
-
IconSearch,
|
|
18
|
-
IconTuning,
|
|
19
|
-
cn
|
|
20
|
-
} from "./chunk-E5ZBQYEX.mjs";
|
|
21
1
|
import {
|
|
22
2
|
__objRest,
|
|
23
3
|
__spreadProps,
|
|
@@ -26,7 +6,25 @@ import {
|
|
|
26
6
|
|
|
27
7
|
// src/components/ui/Button.tsx
|
|
28
8
|
import { forwardRef } from "react";
|
|
29
|
-
|
|
9
|
+
|
|
10
|
+
// src/components/ui/ButtonChrome.tsx
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
function ButtonChrome({ label, icon, sideIcon, split }) {
|
|
13
|
+
return /* @__PURE__ */ jsxs("span", { className: "ph-btn-chrome", children: [
|
|
14
|
+
icon != null ? /* @__PURE__ */ jsx("span", { className: "ph-btn-icon", children: icon }) : null,
|
|
15
|
+
label != null ? /* @__PURE__ */ jsx("span", { className: "ph-btn-label", children: label }) : null,
|
|
16
|
+
split ? /* @__PURE__ */ jsx("span", { className: "ph-btn-split-divider", "aria-hidden": true }) : null,
|
|
17
|
+
sideIcon != null ? /* @__PURE__ */ jsx("span", { className: "ph-btn-side-icon", children: sideIcon }) : null
|
|
18
|
+
] });
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/lib/cn.ts
|
|
22
|
+
function cn(...parts) {
|
|
23
|
+
return parts.filter(Boolean).join(" ");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// src/components/ui/Button.tsx
|
|
27
|
+
import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
30
28
|
var variantClass = {
|
|
31
29
|
primary: "ph-btn-primary",
|
|
32
30
|
secondary: "ph-btn-secondary",
|
|
@@ -85,14 +83,14 @@ var Button = forwardRef(function Button2(_a, ref) {
|
|
|
85
83
|
]);
|
|
86
84
|
const usesLemonChrome = !["tertiary", "ghost", "link"].includes(variant);
|
|
87
85
|
const label = loadingLabel != null ? loadingLabel : children;
|
|
88
|
-
const leadingIcon = loading ? /* @__PURE__ */
|
|
89
|
-
const content = usesLemonChrome ? /* @__PURE__ */
|
|
90
|
-
leadingIcon != null ? /* @__PURE__ */
|
|
91
|
-
label != null ? /* @__PURE__ */
|
|
92
|
-
split ? /* @__PURE__ */
|
|
93
|
-
sideIcon != null ? /* @__PURE__ */
|
|
86
|
+
const leadingIcon = loading ? /* @__PURE__ */ jsx2("span", { className: "ph-btn-spinner", "aria-hidden": true }) : icon;
|
|
87
|
+
const content = usesLemonChrome ? /* @__PURE__ */ jsx2(ButtonChrome, { label, icon: leadingIcon, sideIcon, split }) : /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
88
|
+
leadingIcon != null ? /* @__PURE__ */ jsx2("span", { className: "ph-btn-icon", children: leadingIcon }) : null,
|
|
89
|
+
label != null ? /* @__PURE__ */ jsx2("span", { className: "ph-btn-label", children: label }) : null,
|
|
90
|
+
split ? /* @__PURE__ */ jsx2("span", { className: "ph-btn-split-divider", "aria-hidden": true }) : null,
|
|
91
|
+
sideIcon != null ? /* @__PURE__ */ jsx2("span", { className: "ph-btn-side-icon", children: sideIcon }) : null
|
|
94
92
|
] });
|
|
95
|
-
return /* @__PURE__ */
|
|
93
|
+
return /* @__PURE__ */ jsx2(
|
|
96
94
|
"button",
|
|
97
95
|
__spreadProps(__spreadValues({
|
|
98
96
|
ref,
|
|
@@ -117,8 +115,549 @@ var Button = forwardRef(function Button2(_a, ref) {
|
|
|
117
115
|
Button.displayName = "Button";
|
|
118
116
|
|
|
119
117
|
// src/components/ui/Alert.tsx
|
|
118
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
119
|
+
|
|
120
|
+
// src/components/icons/IconBase.tsx
|
|
120
121
|
import { forwardRef as forwardRef2 } from "react";
|
|
121
|
-
import { jsx as
|
|
122
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
123
|
+
var IconBase = forwardRef2(function IconBase2(_a, ref) {
|
|
124
|
+
var _b = _a, {
|
|
125
|
+
className,
|
|
126
|
+
size,
|
|
127
|
+
children,
|
|
128
|
+
viewBox = "0 0 24 24",
|
|
129
|
+
fill: fill2 = "none",
|
|
130
|
+
xmlns = "http://www.w3.org/2000/svg",
|
|
131
|
+
focusable = "false",
|
|
132
|
+
style,
|
|
133
|
+
role,
|
|
134
|
+
"aria-hidden": ariaHidden,
|
|
135
|
+
"aria-label": ariaLabel,
|
|
136
|
+
"aria-labelledby": ariaLabelledBy
|
|
137
|
+
} = _b, props = __objRest(_b, [
|
|
138
|
+
"className",
|
|
139
|
+
"size",
|
|
140
|
+
"children",
|
|
141
|
+
"viewBox",
|
|
142
|
+
"fill",
|
|
143
|
+
"xmlns",
|
|
144
|
+
"focusable",
|
|
145
|
+
"style",
|
|
146
|
+
"role",
|
|
147
|
+
"aria-hidden",
|
|
148
|
+
"aria-label",
|
|
149
|
+
"aria-labelledby"
|
|
150
|
+
]);
|
|
151
|
+
const hasAccessibleName = Boolean(ariaLabel || ariaLabelledBy);
|
|
152
|
+
return /* @__PURE__ */ jsx3(
|
|
153
|
+
"svg",
|
|
154
|
+
__spreadProps(__spreadValues({
|
|
155
|
+
ref,
|
|
156
|
+
className: cn("ph-icon", className),
|
|
157
|
+
viewBox,
|
|
158
|
+
fill: fill2,
|
|
159
|
+
xmlns,
|
|
160
|
+
focusable,
|
|
161
|
+
role: role != null ? role : hasAccessibleName ? "img" : void 0,
|
|
162
|
+
"aria-hidden": ariaHidden != null ? ariaHidden : hasAccessibleName ? void 0 : true,
|
|
163
|
+
"aria-label": ariaLabel,
|
|
164
|
+
"aria-labelledby": ariaLabelledBy,
|
|
165
|
+
style: __spreadValues({ width: size, height: size }, style)
|
|
166
|
+
}, props), {
|
|
167
|
+
children
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
});
|
|
171
|
+
IconBase.displayName = "IconBase";
|
|
172
|
+
|
|
173
|
+
// src/components/icons/createIconBase.tsx
|
|
174
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
175
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
176
|
+
function createIconBase({ name = "IconGlyph", viewBox = "0 0 24 24", paths }) {
|
|
177
|
+
const IconGlyph = forwardRef3(function IconGlyph2(props, ref) {
|
|
178
|
+
return /* @__PURE__ */ jsx4(IconBase, __spreadProps(__spreadValues({ ref, viewBox }, props), { children: paths }));
|
|
179
|
+
});
|
|
180
|
+
IconGlyph.displayName = name;
|
|
181
|
+
return IconGlyph;
|
|
182
|
+
}
|
|
183
|
+
function createIconBasePath(d, viewBox = "0 0 24 24", name) {
|
|
184
|
+
return createIconBase({
|
|
185
|
+
name,
|
|
186
|
+
viewBox,
|
|
187
|
+
paths: /* @__PURE__ */ jsx4("path", { d, fill: "currentColor" })
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// src/components/icons/icons.tsx
|
|
192
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
193
|
+
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
194
|
+
var fill = (d) => /* @__PURE__ */ jsx5("path", { d, fill: "currentColor" });
|
|
195
|
+
var IconAreaChart = createIconBase({
|
|
196
|
+
paths: fill("M3 20V7l4 3 5-7 5 4h4v13Zm5-3 4-5.5 7 5.45V9h-2.7l-3.9-3.125-4.95 6.95L5 11v3.6Z")
|
|
197
|
+
});
|
|
198
|
+
var IconCumulativeChart = createIconBase({
|
|
199
|
+
paths: fill(
|
|
200
|
+
"M20.8805 7.97408C15.0614 18.7809 6.51281 19.5979 2.71265 18.4578L3.28734 16.5422C6.15384 17.4021 13.7386 17.0191 19.1195 7.02588L20.8805 7.97408Z"
|
|
201
|
+
)
|
|
202
|
+
});
|
|
203
|
+
var IconTableChart = createIconBase({
|
|
204
|
+
paths: fill(
|
|
205
|
+
"M20 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v3H5V5h15zm-5 14h-5v-9h5v9zM5 10h3v9H5v-9zm12 9v-9h3v9h-3z"
|
|
206
|
+
)
|
|
207
|
+
});
|
|
208
|
+
var IconHandClick = createIconBase({
|
|
209
|
+
viewBox: "0 0 18 18",
|
|
210
|
+
paths: fill(
|
|
211
|
+
"M14.9942 7.90164C14.9942 7.82992 14.9583 7.46993 14.6342 7.10993C14.2925 6.71407 13.7524 6.49822 13.05 6.44407C12.9783 6.33579 12.8883 6.22822 12.7442 6.11993C12.3483 5.81407 11.7359 5.65164 10.9442 5.63407C10.8724 5.54407 10.7459 5.43578 10.6024 5.32822C10.2425 5.0765 9.79245 4.93236 9.23416 4.87822V3.41993C9.23416 3.27579 9.25244 2.66407 8.83831 2.23164C8.65831 2.03335 8.31659 1.79993 7.74002 1.79993C7.14587 1.79993 6.80416 2.03407 6.60587 2.23164C6.22759 2.64578 6.22759 3.18578 6.22759 3.31164V8.46C5.88587 8.1 5.50759 7.70414 5.29173 7.56C4.84173 7.21829 3.99587 7.39828 3.51002 7.75829C3.04173 8.1 2.88002 8.62243 3.06002 9.12658C3.38416 10.0266 4.19416 10.9266 4.39173 11.1424C4.57173 11.4841 5.38173 12.9782 6.10173 13.5182C6.48002 13.8065 6.76759 14.9941 6.84002 15.7499L6.87588 16.1457H13.6801V14.364C13.7701 14.1123 13.9859 13.5723 14.2201 13.3199C14.7783 12.7616 14.9583 11.3582 14.9583 10.9257V7.91986L14.9942 7.90164ZM14.1117 10.89C14.1117 11.4117 13.8959 12.4017 13.6259 12.6717C13.1576 13.14 12.87 14.04 12.8517 14.13L12.8335 14.1841V15.2283H7.68583C7.64997 15.03 7.61411 14.7783 7.54169 14.5083C7.32583 13.6441 7.03754 13.0866 6.65998 12.7983C6.13826 12.4024 5.39998 11.1241 5.16583 10.6566L5.09411 10.5484C5.09411 10.5301 4.2124 9.63008 3.90582 8.80251C3.86996 8.69423 3.86996 8.60422 3.99582 8.47836C4.22997 8.26251 4.67997 8.20836 4.78754 8.24422C5.05754 8.46008 5.88582 9.34251 6.35339 9.86422L7.12754 10.7284L7.12824 3.29418V3.25762C7.12824 3.1859 7.14652 2.95176 7.27238 2.82591C7.36238 2.71763 7.52409 2.66419 7.75824 2.66419C7.95652 2.66419 8.09995 2.71833 8.20824 2.80833C8.35238 2.97005 8.36996 3.25833 8.36996 3.36662V8.02826H9.25167V5.7599C10.0617 5.8499 10.2958 6.19161 10.3317 6.24575L10.3675 6.33575V8.02747H11.2492V6.53332C12.0051 6.60504 12.2934 6.83918 12.3651 6.94747V8.65747H13.2468V7.34332C14.021 7.4516 14.1468 7.86504 14.1651 7.95504L14.1658 10.8899L14.1117 10.89Z"
|
|
212
|
+
)
|
|
213
|
+
});
|
|
214
|
+
var IconSurveys = createIconBase({
|
|
215
|
+
paths: fill(
|
|
216
|
+
"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17l-.59.59-.58.58V4h16v12zm-9.5-2H18v-2h-5.5zm3.86-5.87c.2-.2.2-.51 0-.71l-1.77-1.77c-.2-.2-.51-.2-.71 0L6 11.53V14h2.47l5.89-5.87z"
|
|
217
|
+
)
|
|
218
|
+
});
|
|
219
|
+
var IconCohort = createIconBase({
|
|
220
|
+
paths: fill(
|
|
221
|
+
"m4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58-.74.32-1.22 1.04-1.22 1.85v1.57h4.5v-1.61c0-.83.23-1.61.63-2.29zm14.87-1.1c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85-.85-.37-1.79-.58-2.78-.58-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29v1.61h4.5zm-7.76-2.78c-1.17-.52-2.61-.9-4.24-.9s-3.07.39-4.24.9c-1.08.48-1.76 1.56-1.76 2.74v1.61h12v-1.61c0-1.18-.68-2.26-1.76-2.74zm-8.17 2.35c.09-.23.13-.39.91-.69.97-.38 1.99-.56 3.02-.56s2.05.18 3.02.56c.77.3.81.46.91.69zm3.93-8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"
|
|
222
|
+
)
|
|
223
|
+
});
|
|
224
|
+
var IconRecording = createIconBase({
|
|
225
|
+
paths: fill(
|
|
226
|
+
"m10 8v8l5-4zm9-5h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-14v-14h14z"
|
|
227
|
+
)
|
|
228
|
+
});
|
|
229
|
+
var IconFlare = createIconBase({
|
|
230
|
+
paths: fill(
|
|
231
|
+
"m7 11h-6v2h6zm2.17-3.24-2.12-2.12-1.41 1.41 2.12 2.12zm3.83-6.76h-2v6h2zm5.36 6.05-1.41-1.41-2.12 2.12 1.41 1.41zm-1.36 3.95v2h6v-2zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24 2.12 2.12 1.41-1.41-2.12-2.12zm-9.19.71 1.41 1.41 2.12-2.12-1.41-1.41zm5.36 6.05h2v-6h-2z"
|
|
232
|
+
)
|
|
233
|
+
});
|
|
234
|
+
var IconSelectEvents = createIconBase({
|
|
235
|
+
paths: /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
236
|
+
fill("M17.5 9L16.56 6.94L14.5 6L16.56 5.06L17.5 3L18.44 5.06L20.5 6L18.44 6.94L17.5 9Z"),
|
|
237
|
+
fill("M6 12.5L6.94 14.56L9 15.5L6.94 16.44L6 18.5L5.06 16.44L3 15.5L5.06 14.56L6 12.5Z"),
|
|
238
|
+
fill("M6 9L5.06 6.94L3 6L5.06 5.06L6 3L6.94 5.06L9 6L6.94 6.94L6 9Z"),
|
|
239
|
+
fill("M16.23 14.26L20 13L10 10L13 20L14.26 16.23L18.53 20.5L20.51 18.52L16.23 14.26Z")
|
|
240
|
+
] })
|
|
241
|
+
});
|
|
242
|
+
var IconClipboardEdit = createIconBase({
|
|
243
|
+
paths: fill(
|
|
244
|
+
"M21.04 12.13C21.18 12.13 21.31 12.19 21.42 12.3L22.7 13.58C22.92 13.79 22.92 14.14 22.7 14.35L21.7 15.35L19.65 13.3L20.65 12.3C20.76 12.19 20.9 12.13 21.04 12.13M19.07 13.88L21.12 15.93L15.06 22H13V19.94L19.07 13.88M11 19L9 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H9.18C9.6 1.84 10.7 1 12 1C13.3 1 14.4 1.84 14.82 3H19C20.1 3 21 3.9 21 5V9L19 11V5H17V7H7V5H5V19H11M12 3C11.45 3 11 3.45 11 4C11 4.55 11.45 5 12 5C12.55 5 13 4.55 13 4C13 3.45 12.55 3 12 3Z"
|
|
245
|
+
)
|
|
246
|
+
});
|
|
247
|
+
var IconQueryEditor = createIconBase({
|
|
248
|
+
paths: fill(
|
|
249
|
+
"M4,14V17C4,19 7.05,20.72 11,21V18.11L11.13,18C7.12,17.76 4,16.06 4,14M12,13C7.58,13 4,11.21 4,9V12C4,14.21 7.58,16 12,16C12.39,16 12.77,16 13.16,16L17,12.12C15.4,12.72 13.71,13 12,13M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M21,11.13C20.85,11.13 20.71,11.19 20.61,11.3L19.61,12.3L21.66,14.3L22.66,13.3C22.87,13.1 22.88,12.76 22.66,12.53L21.42,11.3C21.32,11.19 21.18,11.13 21.04,11.13M19.04,12.88L13,18.94V21H15.06L21.12,14.93L19.04,12.88Z"
|
|
250
|
+
)
|
|
251
|
+
});
|
|
252
|
+
var IconTuning = createIconBase({
|
|
253
|
+
paths: fill(
|
|
254
|
+
"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"
|
|
255
|
+
)
|
|
256
|
+
});
|
|
257
|
+
var IconSync = createIconBase({
|
|
258
|
+
paths: fill(
|
|
259
|
+
"m12.5 4v-3l-4 4 4 4v-3c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46c.78-1.23 1.24-2.69 1.24-4.26 0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8l-1.46-1.46c-.78 1.23-1.24 2.69-1.24 4.26 0 4.42 3.58 8 8 8v3l4-4-4-4z"
|
|
260
|
+
)
|
|
261
|
+
});
|
|
262
|
+
var IconPlayCircle = createIconBase({
|
|
263
|
+
paths: fill(
|
|
264
|
+
"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM9.5 16.5L16.5 12L9.5 7.5V16.5Z"
|
|
265
|
+
)
|
|
266
|
+
});
|
|
267
|
+
var IconGridView = createIconBase({
|
|
268
|
+
paths: fill(
|
|
269
|
+
"M3,3v8h8V3H3z M9,9H5V5h4V9z M3,13v8h8v-8H3z M9,19H5v-4h4V19z M13,3v8h8V3H13z M19,9h-4V5h4V9z M13,13v8h8v-8H13z M19,19h-4v-4h4V19z"
|
|
270
|
+
)
|
|
271
|
+
});
|
|
272
|
+
var IconListView = createIconBase({
|
|
273
|
+
paths: fill(
|
|
274
|
+
"M3,5v14h18V5H3z M7,7v2H5V7H7z M5,13v-2h2v2H5z M5,15h2v2H5V15z M19,17H9v-2h10V17z M19,13H9v-2h10V13z M19,9H9V7h10V9z"
|
|
275
|
+
)
|
|
276
|
+
});
|
|
277
|
+
var IconPremium = createIconBase({
|
|
278
|
+
paths: fill(
|
|
279
|
+
"m9.68 13.69 2.32-1.76 2.31 1.76-.88-2.85 2.32-1.84h-2.84l-.91-2.81-.91 2.81h-2.84l2.31 1.84zm10.32-3.69c0-4.42-3.58-8-8-8s-8 3.58-8 8c0 2.03.76 3.87 2 5.28v7.72l6-2 6 2v-7.72c1.24-1.41 2-3.25 2-5.28zm-8-6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6zm0 15-4 1.02v-3.1c1.18.68 2.54 1.08 4 1.08s2.82-.4 4-1.08v3.1z"
|
|
280
|
+
)
|
|
281
|
+
});
|
|
282
|
+
var IconGift = createIconBase({
|
|
283
|
+
paths: fill(
|
|
284
|
+
"M14.4495 4.55495C15.264 4.31223 15.8631 4.48426 16.1 4.80007C16.4013 5.20182 16.4765 5.57305 16.4336 5.91424C16.3888 6.27088 16.2084 6.63998 15.9211 7.00139C15.3397 7.73275 14.4193 8.30877 13.8244 8.53186C13.598 8.61674 13.4648 8.85138 13.508 9.08924C13.5511 9.32709 13.7582 9.50002 13.9999 9.50002L19.4999 9.50002V12.5H17.9999C17.7237 12.5 17.4999 12.7239 17.4999 13V20.5H6.49988V14.5C6.49988 14.2239 6.27602 14 5.99988 14C5.72374 14 5.49988 14.2239 5.49988 14.5V21C5.49988 21.2762 5.72374 21.5 5.99988 21.5H17.9999C18.276 21.5 18.4999 21.2762 18.4999 21V13.5H19.9999C20.276 13.5 20.4999 13.2762 20.4999 13V9.00002C20.4999 8.86741 20.4472 8.74023 20.3534 8.64646C20.2597 8.5527 20.1325 8.50002 19.9999 8.50002L15.8202 8.50002C16.1407 8.24235 16.4465 7.94742 16.7039 7.62365C17.0625 7.17257 17.3508 6.63541 17.4258 6.03894C17.5027 5.42702 17.3487 4.79826 16.8999 4.20003C16.2882 3.3845 15.1373 3.30652 14.1639 3.5966C13.3806 3.83005 12.5842 4.3279 12.0008 5.07014C11.4285 4.33982 10.6586 3.86464 9.88727 3.64427C8.91382 3.36616 7.82238 3.47045 7.14633 4.14645C6.65753 4.63523 6.41235 5.18234 6.41347 5.75925C6.41457 6.32144 6.64952 6.84016 6.97799 7.28883C7.30058 7.72946 7.7389 8.13769 8.22434 8.50002L3.99988 8.50002C3.86727 8.50002 3.74009 8.5527 3.64632 8.64646C3.55256 8.74023 3.49988 8.86741 3.49988 9.00002V13C3.49988 13.2762 3.72374 13.5 3.99988 13.5H15.4999C15.776 13.5 15.9999 13.2762 15.9999 13C15.9999 12.7239 15.776 12.5 15.4999 12.5H4.49988V9.50002L9.99995 9.50002C10.2318 9.50002 10.4333 9.34058 10.4866 9.1149C10.5398 8.88921 10.431 8.65651 10.2236 8.55281C9.25206 8.06706 8.29723 7.39797 7.78487 6.69811C7.53216 6.35292 7.41402 6.03722 7.41347 5.7573C7.41295 5.49209 7.51758 5.1894 7.85342 4.85358C8.17738 4.52964 8.83597 4.38393 9.61256 4.6058C10.3657 4.82096 11.1212 5.36045 11.5528 6.22359C11.6375 6.39298 11.8106 6.49997 12 6.49997C12.1894 6.49997 12.3625 6.39297 12.4472 6.22358C12.8783 5.36141 13.672 4.78667 14.4495 4.55495Z"
|
|
285
|
+
)
|
|
286
|
+
});
|
|
287
|
+
var IconRobot = createIconBase({
|
|
288
|
+
paths: fill(
|
|
289
|
+
"M17.5 15.5C17.5 16.61 16.61 17.5 15.5 17.5S13.5 16.61 13.5 15.5 14.4 13.5 15.5 13.5 17.5 14.4 17.5 15.5M8.5 13.5C7.4 13.5 6.5 14.4 6.5 15.5S7.4 17.5 8.5 17.5 10.5 16.61 10.5 15.5 9.61 13.5 8.5 13.5M23 15V18C23 18.55 22.55 19 22 19H21V20C21 21.11 20.11 22 19 22H5C3.9 22 3 21.11 3 20V19H2C1.45 19 1 18.55 1 18V15C1 14.45 1.45 14 2 14H3C3 10.13 6.13 7 10 7H11V5.73C10.4 5.39 10 4.74 10 4C10 2.9 10.9 2 12 2S14 2.9 14 4C14 4.74 13.6 5.39 13 5.73V7H14C17.87 7 21 10.13 21 14H22C22.55 14 23 14.45 23 15M21 16H19V14C19 11.24 16.76 9 14 9H10C7.24 9 5 11.24 5 14V16H3V17H5V20H19V17H21V16Z"
|
|
290
|
+
)
|
|
291
|
+
});
|
|
292
|
+
var IconExclamation = createIconBase({
|
|
293
|
+
paths: /* @__PURE__ */ jsxs3("g", { fill: "currentColor", children: [
|
|
294
|
+
/* @__PURE__ */ jsx5("path", { d: "m12 21c1.1046 0 2-.8954 2-2s-.8954-2-2-2-2 .8954-2 2 .8954 2 2 2z" }),
|
|
295
|
+
/* @__PURE__ */ jsx5("path", { d: "m10 3h4v12h-4z" })
|
|
296
|
+
] })
|
|
297
|
+
});
|
|
298
|
+
var IconErrorOutline = createIconBase({
|
|
299
|
+
paths: fill(
|
|
300
|
+
"m11 15h2v2h-2zm0-8h2v6h-2zm.99-5c-5.52 0-9.99 4.48-9.99 10s4.47 10 9.99 10c5.53 0 10.01-4.48 10.01-10s-4.48-10-10.01-10zm.01 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
|
|
301
|
+
)
|
|
302
|
+
});
|
|
303
|
+
var IconInfo = createIconBase({
|
|
304
|
+
name: "IconInfo",
|
|
305
|
+
paths: fill(
|
|
306
|
+
"M11 10h2v7h-2v-7zm0-3h2v2h-2V7zm1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
|
|
307
|
+
)
|
|
308
|
+
});
|
|
309
|
+
var IconCancel = createIconBase({
|
|
310
|
+
paths: fill(
|
|
311
|
+
"m12 2c-5.53 0-10 4.47-10 10s4.47 10 10 10 10-4.47 10-10-4.47-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13-3.59 3.59-3.59-3.59-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59z"
|
|
312
|
+
)
|
|
313
|
+
});
|
|
314
|
+
var IconCheckCircle = createIconBase({
|
|
315
|
+
paths: fill(
|
|
316
|
+
"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
|
|
317
|
+
)
|
|
318
|
+
});
|
|
319
|
+
var IconArrowUp = createIconBase({
|
|
320
|
+
paths: fill("M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z")
|
|
321
|
+
});
|
|
322
|
+
var IconArrowDown = createIconBase({
|
|
323
|
+
paths: fill("M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z")
|
|
324
|
+
});
|
|
325
|
+
var IconChevronLeft = createIconBasePath("M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z");
|
|
326
|
+
var IconChevronRight = createIconBasePath("M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z");
|
|
327
|
+
var IconChevronDown = createIconBasePath("M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z");
|
|
328
|
+
var IconSubArrowRight = createIconBase({
|
|
329
|
+
paths: /* @__PURE__ */ jsx5("g", { transform: "translate(4 5.5)", children: fill("M2 0H0V10H12.01V13L16 9L12.01 5V8H2V0Z") })
|
|
330
|
+
});
|
|
331
|
+
var IconSearch = createIconBasePath(
|
|
332
|
+
"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"
|
|
333
|
+
);
|
|
334
|
+
var IconBell = createIconBasePath(
|
|
335
|
+
"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2m6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1z"
|
|
336
|
+
);
|
|
337
|
+
var IconBellOff = createIconBasePath(
|
|
338
|
+
"M20 18.69 7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2m6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01z"
|
|
339
|
+
);
|
|
340
|
+
var IconPerson = createIconBasePath(
|
|
341
|
+
"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"
|
|
342
|
+
);
|
|
343
|
+
var IconHome = createIconBasePath("M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z");
|
|
344
|
+
var IconPanelRight = createIconBasePath(
|
|
345
|
+
"M3 5v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2zm12 4h-5v10h5V9zm-7 0H5v10h3V9z"
|
|
346
|
+
);
|
|
347
|
+
var IconPlus = createIconBasePath("M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z");
|
|
348
|
+
var IconCheck = createIconBasePath("M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z");
|
|
349
|
+
var IconClose = createIconBasePath("M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z");
|
|
350
|
+
var IconTrash = createIconBasePath("M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z");
|
|
351
|
+
var IconDownload = createIconBasePath("M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z");
|
|
352
|
+
var IconUpload = createIconBasePath("M9 16h6v-6h4l-7-7-7 7h4v6zm-4 2h14v2H5v-2z");
|
|
353
|
+
var IconSave = createIconBasePath(
|
|
354
|
+
"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"
|
|
355
|
+
);
|
|
356
|
+
var IconCopy = createIconBasePath(
|
|
357
|
+
"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
358
|
+
);
|
|
359
|
+
var IconEdit = createIconBasePath(
|
|
360
|
+
"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"
|
|
361
|
+
);
|
|
362
|
+
var IconLogout = createIconBasePath(
|
|
363
|
+
"M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.59L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z"
|
|
364
|
+
);
|
|
365
|
+
var IconStar = createIconBasePath(
|
|
366
|
+
"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"
|
|
367
|
+
);
|
|
368
|
+
var IconMail = createIconBasePath(
|
|
369
|
+
"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"
|
|
370
|
+
);
|
|
371
|
+
var IconShoppingCart = createIconBasePath(
|
|
372
|
+
"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"
|
|
373
|
+
);
|
|
374
|
+
var IconMoon = createIconBasePath(
|
|
375
|
+
"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1z"
|
|
376
|
+
);
|
|
377
|
+
var IconSun = createIconBasePath(
|
|
378
|
+
"M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"
|
|
379
|
+
);
|
|
380
|
+
var IconVolume = createIconBasePath(
|
|
381
|
+
"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"
|
|
382
|
+
);
|
|
383
|
+
var IconVolumeOff = createIconBasePath(
|
|
384
|
+
"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"
|
|
385
|
+
);
|
|
386
|
+
var IconFlag = createIconBasePath("M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6z");
|
|
387
|
+
var IconDatabase = createIconBasePath(
|
|
388
|
+
"M12 3C7.58 3 4 4.79 4 7s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4zM4 9v3c0 2.21 3.58 4 8 4s8-1.79 8-4V9c0 2.21-3.58 4-8 4s-8-1.79-8-4zm0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4z"
|
|
389
|
+
);
|
|
390
|
+
var IconLayers = createIconBasePath("M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z");
|
|
391
|
+
var IconBox = createIconBasePath(
|
|
392
|
+
"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"
|
|
393
|
+
);
|
|
394
|
+
var IconBolt = createIconBasePath(
|
|
395
|
+
"M11 21h-1l1-7H7.5c-.58 0-.57-.32-.38-.66-.19-.34-.04-.12-.07-.12C8.48 10.94 10.42 7.54 11 7V3h1v4c.58 0 .57.32.38.66-.19-.34-.04-.12-.07-.12-.95 2.28-2.96 5.66-3.31 6.22H13l-1 7h-1z"
|
|
396
|
+
);
|
|
397
|
+
var IconRadar = createIconBasePath(
|
|
398
|
+
"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z"
|
|
399
|
+
);
|
|
400
|
+
var IconToggle = createIconBasePath(
|
|
401
|
+
"M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8H7c-1.66 0-3-1.34-3-3s1.34-3 3-3h10c1.66 0 3 1.34 3 3s-1.34 3-3 3zM7 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
|
|
402
|
+
);
|
|
403
|
+
var IconRocket = createIconBasePath(
|
|
404
|
+
"M9.19 6.35c-2.04 2.29-3.44 5.58-3.57 5.89L2 10.69l4.05-4.05c.47-.47 1.15-.68 1.81-.55l1.33 1.26zm5.45 8.67l-1.33-1.26c-.66-.13-1.34.08-1.81.55L2 18.31l3.62 3.57c.31-.13 3.6-1.53 5.89-3.57 1.53-1.72 2.52-3.76 2.87-5.02zM12 2c-1.1 0-2 .9-2 2v1.09c2.84.48 5 2.94 5 5.91 0 2.97-2.16 5.43-5 5.91V20c0 1.1.9 2 2 2s2-.9 2-2v-1.09c-2.84-.48-5-2.94-5-5.91 0-2.97 2.16-5.43 5-5.91V4c0-1.1-.9-2-2-2z"
|
|
405
|
+
);
|
|
406
|
+
var IconTerminal = createIconBase({
|
|
407
|
+
name: "IconTerminal",
|
|
408
|
+
paths: /* @__PURE__ */ jsx5(
|
|
409
|
+
"path",
|
|
410
|
+
{
|
|
411
|
+
d: "M3 4v16h18V4H3zm2 2h14v12H5V6zm2 2.2L10.8 12 7 15.8 8.4 17.2l5.2-5.2-5.2-5.2L7 8.2zM13 17h5v-2h-5v2z",
|
|
412
|
+
fill: "currentColor",
|
|
413
|
+
fillRule: "evenodd",
|
|
414
|
+
clipRule: "evenodd"
|
|
415
|
+
}
|
|
416
|
+
)
|
|
417
|
+
});
|
|
418
|
+
var IconOldWindow = createIconBase({
|
|
419
|
+
name: "IconOldWindow",
|
|
420
|
+
paths: /* @__PURE__ */ jsx5(
|
|
421
|
+
"path",
|
|
422
|
+
{
|
|
423
|
+
d: "M3 3v18h18V3H3zm2 7v9h14v-9H5zm1-4h2v1H6V6zm3 0h2v1H9V6z",
|
|
424
|
+
fill: "currentColor",
|
|
425
|
+
fillRule: "evenodd",
|
|
426
|
+
clipRule: "evenodd"
|
|
427
|
+
}
|
|
428
|
+
)
|
|
429
|
+
});
|
|
430
|
+
var IconCommandCursor = createIconBase({
|
|
431
|
+
name: "IconCommandCursor",
|
|
432
|
+
paths: /* @__PURE__ */ jsx5(
|
|
433
|
+
"path",
|
|
434
|
+
{
|
|
435
|
+
d: "M4 3v18h16V3H4zm2 2h12v14H6V5zm1.5 3.5L11 12l-3.5 3.5L9 17l5-5-5-5-1.5 1.5zM13 17h4v-2h-4v2z",
|
|
436
|
+
fill: "currentColor",
|
|
437
|
+
fillRule: "evenodd",
|
|
438
|
+
clipRule: "evenodd"
|
|
439
|
+
}
|
|
440
|
+
)
|
|
441
|
+
});
|
|
442
|
+
var IconDataReel = createIconBase({
|
|
443
|
+
name: "IconDataReel",
|
|
444
|
+
paths: /* @__PURE__ */ jsx5(
|
|
445
|
+
"path",
|
|
446
|
+
{
|
|
447
|
+
d: "M3 5v14h18V5H3zm2 2h14v10H5V7zm3 1a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm8 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6zM10 11h4v1.5h-4V11z",
|
|
448
|
+
fill: "currentColor",
|
|
449
|
+
fillRule: "evenodd",
|
|
450
|
+
clipRule: "evenodd"
|
|
451
|
+
}
|
|
452
|
+
)
|
|
453
|
+
});
|
|
454
|
+
var IconCodePreview = createIconBase({
|
|
455
|
+
name: "IconCodePreview",
|
|
456
|
+
paths: /* @__PURE__ */ jsx5(
|
|
457
|
+
"path",
|
|
458
|
+
{
|
|
459
|
+
d: "M3 3v15h18V3H3zm2 2h14v11H5V5zm3.5 2L5 10.5 8.5 14l1.4-1.4-2.1-2.1 2.1-2.1L8.5 7zm7 0-1.4 1.4 2.1 2.1-2.1 2.1 1.4 1.4 3.5-3.5L15.5 7zM9 20h6v2H9v-2z",
|
|
460
|
+
fill: "currentColor",
|
|
461
|
+
fillRule: "evenodd",
|
|
462
|
+
clipRule: "evenodd"
|
|
463
|
+
}
|
|
464
|
+
)
|
|
465
|
+
});
|
|
466
|
+
var IconInsightBoard = createIconBase({
|
|
467
|
+
name: "IconInsightBoard",
|
|
468
|
+
paths: /* @__PURE__ */ jsx5(
|
|
469
|
+
"path",
|
|
470
|
+
{
|
|
471
|
+
d: "M3 3v18h18V3H3zm2 2h14v3H5V5zm0 5h6v9H5v-9zm8 0h6v4h-6v-4zm0 6h6v3h-6v-3zM6 6h2v1H6V6zm3 0h2v1H9V6z",
|
|
472
|
+
fill: "currentColor",
|
|
473
|
+
fillRule: "evenodd",
|
|
474
|
+
clipRule: "evenodd"
|
|
475
|
+
}
|
|
476
|
+
)
|
|
477
|
+
});
|
|
478
|
+
var IconEventStream = createIconBase({
|
|
479
|
+
name: "IconEventStream",
|
|
480
|
+
paths: /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
481
|
+
/* @__PURE__ */ jsx5("path", { d: "M5 4h2v16H5V4z", fill: "currentColor", opacity: "0.45" }),
|
|
482
|
+
fill("M6 3a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0 8a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm5-6h10v2H11V5zm0 8h7v2h-7v-2zm0 5h10v2H11v-2z")
|
|
483
|
+
] })
|
|
484
|
+
});
|
|
485
|
+
var IconFeatureGate = createIconBase({
|
|
486
|
+
name: "IconFeatureGate",
|
|
487
|
+
paths: /* @__PURE__ */ jsx5(
|
|
488
|
+
"path",
|
|
489
|
+
{
|
|
490
|
+
d: "M4 3h2v18H4V3zm3 2h12l-3 4 3 4H7V5zm4 1-2.2 4H12l-1 4 4.2-5H12l1-3h-2z",
|
|
491
|
+
fill: "currentColor",
|
|
492
|
+
fillRule: "evenodd",
|
|
493
|
+
clipRule: "evenodd"
|
|
494
|
+
}
|
|
495
|
+
)
|
|
496
|
+
});
|
|
497
|
+
var IconReplayFrame = createIconBase({
|
|
498
|
+
name: "IconReplayFrame",
|
|
499
|
+
paths: /* @__PURE__ */ jsx5(
|
|
500
|
+
"path",
|
|
501
|
+
{
|
|
502
|
+
d: "M3 3v18h18V3H3zm2 2h14v11H5V5zm5 2v7l6-3.5L10 7zm-5 11h9v1H5v-1zm11 0h3v1h-3v-1z",
|
|
503
|
+
fill: "currentColor",
|
|
504
|
+
fillRule: "evenodd",
|
|
505
|
+
clipRule: "evenodd"
|
|
506
|
+
}
|
|
507
|
+
)
|
|
508
|
+
});
|
|
509
|
+
var IconQueryStack = createIconBase({
|
|
510
|
+
name: "IconQueryStack",
|
|
511
|
+
paths: fill(
|
|
512
|
+
"M4 5c0-1.66 3.58-3 8-3s8 1.34 8 3-3.58 3-8 3-8-1.34-8-3zm0 3v3c0 1.66 3.58 3 8 3 .7 0 1.38-.04 2-.12V11.8c-.64.13-1.31.2-2 .2-4.42 0-8-1.34-8-3zm0 6v3c0 1.66 3.58 3 8 3 .7 0 1.38-.04 2-.12v-2.08c-.64.13-1.31.2-2 .2-4.42 0-8-1.34-8-3zm12-1 5 4-5 4v-3h-4v-2h4v-3z"
|
|
513
|
+
)
|
|
514
|
+
});
|
|
515
|
+
var IconExperimentSplit = createIconBase({
|
|
516
|
+
name: "IconExperimentSplit",
|
|
517
|
+
paths: fill(
|
|
518
|
+
"M5 3a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm14 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6zM5 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm1-6h2c0 2.2 1.8 4 4 4h2.17A3 3 0 0 1 19 11v2a3 3 0 0 1-4.83-2H12a6 6 0 0 1-6-6v4zm0 4a6 6 0 0 0 6-6h2a8 8 0 0 1-8 8v-2z"
|
|
519
|
+
)
|
|
520
|
+
});
|
|
521
|
+
var IconSurveyCard = createIconBase({
|
|
522
|
+
name: "IconSurveyCard",
|
|
523
|
+
paths: /* @__PURE__ */ jsx5(
|
|
524
|
+
"path",
|
|
525
|
+
{
|
|
526
|
+
d: "M3 3v18h18V3H3zm2 2h14v14H5V5zm2 2h7v2H7V7zm0 4h4v2H7v-2zm7-.4-2.5 2.5-1-1-1.4 1.4 2.4 2.4 3.9-3.9-1.4-1.4zM7 16h10v1H7v-1z",
|
|
527
|
+
fill: "currentColor",
|
|
528
|
+
fillRule: "evenodd",
|
|
529
|
+
clipRule: "evenodd"
|
|
530
|
+
}
|
|
531
|
+
)
|
|
532
|
+
});
|
|
533
|
+
var OLD_UI_ICONS = {
|
|
534
|
+
oldWindow: IconOldWindow,
|
|
535
|
+
commandCursor: IconCommandCursor,
|
|
536
|
+
dataReel: IconDataReel,
|
|
537
|
+
codePreview: IconCodePreview,
|
|
538
|
+
insightBoard: IconInsightBoard,
|
|
539
|
+
eventStream: IconEventStream,
|
|
540
|
+
featureGate: IconFeatureGate,
|
|
541
|
+
replayFrame: IconReplayFrame,
|
|
542
|
+
queryStack: IconQueryStack,
|
|
543
|
+
experimentSplit: IconExperimentSplit,
|
|
544
|
+
surveyCard: IconSurveyCard
|
|
545
|
+
};
|
|
546
|
+
var IconActivity = createIconBasePath(
|
|
547
|
+
"M22 12h-4l-3 9L9 3l-3 9H2v2h6.76l2.24-6.72L15 15l2.24-6.72L19 14h3v-2z"
|
|
548
|
+
);
|
|
549
|
+
var IconFlask = createIconBasePath(
|
|
550
|
+
"M19.8 18.4L14 10.67V6.5l1.35-1.35c.39-.39.39-1.02 0-1.41L14.65 2.7a.9959.9959 0 0 0-1.41 0L9.35 6.54c-.39.39-.39 1.02 0 1.41L10.7 9.3v4.17L4.2 18.4C3.53 19.07 4.04 20.25 5 20.25h14c.96 0 1.47-1.18.8-1.85zM6.91 18.25l5.09-5.09 5.09 5.09H6.91z"
|
|
551
|
+
);
|
|
552
|
+
var IconSpinner = forwardRef4(function IconSpinner2(_a, ref) {
|
|
553
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
554
|
+
return /* @__PURE__ */ jsx5(IconSync, __spreadValues({ ref, className: cn("ph-icon-spin", className) }, props));
|
|
555
|
+
});
|
|
556
|
+
IconSpinner.displayName = "IconSpinner";
|
|
557
|
+
var CANONICAL_ICONS = {
|
|
558
|
+
activity: IconActivity,
|
|
559
|
+
areaChart: IconAreaChart,
|
|
560
|
+
arrowDown: IconArrowDown,
|
|
561
|
+
arrowUp: IconArrowUp,
|
|
562
|
+
bell: IconBell,
|
|
563
|
+
bellOff: IconBellOff,
|
|
564
|
+
bolt: IconBolt,
|
|
565
|
+
box: IconBox,
|
|
566
|
+
cancel: IconCancel,
|
|
567
|
+
check: IconCheck,
|
|
568
|
+
checkCircle: IconCheckCircle,
|
|
569
|
+
chevronDown: IconChevronDown,
|
|
570
|
+
chevronLeft: IconChevronLeft,
|
|
571
|
+
chevronRight: IconChevronRight,
|
|
572
|
+
clipboardEdit: IconClipboardEdit,
|
|
573
|
+
close: IconClose,
|
|
574
|
+
codePreview: IconCodePreview,
|
|
575
|
+
cohort: IconCohort,
|
|
576
|
+
commandCursor: IconCommandCursor,
|
|
577
|
+
copy: IconCopy,
|
|
578
|
+
cumulativeChart: IconCumulativeChart,
|
|
579
|
+
dataReel: IconDataReel,
|
|
580
|
+
database: IconDatabase,
|
|
581
|
+
download: IconDownload,
|
|
582
|
+
edit: IconEdit,
|
|
583
|
+
errorOutline: IconErrorOutline,
|
|
584
|
+
eventStream: IconEventStream,
|
|
585
|
+
exclamation: IconExclamation,
|
|
586
|
+
experimentSplit: IconExperimentSplit,
|
|
587
|
+
featureGate: IconFeatureGate,
|
|
588
|
+
flag: IconFlag,
|
|
589
|
+
flare: IconFlare,
|
|
590
|
+
flask: IconFlask,
|
|
591
|
+
gift: IconGift,
|
|
592
|
+
gridView: IconGridView,
|
|
593
|
+
handClick: IconHandClick,
|
|
594
|
+
home: IconHome,
|
|
595
|
+
info: IconInfo,
|
|
596
|
+
insightBoard: IconInsightBoard,
|
|
597
|
+
layers: IconLayers,
|
|
598
|
+
listView: IconListView,
|
|
599
|
+
logout: IconLogout,
|
|
600
|
+
mail: IconMail,
|
|
601
|
+
moon: IconMoon,
|
|
602
|
+
oldWindow: IconOldWindow,
|
|
603
|
+
panelRight: IconPanelRight,
|
|
604
|
+
person: IconPerson,
|
|
605
|
+
playCircle: IconPlayCircle,
|
|
606
|
+
plus: IconPlus,
|
|
607
|
+
premium: IconPremium,
|
|
608
|
+
queryEditor: IconQueryEditor,
|
|
609
|
+
queryStack: IconQueryStack,
|
|
610
|
+
radar: IconRadar,
|
|
611
|
+
recording: IconRecording,
|
|
612
|
+
replayFrame: IconReplayFrame,
|
|
613
|
+
robot: IconRobot,
|
|
614
|
+
rocket: IconRocket,
|
|
615
|
+
save: IconSave,
|
|
616
|
+
search: IconSearch,
|
|
617
|
+
selectEvents: IconSelectEvents,
|
|
618
|
+
shoppingCart: IconShoppingCart,
|
|
619
|
+
spinner: IconSpinner,
|
|
620
|
+
star: IconStar,
|
|
621
|
+
subArrowRight: IconSubArrowRight,
|
|
622
|
+
sun: IconSun,
|
|
623
|
+
surveyCard: IconSurveyCard,
|
|
624
|
+
surveys: IconSurveys,
|
|
625
|
+
sync: IconSync,
|
|
626
|
+
tableChart: IconTableChart,
|
|
627
|
+
terminal: IconTerminal,
|
|
628
|
+
toggle: IconToggle,
|
|
629
|
+
trash: IconTrash,
|
|
630
|
+
tuning: IconTuning,
|
|
631
|
+
upload: IconUpload,
|
|
632
|
+
volume: IconVolume,
|
|
633
|
+
volumeOff: IconVolumeOff
|
|
634
|
+
};
|
|
635
|
+
var PH_ICON_ALIASES = {
|
|
636
|
+
clipboard: IconClipboardEdit,
|
|
637
|
+
grid: IconGridView,
|
|
638
|
+
list: IconListView,
|
|
639
|
+
play: IconPlayCircle,
|
|
640
|
+
settings: IconTuning,
|
|
641
|
+
trendingUp: IconArrowUp,
|
|
642
|
+
warning: IconExclamation,
|
|
643
|
+
xCircle: IconCancel
|
|
644
|
+
};
|
|
645
|
+
var PH_ICONS = __spreadValues(__spreadValues({}, CANONICAL_ICONS), PH_ICON_ALIASES);
|
|
646
|
+
for (const [name, Icon] of Object.entries(CANONICAL_ICONS)) {
|
|
647
|
+
const namedIcon = Icon;
|
|
648
|
+
if (!namedIcon.displayName || namedIcon.displayName === "IconGlyph") {
|
|
649
|
+
namedIcon.displayName = `Icon${name[0].toUpperCase()}${name.slice(1)}`;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
var IconByName = forwardRef4(function IconByName2(_a, ref) {
|
|
653
|
+
var _b = _a, { name } = _b, props = __objRest(_b, ["name"]);
|
|
654
|
+
const Icon = PH_ICONS[name];
|
|
655
|
+
return /* @__PURE__ */ jsx5(Icon, __spreadValues({ ref }, props));
|
|
656
|
+
});
|
|
657
|
+
IconByName.displayName = "IconByName";
|
|
658
|
+
|
|
659
|
+
// src/components/ui/Alert.tsx
|
|
660
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
122
661
|
var statusConfig = {
|
|
123
662
|
info: { icon: IconInfo },
|
|
124
663
|
success: { icon: IconCheckCircle },
|
|
@@ -131,7 +670,7 @@ var statusClassMap = {
|
|
|
131
670
|
warning: "ph-alert-warning",
|
|
132
671
|
danger: "ph-alert-danger"
|
|
133
672
|
};
|
|
134
|
-
var Alert =
|
|
673
|
+
var Alert = forwardRef5(function Alert2(_a, ref) {
|
|
135
674
|
var _b = _a, {
|
|
136
675
|
status = "info",
|
|
137
676
|
title,
|
|
@@ -157,7 +696,7 @@ var Alert = forwardRef2(function Alert2(_a, ref) {
|
|
|
157
696
|
]);
|
|
158
697
|
const config = statusConfig[status];
|
|
159
698
|
const Icon = config.icon;
|
|
160
|
-
return /* @__PURE__ */
|
|
699
|
+
return /* @__PURE__ */ jsxs4(
|
|
161
700
|
"div",
|
|
162
701
|
__spreadProps(__spreadValues({
|
|
163
702
|
ref,
|
|
@@ -166,20 +705,20 @@ var Alert = forwardRef2(function Alert2(_a, ref) {
|
|
|
166
705
|
className: cn("ph-alert", statusClassMap[status], className)
|
|
167
706
|
}, props), {
|
|
168
707
|
children: [
|
|
169
|
-
icon != null ? icon : /* @__PURE__ */
|
|
170
|
-
/* @__PURE__ */
|
|
171
|
-
title && /* @__PURE__ */
|
|
172
|
-
description && /* @__PURE__ */
|
|
708
|
+
icon != null ? icon : /* @__PURE__ */ jsx6(Icon, { className: "ph-alert-icon mt-0.5 h-5 w-5 shrink-0", "aria-hidden": true }),
|
|
709
|
+
/* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
|
|
710
|
+
title && /* @__PURE__ */ jsx6("p", { className: "font-semibold", children: title }),
|
|
711
|
+
description && /* @__PURE__ */ jsx6("p", { className: "mt-1 text-sm text-ph-subtle", children: description }),
|
|
173
712
|
children
|
|
174
713
|
] }),
|
|
175
|
-
onDismiss && /* @__PURE__ */
|
|
714
|
+
onDismiss && /* @__PURE__ */ jsx6(
|
|
176
715
|
"button",
|
|
177
716
|
{
|
|
178
717
|
type: "button",
|
|
179
718
|
onClick: onDismiss,
|
|
180
719
|
className: "ph-alert-dismiss",
|
|
181
720
|
"aria-label": dismissLabel,
|
|
182
|
-
children: /* @__PURE__ */
|
|
721
|
+
children: /* @__PURE__ */ jsx6(IconClose, { className: "h-4 w-4", "aria-hidden": true })
|
|
183
722
|
}
|
|
184
723
|
)
|
|
185
724
|
]
|
|
@@ -189,8 +728,8 @@ var Alert = forwardRef2(function Alert2(_a, ref) {
|
|
|
189
728
|
Alert.displayName = "Alert";
|
|
190
729
|
|
|
191
730
|
// src/components/ui/Badge.tsx
|
|
192
|
-
import { forwardRef as
|
|
193
|
-
import { jsx as
|
|
731
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
732
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
194
733
|
var variantMap = {
|
|
195
734
|
brand: "ph-badge-brand",
|
|
196
735
|
neutral: "ph-badge-neutral",
|
|
@@ -204,7 +743,7 @@ var sizeMap = {
|
|
|
204
743
|
sm: "text-[10px] px-1.5 py-0.5",
|
|
205
744
|
md: ""
|
|
206
745
|
};
|
|
207
|
-
var Badge =
|
|
746
|
+
var Badge = forwardRef6(function Badge2(_a, ref) {
|
|
208
747
|
var _b = _a, {
|
|
209
748
|
variant = "neutral",
|
|
210
749
|
size = "md",
|
|
@@ -216,7 +755,7 @@ var Badge = forwardRef3(function Badge2(_a, ref) {
|
|
|
216
755
|
"children",
|
|
217
756
|
"className"
|
|
218
757
|
]);
|
|
219
|
-
return /* @__PURE__ */
|
|
758
|
+
return /* @__PURE__ */ jsx7(
|
|
220
759
|
"span",
|
|
221
760
|
__spreadProps(__spreadValues({
|
|
222
761
|
ref,
|
|
@@ -234,15 +773,15 @@ var Badge = forwardRef3(function Badge2(_a, ref) {
|
|
|
234
773
|
Badge.displayName = "Badge";
|
|
235
774
|
|
|
236
775
|
// src/components/ui/Card.tsx
|
|
237
|
-
import { forwardRef as
|
|
238
|
-
import { jsx as
|
|
776
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
777
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
239
778
|
var variantMap2 = {
|
|
240
779
|
default: "",
|
|
241
780
|
outlined: "border-2 border-ph-border",
|
|
242
781
|
elevated: "ph-card-elevated",
|
|
243
782
|
highlighted: "ph-card-highlighted"
|
|
244
783
|
};
|
|
245
|
-
var Card =
|
|
784
|
+
var Card = forwardRef7(function Card2(_a, ref) {
|
|
246
785
|
var _b = _a, {
|
|
247
786
|
children,
|
|
248
787
|
title,
|
|
@@ -268,7 +807,7 @@ var Card = forwardRef4(function Card2(_a, ref) {
|
|
|
268
807
|
"interactive",
|
|
269
808
|
"titleAs"
|
|
270
809
|
]);
|
|
271
|
-
return /* @__PURE__ */
|
|
810
|
+
return /* @__PURE__ */ jsxs5(
|
|
272
811
|
"div",
|
|
273
812
|
__spreadProps(__spreadValues({
|
|
274
813
|
ref,
|
|
@@ -280,14 +819,14 @@ var Card = forwardRef4(function Card2(_a, ref) {
|
|
|
280
819
|
)
|
|
281
820
|
}, props), {
|
|
282
821
|
children: [
|
|
283
|
-
media && /* @__PURE__ */
|
|
284
|
-
/* @__PURE__ */
|
|
285
|
-
title && /* @__PURE__ */
|
|
286
|
-
description && /* @__PURE__ */
|
|
822
|
+
media && /* @__PURE__ */ jsx8("div", { className: "ph-card-media", children: media }),
|
|
823
|
+
/* @__PURE__ */ jsxs5("div", { className: cn("ph-card-body", bodyClassName), children: [
|
|
824
|
+
title && /* @__PURE__ */ jsx8(Title2, { className: "ph-card-title", children: title }),
|
|
825
|
+
description && /* @__PURE__ */ jsx8("p", { className: "text-sm text-ph-subtle", children: description }),
|
|
287
826
|
children,
|
|
288
|
-
actions && /* @__PURE__ */
|
|
827
|
+
actions && /* @__PURE__ */ jsx8("div", { className: "ph-card-actions", children: actions })
|
|
289
828
|
] }),
|
|
290
|
-
footer && /* @__PURE__ */
|
|
829
|
+
footer && /* @__PURE__ */ jsx8("div", { className: "border-t border-ph-border px-6 py-4 text-xs text-ph-subtle", children: footer })
|
|
291
830
|
]
|
|
292
831
|
})
|
|
293
832
|
);
|
|
@@ -295,7 +834,7 @@ var Card = forwardRef4(function Card2(_a, ref) {
|
|
|
295
834
|
Card.displayName = "Card";
|
|
296
835
|
|
|
297
836
|
// src/components/ui/Kbd.tsx
|
|
298
|
-
import { jsx as
|
|
837
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
299
838
|
var platformLabels = {
|
|
300
839
|
text: {
|
|
301
840
|
command: "Command",
|
|
@@ -354,17 +893,17 @@ function Kbd(_a) {
|
|
|
354
893
|
"aria-label"
|
|
355
894
|
]);
|
|
356
895
|
if (variant === "token") {
|
|
357
|
-
return /* @__PURE__ */
|
|
896
|
+
return /* @__PURE__ */ jsx9("code", __spreadProps(__spreadValues({ className: cn("ph-code-token ph-kbd", className), "aria-label": ariaLabel }, props), { children }));
|
|
358
897
|
}
|
|
359
898
|
const sourceKeys = (keys == null ? void 0 : keys.length) ? keys : children != null ? [children] : [];
|
|
360
899
|
const displayKeys = sourceKeys.map((key) => formatKey(key, platform));
|
|
361
900
|
const accessibleLabel = ariaLabel != null ? ariaLabel : getShortcutLabel(displayKeys);
|
|
362
901
|
if (variant === "key") {
|
|
363
|
-
return /* @__PURE__ */
|
|
902
|
+
return /* @__PURE__ */ jsx9("kbd", __spreadProps(__spreadValues({ className: cn("ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys[0] }));
|
|
364
903
|
}
|
|
365
|
-
return /* @__PURE__ */
|
|
366
|
-
index > 0 && separator != null ? /* @__PURE__ */
|
|
367
|
-
/* @__PURE__ */
|
|
904
|
+
return /* @__PURE__ */ jsx9("kbd", __spreadProps(__spreadValues({ className: cn("ph-shortcut-group ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys.map((key, index) => /* @__PURE__ */ jsxs6("span", { className: "contents", children: [
|
|
905
|
+
index > 0 && separator != null ? /* @__PURE__ */ jsx9("span", { className: "ph-shortcut-separator", "aria-hidden": "true", children: separator }) : null,
|
|
906
|
+
/* @__PURE__ */ jsx9("span", { className: "ph-shortcut-key", "aria-hidden": accessibleLabel ? true : void 0, children: key })
|
|
368
907
|
] }, index)) }));
|
|
369
908
|
}
|
|
370
909
|
function formatKey(key, platform) {
|
|
@@ -383,7 +922,7 @@ function getShortcutLabel(keys) {
|
|
|
383
922
|
}
|
|
384
923
|
|
|
385
924
|
// src/components/ui/Loader.tsx
|
|
386
|
-
import { jsx as
|
|
925
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
387
926
|
var loaderSizeClass = {
|
|
388
927
|
sm: "ph-loader-sm",
|
|
389
928
|
md: "ph-loader-md",
|
|
@@ -409,7 +948,7 @@ function Loader(_a) {
|
|
|
409
948
|
"label",
|
|
410
949
|
"className"
|
|
411
950
|
]);
|
|
412
|
-
return /* @__PURE__ */
|
|
951
|
+
return /* @__PURE__ */ jsxs7(
|
|
413
952
|
"span",
|
|
414
953
|
__spreadProps(__spreadValues({
|
|
415
954
|
role: "status",
|
|
@@ -417,20 +956,20 @@ function Loader(_a) {
|
|
|
417
956
|
className: cn("ph-loader", loaderSizeClass[size], className)
|
|
418
957
|
}, props), {
|
|
419
958
|
children: [
|
|
420
|
-
variant === "spinner" ? /* @__PURE__ */
|
|
421
|
-
variant === "dots" ? /* @__PURE__ */
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
/* @__PURE__ */
|
|
424
|
-
/* @__PURE__ */
|
|
959
|
+
variant === "spinner" ? /* @__PURE__ */ jsx10("span", { className: "ph-loading", "aria-hidden": true }) : null,
|
|
960
|
+
variant === "dots" ? /* @__PURE__ */ jsxs7("span", { className: "ph-loading-dots", "aria-hidden": true, children: [
|
|
961
|
+
/* @__PURE__ */ jsx10("span", {}),
|
|
962
|
+
/* @__PURE__ */ jsx10("span", {}),
|
|
963
|
+
/* @__PURE__ */ jsx10("span", {})
|
|
425
964
|
] }) : null,
|
|
426
|
-
variant === "pulse" ? /* @__PURE__ */
|
|
965
|
+
variant === "pulse" ? /* @__PURE__ */ jsx10("span", { className: "ph-loading-pulse", "aria-hidden": true }) : null
|
|
427
966
|
]
|
|
428
967
|
})
|
|
429
968
|
);
|
|
430
969
|
}
|
|
431
970
|
function Skeleton(_a) {
|
|
432
971
|
var _b = _a, { shape = "text", className } = _b, props = __objRest(_b, ["shape", "className"]);
|
|
433
|
-
return /* @__PURE__ */
|
|
972
|
+
return /* @__PURE__ */ jsx10(
|
|
434
973
|
"span",
|
|
435
974
|
__spreadValues({
|
|
436
975
|
className: cn("ph-skeleton", skeletonShapeClass[shape], className),
|
|
@@ -454,53 +993,53 @@ function LoadingState(_a) {
|
|
|
454
993
|
"size",
|
|
455
994
|
"className"
|
|
456
995
|
]);
|
|
457
|
-
return /* @__PURE__ */
|
|
458
|
-
/* @__PURE__ */
|
|
459
|
-
/* @__PURE__ */
|
|
460
|
-
/* @__PURE__ */
|
|
461
|
-
description ? /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ jsxs7("div", __spreadProps(__spreadValues({ className: cn("ph-loading-state", className), role: "status", "aria-label": label }, props), { children: [
|
|
997
|
+
/* @__PURE__ */ jsx10(Loader, { variant, size, label, "aria-hidden": "true" }),
|
|
998
|
+
/* @__PURE__ */ jsxs7("div", { className: "ph-loading-state__copy", children: [
|
|
999
|
+
/* @__PURE__ */ jsx10("strong", { children: title }),
|
|
1000
|
+
description ? /* @__PURE__ */ jsx10("span", { children: description }) : null
|
|
462
1001
|
] })
|
|
463
1002
|
] }));
|
|
464
1003
|
}
|
|
465
1004
|
|
|
466
1005
|
// src/components/ui/AuthLayout.tsx
|
|
467
1006
|
import { useId } from "react";
|
|
468
|
-
import { jsx as
|
|
1007
|
+
import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
469
1008
|
function AuthLayout(_a) {
|
|
470
1009
|
var _b = _a, { brand, footer, aside, children, className } = _b, props = __objRest(_b, ["brand", "footer", "aside", "children", "className"]);
|
|
471
|
-
return /* @__PURE__ */
|
|
472
|
-
aside ? /* @__PURE__ */
|
|
473
|
-
/* @__PURE__ */
|
|
474
|
-
brand ? /* @__PURE__ */
|
|
1010
|
+
return /* @__PURE__ */ jsxs8("div", __spreadProps(__spreadValues({ className: cn("ph-auth-layout", aside != null && "ph-auth-layout--split", className) }, props), { children: [
|
|
1011
|
+
aside ? /* @__PURE__ */ jsx11("aside", { className: "ph-auth-layout__aside", children: aside }) : null,
|
|
1012
|
+
/* @__PURE__ */ jsx11("div", { className: "ph-auth-layout__main", children: /* @__PURE__ */ jsxs8("div", { className: "ph-auth-layout__column", children: [
|
|
1013
|
+
brand ? /* @__PURE__ */ jsx11("div", { className: "ph-auth-layout__brand", children: brand }) : null,
|
|
475
1014
|
children,
|
|
476
|
-
footer ? /* @__PURE__ */
|
|
1015
|
+
footer ? /* @__PURE__ */ jsx11("footer", { className: "ph-auth-layout__footer", children: footer }) : null
|
|
477
1016
|
] }) })
|
|
478
1017
|
] }));
|
|
479
1018
|
}
|
|
480
1019
|
function AuthCard(_a) {
|
|
481
1020
|
var _b = _a, { title, description, footer, children, className } = _b, props = __objRest(_b, ["title", "description", "footer", "children", "className"]);
|
|
482
1021
|
const titleId = useId();
|
|
483
|
-
return /* @__PURE__ */
|
|
484
|
-
/* @__PURE__ */
|
|
485
|
-
/* @__PURE__ */
|
|
486
|
-
description ? /* @__PURE__ */
|
|
1022
|
+
return /* @__PURE__ */ jsxs8("section", __spreadProps(__spreadValues({ className: cn("ph-auth-card", className), "aria-labelledby": titleId }, props), { children: [
|
|
1023
|
+
/* @__PURE__ */ jsxs8("header", { className: "ph-auth-card__header", children: [
|
|
1024
|
+
/* @__PURE__ */ jsx11("h1", { id: titleId, children: title }),
|
|
1025
|
+
description ? /* @__PURE__ */ jsx11("p", { children: description }) : null
|
|
487
1026
|
] }),
|
|
488
|
-
/* @__PURE__ */
|
|
489
|
-
footer ? /* @__PURE__ */
|
|
1027
|
+
/* @__PURE__ */ jsx11("div", { className: "ph-auth-card__body", children }),
|
|
1028
|
+
footer ? /* @__PURE__ */ jsx11("footer", { className: "ph-auth-card__footer", children: footer }) : null
|
|
490
1029
|
] }));
|
|
491
1030
|
}
|
|
492
1031
|
function AuthDivider(_a) {
|
|
493
1032
|
var _b = _a, { children = "or continue with", className } = _b, props = __objRest(_b, ["children", "className"]);
|
|
494
|
-
return /* @__PURE__ */
|
|
1033
|
+
return /* @__PURE__ */ jsx11("div", __spreadProps(__spreadValues({ className: cn("ph-auth-divider", className) }, props), { children: /* @__PURE__ */ jsx11("span", { children }) }));
|
|
495
1034
|
}
|
|
496
1035
|
|
|
497
1036
|
// src/components/ui/SettingsLayout.tsx
|
|
498
|
-
import { jsx as
|
|
1037
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
499
1038
|
function SettingsNav(_a) {
|
|
500
1039
|
var _b = _a, { groups, className } = _b, props = __objRest(_b, ["groups", "className"]);
|
|
501
|
-
return /* @__PURE__ */
|
|
502
|
-
/* @__PURE__ */
|
|
503
|
-
/* @__PURE__ */
|
|
1040
|
+
return /* @__PURE__ */ jsx12("div", __spreadProps(__spreadValues({ className: cn("ph-settings-nav", className) }, props), { children: groups.map((group, index) => /* @__PURE__ */ jsxs9("div", { className: "ph-settings-nav__group", children: [
|
|
1041
|
+
/* @__PURE__ */ jsx12("h3", { children: group.label }),
|
|
1042
|
+
/* @__PURE__ */ jsx12("div", { className: "ph-settings-nav__items", children: group.items.map((item) => /* @__PURE__ */ jsxs9(
|
|
504
1043
|
"a",
|
|
505
1044
|
{
|
|
506
1045
|
href: item.href,
|
|
@@ -512,9 +1051,9 @@ function SettingsNav(_a) {
|
|
|
512
1051
|
),
|
|
513
1052
|
"aria-current": item.active ? "page" : void 0,
|
|
514
1053
|
children: [
|
|
515
|
-
item.icon ? /* @__PURE__ */
|
|
516
|
-
/* @__PURE__ */
|
|
517
|
-
item.badge ? /* @__PURE__ */
|
|
1054
|
+
item.icon ? /* @__PURE__ */ jsx12("span", { className: "ph-settings-nav__icon", children: item.icon }) : null,
|
|
1055
|
+
/* @__PURE__ */ jsx12("span", { children: item.label }),
|
|
1056
|
+
item.badge ? /* @__PURE__ */ jsx12("span", { className: "ph-settings-nav__badge", children: item.badge }) : null
|
|
518
1057
|
]
|
|
519
1058
|
},
|
|
520
1059
|
item.id
|
|
@@ -539,34 +1078,302 @@ function SettingsLayout(_a) {
|
|
|
539
1078
|
"children",
|
|
540
1079
|
"className"
|
|
541
1080
|
]);
|
|
542
|
-
return /* @__PURE__ */
|
|
543
|
-
/* @__PURE__ */
|
|
544
|
-
/* @__PURE__ */
|
|
545
|
-
/* @__PURE__ */
|
|
546
|
-
description ? /* @__PURE__ */
|
|
1081
|
+
return /* @__PURE__ */ jsxs9("section", __spreadProps(__spreadValues({ className: cn("ph-settings-layout", className) }, props), { children: [
|
|
1082
|
+
/* @__PURE__ */ jsxs9("header", { className: "ph-settings-layout__header", children: [
|
|
1083
|
+
/* @__PURE__ */ jsxs9("div", { children: [
|
|
1084
|
+
/* @__PURE__ */ jsx12("h2", { children: title }),
|
|
1085
|
+
description ? /* @__PURE__ */ jsx12("p", { children: description }) : null
|
|
547
1086
|
] }),
|
|
548
|
-
actions ? /* @__PURE__ */
|
|
1087
|
+
actions ? /* @__PURE__ */ jsx12("div", { className: "ph-settings-layout__actions", children: actions }) : null
|
|
549
1088
|
] }),
|
|
550
|
-
/* @__PURE__ */
|
|
551
|
-
/* @__PURE__ */
|
|
552
|
-
/* @__PURE__ */
|
|
1089
|
+
/* @__PURE__ */ jsxs9("details", { className: "ph-settings-layout__mobile-nav", children: [
|
|
1090
|
+
/* @__PURE__ */ jsxs9("summary", { children: [
|
|
1091
|
+
/* @__PURE__ */ jsx12(IconTuning, { className: "h-4 w-4", "aria-hidden": true }),
|
|
553
1092
|
"Settings menu"
|
|
554
1093
|
] }),
|
|
555
|
-
/* @__PURE__ */
|
|
1094
|
+
/* @__PURE__ */ jsx12("nav", { "aria-label": navigationLabel, children: navigation })
|
|
556
1095
|
] }),
|
|
557
|
-
/* @__PURE__ */
|
|
558
|
-
/* @__PURE__ */
|
|
559
|
-
/* @__PURE__ */
|
|
1096
|
+
/* @__PURE__ */ jsxs9("div", { className: "ph-settings-layout__grid", children: [
|
|
1097
|
+
/* @__PURE__ */ jsx12("aside", { className: "ph-settings-layout__sidebar", children: /* @__PURE__ */ jsx12("nav", { "aria-label": navigationLabel, children: navigation }) }),
|
|
1098
|
+
/* @__PURE__ */ jsx12("div", { className: "ph-settings-layout__content", children })
|
|
560
1099
|
] })
|
|
561
1100
|
] }));
|
|
562
1101
|
}
|
|
563
1102
|
|
|
1103
|
+
// src/components/ui/DropdownMenu.tsx
|
|
1104
|
+
import * as DropdownPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1105
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1106
|
+
var sizeClass2 = {
|
|
1107
|
+
xs: "ph-btn-xs",
|
|
1108
|
+
sm: "ph-btn-sm",
|
|
1109
|
+
md: "",
|
|
1110
|
+
lg: "ph-btn-lg"
|
|
1111
|
+
};
|
|
1112
|
+
var variantClass2 = {
|
|
1113
|
+
primary: "ph-btn-primary",
|
|
1114
|
+
secondary: "ph-btn-secondary",
|
|
1115
|
+
accent: "ph-btn-accent"
|
|
1116
|
+
};
|
|
1117
|
+
function DropdownContent({
|
|
1118
|
+
children,
|
|
1119
|
+
align = "start",
|
|
1120
|
+
side = "bottom",
|
|
1121
|
+
sideOffset = 7,
|
|
1122
|
+
alignOffset = 0,
|
|
1123
|
+
collisionPadding = 8,
|
|
1124
|
+
avoidCollisions = true,
|
|
1125
|
+
panelClassName
|
|
1126
|
+
}) {
|
|
1127
|
+
return /* @__PURE__ */ jsx13(DropdownPrimitive.Portal, { children: /* @__PURE__ */ jsxs10(
|
|
1128
|
+
DropdownPrimitive.Content,
|
|
1129
|
+
{
|
|
1130
|
+
className: cn("ph-dropdown-panel", panelClassName),
|
|
1131
|
+
align,
|
|
1132
|
+
side,
|
|
1133
|
+
sideOffset,
|
|
1134
|
+
alignOffset,
|
|
1135
|
+
collisionPadding,
|
|
1136
|
+
avoidCollisions,
|
|
1137
|
+
sticky: "partial",
|
|
1138
|
+
children: [
|
|
1139
|
+
children,
|
|
1140
|
+
/* @__PURE__ */ jsx13(
|
|
1141
|
+
DropdownPrimitive.Arrow,
|
|
1142
|
+
{
|
|
1143
|
+
className: "ph-dropdown-arrow",
|
|
1144
|
+
width: 12,
|
|
1145
|
+
height: 6
|
|
1146
|
+
}
|
|
1147
|
+
)
|
|
1148
|
+
]
|
|
1149
|
+
}
|
|
1150
|
+
) });
|
|
1151
|
+
}
|
|
1152
|
+
function DropdownMenu(_a) {
|
|
1153
|
+
var _b = _a, {
|
|
1154
|
+
trigger,
|
|
1155
|
+
triggerId,
|
|
1156
|
+
triggerDataTest,
|
|
1157
|
+
children,
|
|
1158
|
+
align,
|
|
1159
|
+
side,
|
|
1160
|
+
sideOffset,
|
|
1161
|
+
alignOffset,
|
|
1162
|
+
collisionPadding,
|
|
1163
|
+
avoidCollisions,
|
|
1164
|
+
className,
|
|
1165
|
+
panelClassName,
|
|
1166
|
+
"aria-label": ariaLabel,
|
|
1167
|
+
open,
|
|
1168
|
+
defaultOpen,
|
|
1169
|
+
onOpenChange,
|
|
1170
|
+
modal = false,
|
|
1171
|
+
disabled
|
|
1172
|
+
} = _b, props = __objRest(_b, [
|
|
1173
|
+
"trigger",
|
|
1174
|
+
"triggerId",
|
|
1175
|
+
"triggerDataTest",
|
|
1176
|
+
"children",
|
|
1177
|
+
"align",
|
|
1178
|
+
"side",
|
|
1179
|
+
"sideOffset",
|
|
1180
|
+
"alignOffset",
|
|
1181
|
+
"collisionPadding",
|
|
1182
|
+
"avoidCollisions",
|
|
1183
|
+
"className",
|
|
1184
|
+
"panelClassName",
|
|
1185
|
+
"aria-label",
|
|
1186
|
+
"open",
|
|
1187
|
+
"defaultOpen",
|
|
1188
|
+
"onOpenChange",
|
|
1189
|
+
"modal",
|
|
1190
|
+
"disabled"
|
|
1191
|
+
]);
|
|
1192
|
+
return /* @__PURE__ */ jsx13("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs10(
|
|
1193
|
+
DropdownPrimitive.Root,
|
|
1194
|
+
{
|
|
1195
|
+
open,
|
|
1196
|
+
defaultOpen,
|
|
1197
|
+
onOpenChange,
|
|
1198
|
+
modal,
|
|
1199
|
+
children: [
|
|
1200
|
+
/* @__PURE__ */ jsx13(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx13(
|
|
1201
|
+
"button",
|
|
1202
|
+
{
|
|
1203
|
+
type: "button",
|
|
1204
|
+
id: triggerId,
|
|
1205
|
+
"data-test": triggerDataTest,
|
|
1206
|
+
className: "ph-dropdown-trigger",
|
|
1207
|
+
"aria-label": ariaLabel,
|
|
1208
|
+
children: trigger
|
|
1209
|
+
}
|
|
1210
|
+
) }),
|
|
1211
|
+
/* @__PURE__ */ jsx13(
|
|
1212
|
+
DropdownContent,
|
|
1213
|
+
{
|
|
1214
|
+
align,
|
|
1215
|
+
side,
|
|
1216
|
+
sideOffset,
|
|
1217
|
+
alignOffset,
|
|
1218
|
+
collisionPadding,
|
|
1219
|
+
avoidCollisions,
|
|
1220
|
+
panelClassName,
|
|
1221
|
+
children
|
|
1222
|
+
}
|
|
1223
|
+
)
|
|
1224
|
+
]
|
|
1225
|
+
}
|
|
1226
|
+
) }));
|
|
1227
|
+
}
|
|
1228
|
+
function DropdownButton(_a) {
|
|
1229
|
+
var _b = _a, {
|
|
1230
|
+
label,
|
|
1231
|
+
variant = "secondary",
|
|
1232
|
+
outline = false,
|
|
1233
|
+
size = "md",
|
|
1234
|
+
split = false,
|
|
1235
|
+
icon,
|
|
1236
|
+
sideIcon,
|
|
1237
|
+
children,
|
|
1238
|
+
align,
|
|
1239
|
+
side,
|
|
1240
|
+
sideOffset,
|
|
1241
|
+
alignOffset,
|
|
1242
|
+
collisionPadding,
|
|
1243
|
+
avoidCollisions,
|
|
1244
|
+
className,
|
|
1245
|
+
panelClassName,
|
|
1246
|
+
"aria-label": ariaLabel,
|
|
1247
|
+
open,
|
|
1248
|
+
defaultOpen,
|
|
1249
|
+
onOpenChange,
|
|
1250
|
+
modal = false,
|
|
1251
|
+
disabled
|
|
1252
|
+
} = _b, props = __objRest(_b, [
|
|
1253
|
+
"label",
|
|
1254
|
+
"variant",
|
|
1255
|
+
"outline",
|
|
1256
|
+
"size",
|
|
1257
|
+
"split",
|
|
1258
|
+
"icon",
|
|
1259
|
+
"sideIcon",
|
|
1260
|
+
"children",
|
|
1261
|
+
"align",
|
|
1262
|
+
"side",
|
|
1263
|
+
"sideOffset",
|
|
1264
|
+
"alignOffset",
|
|
1265
|
+
"collisionPadding",
|
|
1266
|
+
"avoidCollisions",
|
|
1267
|
+
"className",
|
|
1268
|
+
"panelClassName",
|
|
1269
|
+
"aria-label",
|
|
1270
|
+
"open",
|
|
1271
|
+
"defaultOpen",
|
|
1272
|
+
"onOpenChange",
|
|
1273
|
+
"modal",
|
|
1274
|
+
"disabled"
|
|
1275
|
+
]);
|
|
1276
|
+
const trailing = sideIcon != null ? sideIcon : /* @__PURE__ */ jsx13(IconChevronDown, { className: "h-4 w-4", "aria-hidden": true });
|
|
1277
|
+
return /* @__PURE__ */ jsx13("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ jsxs10(
|
|
1278
|
+
DropdownPrimitive.Root,
|
|
1279
|
+
{
|
|
1280
|
+
open,
|
|
1281
|
+
defaultOpen,
|
|
1282
|
+
onOpenChange,
|
|
1283
|
+
modal,
|
|
1284
|
+
children: [
|
|
1285
|
+
/* @__PURE__ */ jsx13(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx13(
|
|
1286
|
+
"button",
|
|
1287
|
+
{
|
|
1288
|
+
type: "button",
|
|
1289
|
+
disabled,
|
|
1290
|
+
className: cn(
|
|
1291
|
+
"ph-btn ph-btn-raised ph-dropdown-button",
|
|
1292
|
+
variantClass2[variant],
|
|
1293
|
+
outline && "ph-btn-outline",
|
|
1294
|
+
sizeClass2[size],
|
|
1295
|
+
split && "ph-btn-split"
|
|
1296
|
+
),
|
|
1297
|
+
"aria-label": ariaLabel,
|
|
1298
|
+
children: /* @__PURE__ */ jsx13(
|
|
1299
|
+
ButtonChrome,
|
|
1300
|
+
{
|
|
1301
|
+
label,
|
|
1302
|
+
icon,
|
|
1303
|
+
sideIcon: trailing,
|
|
1304
|
+
split
|
|
1305
|
+
}
|
|
1306
|
+
)
|
|
1307
|
+
}
|
|
1308
|
+
) }),
|
|
1309
|
+
/* @__PURE__ */ jsx13(
|
|
1310
|
+
DropdownContent,
|
|
1311
|
+
{
|
|
1312
|
+
align,
|
|
1313
|
+
side,
|
|
1314
|
+
sideOffset,
|
|
1315
|
+
alignOffset,
|
|
1316
|
+
collisionPadding,
|
|
1317
|
+
avoidCollisions,
|
|
1318
|
+
panelClassName,
|
|
1319
|
+
children
|
|
1320
|
+
}
|
|
1321
|
+
)
|
|
1322
|
+
]
|
|
1323
|
+
}
|
|
1324
|
+
) }));
|
|
1325
|
+
}
|
|
1326
|
+
function DropdownItem(_a) {
|
|
1327
|
+
var _b = _a, {
|
|
1328
|
+
className,
|
|
1329
|
+
children,
|
|
1330
|
+
disabled
|
|
1331
|
+
} = _b, props = __objRest(_b, [
|
|
1332
|
+
"className",
|
|
1333
|
+
"children",
|
|
1334
|
+
"disabled"
|
|
1335
|
+
]);
|
|
1336
|
+
return /* @__PURE__ */ jsx13(DropdownPrimitive.Item, { asChild: true, disabled, children: /* @__PURE__ */ jsx13(
|
|
1337
|
+
"button",
|
|
1338
|
+
__spreadProps(__spreadValues({
|
|
1339
|
+
type: "button",
|
|
1340
|
+
disabled,
|
|
1341
|
+
className: cn("ph-dropdown-item w-full text-left", className)
|
|
1342
|
+
}, props), {
|
|
1343
|
+
children
|
|
1344
|
+
})
|
|
1345
|
+
) });
|
|
1346
|
+
}
|
|
1347
|
+
function DropdownRadioGroup(props) {
|
|
1348
|
+
return /* @__PURE__ */ jsx13(DropdownPrimitive.RadioGroup, __spreadValues({}, props));
|
|
1349
|
+
}
|
|
1350
|
+
function DropdownRadioItem(_a) {
|
|
1351
|
+
var _b = _a, {
|
|
1352
|
+
className,
|
|
1353
|
+
children
|
|
1354
|
+
} = _b, props = __objRest(_b, [
|
|
1355
|
+
"className",
|
|
1356
|
+
"children"
|
|
1357
|
+
]);
|
|
1358
|
+
return /* @__PURE__ */ jsxs10(
|
|
1359
|
+
DropdownPrimitive.RadioItem,
|
|
1360
|
+
__spreadProps(__spreadValues({
|
|
1361
|
+
className: cn("ph-dropdown-item ph-dropdown-radio-item", className)
|
|
1362
|
+
}, props), {
|
|
1363
|
+
children: [
|
|
1364
|
+
/* @__PURE__ */ jsx13("span", { className: "ph-dropdown-item-indicator", "aria-hidden": true, children: /* @__PURE__ */ jsx13(DropdownPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(IconCheck, { className: "h-3.5 w-3.5" }) }) }),
|
|
1365
|
+
/* @__PURE__ */ jsx13("span", { children })
|
|
1366
|
+
]
|
|
1367
|
+
})
|
|
1368
|
+
);
|
|
1369
|
+
}
|
|
1370
|
+
|
|
564
1371
|
// src/components/ui/Input.tsx
|
|
565
|
-
import { forwardRef as
|
|
1372
|
+
import { forwardRef as forwardRef8, useId as useId3 } from "react";
|
|
566
1373
|
|
|
567
1374
|
// src/components/ui/FormField.tsx
|
|
568
1375
|
import { useId as useId2 } from "react";
|
|
569
|
-
import { jsx as
|
|
1376
|
+
import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
570
1377
|
function FormField(_a) {
|
|
571
1378
|
var _b = _a, {
|
|
572
1379
|
controlId,
|
|
@@ -599,26 +1406,26 @@ function FormField(_a) {
|
|
|
599
1406
|
"aria-errormessage": errorId,
|
|
600
1407
|
"aria-invalid": error ? true : void 0
|
|
601
1408
|
};
|
|
602
|
-
return /* @__PURE__ */
|
|
603
|
-
label ? /* @__PURE__ */
|
|
1409
|
+
return /* @__PURE__ */ jsxs11("div", __spreadProps(__spreadValues({ className: cn("ph-field", className) }, props), { children: [
|
|
1410
|
+
label ? /* @__PURE__ */ jsxs11(
|
|
604
1411
|
"label",
|
|
605
1412
|
{
|
|
606
1413
|
htmlFor: id,
|
|
607
1414
|
className: cn("ph-label", hideLabel && "sr-only", disabled && "opacity-50"),
|
|
608
1415
|
children: [
|
|
609
1416
|
label,
|
|
610
|
-
required ? /* @__PURE__ */
|
|
1417
|
+
required ? /* @__PURE__ */ jsx14("span", { "aria-hidden": "true", children: " *" }) : null
|
|
611
1418
|
]
|
|
612
1419
|
}
|
|
613
1420
|
) : null,
|
|
614
1421
|
typeof children === "function" ? children(controlProps) : children,
|
|
615
|
-
descriptionId ? /* @__PURE__ */
|
|
616
|
-
errorId ? /* @__PURE__ */
|
|
1422
|
+
descriptionId ? /* @__PURE__ */ jsx14("p", { id: descriptionId, className: "mt-1 text-xs text-ph-subtle", children: helperText }) : null,
|
|
1423
|
+
errorId ? /* @__PURE__ */ jsx14("p", { id: errorId, className: "mt-1 text-xs font-medium text-ph-danger", children: error }) : null
|
|
617
1424
|
] }));
|
|
618
1425
|
}
|
|
619
1426
|
|
|
620
1427
|
// src/components/ui/Input.tsx
|
|
621
|
-
import { jsx as
|
|
1428
|
+
import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
622
1429
|
var sizeMap2 = {
|
|
623
1430
|
sm: "ph-input-sm",
|
|
624
1431
|
md: "",
|
|
@@ -628,7 +1435,7 @@ function joinIds(...ids) {
|
|
|
628
1435
|
const value = ids.filter(Boolean).join(" ");
|
|
629
1436
|
return value || void 0;
|
|
630
1437
|
}
|
|
631
|
-
var Input =
|
|
1438
|
+
var Input = forwardRef8(function Input2(_a, ref) {
|
|
632
1439
|
var _b = _a, {
|
|
633
1440
|
id: idProp,
|
|
634
1441
|
label,
|
|
@@ -659,7 +1466,7 @@ var Input = forwardRef5(function Input2(_a, ref) {
|
|
|
659
1466
|
const autoId = useId3();
|
|
660
1467
|
const id = idProp != null ? idProp : autoId;
|
|
661
1468
|
const hasError = Boolean(error);
|
|
662
|
-
return /* @__PURE__ */
|
|
1469
|
+
return /* @__PURE__ */ jsx15(
|
|
663
1470
|
FormField,
|
|
664
1471
|
{
|
|
665
1472
|
controlId: id,
|
|
@@ -670,7 +1477,7 @@ var Input = forwardRef5(function Input2(_a, ref) {
|
|
|
670
1477
|
required,
|
|
671
1478
|
disabled,
|
|
672
1479
|
className: wrapperClassName,
|
|
673
|
-
children: (fieldProps) => /* @__PURE__ */
|
|
1480
|
+
children: (fieldProps) => /* @__PURE__ */ jsx15(
|
|
674
1481
|
"input",
|
|
675
1482
|
__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
676
1483
|
ref,
|
|
@@ -691,7 +1498,7 @@ var Input = forwardRef5(function Input2(_a, ref) {
|
|
|
691
1498
|
);
|
|
692
1499
|
});
|
|
693
1500
|
Input.displayName = "Input";
|
|
694
|
-
var Select =
|
|
1501
|
+
var Select = forwardRef8(function Select2(_a, ref) {
|
|
695
1502
|
var _b = _a, {
|
|
696
1503
|
id: idProp,
|
|
697
1504
|
label,
|
|
@@ -722,7 +1529,7 @@ var Select = forwardRef5(function Select2(_a, ref) {
|
|
|
722
1529
|
const autoId = useId3();
|
|
723
1530
|
const id = idProp != null ? idProp : autoId;
|
|
724
1531
|
const hasError = Boolean(error);
|
|
725
|
-
return /* @__PURE__ */
|
|
1532
|
+
return /* @__PURE__ */ jsx15(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx15(
|
|
726
1533
|
"select",
|
|
727
1534
|
__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
728
1535
|
ref,
|
|
@@ -742,7 +1549,7 @@ var Select = forwardRef5(function Select2(_a, ref) {
|
|
|
742
1549
|
) });
|
|
743
1550
|
});
|
|
744
1551
|
Select.displayName = "Select";
|
|
745
|
-
var Textarea =
|
|
1552
|
+
var Textarea = forwardRef8(function Textarea2(_a, ref) {
|
|
746
1553
|
var _b = _a, {
|
|
747
1554
|
id: idProp,
|
|
748
1555
|
label,
|
|
@@ -771,7 +1578,7 @@ var Textarea = forwardRef5(function Textarea2(_a, ref) {
|
|
|
771
1578
|
const autoId = useId3();
|
|
772
1579
|
const id = idProp != null ? idProp : autoId;
|
|
773
1580
|
const hasError = Boolean(error);
|
|
774
|
-
return /* @__PURE__ */
|
|
1581
|
+
return /* @__PURE__ */ jsx15(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ jsx15(
|
|
775
1582
|
"textarea",
|
|
776
1583
|
__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
777
1584
|
ref,
|
|
@@ -789,7 +1596,7 @@ var Textarea = forwardRef5(function Textarea2(_a, ref) {
|
|
|
789
1596
|
) });
|
|
790
1597
|
});
|
|
791
1598
|
Textarea.displayName = "Textarea";
|
|
792
|
-
var Checkbox =
|
|
1599
|
+
var Checkbox = forwardRef8(function Checkbox2(_a, ref) {
|
|
793
1600
|
var _b = _a, {
|
|
794
1601
|
id: idProp,
|
|
795
1602
|
label,
|
|
@@ -814,9 +1621,9 @@ var Checkbox = forwardRef5(function Checkbox2(_a, ref) {
|
|
|
814
1621
|
const hasError = Boolean(error);
|
|
815
1622
|
const descriptionId = helperText && !hasError ? `${id}-description` : void 0;
|
|
816
1623
|
const errorId = error ? `${id}-error` : void 0;
|
|
817
|
-
return /* @__PURE__ */
|
|
818
|
-
/* @__PURE__ */
|
|
819
|
-
/* @__PURE__ */
|
|
1624
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn("ph-control-row", wrapperClassName), children: [
|
|
1625
|
+
/* @__PURE__ */ jsxs12("span", { className: "ph-checkbox-wrap", children: [
|
|
1626
|
+
/* @__PURE__ */ jsx15(
|
|
820
1627
|
"input",
|
|
821
1628
|
__spreadValues({
|
|
822
1629
|
ref,
|
|
@@ -834,17 +1641,17 @@ var Checkbox = forwardRef5(function Checkbox2(_a, ref) {
|
|
|
834
1641
|
)
|
|
835
1642
|
}, props)
|
|
836
1643
|
),
|
|
837
|
-
/* @__PURE__ */
|
|
1644
|
+
/* @__PURE__ */ jsx15(IconCheck, { className: "ph-checkbox-icon", "aria-hidden": true })
|
|
838
1645
|
] }),
|
|
839
|
-
/* @__PURE__ */
|
|
840
|
-
/* @__PURE__ */
|
|
841
|
-
descriptionId ? /* @__PURE__ */
|
|
842
|
-
errorId ? /* @__PURE__ */
|
|
1646
|
+
/* @__PURE__ */ jsxs12("div", { className: "ph-control-copy", children: [
|
|
1647
|
+
/* @__PURE__ */ jsx15("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label }),
|
|
1648
|
+
descriptionId ? /* @__PURE__ */ jsx15("p", { id: descriptionId, className: "text-xs text-ph-subtle", children: helperText }) : null,
|
|
1649
|
+
errorId ? /* @__PURE__ */ jsx15("p", { id: errorId, className: "text-xs font-medium text-ph-danger", children: error }) : null
|
|
843
1650
|
] })
|
|
844
1651
|
] });
|
|
845
1652
|
});
|
|
846
1653
|
Checkbox.displayName = "Checkbox";
|
|
847
|
-
var Radio =
|
|
1654
|
+
var Radio = forwardRef8(function Radio2(_a, ref) {
|
|
848
1655
|
var _b = _a, {
|
|
849
1656
|
id: idProp,
|
|
850
1657
|
label,
|
|
@@ -860,8 +1667,8 @@ var Radio = forwardRef5(function Radio2(_a, ref) {
|
|
|
860
1667
|
]);
|
|
861
1668
|
const autoId = useId3();
|
|
862
1669
|
const id = idProp != null ? idProp : autoId;
|
|
863
|
-
return /* @__PURE__ */
|
|
864
|
-
/* @__PURE__ */
|
|
1670
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn("ph-control-row", wrapperClassName, disabled && "opacity-60"), children: [
|
|
1671
|
+
/* @__PURE__ */ jsx15(
|
|
865
1672
|
"input",
|
|
866
1673
|
__spreadValues({
|
|
867
1674
|
ref,
|
|
@@ -871,11 +1678,11 @@ var Radio = forwardRef5(function Radio2(_a, ref) {
|
|
|
871
1678
|
className: cn("ph-radio", disabled && "cursor-not-allowed", className)
|
|
872
1679
|
}, props)
|
|
873
1680
|
),
|
|
874
|
-
/* @__PURE__ */
|
|
1681
|
+
/* @__PURE__ */ jsx15("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label })
|
|
875
1682
|
] });
|
|
876
1683
|
});
|
|
877
1684
|
Radio.displayName = "Radio";
|
|
878
|
-
var Toggle =
|
|
1685
|
+
var Toggle = forwardRef8(function Toggle2(_a, ref) {
|
|
879
1686
|
var _b = _a, {
|
|
880
1687
|
id: idProp,
|
|
881
1688
|
label,
|
|
@@ -891,9 +1698,9 @@ var Toggle = forwardRef5(function Toggle2(_a, ref) {
|
|
|
891
1698
|
]);
|
|
892
1699
|
const autoId = useId3();
|
|
893
1700
|
const id = idProp != null ? idProp : autoId;
|
|
894
|
-
return /* @__PURE__ */
|
|
895
|
-
/* @__PURE__ */
|
|
896
|
-
/* @__PURE__ */
|
|
1701
|
+
return /* @__PURE__ */ jsxs12("label", { className: cn("ph-control-row-between", wrapperClassName, disabled && "opacity-60"), children: [
|
|
1702
|
+
/* @__PURE__ */ jsx15("span", { className: disabled ? "opacity-60" : void 0, children: label }),
|
|
1703
|
+
/* @__PURE__ */ jsx15(
|
|
897
1704
|
"input",
|
|
898
1705
|
__spreadValues({
|
|
899
1706
|
ref,
|
|
@@ -907,7 +1714,7 @@ var Toggle = forwardRef5(function Toggle2(_a, ref) {
|
|
|
907
1714
|
] });
|
|
908
1715
|
});
|
|
909
1716
|
Toggle.displayName = "Toggle";
|
|
910
|
-
var Range =
|
|
1717
|
+
var Range = forwardRef8(function Range2(_a, ref) {
|
|
911
1718
|
var _b = _a, {
|
|
912
1719
|
id: idProp,
|
|
913
1720
|
label,
|
|
@@ -927,18 +1734,18 @@ var Range = forwardRef5(function Range2(_a, ref) {
|
|
|
927
1734
|
]);
|
|
928
1735
|
const autoId = useId3();
|
|
929
1736
|
const id = idProp != null ? idProp : autoId;
|
|
930
|
-
return /* @__PURE__ */
|
|
931
|
-
label && /* @__PURE__ */
|
|
932
|
-
/* @__PURE__ */
|
|
933
|
-
(minLabel || valueLabel || maxLabel) && /* @__PURE__ */
|
|
934
|
-
/* @__PURE__ */
|
|
935
|
-
/* @__PURE__ */
|
|
936
|
-
/* @__PURE__ */
|
|
1737
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
1738
|
+
label && /* @__PURE__ */ jsx15("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
1739
|
+
/* @__PURE__ */ jsx15("input", __spreadValues({ ref, id, type: "range", className: cn("ph-range", className) }, props)),
|
|
1740
|
+
(minLabel || valueLabel || maxLabel) && /* @__PURE__ */ jsxs12("div", { className: "flex justify-between text-xs text-ph-mutedtext", children: [
|
|
1741
|
+
/* @__PURE__ */ jsx15("span", { children: minLabel }),
|
|
1742
|
+
/* @__PURE__ */ jsx15("span", { children: valueLabel }),
|
|
1743
|
+
/* @__PURE__ */ jsx15("span", { children: maxLabel })
|
|
937
1744
|
] })
|
|
938
1745
|
] });
|
|
939
1746
|
});
|
|
940
1747
|
Range.displayName = "Range";
|
|
941
|
-
var FileUpload =
|
|
1748
|
+
var FileUpload = forwardRef8(function FileUpload2(_a, ref) {
|
|
942
1749
|
var _b = _a, {
|
|
943
1750
|
id: idProp,
|
|
944
1751
|
label,
|
|
@@ -954,10 +1761,10 @@ var FileUpload = forwardRef5(function FileUpload2(_a, ref) {
|
|
|
954
1761
|
]);
|
|
955
1762
|
const autoId = useId3();
|
|
956
1763
|
const id = idProp != null ? idProp : autoId;
|
|
957
|
-
return /* @__PURE__ */
|
|
958
|
-
label && /* @__PURE__ */
|
|
959
|
-
/* @__PURE__ */
|
|
960
|
-
/* @__PURE__ */
|
|
1764
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
1765
|
+
label && /* @__PURE__ */ jsx15("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
1766
|
+
/* @__PURE__ */ jsxs12("label", { htmlFor: id, className: "ph-file-upload", children: [
|
|
1767
|
+
/* @__PURE__ */ jsx15("input", __spreadValues({ ref, id, type: "file", className: cn("sr-only", className) }, props)),
|
|
961
1768
|
prompt
|
|
962
1769
|
] })
|
|
963
1770
|
] });
|
|
@@ -967,7 +1774,7 @@ FileUpload.displayName = "FileUpload";
|
|
|
967
1774
|
// src/components/ui/Modal.tsx
|
|
968
1775
|
import * as Dialog from "@radix-ui/react-dialog";
|
|
969
1776
|
import { useRef } from "react";
|
|
970
|
-
import { Fragment as
|
|
1777
|
+
import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
971
1778
|
var sizeMap3 = {
|
|
972
1779
|
sm: "max-w-sm",
|
|
973
1780
|
md: "max-w-lg",
|
|
@@ -997,15 +1804,15 @@ function Modal({
|
|
|
997
1804
|
}) {
|
|
998
1805
|
const canDismiss = Boolean(onClose);
|
|
999
1806
|
const restoreFocusRef = useRef(null);
|
|
1000
|
-
return /* @__PURE__ */
|
|
1807
|
+
return /* @__PURE__ */ jsx16(
|
|
1001
1808
|
Dialog.Root,
|
|
1002
1809
|
{
|
|
1003
1810
|
open,
|
|
1004
1811
|
onOpenChange: (nextOpen) => {
|
|
1005
1812
|
if (!nextOpen) onClose == null ? void 0 : onClose();
|
|
1006
1813
|
},
|
|
1007
|
-
children: /* @__PURE__ */
|
|
1008
|
-
/* @__PURE__ */
|
|
1814
|
+
children: /* @__PURE__ */ jsxs13(Dialog.Portal, { children: [
|
|
1815
|
+
/* @__PURE__ */ jsx16(
|
|
1009
1816
|
Dialog.Overlay,
|
|
1010
1817
|
{
|
|
1011
1818
|
"data-test": dataTest,
|
|
@@ -1013,7 +1820,7 @@ function Modal({
|
|
|
1013
1820
|
style: zIndex ? { zIndex } : void 0
|
|
1014
1821
|
}
|
|
1015
1822
|
),
|
|
1016
|
-
/* @__PURE__ */
|
|
1823
|
+
/* @__PURE__ */ jsx16(
|
|
1017
1824
|
Dialog.Content,
|
|
1018
1825
|
__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({
|
|
1019
1826
|
id,
|
|
@@ -1036,28 +1843,28 @@ function Modal({
|
|
|
1036
1843
|
onPointerDownOutside: (event) => {
|
|
1037
1844
|
if (!canDismiss || !closeOnOutsideClick) event.preventDefault();
|
|
1038
1845
|
},
|
|
1039
|
-
children: customLayout ? /* @__PURE__ */
|
|
1040
|
-
/* @__PURE__ */
|
|
1846
|
+
children: customLayout ? /* @__PURE__ */ jsxs13(Fragment3, { children: [
|
|
1847
|
+
/* @__PURE__ */ jsx16(Dialog.Title, { className: "sr-only", children: ariaLabel != null ? ariaLabel : "Dialog" }),
|
|
1041
1848
|
children
|
|
1042
|
-
] }) : /* @__PURE__ */
|
|
1043
|
-
title ? null : /* @__PURE__ */
|
|
1044
|
-
title || description || showCloseButton && canDismiss ? /* @__PURE__ */
|
|
1045
|
-
/* @__PURE__ */
|
|
1046
|
-
title ? /* @__PURE__ */
|
|
1047
|
-
description ? /* @__PURE__ */
|
|
1849
|
+
] }) : /* @__PURE__ */ jsxs13(Fragment3, { children: [
|
|
1850
|
+
title ? null : /* @__PURE__ */ jsx16(Dialog.Title, { className: "sr-only", children: ariaLabel != null ? ariaLabel : "Dialog" }),
|
|
1851
|
+
title || description || showCloseButton && canDismiss ? /* @__PURE__ */ jsxs13("header", { className: "ph-modal-header", children: [
|
|
1852
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0", children: [
|
|
1853
|
+
title ? /* @__PURE__ */ jsx16(Dialog.Title, { className: "text-lg font-bold text-ph-ink", children: title }) : null,
|
|
1854
|
+
description ? /* @__PURE__ */ jsx16(Dialog.Description, { className: "mt-1 text-sm text-ph-subtle", children: description }) : null
|
|
1048
1855
|
] }),
|
|
1049
|
-
showCloseButton && canDismiss ? /* @__PURE__ */
|
|
1856
|
+
showCloseButton && canDismiss ? /* @__PURE__ */ jsx16(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx16(
|
|
1050
1857
|
"button",
|
|
1051
1858
|
{
|
|
1052
1859
|
type: "button",
|
|
1053
1860
|
className: "ph-modal-close",
|
|
1054
1861
|
"aria-label": "Close dialog",
|
|
1055
|
-
children: /* @__PURE__ */
|
|
1862
|
+
children: /* @__PURE__ */ jsx16(IconClose, { className: "h-5 w-5", "aria-hidden": true })
|
|
1056
1863
|
}
|
|
1057
1864
|
) }) : null
|
|
1058
1865
|
] }) : null,
|
|
1059
|
-
/* @__PURE__ */
|
|
1060
|
-
footer ? /* @__PURE__ */
|
|
1866
|
+
/* @__PURE__ */ jsx16("div", { className: "ph-modal-body", children }),
|
|
1867
|
+
footer ? /* @__PURE__ */ jsx16("div", { className: "ph-modal-footer", children: footer }) : null
|
|
1061
1868
|
] })
|
|
1062
1869
|
})
|
|
1063
1870
|
)
|
|
@@ -1067,19 +1874,19 @@ function Modal({
|
|
|
1067
1874
|
}
|
|
1068
1875
|
|
|
1069
1876
|
// src/components/ui/Panel.tsx
|
|
1070
|
-
import { jsx as
|
|
1877
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1071
1878
|
function Panel(_a) {
|
|
1072
1879
|
var _b = _a, { title, description, children, className } = _b, props = __objRest(_b, ["title", "description", "children", "className"]);
|
|
1073
|
-
return /* @__PURE__ */
|
|
1074
|
-
title && /* @__PURE__ */
|
|
1075
|
-
description && /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ jsxs14("div", __spreadProps(__spreadValues({ className: cn("ph-panel", className) }, props), { children: [
|
|
1881
|
+
title && /* @__PURE__ */ jsx17("h3", { className: "text-sm font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
|
|
1882
|
+
description && /* @__PURE__ */ jsx17("p", { className: "text-sm text-ph-subtle", children: description }),
|
|
1076
1883
|
children
|
|
1077
1884
|
] }));
|
|
1078
1885
|
}
|
|
1079
1886
|
|
|
1080
1887
|
// src/components/ui/SearchInput.tsx
|
|
1081
1888
|
import { useId as useId4 } from "react";
|
|
1082
|
-
import { jsx as
|
|
1889
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1083
1890
|
function SearchInput(_a) {
|
|
1084
1891
|
var _b = _a, {
|
|
1085
1892
|
id: idProp,
|
|
@@ -1102,10 +1909,10 @@ function SearchInput(_a) {
|
|
|
1102
1909
|
]);
|
|
1103
1910
|
const autoId = useId4();
|
|
1104
1911
|
const id = idProp != null ? idProp : autoId;
|
|
1105
|
-
return /* @__PURE__ */
|
|
1106
|
-
/* @__PURE__ */
|
|
1107
|
-
/* @__PURE__ */
|
|
1108
|
-
shortcut != null ? /* @__PURE__ */
|
|
1912
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("relative", wrapperClassName), children: [
|
|
1913
|
+
/* @__PURE__ */ jsx18("label", { htmlFor: id, className: hideLabel ? "sr-only" : "ph-label mb-1.5 block", children: label }),
|
|
1914
|
+
/* @__PURE__ */ jsxs15("div", { className: "relative", children: [
|
|
1915
|
+
shortcut != null ? /* @__PURE__ */ jsx18(
|
|
1109
1916
|
"span",
|
|
1110
1917
|
{
|
|
1111
1918
|
className: "ph-shortcut pointer-events-none absolute left-3 top-1/2 z-10 -translate-y-1/2 text-xs",
|
|
@@ -1113,7 +1920,7 @@ function SearchInput(_a) {
|
|
|
1113
1920
|
children: shortcut
|
|
1114
1921
|
}
|
|
1115
1922
|
) : null,
|
|
1116
|
-
/* @__PURE__ */
|
|
1923
|
+
/* @__PURE__ */ jsx18(
|
|
1117
1924
|
"input",
|
|
1118
1925
|
__spreadValues({
|
|
1119
1926
|
id,
|
|
@@ -1149,10 +1956,10 @@ function SearchGroup(_a) {
|
|
|
1149
1956
|
]);
|
|
1150
1957
|
const autoId = useId4();
|
|
1151
1958
|
const id = idProp != null ? idProp : autoId;
|
|
1152
|
-
return /* @__PURE__ */
|
|
1153
|
-
/* @__PURE__ */
|
|
1154
|
-
/* @__PURE__ */
|
|
1155
|
-
/* @__PURE__ */
|
|
1959
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
1960
|
+
/* @__PURE__ */ jsx18("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
1961
|
+
/* @__PURE__ */ jsxs15("div", { className: "ph-search-group flex w-full max-w-lg min-h-[2.3125rem] items-stretch divide-x divide-ph-border", children: [
|
|
1962
|
+
/* @__PURE__ */ jsx18(
|
|
1156
1963
|
"input",
|
|
1157
1964
|
__spreadValues({
|
|
1158
1965
|
id,
|
|
@@ -1161,12 +1968,12 @@ function SearchGroup(_a) {
|
|
|
1161
1968
|
className: cn("ph-input ph-input-group-field min-w-0 flex-1", className)
|
|
1162
1969
|
}, props)
|
|
1163
1970
|
),
|
|
1164
|
-
/* @__PURE__ */
|
|
1971
|
+
/* @__PURE__ */ jsx18(
|
|
1165
1972
|
Button,
|
|
1166
1973
|
{
|
|
1167
1974
|
type: "submit",
|
|
1168
1975
|
variant: "primary",
|
|
1169
|
-
icon: /* @__PURE__ */
|
|
1976
|
+
icon: /* @__PURE__ */ jsx18(IconSearch, { className: "h-4 w-4", "aria-hidden": true }),
|
|
1170
1977
|
className: "ph-search-group__submit",
|
|
1171
1978
|
"aria-label": submitLabel
|
|
1172
1979
|
}
|
|
@@ -1176,7 +1983,7 @@ function SearchGroup(_a) {
|
|
|
1176
1983
|
}
|
|
1177
1984
|
|
|
1178
1985
|
// src/components/ui/Table.tsx
|
|
1179
|
-
import { jsx as
|
|
1986
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1180
1987
|
function Table({
|
|
1181
1988
|
data,
|
|
1182
1989
|
columns,
|
|
@@ -1187,15 +1994,15 @@ function Table({
|
|
|
1187
1994
|
className,
|
|
1188
1995
|
caption
|
|
1189
1996
|
}) {
|
|
1190
|
-
return /* @__PURE__ */
|
|
1191
|
-
caption && /* @__PURE__ */
|
|
1192
|
-
/* @__PURE__ */
|
|
1193
|
-
/* @__PURE__ */
|
|
1997
|
+
return /* @__PURE__ */ jsx19("div", { className: cn("ph-table-wrap", compact && "ph-table-compact", className), children: /* @__PURE__ */ jsxs16("table", { className: cn("ph-table", zebra && "ph-table-zebra", ribbon && "ph-table--ribbon"), children: [
|
|
1998
|
+
caption && /* @__PURE__ */ jsx19("caption", { className: "sr-only", children: caption }),
|
|
1999
|
+
/* @__PURE__ */ jsx19("thead", { children: /* @__PURE__ */ jsx19("tr", { children: columns.map((col) => /* @__PURE__ */ jsx19("th", { className: col.className, children: col.header }, col.key)) }) }),
|
|
2000
|
+
/* @__PURE__ */ jsx19("tbody", { children: data.map((row, i) => /* @__PURE__ */ jsx19("tr", { style: getRowStyle == null ? void 0 : getRowStyle(row), children: columns.map((col) => /* @__PURE__ */ jsx19("td", { className: col.className, children: col.cell(row) }, col.key)) }, i)) })
|
|
1194
2001
|
] }) });
|
|
1195
2002
|
}
|
|
1196
2003
|
|
|
1197
2004
|
// src/components/ui/Stat.tsx
|
|
1198
|
-
import { jsx as
|
|
2005
|
+
import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1199
2006
|
var toneMap = {
|
|
1200
2007
|
default: "text-ph-ink",
|
|
1201
2008
|
brand: "text-ph-brand",
|
|
@@ -1212,11 +2019,11 @@ var statMap = {
|
|
|
1212
2019
|
};
|
|
1213
2020
|
function Stat(_a) {
|
|
1214
2021
|
var _b = _a, { icon, label, value, footer, tone = "default", className } = _b, props = __objRest(_b, ["icon", "label", "value", "footer", "tone", "className"]);
|
|
1215
|
-
return /* @__PURE__ */
|
|
1216
|
-
icon && /* @__PURE__ */
|
|
1217
|
-
/* @__PURE__ */
|
|
1218
|
-
/* @__PURE__ */
|
|
1219
|
-
footer && /* @__PURE__ */
|
|
2022
|
+
return /* @__PURE__ */ jsxs17("article", __spreadProps(__spreadValues({ className: cn("ph-stat", statMap[tone], className) }, props), { children: [
|
|
2023
|
+
icon && /* @__PURE__ */ jsx20("div", { className: cn("mb-2 h-7 w-7", toneMap[tone]), children: icon }),
|
|
2024
|
+
/* @__PURE__ */ jsx20("div", { className: cn("ph-stat-label", tone === "warning" && toneMap[tone]), children: label }),
|
|
2025
|
+
/* @__PURE__ */ jsx20("div", { className: cn("ph-stat-val", toneMap[tone]), children: value }),
|
|
2026
|
+
footer && /* @__PURE__ */ jsx20("p", { className: "text-xs text-ph-subtle", children: footer })
|
|
1220
2027
|
] }));
|
|
1221
2028
|
}
|
|
1222
2029
|
|
|
@@ -1367,7 +2174,7 @@ function ThemeDomSync() {
|
|
|
1367
2174
|
|
|
1368
2175
|
// src/components/ui/ThemeSwitcher.tsx
|
|
1369
2176
|
import { useEffect, useState } from "react";
|
|
1370
|
-
import { jsx as
|
|
2177
|
+
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1371
2178
|
function ThemeSwitcher({ className }) {
|
|
1372
2179
|
const [themeId, setThemeId] = useState(DEFAULT_THEME_ID);
|
|
1373
2180
|
useEffect(() => {
|
|
@@ -1375,9 +2182,9 @@ function ThemeSwitcher({ className }) {
|
|
|
1375
2182
|
persistTheme(id);
|
|
1376
2183
|
setThemeId(id);
|
|
1377
2184
|
}, []);
|
|
1378
|
-
return /* @__PURE__ */
|
|
1379
|
-
/* @__PURE__ */
|
|
1380
|
-
/* @__PURE__ */
|
|
2185
|
+
return /* @__PURE__ */ jsxs18("label", { className: cn("flex min-w-0 items-center gap-2", className), children: [
|
|
2186
|
+
/* @__PURE__ */ jsx21("span", { className: "shrink-0 text-xs font-medium text-ph-mutedtext sm:text-sm", children: "Theme" }),
|
|
2187
|
+
/* @__PURE__ */ jsx21(
|
|
1381
2188
|
"select",
|
|
1382
2189
|
{
|
|
1383
2190
|
className: "ph-select max-w-[11rem] !min-h-[2rem] py-1 pl-2.5 pr-8 text-xs sm:max-w-[14rem] sm:text-sm",
|
|
@@ -1388,7 +2195,7 @@ function ThemeSwitcher({ className }) {
|
|
|
1388
2195
|
persistTheme(next);
|
|
1389
2196
|
setThemeId(next);
|
|
1390
2197
|
},
|
|
1391
|
-
children: THEME_GROUPS.map((group) => /* @__PURE__ */
|
|
2198
|
+
children: THEME_GROUPS.map((group) => /* @__PURE__ */ jsx21("optgroup", { label: group, children: THEMES.filter((theme) => theme.group === group).map((theme) => /* @__PURE__ */ jsx21("option", { value: theme.id, children: theme.name }, theme.id)) }, group))
|
|
1392
2199
|
}
|
|
1393
2200
|
)
|
|
1394
2201
|
] });
|
|
@@ -1396,7 +2203,7 @@ function ThemeSwitcher({ className }) {
|
|
|
1396
2203
|
|
|
1397
2204
|
// src/components/ui/Accordion.tsx
|
|
1398
2205
|
import { useState as useState2 } from "react";
|
|
1399
|
-
import { jsx as
|
|
2206
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1400
2207
|
function Accordion({
|
|
1401
2208
|
items,
|
|
1402
2209
|
allowMultiple = false,
|
|
@@ -1418,18 +2225,18 @@ function Accordion({
|
|
|
1418
2225
|
return next;
|
|
1419
2226
|
});
|
|
1420
2227
|
};
|
|
1421
|
-
return /* @__PURE__ */
|
|
2228
|
+
return /* @__PURE__ */ jsx22("div", { className: cn("divide-y divide-ph-border rounded-xl border border-ph-border bg-ph-surface", className), children: items.map((item) => {
|
|
1422
2229
|
const isOpen = openItems.has(item.id);
|
|
1423
|
-
return /* @__PURE__ */
|
|
1424
|
-
/* @__PURE__ */
|
|
2230
|
+
return /* @__PURE__ */ jsxs19("div", { className: "first:rounded-t-xl last:rounded-b-xl", children: [
|
|
2231
|
+
/* @__PURE__ */ jsxs19(
|
|
1425
2232
|
"button",
|
|
1426
2233
|
{
|
|
1427
2234
|
type: "button",
|
|
1428
2235
|
onClick: () => toggleItem(item.id),
|
|
1429
2236
|
className: "flex w-full items-center justify-between px-5 py-4 text-left transition hover:bg-ph-muted",
|
|
1430
2237
|
children: [
|
|
1431
|
-
/* @__PURE__ */
|
|
1432
|
-
/* @__PURE__ */
|
|
2238
|
+
/* @__PURE__ */ jsx22("span", { className: "font-semibold text-ph-ink", children: item.title }),
|
|
2239
|
+
/* @__PURE__ */ jsx22(
|
|
1433
2240
|
IconChevronDown,
|
|
1434
2241
|
{
|
|
1435
2242
|
className: cn(
|
|
@@ -1441,14 +2248,14 @@ function Accordion({
|
|
|
1441
2248
|
]
|
|
1442
2249
|
}
|
|
1443
2250
|
),
|
|
1444
|
-
/* @__PURE__ */
|
|
2251
|
+
/* @__PURE__ */ jsx22(
|
|
1445
2252
|
"div",
|
|
1446
2253
|
{
|
|
1447
2254
|
className: cn(
|
|
1448
2255
|
"grid transition-all duration-200",
|
|
1449
2256
|
isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
1450
2257
|
),
|
|
1451
|
-
children: /* @__PURE__ */
|
|
2258
|
+
children: /* @__PURE__ */ jsx22("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx22("div", { className: "px-5 pb-4 text-ph-subtle", children: item.content }) })
|
|
1452
2259
|
}
|
|
1453
2260
|
)
|
|
1454
2261
|
] }, item.id);
|
|
@@ -1456,16 +2263,16 @@ function Accordion({
|
|
|
1456
2263
|
}
|
|
1457
2264
|
|
|
1458
2265
|
// src/components/ui/SegmentedControl.tsx
|
|
1459
|
-
import { jsx as
|
|
2266
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1460
2267
|
function SegmentedControl({ options, value, onChange, className }) {
|
|
1461
|
-
return /* @__PURE__ */
|
|
2268
|
+
return /* @__PURE__ */ jsx23(
|
|
1462
2269
|
"div",
|
|
1463
2270
|
{
|
|
1464
2271
|
className: cn(
|
|
1465
2272
|
"inline-flex rounded-lg bg-ph-muted p-1",
|
|
1466
2273
|
className
|
|
1467
2274
|
),
|
|
1468
|
-
children: options.map((option) => /* @__PURE__ */
|
|
2275
|
+
children: options.map((option) => /* @__PURE__ */ jsxs20(
|
|
1469
2276
|
"button",
|
|
1470
2277
|
{
|
|
1471
2278
|
type: "button",
|
|
@@ -1476,7 +2283,7 @@ function SegmentedControl({ options, value, onChange, className }) {
|
|
|
1476
2283
|
value === option.value ? "bg-ph-surface text-ph-ink shadow-ph" : "text-ph-subtle hover:text-ph-ink"
|
|
1477
2284
|
),
|
|
1478
2285
|
children: [
|
|
1479
|
-
option.icon && /* @__PURE__ */
|
|
2286
|
+
option.icon && /* @__PURE__ */ jsx23("span", { className: "h-4 w-4", children: option.icon }),
|
|
1480
2287
|
option.label
|
|
1481
2288
|
]
|
|
1482
2289
|
},
|
|
@@ -1488,7 +2295,7 @@ function SegmentedControl({ options, value, onChange, className }) {
|
|
|
1488
2295
|
|
|
1489
2296
|
// src/components/ui/CommandPalette.tsx
|
|
1490
2297
|
import { useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
1491
|
-
import { jsx as
|
|
2298
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1492
2299
|
function CommandPalette({
|
|
1493
2300
|
items,
|
|
1494
2301
|
isOpen,
|
|
@@ -1565,7 +2372,7 @@ function CommandPalette({
|
|
|
1565
2372
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
1566
2373
|
}, [isOpen, filtered, selectedIndex, onClose]);
|
|
1567
2374
|
if (!isOpen) return null;
|
|
1568
|
-
return /* @__PURE__ */
|
|
2375
|
+
return /* @__PURE__ */ jsx24(
|
|
1569
2376
|
"div",
|
|
1570
2377
|
{
|
|
1571
2378
|
id,
|
|
@@ -1574,7 +2381,7 @@ function CommandPalette({
|
|
|
1574
2381
|
onMouseDown: (event) => {
|
|
1575
2382
|
if (event.target === event.currentTarget) onClose();
|
|
1576
2383
|
},
|
|
1577
|
-
children: /* @__PURE__ */
|
|
2384
|
+
children: /* @__PURE__ */ jsxs21(
|
|
1578
2385
|
"div",
|
|
1579
2386
|
{
|
|
1580
2387
|
ref: panelRef,
|
|
@@ -1586,9 +2393,9 @@ function CommandPalette({
|
|
|
1586
2393
|
className
|
|
1587
2394
|
),
|
|
1588
2395
|
children: [
|
|
1589
|
-
/* @__PURE__ */
|
|
1590
|
-
/* @__PURE__ */
|
|
1591
|
-
/* @__PURE__ */
|
|
2396
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-3 border-b border-ph-border px-4 py-3", children: [
|
|
2397
|
+
/* @__PURE__ */ jsx24(IconSearch, { className: "h-5 w-5 text-ph-mutedtext" }),
|
|
2398
|
+
/* @__PURE__ */ jsx24(
|
|
1592
2399
|
"input",
|
|
1593
2400
|
{
|
|
1594
2401
|
ref: inputRef,
|
|
@@ -1605,9 +2412,9 @@ function CommandPalette({
|
|
|
1605
2412
|
className: "flex-1 bg-transparent text-ph-ink outline-none placeholder:text-ph-mutedtext"
|
|
1606
2413
|
}
|
|
1607
2414
|
),
|
|
1608
|
-
/* @__PURE__ */
|
|
2415
|
+
/* @__PURE__ */ jsx24("kbd", { className: "rounded border border-ph-border bg-ph-muted px-1.5 py-0.5 text-xs text-ph-mutedtext", children: "ESC" })
|
|
1609
2416
|
] }),
|
|
1610
|
-
/* @__PURE__ */
|
|
2417
|
+
/* @__PURE__ */ jsx24("div", { className: "max-h-[50vh] overflow-y-auto py-2", children: filtered.length === 0 ? /* @__PURE__ */ jsx24("div", { className: "px-4 py-8 text-center text-sm text-ph-mutedtext", children: "No results found." }) : filtered.map((item, index) => /* @__PURE__ */ jsxs21(
|
|
1611
2418
|
"button",
|
|
1612
2419
|
{
|
|
1613
2420
|
type: "button",
|
|
@@ -1623,9 +2430,9 @@ function CommandPalette({
|
|
|
1623
2430
|
index === selectedIndex ? "bg-ph-muted text-ph-ink" : "text-ph-subtle"
|
|
1624
2431
|
),
|
|
1625
2432
|
children: [
|
|
1626
|
-
item.icon && /* @__PURE__ */
|
|
1627
|
-
/* @__PURE__ */
|
|
1628
|
-
item.shortcut && /* @__PURE__ */
|
|
2433
|
+
item.icon && /* @__PURE__ */ jsx24("span", { className: "h-5 w-5", children: item.icon }),
|
|
2434
|
+
/* @__PURE__ */ jsx24("span", { className: "flex-1", children: item.label }),
|
|
2435
|
+
item.shortcut && /* @__PURE__ */ jsx24("kbd", { className: "rounded border border-ph-border bg-ph-surface px-1.5 py-0.5 text-xs text-ph-mutedtext", children: item.shortcut })
|
|
1629
2436
|
]
|
|
1630
2437
|
},
|
|
1631
2438
|
item.id
|
|
@@ -1639,7 +2446,7 @@ function CommandPalette({
|
|
|
1639
2446
|
|
|
1640
2447
|
// src/components/ui/Calendar.tsx
|
|
1641
2448
|
import { useState as useState4 } from "react";
|
|
1642
|
-
import { jsx as
|
|
2449
|
+
import { jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1643
2450
|
function Calendar({ value, onChange, className }) {
|
|
1644
2451
|
const [currentMonth, setCurrentMonth] = useState4(value || /* @__PURE__ */ new Date());
|
|
1645
2452
|
const today = /* @__PURE__ */ new Date();
|
|
@@ -1681,37 +2488,37 @@ function Calendar({ value, onChange, className }) {
|
|
|
1681
2488
|
for (let i = 1; i <= daysInMonth; i++) {
|
|
1682
2489
|
days.push(i);
|
|
1683
2490
|
}
|
|
1684
|
-
return /* @__PURE__ */
|
|
1685
|
-
/* @__PURE__ */
|
|
1686
|
-
/* @__PURE__ */
|
|
2491
|
+
return /* @__PURE__ */ jsxs22("div", { className: cn("w-[280px] rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", className), children: [
|
|
2492
|
+
/* @__PURE__ */ jsxs22("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
2493
|
+
/* @__PURE__ */ jsx25(
|
|
1687
2494
|
"button",
|
|
1688
2495
|
{
|
|
1689
2496
|
type: "button",
|
|
1690
2497
|
onClick: prevMonth,
|
|
1691
2498
|
"aria-label": "Previous month",
|
|
1692
2499
|
className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
|
|
1693
|
-
children: /* @__PURE__ */
|
|
2500
|
+
children: /* @__PURE__ */ jsx25(IconChevronLeft, { className: "h-5 w-5", "aria-hidden": true })
|
|
1694
2501
|
}
|
|
1695
2502
|
),
|
|
1696
|
-
/* @__PURE__ */
|
|
2503
|
+
/* @__PURE__ */ jsxs22("span", { className: "text-sm font-semibold text-ph-ink", children: [
|
|
1697
2504
|
monthNames[month],
|
|
1698
2505
|
" ",
|
|
1699
2506
|
year
|
|
1700
2507
|
] }),
|
|
1701
|
-
/* @__PURE__ */
|
|
2508
|
+
/* @__PURE__ */ jsx25(
|
|
1702
2509
|
"button",
|
|
1703
2510
|
{
|
|
1704
2511
|
type: "button",
|
|
1705
2512
|
onClick: nextMonth,
|
|
1706
2513
|
"aria-label": "Next month",
|
|
1707
2514
|
className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
|
|
1708
|
-
children: /* @__PURE__ */
|
|
2515
|
+
children: /* @__PURE__ */ jsx25(IconChevronRight, { className: "h-5 w-5", "aria-hidden": true })
|
|
1709
2516
|
}
|
|
1710
2517
|
)
|
|
1711
2518
|
] }),
|
|
1712
|
-
/* @__PURE__ */
|
|
1713
|
-
weekDays.map((day) => /* @__PURE__ */
|
|
1714
|
-
days.map((day, index) => /* @__PURE__ */
|
|
2519
|
+
/* @__PURE__ */ jsxs22("div", { className: "grid grid-cols-7 gap-1", children: [
|
|
2520
|
+
weekDays.map((day) => /* @__PURE__ */ jsx25("div", { className: "py-1 text-center text-xs font-medium text-ph-mutedtext", children: day }, day)),
|
|
2521
|
+
days.map((day, index) => /* @__PURE__ */ jsx25("div", { className: "aspect-square", children: day && /* @__PURE__ */ jsx25(
|
|
1715
2522
|
"button",
|
|
1716
2523
|
{
|
|
1717
2524
|
type: "button",
|
|
@@ -1727,10 +2534,159 @@ function Calendar({ value, onChange, className }) {
|
|
|
1727
2534
|
] });
|
|
1728
2535
|
}
|
|
1729
2536
|
|
|
2537
|
+
// src/components/ui/Tooltip.tsx
|
|
2538
|
+
import {
|
|
2539
|
+
cloneElement,
|
|
2540
|
+
createContext,
|
|
2541
|
+
useContext,
|
|
2542
|
+
useEffect as useEffect3,
|
|
2543
|
+
useId as useId5,
|
|
2544
|
+
useRef as useRef3,
|
|
2545
|
+
useState as useState5
|
|
2546
|
+
} from "react";
|
|
2547
|
+
import { createPortal } from "react-dom";
|
|
2548
|
+
import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2549
|
+
var TooltipDelayContext = createContext(0);
|
|
2550
|
+
function TooltipProvider({
|
|
2551
|
+
children,
|
|
2552
|
+
delayDuration = 0
|
|
2553
|
+
}) {
|
|
2554
|
+
return /* @__PURE__ */ jsx26(TooltipDelayContext.Provider, { value: delayDuration, children });
|
|
2555
|
+
}
|
|
2556
|
+
function tooltipPosition(trigger, side, align, offset) {
|
|
2557
|
+
const horizontal = align === "start" ? trigger.left : align === "end" ? trigger.right : trigger.left + trigger.width / 2;
|
|
2558
|
+
const vertical = align === "start" ? trigger.top : align === "end" ? trigger.bottom : trigger.top + trigger.height / 2;
|
|
2559
|
+
if (side === "top")
|
|
2560
|
+
return {
|
|
2561
|
+
left: horizontal,
|
|
2562
|
+
top: trigger.top - offset,
|
|
2563
|
+
transform: "translate(-50%, -100%)"
|
|
2564
|
+
};
|
|
2565
|
+
if (side === "bottom")
|
|
2566
|
+
return {
|
|
2567
|
+
left: horizontal,
|
|
2568
|
+
top: trigger.bottom + offset,
|
|
2569
|
+
transform: "translate(-50%, 0)"
|
|
2570
|
+
};
|
|
2571
|
+
if (side === "left")
|
|
2572
|
+
return {
|
|
2573
|
+
left: trigger.left - offset,
|
|
2574
|
+
top: vertical,
|
|
2575
|
+
transform: "translate(-100%, -50%)"
|
|
2576
|
+
};
|
|
2577
|
+
return {
|
|
2578
|
+
left: trigger.right + offset,
|
|
2579
|
+
top: vertical,
|
|
2580
|
+
transform: "translate(0, -50%)"
|
|
2581
|
+
};
|
|
2582
|
+
}
|
|
2583
|
+
function Tooltip({
|
|
2584
|
+
content,
|
|
2585
|
+
children,
|
|
2586
|
+
side = "top",
|
|
2587
|
+
align = "center",
|
|
2588
|
+
sideOffset = 7,
|
|
2589
|
+
className,
|
|
2590
|
+
open,
|
|
2591
|
+
defaultOpen = false,
|
|
2592
|
+
onOpenChange,
|
|
2593
|
+
delayDuration
|
|
2594
|
+
}) {
|
|
2595
|
+
const providerDelay = useContext(TooltipDelayContext);
|
|
2596
|
+
const generatedId = useId5().replace(/:/g, "");
|
|
2597
|
+
const triggerRef = useRef3(null);
|
|
2598
|
+
const timerRef = useRef3(null);
|
|
2599
|
+
const [internalOpen, setInternalOpen] = useState5(defaultOpen);
|
|
2600
|
+
const [position, setPosition] = useState5(null);
|
|
2601
|
+
const isOpen = open != null ? open : internalOpen;
|
|
2602
|
+
const triggerId = children.props.id;
|
|
2603
|
+
const tooltipId = triggerId ? `${triggerId}-tooltip` : `ph-tooltip-${generatedId}`;
|
|
2604
|
+
function setOpen(next) {
|
|
2605
|
+
if (open === void 0) setInternalOpen(next);
|
|
2606
|
+
onOpenChange == null ? void 0 : onOpenChange(next);
|
|
2607
|
+
}
|
|
2608
|
+
function clearTimer() {
|
|
2609
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
2610
|
+
timerRef.current = null;
|
|
2611
|
+
}
|
|
2612
|
+
function updatePosition() {
|
|
2613
|
+
if (!triggerRef.current) return;
|
|
2614
|
+
setPosition(
|
|
2615
|
+
tooltipPosition(
|
|
2616
|
+
triggerRef.current.getBoundingClientRect(),
|
|
2617
|
+
side,
|
|
2618
|
+
align,
|
|
2619
|
+
sideOffset
|
|
2620
|
+
)
|
|
2621
|
+
);
|
|
2622
|
+
}
|
|
2623
|
+
function show(immediate) {
|
|
2624
|
+
clearTimer();
|
|
2625
|
+
updatePosition();
|
|
2626
|
+
const delay = immediate ? 0 : delayDuration != null ? delayDuration : providerDelay;
|
|
2627
|
+
if (!delay) setOpen(true);
|
|
2628
|
+
else timerRef.current = setTimeout(() => setOpen(true), delay);
|
|
2629
|
+
}
|
|
2630
|
+
function hide() {
|
|
2631
|
+
clearTimer();
|
|
2632
|
+
setOpen(false);
|
|
2633
|
+
}
|
|
2634
|
+
useEffect3(() => {
|
|
2635
|
+
if (!isOpen) return;
|
|
2636
|
+
const reposition = () => updatePosition();
|
|
2637
|
+
window.addEventListener("resize", reposition);
|
|
2638
|
+
window.addEventListener("scroll", reposition, true);
|
|
2639
|
+
return () => {
|
|
2640
|
+
window.removeEventListener("resize", reposition);
|
|
2641
|
+
window.removeEventListener("scroll", reposition, true);
|
|
2642
|
+
};
|
|
2643
|
+
});
|
|
2644
|
+
useEffect3(() => () => clearTimer(), []);
|
|
2645
|
+
const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
|
|
2646
|
+
const trigger = cloneElement(children, { "aria-describedby": describedBy });
|
|
2647
|
+
return /* @__PURE__ */ jsxs23(Fragment4, { children: [
|
|
2648
|
+
/* @__PURE__ */ jsx26(
|
|
2649
|
+
"span",
|
|
2650
|
+
{
|
|
2651
|
+
ref: triggerRef,
|
|
2652
|
+
className: "inline-flex",
|
|
2653
|
+
onMouseEnter: () => show(false),
|
|
2654
|
+
onMouseLeave: hide,
|
|
2655
|
+
onFocusCapture: () => show(true),
|
|
2656
|
+
onBlurCapture: hide,
|
|
2657
|
+
onKeyDown: (event) => {
|
|
2658
|
+
if (event.key === "Escape") hide();
|
|
2659
|
+
},
|
|
2660
|
+
children: trigger
|
|
2661
|
+
}
|
|
2662
|
+
),
|
|
2663
|
+
isOpen && position && typeof document !== "undefined" ? createPortal(
|
|
2664
|
+
/* @__PURE__ */ jsx26(
|
|
2665
|
+
"span",
|
|
2666
|
+
{
|
|
2667
|
+
style: __spreadValues({ position: "fixed" }, position),
|
|
2668
|
+
className: "pointer-events-none z-[200]",
|
|
2669
|
+
children: /* @__PURE__ */ jsx26(
|
|
2670
|
+
"span",
|
|
2671
|
+
{
|
|
2672
|
+
id: tooltipId,
|
|
2673
|
+
role: "tooltip",
|
|
2674
|
+
"data-side": side,
|
|
2675
|
+
className: cn("ph-tooltip-content", className),
|
|
2676
|
+
children: content
|
|
2677
|
+
}
|
|
2678
|
+
)
|
|
2679
|
+
}
|
|
2680
|
+
),
|
|
2681
|
+
document.body
|
|
2682
|
+
) : null
|
|
2683
|
+
] });
|
|
2684
|
+
}
|
|
2685
|
+
|
|
1730
2686
|
// src/components/ui/EmptyState.tsx
|
|
1731
|
-
import { jsx as
|
|
2687
|
+
import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1732
2688
|
function EmptyState({ icon, title, description, action, className }) {
|
|
1733
|
-
return /* @__PURE__ */
|
|
2689
|
+
return /* @__PURE__ */ jsxs24(
|
|
1734
2690
|
"div",
|
|
1735
2691
|
{
|
|
1736
2692
|
className: cn(
|
|
@@ -1738,17 +2694,17 @@ function EmptyState({ icon, title, description, action, className }) {
|
|
|
1738
2694
|
className
|
|
1739
2695
|
),
|
|
1740
2696
|
children: [
|
|
1741
|
-
icon && /* @__PURE__ */
|
|
1742
|
-
/* @__PURE__ */
|
|
1743
|
-
description && /* @__PURE__ */
|
|
1744
|
-
action && /* @__PURE__ */
|
|
2697
|
+
icon && /* @__PURE__ */ jsx27("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-ph-muted text-ph-mutedtext", children: icon }),
|
|
2698
|
+
/* @__PURE__ */ jsx27("h3", { className: "text-base font-semibold text-ph-ink", children: title }),
|
|
2699
|
+
description && /* @__PURE__ */ jsx27("p", { className: "mt-1 max-w-sm text-sm text-ph-subtle", children: description }),
|
|
2700
|
+
action && /* @__PURE__ */ jsx27("div", { className: "mt-4", children: action })
|
|
1745
2701
|
]
|
|
1746
2702
|
}
|
|
1747
2703
|
);
|
|
1748
2704
|
}
|
|
1749
2705
|
|
|
1750
2706
|
// src/components/ui/FilterChips.tsx
|
|
1751
|
-
import { Fragment as
|
|
2707
|
+
import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1752
2708
|
function FilterChips({
|
|
1753
2709
|
chips,
|
|
1754
2710
|
onToggle,
|
|
@@ -1756,20 +2712,20 @@ function FilterChips({
|
|
|
1756
2712
|
className,
|
|
1757
2713
|
"aria-label": ariaLabel = "Applied filters"
|
|
1758
2714
|
}) {
|
|
1759
|
-
return /* @__PURE__ */
|
|
2715
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("ph-filter-chips", className), role: "group", "aria-label": ariaLabel, children: chips.map((chip) => {
|
|
1760
2716
|
var _a;
|
|
1761
2717
|
const label = (_a = chip.removeLabel) != null ? _a : getChipText(chip);
|
|
1762
|
-
const content = /* @__PURE__ */
|
|
1763
|
-
/* @__PURE__ */
|
|
1764
|
-
chip.value != null ? /* @__PURE__ */
|
|
2718
|
+
const content = /* @__PURE__ */ jsxs25(Fragment5, { children: [
|
|
2719
|
+
/* @__PURE__ */ jsx28("span", { className: "ph-filter-chip__label", children: chip.label }),
|
|
2720
|
+
chip.value != null ? /* @__PURE__ */ jsx28("span", { className: "ph-filter-chip__value", children: chip.value }) : null
|
|
1765
2721
|
] });
|
|
1766
|
-
return /* @__PURE__ */
|
|
2722
|
+
return /* @__PURE__ */ jsxs25(
|
|
1767
2723
|
"span",
|
|
1768
2724
|
{
|
|
1769
2725
|
className: cn("ph-filter-chip", chip.active && "ph-filter-chip--active"),
|
|
1770
2726
|
"data-state": chip.active ? "on" : "off",
|
|
1771
2727
|
children: [
|
|
1772
|
-
onToggle ? /* @__PURE__ */
|
|
2728
|
+
onToggle ? /* @__PURE__ */ jsx28(
|
|
1773
2729
|
"button",
|
|
1774
2730
|
{
|
|
1775
2731
|
type: "button",
|
|
@@ -1778,15 +2734,15 @@ function FilterChips({
|
|
|
1778
2734
|
onClick: () => onToggle(chip.id),
|
|
1779
2735
|
children: content
|
|
1780
2736
|
}
|
|
1781
|
-
) : /* @__PURE__ */
|
|
1782
|
-
chip.active && onRemove ? /* @__PURE__ */
|
|
2737
|
+
) : /* @__PURE__ */ jsx28("span", { className: "ph-filter-chip__main", children: content }),
|
|
2738
|
+
chip.active && onRemove ? /* @__PURE__ */ jsx28(
|
|
1783
2739
|
"button",
|
|
1784
2740
|
{
|
|
1785
2741
|
type: "button",
|
|
1786
2742
|
className: "ph-filter-chip__remove",
|
|
1787
2743
|
"aria-label": `Remove ${label} filter`,
|
|
1788
2744
|
onClick: () => onRemove(chip.id),
|
|
1789
|
-
children: /* @__PURE__ */
|
|
2745
|
+
children: /* @__PURE__ */ jsx28(IconClose, { className: "h-3 w-3", "aria-hidden": true })
|
|
1790
2746
|
}
|
|
1791
2747
|
) : null
|
|
1792
2748
|
]
|
|
@@ -1802,7 +2758,7 @@ function getChipText(chip) {
|
|
|
1802
2758
|
}
|
|
1803
2759
|
|
|
1804
2760
|
// src/components/ui/FilterBar.tsx
|
|
1805
|
-
import { jsx as
|
|
2761
|
+
import { jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1806
2762
|
function FilterBar(_a) {
|
|
1807
2763
|
var _b = _a, {
|
|
1808
2764
|
children,
|
|
@@ -1819,12 +2775,12 @@ function FilterBar(_a) {
|
|
|
1819
2775
|
"resultCount",
|
|
1820
2776
|
"className"
|
|
1821
2777
|
]);
|
|
1822
|
-
return /* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
2778
|
+
return /* @__PURE__ */ jsxs26("div", __spreadProps(__spreadValues({ className: cn("ph-filter-bar", className) }, props), { children: [
|
|
2779
|
+
/* @__PURE__ */ jsxs26("div", { className: "ph-filter-bar__controls", role: "group", "aria-label": label, children: [
|
|
1824
2780
|
children,
|
|
1825
|
-
onClear ? /* @__PURE__ */
|
|
2781
|
+
onClear ? /* @__PURE__ */ jsx29("button", { type: "button", className: "ph-filter-bar__clear", onClick: onClear, children: clearLabel }) : null
|
|
1826
2782
|
] }),
|
|
1827
|
-
resultCount != null ? /* @__PURE__ */
|
|
2783
|
+
resultCount != null ? /* @__PURE__ */ jsx29("output", { className: "ph-filter-bar__results", "aria-live": "polite", children: resultCount }) : null
|
|
1828
2784
|
] }));
|
|
1829
2785
|
}
|
|
1830
2786
|
function FilterMenu({
|
|
@@ -1841,19 +2797,19 @@ function FilterMenu({
|
|
|
1841
2797
|
const selected = options.find((option) => option.value === value);
|
|
1842
2798
|
const displayValue = (_a = selected == null ? void 0 : selected.label) != null ? _a : placeholder;
|
|
1843
2799
|
const accessibleValue = selected ? getOptionText(selected) : String(placeholder);
|
|
1844
|
-
return /* @__PURE__ */
|
|
2800
|
+
return /* @__PURE__ */ jsx29(
|
|
1845
2801
|
DropdownMenu,
|
|
1846
2802
|
{
|
|
1847
2803
|
"aria-label": `${label}: ${accessibleValue}`,
|
|
1848
2804
|
align,
|
|
1849
2805
|
disabled,
|
|
1850
2806
|
className,
|
|
1851
|
-
trigger: /* @__PURE__ */
|
|
1852
|
-
/* @__PURE__ */
|
|
1853
|
-
/* @__PURE__ */
|
|
1854
|
-
/* @__PURE__ */
|
|
2807
|
+
trigger: /* @__PURE__ */ jsxs26("span", { className: cn("ph-filter-menu-trigger", selected && "ph-filter-menu-trigger--active"), children: [
|
|
2808
|
+
/* @__PURE__ */ jsx29(IconTuning, { className: "h-3.5 w-3.5", "aria-hidden": true }),
|
|
2809
|
+
/* @__PURE__ */ jsx29("span", { className: "ph-filter-menu-trigger__label", children: label }),
|
|
2810
|
+
/* @__PURE__ */ jsx29("span", { className: "ph-filter-menu-trigger__value", children: displayValue })
|
|
1855
2811
|
] }),
|
|
1856
|
-
children: /* @__PURE__ */
|
|
2812
|
+
children: /* @__PURE__ */ jsx29(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx29(
|
|
1857
2813
|
DropdownRadioItem,
|
|
1858
2814
|
{
|
|
1859
2815
|
value: option.value,
|
|
@@ -1877,25 +2833,25 @@ function SortMenu({
|
|
|
1877
2833
|
className
|
|
1878
2834
|
}) {
|
|
1879
2835
|
const selected = options.find((option) => option.value === value);
|
|
1880
|
-
return /* @__PURE__ */
|
|
2836
|
+
return /* @__PURE__ */ jsx29(
|
|
1881
2837
|
DropdownMenu,
|
|
1882
2838
|
{
|
|
1883
2839
|
"aria-label": `${label}: ${selected ? getOptionText(selected) : "Choose sort order"}`,
|
|
1884
2840
|
align,
|
|
1885
2841
|
disabled,
|
|
1886
2842
|
className,
|
|
1887
|
-
trigger: /* @__PURE__ */
|
|
1888
|
-
/* @__PURE__ */
|
|
2843
|
+
trigger: /* @__PURE__ */ jsxs26("span", { className: "ph-filter-menu-trigger ph-sort-menu-trigger", children: [
|
|
2844
|
+
/* @__PURE__ */ jsx29(
|
|
1889
2845
|
IconArrowDown,
|
|
1890
2846
|
{
|
|
1891
2847
|
className: cn("h-3.5 w-3.5", direction === "ascending" && "rotate-180"),
|
|
1892
2848
|
"aria-hidden": true
|
|
1893
2849
|
}
|
|
1894
2850
|
),
|
|
1895
|
-
/* @__PURE__ */
|
|
1896
|
-
selected ? /* @__PURE__ */
|
|
2851
|
+
/* @__PURE__ */ jsx29("span", { className: "ph-filter-menu-trigger__label", children: label }),
|
|
2852
|
+
selected ? /* @__PURE__ */ jsx29("span", { className: "ph-filter-menu-trigger__value", children: selected.label }) : null
|
|
1897
2853
|
] }),
|
|
1898
|
-
children: /* @__PURE__ */
|
|
2854
|
+
children: /* @__PURE__ */ jsx29(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ jsx29(
|
|
1899
2855
|
DropdownRadioItem,
|
|
1900
2856
|
{
|
|
1901
2857
|
value: option.value,
|
|
@@ -1915,7 +2871,7 @@ function getOptionText(option) {
|
|
|
1915
2871
|
}
|
|
1916
2872
|
|
|
1917
2873
|
// src/components/ui/FilterControls.tsx
|
|
1918
|
-
import { jsx as
|
|
2874
|
+
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1919
2875
|
function FilterControls(_a) {
|
|
1920
2876
|
var _b = _a, {
|
|
1921
2877
|
children,
|
|
@@ -1931,33 +2887,33 @@ function FilterControls(_a) {
|
|
|
1931
2887
|
"className"
|
|
1932
2888
|
]);
|
|
1933
2889
|
const hasChips = Boolean(chipsProps == null ? void 0 : chipsProps.chips.length);
|
|
1934
|
-
return /* @__PURE__ */
|
|
1935
|
-
/* @__PURE__ */
|
|
1936
|
-
hasChips && chipsProps ? /* @__PURE__ */
|
|
2890
|
+
return /* @__PURE__ */ jsxs27("div", __spreadProps(__spreadValues({ className: cn("ph-filter-controls", className) }, props), { children: [
|
|
2891
|
+
/* @__PURE__ */ jsx30(FilterBar, __spreadProps(__spreadValues({}, barProps), { children })),
|
|
2892
|
+
hasChips && chipsProps ? /* @__PURE__ */ jsx30(FilterChips, __spreadValues({}, chipsProps)) : emptyState != null ? emptyState : null
|
|
1937
2893
|
] }));
|
|
1938
2894
|
}
|
|
1939
2895
|
|
|
1940
2896
|
// src/components/ui/CodeBlock.tsx
|
|
1941
|
-
import { useState as
|
|
1942
|
-
import { jsx as
|
|
2897
|
+
import { useState as useState6 } from "react";
|
|
2898
|
+
import { jsx as jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1943
2899
|
function CodeBlock({ code, language = "tsx", filename, className }) {
|
|
1944
|
-
const [copied, setCopied] =
|
|
2900
|
+
const [copied, setCopied] = useState6(false);
|
|
1945
2901
|
const handleCopy = async () => {
|
|
1946
2902
|
await navigator.clipboard.writeText(code);
|
|
1947
2903
|
setCopied(true);
|
|
1948
2904
|
setTimeout(() => setCopied(false), 2e3);
|
|
1949
2905
|
};
|
|
1950
|
-
return /* @__PURE__ */
|
|
1951
|
-
(filename || language) && /* @__PURE__ */
|
|
1952
|
-
/* @__PURE__ */
|
|
1953
|
-
/* @__PURE__ */
|
|
1954
|
-
/* @__PURE__ */
|
|
1955
|
-
/* @__PURE__ */
|
|
1956
|
-
/* @__PURE__ */
|
|
2906
|
+
return /* @__PURE__ */ jsxs28("div", { className: cn("overflow-hidden rounded-lg border border-ph-border bg-[#1a1a2e]", className), children: [
|
|
2907
|
+
(filename || language) && /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between border-b border-white/10 px-4 py-2", children: [
|
|
2908
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
|
|
2909
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex gap-1.5", children: [
|
|
2910
|
+
/* @__PURE__ */ jsx31("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
|
|
2911
|
+
/* @__PURE__ */ jsx31("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
|
|
2912
|
+
/* @__PURE__ */ jsx31("div", { className: "h-3 w-3 rounded-full bg-emerald-400" })
|
|
1957
2913
|
] }),
|
|
1958
|
-
filename && /* @__PURE__ */
|
|
2914
|
+
filename && /* @__PURE__ */ jsx31("span", { className: "ml-2 text-xs text-white/60", children: filename })
|
|
1959
2915
|
] }),
|
|
1960
|
-
/* @__PURE__ */
|
|
2916
|
+
/* @__PURE__ */ jsx31(
|
|
1961
2917
|
"button",
|
|
1962
2918
|
{
|
|
1963
2919
|
type: "button",
|
|
@@ -1967,35 +2923,35 @@ function CodeBlock({ code, language = "tsx", filename, className }) {
|
|
|
1967
2923
|
}
|
|
1968
2924
|
)
|
|
1969
2925
|
] }),
|
|
1970
|
-
/* @__PURE__ */
|
|
2926
|
+
/* @__PURE__ */ jsx31("pre", { className: "overflow-x-auto p-4 text-sm leading-relaxed", children: /* @__PURE__ */ jsx31("code", { className: "font-mono text-[#e4e4e7]", children: code }) })
|
|
1971
2927
|
] });
|
|
1972
2928
|
}
|
|
1973
2929
|
|
|
1974
2930
|
// src/components/ui/ComponentDocs.tsx
|
|
1975
|
-
import { jsx as
|
|
2931
|
+
import { jsx as jsx32, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1976
2932
|
function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false, className }) {
|
|
1977
|
-
return /* @__PURE__ */
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
1980
|
-
/* @__PURE__ */
|
|
1981
|
-
/* @__PURE__ */
|
|
1982
|
-
/* @__PURE__ */
|
|
2933
|
+
return /* @__PURE__ */ jsxs29("details", { className: cn("ph-panel group overflow-hidden p-0", className), open: defaultOpen, children: [
|
|
2934
|
+
/* @__PURE__ */ jsxs29("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 border-b border-ph-border px-4 py-3 transition hover:bg-ph-muted/60 [&::-webkit-details-marker]:hidden", children: [
|
|
2935
|
+
/* @__PURE__ */ jsx32("h3", { className: "text-xs font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
|
|
2936
|
+
/* @__PURE__ */ jsxs29("span", { className: "rounded-full border border-ph-border bg-ph-surface px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext transition group-open:bg-ph-brand group-open:text-white", children: [
|
|
2937
|
+
/* @__PURE__ */ jsx32("span", { className: "group-open:hidden", children: "Show" }),
|
|
2938
|
+
/* @__PURE__ */ jsx32("span", { className: "hidden group-open:inline", children: "Hide" })
|
|
1983
2939
|
] })
|
|
1984
2940
|
] }),
|
|
1985
|
-
/* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
1987
|
-
/* @__PURE__ */
|
|
1988
|
-
/* @__PURE__ */
|
|
1989
|
-
/* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
2941
|
+
/* @__PURE__ */ jsx32("div", { className: "overflow-x-auto border-t border-ph-border", children: /* @__PURE__ */ jsxs29("table", { className: "w-full text-left text-sm", children: [
|
|
2942
|
+
/* @__PURE__ */ jsx32("thead", { className: "bg-ph-muted text-xs uppercase tracking-wider text-ph-mutedtext", children: /* @__PURE__ */ jsxs29("tr", { children: [
|
|
2943
|
+
/* @__PURE__ */ jsx32("th", { className: "px-4 py-2 font-semibold", children: "Prop" }),
|
|
2944
|
+
/* @__PURE__ */ jsx32("th", { className: "px-4 py-2 font-semibold", children: "Type" }),
|
|
2945
|
+
/* @__PURE__ */ jsx32("th", { className: "px-4 py-2 font-semibold", children: "Default" }),
|
|
2946
|
+
/* @__PURE__ */ jsx32("th", { className: "px-4 py-2 font-semibold", children: "Use" })
|
|
1991
2947
|
] }) }),
|
|
1992
|
-
/* @__PURE__ */
|
|
2948
|
+
/* @__PURE__ */ jsx32("tbody", { className: "divide-y divide-ph-border", children: rows.map((row) => {
|
|
1993
2949
|
var _a, _b;
|
|
1994
|
-
return /* @__PURE__ */
|
|
1995
|
-
/* @__PURE__ */
|
|
1996
|
-
/* @__PURE__ */
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
/* @__PURE__ */
|
|
2950
|
+
return /* @__PURE__ */ jsxs29("tr", { children: [
|
|
2951
|
+
/* @__PURE__ */ jsx32("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-ink", children: row.name }),
|
|
2952
|
+
/* @__PURE__ */ jsx32("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: row.type }),
|
|
2953
|
+
/* @__PURE__ */ jsx32("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: (_a = row.defaultValue) != null ? _a : "-" }),
|
|
2954
|
+
/* @__PURE__ */ jsx32("td", { className: "px-4 py-3 align-top text-ph-subtle", children: (_b = row.description) != null ? _b : /* @__PURE__ */ jsx32("span", { className: "text-ph-mutedtext", children: "\u2014" }) })
|
|
1999
2955
|
] }, row.name);
|
|
2000
2956
|
}) })
|
|
2001
2957
|
] }) })
|
|
@@ -2003,8 +2959,8 @@ function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false,
|
|
|
2003
2959
|
}
|
|
2004
2960
|
|
|
2005
2961
|
// src/components/ui/ShowcaseWrapper.tsx
|
|
2006
|
-
import { useState as
|
|
2007
|
-
import { jsx as
|
|
2962
|
+
import { useState as useState7 } from "react";
|
|
2963
|
+
import { jsx as jsx33, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2008
2964
|
function ShowcaseWrapper({
|
|
2009
2965
|
id,
|
|
2010
2966
|
title,
|
|
@@ -2016,13 +2972,13 @@ function ShowcaseWrapper({
|
|
|
2016
2972
|
className
|
|
2017
2973
|
}) {
|
|
2018
2974
|
var _a;
|
|
2019
|
-
const [showCode, setShowCode] =
|
|
2975
|
+
const [showCode, setShowCode] = useState7(false);
|
|
2020
2976
|
const fallbackId = (_a = titleIdMap[title]) != null ? _a : title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
2021
|
-
return /* @__PURE__ */
|
|
2022
|
-
/* @__PURE__ */
|
|
2023
|
-
/* @__PURE__ */
|
|
2024
|
-
/* @__PURE__ */
|
|
2025
|
-
/* @__PURE__ */
|
|
2977
|
+
return /* @__PURE__ */ jsxs30("section", { id: id != null ? id : fallbackId, className: cn("scroll-mt-20", className), children: [
|
|
2978
|
+
/* @__PURE__ */ jsxs30("div", { className: "ph-h2-rule mb-8", children: [
|
|
2979
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1.5", children: [
|
|
2980
|
+
/* @__PURE__ */ jsx33("h2", { children: title }),
|
|
2981
|
+
/* @__PURE__ */ jsx33(
|
|
2026
2982
|
"button",
|
|
2027
2983
|
{
|
|
2028
2984
|
type: "button",
|
|
@@ -2033,15 +2989,15 @@ function ShowcaseWrapper({
|
|
|
2033
2989
|
),
|
|
2034
2990
|
title: showCode ? "Hide code" : "Show code",
|
|
2035
2991
|
"aria-label": showCode ? "Hide code" : "Show code",
|
|
2036
|
-
children: /* @__PURE__ */
|
|
2992
|
+
children: /* @__PURE__ */ jsx33(IconCodePreview, { className: "h-5 w-5", "aria-hidden": true })
|
|
2037
2993
|
}
|
|
2038
2994
|
)
|
|
2039
2995
|
] }),
|
|
2040
|
-
/* @__PURE__ */
|
|
2996
|
+
/* @__PURE__ */ jsx33("hr", {})
|
|
2041
2997
|
] }),
|
|
2042
|
-
description && /* @__PURE__ */
|
|
2043
|
-
docs && /* @__PURE__ */
|
|
2044
|
-
/* @__PURE__ */
|
|
2998
|
+
description && /* @__PURE__ */ jsx33("p", { className: "mb-6 text-sm text-ph-subtle", children: description }),
|
|
2999
|
+
docs && /* @__PURE__ */ jsx33("div", { className: "mb-6", children: docs }),
|
|
3000
|
+
/* @__PURE__ */ jsxs30(
|
|
2045
3001
|
"div",
|
|
2046
3002
|
{
|
|
2047
3003
|
className: cn(
|
|
@@ -2049,15 +3005,15 @@ function ShowcaseWrapper({
|
|
|
2049
3005
|
showCode ? "lg:grid lg:grid-cols-[1fr,minmax(360px,420px)]" : "block"
|
|
2050
3006
|
),
|
|
2051
3007
|
children: [
|
|
2052
|
-
/* @__PURE__ */
|
|
2053
|
-
/* @__PURE__ */
|
|
3008
|
+
/* @__PURE__ */ jsx33("div", { className: cn("min-w-0", showCode && "lg:pr-2"), children }),
|
|
3009
|
+
/* @__PURE__ */ jsx33(
|
|
2054
3010
|
"div",
|
|
2055
3011
|
{
|
|
2056
3012
|
className: cn(
|
|
2057
3013
|
"transition-all duration-300",
|
|
2058
3014
|
showCode ? "block opacity-100" : "hidden opacity-0 lg:hidden"
|
|
2059
3015
|
),
|
|
2060
|
-
children: /* @__PURE__ */
|
|
3016
|
+
children: /* @__PURE__ */ jsx33("div", { className: "sticky top-20", children: /* @__PURE__ */ jsx33(CodeBlock, { code, filename }) })
|
|
2061
3017
|
}
|
|
2062
3018
|
)
|
|
2063
3019
|
]
|
|
@@ -2106,14 +3062,14 @@ var titleIdMap = {
|
|
|
2106
3062
|
};
|
|
2107
3063
|
|
|
2108
3064
|
// src/components/ui/CollapsibleSection.tsx
|
|
2109
|
-
import { useId as
|
|
2110
|
-
import { jsx as
|
|
3065
|
+
import { useId as useId6, useState as useState8 } from "react";
|
|
3066
|
+
import { jsx as jsx34, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2111
3067
|
function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
2112
|
-
const [isOpen, setIsOpen] =
|
|
2113
|
-
const generatedId =
|
|
3068
|
+
const [isOpen, setIsOpen] = useState8(defaultOpen);
|
|
3069
|
+
const generatedId = useId6();
|
|
2114
3070
|
const contentId = `${id != null ? id : generatedId}-content`;
|
|
2115
|
-
return /* @__PURE__ */
|
|
2116
|
-
/* @__PURE__ */
|
|
3071
|
+
return /* @__PURE__ */ jsxs31("section", { id, className: "scroll-mt-20", children: [
|
|
3072
|
+
/* @__PURE__ */ jsxs31(
|
|
2117
3073
|
"button",
|
|
2118
3074
|
{
|
|
2119
3075
|
type: "button",
|
|
@@ -2122,8 +3078,8 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
2122
3078
|
"aria-controls": contentId,
|
|
2123
3079
|
className: "mb-6 flex w-full items-center justify-between rounded-lg border border-ph-border bg-ph-muted px-5 py-4 text-left transition hover:bg-ph-muted/80",
|
|
2124
3080
|
children: [
|
|
2125
|
-
/* @__PURE__ */
|
|
2126
|
-
/* @__PURE__ */
|
|
3081
|
+
/* @__PURE__ */ jsx34("span", { className: "text-lg font-bold text-ph-ink", children: title }),
|
|
3082
|
+
/* @__PURE__ */ jsx34(
|
|
2127
3083
|
IconChevronDown,
|
|
2128
3084
|
{
|
|
2129
3085
|
className: cn(
|
|
@@ -2136,7 +3092,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
2136
3092
|
]
|
|
2137
3093
|
}
|
|
2138
3094
|
),
|
|
2139
|
-
/* @__PURE__ */
|
|
3095
|
+
/* @__PURE__ */ jsx34(
|
|
2140
3096
|
"div",
|
|
2141
3097
|
{
|
|
2142
3098
|
id: contentId,
|
|
@@ -2152,7 +3108,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
2152
3108
|
}
|
|
2153
3109
|
|
|
2154
3110
|
// src/components/ui/Typography.tsx
|
|
2155
|
-
import { jsx as
|
|
3111
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2156
3112
|
var toneMap2 = {
|
|
2157
3113
|
default: "text-ph-ink",
|
|
2158
3114
|
muted: "text-ph-mutedtext",
|
|
@@ -2181,50 +3137,50 @@ function Display({
|
|
|
2181
3137
|
truncate,
|
|
2182
3138
|
className
|
|
2183
3139
|
}) {
|
|
2184
|
-
return /* @__PURE__ */
|
|
3140
|
+
return /* @__PURE__ */ jsx35("h1", { className: textClass("ph-hero-title", tone, weight, truncate, className), children });
|
|
2185
3141
|
}
|
|
2186
3142
|
function SectionTitle({ children, tone = "default", weight, truncate, className }) {
|
|
2187
|
-
return /* @__PURE__ */
|
|
3143
|
+
return /* @__PURE__ */ jsx35("h2", { className: textClass("ph-section-title", tone, weight, truncate, className), children });
|
|
2188
3144
|
}
|
|
2189
3145
|
function H1({ children, tone = "default", weight, truncate, className }) {
|
|
2190
|
-
return /* @__PURE__ */
|
|
3146
|
+
return /* @__PURE__ */ jsx35("h1", { className: textClass("text-3xl font-bold tracking-tight md:text-4xl", tone, weight, truncate, className), children });
|
|
2191
3147
|
}
|
|
2192
3148
|
function H2({ children, tone = "default", weight, truncate, className }) {
|
|
2193
|
-
return /* @__PURE__ */
|
|
3149
|
+
return /* @__PURE__ */ jsx35("h2", { className: textClass("text-2xl font-bold tracking-tight", tone, weight, truncate, className), children });
|
|
2194
3150
|
}
|
|
2195
3151
|
function H3({ children, tone = "default", weight, truncate, className }) {
|
|
2196
|
-
return /* @__PURE__ */
|
|
3152
|
+
return /* @__PURE__ */ jsx35("h3", { className: textClass("text-xl font-semibold", tone, weight, truncate, className), children });
|
|
2197
3153
|
}
|
|
2198
3154
|
function H4({ children, tone = "default", weight, truncate, className }) {
|
|
2199
|
-
return /* @__PURE__ */
|
|
3155
|
+
return /* @__PURE__ */ jsx35("h4", { className: textClass("text-lg font-semibold", tone, weight, truncate, className), children });
|
|
2200
3156
|
}
|
|
2201
3157
|
function H5({ children, tone = "default", weight, truncate, className }) {
|
|
2202
|
-
return /* @__PURE__ */
|
|
3158
|
+
return /* @__PURE__ */ jsx35("h5", { className: textClass("text-base font-semibold", tone, weight, truncate, className), children });
|
|
2203
3159
|
}
|
|
2204
3160
|
function P({ children, tone = "default", weight, truncate, className }) {
|
|
2205
|
-
return /* @__PURE__ */
|
|
3161
|
+
return /* @__PURE__ */ jsx35("p", { className: textClass("text-base leading-relaxed", tone, weight, truncate, className), children });
|
|
2206
3162
|
}
|
|
2207
3163
|
function Small({ children, tone = "default", weight, truncate, className }) {
|
|
2208
|
-
return /* @__PURE__ */
|
|
3164
|
+
return /* @__PURE__ */ jsx35("span", { className: textClass("text-sm leading-relaxed", tone, weight, truncate, className), children });
|
|
2209
3165
|
}
|
|
2210
3166
|
function Caption({ children, tone = "muted", weight, truncate, className }) {
|
|
2211
|
-
return /* @__PURE__ */
|
|
3167
|
+
return /* @__PURE__ */ jsx35("span", { className: textClass("text-[11px] font-medium uppercase tracking-wider", tone, weight, truncate, className), children });
|
|
2212
3168
|
}
|
|
2213
3169
|
function Overline({ children, tone = "muted", weight, truncate, className }) {
|
|
2214
|
-
return /* @__PURE__ */
|
|
3170
|
+
return /* @__PURE__ */ jsx35("span", { className: textClass("text-[10px] font-bold uppercase tracking-[0.15em]", tone, weight, truncate, className), children });
|
|
2215
3171
|
}
|
|
2216
3172
|
function Lead({ children, tone = "subtle", weight, truncate, className }) {
|
|
2217
|
-
return /* @__PURE__ */
|
|
3173
|
+
return /* @__PURE__ */ jsx35("p", { className: textClass("ph-lead", tone, weight, truncate, className), children });
|
|
2218
3174
|
}
|
|
2219
3175
|
function Mono({ children, tone = "default", weight, truncate, className }) {
|
|
2220
|
-
return /* @__PURE__ */
|
|
3176
|
+
return /* @__PURE__ */ jsx35("code", { className: textClass("text-sm font-mono leading-relaxed", tone, weight, truncate, className), children });
|
|
2221
3177
|
}
|
|
2222
3178
|
function Label({ children, tone = "default", weight, truncate, className }) {
|
|
2223
|
-
return /* @__PURE__ */
|
|
3179
|
+
return /* @__PURE__ */ jsx35("label", { className: textClass("text-sm font-medium", tone, weight, truncate, className), children });
|
|
2224
3180
|
}
|
|
2225
3181
|
|
|
2226
3182
|
// src/components/ui/Avatar.tsx
|
|
2227
|
-
import { jsx as
|
|
3183
|
+
import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2228
3184
|
var sizeMap4 = {
|
|
2229
3185
|
xs: "h-8 w-8 text-[10px]",
|
|
2230
3186
|
sm: "h-10 w-10 text-xs",
|
|
@@ -2256,8 +3212,8 @@ function Avatar(_a) {
|
|
|
2256
3212
|
"badge",
|
|
2257
3213
|
"className"
|
|
2258
3214
|
]);
|
|
2259
|
-
return /* @__PURE__ */
|
|
2260
|
-
/* @__PURE__ */
|
|
3215
|
+
return /* @__PURE__ */ jsxs32("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex shrink-0", className) }, props), { children: [
|
|
3216
|
+
/* @__PURE__ */ jsx36(
|
|
2261
3217
|
"div",
|
|
2262
3218
|
{
|
|
2263
3219
|
className: cn(
|
|
@@ -2268,7 +3224,7 @@ function Avatar(_a) {
|
|
|
2268
3224
|
children: icon || label
|
|
2269
3225
|
}
|
|
2270
3226
|
),
|
|
2271
|
-
status && /* @__PURE__ */
|
|
3227
|
+
status && /* @__PURE__ */ jsx36(
|
|
2272
3228
|
"span",
|
|
2273
3229
|
{
|
|
2274
3230
|
className: cn(
|
|
@@ -2277,7 +3233,7 @@ function Avatar(_a) {
|
|
|
2277
3233
|
)
|
|
2278
3234
|
}
|
|
2279
3235
|
),
|
|
2280
|
-
badge && /* @__PURE__ */
|
|
3236
|
+
badge && /* @__PURE__ */ jsx36("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-white", children: badge })
|
|
2281
3237
|
] }));
|
|
2282
3238
|
}
|
|
2283
3239
|
function AvatarGroup(_a) {
|
|
@@ -2285,9 +3241,9 @@ function AvatarGroup(_a) {
|
|
|
2285
3241
|
const items = Array.isArray(children) ? children : [children];
|
|
2286
3242
|
const visible = max ? items.slice(0, max) : items;
|
|
2287
3243
|
const remaining = max ? items.length - max : 0;
|
|
2288
|
-
return /* @__PURE__ */
|
|
3244
|
+
return /* @__PURE__ */ jsxs32("div", __spreadProps(__spreadValues({ className: cn("-space-x-3 flex rtl:space-x-reverse", className) }, props), { children: [
|
|
2289
3245
|
visible,
|
|
2290
|
-
remaining > 0 && /* @__PURE__ */
|
|
3246
|
+
remaining > 0 && /* @__PURE__ */ jsx36(
|
|
2291
3247
|
Avatar,
|
|
2292
3248
|
{
|
|
2293
3249
|
label: `+${remaining}`,
|
|
@@ -2299,7 +3255,7 @@ function AvatarGroup(_a) {
|
|
|
2299
3255
|
}
|
|
2300
3256
|
|
|
2301
3257
|
// src/components/ui/Progress.tsx
|
|
2302
|
-
import { jsx as
|
|
3258
|
+
import { jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2303
3259
|
var sizeMap5 = {
|
|
2304
3260
|
sm: "h-1",
|
|
2305
3261
|
md: "h-2",
|
|
@@ -2324,15 +3280,15 @@ function Progress(_a) {
|
|
|
2324
3280
|
"className"
|
|
2325
3281
|
]);
|
|
2326
3282
|
const percentage = Math.min(100, Math.max(0, value / max * 100));
|
|
2327
|
-
return /* @__PURE__ */
|
|
2328
|
-
(label || showPercentage) && /* @__PURE__ */
|
|
2329
|
-
label && /* @__PURE__ */
|
|
2330
|
-
showPercentage && /* @__PURE__ */
|
|
3283
|
+
return /* @__PURE__ */ jsxs33("div", __spreadProps(__spreadValues({ className: cn("w-full", className) }, props), { children: [
|
|
3284
|
+
(label || showPercentage) && /* @__PURE__ */ jsxs33("div", { className: "mb-1.5 flex justify-between text-sm text-ph-subtle", children: [
|
|
3285
|
+
label && /* @__PURE__ */ jsx37("span", { children: label }),
|
|
3286
|
+
showPercentage && /* @__PURE__ */ jsxs33("span", { className: "tabular-nums", children: [
|
|
2331
3287
|
Math.round(percentage),
|
|
2332
3288
|
"%"
|
|
2333
3289
|
] })
|
|
2334
3290
|
] }),
|
|
2335
|
-
/* @__PURE__ */
|
|
3291
|
+
/* @__PURE__ */ jsx37("div", { className: cn("ph-progress", sizeMap5[size]), children: /* @__PURE__ */ jsx37(
|
|
2336
3292
|
"div",
|
|
2337
3293
|
{
|
|
2338
3294
|
className: cn("ph-progress-bar", color),
|
|
@@ -2347,9 +3303,9 @@ function Progress(_a) {
|
|
|
2347
3303
|
}
|
|
2348
3304
|
|
|
2349
3305
|
// src/components/ui/Link.tsx
|
|
2350
|
-
import { forwardRef as
|
|
2351
|
-
import { jsx as
|
|
2352
|
-
var Link =
|
|
3306
|
+
import { forwardRef as forwardRef9 } from "react";
|
|
3307
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3308
|
+
var Link = forwardRef9(function Link2(_a, ref) {
|
|
2353
3309
|
var _b = _a, {
|
|
2354
3310
|
className,
|
|
2355
3311
|
disabled = false,
|
|
@@ -2359,7 +3315,7 @@ var Link = forwardRef6(function Link2(_a, ref) {
|
|
|
2359
3315
|
"disabled",
|
|
2360
3316
|
"children"
|
|
2361
3317
|
]);
|
|
2362
|
-
return /* @__PURE__ */
|
|
3318
|
+
return /* @__PURE__ */ jsx38(
|
|
2363
3319
|
"a",
|
|
2364
3320
|
__spreadProps(__spreadValues({
|
|
2365
3321
|
ref,
|
|
@@ -2378,10 +3334,10 @@ var Link = forwardRef6(function Link2(_a, ref) {
|
|
|
2378
3334
|
Link.displayName = "Link";
|
|
2379
3335
|
|
|
2380
3336
|
// src/components/ui/Spinner.tsx
|
|
2381
|
-
import { jsx as
|
|
3337
|
+
import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2382
3338
|
function Spinner(_a) {
|
|
2383
3339
|
var _b = _a, { size = "sm", textColored = false, className } = _b, props = __objRest(_b, ["size", "textColored", "className"]);
|
|
2384
|
-
return /* @__PURE__ */
|
|
3340
|
+
return /* @__PURE__ */ jsx39(
|
|
2385
3341
|
"span",
|
|
2386
3342
|
__spreadProps(__spreadValues({
|
|
2387
3343
|
className: cn(
|
|
@@ -2393,9 +3349,9 @@ function Spinner(_a) {
|
|
|
2393
3349
|
role: "status",
|
|
2394
3350
|
"aria-label": "Loading"
|
|
2395
3351
|
}, props), {
|
|
2396
|
-
children: /* @__PURE__ */
|
|
2397
|
-
/* @__PURE__ */
|
|
2398
|
-
/* @__PURE__ */
|
|
3352
|
+
children: /* @__PURE__ */ jsxs34("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "ph-spinner__svg", children: [
|
|
3353
|
+
/* @__PURE__ */ jsx39("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", opacity: 0.2 }),
|
|
3354
|
+
/* @__PURE__ */ jsx39("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round" })
|
|
2399
3355
|
] })
|
|
2400
3356
|
})
|
|
2401
3357
|
);
|
|
@@ -2403,7 +3359,7 @@ function Spinner(_a) {
|
|
|
2403
3359
|
Spinner.displayName = "Spinner";
|
|
2404
3360
|
|
|
2405
3361
|
// src/components/ui/Dot.tsx
|
|
2406
|
-
import { jsx as
|
|
3362
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
2407
3363
|
var colorMap = {
|
|
2408
3364
|
green: "bg-ph-success",
|
|
2409
3365
|
yellow: "bg-ph-warning",
|
|
@@ -2413,7 +3369,7 @@ var colorMap = {
|
|
|
2413
3369
|
};
|
|
2414
3370
|
function Dot(_a) {
|
|
2415
3371
|
var _b = _a, { color = "gray", size = "md", className } = _b, props = __objRest(_b, ["color", "size", "className"]);
|
|
2416
|
-
return /* @__PURE__ */
|
|
3372
|
+
return /* @__PURE__ */ jsx40(
|
|
2417
3373
|
"span",
|
|
2418
3374
|
__spreadValues({
|
|
2419
3375
|
className: cn(
|
|
@@ -2429,9 +3385,9 @@ function Dot(_a) {
|
|
|
2429
3385
|
Dot.displayName = "Dot";
|
|
2430
3386
|
|
|
2431
3387
|
// src/components/ui/Chip.tsx
|
|
2432
|
-
import { forwardRef as
|
|
2433
|
-
import { jsx as
|
|
2434
|
-
var Chip =
|
|
3388
|
+
import { forwardRef as forwardRef10 } from "react";
|
|
3389
|
+
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3390
|
+
var Chip = forwardRef10(function Chip2(_a, ref) {
|
|
2435
3391
|
var _b = _a, {
|
|
2436
3392
|
selected = false,
|
|
2437
3393
|
onRemove,
|
|
@@ -2450,18 +3406,18 @@ var Chip = forwardRef7(function Chip2(_a, ref) {
|
|
|
2450
3406
|
);
|
|
2451
3407
|
if (onRemove) {
|
|
2452
3408
|
const removeLabel = typeof children === "string" ? `Remove ${children}` : "Remove";
|
|
2453
|
-
return /* @__PURE__ */
|
|
2454
|
-
/* @__PURE__ */
|
|
3409
|
+
return /* @__PURE__ */ jsxs35("span", { className: chipClassName, children: [
|
|
3410
|
+
/* @__PURE__ */ jsx41(
|
|
2455
3411
|
"button",
|
|
2456
3412
|
__spreadProps(__spreadValues({
|
|
2457
3413
|
ref,
|
|
2458
3414
|
type: "button",
|
|
2459
3415
|
className: "min-w-0 bg-transparent p-0 text-inherit"
|
|
2460
3416
|
}, props), {
|
|
2461
|
-
children: /* @__PURE__ */
|
|
3417
|
+
children: /* @__PURE__ */ jsx41("span", { className: "ph-chip__text", children })
|
|
2462
3418
|
})
|
|
2463
3419
|
),
|
|
2464
|
-
/* @__PURE__ */
|
|
3420
|
+
/* @__PURE__ */ jsx41(
|
|
2465
3421
|
"button",
|
|
2466
3422
|
{
|
|
2467
3423
|
type: "button",
|
|
@@ -2469,26 +3425,111 @@ var Chip = forwardRef7(function Chip2(_a, ref) {
|
|
|
2469
3425
|
disabled: props.disabled,
|
|
2470
3426
|
className: "ph-chip__remove",
|
|
2471
3427
|
"aria-label": removeLabel,
|
|
2472
|
-
children: /* @__PURE__ */
|
|
3428
|
+
children: /* @__PURE__ */ jsx41("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx41("path", { d: "M2 2l6 6M8 2l-6 6" }) })
|
|
2473
3429
|
}
|
|
2474
3430
|
)
|
|
2475
3431
|
] });
|
|
2476
3432
|
}
|
|
2477
|
-
return /* @__PURE__ */
|
|
3433
|
+
return /* @__PURE__ */ jsx41(
|
|
2478
3434
|
"button",
|
|
2479
3435
|
__spreadProps(__spreadValues({
|
|
2480
3436
|
ref,
|
|
2481
3437
|
type: "button",
|
|
2482
3438
|
className: chipClassName
|
|
2483
3439
|
}, props), {
|
|
2484
|
-
children: /* @__PURE__ */
|
|
3440
|
+
children: /* @__PURE__ */ jsx41("span", { className: "ph-chip__text", children })
|
|
2485
3441
|
})
|
|
2486
3442
|
);
|
|
2487
3443
|
});
|
|
2488
3444
|
Chip.displayName = "Chip";
|
|
2489
3445
|
|
|
2490
3446
|
export {
|
|
3447
|
+
ButtonChrome,
|
|
2491
3448
|
Button,
|
|
3449
|
+
IconBase,
|
|
3450
|
+
createIconBase,
|
|
3451
|
+
createIconBasePath,
|
|
3452
|
+
IconAreaChart,
|
|
3453
|
+
IconCumulativeChart,
|
|
3454
|
+
IconTableChart,
|
|
3455
|
+
IconHandClick,
|
|
3456
|
+
IconSurveys,
|
|
3457
|
+
IconCohort,
|
|
3458
|
+
IconRecording,
|
|
3459
|
+
IconFlare,
|
|
3460
|
+
IconSelectEvents,
|
|
3461
|
+
IconClipboardEdit,
|
|
3462
|
+
IconQueryEditor,
|
|
3463
|
+
IconTuning,
|
|
3464
|
+
IconSync,
|
|
3465
|
+
IconPlayCircle,
|
|
3466
|
+
IconGridView,
|
|
3467
|
+
IconListView,
|
|
3468
|
+
IconPremium,
|
|
3469
|
+
IconGift,
|
|
3470
|
+
IconRobot,
|
|
3471
|
+
IconExclamation,
|
|
3472
|
+
IconErrorOutline,
|
|
3473
|
+
IconInfo,
|
|
3474
|
+
IconCancel,
|
|
3475
|
+
IconCheckCircle,
|
|
3476
|
+
IconArrowUp,
|
|
3477
|
+
IconArrowDown,
|
|
3478
|
+
IconChevronLeft,
|
|
3479
|
+
IconChevronRight,
|
|
3480
|
+
IconChevronDown,
|
|
3481
|
+
IconSubArrowRight,
|
|
3482
|
+
IconSearch,
|
|
3483
|
+
IconBell,
|
|
3484
|
+
IconBellOff,
|
|
3485
|
+
IconPerson,
|
|
3486
|
+
IconHome,
|
|
3487
|
+
IconPanelRight,
|
|
3488
|
+
IconPlus,
|
|
3489
|
+
IconCheck,
|
|
3490
|
+
IconClose,
|
|
3491
|
+
IconTrash,
|
|
3492
|
+
IconDownload,
|
|
3493
|
+
IconUpload,
|
|
3494
|
+
IconSave,
|
|
3495
|
+
IconCopy,
|
|
3496
|
+
IconEdit,
|
|
3497
|
+
IconLogout,
|
|
3498
|
+
IconStar,
|
|
3499
|
+
IconMail,
|
|
3500
|
+
IconShoppingCart,
|
|
3501
|
+
IconMoon,
|
|
3502
|
+
IconSun,
|
|
3503
|
+
IconVolume,
|
|
3504
|
+
IconVolumeOff,
|
|
3505
|
+
IconFlag,
|
|
3506
|
+
IconDatabase,
|
|
3507
|
+
IconLayers,
|
|
3508
|
+
IconBox,
|
|
3509
|
+
IconBolt,
|
|
3510
|
+
IconRadar,
|
|
3511
|
+
IconToggle,
|
|
3512
|
+
IconRocket,
|
|
3513
|
+
IconTerminal,
|
|
3514
|
+
IconOldWindow,
|
|
3515
|
+
IconCommandCursor,
|
|
3516
|
+
IconDataReel,
|
|
3517
|
+
IconCodePreview,
|
|
3518
|
+
IconInsightBoard,
|
|
3519
|
+
IconEventStream,
|
|
3520
|
+
IconFeatureGate,
|
|
3521
|
+
IconReplayFrame,
|
|
3522
|
+
IconQueryStack,
|
|
3523
|
+
IconExperimentSplit,
|
|
3524
|
+
IconSurveyCard,
|
|
3525
|
+
OLD_UI_ICONS,
|
|
3526
|
+
IconActivity,
|
|
3527
|
+
IconFlask,
|
|
3528
|
+
IconSpinner,
|
|
3529
|
+
CANONICAL_ICONS,
|
|
3530
|
+
PH_ICON_ALIASES,
|
|
3531
|
+
PH_ICONS,
|
|
3532
|
+
IconByName,
|
|
2492
3533
|
Alert,
|
|
2493
3534
|
Badge,
|
|
2494
3535
|
Card,
|
|
@@ -2501,6 +3542,11 @@ export {
|
|
|
2501
3542
|
AuthDivider,
|
|
2502
3543
|
SettingsNav,
|
|
2503
3544
|
SettingsLayout,
|
|
3545
|
+
DropdownMenu,
|
|
3546
|
+
DropdownButton,
|
|
3547
|
+
DropdownItem,
|
|
3548
|
+
DropdownRadioGroup,
|
|
3549
|
+
DropdownRadioItem,
|
|
2504
3550
|
FormField,
|
|
2505
3551
|
Input,
|
|
2506
3552
|
Select,
|
|
@@ -2530,6 +3576,8 @@ export {
|
|
|
2530
3576
|
SegmentedControl,
|
|
2531
3577
|
CommandPalette,
|
|
2532
3578
|
Calendar,
|
|
3579
|
+
TooltipProvider,
|
|
3580
|
+
Tooltip,
|
|
2533
3581
|
EmptyState,
|
|
2534
3582
|
FilterChips,
|
|
2535
3583
|
FilterBar,
|