@reopt-ai/opt-ui 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPONENT_CATALOG.md +222 -34
- package/README.md +70 -6
- package/dist/core/index.cjs +170 -155
- package/dist/core/index.d.cts +3 -2
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.js +3 -3
- package/dist/docs/02-components/01-core.md +223 -18
- package/dist/docs/02-components/02-visuals.md +1 -1
- package/dist/docs/02-components/03-shells.md +17 -16
- package/dist/docs/02-components/04-surfaces.md +1 -1
- package/dist/docs/02-components/index.md +4 -4
- package/dist/{field-sidebar-CB8vjvUM.d.ts → field-sidebar-B5vk3luQ.d.cts} +30 -3
- package/dist/{field-sidebar-BTZCBviA.d.cts.map → field-sidebar-B5vk3luQ.d.cts.map} +1 -1
- package/dist/{field-sidebar-Cs-J-5VE.js → field-sidebar-B7QkWvMG.js} +52 -17
- package/dist/{field-sidebar-Cs-J-5VE.js.map → field-sidebar-B7QkWvMG.js.map} +1 -1
- package/dist/{field-sidebar-BTZCBviA.d.cts → field-sidebar-Dk9gJGA_.d.ts} +30 -3
- package/dist/{field-sidebar-CB8vjvUM.d.ts.map → field-sidebar-Dk9gJGA_.d.ts.map} +1 -1
- package/dist/{field-sidebar-CzIQX70-.cjs → field-sidebar-mFHemxBz.cjs} +328 -293
- package/dist/{types-D0FlcYnM.d.ts → field-token-CSOrU5gl.d.cts} +66 -2
- package/dist/field-token-CSOrU5gl.d.cts.map +1 -0
- package/dist/{types-D0FlcYnM.d.cts → field-token-CSOrU5gl.d.ts} +66 -2
- package/dist/field-token-CSOrU5gl.d.ts.map +1 -0
- package/dist/{pagination-DWbvACuN.js → highlight-C2sfnJN8.js} +263 -11
- package/dist/highlight-C2sfnJN8.js.map +1 -0
- package/dist/{pagination-DjfxBcjX.cjs → highlight-CGcrYGMC.cjs} +284 -8
- package/dist/id-registry.cjs +98 -2
- package/dist/id-registry.d.cts.map +1 -1
- package/dist/id-registry.d.ts.map +1 -1
- package/dist/id-registry.js +98 -2
- package/dist/id-registry.js.map +1 -1
- package/dist/id-registry.json +202 -4
- package/dist/index.cjs +664 -643
- package/dist/index.d.cts +5 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/{shader-surface-BUPZ0P-n.js → key-pad-menu-BFd79JoS.js} +855 -19
- package/dist/key-pad-menu-BFd79JoS.js.map +1 -0
- package/dist/{shader-surface-DRrcLrWf.d.cts → key-pad-menu-D8OS_VCT.d.cts} +459 -3
- package/dist/key-pad-menu-D8OS_VCT.d.cts.map +1 -0
- package/dist/{shader-surface-Fav5K9UC.cjs → key-pad-menu-DoGskWbp.cjs} +1103 -201
- package/dist/{shader-surface-BfTP9c1Q.d.ts → key-pad-menu-EEb6Ho5h.d.ts} +459 -3
- package/dist/key-pad-menu-EEb6Ho5h.d.ts.map +1 -0
- package/dist/meta.cjs +641 -0
- package/dist/meta.d.cts.map +1 -1
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +641 -0
- package/dist/meta.js.map +1 -1
- package/dist/shells/index.cjs +1 -1
- package/dist/shells/index.d.cts +1 -1
- package/dist/shells/index.d.ts +1 -1
- package/dist/shells/index.js +1 -1
- package/package.json +2 -2
- package/dist/pagination-DWbvACuN.js.map +0 -1
- package/dist/shader-surface-BUPZ0P-n.js.map +0 -1
- package/dist/shader-surface-BfTP9c1Q.d.ts.map +0 -1
- package/dist/shader-surface-DRrcLrWf.d.cts.map +0 -1
- package/dist/types-D0FlcYnM.d.cts.map +0 -1
- package/dist/types-D0FlcYnM.d.ts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const require_field_sidebar = require("./field-sidebar-
|
|
3
|
+
const require_highlight = require("./highlight-CGcrYGMC.cjs");
|
|
4
|
+
const require_key_pad_menu = require("./key-pad-menu-DoGskWbp.cjs");
|
|
5
|
+
const require_field_sidebar = require("./field-sidebar-mFHemxBz.cjs");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let react = require("react");
|
|
8
|
-
react =
|
|
8
|
+
react = require_highlight.__toESM(react, 1);
|
|
9
9
|
let lucide_react = require("lucide-react");
|
|
10
10
|
let _reopt_ai_opt_palette = require("@reopt-ai/opt-palette");
|
|
11
11
|
let _reopt_ai_opt_charts = require("@reopt-ai/opt-charts");
|
|
@@ -45,7 +45,7 @@ var ErrorBoundary = class extends react.Component {
|
|
|
45
45
|
const { fallback } = this.props;
|
|
46
46
|
if (typeof fallback === "function") return fallback(this.state.error);
|
|
47
47
|
if (fallback !== void 0) return fallback;
|
|
48
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
48
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Alert, {
|
|
49
49
|
variant: "error",
|
|
50
50
|
children: this.state.error.message || "Something went wrong"
|
|
51
51
|
});
|
|
@@ -64,20 +64,20 @@ ErrorBoundary.displayName = "ErrorBoundary";
|
|
|
64
64
|
function PageAside({ header, children, footer, widthClassName = "w-60", label, hideOnMobile = true, className, headerClassName, bodyClassName, footerClassName }) {
|
|
65
65
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("aside", {
|
|
66
66
|
"aria-label": label,
|
|
67
|
-
className:
|
|
67
|
+
className: require_highlight.cn("bg-surface sticky top-[var(--global-header-height)] h-[calc(100vh-var(--global-header-height))] shrink-0 flex-col", widthClassName, hideOnMobile ? "hidden md:flex" : "flex", className),
|
|
68
68
|
"data-opt-id": "ZQDMX",
|
|
69
69
|
"data-opt-slug": "page-aside.PageAside",
|
|
70
70
|
children: [
|
|
71
71
|
header ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
72
|
-
className:
|
|
72
|
+
className: require_highlight.cn("shrink-0", headerClassName !== null && headerClassName !== void 0 ? headerClassName : "px-3 py-3"),
|
|
73
73
|
children: header
|
|
74
74
|
}) : null,
|
|
75
75
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
76
|
-
className:
|
|
76
|
+
className: require_highlight.cn("flex-1 overflow-y-auto", bodyClassName !== null && bodyClassName !== void 0 ? bodyClassName : "px-3 py-3"),
|
|
77
77
|
children
|
|
78
78
|
}),
|
|
79
79
|
footer ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
80
|
-
className:
|
|
80
|
+
className: require_highlight.cn("shrink-0", footerClassName !== null && footerClassName !== void 0 ? footerClassName : "px-4 py-3"),
|
|
81
81
|
children: footer
|
|
82
82
|
}) : null
|
|
83
83
|
]
|
|
@@ -106,9 +106,9 @@ const defaultLabels$31 = {
|
|
|
106
106
|
};
|
|
107
107
|
/** Renders the task list component. */
|
|
108
108
|
function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage, showSubtasks = false, maxItems, labels: customLabels, className }) {
|
|
109
|
-
const labels =
|
|
110
|
-
priority:
|
|
111
|
-
status:
|
|
109
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$31), customLabels), {}, {
|
|
110
|
+
priority: require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$31.priority), customLabels === null || customLabels === void 0 ? void 0 : customLabels.priority),
|
|
111
|
+
status: require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$31.status), customLabels === null || customLabels === void 0 ? void 0 : customLabels.status)
|
|
112
112
|
});
|
|
113
113
|
const displayTitle = title !== null && title !== void 0 ? title : labels.title;
|
|
114
114
|
const displayEmptyMessage = emptyMessage !== null && emptyMessage !== void 0 ? emptyMessage : labels.emptyMessage;
|
|
@@ -117,16 +117,16 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
117
117
|
const completedCount = tasks.filter((t) => t.status === "done").length;
|
|
118
118
|
const progress = tasks.length > 0 ? completedCount / tasks.length * 100 : 0;
|
|
119
119
|
const priorityBadge = {
|
|
120
|
-
low:
|
|
121
|
-
medium:
|
|
122
|
-
high:
|
|
123
|
-
urgent:
|
|
120
|
+
low: require_highlight.OPT_BADGE_NEUTRAL,
|
|
121
|
+
medium: require_highlight.OPT_BADGE_BLUE,
|
|
122
|
+
high: require_highlight.OPT_BADGE_YELLOW,
|
|
123
|
+
urgent: require_highlight.OPT_BADGE_RED
|
|
124
124
|
};
|
|
125
125
|
const statusBadge = {
|
|
126
|
-
todo:
|
|
127
|
-
"in-progress":
|
|
128
|
-
review:
|
|
129
|
-
done:
|
|
126
|
+
todo: require_highlight.OPT_BADGE_NEUTRAL,
|
|
127
|
+
"in-progress": require_highlight.OPT_BADGE_BLUE,
|
|
128
|
+
review: require_highlight.OPT_BADGE_YELLOW,
|
|
129
|
+
done: require_highlight.OPT_BADGE_GREEN
|
|
130
130
|
};
|
|
131
131
|
const completedText = labels.completedOf.replace("{completed}", String(completedCount)).replace("{total}", String(tasks.length));
|
|
132
132
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -139,10 +139,10 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
139
139
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
140
140
|
className: "flex items-center justify-between",
|
|
141
141
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
142
|
-
className: `text-sm font-semibold ${
|
|
142
|
+
className: `text-sm font-semibold ${require_highlight.OPT_TEXT_PRIMARY}`,
|
|
143
143
|
children: displayTitle
|
|
144
144
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
145
|
-
className: `text-xs ${
|
|
145
|
+
className: `text-xs ${require_highlight.OPT_TEXT_TERTIARY}`,
|
|
146
146
|
children: completedText
|
|
147
147
|
})]
|
|
148
148
|
}),
|
|
@@ -160,7 +160,7 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
160
160
|
}),
|
|
161
161
|
tasks.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
162
162
|
role: "status",
|
|
163
|
-
className: `py-8 text-center text-sm ${
|
|
163
|
+
className: `py-8 text-center text-sm ${require_highlight.OPT_TEXT_SECONDARY}`,
|
|
164
164
|
children: displayEmptyMessage
|
|
165
165
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.CompositeProvider, {
|
|
166
166
|
focusLoop: true,
|
|
@@ -168,16 +168,16 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
168
168
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_reopt_ai_opt_ui_primitives.Composite, {
|
|
169
169
|
role: "list",
|
|
170
170
|
"aria-label": displayTitle,
|
|
171
|
-
className: `rounded-lg ${
|
|
171
|
+
className: `rounded-lg ${require_highlight.OPT_BORDER} divide-border-subtle bg-surface divide-y`,
|
|
172
172
|
children: [displayTasks.map((task) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_reopt_ai_opt_ui_primitives.CompositeItem, {
|
|
173
173
|
role: "listitem",
|
|
174
|
-
className: `group gap-group flex w-full items-start p-3 ${
|
|
174
|
+
className: `group gap-group flex w-full items-start p-3 ${require_highlight.OPT_FOCUS} data-[active-item]:bg-accent-subtle ${onTaskClick ? "cursor-pointer" : ""}`,
|
|
175
175
|
onClick: () => onTaskClick === null || onTaskClick === void 0 ? void 0 : onTaskClick(task),
|
|
176
176
|
children: [onTaskStatusChange && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
177
177
|
className: "pt-0.5",
|
|
178
178
|
role: "presentation",
|
|
179
179
|
onClick: (e) => e.stopPropagation(),
|
|
180
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
180
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Checkbox, {
|
|
181
181
|
checked: task.status === "done",
|
|
182
182
|
onChange: (checked) => onTaskStatusChange(task, checked),
|
|
183
183
|
"aria-label": `${task.title} 완료 표시`
|
|
@@ -189,7 +189,7 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
189
189
|
className: "gap-element flex items-center",
|
|
190
190
|
children: [
|
|
191
191
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
192
|
-
className: `text-sm font-medium ${
|
|
192
|
+
className: `text-sm font-medium ${require_highlight.OPT_TEXT_PRIMARY} ${task.status === "done" ? "line-through opacity-60" : ""}`,
|
|
193
193
|
children: task.title
|
|
194
194
|
}),
|
|
195
195
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -210,7 +210,7 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
210
210
|
className: "gap-element mt-2 flex flex-col",
|
|
211
211
|
children: task.subtasks.map((subtask) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
212
212
|
className: `text-xs text-text-tertiary flex items-center gap-1.5`,
|
|
213
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
213
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Checkbox, {
|
|
214
214
|
checked: subtask.completed,
|
|
215
215
|
disabled: true,
|
|
216
216
|
"aria-label": subtask.title,
|
|
@@ -226,7 +226,7 @@ function TaskList({ tasks, title, onTaskClick, onTaskStatusChange, emptyMessage,
|
|
|
226
226
|
children: [
|
|
227
227
|
task.assignee && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
228
228
|
className: "flex items-center gap-1.5",
|
|
229
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
229
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
230
230
|
name: task.assignee.name,
|
|
231
231
|
src: task.assignee.avatar,
|
|
232
232
|
size: "xs"
|
|
@@ -358,7 +358,7 @@ function ActivityFeed({ activities, title, maxItems, onActivityClick, onShowMore
|
|
|
358
358
|
children: displayTitle
|
|
359
359
|
}), activities.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
360
360
|
role: "status",
|
|
361
|
-
className: `py-8 text-center text-sm ${
|
|
361
|
+
className: `py-8 text-center text-sm ${require_highlight.OPT_TEXT_SECONDARY}`,
|
|
362
362
|
children: displayEmptyMessage
|
|
363
363
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.CompositeProvider, {
|
|
364
364
|
focusLoop: true,
|
|
@@ -367,7 +367,7 @@ function ActivityFeed({ activities, title, maxItems, onActivityClick, onShowMore
|
|
|
367
367
|
role: "feed",
|
|
368
368
|
"aria-label": displayTitle,
|
|
369
369
|
"aria-busy": loading,
|
|
370
|
-
className: `rounded-lg ${
|
|
370
|
+
className: `rounded-lg ${require_highlight.OPT_BORDER} bg-surface`,
|
|
371
371
|
children: [displayActivities.map((activity, index) => {
|
|
372
372
|
var _activity$variant;
|
|
373
373
|
const ActivityIcon = activityIcon[activity.type];
|
|
@@ -377,13 +377,13 @@ function ActivityFeed({ activities, title, maxItems, onActivityClick, onShowMore
|
|
|
377
377
|
render: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("article", {}),
|
|
378
378
|
role: "article",
|
|
379
379
|
"aria-labelledby": activityId,
|
|
380
|
-
className:
|
|
380
|
+
className: require_highlight.cn("group gap-group relative flex w-full p-3", require_highlight.OPT_FOCUS_VISIBLE, "data-[active-item]:bg-accent-subtle", onActivityClick && "cursor-pointer", !isLast && "border-border-subtle border-b", variantBorder[(_activity$variant = activity.variant) !== null && _activity$variant !== void 0 ? _activity$variant : ""]),
|
|
381
381
|
onClick: () => onActivityClick === null || onActivityClick === void 0 ? void 0 : onActivityClick(activity),
|
|
382
382
|
onKeyDown: (event) => handleActivityKeyDown(event, activity),
|
|
383
383
|
children: [
|
|
384
384
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
385
385
|
className: "relative flex flex-col items-center",
|
|
386
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
386
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
387
387
|
name: activity.actor.name,
|
|
388
388
|
src: activity.actor.avatar,
|
|
389
389
|
size: "sm"
|
|
@@ -405,7 +405,7 @@ function ActivityFeed({ activities, title, maxItems, onActivityClick, onShowMore
|
|
|
405
405
|
"aria-hidden": true
|
|
406
406
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
407
407
|
id: activityId,
|
|
408
|
-
className: `text-sm ${
|
|
408
|
+
className: `text-sm ${require_highlight.OPT_TEXT_PRIMARY} truncate`,
|
|
409
409
|
children: [
|
|
410
410
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
411
411
|
className: "font-medium",
|
|
@@ -413,7 +413,7 @@ function ActivityFeed({ activities, title, maxItems, onActivityClick, onShowMore
|
|
|
413
413
|
}),
|
|
414
414
|
" ",
|
|
415
415
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
416
|
-
className:
|
|
416
|
+
className: require_highlight.OPT_TEXT_SECONDARY,
|
|
417
417
|
children: labels.activityVerbs[activity.type]
|
|
418
418
|
}),
|
|
419
419
|
" ",
|
|
@@ -467,7 +467,7 @@ const defaultLabels$29 = {
|
|
|
467
467
|
};
|
|
468
468
|
/** Renders the filter bar component. */
|
|
469
469
|
function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, labels: customLabels, presetActions, className }) {
|
|
470
|
-
const labels =
|
|
470
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$29), customLabels);
|
|
471
471
|
const [searchValues, setSearchValues] = (0, react.useState)({});
|
|
472
472
|
const [tagInputValues, setTagInputValues] = (0, react.useState)({});
|
|
473
473
|
const [multiSelectOpen, setMultiSelectOpen] = (0, react.useState)({});
|
|
@@ -496,7 +496,7 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
496
496
|
const currentTags = (_ref2 = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _ref2 !== void 0 ? _ref2 : [];
|
|
497
497
|
if (currentTags.includes(val)) return;
|
|
498
498
|
onFilterChange === null || onFilterChange === void 0 || onFilterChange(filterId, [...currentTags, val]);
|
|
499
|
-
setTagInputValues((prev) =>
|
|
499
|
+
setTagInputValues((prev) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, prev), {}, { [filterId]: "" }));
|
|
500
500
|
}, [
|
|
501
501
|
filters,
|
|
502
502
|
tagInputValues,
|
|
@@ -520,12 +520,12 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
520
520
|
var _searchValues$filter$;
|
|
521
521
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
522
522
|
className: "relative",
|
|
523
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
523
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
524
524
|
placeholder: filter.label || labels.searchPlaceholder,
|
|
525
525
|
value: (_searchValues$filter$ = searchValues[filter.id]) !== null && _searchValues$filter$ !== void 0 ? _searchValues$filter$ : "",
|
|
526
526
|
onChange: (e) => {
|
|
527
527
|
const value = e.target.value;
|
|
528
|
-
setSearchValues((prev) =>
|
|
528
|
+
setSearchValues((prev) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, prev), {}, { [filter.id]: value }));
|
|
529
529
|
onFilterChange === null || onFilterChange === void 0 || onFilterChange(filter.id, value);
|
|
530
530
|
},
|
|
531
531
|
"aria-label": filter.label || labels.searchPlaceholder,
|
|
@@ -539,14 +539,14 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
539
539
|
}
|
|
540
540
|
if (filter.type === "select" && filter.options) {
|
|
541
541
|
var _filter$options$find$, _filter$options$find;
|
|
542
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
542
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.SelectRoot, {
|
|
543
543
|
value: filter.value,
|
|
544
544
|
onValueChange: (value) => onFilterChange === null || onFilterChange === void 0 ? void 0 : onFilterChange(filter.id, value),
|
|
545
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
545
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectTrigger, {
|
|
546
546
|
className: "h-9 min-w-[120px] text-sm",
|
|
547
547
|
"aria-label": filter.label,
|
|
548
548
|
children: (_filter$options$find$ = (_filter$options$find = filter.options.find((o) => o.value === filter.value)) === null || _filter$options$find === void 0 ? void 0 : _filter$options$find.label) !== null && _filter$options$find$ !== void 0 ? _filter$options$find$ : filter.label
|
|
549
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
549
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectPopover, { children: filter.options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectItem, {
|
|
550
550
|
value: option.value,
|
|
551
551
|
children: option.label
|
|
552
552
|
}, option.id)) })]
|
|
@@ -557,20 +557,20 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
557
557
|
const selectedValues = (_ref4 = filter.value) !== null && _ref4 !== void 0 ? _ref4 : [];
|
|
558
558
|
const isOpen = (_multiSelectOpen$filt = multiSelectOpen[filter.id]) !== null && _multiSelectOpen$filt !== void 0 ? _multiSelectOpen$filt : false;
|
|
559
559
|
const handleOpenChange = (open) => {
|
|
560
|
-
setMultiSelectOpen((prev) =>
|
|
560
|
+
setMultiSelectOpen((prev) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, prev), {}, { [filter.id]: open }));
|
|
561
561
|
if (!open) requestAnimationFrame(() => {
|
|
562
562
|
var _triggerRefs$current$;
|
|
563
563
|
(_triggerRefs$current$ = triggerRefs.current[filter.id]) === null || _triggerRefs$current$ === void 0 || _triggerRefs$current$.focus();
|
|
564
564
|
});
|
|
565
565
|
};
|
|
566
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
566
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverRoot, {
|
|
567
567
|
open: isOpen,
|
|
568
568
|
onOpenChange: handleOpenChange,
|
|
569
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
569
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverTrigger, {
|
|
570
570
|
ref: (el) => {
|
|
571
571
|
triggerRefs.current[filter.id] = el;
|
|
572
572
|
},
|
|
573
|
-
className: `gap-element inline-flex h-9 items-center rounded-lg px-3 text-sm ${
|
|
573
|
+
className: `gap-element inline-flex h-9 items-center rounded-lg px-3 text-sm ${require_highlight.OPT_BORDER} bg-surface ${require_highlight.OPT_TEXT_PRIMARY} ${require_highlight.OPT_FOCUS} hover:bg-bg-subtle transition-colors`,
|
|
574
574
|
"aria-expanded": isOpen,
|
|
575
575
|
"aria-label": `${filter.label} 필터 ${selectedValues.length > 0 ? `(${selectedValues.length}개 선택됨)` : ""}`,
|
|
576
576
|
children: [
|
|
@@ -586,15 +586,15 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
586
586
|
children: "▼"
|
|
587
587
|
})
|
|
588
588
|
]
|
|
589
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
590
|
-
className: `z-50 mt-1 min-w-[180px] rounded-lg ${
|
|
589
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.PopoverContent, {
|
|
590
|
+
className: `z-50 mt-1 min-w-[180px] rounded-lg ${require_highlight.OPT_BORDER} bg-surface p-2 shadow-lg`,
|
|
591
591
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
592
592
|
className: "gap-element flex flex-col",
|
|
593
593
|
children: filter.options.map((option) => {
|
|
594
594
|
const isChecked = selectedValues.includes(option.value);
|
|
595
595
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
596
|
-
className: `hover:bg-bg-subtle gap-element flex cursor-pointer items-center rounded-md px-2 py-1.5 text-sm ${
|
|
597
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
596
|
+
className: `hover:bg-bg-subtle gap-element flex cursor-pointer items-center rounded-md px-2 py-1.5 text-sm ${require_highlight.OPT_TEXT_PRIMARY}`,
|
|
597
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Checkbox, {
|
|
598
598
|
checked: isChecked,
|
|
599
599
|
onChange: () => handleMultiSelectToggle(filter.id, option.value),
|
|
600
600
|
"aria-label": option.label
|
|
@@ -605,7 +605,7 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
605
605
|
})]
|
|
606
606
|
}, filter.id);
|
|
607
607
|
}
|
|
608
|
-
if (filter.type === "date-range") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
608
|
+
if (filter.type === "date-range") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DateRangePicker, {
|
|
609
609
|
"aria-label": filter.label,
|
|
610
610
|
placeholder: filter.label,
|
|
611
611
|
onChange: (range) => onDateRangeChange === null || onDateRangeChange === void 0 ? void 0 : onDateRangeChange(filter.id, range),
|
|
@@ -640,7 +640,7 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
640
640
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
641
641
|
type: "text",
|
|
642
642
|
value: (_tagInputValues$filte2 = tagInputValues[filter.id]) !== null && _tagInputValues$filte2 !== void 0 ? _tagInputValues$filte2 : "",
|
|
643
|
-
onChange: (e) => setTagInputValues((prev) =>
|
|
643
|
+
onChange: (e) => setTagInputValues((prev) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, prev), {}, { [filter.id]: e.target.value })),
|
|
644
644
|
onKeyDown: (e) => {
|
|
645
645
|
if (e.key === "Enter") {
|
|
646
646
|
e.preventDefault();
|
|
@@ -648,13 +648,13 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
648
648
|
}
|
|
649
649
|
},
|
|
650
650
|
placeholder: filter.label,
|
|
651
|
-
className: `border-border bg-surface placeholder:text-text-tertiary focus-visible:ring-ring h-8 w-24 rounded-md border px-2 text-xs outline-none focus-visible:ring-2 ${
|
|
651
|
+
className: `border-border bg-surface placeholder:text-text-tertiary focus-visible:ring-ring h-8 w-24 rounded-md border px-2 text-xs outline-none focus-visible:ring-2 ${require_highlight.OPT_TEXT_PRIMARY}`,
|
|
652
652
|
"aria-label": filter.label
|
|
653
653
|
})
|
|
654
654
|
})]
|
|
655
655
|
}, filter.id);
|
|
656
656
|
}
|
|
657
|
-
if (filter.type === "toggle") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
657
|
+
if (filter.type === "toggle") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Switch, {
|
|
658
658
|
label: filter.label,
|
|
659
659
|
size: "sm",
|
|
660
660
|
checked: filter.value === true,
|
|
@@ -662,7 +662,7 @@ function FilterBar({ filters, onFilterChange, onDateRangeChange, onClearAll, lab
|
|
|
662
662
|
}, filter.id);
|
|
663
663
|
return null;
|
|
664
664
|
}),
|
|
665
|
-
hasActiveFilters && onClearAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
665
|
+
hasActiveFilters && onClearAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
666
666
|
onClick: onClearAll,
|
|
667
667
|
variant: "ghost",
|
|
668
668
|
className: "text-danger-fg hover:bg-danger-subtle h-9 px-3 text-sm",
|
|
@@ -696,7 +696,7 @@ function matchesShortcut(event, shortcut) {
|
|
|
696
696
|
const defaultLabels$28 = { title: "빠른 작업" };
|
|
697
697
|
/** Renders the quick actions component. */
|
|
698
698
|
function QuickActions({ actions, title, layout = "grid", columns = 3, showDescriptionInGrid = false, bindShortcuts = false, labels: customLabels, className }) {
|
|
699
|
-
const labels =
|
|
699
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$28), customLabels);
|
|
700
700
|
const displayTitle = title !== null && title !== void 0 ? title : labels.title;
|
|
701
701
|
const titleId = (0, react.useId)();
|
|
702
702
|
(0, react.useEffect)(() => {
|
|
@@ -738,12 +738,12 @@ function QuickActions({ actions, title, layout = "grid", columns = 3, showDescri
|
|
|
738
738
|
2: "grid-cols-2",
|
|
739
739
|
3: "grid-cols-3",
|
|
740
740
|
4: "grid-cols-4"
|
|
741
|
-
}[columns]}` : `flex flex-col rounded-lg ${
|
|
741
|
+
}[columns]}` : `flex flex-col rounded-lg ${require_highlight.OPT_BORDER} divide-border-subtle bg-surface divide-y`,
|
|
742
742
|
children: actions.map((action) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_reopt_ai_opt_ui_primitives.CompositeItem, {
|
|
743
743
|
onClick: action.onClick,
|
|
744
744
|
disabled: action.disabled,
|
|
745
745
|
"aria-label": action.icon && typeof action.icon === "string" ? `${action.label}${action.description ? `: ${action.description}` : ""}` : void 0,
|
|
746
|
-
className: layout === "grid" ? `gap-element flex flex-col items-center rounded-lg p-4 ${
|
|
746
|
+
className: layout === "grid" ? `gap-element flex flex-col items-center rounded-lg p-4 ${require_highlight.OPT_BORDER} bg-surface ${require_highlight.OPT_FOCUS} ${require_highlight.OPT_HOVER_ITEM} cursor-pointer transition-colors disabled:cursor-not-allowed disabled:opacity-50` : `gap-group flex w-full items-center p-3 ${require_highlight.OPT_FOCUS} ${require_highlight.OPT_HOVER_ITEM} cursor-pointer first:rounded-t-lg last:rounded-b-lg disabled:cursor-not-allowed disabled:opacity-50`,
|
|
747
747
|
children: [
|
|
748
748
|
action.icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
749
749
|
className: layout === "grid" ? "text-2xl" : "bg-bg-subtle flex h-8 w-8 items-center justify-center rounded-lg text-lg",
|
|
@@ -753,14 +753,14 @@ function QuickActions({ actions, title, layout = "grid", columns = 3, showDescri
|
|
|
753
753
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
754
754
|
className: layout === "grid" ? "text-center" : "min-w-0 flex-1",
|
|
755
755
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
756
|
-
className: `text-sm font-medium ${
|
|
756
|
+
className: `text-sm font-medium ${require_highlight.OPT_TEXT_PRIMARY} ${layout === "grid" ? "block" : ""}`,
|
|
757
757
|
children: action.label
|
|
758
758
|
}), action.description && (layout === "list" || showDescriptionInGrid) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
759
759
|
className: `text-xs text-text-secondary ${layout === "grid" ? "mt-1" : "mt-0.5"}`,
|
|
760
760
|
children: action.description
|
|
761
761
|
})]
|
|
762
762
|
}),
|
|
763
|
-
action.shortcut && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
763
|
+
action.shortcut && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Kbd, {
|
|
764
764
|
className: layout === "grid" ? "mt-1" : "",
|
|
765
765
|
children: action.shortcut
|
|
766
766
|
})
|
|
@@ -788,14 +788,14 @@ const defaultLabels$27 = {
|
|
|
788
788
|
}
|
|
789
789
|
};
|
|
790
790
|
const statusDot = {
|
|
791
|
-
online:
|
|
792
|
-
away:
|
|
793
|
-
busy:
|
|
794
|
-
offline:
|
|
791
|
+
online: require_highlight.OPT_DOT_GREEN,
|
|
792
|
+
away: require_highlight.OPT_DOT_YELLOW,
|
|
793
|
+
busy: require_highlight.OPT_DOT_RED,
|
|
794
|
+
offline: require_highlight.OPT_DOT_GRAY
|
|
795
795
|
};
|
|
796
796
|
/** Renders the team member list component. */
|
|
797
797
|
function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberClick, onShowMore, emptyMessage, labels: customLabels, className }) {
|
|
798
|
-
const labels =
|
|
798
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$27), customLabels), {}, { status: require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$27.status), customLabels === null || customLabels === void 0 ? void 0 : customLabels.status) });
|
|
799
799
|
const displayTitle = title !== null && title !== void 0 ? title : labels.title;
|
|
800
800
|
const displayEmptyMessage = emptyMessage !== null && emptyMessage !== void 0 ? emptyMessage : labels.emptyMessage;
|
|
801
801
|
const titleId = (0, react.useId)();
|
|
@@ -812,10 +812,10 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
812
812
|
children: [displayTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
813
813
|
className: `text-sm font-semibold text-text-primary`,
|
|
814
814
|
children: displayTitle
|
|
815
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
815
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.AvatarGroup, {
|
|
816
816
|
max: maxDisplay !== null && maxDisplay !== void 0 ? maxDisplay : 5,
|
|
817
817
|
size: "md",
|
|
818
|
-
children: members.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
818
|
+
children: members.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
819
819
|
name: m.name,
|
|
820
820
|
src: m.avatar,
|
|
821
821
|
size: "md",
|
|
@@ -844,10 +844,10 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
844
844
|
children: [displayMembers.map((member) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_reopt_ai_opt_ui_primitives.CompositeItem, {
|
|
845
845
|
role: "listitem",
|
|
846
846
|
onClick: () => onMemberClick === null || onMemberClick === void 0 ? void 0 : onMemberClick(member),
|
|
847
|
-
className: `gap-element inline-flex items-center rounded-full py-1 pr-3 pl-1 ${
|
|
847
|
+
className: `gap-element inline-flex items-center rounded-full py-1 pr-3 pl-1 ${require_highlight.OPT_BORDER} bg-surface ${require_highlight.OPT_FOCUS} hover:bg-bg-subtle data-[active-item]:bg-accent-subtle transition-colors`,
|
|
848
848
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
849
849
|
className: "relative",
|
|
850
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
850
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
851
851
|
name: member.name,
|
|
852
852
|
src: member.avatar,
|
|
853
853
|
size: "xs"
|
|
@@ -856,7 +856,7 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
856
856
|
"aria-label": labels.status[member.status]
|
|
857
857
|
})]
|
|
858
858
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
859
|
-
className: `text-sm ${
|
|
859
|
+
className: `text-sm ${require_highlight.OPT_TEXT_PRIMARY}`,
|
|
860
860
|
children: member.name
|
|
861
861
|
})]
|
|
862
862
|
}, member.id)), remainingCount > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.CompositeItem, {
|
|
@@ -888,7 +888,7 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
888
888
|
})]
|
|
889
889
|
}), members.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
890
890
|
role: "status",
|
|
891
|
-
className: `py-8 text-center text-sm ${
|
|
891
|
+
className: `py-8 text-center text-sm ${require_highlight.OPT_TEXT_SECONDARY}`,
|
|
892
892
|
children: displayEmptyMessage
|
|
893
893
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.CompositeProvider, {
|
|
894
894
|
focusLoop: true,
|
|
@@ -897,14 +897,14 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
897
897
|
role: "list",
|
|
898
898
|
"aria-labelledby": displayTitle ? titleId : void 0,
|
|
899
899
|
"aria-label": displayTitle ? void 0 : labels.title,
|
|
900
|
-
className: `rounded-lg ${
|
|
900
|
+
className: `rounded-lg ${require_highlight.OPT_BORDER} divide-border-subtle bg-surface divide-y`,
|
|
901
901
|
children: [displayMembers.map((member) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_reopt_ai_opt_ui_primitives.CompositeItem, {
|
|
902
902
|
role: "listitem",
|
|
903
903
|
onClick: () => onMemberClick === null || onMemberClick === void 0 ? void 0 : onMemberClick(member),
|
|
904
|
-
className: `group gap-group flex w-full items-center p-3 ${
|
|
904
|
+
className: `group gap-group flex w-full items-center p-3 ${require_highlight.OPT_FOCUS} data-[active-item]:bg-accent-subtle ${onMemberClick ? "cursor-pointer" : ""}`,
|
|
905
905
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
906
906
|
className: "relative",
|
|
907
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
907
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
908
908
|
name: member.name,
|
|
909
909
|
src: member.avatar,
|
|
910
910
|
size: "md"
|
|
@@ -917,14 +917,14 @@ function TeamMemberList({ members, title, layout = "list", maxDisplay, onMemberC
|
|
|
917
917
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
918
918
|
className: "gap-element flex items-center",
|
|
919
919
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
920
|
-
className: `text-sm font-medium ${
|
|
920
|
+
className: `text-sm font-medium ${require_highlight.OPT_TEXT_PRIMARY}`,
|
|
921
921
|
children: member.name
|
|
922
922
|
}), member.status && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
923
923
|
className: `text-xs text-text-tertiary`,
|
|
924
924
|
children: ["· ", labels.status[member.status]]
|
|
925
925
|
})]
|
|
926
926
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
927
|
-
className: `text-xs ${
|
|
927
|
+
className: `text-xs ${require_highlight.OPT_TEXT_SECONDARY}`,
|
|
928
928
|
children: [
|
|
929
929
|
member.role && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: member.role }),
|
|
930
930
|
member.role && member.email && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: " · " }),
|
|
@@ -992,7 +992,7 @@ function AuthForm({ defaultMode = "login", mode: controlledMode, onModeChange, s
|
|
|
992
992
|
onSubmit: (values) => {
|
|
993
993
|
setSubmitted(true);
|
|
994
994
|
setTimeout(() => setSubmitted(false), 3e3);
|
|
995
|
-
if (onSubmit) onSubmit(
|
|
995
|
+
if (onSubmit) onSubmit(require_highlight._objectSpread2(require_highlight._objectSpread2(require_highlight._objectSpread2({
|
|
996
996
|
email: values.email,
|
|
997
997
|
password: values.password
|
|
998
998
|
}, mode === "signup" ? { confirmPassword: values.confirmPassword } : {}), mode === "login" ? { rememberMe: values.rememberMe } : {}), {}, { mode }));
|
|
@@ -1019,59 +1019,59 @@ function AuthForm({ defaultMode = "login", mode: controlledMode, onModeChange, s
|
|
|
1019
1019
|
children: signupTitle
|
|
1020
1020
|
})]
|
|
1021
1021
|
}),
|
|
1022
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1022
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.FormRoot, {
|
|
1023
1023
|
store: form,
|
|
1024
1024
|
"aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : mode === "login" ? "로그인 폼" : "회원가입 폼",
|
|
1025
1025
|
children: [
|
|
1026
1026
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1027
1027
|
className: "gap-element flex flex-col",
|
|
1028
1028
|
children: [
|
|
1029
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1029
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1030
1030
|
name: "email",
|
|
1031
1031
|
children: (_labels$emailLabel = labels.emailLabel) !== null && _labels$emailLabel !== void 0 ? _labels$emailLabel : "이메일"
|
|
1032
1032
|
}),
|
|
1033
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1033
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1034
1034
|
name: "email",
|
|
1035
1035
|
type: "email",
|
|
1036
1036
|
placeholder: "email@example.com"
|
|
1037
1037
|
}),
|
|
1038
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1038
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: "email" })
|
|
1039
1039
|
]
|
|
1040
1040
|
}),
|
|
1041
1041
|
renderExtraFields === null || renderExtraFields === void 0 ? void 0 : renderExtraFields(mode),
|
|
1042
1042
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1043
1043
|
className: "gap-element flex flex-col",
|
|
1044
1044
|
children: [
|
|
1045
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1045
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1046
1046
|
name: "password",
|
|
1047
1047
|
children: (_labels$passwordLabel = labels.passwordLabel) !== null && _labels$passwordLabel !== void 0 ? _labels$passwordLabel : "비밀번호"
|
|
1048
1048
|
}),
|
|
1049
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1049
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1050
1050
|
name: "password",
|
|
1051
1051
|
type: "password",
|
|
1052
1052
|
placeholder: `${minPasswordLength}자 이상 입력하세요`
|
|
1053
1053
|
}),
|
|
1054
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1054
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: "password" })
|
|
1055
1055
|
]
|
|
1056
1056
|
}),
|
|
1057
1057
|
mode === "signup" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1058
1058
|
className: "gap-element flex flex-col",
|
|
1059
1059
|
children: [
|
|
1060
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1060
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1061
1061
|
name: "confirmPassword",
|
|
1062
1062
|
children: (_labels$confirmPasswo = labels.confirmPasswordLabel) !== null && _labels$confirmPasswo !== void 0 ? _labels$confirmPasswo : "비밀번호 확인"
|
|
1063
1063
|
}),
|
|
1064
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1064
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1065
1065
|
name: "confirmPassword",
|
|
1066
1066
|
type: "password",
|
|
1067
1067
|
placeholder: "비밀번호를 다시 입력하세요"
|
|
1068
1068
|
}),
|
|
1069
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1069
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: "confirmPassword" })
|
|
1070
1070
|
]
|
|
1071
1071
|
}),
|
|
1072
1072
|
mode === "login" && showRememberMe && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1073
1073
|
className: "gap-group flex items-center",
|
|
1074
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1074
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSwitch, {
|
|
1075
1075
|
name: "rememberMe",
|
|
1076
1076
|
size: "sm"
|
|
1077
1077
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -1079,7 +1079,7 @@ function AuthForm({ defaultMode = "login", mode: controlledMode, onModeChange, s
|
|
|
1079
1079
|
children: (_labels$rememberMeLab = labels.rememberMeLabel) !== null && _labels$rememberMeLab !== void 0 ? _labels$rememberMeLab : "로그인 상태 유지"
|
|
1080
1080
|
})]
|
|
1081
1081
|
}),
|
|
1082
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1082
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSubmit, {
|
|
1083
1083
|
disabled: form.isSubmitting(),
|
|
1084
1084
|
children: mode === "login" ? (_labels$loginButton = labels.loginButton) !== null && _labels$loginButton !== void 0 ? _labels$loginButton : "로그인" : (_labels$signupButton = labels.signupButton) !== null && _labels$signupButton !== void 0 ? _labels$signupButton : "회원가입"
|
|
1085
1085
|
})
|
|
@@ -1160,7 +1160,7 @@ function DynamicFieldForm({ initialCount = 1, minFields = 1, maxFields, fieldTyp
|
|
|
1160
1160
|
className: "gap-group flex flex-col",
|
|
1161
1161
|
"data-opt-id": "8RYG7",
|
|
1162
1162
|
"data-opt-slug": "form-dynamic.DynamicFieldForm",
|
|
1163
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1163
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.FormRoot, {
|
|
1164
1164
|
store: form,
|
|
1165
1165
|
"aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : "동적 필드 폼",
|
|
1166
1166
|
children: [
|
|
@@ -1171,7 +1171,7 @@ function DynamicFieldForm({ initialCount = 1, minFields = 1, maxFields, fieldTyp
|
|
|
1171
1171
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1172
1172
|
className: "gap-element flex flex-col",
|
|
1173
1173
|
children: [
|
|
1174
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1174
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1175
1175
|
name: fieldName,
|
|
1176
1176
|
children: formatTemplate(itemLabel, displayIndex + 1)
|
|
1177
1177
|
}),
|
|
@@ -1179,7 +1179,7 @@ function DynamicFieldForm({ initialCount = 1, minFields = 1, maxFields, fieldTyp
|
|
|
1179
1179
|
className: "gap-element flex",
|
|
1180
1180
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1181
1181
|
className: "flex-1",
|
|
1182
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1182
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1183
1183
|
name: fieldName,
|
|
1184
1184
|
type: fieldType,
|
|
1185
1185
|
placeholder: formatTemplate(itemPlaceholder, displayIndex + 1)
|
|
@@ -1193,7 +1193,7 @@ function DynamicFieldForm({ initialCount = 1, minFields = 1, maxFields, fieldTyp
|
|
|
1193
1193
|
children: "✕"
|
|
1194
1194
|
})]
|
|
1195
1195
|
}),
|
|
1196
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1196
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: fieldName })
|
|
1197
1197
|
]
|
|
1198
1198
|
}, field.id);
|
|
1199
1199
|
})
|
|
@@ -1205,7 +1205,7 @@ function DynamicFieldForm({ initialCount = 1, minFields = 1, maxFields, fieldTyp
|
|
|
1205
1205
|
className: "border-border text-text-secondary hover:border-accent hover:bg-accent-subtle hover:text-accent w-full rounded-lg border border-dashed px-4 py-2.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-30",
|
|
1206
1206
|
children: (_labels$addButton = labels.addButton) !== null && _labels$addButton !== void 0 ? _labels$addButton : "+ 항목 추가"
|
|
1207
1207
|
}),
|
|
1208
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1208
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSubmit, {
|
|
1209
1209
|
disabled: form.isSubmitting(),
|
|
1210
1210
|
children: (_labels$submitButton = labels.submitButton) !== null && _labels$submitButton !== void 0 ? _labels$submitButton : "제출"
|
|
1211
1211
|
})
|
|
@@ -1295,30 +1295,30 @@ function FileUploadForm({ accept = "image/*,.pdf,.doc,.docx", showPreview = true
|
|
|
1295
1295
|
className: "gap-group flex flex-col",
|
|
1296
1296
|
"data-opt-id": "4E3MD",
|
|
1297
1297
|
"data-opt-slug": "form-upload.FileUploadForm",
|
|
1298
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1298
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.FormRoot, {
|
|
1299
1299
|
store: form,
|
|
1300
1300
|
"aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : "파일 업로드 폼",
|
|
1301
1301
|
children: [
|
|
1302
1302
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1303
1303
|
className: "gap-element flex flex-col",
|
|
1304
1304
|
children: [
|
|
1305
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1305
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1306
1306
|
name: "title",
|
|
1307
1307
|
children: (_labels$titleLabel = labels.titleLabel) !== null && _labels$titleLabel !== void 0 ? _labels$titleLabel : "제목"
|
|
1308
1308
|
}),
|
|
1309
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1309
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1310
1310
|
name: "title",
|
|
1311
1311
|
placeholder: (_labels$titlePlacehol = labels.titlePlaceholder) !== null && _labels$titlePlacehol !== void 0 ? _labels$titlePlacehol : "파일 제목을 입력하세요"
|
|
1312
1312
|
}),
|
|
1313
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1313
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: "title" })
|
|
1314
1314
|
]
|
|
1315
1315
|
}),
|
|
1316
1316
|
showDescription && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1317
1317
|
className: "gap-element flex flex-col",
|
|
1318
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1318
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1319
1319
|
name: "description",
|
|
1320
1320
|
children: (_labels$descriptionLa = labels.descriptionLabel) !== null && _labels$descriptionLa !== void 0 ? _labels$descriptionLa : "설명"
|
|
1321
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1321
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormTextarea, {
|
|
1322
1322
|
name: "description",
|
|
1323
1323
|
placeholder: (_labels$descriptionPl = labels.descriptionPlaceholder) !== null && _labels$descriptionPl !== void 0 ? _labels$descriptionPl : "파일에 대한 설명을 입력하세요",
|
|
1324
1324
|
rows: descriptionRows,
|
|
@@ -1382,7 +1382,7 @@ function FileUploadForm({ accept = "image/*,.pdf,.doc,.docx", showPreview = true
|
|
|
1382
1382
|
"aria-label": (_labels$columnMapping = labels.columnMappingLabel) !== null && _labels$columnMapping !== void 0 ? _labels$columnMapping : "Column mapping",
|
|
1383
1383
|
children: columnMapping
|
|
1384
1384
|
}),
|
|
1385
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1385
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSubmit, {
|
|
1386
1386
|
disabled: form.isSubmitting(),
|
|
1387
1387
|
children: (_labels$submitButton = labels.submitButton) !== null && _labels$submitButton !== void 0 ? _labels$submitButton : "업로드"
|
|
1388
1388
|
})
|
|
@@ -1472,17 +1472,17 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1472
1472
|
className: "text-text-primary text-sm font-medium",
|
|
1473
1473
|
children: field.label
|
|
1474
1474
|
}),
|
|
1475
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1475
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormRadioGroup, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1476
1476
|
className: "gap-group flex",
|
|
1477
1477
|
children: (_field$options = field.options) === null || _field$options === void 0 ? void 0 : _field$options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1478
1478
|
className: "text-text-primary gap-element flex items-center text-sm",
|
|
1479
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1479
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormRadio, {
|
|
1480
1480
|
name: field.name,
|
|
1481
1481
|
value: option.value
|
|
1482
1482
|
}), option.label]
|
|
1483
1483
|
}, option.value))
|
|
1484
1484
|
}) }),
|
|
1485
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1485
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: field.name })
|
|
1486
1486
|
]
|
|
1487
1487
|
}, field.name);
|
|
1488
1488
|
}
|
|
@@ -1490,25 +1490,25 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1490
1490
|
className: "gap-element flex flex-col",
|
|
1491
1491
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1492
1492
|
className: "text-text-primary gap-element flex items-center text-sm",
|
|
1493
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1494
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1493
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormCheckbox, { name: field.name }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: field.label })]
|
|
1494
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: field.name })]
|
|
1495
1495
|
}, field.name);
|
|
1496
1496
|
if (field.type === "textarea") {
|
|
1497
1497
|
var _field$rows, _field$resize;
|
|
1498
1498
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1499
1499
|
className: "gap-element flex flex-col",
|
|
1500
1500
|
children: [
|
|
1501
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1501
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1502
1502
|
name: field.name,
|
|
1503
1503
|
children: field.label
|
|
1504
1504
|
}),
|
|
1505
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1505
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormTextarea, {
|
|
1506
1506
|
name: field.name,
|
|
1507
1507
|
placeholder: field.placeholder,
|
|
1508
1508
|
rows: (_field$rows = field.rows) !== null && _field$rows !== void 0 ? _field$rows : 4,
|
|
1509
1509
|
resize: (_field$resize = field.resize) !== null && _field$resize !== void 0 ? _field$resize : "vertical"
|
|
1510
1510
|
}),
|
|
1511
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1511
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: field.name })
|
|
1512
1512
|
]
|
|
1513
1513
|
}, field.name);
|
|
1514
1514
|
}
|
|
@@ -1517,25 +1517,25 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1517
1517
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1518
1518
|
className: "gap-element flex flex-col",
|
|
1519
1519
|
children: [
|
|
1520
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1520
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1521
1521
|
name: field.name,
|
|
1522
1522
|
children: field.label
|
|
1523
1523
|
}),
|
|
1524
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1524
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSelect, {
|
|
1525
1525
|
name: field.name,
|
|
1526
1526
|
placeholder: field.placeholder,
|
|
1527
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1527
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSelectPopover, { children: (_field$options2 = field.options) === null || _field$options2 === void 0 ? void 0 : _field$options2.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSelectItem, {
|
|
1528
1528
|
value: option.value,
|
|
1529
1529
|
children: option.label
|
|
1530
1530
|
}, option.value)) })
|
|
1531
1531
|
}),
|
|
1532
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1532
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: field.name })
|
|
1533
1533
|
]
|
|
1534
1534
|
}, field.name);
|
|
1535
1535
|
}
|
|
1536
1536
|
if (field.type === "switch") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1537
1537
|
className: "gap-group flex items-center",
|
|
1538
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1538
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSwitch, { name: field.name }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1539
1539
|
className: "flex flex-col",
|
|
1540
1540
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1541
1541
|
className: "text-text-primary text-sm font-medium",
|
|
@@ -1549,16 +1549,16 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1549
1549
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1550
1550
|
className: "gap-element flex flex-col",
|
|
1551
1551
|
children: [
|
|
1552
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1552
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormLabel, {
|
|
1553
1553
|
name: field.name,
|
|
1554
1554
|
children: field.label
|
|
1555
1555
|
}),
|
|
1556
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1556
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormInput, {
|
|
1557
1557
|
name: field.name,
|
|
1558
1558
|
type: (_field$type = field.type) !== null && _field$type !== void 0 ? _field$type : "text",
|
|
1559
1559
|
placeholder: field.placeholder
|
|
1560
1560
|
}),
|
|
1561
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1561
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormError, { name: field.name })
|
|
1562
1562
|
]
|
|
1563
1563
|
}, field.name);
|
|
1564
1564
|
};
|
|
@@ -1597,7 +1597,7 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1597
1597
|
]
|
|
1598
1598
|
}, label))
|
|
1599
1599
|
}),
|
|
1600
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1600
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.FormRoot, {
|
|
1601
1601
|
store: form,
|
|
1602
1602
|
"aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : "다단계 폼",
|
|
1603
1603
|
children: [
|
|
@@ -1638,7 +1638,7 @@ function WizardForm({ fields, steps, showReview = true, onSubmit, onStepChange,
|
|
|
1638
1638
|
onClick: handleBack,
|
|
1639
1639
|
className: "border-border text-text-primary hover:bg-bg-subtle rounded-lg border px-4 py-2 text-sm font-medium",
|
|
1640
1640
|
children: (_labels$backButton = labels.backButton) !== null && _labels$backButton !== void 0 ? _labels$backButton : "이전"
|
|
1641
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1641
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FormSubmit, { children: isLastStep ? (_labels$submitButton = labels.submitButton) !== null && _labels$submitButton !== void 0 ? _labels$submitButton : "제출" : (_labels$nextButton = labels.nextButton) !== null && _labels$nextButton !== void 0 ? _labels$nextButton : "다음" })]
|
|
1642
1642
|
})
|
|
1643
1643
|
]
|
|
1644
1644
|
}),
|
|
@@ -1726,10 +1726,10 @@ function getEventIconStyle(color) {
|
|
|
1726
1726
|
/** Renders the event icon component. */
|
|
1727
1727
|
function EventIcon({ icon, color, size = "md", className, labels: customLabels }) {
|
|
1728
1728
|
var _iconEntry$label;
|
|
1729
|
-
const labels =
|
|
1729
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$26), customLabels);
|
|
1730
1730
|
const sizes = SIZE_MAP[size];
|
|
1731
1731
|
const resolvedColor = (color === null || color === void 0 ? void 0 : color.trim()) ? color : void 0;
|
|
1732
|
-
const iconEntry = typeof icon === "string" ?
|
|
1732
|
+
const iconEntry = typeof icon === "string" ? require_highlight.getIconRegistryEntry(icon) : void 0;
|
|
1733
1733
|
const iconElement = react.isValidElement(icon) ? icon : null;
|
|
1734
1734
|
const ariaLabel = typeof icon === "string" ? `${labels.eventLabelPrefix}: ${(_iconEntry$label = iconEntry === null || iconEntry === void 0 ? void 0 : iconEntry.label) !== null && _iconEntry$label !== void 0 ? _iconEntry$label : icon}` : labels.defaultAriaLabel;
|
|
1735
1735
|
let iconContent;
|
|
@@ -1738,13 +1738,13 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
|
|
|
1738
1738
|
size: sizes.iconSize
|
|
1739
1739
|
});
|
|
1740
1740
|
else if (typeof icon === "string") iconContent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1741
|
-
className:
|
|
1741
|
+
className: require_highlight.cn(sizes.text, "leading-none"),
|
|
1742
1742
|
children: icon
|
|
1743
1743
|
});
|
|
1744
1744
|
else if (iconElement) iconContent = react.cloneElement(iconElement, {
|
|
1745
1745
|
"aria-hidden": true,
|
|
1746
1746
|
size: sizes.iconSize,
|
|
1747
|
-
className:
|
|
1747
|
+
className: require_highlight.cn("shrink-0", iconElement.props.className)
|
|
1748
1748
|
});
|
|
1749
1749
|
else iconContent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1750
1750
|
className: "flex shrink-0 items-center justify-center",
|
|
@@ -1753,7 +1753,7 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
|
|
|
1753
1753
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1754
1754
|
role: "img",
|
|
1755
1755
|
"aria-label": ariaLabel,
|
|
1756
|
-
className:
|
|
1756
|
+
className: require_highlight.cn("inline-flex shrink-0 items-center justify-center rounded-lg", !resolvedColor && "bg-accent-subtle text-accent", sizes.container, className),
|
|
1757
1757
|
style: getEventIconStyle(resolvedColor),
|
|
1758
1758
|
"data-opt-id": "ZNSD9",
|
|
1759
1759
|
"data-opt-slug": "event-icon.EventIcon",
|
|
@@ -1803,12 +1803,12 @@ function ConnectionIndicator({ status, tone, label, showLabel = true, pulse, cla
|
|
|
1803
1803
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
1804
1804
|
role: "status",
|
|
1805
1805
|
"aria-label": displayLabel || void 0,
|
|
1806
|
-
className:
|
|
1806
|
+
className: require_highlight.cn("inline-flex min-w-0 items-center gap-1.5", className),
|
|
1807
1807
|
"data-opt-id": "191EC",
|
|
1808
1808
|
"data-opt-slug": "connection-indicator.ConnectionIndicator",
|
|
1809
1809
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
1810
1810
|
className: "relative flex h-2.5 w-2.5 flex-none",
|
|
1811
|
-
children: [resolvedPulse && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className:
|
|
1811
|
+
children: [resolvedPulse && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: require_highlight.cn("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75", dotClass) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: require_highlight.cn("relative inline-flex h-2.5 w-2.5 rounded-full", dotClass) })]
|
|
1812
1812
|
}), showLabel && displayLabel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1813
1813
|
className: "text-text-secondary truncate text-xs",
|
|
1814
1814
|
children: displayLabel
|
|
@@ -1825,12 +1825,12 @@ const defaultLabels$25 = {
|
|
|
1825
1825
|
};
|
|
1826
1826
|
/** Renders the floating action bar component. */
|
|
1827
1827
|
function FloatingActionBar({ actions, selectedCount, onAction, onDismiss, className, labels: customLabels }) {
|
|
1828
|
-
const labels =
|
|
1828
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$25), customLabels);
|
|
1829
1829
|
if (actions.length === 0) return null;
|
|
1830
1830
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1831
1831
|
role: "toolbar",
|
|
1832
1832
|
"aria-label": labels.toolbarAriaLabel,
|
|
1833
|
-
className:
|
|
1833
|
+
className: require_highlight.cn("fixed bottom-6 left-1/2 z-50 -translate-x-1/2", "gap-element flex items-center rounded-xl px-4 py-2.5", "bg-black/90 shadow-xl", "backdrop-blur-sm", className),
|
|
1834
1834
|
"data-opt-id": "S390B",
|
|
1835
1835
|
"data-opt-slug": "floating-action-bar.FloatingActionBar",
|
|
1836
1836
|
children: [
|
|
@@ -1840,12 +1840,12 @@ function FloatingActionBar({ actions, selectedCount, onAction, onDismiss, classN
|
|
|
1840
1840
|
}),
|
|
1841
1841
|
actions.map((action) => {
|
|
1842
1842
|
const variant = action.variant === "danger" ? "danger" : action.variant === "primary" ? "primary" : "ghost";
|
|
1843
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1843
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Button, {
|
|
1844
1844
|
variant,
|
|
1845
1845
|
size: "sm",
|
|
1846
1846
|
disabled: action.disabled,
|
|
1847
1847
|
onClick: () => onAction(action.id),
|
|
1848
|
-
className:
|
|
1848
|
+
className: require_highlight.cn(variant === "ghost" && "text-white hover:bg-white/10"),
|
|
1849
1849
|
children: [action.icon, action.label]
|
|
1850
1850
|
}, action.id);
|
|
1851
1851
|
}),
|
|
@@ -1870,7 +1870,7 @@ const defaultLabels$24 = {
|
|
|
1870
1870
|
};
|
|
1871
1871
|
/** Renders the template picker component. */
|
|
1872
1872
|
function TemplatePicker({ templates, selected, onSelect, labels: customLabels, showSearch = false, className }) {
|
|
1873
|
-
const labels =
|
|
1873
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$24), customLabels);
|
|
1874
1874
|
const [search, setSearch] = react.useState("");
|
|
1875
1875
|
const filtered = react.useMemo(() => {
|
|
1876
1876
|
if (!showSearch || !search) return templates;
|
|
@@ -1895,7 +1895,7 @@ function TemplatePicker({ templates, selected, onSelect, labels: customLabels, s
|
|
|
1895
1895
|
return map;
|
|
1896
1896
|
}, [filtered, labels.defaultCategory]);
|
|
1897
1897
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1898
|
-
className:
|
|
1898
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
1899
1899
|
role: "listbox",
|
|
1900
1900
|
"aria-label": labels.ariaLabel,
|
|
1901
1901
|
"data-opt-id": "PVFJP",
|
|
@@ -1906,7 +1906,7 @@ function TemplatePicker({ templates, selected, onSelect, labels: customLabels, s
|
|
|
1906
1906
|
onChange: (e) => setSearch(e.target.value),
|
|
1907
1907
|
placeholder: labels.searchPlaceholder,
|
|
1908
1908
|
"aria-label": labels.searchPlaceholder,
|
|
1909
|
-
className:
|
|
1909
|
+
className: require_highlight.cn("border-border bg-surface text-text-primary placeholder:text-text-tertiary focus:border-accent w-full rounded-lg border px-3 py-2 text-sm", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset")
|
|
1910
1910
|
}), Array.from(grouped).map(([category, items]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
1911
1911
|
className: "text-text-tertiary mb-2 text-xs font-semibold tracking-wider uppercase",
|
|
1912
1912
|
children: category
|
|
@@ -1916,7 +1916,7 @@ function TemplatePicker({ templates, selected, onSelect, labels: customLabels, s
|
|
|
1916
1916
|
role: "option",
|
|
1917
1917
|
"aria-selected": selected === t.id,
|
|
1918
1918
|
onClick: () => onSelect(t.id),
|
|
1919
|
-
className:
|
|
1919
|
+
className: require_highlight.cn("flex flex-col items-start gap-1 rounded-lg border p-3 text-left transition-colors", "hover:bg-bg-subtle", selected === t.id ? "border-accent bg-accent-subtle" : "border-border"),
|
|
1920
1920
|
children: [
|
|
1921
1921
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1922
1922
|
className: "gap-element flex w-full items-center",
|
|
@@ -1929,7 +1929,7 @@ function TemplatePicker({ templates, selected, onSelect, labels: customLabels, s
|
|
|
1929
1929
|
className: "text-text-primary text-sm font-medium",
|
|
1930
1930
|
children: t.name
|
|
1931
1931
|
}),
|
|
1932
|
-
t.featured && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1932
|
+
t.featured && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Badge, {
|
|
1933
1933
|
variant: "info",
|
|
1934
1934
|
size: "sm",
|
|
1935
1935
|
className: "ml-auto",
|
|
@@ -1994,7 +1994,7 @@ const syntaxThemeClasses = {
|
|
|
1994
1994
|
/** Renders the code snippet viewer component. */
|
|
1995
1995
|
function CodeSnippetViewer({ code, language = "text", title, showLineNumbers = true, showCopyButton = true, maxHeight = 400, syntaxTheme = "default", className, labels: customLabels }) {
|
|
1996
1996
|
var _syntaxThemeClasses$s;
|
|
1997
|
-
const labels =
|
|
1997
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$23), customLabels);
|
|
1998
1998
|
const [copied, setCopied] = react.useState(false);
|
|
1999
1999
|
const lines = code.split("\n");
|
|
2000
2000
|
const theme = (_syntaxThemeClasses$s = syntaxThemeClasses[syntaxTheme]) !== null && _syntaxThemeClasses$s !== void 0 ? _syntaxThemeClasses$s : syntaxThemeClasses.default;
|
|
@@ -2007,11 +2007,11 @@ function CodeSnippetViewer({ code, language = "text", title, showLineNumbers = t
|
|
|
2007
2007
|
} catch (_unused) {}
|
|
2008
2008
|
}, [code]);
|
|
2009
2009
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2010
|
-
className:
|
|
2010
|
+
className: require_highlight.cn("border-border overflow-hidden rounded-lg border", theme.root, className),
|
|
2011
2011
|
"data-opt-id": "9GDXY",
|
|
2012
2012
|
"data-opt-slug": "code-snippet-viewer.CodeSnippetViewer",
|
|
2013
2013
|
children: [(title || showCopyButton) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2014
|
-
className:
|
|
2014
|
+
className: require_highlight.cn("border-border flex items-center justify-between border-b px-3 py-1.5", theme.header),
|
|
2015
2015
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2016
2016
|
className: "text-text-tertiary text-xs font-medium",
|
|
2017
2017
|
children: title !== null && title !== void 0 ? title : language
|
|
@@ -2022,20 +2022,20 @@ function CodeSnippetViewer({ code, language = "text", title, showLineNumbers = t
|
|
|
2022
2022
|
children: copied ? labels.copied : labels.copy
|
|
2023
2023
|
})]
|
|
2024
2024
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2025
|
-
className:
|
|
2025
|
+
className: require_highlight.cn("overflow-auto", require_highlight.OPT_FOCUS_VISIBLE),
|
|
2026
2026
|
style: { maxHeight },
|
|
2027
2027
|
tabIndex: 0,
|
|
2028
2028
|
role: "region",
|
|
2029
2029
|
"aria-label": regionLabel,
|
|
2030
2030
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
|
|
2031
|
-
className:
|
|
2031
|
+
className: require_highlight.cn("p-3 font-mono text-sm", theme.pre),
|
|
2032
2032
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: lines.map((line, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2033
2033
|
className: "flex",
|
|
2034
2034
|
children: [showLineNumbers && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2035
|
-
className:
|
|
2035
|
+
className: require_highlight.cn("min-w-[2.5rem] pr-4 text-right select-none", theme.lineNumber),
|
|
2036
2036
|
children: i + 1
|
|
2037
2037
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2038
|
-
className:
|
|
2038
|
+
className: require_highlight.cn("whitespace-pre", theme.code),
|
|
2039
2039
|
children: line
|
|
2040
2040
|
})]
|
|
2041
2041
|
}, i)) })
|
|
@@ -2052,21 +2052,21 @@ const defaultLabels$22 = {
|
|
|
2052
2052
|
};
|
|
2053
2053
|
/** Renders the property explorer component. */
|
|
2054
2054
|
function PropertyExplorer({ groups, onSelect, className, labels: customLabels }) {
|
|
2055
|
-
const labels =
|
|
2055
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$22), customLabels);
|
|
2056
2056
|
const [search, setSearch] = react.useState("");
|
|
2057
2057
|
const filtered = react.useMemo(() => {
|
|
2058
2058
|
if (!search) return groups;
|
|
2059
2059
|
const q = search.toLowerCase();
|
|
2060
|
-
return groups.map((g) =>
|
|
2060
|
+
return groups.map((g) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, g), {}, { properties: g.properties.filter((p) => {
|
|
2061
2061
|
var _p$description;
|
|
2062
2062
|
return p.name.toLowerCase().includes(q) || p.type.toLowerCase().includes(q) || ((_p$description = p.description) === null || _p$description === void 0 ? void 0 : _p$description.toLowerCase().includes(q));
|
|
2063
2063
|
}) })).filter((g) => g.properties.length > 0);
|
|
2064
2064
|
}, [groups, search]);
|
|
2065
2065
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2066
|
-
className:
|
|
2066
|
+
className: require_highlight.cn("gap-element flex flex-col", className),
|
|
2067
2067
|
"data-opt-id": "HJF32",
|
|
2068
2068
|
"data-opt-slug": "property-explorer.PropertyExplorer",
|
|
2069
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2069
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2070
2070
|
placeholder: labels.searchPlaceholder,
|
|
2071
2071
|
value: search,
|
|
2072
2072
|
onChange: (e) => setSearch(e.target.value),
|
|
@@ -2080,10 +2080,16 @@ function PropertyExplorer({ groups, onSelect, className, labels: customLabels })
|
|
|
2080
2080
|
className: "gap-element flex flex-col",
|
|
2081
2081
|
children: group.properties.map((prop) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2082
2082
|
onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(prop),
|
|
2083
|
-
className:
|
|
2083
|
+
className: require_highlight.cn("flex w-full items-center justify-between rounded-md px-2.5 py-1.5 text-left", "hover:bg-bg-subtle transition-colors"),
|
|
2084
2084
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2085
2085
|
className: "min-w-0",
|
|
2086
2086
|
children: [
|
|
2087
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.FieldToken, {
|
|
2088
|
+
type: require_highlight.resolveFieldType(prop.type),
|
|
2089
|
+
size: "xs",
|
|
2090
|
+
title: prop.type,
|
|
2091
|
+
className: "mr-2 align-[-2px]"
|
|
2092
|
+
}),
|
|
2087
2093
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2088
2094
|
className: "text-text-primary text-sm font-medium",
|
|
2089
2095
|
children: prop.name
|
|
@@ -2099,7 +2105,7 @@ function PropertyExplorer({ groups, onSelect, className, labels: customLabels })
|
|
|
2099
2105
|
]
|
|
2100
2106
|
}), prop.eventCount !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2101
2107
|
className: "text-text-tertiary ml-2 shrink-0 text-xs",
|
|
2102
|
-
children:
|
|
2108
|
+
children: require_key_pad_menu.formatOptNumber(prop.eventCount)
|
|
2103
2109
|
})]
|
|
2104
2110
|
}, prop.name))
|
|
2105
2111
|
})] }, group.name)), filtered.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -2119,9 +2125,9 @@ const defaultLabels$21 = {
|
|
|
2119
2125
|
};
|
|
2120
2126
|
/** Renders the query results table component. */
|
|
2121
2127
|
function QueryResultsTable({ columns, rows, maxHeight = 400, emptyMessage, loading = false, error, labels: customLabels, className }) {
|
|
2122
|
-
const labels =
|
|
2128
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$21), customLabels);
|
|
2123
2129
|
if (error) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2124
|
-
className:
|
|
2130
|
+
className: require_highlight.cn("border-danger bg-danger-subtle rounded-lg border p-4", className),
|
|
2125
2131
|
role: "alert",
|
|
2126
2132
|
"aria-live": "assertive",
|
|
2127
2133
|
"data-opt-id": "PNC1V",
|
|
@@ -2132,7 +2138,7 @@ function QueryResultsTable({ columns, rows, maxHeight = 400, emptyMessage, loadi
|
|
|
2132
2138
|
})
|
|
2133
2139
|
});
|
|
2134
2140
|
if (loading) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2135
|
-
className:
|
|
2141
|
+
className: require_highlight.cn("border-border rounded-lg border p-8 text-center", className),
|
|
2136
2142
|
role: "status",
|
|
2137
2143
|
"aria-live": "polite",
|
|
2138
2144
|
"aria-busy": "true",
|
|
@@ -2147,7 +2153,7 @@ function QueryResultsTable({ columns, rows, maxHeight = 400, emptyMessage, loadi
|
|
|
2147
2153
|
})]
|
|
2148
2154
|
});
|
|
2149
2155
|
if (rows.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2150
|
-
className:
|
|
2156
|
+
className: require_highlight.cn("border-border rounded-lg border p-8 text-center", className),
|
|
2151
2157
|
"data-opt-id": "PNC1V",
|
|
2152
2158
|
"data-opt-slug": "query-results-table.QueryResultsTable",
|
|
2153
2159
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -2156,7 +2162,7 @@ function QueryResultsTable({ columns, rows, maxHeight = 400, emptyMessage, loadi
|
|
|
2156
2162
|
})
|
|
2157
2163
|
});
|
|
2158
2164
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2159
|
-
className:
|
|
2165
|
+
className: require_highlight.cn("border-border overflow-hidden rounded-lg border", className),
|
|
2160
2166
|
"data-opt-id": "PNC1V",
|
|
2161
2167
|
"data-opt-slug": "query-results-table.QueryResultsTable",
|
|
2162
2168
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2274,16 +2280,16 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2274
2280
|
], labels: customLabels, className }) {
|
|
2275
2281
|
const resolvedMetrics = eventOptions ? eventOptions.map((e) => e.id) : metrics;
|
|
2276
2282
|
const metricLabelMap = eventOptions ? Object.fromEntries(eventOptions.map((e) => [e.id, e.name])) : null;
|
|
2277
|
-
const labels =
|
|
2283
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$20), customLabels);
|
|
2278
2284
|
const alertNameId = react.useId();
|
|
2279
2285
|
const conditionsId = react.useId();
|
|
2280
2286
|
const checkFrequencyId = react.useId();
|
|
2281
2287
|
const notificationChannelsId = react.useId();
|
|
2282
2288
|
const update = (partial) => {
|
|
2283
|
-
onChange(
|
|
2289
|
+
onChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, value), partial));
|
|
2284
2290
|
};
|
|
2285
2291
|
if (resolvedMetrics.length === 0 || channels.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2286
|
-
className:
|
|
2292
|
+
className: require_highlight.cn("text-text-secondary text-sm", className),
|
|
2287
2293
|
"data-opt-id": "VTENR",
|
|
2288
2294
|
"data-opt-slug": "alert-builder.AlertBuilder",
|
|
2289
2295
|
children: labels.emptyMessage
|
|
@@ -2296,7 +2302,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2296
2302
|
}] });
|
|
2297
2303
|
};
|
|
2298
2304
|
const updateCondition = (index, partial) => {
|
|
2299
|
-
const next = value.conditions.map((c, i) => i === index ?
|
|
2305
|
+
const next = value.conditions.map((c, i) => i === index ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, c), partial) : c);
|
|
2300
2306
|
update({ conditions: next });
|
|
2301
2307
|
};
|
|
2302
2308
|
const removeCondition = (index) => {
|
|
@@ -2307,7 +2313,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2307
2313
|
update({ channels: next });
|
|
2308
2314
|
};
|
|
2309
2315
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2310
|
-
className:
|
|
2316
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
2311
2317
|
"data-opt-id": "VTENR",
|
|
2312
2318
|
"data-opt-slug": "alert-builder.AlertBuilder",
|
|
2313
2319
|
children: [
|
|
@@ -2315,7 +2321,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2315
2321
|
htmlFor: alertNameId,
|
|
2316
2322
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2317
2323
|
children: labels.alertNameLabel
|
|
2318
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2324
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2319
2325
|
id: alertNameId,
|
|
2320
2326
|
value: value.name,
|
|
2321
2327
|
onChange: (e) => update({ name: e.target.value }),
|
|
@@ -2366,7 +2372,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2366
2372
|
children: op.label
|
|
2367
2373
|
}, op.value))
|
|
2368
2374
|
}),
|
|
2369
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2375
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2370
2376
|
type: "number",
|
|
2371
2377
|
value: cond.threshold,
|
|
2372
2378
|
onChange: (e) => updateCondition(i, { threshold: Number(e.target.value) }),
|
|
@@ -2383,7 +2389,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2383
2389
|
]
|
|
2384
2390
|
}, i))
|
|
2385
2391
|
}),
|
|
2386
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2392
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
2387
2393
|
variant: "ghost",
|
|
2388
2394
|
size: "sm",
|
|
2389
2395
|
onClick: addCondition,
|
|
@@ -2403,7 +2409,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2403
2409
|
type: "button",
|
|
2404
2410
|
onClick: () => update({ frequency: f.value }),
|
|
2405
2411
|
"aria-pressed": value.frequency === f.value,
|
|
2406
|
-
className:
|
|
2412
|
+
className: require_highlight.cn("focus-visible:ring-accent rounded-md px-3 py-1.5 text-sm transition-colors focus-visible:ring-2 focus-visible:outline-none", value.frequency === f.value ? "bg-accent text-accent-fg" : "bg-bg-subtle text-text-secondary hover:bg-bg-muted"),
|
|
2407
2413
|
children: f.label
|
|
2408
2414
|
}, f.value))
|
|
2409
2415
|
})] }),
|
|
@@ -2419,7 +2425,7 @@ function AlertBuilder({ value, onChange, metrics = [
|
|
|
2419
2425
|
type: "button",
|
|
2420
2426
|
onClick: () => toggleChannel(ch.id),
|
|
2421
2427
|
"aria-pressed": value.channels.includes(ch.id),
|
|
2422
|
-
className:
|
|
2428
|
+
className: require_highlight.cn("focus-visible:ring-accent rounded-md px-3 py-1.5 text-sm transition-colors focus-visible:ring-2 focus-visible:outline-none", value.channels.includes(ch.id) ? "bg-accent text-accent-fg" : "bg-bg-subtle text-text-secondary hover:bg-bg-muted"),
|
|
2423
2429
|
children: ch.label
|
|
2424
2430
|
}, ch.id))
|
|
2425
2431
|
})] })
|
|
@@ -2437,7 +2443,7 @@ const defaultLabels$19 = {
|
|
|
2437
2443
|
};
|
|
2438
2444
|
/** Renders the sql editor component. */
|
|
2439
2445
|
function SqlEditor({ value, onChange, onRun, onRunAndAdvance, placeholder, readOnly = false, height = 200, schema, completionSources, keymap: customKeymap, extensions: customExtensions, ariaLabel, autoFocus = false, showFooter, labels: customLabels, className }) {
|
|
2440
|
-
const labels =
|
|
2446
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$19), customLabels);
|
|
2441
2447
|
const fill = height === "fill";
|
|
2442
2448
|
const footerVisible = showFooter !== null && showFooter !== void 0 ? showFooter : Boolean(onRun);
|
|
2443
2449
|
const editorRef = react.useRef(null);
|
|
@@ -2585,19 +2591,19 @@ function SqlEditor({ value, onChange, onRun, onRunAndAdvance, placeholder, readO
|
|
|
2585
2591
|
};
|
|
2586
2592
|
}, [readOnly]);
|
|
2587
2593
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2588
|
-
className:
|
|
2594
|
+
className: require_highlight.cn("gap-element flex flex-col", fill && "h-full min-h-0", className),
|
|
2589
2595
|
"data-opt-id": "RSGKV",
|
|
2590
2596
|
"data-opt-slug": "sql-editor.SqlEditor",
|
|
2591
2597
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2592
2598
|
ref: editorRef,
|
|
2593
|
-
className:
|
|
2599
|
+
className: require_highlight.cn("border-border overflow-hidden rounded-lg border", fill && "min-h-0 flex-1"),
|
|
2594
2600
|
style: fill ? void 0 : { height }
|
|
2595
2601
|
}), footerVisible && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2596
2602
|
className: "flex flex-none items-center justify-between",
|
|
2597
2603
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2598
2604
|
className: "text-text-tertiary text-xs",
|
|
2599
2605
|
children: labels.runHint
|
|
2600
|
-
}), onRun && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2606
|
+
}), onRun && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
2601
2607
|
variant: "primary",
|
|
2602
2608
|
size: "sm",
|
|
2603
2609
|
onClick: () => onRun(value),
|
|
@@ -2624,17 +2630,17 @@ const defaultLabels$18 = {
|
|
|
2624
2630
|
};
|
|
2625
2631
|
/** Renders the event meta editor component. */
|
|
2626
2632
|
function EventMetaEditor({ value, onChange, icons, className, labels: customLabels }) {
|
|
2627
|
-
const labels =
|
|
2633
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$18), customLabels);
|
|
2628
2634
|
const hasTags = value.tags.length > 0;
|
|
2629
2635
|
const nameId = react.useId();
|
|
2630
2636
|
const displayNameId = react.useId();
|
|
2631
2637
|
const descriptionId = react.useId();
|
|
2632
2638
|
const tagsId = react.useId();
|
|
2633
2639
|
const update = (partial) => {
|
|
2634
|
-
onChange(
|
|
2640
|
+
onChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, value), partial));
|
|
2635
2641
|
};
|
|
2636
2642
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2637
|
-
className:
|
|
2643
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
2638
2644
|
"data-opt-id": "EZR35",
|
|
2639
2645
|
"data-opt-slug": "event-meta-editor.EventMetaEditor",
|
|
2640
2646
|
children: [
|
|
@@ -2644,7 +2650,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2644
2650
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2645
2651
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2646
2652
|
children: labels.icon
|
|
2647
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2653
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.IconPicker, {
|
|
2648
2654
|
value: value.icon,
|
|
2649
2655
|
onChange: (icon) => update({ icon }),
|
|
2650
2656
|
icons,
|
|
@@ -2653,7 +2659,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2653
2659
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2654
2660
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2655
2661
|
children: labels.color
|
|
2656
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2662
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.ColorPicker, {
|
|
2657
2663
|
value: value.color,
|
|
2658
2664
|
onChange: (color) => update({ color }),
|
|
2659
2665
|
"aria-label": labels.color
|
|
@@ -2674,7 +2680,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2674
2680
|
htmlFor: nameId,
|
|
2675
2681
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2676
2682
|
children: labels.name
|
|
2677
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2683
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2678
2684
|
id: nameId,
|
|
2679
2685
|
value: value.name,
|
|
2680
2686
|
onChange: (e) => update({ name: e.target.value }),
|
|
@@ -2684,7 +2690,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2684
2690
|
htmlFor: displayNameId,
|
|
2685
2691
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2686
2692
|
children: labels.displayName
|
|
2687
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2693
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2688
2694
|
id: displayNameId,
|
|
2689
2695
|
value: value.displayName,
|
|
2690
2696
|
onChange: (e) => update({ displayName: e.target.value }),
|
|
@@ -2695,7 +2701,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2695
2701
|
htmlFor: descriptionId,
|
|
2696
2702
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2697
2703
|
children: labels.description
|
|
2698
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2704
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2699
2705
|
id: descriptionId,
|
|
2700
2706
|
value: value.description,
|
|
2701
2707
|
onChange: (e) => update({ description: e.target.value }),
|
|
@@ -2706,7 +2712,7 @@ function EventMetaEditor({ value, onChange, icons, className, labels: customLabe
|
|
|
2706
2712
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
2707
2713
|
children: labels.tags
|
|
2708
2714
|
}),
|
|
2709
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2715
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.TagInput, {
|
|
2710
2716
|
id: tagsId,
|
|
2711
2717
|
value: value.tags,
|
|
2712
2718
|
onChange: (tags) => update({ tags }),
|
|
@@ -2727,17 +2733,17 @@ EventMetaEditor.displayName = "EventMetaEditor";
|
|
|
2727
2733
|
const defaultLabels$17 = { emptyMessage: "No widgets to display" };
|
|
2728
2734
|
/** Renders the widget grid component. */
|
|
2729
2735
|
function WidgetGrid({ widgets, cols = 12, rowHeight = 80, gap = 16, editable = false, onReorder, labels: customLabels, className }) {
|
|
2730
|
-
const labels =
|
|
2736
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$17), customLabels);
|
|
2731
2737
|
const [dragIdx, setDragIdx] = react.useState(null);
|
|
2732
2738
|
const [overIdx, setOverIdx] = react.useState(null);
|
|
2733
2739
|
if (widgets.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2734
|
-
className:
|
|
2740
|
+
className: require_highlight.cn("text-text-secondary text-sm", className),
|
|
2735
2741
|
"data-opt-id": "QJY9W",
|
|
2736
2742
|
"data-opt-slug": "widget-grid.WidgetGrid",
|
|
2737
2743
|
children: labels.emptyMessage
|
|
2738
2744
|
});
|
|
2739
2745
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2740
|
-
className:
|
|
2746
|
+
className: require_highlight.cn("grid", className),
|
|
2741
2747
|
style: {
|
|
2742
2748
|
gridTemplateColumns: `repeat(${cols}, 1fr)`,
|
|
2743
2749
|
gap
|
|
@@ -2760,7 +2766,7 @@ function WidgetGrid({ widgets, cols = 12, rowHeight = 80, gap = 16, editable = f
|
|
|
2760
2766
|
setDragIdx(null);
|
|
2761
2767
|
setOverIdx(null);
|
|
2762
2768
|
} : void 0,
|
|
2763
|
-
className:
|
|
2769
|
+
className: require_highlight.cn("overflow-hidden rounded-lg", editable && "cursor-grab", editable && dragIdx === i && "opacity-50", editable && overIdx === i && dragIdx !== i && "ring-accent ring-2"),
|
|
2764
2770
|
style: {
|
|
2765
2771
|
gridColumn: `span ${Math.min(w.w, cols)}`,
|
|
2766
2772
|
minHeight: w.h * rowHeight
|
|
@@ -2848,7 +2854,7 @@ const STEPS = [
|
|
|
2848
2854
|
];
|
|
2849
2855
|
/** Renders the report builder component. */
|
|
2850
2856
|
function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onSave, onCancel, configForm, styleForm, preview, onChartTypeChange, onDataSourceChange, onStepChange, selectedChartType: controlledChartType, selectedDataSource: controlledDataSource, labels: customLabels, className }) {
|
|
2851
|
-
const labels =
|
|
2857
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$16), customLabels);
|
|
2852
2858
|
const [stepIndex, setStepIndex] = react.useState(0);
|
|
2853
2859
|
const [internalChartType, setInternalChartType] = react.useState(null);
|
|
2854
2860
|
const [internalDataSource, setInternalDataSource] = react.useState("");
|
|
@@ -2904,7 +2910,7 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2904
2910
|
});
|
|
2905
2911
|
};
|
|
2906
2912
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2907
|
-
className:
|
|
2913
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
2908
2914
|
"data-opt-id": "K9STD",
|
|
2909
2915
|
"data-opt-slug": "report-builder.ReportBuilder",
|
|
2910
2916
|
children: [
|
|
@@ -2917,16 +2923,16 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2917
2923
|
children: [
|
|
2918
2924
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2919
2925
|
"aria-hidden": "true",
|
|
2920
|
-
className:
|
|
2926
|
+
className: require_highlight.cn("flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-medium", i <= stepIndex ? "bg-accent text-accent-fg" : "bg-bg-subtle text-text-secondary"),
|
|
2921
2927
|
children: i + 1
|
|
2922
2928
|
}),
|
|
2923
2929
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2924
|
-
className:
|
|
2930
|
+
className: require_highlight.cn("hidden text-sm sm:inline", i <= stepIndex ? "text-text-primary font-medium" : "text-text-secondary"),
|
|
2925
2931
|
children: stepLabels[step]
|
|
2926
2932
|
}),
|
|
2927
2933
|
i < STEPS.length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2928
2934
|
"aria-hidden": "true",
|
|
2929
|
-
className:
|
|
2935
|
+
className: require_highlight.cn("h-px flex-1", i < stepIndex ? "bg-accent" : "bg-border-subtle")
|
|
2930
2936
|
})
|
|
2931
2937
|
]
|
|
2932
2938
|
}, step))
|
|
@@ -2939,7 +2945,7 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2939
2945
|
htmlFor: reportNameId,
|
|
2940
2946
|
className: "text-text-tertiary text-xs font-medium",
|
|
2941
2947
|
children: labels.reportNameLabel
|
|
2942
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2948
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2943
2949
|
id: reportNameId,
|
|
2944
2950
|
value: reportName,
|
|
2945
2951
|
onChange: (e) => setReportName(e.target.value),
|
|
@@ -2951,7 +2957,7 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2951
2957
|
htmlFor: reportDescriptionId,
|
|
2952
2958
|
className: "text-text-tertiary text-xs font-medium",
|
|
2953
2959
|
children: labels.reportDescriptionLabel
|
|
2954
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2960
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
2955
2961
|
id: reportDescriptionId,
|
|
2956
2962
|
value: reportDescription,
|
|
2957
2963
|
onChange: (e) => setReportDescription(e.target.value),
|
|
@@ -2974,14 +2980,14 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2974
2980
|
children: chartTypes.map((ct) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2975
2981
|
type: "button",
|
|
2976
2982
|
onClick: () => handleChartTypeSelect(ct.type),
|
|
2977
|
-
className:
|
|
2983
|
+
className: require_highlight.cn("flex cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border p-3 text-center transition-colors", "focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none", chartType === ct.type ? "border-accent bg-accent-subtle" : "border-border hover:bg-bg-subtle"),
|
|
2978
2984
|
"aria-pressed": chartType === ct.type,
|
|
2979
2985
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2980
2986
|
className: "text-xl leading-none",
|
|
2981
2987
|
"aria-hidden": "true",
|
|
2982
2988
|
children: ct.icon
|
|
2983
2989
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2984
|
-
className:
|
|
2990
|
+
className: require_highlight.cn("text-xs leading-tight", chartType === ct.type ? "text-accent font-medium" : "text-text-tertiary"),
|
|
2985
2991
|
children: ct.label
|
|
2986
2992
|
})]
|
|
2987
2993
|
}, ct.type))
|
|
@@ -2996,7 +3002,7 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
2996
3002
|
id: dataSourceSelectId,
|
|
2997
3003
|
value: dataSourceId,
|
|
2998
3004
|
onChange: (e) => handleDataSourceChange(e.target.value),
|
|
2999
|
-
className:
|
|
3005
|
+
className: require_highlight.cn("border-border text-text-primary bg-surface w-full rounded-lg border px-3 py-2 text-sm", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset"),
|
|
3000
3006
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
3001
3007
|
value: "",
|
|
3002
3008
|
children: labels.dataSourcePlaceholder
|
|
@@ -3035,26 +3041,26 @@ function ReportBuilder({ chartTypes = DEFAULT_CHART_TYPES, dataSources = [], onS
|
|
|
3035
3041
|
className: "flex items-center justify-between",
|
|
3036
3042
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3037
3043
|
className: "gap-element flex",
|
|
3038
|
-
children: stepIndex > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3044
|
+
children: stepIndex > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3039
3045
|
variant: "secondary",
|
|
3040
3046
|
onClick: goBack,
|
|
3041
3047
|
children: labels.backButton
|
|
3042
|
-
}) : onCancel ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3048
|
+
}) : onCancel ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3043
3049
|
variant: "secondary",
|
|
3044
3050
|
onClick: onCancel,
|
|
3045
3051
|
children: labels.cancelButton
|
|
3046
3052
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {})
|
|
3047
3053
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3048
3054
|
className: "gap-element flex",
|
|
3049
|
-
children: [onCancel && stepIndex > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3055
|
+
children: [onCancel && stepIndex > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3050
3056
|
variant: "ghost",
|
|
3051
3057
|
onClick: onCancel,
|
|
3052
3058
|
children: labels.cancelButton
|
|
3053
|
-
}), currentStep === "preview" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3059
|
+
}), currentStep === "preview" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3054
3060
|
variant: "primary",
|
|
3055
3061
|
onClick: handleSave,
|
|
3056
3062
|
children: labels.saveButton
|
|
3057
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3063
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3058
3064
|
variant: "primary",
|
|
3059
3065
|
onClick: goNext,
|
|
3060
3066
|
disabled: !canGoNext(),
|
|
@@ -3093,7 +3099,7 @@ const actionDotColor = {
|
|
|
3093
3099
|
};
|
|
3094
3100
|
function DiffTable({ changes, labels }) {
|
|
3095
3101
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3096
|
-
className:
|
|
3102
|
+
className: require_highlight.cn("mt-2 overflow-hidden rounded-md", require_highlight.OPT_BORDER),
|
|
3097
3103
|
role: "table",
|
|
3098
3104
|
"aria-label": "Field changes",
|
|
3099
3105
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -3101,18 +3107,18 @@ function DiffTable({ changes, labels }) {
|
|
|
3101
3107
|
role: "row",
|
|
3102
3108
|
children: [
|
|
3103
3109
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3104
|
-
className:
|
|
3110
|
+
className: require_highlight.cn("text-xs font-semibold tracking-wider uppercase", require_highlight.OPT_TEXT_TERTIARY),
|
|
3105
3111
|
role: "columnheader",
|
|
3106
3112
|
children: labels.fieldHeader
|
|
3107
3113
|
}),
|
|
3108
3114
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3109
|
-
className:
|
|
3115
|
+
className: require_highlight.cn("text-xs font-semibold tracking-wider uppercase", require_highlight.OPT_TEXT_TERTIARY),
|
|
3110
3116
|
role: "columnheader",
|
|
3111
3117
|
children: labels.beforeHeader
|
|
3112
3118
|
}),
|
|
3113
3119
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { "aria-hidden": "true" }),
|
|
3114
3120
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3115
|
-
className:
|
|
3121
|
+
className: require_highlight.cn("text-xs font-semibold tracking-wider uppercase", require_highlight.OPT_TEXT_TERTIARY),
|
|
3116
3122
|
role: "columnheader",
|
|
3117
3123
|
children: labels.afterHeader
|
|
3118
3124
|
})
|
|
@@ -3122,7 +3128,7 @@ function DiffTable({ changes, labels }) {
|
|
|
3122
3128
|
role: "row",
|
|
3123
3129
|
children: [
|
|
3124
3130
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3125
|
-
className:
|
|
3131
|
+
className: require_highlight.cn("text-xs font-medium", require_highlight.OPT_TEXT_PRIMARY),
|
|
3126
3132
|
role: "cell",
|
|
3127
3133
|
children: change.field
|
|
3128
3134
|
}),
|
|
@@ -3132,7 +3138,7 @@ function DiffTable({ changes, labels }) {
|
|
|
3132
3138
|
children: change.before || "—"
|
|
3133
3139
|
}),
|
|
3134
3140
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3135
|
-
className:
|
|
3141
|
+
className: require_highlight.cn("text-xs", require_highlight.OPT_TEXT_TERTIARY),
|
|
3136
3142
|
"aria-hidden": "true",
|
|
3137
3143
|
children: labels.diffArrow
|
|
3138
3144
|
}),
|
|
@@ -3147,7 +3153,7 @@ function DiffTable({ changes, labels }) {
|
|
|
3147
3153
|
}
|
|
3148
3154
|
/** Renders the audit timeline component. */
|
|
3149
3155
|
function AuditTimeline({ entries, labels: customLabels, className, onEntryClick }) {
|
|
3150
|
-
const labels =
|
|
3156
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$15), customLabels);
|
|
3151
3157
|
const [expandedIds, setExpandedIds] = react.useState(/* @__PURE__ */ new Set());
|
|
3152
3158
|
const toggleExpanded = react.useCallback((id) => {
|
|
3153
3159
|
setExpandedIds((prev) => {
|
|
@@ -3166,14 +3172,14 @@ function AuditTimeline({ entries, labels: customLabels, className, onEntryClick
|
|
|
3166
3172
|
event.preventDefault();
|
|
3167
3173
|
onEntryClick(entry);
|
|
3168
3174
|
}, [onEntryClick]);
|
|
3169
|
-
if (entries.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3175
|
+
if (entries.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
3170
3176
|
title: labels.empty,
|
|
3171
3177
|
className,
|
|
3172
3178
|
"data-opt-id": "XJQ8A",
|
|
3173
3179
|
"data-opt-slug": "audit-timeline.AuditTimeline"
|
|
3174
3180
|
});
|
|
3175
3181
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3176
|
-
className:
|
|
3182
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
3177
3183
|
"data-opt-id": "XJQ8A",
|
|
3178
3184
|
"data-opt-slug": "audit-timeline.AuditTimeline",
|
|
3179
3185
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -3192,50 +3198,50 @@ function AuditTimeline({ entries, labels: customLabels, className, onEntryClick
|
|
|
3192
3198
|
className: "relative pb-4 pl-8 last:pb-0",
|
|
3193
3199
|
role: "listitem",
|
|
3194
3200
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3195
|
-
className:
|
|
3201
|
+
className: require_highlight.cn("border-surface absolute top-1.5 left-1 h-[14px] w-[14px] rounded-full border-2", actionDotColor[entry.action]),
|
|
3196
3202
|
"aria-hidden": "true"
|
|
3197
3203
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3198
|
-
className:
|
|
3204
|
+
className: require_highlight.cn("rounded-lg p-3", require_highlight.OPT_BORDER, "bg-surface transition-colors", onEntryClick && "hover:bg-bg-subtle cursor-pointer"),
|
|
3199
3205
|
"aria-labelledby": entryId,
|
|
3200
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div",
|
|
3206
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", require_highlight._objectSpread2(require_highlight._objectSpread2({}, onEntryClick ? {
|
|
3201
3207
|
role: "button",
|
|
3202
3208
|
tabIndex: 0,
|
|
3203
3209
|
onClick: () => onEntryClick(entry),
|
|
3204
3210
|
onKeyDown: (event) => handleEntryKeyDown(event, entry)
|
|
3205
3211
|
} : {}), {}, {
|
|
3206
|
-
className:
|
|
3212
|
+
className: require_highlight.cn(onEntryClick && "rounded-md", onEntryClick && "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset"),
|
|
3207
3213
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3208
3214
|
className: "gap-element flex items-center",
|
|
3209
3215
|
children: [
|
|
3210
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3216
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Badge, {
|
|
3211
3217
|
variant: actionBadgeVariant[entry.action],
|
|
3212
3218
|
size: "sm",
|
|
3213
3219
|
dot: true,
|
|
3214
3220
|
children: actionLabel(entry.action)
|
|
3215
3221
|
}),
|
|
3216
3222
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3217
|
-
className:
|
|
3223
|
+
className: require_highlight.cn("text-xs", require_highlight.OPT_TEXT_TERTIARY),
|
|
3218
3224
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
3219
3225
|
dateTime: entry.timestamp,
|
|
3220
3226
|
children: entry.timestamp
|
|
3221
3227
|
})
|
|
3222
3228
|
}),
|
|
3223
3229
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3224
|
-
className:
|
|
3230
|
+
className: require_highlight.cn("ml-auto text-xs font-medium", require_highlight.OPT_TEXT_SECONDARY),
|
|
3225
3231
|
children: entry.actor
|
|
3226
3232
|
})
|
|
3227
3233
|
]
|
|
3228
3234
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
3229
3235
|
id: entryId,
|
|
3230
|
-
className:
|
|
3236
|
+
className: require_highlight.cn("mt-1.5 text-sm", require_highlight.OPT_TEXT_PRIMARY),
|
|
3231
3237
|
children: entry.summary
|
|
3232
3238
|
})]
|
|
3233
3239
|
})), hasChanges && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3234
3240
|
className: "mt-2",
|
|
3235
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
3241
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Button, {
|
|
3236
3242
|
variant: "ghost",
|
|
3237
3243
|
size: "sm",
|
|
3238
|
-
className:
|
|
3244
|
+
className: require_highlight.cn("outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset"),
|
|
3239
3245
|
onClick: (e) => {
|
|
3240
3246
|
e.stopPropagation();
|
|
3241
3247
|
toggleExpanded(entry.id);
|
|
@@ -3243,7 +3249,7 @@ function AuditTimeline({ entries, labels: customLabels, className, onEntryClick
|
|
|
3243
3249
|
"aria-expanded": isExpanded,
|
|
3244
3250
|
"aria-controls": contentId,
|
|
3245
3251
|
children: [isExpanded ? labels.collapse : labels.expand, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
3246
|
-
className:
|
|
3252
|
+
className: require_highlight.cn("ml-1 h-3.5 w-3.5 transition-transform", isExpanded && "rotate-180"),
|
|
3247
3253
|
viewBox: "0 0 16 16",
|
|
3248
3254
|
fill: "none",
|
|
3249
3255
|
stroke: "currentColor",
|
|
@@ -3391,7 +3397,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3391
3397
|
"New Users",
|
|
3392
3398
|
"Power Users"
|
|
3393
3399
|
], className, labels: customLabels }) {
|
|
3394
|
-
const labels =
|
|
3400
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$14), customLabels);
|
|
3395
3401
|
const builderId = react.useId().replace(/:/g, "");
|
|
3396
3402
|
const nextIdRef = react.useRef(1);
|
|
3397
3403
|
const createId = react.useCallback(() => {
|
|
@@ -3419,10 +3425,10 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3419
3425
|
onChange(groups.filter((g) => g.id !== groupId));
|
|
3420
3426
|
};
|
|
3421
3427
|
const updateGroup = (groupId, partial) => {
|
|
3422
|
-
onChange(groups.map((g) => g.id === groupId ?
|
|
3428
|
+
onChange(groups.map((g) => g.id === groupId ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, g), partial) : g));
|
|
3423
3429
|
};
|
|
3424
3430
|
const addCondition = (groupId) => {
|
|
3425
|
-
onChange(groups.map((g) => g.id === groupId ?
|
|
3431
|
+
onChange(groups.map((g) => g.id === groupId ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, g), {}, { conditions: [...g.conditions, {
|
|
3426
3432
|
id: createId(),
|
|
3427
3433
|
type: "event",
|
|
3428
3434
|
field: eventOptions[0],
|
|
@@ -3431,10 +3437,10 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3431
3437
|
}] }) : g));
|
|
3432
3438
|
};
|
|
3433
3439
|
const updateCondition = (groupId, condId, partial) => {
|
|
3434
|
-
onChange(groups.map((g) => g.id === groupId ?
|
|
3440
|
+
onChange(groups.map((g) => g.id === groupId ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, g), {}, { conditions: g.conditions.map((c) => c.id === condId ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, c), partial) : c) }) : g));
|
|
3435
3441
|
};
|
|
3436
3442
|
const removeCondition = (groupId, condId) => {
|
|
3437
|
-
onChange(groups.map((g) => g.id === groupId ?
|
|
3443
|
+
onChange(groups.map((g) => g.id === groupId ? require_highlight._objectSpread2(require_highlight._objectSpread2({}, g), {}, { conditions: g.conditions.filter((c) => c.id !== condId) }) : g));
|
|
3438
3444
|
};
|
|
3439
3445
|
const getFieldOptions = (type) => {
|
|
3440
3446
|
switch (type) {
|
|
@@ -3445,7 +3451,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3445
3451
|
}
|
|
3446
3452
|
};
|
|
3447
3453
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3448
|
-
className:
|
|
3454
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
3449
3455
|
"data-opt-id": "ZSC94",
|
|
3450
3456
|
"data-opt-slug": "segment-builder.SegmentBuilder",
|
|
3451
3457
|
children: [groups.map((group, gi) => {
|
|
@@ -3551,7 +3557,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3551
3557
|
value: f,
|
|
3552
3558
|
children: f
|
|
3553
3559
|
}, f))
|
|
3554
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3560
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
3555
3561
|
value: cond.field,
|
|
3556
3562
|
onChange: (e) => updateCondition(group.id, cond.id, { field: e.target.value }),
|
|
3557
3563
|
placeholder: "Expression",
|
|
@@ -3568,7 +3574,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3568
3574
|
children: op.label
|
|
3569
3575
|
}, op.value))
|
|
3570
3576
|
}),
|
|
3571
|
-
needsValue && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3577
|
+
needsValue && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
3572
3578
|
value: cond.value,
|
|
3573
3579
|
onChange: (e) => updateCondition(group.id, cond.id, { value: e.target.value }),
|
|
3574
3580
|
placeholder: "Value",
|
|
@@ -3585,7 +3591,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3585
3591
|
]
|
|
3586
3592
|
}, cond.id);
|
|
3587
3593
|
}),
|
|
3588
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3594
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3589
3595
|
variant: "ghost",
|
|
3590
3596
|
size: "sm",
|
|
3591
3597
|
onClick: () => addCondition(group.id),
|
|
@@ -3593,7 +3599,7 @@ function SegmentBuilder({ groups, onChange, eventOptions = [
|
|
|
3593
3599
|
})
|
|
3594
3600
|
]
|
|
3595
3601
|
})] }, group.id);
|
|
3596
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3602
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3597
3603
|
variant: "ghost",
|
|
3598
3604
|
size: "sm",
|
|
3599
3605
|
onClick: addGroup,
|
|
@@ -3635,14 +3641,14 @@ const severityConfig = {
|
|
|
3635
3641
|
/** Renders the insights panel component. */
|
|
3636
3642
|
function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle, detectionConfig, onDetectionConfigChange, onDismiss, onInsightClick, onStatClick, header, actions, labels: customLabels, className }) {
|
|
3637
3643
|
var _detectionConfig$days, _detectionConfig$zSco;
|
|
3638
|
-
const labels =
|
|
3644
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$13), customLabels);
|
|
3639
3645
|
const [showDismissed, setShowDismissed] = react.useState(false);
|
|
3640
3646
|
const visibleInsights = showDismissed ? insights : insights.filter((i) => !i.dismissed);
|
|
3641
3647
|
const hasStats = stats && stats.length > 0;
|
|
3642
3648
|
const hasDetection = detectionTypes && detectionTypes.length > 0 || detectionConfig != null;
|
|
3643
3649
|
const isEmpty = visibleInsights.length === 0;
|
|
3644
3650
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3645
|
-
className:
|
|
3651
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
3646
3652
|
"data-opt-id": "HCYZV",
|
|
3647
3653
|
"data-opt-slug": "insights-panel.InsightsPanel",
|
|
3648
3654
|
children: [
|
|
@@ -3657,7 +3663,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3657
3663
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
3658
3664
|
className: "text-text-primary text-lg font-semibold",
|
|
3659
3665
|
children: labels.title
|
|
3660
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3666
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3661
3667
|
variant: "ghost",
|
|
3662
3668
|
size: "sm",
|
|
3663
3669
|
onClick: () => setShowDismissed((v) => !v),
|
|
@@ -3665,10 +3671,10 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3665
3671
|
})]
|
|
3666
3672
|
}),
|
|
3667
3673
|
hasDetection && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3668
|
-
className:
|
|
3674
|
+
className: require_highlight.cn("rounded-lg border p-3", "rounded-lg bg-surface shadow-sm", "border border-border"),
|
|
3669
3675
|
children: [
|
|
3670
3676
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
3671
|
-
className:
|
|
3677
|
+
className: require_highlight.cn("mb-2 text-xs font-medium", "text-text-secondary"),
|
|
3672
3678
|
children: labels.detectionTitle
|
|
3673
3679
|
}),
|
|
3674
3680
|
detectionTypes && detectionTypes.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -3676,7 +3682,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3676
3682
|
children: detectionTypes.map((dt) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3677
3683
|
type: "button",
|
|
3678
3684
|
onClick: () => onDetectionTypeToggle === null || onDetectionTypeToggle === void 0 ? void 0 : onDetectionTypeToggle(dt.id, !dt.enabled),
|
|
3679
|
-
className:
|
|
3685
|
+
className: require_highlight.cn("focus-visible:ring-accent rounded-md px-2.5 py-1 text-xs font-medium transition-colors focus-visible:ring-2 focus-visible:outline-none", dt.enabled ? "bg-accent text-accent-fg" : "bg-bg-subtle text-text-secondary"),
|
|
3680
3686
|
children: dt.label
|
|
3681
3687
|
}, dt.id))
|
|
3682
3688
|
}),
|
|
@@ -3692,8 +3698,8 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3692
3698
|
min: 1,
|
|
3693
3699
|
max: 365,
|
|
3694
3700
|
value: (_detectionConfig$days = detectionConfig.days) !== null && _detectionConfig$days !== void 0 ? _detectionConfig$days : 30,
|
|
3695
|
-
onChange: (e) => onDetectionConfigChange(
|
|
3696
|
-
className:
|
|
3701
|
+
onChange: (e) => onDetectionConfigChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, detectionConfig), {}, { days: Number(e.target.value) || 30 })),
|
|
3702
|
+
className: require_highlight.cn("w-16 rounded-md border px-2 py-1 text-xs", "border border-border", "text-text-primary", "bg-transparent")
|
|
3697
3703
|
})]
|
|
3698
3704
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
3699
3705
|
className: "flex items-center gap-1.5 text-xs",
|
|
@@ -3706,8 +3712,8 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3706
3712
|
max: 10,
|
|
3707
3713
|
step: .1,
|
|
3708
3714
|
value: (_detectionConfig$zSco = detectionConfig.zScoreThreshold) !== null && _detectionConfig$zSco !== void 0 ? _detectionConfig$zSco : 2,
|
|
3709
|
-
onChange: (e) => onDetectionConfigChange(
|
|
3710
|
-
className:
|
|
3715
|
+
onChange: (e) => onDetectionConfigChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, detectionConfig), {}, { zScoreThreshold: Number(e.target.value) || 2 })),
|
|
3716
|
+
className: require_highlight.cn("w-16 rounded-md border px-2 py-1 text-xs", "border border-border", "text-text-primary", "bg-transparent")
|
|
3711
3717
|
})]
|
|
3712
3718
|
})]
|
|
3713
3719
|
})
|
|
@@ -3718,12 +3724,12 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3718
3724
|
children: stats.map((s) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
3719
3725
|
type: "button",
|
|
3720
3726
|
onClick: () => onStatClick === null || onStatClick === void 0 ? void 0 : onStatClick(s.id),
|
|
3721
|
-
className:
|
|
3727
|
+
className: require_highlight.cn("rounded-lg bg-surface shadow-sm", "border border-border", "hover:bg-bg-subtle flex flex-col items-center gap-1 rounded-lg p-3 text-center transition-colors", onStatClick && "cursor-pointer"),
|
|
3722
3728
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3723
|
-
className:
|
|
3729
|
+
className: require_highlight.cn("text-2xl font-bold", "text-text-primary"),
|
|
3724
3730
|
children: s.count
|
|
3725
3731
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3726
|
-
className:
|
|
3732
|
+
className: require_highlight.cn("text-xs", "text-text-secondary"),
|
|
3727
3733
|
children: s.label
|
|
3728
3734
|
})]
|
|
3729
3735
|
}, s.id))
|
|
@@ -3742,7 +3748,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3742
3748
|
className: "gap-element flex flex-col",
|
|
3743
3749
|
children: visibleInsights.map((insight) => {
|
|
3744
3750
|
const config = severityConfig[insight.severity];
|
|
3745
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(onInsightClick ? "button" : "div",
|
|
3751
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(onInsightClick ? "button" : "div", require_highlight._objectSpread2(require_highlight._objectSpread2({ className: require_highlight.cn("w-full rounded-lg border p-4 text-left", config.bg, insight.dismissed && "opacity-50", onInsightClick && "cursor-pointer") }, onInsightClick ? {
|
|
3746
3752
|
type: "button",
|
|
3747
3753
|
onClick: () => onInsightClick(insight)
|
|
3748
3754
|
} : {}), {}, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -3750,7 +3756,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3750
3756
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3751
3757
|
className: "gap-group flex items-start",
|
|
3752
3758
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3753
|
-
className:
|
|
3759
|
+
className: require_highlight.cn("mt-0.5 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold", config.color, "bg-surface/60"),
|
|
3754
3760
|
"aria-hidden": "true",
|
|
3755
3761
|
children: config.icon
|
|
3756
3762
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -3760,10 +3766,10 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3760
3766
|
className: "gap-element flex items-center",
|
|
3761
3767
|
children: [
|
|
3762
3768
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3763
|
-
className:
|
|
3769
|
+
className: require_highlight.cn("text-sm font-medium", require_highlight.OPT_TEXT_PRIMARY),
|
|
3764
3770
|
children: insight.title
|
|
3765
3771
|
}),
|
|
3766
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3772
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Badge, {
|
|
3767
3773
|
variant: insight.severity === "critical" ? "error" : insight.severity,
|
|
3768
3774
|
size: "sm",
|
|
3769
3775
|
children: insight.severity
|
|
@@ -3775,7 +3781,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3775
3781
|
]
|
|
3776
3782
|
}),
|
|
3777
3783
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
3778
|
-
className:
|
|
3784
|
+
className: require_highlight.cn("mt-0.5 text-sm", require_highlight.OPT_TEXT_SECONDARY),
|
|
3779
3785
|
children: insight.description
|
|
3780
3786
|
}),
|
|
3781
3787
|
insight.metrics && Object.keys(insight.metrics).length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -3794,7 +3800,7 @@ function InsightsPanel({ insights, stats, detectionTypes, onDetectionTypeToggle,
|
|
|
3794
3800
|
})
|
|
3795
3801
|
]
|
|
3796
3802
|
})]
|
|
3797
|
-
}), onDismiss && !insight.dismissed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3803
|
+
}), onDismiss && !insight.dismissed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3798
3804
|
variant: "ghost",
|
|
3799
3805
|
size: "sm",
|
|
3800
3806
|
onClick: (e) => {
|
|
@@ -3863,7 +3869,7 @@ function TimeRangeSelector({ value, onChange, presets = DEFAULT_PRESETS$1, label
|
|
|
3863
3869
|
})), [presets]);
|
|
3864
3870
|
if (presets.length === 0) {
|
|
3865
3871
|
var _labels$placeholder;
|
|
3866
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3872
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DateRangePicker, {
|
|
3867
3873
|
value: range,
|
|
3868
3874
|
onChange: setRange,
|
|
3869
3875
|
placeholder: (_labels$placeholder = labels === null || labels === void 0 ? void 0 : labels.placeholder) !== null && _labels$placeholder !== void 0 ? _labels$placeholder : "Select time range",
|
|
@@ -3874,18 +3880,18 @@ function TimeRangeSelector({ value, onChange, presets = DEFAULT_PRESETS$1, label
|
|
|
3874
3880
|
});
|
|
3875
3881
|
}
|
|
3876
3882
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3877
|
-
className:
|
|
3883
|
+
className: require_highlight.cn("border-border bg-surface inline-flex items-center rounded-lg border", className),
|
|
3878
3884
|
"data-opt-id": "K0D7C",
|
|
3879
3885
|
"data-opt-slug": "time-range-selector.TimeRangeSelector",
|
|
3880
3886
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3881
3887
|
className: "hidden items-center sm:flex",
|
|
3882
|
-
children: presets.map((p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3888
|
+
children: presets.map((p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3883
3889
|
variant: "ghost",
|
|
3884
3890
|
size: "md",
|
|
3885
3891
|
onClick: () => handlePreset(p.days),
|
|
3886
3892
|
children: p.label
|
|
3887
3893
|
}, p.label))
|
|
3888
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3894
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DateRangePicker, {
|
|
3889
3895
|
value: range,
|
|
3890
3896
|
onChange: setRange,
|
|
3891
3897
|
presets: datePickerPresets,
|
|
@@ -3925,7 +3931,7 @@ function download(content, fileName, mime) {
|
|
|
3925
3931
|
function ExportButton({ data, columns, fileName = "export", formats = ["csv", "json"], onExport, labels: customLabels, guided = false, className }) {
|
|
3926
3932
|
const [guidedOpen, setGuidedOpen] = react.useState(false);
|
|
3927
3933
|
const [guidedFormat, setGuidedFormat] = react.useState(formats[0]);
|
|
3928
|
-
const labels =
|
|
3934
|
+
const labels = require_highlight._objectSpread2({
|
|
3929
3935
|
export: "Export",
|
|
3930
3936
|
csv: "CSV",
|
|
3931
3937
|
json: "JSON",
|
|
@@ -3958,27 +3964,27 @@ function ExportButton({ data, columns, fileName = "export", formats = ["csv", "j
|
|
|
3958
3964
|
className: "inline-flex",
|
|
3959
3965
|
"data-opt-id": "MGP2B",
|
|
3960
3966
|
"data-opt-slug": "export-button.ExportButton",
|
|
3961
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
3967
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Button, {
|
|
3962
3968
|
variant: "secondary",
|
|
3963
3969
|
size: "sm",
|
|
3964
|
-
className:
|
|
3970
|
+
className: require_highlight.cn(className),
|
|
3965
3971
|
onClick: () => setGuidedOpen(true),
|
|
3966
3972
|
"aria-label": labels.export,
|
|
3967
3973
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3968
3974
|
"aria-hidden": "true",
|
|
3969
3975
|
children: "⬇"
|
|
3970
3976
|
}), labels.export]
|
|
3971
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3977
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogRoot, {
|
|
3972
3978
|
open: guidedOpen,
|
|
3973
3979
|
onOpenChange: setGuidedOpen,
|
|
3974
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
3980
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogPanel, {
|
|
3975
3981
|
size: "xs",
|
|
3976
3982
|
children: [
|
|
3977
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
3983
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogHeader, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogHeading, {
|
|
3978
3984
|
className: "text-sm",
|
|
3979
3985
|
children: labels.guidedTitle
|
|
3980
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3981
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3986
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogDescription, { children: labels.guidedDescription(data.length, formatLabels[guidedFormat]) })] }),
|
|
3987
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogBody, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3982
3988
|
className: "gap-element flex flex-col",
|
|
3983
3989
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
3984
3990
|
className: "text-text-secondary text-xs",
|
|
@@ -3988,16 +3994,16 @@ function ExportButton({ data, columns, fileName = "export", formats = ["csv", "j
|
|
|
3988
3994
|
children: formats.map((fmt) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3989
3995
|
type: "button",
|
|
3990
3996
|
onClick: () => setGuidedFormat(fmt),
|
|
3991
|
-
className:
|
|
3997
|
+
className: require_highlight.cn("focus-visible:ring-accent rounded-md border px-3 py-1.5 text-sm focus-visible:ring-2 focus-visible:outline-none", guidedFormat === fmt ? "border-accent bg-accent/10 text-accent" : "border-border text-text-secondary"),
|
|
3992
3998
|
children: formatLabels[fmt]
|
|
3993
3999
|
}, fmt))
|
|
3994
4000
|
})]
|
|
3995
4001
|
}) }),
|
|
3996
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
4002
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogFooter, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
3997
4003
|
variant: "ghost",
|
|
3998
4004
|
onClick: () => setGuidedOpen(false),
|
|
3999
4005
|
children: labels.cancel
|
|
4000
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4006
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
4001
4007
|
onClick: () => {
|
|
4002
4008
|
handleExport(guidedFormat);
|
|
4003
4009
|
setGuidedOpen(false);
|
|
@@ -4008,17 +4014,17 @@ function ExportButton({ data, columns, fileName = "export", formats = ["csv", "j
|
|
|
4008
4014
|
})
|
|
4009
4015
|
})]
|
|
4010
4016
|
});
|
|
4011
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
4017
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_key_pad_menu.DropdownMenu, {
|
|
4012
4018
|
"data-opt-id": "MGP2B",
|
|
4013
4019
|
"data-opt-slug": "export-button.ExportButton",
|
|
4014
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
4015
|
-
className:
|
|
4020
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_key_pad_menu.DropdownTrigger, {
|
|
4021
|
+
className: require_highlight.cn("inline-flex items-center justify-center rounded-lg font-medium transition-colors", "border-border bg-surface text-text-primary hover:bg-bg-subtle active:bg-bg-muted border", "h-8 gap-1.5 px-3 text-xs", className),
|
|
4016
4022
|
"aria-label": labels.export,
|
|
4017
4023
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4018
4024
|
"aria-hidden": "true",
|
|
4019
4025
|
children: "⬇"
|
|
4020
4026
|
}), labels.export]
|
|
4021
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4027
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownContent, { children: formats.map((fmt, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [i > 0 && fmt === "pdf" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownSeparator, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownItem, {
|
|
4022
4028
|
onClick: () => handleExport(fmt),
|
|
4023
4029
|
children: formatLabels[fmt]
|
|
4024
4030
|
})] }, fmt)) })]
|
|
@@ -4049,29 +4055,29 @@ const colsClass = {
|
|
|
4049
4055
|
};
|
|
4050
4056
|
/** Renders the summary row component. */
|
|
4051
4057
|
function SummaryRow({ stats, columns = 4, onStatClick, formatValue, durationFractionDigits = 1, percentageFractionDigits = 1, loading = false, labels: customLabels, className }) {
|
|
4052
|
-
const labels =
|
|
4058
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$12), customLabels);
|
|
4053
4059
|
if (loading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4054
|
-
className:
|
|
4060
|
+
className: require_highlight.cn("gap-group grid", colsClass[columns], className),
|
|
4055
4061
|
"data-opt-id": "DA0AX",
|
|
4056
4062
|
"data-opt-slug": "summary-row.SummaryRow",
|
|
4057
|
-
children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4063
|
+
children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.SkeletonCard, {}, i))
|
|
4058
4064
|
});
|
|
4059
4065
|
if (stats.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4060
|
-
className:
|
|
4066
|
+
className: require_highlight.cn("flex min-h-40 items-center justify-center", className),
|
|
4061
4067
|
"data-opt-id": "DA0AX",
|
|
4062
4068
|
"data-opt-slug": "summary-row.SummaryRow",
|
|
4063
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4069
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
4064
4070
|
title: labels.emptyTitle,
|
|
4065
4071
|
description: labels.emptyDescription
|
|
4066
4072
|
})
|
|
4067
4073
|
});
|
|
4068
4074
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4069
|
-
className:
|
|
4075
|
+
className: require_highlight.cn("gap-group grid", colsClass[columns], className),
|
|
4070
4076
|
"data-opt-id": "DA0AX",
|
|
4071
4077
|
"data-opt-slug": "summary-row.SummaryRow",
|
|
4072
4078
|
children: stats.map((s) => {
|
|
4073
4079
|
const displayValue = formatValue ? formatValue(s) : formatByStatType(s, durationFractionDigits, percentageFractionDigits);
|
|
4074
|
-
const card = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4080
|
+
const card = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.StatCard, {
|
|
4075
4081
|
id: s.id,
|
|
4076
4082
|
title: s.title,
|
|
4077
4083
|
value: displayValue,
|
|
@@ -4095,7 +4101,7 @@ SummaryRow.displayName = "SummaryRow";
|
|
|
4095
4101
|
function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, values, onValuesChange, maxItems = 5, labels: customLabels, className }) {
|
|
4096
4102
|
var _segments$find$label, _segments$find, _segments$find$label2, _segments$find2;
|
|
4097
4103
|
const selectorId = react.useId().replace(/:/g, "");
|
|
4098
|
-
const labels =
|
|
4104
|
+
const labels = require_highlight._objectSpread2({
|
|
4099
4105
|
groupLabel: "Comparison selector",
|
|
4100
4106
|
selectorA: "Base",
|
|
4101
4107
|
selectorB: "Compare",
|
|
@@ -4117,7 +4123,7 @@ function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, va
|
|
|
4117
4123
|
const selected = values !== null && values !== void 0 ? values : [];
|
|
4118
4124
|
const atMax = selected.length >= maxItems;
|
|
4119
4125
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4120
|
-
className:
|
|
4126
|
+
className: require_highlight.cn("gap-group flex flex-wrap items-center", className),
|
|
4121
4127
|
role: "group",
|
|
4122
4128
|
"aria-label": labels.groupLabel,
|
|
4123
4129
|
"data-opt-id": "2EH9H",
|
|
@@ -4132,7 +4138,7 @@ function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, va
|
|
|
4132
4138
|
},
|
|
4133
4139
|
disabled: !isSelected && atMax,
|
|
4134
4140
|
"aria-pressed": isSelected,
|
|
4135
|
-
className:
|
|
4141
|
+
className: require_highlight.cn("rounded-full px-3 py-1.5 text-sm font-medium transition-colors", isSelected ? "bg-accent-subtle text-text-primary" : "bg-bg-subtle text-text-tertiary hover:text-text-secondary", !isSelected && atMax && "cursor-not-allowed opacity-50"),
|
|
4136
4142
|
children: s.label
|
|
4137
4143
|
}, s.value);
|
|
4138
4144
|
})
|
|
@@ -4145,7 +4151,7 @@ function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, va
|
|
|
4145
4151
|
const selectorAText = (_segments$find$label = (_segments$find = segments.find((s) => s.value === valueA)) === null || _segments$find === void 0 ? void 0 : _segments$find.label) !== null && _segments$find$label !== void 0 ? _segments$find$label : "Select…";
|
|
4146
4152
|
const selectorBText = (_segments$find$label2 = (_segments$find2 = segments.find((s) => s.value === valueB)) === null || _segments$find2 === void 0 ? void 0 : _segments$find2.label) !== null && _segments$find$label2 !== void 0 ? _segments$find$label2 : "Select…";
|
|
4147
4153
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4148
|
-
className:
|
|
4154
|
+
className: require_highlight.cn("gap-group flex items-end", className),
|
|
4149
4155
|
role: "group",
|
|
4150
4156
|
"aria-label": labels.groupLabel,
|
|
4151
4157
|
"data-opt-id": "2EH9H",
|
|
@@ -4157,23 +4163,23 @@ function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, va
|
|
|
4157
4163
|
id: selectorALabelId,
|
|
4158
4164
|
className: "text-text-tertiary text-xs font-medium",
|
|
4159
4165
|
children: labels.selectorA
|
|
4160
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
4166
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.SelectRoot, {
|
|
4161
4167
|
value: valueA,
|
|
4162
4168
|
onValueChange: (v) => onChangeA === null || onChangeA === void 0 ? void 0 : onChangeA(v),
|
|
4163
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4169
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectTrigger, {
|
|
4164
4170
|
"aria-labelledby": `${selectorALabelId} ${selectorAValueId}`,
|
|
4165
4171
|
className: "min-w-[140px]",
|
|
4166
4172
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4167
4173
|
id: selectorAValueId,
|
|
4168
4174
|
children: selectorAText
|
|
4169
4175
|
})
|
|
4170
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4176
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectPopover, { children: segments.map((s) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectItem, {
|
|
4171
4177
|
value: s.value,
|
|
4172
4178
|
children: s.label
|
|
4173
4179
|
}, s.value)) })]
|
|
4174
4180
|
})]
|
|
4175
4181
|
}),
|
|
4176
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4182
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
4177
4183
|
variant: "ghost",
|
|
4178
4184
|
size: "sm",
|
|
4179
4185
|
onClick: handleSwap,
|
|
@@ -4187,17 +4193,17 @@ function ComparisonSelector({ segments, valueA, valueB, onChangeA, onChangeB, va
|
|
|
4187
4193
|
id: selectorBLabelId,
|
|
4188
4194
|
className: "text-text-tertiary text-xs font-medium",
|
|
4189
4195
|
children: labels.selectorB
|
|
4190
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
4196
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.SelectRoot, {
|
|
4191
4197
|
value: valueB,
|
|
4192
4198
|
onValueChange: (v) => onChangeB === null || onChangeB === void 0 ? void 0 : onChangeB(v),
|
|
4193
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4199
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectTrigger, {
|
|
4194
4200
|
"aria-labelledby": `${selectorBLabelId} ${selectorBValueId}`,
|
|
4195
4201
|
className: "min-w-[140px]",
|
|
4196
4202
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4197
4203
|
id: selectorBValueId,
|
|
4198
4204
|
children: selectorBText
|
|
4199
4205
|
})
|
|
4200
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
4206
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectPopover, { children: segments.map((s) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectItem, {
|
|
4201
4207
|
value: s.value,
|
|
4202
4208
|
children: s.label
|
|
4203
4209
|
}, s.value)) })]
|
|
@@ -4355,7 +4361,7 @@ function presetTheme(preset, overrides) {
|
|
|
4355
4361
|
}
|
|
4356
4362
|
/** Construct a `GeneratedThemeSpec` from an inline `PaletteConfig`. */
|
|
4357
4363
|
function generatedTheme(palette, options) {
|
|
4358
|
-
return
|
|
4364
|
+
return require_highlight._objectSpread2({
|
|
4359
4365
|
kind: "generated",
|
|
4360
4366
|
palette
|
|
4361
4367
|
}, options);
|
|
@@ -4415,7 +4421,7 @@ function generatePaletteCached(config) {
|
|
|
4415
4421
|
/** Apply sparse override maps onto a base token record. */
|
|
4416
4422
|
function applyOverrides(base, overrides, mode) {
|
|
4417
4423
|
if (!overrides) return base;
|
|
4418
|
-
const merged =
|
|
4424
|
+
const merged = require_highlight._objectSpread2({}, base);
|
|
4419
4425
|
if (overrides.shared) Object.assign(merged, overrides.shared);
|
|
4420
4426
|
const modeOverrides = mode === "light" ? overrides.light : overrides.dark;
|
|
4421
4427
|
if (modeOverrides) Object.assign(merged, modeOverrides);
|
|
@@ -5139,7 +5145,7 @@ function resolveLabels(user) {
|
|
|
5139
5145
|
return {
|
|
5140
5146
|
heading: (_user$heading = user === null || user === void 0 ? void 0 : user.heading) !== null && _user$heading !== void 0 ? _user$heading : DEFAULT_LABELS.heading,
|
|
5141
5147
|
activeSuffix: (_user$activeSuffix = user === null || user === void 0 ? void 0 : user.activeSuffix) !== null && _user$activeSuffix !== void 0 ? _user$activeSuffix : DEFAULT_LABELS.activeSuffix,
|
|
5142
|
-
modeLabels:
|
|
5148
|
+
modeLabels: require_highlight._objectSpread2(require_highlight._objectSpread2({}, DEFAULT_MODE_LABELS), user === null || user === void 0 ? void 0 : user.modeLabels)
|
|
5143
5149
|
};
|
|
5144
5150
|
}
|
|
5145
5151
|
/** Renders the theme switcher component. */
|
|
@@ -5158,7 +5164,7 @@ function ThemeSwitcher({ className, labels: userLabels, variant = "default", cus
|
|
|
5158
5164
|
const showCustomBadge = controlledPreset === void 0 && ((themeContext === null || themeContext === void 0 ? void 0 : themeContext.isGenerated) === true || (themeContext === null || themeContext === void 0 ? void 0 : themeContext.isPromoted) === true);
|
|
5159
5165
|
if (options.length === 0) return null;
|
|
5160
5166
|
if (variant === "compact") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5161
|
-
className:
|
|
5167
|
+
className: require_highlight.cn("flex items-center gap-1.5", className),
|
|
5162
5168
|
"data-opt-id": "8JX0N",
|
|
5163
5169
|
"data-opt-slug": "theme-switcher.ThemeSwitcher",
|
|
5164
5170
|
children: [
|
|
@@ -5169,7 +5175,7 @@ function ThemeSwitcher({ className, labels: userLabels, variant = "default", cus
|
|
|
5169
5175
|
"aria-label": isActive ? `${theme.label} ${labels.activeSuffix}` : theme.label,
|
|
5170
5176
|
"aria-pressed": isActive,
|
|
5171
5177
|
onClick: () => setPreset(theme.value),
|
|
5172
|
-
className:
|
|
5178
|
+
className: require_highlight.cn("flex h-7 w-7 items-center justify-center rounded-full transition-all", isActive ? "ring-accent ring-2 ring-offset-1" : "hover:ring-border-hover hover:ring-1"),
|
|
5173
5179
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5174
5180
|
className: "h-4 w-4 rounded-full",
|
|
5175
5181
|
style: { backgroundColor: theme.swatches[0] }
|
|
@@ -5186,13 +5192,13 @@ function ThemeSwitcher({ className, labels: userLabels, variant = "default", cus
|
|
|
5186
5192
|
"aria-pressed": mode === m,
|
|
5187
5193
|
onClick: () => setMode(m),
|
|
5188
5194
|
disabled: forcedMode,
|
|
5189
|
-
className:
|
|
5195
|
+
className: require_highlight.cn("flex h-7 w-7 items-center justify-center rounded-full transition-all", forcedMode && "pointer-events-none opacity-40", mode === m ? "bg-accent/15 text-accent" : "text-text-tertiary hover:text-text-primary hover:bg-bg-subtle"),
|
|
5190
5196
|
children: MODE_ICONS[m]
|
|
5191
5197
|
}, m))
|
|
5192
5198
|
]
|
|
5193
5199
|
});
|
|
5194
5200
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5195
|
-
className:
|
|
5201
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
5196
5202
|
"data-opt-id": "8JX0N",
|
|
5197
5203
|
"data-opt-slug": "theme-switcher.ThemeSwitcher",
|
|
5198
5204
|
children: [
|
|
@@ -5207,7 +5213,7 @@ function ThemeSwitcher({ className, labels: userLabels, variant = "default", cus
|
|
|
5207
5213
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
5208
5214
|
onClick: () => setPreset(theme.value),
|
|
5209
5215
|
"aria-pressed": isActive,
|
|
5210
|
-
className:
|
|
5216
|
+
className: require_highlight.cn("gap-element flex flex-col rounded-lg border p-3 text-left transition-all", isActive ? "border-accent bg-accent-subtle ring-accent ring-2" : "border-border bg-surface hover:border-border-hover hover:bg-bg-subtle"),
|
|
5211
5217
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5212
5218
|
className: "flex gap-1.5",
|
|
5213
5219
|
children: theme.swatches.map((color, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -5225,12 +5231,12 @@ function ThemeSwitcher({ className, labels: userLabels, variant = "default", cus
|
|
|
5225
5231
|
})
|
|
5226
5232
|
}),
|
|
5227
5233
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5228
|
-
className:
|
|
5234
|
+
className: require_highlight.cn("bg-bg-subtle flex gap-1 rounded-lg p-1", forcedMode && "pointer-events-none opacity-50"),
|
|
5229
5235
|
children: MODE_VALUES.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
5230
5236
|
onClick: () => setMode(m),
|
|
5231
5237
|
disabled: forcedMode,
|
|
5232
5238
|
"aria-pressed": mode === m,
|
|
5233
|
-
className:
|
|
5239
|
+
className: require_highlight.cn("flex-1 rounded-md px-3 py-1.5 text-xs font-medium transition-all", mode === m ? "bg-surface text-text-primary shadow-sm" : "text-text-tertiary hover:text-text-secondary"),
|
|
5234
5240
|
children: labels.modeLabels[m]
|
|
5235
5241
|
}, m))
|
|
5236
5242
|
}),
|
|
@@ -5254,7 +5260,7 @@ function renderPrompt(template, values) {
|
|
|
5254
5260
|
}
|
|
5255
5261
|
/** Renders the prompt template component. */
|
|
5256
5262
|
function PromptTemplate({ title, description, template, variables = [], className, labels: customLabels }) {
|
|
5257
|
-
const labels =
|
|
5263
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$11), customLabels);
|
|
5258
5264
|
const [values, setValues] = react.useState(() => {
|
|
5259
5265
|
const initial = {};
|
|
5260
5266
|
for (const v of variables) if (v.defaultValue) initial[v.name] = v.defaultValue;
|
|
@@ -5272,7 +5278,7 @@ function PromptTemplate({ title, description, template, variables = [], classNam
|
|
|
5272
5278
|
} catch (_unused) {}
|
|
5273
5279
|
}, [rendered]);
|
|
5274
5280
|
const handleChange = react.useCallback((name, value) => {
|
|
5275
|
-
setValues((prev) =>
|
|
5281
|
+
setValues((prev) => require_highlight._objectSpread2(require_highlight._objectSpread2({}, prev), {}, { [name]: value }));
|
|
5276
5282
|
}, []);
|
|
5277
5283
|
const renderHighlighted = react.useMemo(() => {
|
|
5278
5284
|
const parts = [];
|
|
@@ -5285,7 +5291,7 @@ function PromptTemplate({ title, description, template, variables = [], classNam
|
|
|
5285
5291
|
const val = values[key];
|
|
5286
5292
|
const hasValue = val !== void 0 && val !== "";
|
|
5287
5293
|
parts.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("mark", {
|
|
5288
|
-
className:
|
|
5294
|
+
className: require_highlight.cn("rounded px-0.5", hasValue ? "bg-accent/20 text-accent-fg" : "bg-warning/20 text-warning-fg"),
|
|
5289
5295
|
children: hasValue ? val : match[0]
|
|
5290
5296
|
}, `${key}-${match.index}`));
|
|
5291
5297
|
lastIndex = match.index + match[0].length;
|
|
@@ -5294,7 +5300,7 @@ function PromptTemplate({ title, description, template, variables = [], classNam
|
|
|
5294
5300
|
return parts;
|
|
5295
5301
|
}, [template, values]);
|
|
5296
5302
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5297
|
-
className:
|
|
5303
|
+
className: require_highlight.cn("border-border overflow-hidden rounded-lg border", className),
|
|
5298
5304
|
"data-opt-id": "5E56D",
|
|
5299
5305
|
"data-opt-slug": "prompt-template.PromptTemplate",
|
|
5300
5306
|
children: [
|
|
@@ -5356,7 +5362,7 @@ function useSidebar() {
|
|
|
5356
5362
|
}
|
|
5357
5363
|
function SidebarHeader({ children, className }) {
|
|
5358
5364
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5359
|
-
className:
|
|
5365
|
+
className: require_highlight.cn("shrink-0 p-4", className),
|
|
5360
5366
|
children
|
|
5361
5367
|
});
|
|
5362
5368
|
}
|
|
@@ -5382,7 +5388,7 @@ function SidebarContent({ children, className, onKeyDown }) {
|
|
|
5382
5388
|
nextItem === null || nextItem === void 0 || (_nextItem$scrollIntoV = nextItem.scrollIntoView) === null || _nextItem$scrollIntoV === void 0 || _nextItem$scrollIntoV.call(nextItem, { block: "nearest" });
|
|
5383
5389
|
};
|
|
5384
5390
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
|
|
5385
|
-
className:
|
|
5391
|
+
className: require_highlight.cn("flex-1 overflow-x-hidden overflow-y-auto px-2 py-1", className),
|
|
5386
5392
|
onKeyDown: handleKeyDown,
|
|
5387
5393
|
children
|
|
5388
5394
|
});
|
|
@@ -5390,7 +5396,7 @@ function SidebarContent({ children, className, onKeyDown }) {
|
|
|
5390
5396
|
SidebarContent.displayName = "Sidebar.Content";
|
|
5391
5397
|
function SidebarFooter({ children, className }) {
|
|
5392
5398
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5393
|
-
className:
|
|
5399
|
+
className: require_highlight.cn("shrink-0 p-4", className),
|
|
5394
5400
|
children
|
|
5395
5401
|
});
|
|
5396
5402
|
}
|
|
@@ -5403,7 +5409,7 @@ function SidebarTrigger({ className, children }) {
|
|
|
5403
5409
|
onClick: toggle,
|
|
5404
5410
|
"aria-expanded": !collapsed,
|
|
5405
5411
|
"aria-label": collapsed ? "사이드바 열기" : "사이드바 닫기",
|
|
5406
|
-
className:
|
|
5412
|
+
className: require_highlight.cn("text-text-secondary hover:bg-bg-subtle hover:text-text-primary inline-flex h-8 w-8 items-center justify-center rounded-md transition-colors", className),
|
|
5407
5413
|
children: children !== null && children !== void 0 ? children : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
5408
5414
|
width: "16",
|
|
5409
5415
|
height: "16",
|
|
@@ -5437,7 +5443,7 @@ function SidebarGroup({ children, label, className }) {
|
|
|
5437
5443
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5438
5444
|
role: "group",
|
|
5439
5445
|
"aria-labelledby": label ? labelId : void 0,
|
|
5440
|
-
className:
|
|
5446
|
+
className: require_highlight.cn("flex flex-col gap-0.5", className),
|
|
5441
5447
|
children: [label && !collapsed && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5442
5448
|
id: labelId,
|
|
5443
5449
|
className: "text-text-tertiary mt-4 mb-1 px-2 text-[11px] font-semibold tracking-wider uppercase",
|
|
@@ -5450,7 +5456,7 @@ function SidebarItem({ children, icon, active = false, onClick, href, tooltip, b
|
|
|
5450
5456
|
const { collapsed, collapsible } = useSidebar();
|
|
5451
5457
|
const isCollapsed = collapsible && collapsed;
|
|
5452
5458
|
const tooltipText = tooltip !== null && tooltip !== void 0 ? tooltip : typeof children === "string" ? children : void 0;
|
|
5453
|
-
const sharedClassName =
|
|
5459
|
+
const sharedClassName = require_highlight.cn("relative flex w-full items-center gap-2 rounded-md text-left text-sm transition-colors outline-none", isCollapsed ? "justify-center px-0 py-2" : "px-2 py-1.5", active ? "bg-bg-subtle text-text-primary font-medium" : "text-text-secondary hover:bg-bg-subtle hover:text-text-primary", "focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-1", className);
|
|
5454
5460
|
const inner = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
5455
5461
|
active && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "bg-accent absolute top-1/2 left-0 h-4 w-0.5 -translate-y-1/2 rounded-full" }),
|
|
5456
5462
|
icon && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
@@ -5483,10 +5489,10 @@ function SidebarItem({ children, icon, active = false, onClick, href, tooltip, b
|
|
|
5483
5489
|
className: sharedClassName,
|
|
5484
5490
|
children: inner
|
|
5485
5491
|
});
|
|
5486
|
-
if (isCollapsed && tooltipText) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5492
|
+
if (isCollapsed && tooltipText) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.TooltipProvider, {
|
|
5487
5493
|
placement: "right",
|
|
5488
5494
|
portal: true,
|
|
5489
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5495
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.TooltipAnchor, { render: element }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Tooltip, {
|
|
5490
5496
|
className: "bg-foreground text-background z-[120] rounded-md px-2 py-1 text-xs shadow-lg",
|
|
5491
5497
|
children: tooltipText
|
|
5492
5498
|
})]
|
|
@@ -5495,7 +5501,7 @@ function SidebarItem({ children, icon, active = false, onClick, href, tooltip, b
|
|
|
5495
5501
|
}
|
|
5496
5502
|
SidebarItem.displayName = "Sidebar.Item";
|
|
5497
5503
|
function SidebarSeparator({ className }) {
|
|
5498
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", { className:
|
|
5504
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", { className: require_highlight.cn("my-2 border-0", className) });
|
|
5499
5505
|
}
|
|
5500
5506
|
SidebarSeparator.displayName = "Sidebar.Separator";
|
|
5501
5507
|
function SidebarRoot({ children, collapsible = false, defaultCollapsed = false, collapsed: controlledCollapsed, onCollapsedChange, width = 280, collapsedWidth = 56, className, side = "left", label }) {
|
|
@@ -5542,7 +5548,7 @@ function SidebarRoot({ children, collapsible = false, defaultCollapsed = false,
|
|
|
5542
5548
|
"aria-label": label !== null && label !== void 0 ? label : "사이드바",
|
|
5543
5549
|
"data-collapsed": collapsed || void 0,
|
|
5544
5550
|
"data-side": side,
|
|
5545
|
-
className:
|
|
5551
|
+
className: require_highlight.cn("bg-surface sticky top-0 flex h-screen shrink-0 flex-col transition-[width] duration-200", className),
|
|
5546
5552
|
style: { width: currentWidth },
|
|
5547
5553
|
"data-opt-id": "FG8ZG",
|
|
5548
5554
|
"data-opt-slug": "sidebar.Sidebar",
|
|
@@ -5565,28 +5571,28 @@ const Sidebar = Object.assign(SidebarRoot, {
|
|
|
5565
5571
|
const AppShellContext = react.createContext({ hasSidebar: false });
|
|
5566
5572
|
function AppShellHeader({ children, className }) {
|
|
5567
5573
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
|
|
5568
|
-
className:
|
|
5574
|
+
className: require_highlight.cn("border-border bg-surface/80 shrink-0 border-b px-4 py-3 backdrop-blur", className),
|
|
5569
5575
|
children
|
|
5570
5576
|
});
|
|
5571
5577
|
}
|
|
5572
5578
|
AppShellHeader.displayName = "AppShell.Header";
|
|
5573
5579
|
function AppShellSidebar({ children, className }) {
|
|
5574
5580
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5575
|
-
className:
|
|
5581
|
+
className: require_highlight.cn("shrink-0", className),
|
|
5576
5582
|
children
|
|
5577
5583
|
});
|
|
5578
5584
|
}
|
|
5579
5585
|
AppShellSidebar.displayName = "AppShell.Sidebar";
|
|
5580
5586
|
function AppShellContent({ children, className }) {
|
|
5581
5587
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("main", {
|
|
5582
|
-
className:
|
|
5588
|
+
className: require_highlight.cn("min-w-0 flex-1 overflow-auto", className),
|
|
5583
5589
|
children
|
|
5584
5590
|
});
|
|
5585
5591
|
}
|
|
5586
5592
|
AppShellContent.displayName = "AppShell.Content";
|
|
5587
5593
|
function AppShellFooter({ children, className }) {
|
|
5588
5594
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("footer", {
|
|
5589
|
-
className:
|
|
5595
|
+
className: require_highlight.cn("border-border border-t px-4 py-3", className),
|
|
5590
5596
|
children
|
|
5591
5597
|
});
|
|
5592
5598
|
}
|
|
@@ -5614,7 +5620,7 @@ function AppShellRoot({ children, className }) {
|
|
|
5614
5620
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AppShellContext.Provider, {
|
|
5615
5621
|
value: ctx,
|
|
5616
5622
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5617
|
-
className:
|
|
5623
|
+
className: require_highlight.cn("flex min-h-screen flex-col", className),
|
|
5618
5624
|
"data-opt-id": "EQGGQ",
|
|
5619
5625
|
"data-opt-slug": "app-shell.AppShell",
|
|
5620
5626
|
children: [
|
|
@@ -5639,21 +5645,21 @@ const AppShell = Object.assign(AppShellRoot, {
|
|
|
5639
5645
|
//#region src/shells/confirm-dialog.tsx
|
|
5640
5646
|
/** Renders the confirm dialog component. */
|
|
5641
5647
|
function ConfirmDialog({ open, onConfirm, onCancel, title, description, confirmLabel = "Confirm", cancelLabel = "Cancel", variant = "default", children }) {
|
|
5642
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5648
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogRoot, {
|
|
5643
5649
|
open,
|
|
5644
5650
|
onOpenChange: (v) => !v && onCancel(),
|
|
5645
5651
|
"data-opt-id": "0VNJQ",
|
|
5646
5652
|
"data-opt-slug": "confirm-dialog.ConfirmDialog",
|
|
5647
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5653
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogPanel, {
|
|
5648
5654
|
size: "sm",
|
|
5649
5655
|
children: [
|
|
5650
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5651
|
-
children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5652
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5656
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogHeader, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogHeading, { children: title }), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogDescription, { children: description })] }),
|
|
5657
|
+
children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DialogBody, { children }),
|
|
5658
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DialogFooter, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
5653
5659
|
variant: "secondary",
|
|
5654
5660
|
onClick: onCancel,
|
|
5655
5661
|
children: cancelLabel
|
|
5656
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5662
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
5657
5663
|
variant: variant === "danger" ? "danger" : "primary",
|
|
5658
5664
|
onClick: onConfirm,
|
|
5659
5665
|
children: confirmLabel
|
|
@@ -5667,7 +5673,7 @@ ConfirmDialog.displayName = "ConfirmDialog";
|
|
|
5667
5673
|
//#region src/shells/async-combobox.tsx
|
|
5668
5674
|
/** Renders the async combobox component. */
|
|
5669
5675
|
function AsyncCombobox({ onSearch, debounceMs = 300, loadingText, minChars = 1, placeholder, onSelect, labels: customLabels, className }) {
|
|
5670
|
-
const labels =
|
|
5676
|
+
const labels = require_highlight._objectSpread2({
|
|
5671
5677
|
input: placeholder !== null && placeholder !== void 0 ? placeholder : "Search",
|
|
5672
5678
|
loading: loadingText !== null && loadingText !== void 0 ? loadingText : "Loading…",
|
|
5673
5679
|
noResults: "No results",
|
|
@@ -5716,26 +5722,26 @@ function AsyncCombobox({ onSearch, debounceMs = 300, loadingText, minChars = 1,
|
|
|
5716
5722
|
debounceMs,
|
|
5717
5723
|
onSearch
|
|
5718
5724
|
]);
|
|
5719
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5725
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.ComboboxRoot, {
|
|
5720
5726
|
onValueChange: handleValueChange,
|
|
5721
5727
|
"data-opt-id": "KAKTV",
|
|
5722
5728
|
"data-opt-slug": "async-combobox.AsyncCombobox",
|
|
5723
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5724
|
-
className:
|
|
5729
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.ComboboxInput, {
|
|
5730
|
+
className: require_highlight.cn(className),
|
|
5725
5731
|
"aria-label": labels.input,
|
|
5726
5732
|
"aria-busy": loading || void 0,
|
|
5727
5733
|
placeholder: labels.placeholder,
|
|
5728
5734
|
onInput: handleInput
|
|
5729
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5735
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.ComboboxPopover, { children: loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5730
5736
|
className: "text-text-secondary gap-element flex items-center px-3 py-2 text-sm",
|
|
5731
5737
|
role: "status",
|
|
5732
5738
|
"aria-live": "polite",
|
|
5733
5739
|
"aria-busy": "true",
|
|
5734
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5740
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Spinner, {
|
|
5735
5741
|
size: "sm",
|
|
5736
5742
|
"aria-hidden": "true"
|
|
5737
5743
|
}), labels.loading]
|
|
5738
|
-
}) : results.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5744
|
+
}) : results.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.ComboboxEmpty, { children: labels.noResults }) : results.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.ComboboxItem, {
|
|
5739
5745
|
value: item,
|
|
5740
5746
|
children: item
|
|
5741
5747
|
}, item)) })]
|
|
@@ -5750,30 +5756,30 @@ const defaultLabels$10 = {
|
|
|
5750
5756
|
/** Renders the vertical tabs component. */
|
|
5751
5757
|
function VerticalTabs({ tabs, defaultTabId, labels: customLabels, className }) {
|
|
5752
5758
|
var _tabs$;
|
|
5753
|
-
const labels =
|
|
5759
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$10), customLabels);
|
|
5754
5760
|
if (tabs.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5755
|
-
className:
|
|
5761
|
+
className: require_highlight.cn("text-text-secondary text-sm", className),
|
|
5756
5762
|
"data-opt-id": "J81G4",
|
|
5757
5763
|
"data-opt-slug": "vertical-tabs.VerticalTabs",
|
|
5758
5764
|
children: labels.emptyMessage
|
|
5759
5765
|
});
|
|
5760
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5766
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.TabsRoot, {
|
|
5761
5767
|
defaultSelectedId: defaultTabId !== null && defaultTabId !== void 0 ? defaultTabId : (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.id,
|
|
5762
5768
|
"data-opt-id": "J81G4",
|
|
5763
5769
|
"data-opt-slug": "vertical-tabs.VerticalTabs",
|
|
5764
5770
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5765
|
-
className:
|
|
5766
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5771
|
+
className: require_highlight.cn("gap-group flex", className),
|
|
5772
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.TabList, {
|
|
5767
5773
|
"aria-label": labels.ariaLabel,
|
|
5768
5774
|
className: "gap-element border-border flex flex-col border-r pr-4",
|
|
5769
|
-
children: tabs.map((tab) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5775
|
+
children: tabs.map((tab) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Tab, {
|
|
5770
5776
|
id: tab.id,
|
|
5771
5777
|
className: "justify-start text-left",
|
|
5772
5778
|
children: tab.label
|
|
5773
5779
|
}, tab.id))
|
|
5774
5780
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5775
5781
|
className: "flex-1",
|
|
5776
|
-
children: tabs.map((tab) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5782
|
+
children: tabs.map((tab) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.TabPanel, {
|
|
5777
5783
|
tabId: tab.id,
|
|
5778
5784
|
children: tab.content
|
|
5779
5785
|
}, tab.id))
|
|
@@ -5789,26 +5795,26 @@ const defaultLabels$9 = {
|
|
|
5789
5795
|
};
|
|
5790
5796
|
/** Renders the column toggler component. */
|
|
5791
5797
|
function ColumnToggler({ columns, visibleColumns, onChange, className, labels: customLabels }) {
|
|
5792
|
-
const labels =
|
|
5798
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$9), customLabels);
|
|
5793
5799
|
const visibleCount = visibleColumns.length;
|
|
5794
5800
|
const hasColumns = columns.length > 0;
|
|
5795
5801
|
const toggle = (id) => {
|
|
5796
5802
|
if (visibleColumns.includes(id)) onChange(visibleColumns.filter((c) => c !== id));
|
|
5797
5803
|
else onChange([...visibleColumns, id]);
|
|
5798
5804
|
};
|
|
5799
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5805
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverRoot, {
|
|
5800
5806
|
"data-opt-id": "PPN5M",
|
|
5801
5807
|
"data-opt-slug": "column-toggler.ColumnToggler",
|
|
5802
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5803
|
-
className:
|
|
5808
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.PopoverTrigger, {
|
|
5809
|
+
className: require_highlight.cn("border-border bg-surface text-text-primary hover:bg-bg-subtle inline-flex h-9 items-center gap-1.5 rounded-lg border px-3 text-sm font-medium", className),
|
|
5804
5810
|
children: labels.triggerLabel(visibleCount)
|
|
5805
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5811
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.PopoverContent, {
|
|
5806
5812
|
className: "w-56",
|
|
5807
5813
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5808
5814
|
className: "gap-element flex flex-col p-1",
|
|
5809
5815
|
children: hasColumns ? columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
5810
5816
|
className: "text-text-primary hover:bg-bg-subtle gap-element flex cursor-pointer items-center rounded-md px-2 py-1.5 text-sm",
|
|
5811
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5817
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Checkbox, {
|
|
5812
5818
|
checked: visibleColumns.includes(col.id),
|
|
5813
5819
|
onChange: () => toggle(col.id)
|
|
5814
5820
|
}), col.header]
|
|
@@ -5825,7 +5831,7 @@ ColumnToggler.displayName = "ColumnToggler";
|
|
|
5825
5831
|
//#region src/shells/bulk-actions.tsx
|
|
5826
5832
|
/** Renders the bulk actions component. */
|
|
5827
5833
|
function BulkActions({ selectedCount, actions, onAction, onClear, labels: customLabels, className }) {
|
|
5828
|
-
const labels =
|
|
5834
|
+
const labels = require_highlight._objectSpread2({
|
|
5829
5835
|
selected: "selected",
|
|
5830
5836
|
actions: "Actions",
|
|
5831
5837
|
clear: "Clear",
|
|
@@ -5834,11 +5840,11 @@ function BulkActions({ selectedCount, actions, onAction, onClear, labels: custom
|
|
|
5834
5840
|
if (selectedCount === 0) return null;
|
|
5835
5841
|
const hasActions = actions.length > 0;
|
|
5836
5842
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5837
|
-
className:
|
|
5843
|
+
className: require_highlight.cn("gap-group border-border bg-surface flex items-center rounded-lg border px-4 py-2", className),
|
|
5838
5844
|
"data-opt-id": "Q3J33",
|
|
5839
5845
|
"data-opt-slug": "bulk-actions.BulkActions",
|
|
5840
5846
|
children: [
|
|
5841
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5847
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Badge, {
|
|
5842
5848
|
variant: "info",
|
|
5843
5849
|
children: [
|
|
5844
5850
|
selectedCount,
|
|
@@ -5846,10 +5852,10 @@ function BulkActions({ selectedCount, actions, onAction, onClear, labels: custom
|
|
|
5846
5852
|
labels.selected
|
|
5847
5853
|
]
|
|
5848
5854
|
}),
|
|
5849
|
-
hasActions ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5855
|
+
hasActions ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_key_pad_menu.DropdownMenu, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownTrigger, {
|
|
5850
5856
|
className: "border-border bg-surface text-text-primary hover:bg-bg-subtle inline-flex h-8 items-center rounded-md border px-3 text-sm font-medium",
|
|
5851
5857
|
children: labels.actions
|
|
5852
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5858
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownContent, { children: actions.map((action) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.DropdownItem, {
|
|
5853
5859
|
onClick: () => onAction(action.id),
|
|
5854
5860
|
className: action.variant === "danger" ? "text-danger" : void 0,
|
|
5855
5861
|
children: action.label
|
|
@@ -5879,7 +5885,7 @@ const defaultLabels$8 = {
|
|
|
5879
5885
|
};
|
|
5880
5886
|
/** Renders the saved filters component. */
|
|
5881
5887
|
function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onDeletePreset, className, labels: customLabels }) {
|
|
5882
|
-
const labels =
|
|
5888
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$8), customLabels);
|
|
5883
5889
|
const [newName, setNewName] = react.useState("");
|
|
5884
5890
|
const [pendingDeleteId, setPendingDeleteId] = react.useState(null);
|
|
5885
5891
|
const triggerId = react.useId();
|
|
@@ -5904,14 +5910,14 @@ function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onD
|
|
|
5904
5910
|
window.addEventListener("keydown", cancelDelete);
|
|
5905
5911
|
return () => window.removeEventListener("keydown", cancelDelete);
|
|
5906
5912
|
}, [cancelPendingDelete, pendingDeleteId]);
|
|
5907
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
5913
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverRoot, {
|
|
5908
5914
|
"data-opt-id": "SPRCB",
|
|
5909
5915
|
"data-opt-slug": "saved-filters.SavedFilters",
|
|
5910
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5916
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.PopoverTrigger, {
|
|
5911
5917
|
id: triggerId,
|
|
5912
|
-
className:
|
|
5918
|
+
className: require_highlight.cn("border-border bg-surface text-text-primary hover:bg-bg-subtle inline-flex h-9 items-center gap-1.5 rounded-lg border px-3 text-sm font-medium", className),
|
|
5913
5919
|
children: labels.triggerLabel(presets.length)
|
|
5914
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5920
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.PopoverContent, {
|
|
5915
5921
|
className: "w-72",
|
|
5916
5922
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
5917
5923
|
className: "gap-group flex flex-col p-2",
|
|
@@ -5947,7 +5953,7 @@ function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onD
|
|
|
5947
5953
|
},
|
|
5948
5954
|
children: preset.name
|
|
5949
5955
|
}),
|
|
5950
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5956
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
5951
5957
|
variant: "ghost",
|
|
5952
5958
|
size: "sm",
|
|
5953
5959
|
className: "text-text-tertiary hover:text-danger size-7 p-0",
|
|
@@ -5970,7 +5976,7 @@ function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onD
|
|
|
5970
5976
|
cancelPendingDelete(preset.id);
|
|
5971
5977
|
}
|
|
5972
5978
|
},
|
|
5973
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5979
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
5974
5980
|
id: `${triggerId}-${preset.id}`,
|
|
5975
5981
|
variant: "danger",
|
|
5976
5982
|
size: "sm",
|
|
@@ -5985,7 +5991,7 @@ function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onD
|
|
|
5985
5991
|
});
|
|
5986
5992
|
},
|
|
5987
5993
|
children: labels.confirmDeleteLabel
|
|
5988
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
5994
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
5989
5995
|
variant: "ghost",
|
|
5990
5996
|
size: "sm",
|
|
5991
5997
|
className: "h-7 px-2",
|
|
@@ -6010,13 +6016,13 @@ function SavedFilters({ currentFilters, presets, onSavePreset, onLoadPreset, onD
|
|
|
6010
6016
|
setPendingDeleteId(null);
|
|
6011
6017
|
}
|
|
6012
6018
|
},
|
|
6013
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6019
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
6014
6020
|
value: newName,
|
|
6015
6021
|
onChange: (e) => setNewName(e.target.value),
|
|
6016
6022
|
placeholder: labels.namePlaceholder,
|
|
6017
6023
|
"aria-label": labels.namePlaceholder,
|
|
6018
6024
|
className: "h-8 text-sm"
|
|
6019
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6025
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
6020
6026
|
type: "submit",
|
|
6021
6027
|
size: "sm",
|
|
6022
6028
|
disabled: !newName.trim(),
|
|
@@ -6040,13 +6046,13 @@ const defaultLabels$7 = {
|
|
|
6040
6046
|
};
|
|
6041
6047
|
/** Renders the notification center component. */
|
|
6042
6048
|
function NotificationCenter({ notifications, onMarkRead, onMarkAllRead, onAction, className, labels: customLabels }) {
|
|
6043
|
-
const labels =
|
|
6049
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$7), customLabels);
|
|
6044
6050
|
const unreadCount = notifications.filter((n) => !n.read).length;
|
|
6045
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
6051
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverRoot, {
|
|
6046
6052
|
"data-opt-id": "7A0XY",
|
|
6047
6053
|
"data-opt-slug": "notification-center.NotificationCenter",
|
|
6048
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
6049
|
-
className:
|
|
6054
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverTrigger, {
|
|
6055
|
+
className: require_highlight.cn("border-border bg-surface hover:bg-bg-subtle relative inline-flex h-9 w-9 items-center justify-center rounded-lg border", className),
|
|
6050
6056
|
"aria-label": `${labels.triggerLabel}${unreadCount > 0 ? ` ${labels.unreadSuffix(unreadCount)}` : ""}`,
|
|
6051
6057
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
6052
6058
|
width: "16",
|
|
@@ -6062,7 +6068,7 @@ function NotificationCenter({ notifications, onMarkRead, onMarkAllRead, onAction
|
|
|
6062
6068
|
className: "bg-danger text-danger-fg absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[10px] font-bold",
|
|
6063
6069
|
children: unreadCount
|
|
6064
6070
|
})]
|
|
6065
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
6071
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverContent, {
|
|
6066
6072
|
className: "w-80 p-0",
|
|
6067
6073
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6068
6074
|
className: "border-border flex items-center justify-between border-b px-4 py-3",
|
|
@@ -6075,12 +6081,12 @@ function NotificationCenter({ notifications, onMarkRead, onMarkAllRead, onAction
|
|
|
6075
6081
|
onClick: onMarkAllRead,
|
|
6076
6082
|
children: labels.markAllRead
|
|
6077
6083
|
})]
|
|
6078
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6084
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.ScrollArea, {
|
|
6079
6085
|
className: "max-h-80",
|
|
6080
6086
|
children: notifications.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
6081
6087
|
className: "text-text-tertiary px-4 py-8 text-center text-sm",
|
|
6082
6088
|
children: labels.emptyMessage
|
|
6083
|
-
}) : notifications.map((n) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div",
|
|
6089
|
+
}) : notifications.map((n) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", require_highlight._objectSpread2(require_highlight._objectSpread2({ className: require_highlight.cn("border-border flex flex-col gap-1 border-b px-4 py-3 last:border-b-0", !n.read && "bg-accent-subtle/30 cursor-pointer") }, !n.read ? {
|
|
6084
6090
|
role: "button",
|
|
6085
6091
|
tabIndex: 0,
|
|
6086
6092
|
onClick: () => onMarkRead(n.id),
|
|
@@ -6137,20 +6143,20 @@ const ACTION_DOT_COLOR = {
|
|
|
6137
6143
|
};
|
|
6138
6144
|
/** Renders the audit log component. */
|
|
6139
6145
|
function AuditLog({ entries, onLoadMore, loading, labels: customLabels, className }) {
|
|
6140
|
-
const labels =
|
|
6146
|
+
const labels = require_highlight._objectSpread2({
|
|
6141
6147
|
title: "Activity log",
|
|
6142
6148
|
loading: "Loading…",
|
|
6143
6149
|
loadMore: "Load more",
|
|
6144
6150
|
empty: "No activity yet"
|
|
6145
6151
|
}, customLabels);
|
|
6146
|
-
if (entries.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6152
|
+
if (entries.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
6147
6153
|
title: labels.empty,
|
|
6148
6154
|
className,
|
|
6149
6155
|
"data-opt-id": "VZ046",
|
|
6150
6156
|
"data-opt-slug": "audit-log.AuditLog"
|
|
6151
6157
|
});
|
|
6152
6158
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6153
|
-
className:
|
|
6159
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
6154
6160
|
"data-opt-id": "VZ046",
|
|
6155
6161
|
"data-opt-slug": "audit-log.AuditLog",
|
|
6156
6162
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -6168,41 +6174,41 @@ function AuditLog({ entries, onLoadMore, loading, labels: customLabels, classNam
|
|
|
6168
6174
|
role: "listitem",
|
|
6169
6175
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6170
6176
|
className: "absolute top-4 left-2",
|
|
6171
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6177
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
6172
6178
|
src: entry.user.avatar,
|
|
6173
6179
|
fallback: entry.user.name[0],
|
|
6174
6180
|
size: "sm"
|
|
6175
6181
|
}), dotColor && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6176
|
-
className:
|
|
6182
|
+
className: require_highlight.cn("border-surface absolute -right-0.5 -bottom-0.5 h-3 w-3 rounded-full border-2", dotColor),
|
|
6177
6183
|
"aria-hidden": "true"
|
|
6178
6184
|
})]
|
|
6179
6185
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6180
|
-
className:
|
|
6186
|
+
className: require_highlight.cn("rounded-lg p-3", require_highlight.OPT_BORDER, "bg-surface transition-colors"),
|
|
6181
6187
|
children: [
|
|
6182
6188
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6183
6189
|
className: "gap-element flex items-center",
|
|
6184
6190
|
children: [
|
|
6185
|
-
badgeVariant ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6191
|
+
badgeVariant ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Badge, {
|
|
6186
6192
|
variant: badgeVariant,
|
|
6187
6193
|
size: "sm",
|
|
6188
6194
|
dot: true,
|
|
6189
6195
|
children: entry.action
|
|
6190
6196
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6191
|
-
className:
|
|
6197
|
+
className: require_highlight.cn("text-xs font-medium", require_highlight.OPT_TEXT_SECONDARY),
|
|
6192
6198
|
children: entry.action
|
|
6193
6199
|
}),
|
|
6194
6200
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6195
|
-
className:
|
|
6201
|
+
className: require_highlight.cn("text-xs", require_highlight.OPT_TEXT_TERTIARY),
|
|
6196
6202
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", { children: entry.timestamp })
|
|
6197
6203
|
}),
|
|
6198
6204
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6199
|
-
className:
|
|
6205
|
+
className: require_highlight.cn("ml-auto text-xs font-medium", require_highlight.OPT_TEXT_SECONDARY),
|
|
6200
6206
|
children: entry.user.name
|
|
6201
6207
|
})
|
|
6202
6208
|
]
|
|
6203
6209
|
}),
|
|
6204
6210
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
6205
|
-
className:
|
|
6211
|
+
className: require_highlight.cn("mt-1.5 text-sm", require_highlight.OPT_TEXT_PRIMARY),
|
|
6206
6212
|
children: [
|
|
6207
6213
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6208
6214
|
className: "font-medium",
|
|
@@ -6236,7 +6242,7 @@ function AuditLog({ entries, onLoadMore, loading, labels: customLabels, classNam
|
|
|
6236
6242
|
type: "button",
|
|
6237
6243
|
onClick: onLoadMore,
|
|
6238
6244
|
disabled: loading,
|
|
6239
|
-
className:
|
|
6245
|
+
className: require_highlight.cn("text-accent mt-1 self-center rounded-md px-3 py-1.5 text-sm hover:underline disabled:opacity-50", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset"),
|
|
6240
6246
|
children: loading ? labels.loading : labels.loadMore
|
|
6241
6247
|
})]
|
|
6242
6248
|
});
|
|
@@ -6266,7 +6272,7 @@ function TreeTable({ data, columns, defaultExpanded = [], indentSize = 24, class
|
|
|
6266
6272
|
return [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
|
|
6267
6273
|
className: "border-border border-b",
|
|
6268
6274
|
children: columns.map((col, ci) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
|
|
6269
|
-
className:
|
|
6275
|
+
className: require_highlight.cn(require_highlight.OPT_TD),
|
|
6270
6276
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6271
6277
|
className: "flex items-center",
|
|
6272
6278
|
style: ci === 0 ? { paddingLeft: depth * indentSize } : void 0,
|
|
@@ -6274,7 +6280,7 @@ function TreeTable({ data, columns, defaultExpanded = [], indentSize = 24, class
|
|
|
6274
6280
|
ci === 0 && hasChildren && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
6275
6281
|
type: "button",
|
|
6276
6282
|
onClick: () => toggle(node.id),
|
|
6277
|
-
className:
|
|
6283
|
+
className: require_highlight.cn("mr-1 flex h-5 w-5 items-center justify-center rounded text-xs", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset"),
|
|
6278
6284
|
"aria-expanded": isExpanded,
|
|
6279
6285
|
"aria-label": isExpanded ? "Collapse" : "Expand",
|
|
6280
6286
|
children: isExpanded ? "▼" : "▶"
|
|
@@ -6287,15 +6293,15 @@ function TreeTable({ data, columns, defaultExpanded = [], indentSize = 24, class
|
|
|
6287
6293
|
}, node.id), ...isExpanded && hasChildren ? renderRows(node.children, depth + 1) : []];
|
|
6288
6294
|
});
|
|
6289
6295
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6290
|
-
className:
|
|
6296
|
+
className: require_highlight.cn("overflow-auto", className),
|
|
6291
6297
|
"data-opt-id": "EJRTW",
|
|
6292
6298
|
"data-opt-slug": "tree-table.TreeTable",
|
|
6293
6299
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
|
|
6294
|
-
className:
|
|
6300
|
+
className: require_highlight.cn("w-full border-collapse", require_highlight.OPT_BORDER),
|
|
6295
6301
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
|
|
6296
6302
|
className: "border-border border-b",
|
|
6297
6303
|
children: columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
|
|
6298
|
-
className:
|
|
6304
|
+
className: require_highlight.cn(require_highlight.OPT_TH),
|
|
6299
6305
|
style: { width: col.width },
|
|
6300
6306
|
children: col.header
|
|
6301
6307
|
}, col.id))
|
|
@@ -6308,7 +6314,7 @@ function TreeTable({ data, columns, defaultExpanded = [], indentSize = 24, class
|
|
|
6308
6314
|
const defaultLabels$6 = { emptyMessage: "No rows to edit" };
|
|
6309
6315
|
/** Renders the inline edit table component. */
|
|
6310
6316
|
function InlineEditTable({ data, columns, keyExtractor, onCellEdit, labels: customLabels, className }) {
|
|
6311
|
-
const labels =
|
|
6317
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$6), customLabels);
|
|
6312
6318
|
const [editCell, setEditCell] = react.useState(null);
|
|
6313
6319
|
const [editValue, setEditValue] = react.useState("");
|
|
6314
6320
|
const inputRef = react.useRef(null);
|
|
@@ -6334,21 +6340,21 @@ function InlineEditTable({ data, columns, keyExtractor, onCellEdit, labels: cust
|
|
|
6334
6340
|
if (editCell) (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
|
6335
6341
|
}, [editCell]);
|
|
6336
6342
|
if (data.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6337
|
-
className:
|
|
6343
|
+
className: require_highlight.cn("flex min-h-40 items-center justify-center", className),
|
|
6338
6344
|
"data-opt-id": "5W3J1",
|
|
6339
6345
|
"data-opt-slug": "inline-edit-table.InlineEditTable",
|
|
6340
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6346
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, { title: labels.emptyMessage })
|
|
6341
6347
|
});
|
|
6342
6348
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6343
|
-
className:
|
|
6349
|
+
className: require_highlight.cn("overflow-auto", className),
|
|
6344
6350
|
"data-opt-id": "5W3J1",
|
|
6345
6351
|
"data-opt-slug": "inline-edit-table.InlineEditTable",
|
|
6346
6352
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
|
|
6347
|
-
className:
|
|
6353
|
+
className: require_highlight.cn("w-full border-collapse", require_highlight.OPT_BORDER),
|
|
6348
6354
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
|
|
6349
6355
|
className: "border-border border-b",
|
|
6350
6356
|
children: columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
|
|
6351
|
-
className:
|
|
6357
|
+
className: require_highlight.cn(require_highlight.OPT_TH),
|
|
6352
6358
|
style: { width: col.width },
|
|
6353
6359
|
children: col.header
|
|
6354
6360
|
}, col.id))
|
|
@@ -6360,10 +6366,10 @@ function InlineEditTable({ data, columns, keyExtractor, onCellEdit, labels: cust
|
|
|
6360
6366
|
const isEditing = (editCell === null || editCell === void 0 ? void 0 : editCell.rowId) === rowId && (editCell === null || editCell === void 0 ? void 0 : editCell.colId) === col.id;
|
|
6361
6367
|
const value = getCellValue(row, col);
|
|
6362
6368
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
|
|
6363
|
-
className:
|
|
6369
|
+
className: require_highlight.cn(require_highlight.OPT_TD),
|
|
6364
6370
|
children: isEditing ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
6365
6371
|
ref: inputRef,
|
|
6366
|
-
className:
|
|
6372
|
+
className: require_highlight.cn("w-full rounded px-2 py-1 text-sm", require_highlight.OPT_INPUT),
|
|
6367
6373
|
value: editValue,
|
|
6368
6374
|
onChange: (e) => setEditValue(e.target.value),
|
|
6369
6375
|
onKeyDown: (e) => {
|
|
@@ -6422,14 +6428,14 @@ function KanbanBoard({ columns, onDragEnd, renderCard, keyExtractor, emptyMessag
|
|
|
6422
6428
|
setDragItem(null);
|
|
6423
6429
|
setDropTarget(null);
|
|
6424
6430
|
};
|
|
6425
|
-
if (columns.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6431
|
+
if (columns.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
6426
6432
|
title: emptyMessage,
|
|
6427
6433
|
className,
|
|
6428
6434
|
"data-opt-id": "T6JWY",
|
|
6429
6435
|
"data-opt-slug": "kanban-board.KanbanBoard"
|
|
6430
6436
|
});
|
|
6431
6437
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6432
|
-
className:
|
|
6438
|
+
className: require_highlight.cn("gap-group flex overflow-x-auto", className),
|
|
6433
6439
|
"data-opt-id": "T6JWY",
|
|
6434
6440
|
"data-opt-slug": "kanban-board.KanbanBoard",
|
|
6435
6441
|
children: columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -6464,7 +6470,7 @@ function KanbanBoard({ columns, onDragEnd, renderCard, keyExtractor, emptyMessag
|
|
|
6464
6470
|
onDragOver: handleDragOver(col.id, i),
|
|
6465
6471
|
onDrop: handleDrop(col.id, i),
|
|
6466
6472
|
onDragEnd: handleDragEnd,
|
|
6467
|
-
className:
|
|
6473
|
+
className: require_highlight.cn("bg-surface border-border cursor-grab rounded-lg border p-3 shadow-sm transition-opacity", (dragItem === null || dragItem === void 0 ? void 0 : dragItem.id) === id && "opacity-50"),
|
|
6468
6474
|
children: renderCard(item)
|
|
6469
6475
|
})] }, id);
|
|
6470
6476
|
}), (dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.colId) === col.id && (dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.index) === col.items.length && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "bg-accent h-0.5 rounded-full" })]
|
|
@@ -6556,7 +6562,7 @@ function RichTextEditor({ value, onChange, placeholder = "Write something…", t
|
|
|
6556
6562
|
}, 0);
|
|
6557
6563
|
};
|
|
6558
6564
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6559
|
-
className:
|
|
6565
|
+
className: require_highlight.cn("border-border flex flex-col overflow-hidden rounded-lg border", className),
|
|
6560
6566
|
"data-opt-id": "441JQ",
|
|
6561
6567
|
"data-opt-slug": "rich-text-editor.RichTextEditor",
|
|
6562
6568
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -6564,7 +6570,7 @@ function RichTextEditor({ value, onChange, placeholder = "Write something…", t
|
|
|
6564
6570
|
children: toolbar.map((action) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
6565
6571
|
type: "button",
|
|
6566
6572
|
onClick: () => applyFormat(action),
|
|
6567
|
-
className:
|
|
6573
|
+
className: require_highlight.cn("text-text-secondary hover:bg-surface hover:text-text-primary inline-flex h-7 min-w-7 items-center justify-center rounded px-1.5 text-xs font-medium", require_highlight.OPT_FOCUS_VISIBLE),
|
|
6568
6574
|
title: action,
|
|
6569
6575
|
"aria-label": action,
|
|
6570
6576
|
children: TOOLBAR_BUTTONS[action].label
|
|
@@ -6630,7 +6636,7 @@ const LINE_PREFIXES = {
|
|
|
6630
6636
|
function CodeDiffViewer({ original, modified, mode = "unified", showLineNumbers = true, scrollLabel, className }) {
|
|
6631
6637
|
const diff = react.useMemo(() => computeDiff(original, modified), [original, modified]);
|
|
6632
6638
|
if (mode === "split") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6633
|
-
className:
|
|
6639
|
+
className: require_highlight.cn("border-border overflow-auto rounded-lg border", require_highlight.OPT_FOCUS_VISIBLE, className),
|
|
6634
6640
|
tabIndex: 0,
|
|
6635
6641
|
role: "region",
|
|
6636
6642
|
"aria-label": scrollLabel !== null && scrollLabel !== void 0 ? scrollLabel : "Code diff",
|
|
@@ -6646,7 +6652,7 @@ function CodeDiffViewer({ original, modified, mode = "unified", showLineNumbers
|
|
|
6646
6652
|
children: diff.filter((l) => l.type !== "add").map((line, i) => {
|
|
6647
6653
|
var _line$oldLineNo;
|
|
6648
6654
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6649
|
-
className:
|
|
6655
|
+
className: require_highlight.cn("px-3", LINE_STYLES[line.type]),
|
|
6650
6656
|
children: [
|
|
6651
6657
|
showLineNumbers && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6652
6658
|
className: "text-text-tertiary mr-4 inline-block w-8 text-right select-none",
|
|
@@ -6668,7 +6674,7 @@ function CodeDiffViewer({ original, modified, mode = "unified", showLineNumbers
|
|
|
6668
6674
|
children: diff.filter((l) => l.type !== "remove").map((line, i) => {
|
|
6669
6675
|
var _line$newLineNo;
|
|
6670
6676
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6671
|
-
className:
|
|
6677
|
+
className: require_highlight.cn("px-3", LINE_STYLES[line.type]),
|
|
6672
6678
|
children: [
|
|
6673
6679
|
showLineNumbers && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6674
6680
|
className: "text-text-tertiary mr-4 inline-block w-8 text-right select-none",
|
|
@@ -6686,7 +6692,7 @@ function CodeDiffViewer({ original, modified, mode = "unified", showLineNumbers
|
|
|
6686
6692
|
})
|
|
6687
6693
|
});
|
|
6688
6694
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6689
|
-
className:
|
|
6695
|
+
className: require_highlight.cn("border-border overflow-auto rounded-lg border", require_highlight.OPT_FOCUS_VISIBLE, className),
|
|
6690
6696
|
tabIndex: 0,
|
|
6691
6697
|
role: "region",
|
|
6692
6698
|
"aria-label": scrollLabel !== null && scrollLabel !== void 0 ? scrollLabel : "Code diff",
|
|
@@ -6697,7 +6703,7 @@ function CodeDiffViewer({ original, modified, mode = "unified", showLineNumbers
|
|
|
6697
6703
|
children: diff.map((line, i) => {
|
|
6698
6704
|
var _line$oldLineNo2, _line$newLineNo2;
|
|
6699
6705
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6700
|
-
className:
|
|
6706
|
+
className: require_highlight.cn("px-3", LINE_STYLES[line.type]),
|
|
6701
6707
|
children: [
|
|
6702
6708
|
showLineNumbers && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6703
6709
|
className: "text-text-tertiary mr-2 inline-block w-8 text-right select-none",
|
|
@@ -6726,13 +6732,13 @@ const defaultLabels$5 = {
|
|
|
6726
6732
|
};
|
|
6727
6733
|
/** Renders the webhook config component. */
|
|
6728
6734
|
function WebhookConfig({ webhook, onChange, availableEvents, onTest, className, labels: customLabels }) {
|
|
6729
|
-
const labels =
|
|
6735
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$5), customLabels);
|
|
6730
6736
|
const toggleEvent = (event) => {
|
|
6731
6737
|
const events = webhook.events.includes(event) ? webhook.events.filter((e) => e !== event) : [...webhook.events, event];
|
|
6732
|
-
onChange(
|
|
6738
|
+
onChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, webhook), {}, { events }));
|
|
6733
6739
|
};
|
|
6734
6740
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6735
|
-
className:
|
|
6741
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
6736
6742
|
"data-opt-id": "B6B1Z",
|
|
6737
6743
|
"data-opt-slug": "webhook-config.WebhookConfig",
|
|
6738
6744
|
children: [
|
|
@@ -6741,9 +6747,9 @@ function WebhookConfig({ webhook, onChange, availableEvents, onTest, className,
|
|
|
6741
6747
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
6742
6748
|
className: "text-text-primary text-sm font-medium",
|
|
6743
6749
|
children: labels.webhookUrl
|
|
6744
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6750
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
6745
6751
|
value: webhook.url,
|
|
6746
|
-
onChange: (e) => onChange(
|
|
6752
|
+
onChange: (e) => onChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, webhook), {}, { url: e.target.value })),
|
|
6747
6753
|
placeholder: "https://example.com/webhook"
|
|
6748
6754
|
})]
|
|
6749
6755
|
}),
|
|
@@ -6756,7 +6762,7 @@ function WebhookConfig({ webhook, onChange, availableEvents, onTest, className,
|
|
|
6756
6762
|
className: "gap-element flex flex-wrap",
|
|
6757
6763
|
children: availableEvents.length > 0 ? availableEvents.map((event) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
6758
6764
|
className: "flex items-center gap-1.5 text-sm",
|
|
6759
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6765
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Checkbox, {
|
|
6760
6766
|
name: `event-${event}`,
|
|
6761
6767
|
checked: webhook.events.includes(event),
|
|
6762
6768
|
onChange: () => toggleEvent(event)
|
|
@@ -6775,16 +6781,16 @@ function WebhookConfig({ webhook, onChange, availableEvents, onTest, className,
|
|
|
6775
6781
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
6776
6782
|
className: "text-text-primary text-sm font-medium",
|
|
6777
6783
|
children: labels.retries
|
|
6778
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6784
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.NumberInput, {
|
|
6779
6785
|
value: webhook.retries,
|
|
6780
|
-
onChange: (v) => onChange(
|
|
6786
|
+
onChange: (v) => onChange(require_highlight._objectSpread2(require_highlight._objectSpread2({}, webhook), {}, { retries: v })),
|
|
6781
6787
|
min: 0,
|
|
6782
6788
|
max: 10
|
|
6783
6789
|
})]
|
|
6784
6790
|
}),
|
|
6785
6791
|
onTest && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6786
6792
|
className: "flex justify-end",
|
|
6787
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6793
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
6788
6794
|
variant: "secondary",
|
|
6789
6795
|
onClick: onTest,
|
|
6790
6796
|
children: labels.testWebhook
|
|
@@ -6803,15 +6809,15 @@ const defaultLabels$4 = {
|
|
|
6803
6809
|
};
|
|
6804
6810
|
/** Renders the feature flag panel component. */
|
|
6805
6811
|
function FeatureFlagPanel({ flags, onToggle, onRolloutChange, environments, className, labels: customLabels }) {
|
|
6806
|
-
const labels =
|
|
6812
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$4), customLabels);
|
|
6807
6813
|
if (flags.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6808
|
-
className:
|
|
6814
|
+
className: require_highlight.cn("text-text-tertiary text-sm", className),
|
|
6809
6815
|
"data-opt-id": "JW164",
|
|
6810
6816
|
"data-opt-slug": "feature-flag-panel.FeatureFlagPanel",
|
|
6811
6817
|
children: labels.emptyMessage
|
|
6812
6818
|
});
|
|
6813
6819
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6814
|
-
className:
|
|
6820
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
6815
6821
|
"data-opt-id": "JW164",
|
|
6816
6822
|
"data-opt-slug": "feature-flag-panel.FeatureFlagPanel",
|
|
6817
6823
|
children: flags.map((flag) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -6828,7 +6834,7 @@ function FeatureFlagPanel({ flags, onToggle, onRolloutChange, environments, clas
|
|
|
6828
6834
|
className: "text-text-tertiary text-xs",
|
|
6829
6835
|
children: flag.description
|
|
6830
6836
|
})]
|
|
6831
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6837
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Switch, {
|
|
6832
6838
|
checked: flag.enabled,
|
|
6833
6839
|
onChange: (checked) => onToggle(flag.id, checked),
|
|
6834
6840
|
label: flag.enabled ? labels.enabled : labels.disabled
|
|
@@ -6836,7 +6842,7 @@ function FeatureFlagPanel({ flags, onToggle, onRolloutChange, environments, clas
|
|
|
6836
6842
|
}),
|
|
6837
6843
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6838
6844
|
className: "flex flex-wrap gap-1",
|
|
6839
|
-
children: environments.map((env) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6845
|
+
children: environments.map((env) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Badge, {
|
|
6840
6846
|
variant: flag.environments.includes(env) ? "success" : "default",
|
|
6841
6847
|
children: env
|
|
6842
6848
|
}, env))
|
|
@@ -6846,7 +6852,7 @@ function FeatureFlagPanel({ flags, onToggle, onRolloutChange, environments, clas
|
|
|
6846
6852
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6847
6853
|
className: "text-text-secondary text-xs",
|
|
6848
6854
|
children: labels.rolloutLabel
|
|
6849
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6855
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.NumberInput, {
|
|
6850
6856
|
value: flag.rolloutPercentage,
|
|
6851
6857
|
onChange: (v) => onRolloutChange(flag.id, v),
|
|
6852
6858
|
min: 0,
|
|
@@ -6862,7 +6868,7 @@ function FeatureFlagPanel({ flags, onToggle, onRolloutChange, environments, clas
|
|
|
6862
6868
|
//#region src/shells/data-import-wizard.tsx
|
|
6863
6869
|
/** Renders the data import wizard component. */
|
|
6864
6870
|
function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels: customLabels, className }) {
|
|
6865
|
-
const labels =
|
|
6871
|
+
const labels = require_highlight._objectSpread2({
|
|
6866
6872
|
stepsLabel: "Import steps",
|
|
6867
6873
|
upload: "Upload",
|
|
6868
6874
|
mapColumns: "Map Columns",
|
|
@@ -6904,7 +6910,7 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
6904
6910
|
labels.confirm
|
|
6905
6911
|
];
|
|
6906
6912
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6907
|
-
className:
|
|
6913
|
+
className: require_highlight.cn("gap-group flex flex-col", className),
|
|
6908
6914
|
"data-opt-id": "QD9XR",
|
|
6909
6915
|
"data-opt-slug": "data-import-wizard.DataImportWizard",
|
|
6910
6916
|
children: [
|
|
@@ -6917,11 +6923,11 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
6917
6923
|
children: [
|
|
6918
6924
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6919
6925
|
"aria-hidden": "true",
|
|
6920
|
-
className:
|
|
6926
|
+
className: require_highlight.cn("flex h-6 w-6 items-center justify-center rounded-full text-xs font-medium", i <= step ? "bg-accent text-accent-fg" : "bg-bg-subtle text-text-tertiary"),
|
|
6921
6927
|
children: i + 1
|
|
6922
6928
|
}),
|
|
6923
6929
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6924
|
-
className:
|
|
6930
|
+
className: require_highlight.cn("text-xs", i <= step ? "text-text-primary" : "text-text-tertiary"),
|
|
6925
6931
|
children: s
|
|
6926
6932
|
}),
|
|
6927
6933
|
i < steps.length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -6957,7 +6963,7 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
6957
6963
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
6958
6964
|
className: "border-border bg-surface text-text-primary rounded-md border px-2 py-1 text-sm",
|
|
6959
6965
|
value: mapping[field.id] || "",
|
|
6960
|
-
onChange: (e) => setMapping(
|
|
6966
|
+
onChange: (e) => setMapping(require_highlight._objectSpread2(require_highlight._objectSpread2({}, mapping), {}, { [field.id]: e.target.value })),
|
|
6961
6967
|
"aria-label": `Map ${field.label}`,
|
|
6962
6968
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
6963
6969
|
value: "",
|
|
@@ -6969,11 +6975,11 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
6969
6975
|
})]
|
|
6970
6976
|
}, field.id)), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6971
6977
|
className: "gap-element flex justify-end",
|
|
6972
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6978
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
6973
6979
|
variant: "secondary",
|
|
6974
6980
|
onClick: () => setStep(0),
|
|
6975
6981
|
children: labels.back
|
|
6976
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
6982
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
6977
6983
|
onClick: () => setStep(2),
|
|
6978
6984
|
children: labels.next
|
|
6979
6985
|
})]
|
|
@@ -7007,11 +7013,11 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
7007
7013
|
}),
|
|
7008
7014
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7009
7015
|
className: "gap-element flex justify-end",
|
|
7010
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7016
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
7011
7017
|
variant: "secondary",
|
|
7012
7018
|
onClick: () => setStep(1),
|
|
7013
7019
|
children: labels.back
|
|
7014
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7020
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
7015
7021
|
onClick: () => setStep(3),
|
|
7016
7022
|
children: labels.next
|
|
7017
7023
|
})]
|
|
@@ -7025,11 +7031,11 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
7025
7031
|
children: labels.confirmSummary(rows.length, Object.keys(mapping).length)
|
|
7026
7032
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7027
7033
|
className: "gap-element flex",
|
|
7028
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7034
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
7029
7035
|
variant: "secondary",
|
|
7030
7036
|
onClick: () => setStep(2),
|
|
7031
7037
|
children: labels.back
|
|
7032
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7038
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
7033
7039
|
onClick: () => onImport(mapping, rows),
|
|
7034
7040
|
children: labels.import
|
|
7035
7041
|
})]
|
|
@@ -7043,14 +7049,14 @@ function DataImportWizard({ fields, onImport, acceptedFormats = ".csv", labels:
|
|
|
7043
7049
|
const defaultLabels$3 = { trigger: "Menu" };
|
|
7044
7050
|
/** Renders the mega menu component. */
|
|
7045
7051
|
function MegaMenu({ menus, columns = 3, footer, triggerLabel, labels: customLabels, className }) {
|
|
7046
|
-
const labels =
|
|
7052
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$3), customLabels);
|
|
7047
7053
|
const resolvedTriggerLabel = triggerLabel !== null && triggerLabel !== void 0 ? triggerLabel : labels.trigger;
|
|
7048
7054
|
if (menus.length === 0) return null;
|
|
7049
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7055
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverRoot, {
|
|
7050
7056
|
"data-opt-id": "42177",
|
|
7051
7057
|
"data-opt-slug": "mega-menu.MegaMenu",
|
|
7052
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7053
|
-
className:
|
|
7058
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverTrigger, {
|
|
7059
|
+
className: require_highlight.cn("border-border bg-surface text-text-primary hover:bg-bg-subtle inline-flex h-9 items-center gap-1.5 rounded-lg border px-3 text-sm font-medium", className),
|
|
7054
7060
|
children: [resolvedTriggerLabel, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
7055
7061
|
width: "12",
|
|
7056
7062
|
height: "12",
|
|
@@ -7060,7 +7066,7 @@ function MegaMenu({ menus, columns = 3, footer, triggerLabel, labels: customLabe
|
|
|
7060
7066
|
strokeWidth: "1.5",
|
|
7061
7067
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M3 5l3 3 3-3" })
|
|
7062
7068
|
})]
|
|
7063
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7069
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.PopoverContent, {
|
|
7064
7070
|
className: "w-auto max-w-2xl p-0",
|
|
7065
7071
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7066
7072
|
className: "gap-group grid p-4",
|
|
@@ -7106,7 +7112,7 @@ const defaultLabels$2 = {
|
|
|
7106
7112
|
};
|
|
7107
7113
|
/** Renders the chat sidebar component. */
|
|
7108
7114
|
function ChatSidebar({ conversations, activeConversationId, onConversationSelect, onNewChat, onSearch, labels: customLabels, className }) {
|
|
7109
|
-
const labels =
|
|
7115
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$2), customLabels);
|
|
7110
7116
|
const [searchQuery, setSearchQuery] = (0, react.useState)("");
|
|
7111
7117
|
const [isHydrated, setIsHydrated] = (0, react.useState)(false);
|
|
7112
7118
|
(0, react.useEffect)(() => {
|
|
@@ -7121,11 +7127,11 @@ function ChatSidebar({ conversations, activeConversationId, onConversationSelect
|
|
|
7121
7127
|
return c.title.toLowerCase().includes(searchQuery.toLowerCase()) || ((_c$lastMessage = c.lastMessage) === null || _c$lastMessage === void 0 ? void 0 : _c$lastMessage.toLowerCase().includes(searchQuery.toLowerCase()));
|
|
7122
7128
|
}) : conversations;
|
|
7123
7129
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7124
|
-
className:
|
|
7130
|
+
className: require_highlight.cn("gap-group flex h-full flex-col", className),
|
|
7125
7131
|
"data-opt-id": "TBVMY",
|
|
7126
7132
|
"data-opt-slug": "chat-sidebar.ChatSidebar",
|
|
7127
7133
|
children: [
|
|
7128
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7134
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Button, {
|
|
7129
7135
|
onClick: onNewChat,
|
|
7130
7136
|
className: "w-full",
|
|
7131
7137
|
size: "sm",
|
|
@@ -7154,17 +7160,17 @@ function ChatSidebar({ conversations, activeConversationId, onConversationSelect
|
|
|
7154
7160
|
})]
|
|
7155
7161
|
}), labels.newChat]
|
|
7156
7162
|
}),
|
|
7157
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7163
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Input, {
|
|
7158
7164
|
placeholder: labels.searchPlaceholder,
|
|
7159
7165
|
value: searchQuery,
|
|
7160
7166
|
onChange: (e) => handleSearch(e.target.value),
|
|
7161
7167
|
size: "sm",
|
|
7162
7168
|
"aria-label": labels.searchPlaceholder
|
|
7163
7169
|
}),
|
|
7164
|
-
filtered.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7170
|
+
filtered.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
7165
7171
|
title: labels.emptyTitle,
|
|
7166
7172
|
description: labels.emptyDescription
|
|
7167
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7173
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.ScrollArea, {
|
|
7168
7174
|
className: "flex-1",
|
|
7169
7175
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7170
7176
|
className: "gap-element flex flex-col",
|
|
@@ -7177,25 +7183,25 @@ function ChatSidebar({ conversations, activeConversationId, onConversationSelect
|
|
|
7177
7183
|
role: "option",
|
|
7178
7184
|
"aria-selected": isActive,
|
|
7179
7185
|
onClick: () => onConversationSelect === null || onConversationSelect === void 0 ? void 0 : onConversationSelect(conversation),
|
|
7180
|
-
className:
|
|
7186
|
+
className: require_highlight.cn("relative rounded-lg px-3 py-2.5 text-left transition-colors", require_highlight.OPT_FOCUS_VISIBLE, isActive ? "bg-accent-subtle" : "hover:bg-bg-subtle"),
|
|
7181
7187
|
children: [
|
|
7182
7188
|
isActive && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "bg-accent absolute top-1/2 left-0 h-5 w-0.5 -translate-y-1/2 rounded-full" }),
|
|
7183
7189
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7184
7190
|
className: "gap-element flex items-start justify-between",
|
|
7185
7191
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
7186
|
-
className:
|
|
7192
|
+
className: require_highlight.cn("truncate text-sm font-medium", isActive ? "text-accent" : require_highlight.OPT_TEXT_PRIMARY),
|
|
7187
7193
|
children: conversation.title
|
|
7188
7194
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7189
7195
|
className: "flex shrink-0 items-center gap-1.5",
|
|
7190
7196
|
children: [conversation.unread && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "bg-accent h-2 w-2 rounded-full" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
7191
|
-
className:
|
|
7197
|
+
className: require_highlight.cn("text-[11px]", require_highlight.OPT_TEXT_TERTIARY),
|
|
7192
7198
|
dateTime: conversation.timestamp,
|
|
7193
7199
|
children: formatTimestamp(conversation.timestamp, isHydrated ? /* @__PURE__ */ new Date() : null)
|
|
7194
7200
|
})]
|
|
7195
7201
|
})]
|
|
7196
7202
|
}),
|
|
7197
7203
|
conversation.lastMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
7198
|
-
className:
|
|
7204
|
+
className: require_highlight.cn("mt-0.5 truncate text-xs", "text-text-secondary"),
|
|
7199
7205
|
children: conversation.lastMessage
|
|
7200
7206
|
})
|
|
7201
7207
|
]
|
|
@@ -7208,12 +7214,12 @@ function ChatSidebar({ conversations, activeConversationId, onConversationSelect
|
|
|
7208
7214
|
}
|
|
7209
7215
|
function formatTimestamp(timestamp, now) {
|
|
7210
7216
|
const date = new Date(timestamp);
|
|
7211
|
-
if (!now) return
|
|
7217
|
+
if (!now) return require_key_pad_menu.formatOptShortDate(date);
|
|
7212
7218
|
const diffMs = now.getTime() - date.getTime();
|
|
7213
7219
|
const diffDays = Math.floor(diffMs / 864e5);
|
|
7214
|
-
if (diffMs >= 0 && diffDays === 0) return
|
|
7220
|
+
if (diffMs >= 0 && diffDays === 0) return require_key_pad_menu.formatOptTime(date);
|
|
7215
7221
|
if (diffMs >= 0 && diffDays < 7) return `${diffDays}d`;
|
|
7216
|
-
return
|
|
7222
|
+
return require_key_pad_menu.formatOptShortDate(date);
|
|
7217
7223
|
}
|
|
7218
7224
|
ChatSidebar.displayName = "ChatSidebar";
|
|
7219
7225
|
//#endregion
|
|
@@ -7231,8 +7237,8 @@ const defaultLabels$1 = {
|
|
|
7231
7237
|
/** Renders the chat input component. */
|
|
7232
7238
|
function ChatInput({ value: controlledValue, defaultValue = "", onChange, onSend, onFileAttach, models, selectedModel, onModelChange, stylePresets, selectedStyle, onStyleChange, disabled = false, maxRows = 6, showHint = true, labels: customLabels, className }) {
|
|
7233
7239
|
var _models$, _models$find$label, _models$find, _stylePresets$, _stylePresets$find$la, _stylePresets$find;
|
|
7234
|
-
const labels =
|
|
7235
|
-
const [value, setValue] =
|
|
7240
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels$1), customLabels);
|
|
7241
|
+
const [value, setValue] = require_highlight.useControlledState(defaultValue, controlledValue, onChange);
|
|
7236
7242
|
const textareaRef = (0, react.useRef)(null);
|
|
7237
7243
|
const hasToolbar = models && models.length > 0 || stylePresets && stylePresets.length > 0;
|
|
7238
7244
|
(0, react.useLayoutEffect)(() => {
|
|
@@ -7260,48 +7266,48 @@ function ChatInput({ value: controlledValue, defaultValue = "", onChange, onSend
|
|
|
7260
7266
|
}
|
|
7261
7267
|
}, [handleSend]);
|
|
7262
7268
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7263
|
-
className:
|
|
7269
|
+
className: require_highlight.cn("gap-element flex flex-col", className),
|
|
7264
7270
|
"data-opt-id": "M8KX1",
|
|
7265
7271
|
"data-opt-slug": "chat-input.ChatInput",
|
|
7266
7272
|
children: [hasToolbar && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7267
7273
|
className: "gap-element flex items-center",
|
|
7268
|
-
children: [models && models.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7274
|
+
children: [models && models.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.SelectRoot, {
|
|
7269
7275
|
value: selectedModel !== null && selectedModel !== void 0 ? selectedModel : (_models$ = models[0]) === null || _models$ === void 0 ? void 0 : _models$.id,
|
|
7270
7276
|
onValueChange: (v) => onModelChange === null || onModelChange === void 0 ? void 0 : onModelChange(v),
|
|
7271
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7277
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectTrigger, {
|
|
7272
7278
|
minWidth: 120,
|
|
7273
7279
|
className: "h-8 text-xs",
|
|
7274
7280
|
children: (_models$find$label = (_models$find = models.find((m) => {
|
|
7275
7281
|
var _models$2;
|
|
7276
7282
|
return m.id === (selectedModel !== null && selectedModel !== void 0 ? selectedModel : (_models$2 = models[0]) === null || _models$2 === void 0 ? void 0 : _models$2.id);
|
|
7277
7283
|
})) === null || _models$find === void 0 ? void 0 : _models$find.label) !== null && _models$find$label !== void 0 ? _models$find$label : labels.modelLabel
|
|
7278
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7284
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectPopover, { children: models.map((model) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectItem, {
|
|
7279
7285
|
value: model.id,
|
|
7280
7286
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7281
7287
|
className: "text-sm",
|
|
7282
7288
|
children: model.label
|
|
7283
7289
|
}), model.description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7284
|
-
className:
|
|
7290
|
+
className: require_highlight.cn("text-xs", "text-text-tertiary"),
|
|
7285
7291
|
children: model.description
|
|
7286
7292
|
})] })
|
|
7287
7293
|
}, model.id)) })]
|
|
7288
|
-
}), stylePresets && stylePresets.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7294
|
+
}), stylePresets && stylePresets.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.SelectRoot, {
|
|
7289
7295
|
value: selectedStyle !== null && selectedStyle !== void 0 ? selectedStyle : (_stylePresets$ = stylePresets[0]) === null || _stylePresets$ === void 0 ? void 0 : _stylePresets$.id,
|
|
7290
7296
|
onValueChange: (v) => onStyleChange === null || onStyleChange === void 0 ? void 0 : onStyleChange(v),
|
|
7291
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7297
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectTrigger, {
|
|
7292
7298
|
minWidth: 100,
|
|
7293
7299
|
className: "h-8 text-xs",
|
|
7294
7300
|
children: (_stylePresets$find$la = (_stylePresets$find = stylePresets.find((s) => {
|
|
7295
7301
|
var _stylePresets$2;
|
|
7296
7302
|
return s.id === (selectedStyle !== null && selectedStyle !== void 0 ? selectedStyle : (_stylePresets$2 = stylePresets[0]) === null || _stylePresets$2 === void 0 ? void 0 : _stylePresets$2.id);
|
|
7297
7303
|
})) === null || _stylePresets$find === void 0 ? void 0 : _stylePresets$find.label) !== null && _stylePresets$find$la !== void 0 ? _stylePresets$find$la : labels.styleLabel
|
|
7298
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7304
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectPopover, { children: stylePresets.map((preset) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.SelectItem, {
|
|
7299
7305
|
value: preset.id,
|
|
7300
7306
|
children: preset.label
|
|
7301
7307
|
}, preset.id)) })]
|
|
7302
7308
|
})]
|
|
7303
7309
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7304
|
-
className:
|
|
7310
|
+
className: require_highlight.cn("bg-surface rounded-lg", require_highlight.OPT_BORDER, "focus-within:ring-ring focus-within:ring-offset-ring-offset focus-within:ring-2 focus-within:ring-offset-1"),
|
|
7305
7311
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
7306
7312
|
ref: textareaRef,
|
|
7307
7313
|
value,
|
|
@@ -7310,14 +7316,14 @@ function ChatInput({ value: controlledValue, defaultValue = "", onChange, onSend
|
|
|
7310
7316
|
placeholder: labels.placeholder,
|
|
7311
7317
|
disabled,
|
|
7312
7318
|
rows: 1,
|
|
7313
|
-
className:
|
|
7319
|
+
className: require_highlight.cn("text-text-primary placeholder:text-text-tertiary focus-visible:ring-ring focus-visible:ring-offset-ring-offset w-full resize-none border-none bg-transparent px-4 pt-3 pb-2 text-sm outline-none focus-visible:ring-2 focus-visible:ring-offset-1", "disabled:cursor-not-allowed disabled:opacity-50"),
|
|
7314
7320
|
"aria-label": labels.placeholder
|
|
7315
7321
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7316
7322
|
className: "flex items-center justify-between px-3 pb-2",
|
|
7317
7323
|
children: [
|
|
7318
7324
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7319
7325
|
className: "flex items-center gap-1",
|
|
7320
|
-
children: onFileAttach && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7326
|
+
children: onFileAttach && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Button, {
|
|
7321
7327
|
variant: "ghost",
|
|
7322
7328
|
size: "sm",
|
|
7323
7329
|
onClick: onFileAttach,
|
|
@@ -7340,14 +7346,14 @@ function ChatInput({ value: controlledValue, defaultValue = "", onChange, onSend
|
|
|
7340
7346
|
})
|
|
7341
7347
|
}),
|
|
7342
7348
|
showHint && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
7343
|
-
className:
|
|
7349
|
+
className: require_highlight.cn("flex items-center gap-1 text-xs", "text-text-tertiary"),
|
|
7344
7350
|
children: [
|
|
7345
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7346
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7351
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Kbd, { children: labels.shiftKey }),
|
|
7352
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.Kbd, { children: labels.enterKey }),
|
|
7347
7353
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: labels.hint })
|
|
7348
7354
|
]
|
|
7349
7355
|
}),
|
|
7350
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
7356
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.Button, {
|
|
7351
7357
|
size: "sm",
|
|
7352
7358
|
onClick: handleSend,
|
|
7353
7359
|
disabled: disabled || !value.trim(),
|
|
@@ -7390,7 +7396,7 @@ const defaultLabels = {
|
|
|
7390
7396
|
};
|
|
7391
7397
|
/** Renders the chat message list component. */
|
|
7392
7398
|
function ChatMessageList({ messages, loading = false, renderContent, assistantAvatar, userName, showTimestamps = true, autoScroll = true, labels: customLabels, className }) {
|
|
7393
|
-
const labels =
|
|
7399
|
+
const labels = require_highlight._objectSpread2(require_highlight._objectSpread2(require_highlight._objectSpread2({}, defaultLabels), customLabels), userName ? { userLabel: userName } : {});
|
|
7394
7400
|
const scrollRef = (0, react.useRef)(null);
|
|
7395
7401
|
const [isUserScrolledUp, setIsUserScrolledUp] = (0, react.useState)(false);
|
|
7396
7402
|
const scrollToBottom = (0, react.useCallback)(() => {
|
|
@@ -7414,16 +7420,16 @@ function ChatMessageList({ messages, loading = false, renderContent, assistantAv
|
|
|
7414
7420
|
scrollToBottom
|
|
7415
7421
|
]);
|
|
7416
7422
|
if (messages.length === 0 && !loading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7417
|
-
className:
|
|
7423
|
+
className: require_highlight.cn("flex flex-1 items-center justify-center", className),
|
|
7418
7424
|
"data-opt-id": "YK725",
|
|
7419
7425
|
"data-opt-slug": "chat-message-list.ChatMessageList",
|
|
7420
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7426
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.EmptyState, {
|
|
7421
7427
|
title: labels.emptyTitle,
|
|
7422
7428
|
description: labels.emptyDescription
|
|
7423
7429
|
})
|
|
7424
7430
|
});
|
|
7425
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7426
|
-
className:
|
|
7431
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.ScrollArea, {
|
|
7432
|
+
className: require_highlight.cn("flex-1", className),
|
|
7427
7433
|
"data-opt-id": "YK725",
|
|
7428
7434
|
"data-opt-slug": "chat-message-list.ChatMessageList",
|
|
7429
7435
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -7436,27 +7442,27 @@ function ChatMessageList({ messages, loading = false, renderContent, assistantAv
|
|
|
7436
7442
|
children: [messages.map((message) => {
|
|
7437
7443
|
const isUser = message.role === "user";
|
|
7438
7444
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7439
|
-
className:
|
|
7440
|
-
children: [!isUser && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7445
|
+
className: require_highlight.cn("gap-element flex", isUser ? "flex-row-reverse" : "flex-row"),
|
|
7446
|
+
children: [!isUser && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
7441
7447
|
name: labels.assistantLabel,
|
|
7442
7448
|
src: assistantAvatar,
|
|
7443
7449
|
size: "sm",
|
|
7444
7450
|
className: "mt-1 shrink-0"
|
|
7445
7451
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7446
|
-
className:
|
|
7452
|
+
className: require_highlight.cn("max-w-[80%] rounded-2xl px-4 py-2.5", isUser ? "bg-accent text-accent-fg rounded-tr-sm" : "bg-surface-input text-text-primary rounded-tl-sm"),
|
|
7447
7453
|
children: [renderContent ? renderContent(message) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
7448
7454
|
className: "text-sm whitespace-pre-wrap",
|
|
7449
7455
|
children: message.content
|
|
7450
7456
|
}), showTimestamps && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
7451
7457
|
dateTime: message.timestamp,
|
|
7452
|
-
className:
|
|
7458
|
+
className: require_highlight.cn("mt-1 block text-[11px]", isUser ? "text-accent-fg/70" : "text-text-tertiary"),
|
|
7453
7459
|
children: formatMessageTime(message.timestamp)
|
|
7454
7460
|
})]
|
|
7455
7461
|
})]
|
|
7456
7462
|
}, message.id);
|
|
7457
7463
|
}), loading && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
7458
7464
|
className: "gap-element flex items-start",
|
|
7459
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
7465
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_key_pad_menu.Avatar, {
|
|
7460
7466
|
name: labels.assistantLabel,
|
|
7461
7467
|
src: assistantAvatar,
|
|
7462
7468
|
size: "sm",
|
|
@@ -7479,7 +7485,7 @@ function ChatMessageList({ messages, loading = false, renderContent, assistantAv
|
|
|
7479
7485
|
});
|
|
7480
7486
|
}
|
|
7481
7487
|
function formatMessageTime(timestamp) {
|
|
7482
|
-
return
|
|
7488
|
+
return require_key_pad_menu.formatOptTime(timestamp);
|
|
7483
7489
|
}
|
|
7484
7490
|
ChatMessageList.displayName = "ChatMessageList";
|
|
7485
7491
|
//#endregion
|
|
@@ -8025,12 +8031,12 @@ components/
|
|
|
8025
8031
|
}
|
|
8026
8032
|
/** Renders the design guide panel component. */
|
|
8027
8033
|
function DesignGuidePanel({ className }) {
|
|
8028
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
8034
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DisclosureRoot, {
|
|
8029
8035
|
"data-opt-id": "65F6W",
|
|
8030
8036
|
"data-opt-slug": "design-guide-panel.DesignGuidePanel",
|
|
8031
8037
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8032
|
-
className:
|
|
8033
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
8038
|
+
className: require_highlight.cn("border-border bg-surface rounded-xl border", className),
|
|
8039
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_highlight.DisclosureTrigger, {
|
|
8034
8040
|
className: "hover:bg-bg-subtle data-[focus-visible]:ring-ring flex w-full items-center justify-between px-5 py-4 text-left transition-colors outline-none data-[focus-visible]:ring-2 data-[focus-visible]:ring-inset",
|
|
8035
8041
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
8036
8042
|
className: "text-text-primary text-sm font-semibold",
|
|
@@ -8050,7 +8056,7 @@ function DesignGuidePanel({ className }) {
|
|
|
8050
8056
|
d: "m19.5 8.25-7.5 7.5-7.5-7.5"
|
|
8051
8057
|
})
|
|
8052
8058
|
})]
|
|
8053
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
8059
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_highlight.DisclosureContent, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8054
8060
|
className: "border-border gap-section flex flex-col border-t px-5 py-5",
|
|
8055
8061
|
children: [
|
|
8056
8062
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PrimitiveComponentMap, {}),
|
|
@@ -8351,52 +8357,54 @@ function matchesQueryObject(query, row, options = {}) {
|
|
|
8351
8357
|
}
|
|
8352
8358
|
//#endregion
|
|
8353
8359
|
exports.ALL_COMPOUND_THEMES = ALL_COMPOUND_THEMES;
|
|
8354
|
-
exports.AccordionContent =
|
|
8355
|
-
exports.AccordionItem =
|
|
8356
|
-
exports.AccordionRoot =
|
|
8357
|
-
exports.AccordionTrigger =
|
|
8360
|
+
exports.AccordionContent = require_key_pad_menu.AccordionContent;
|
|
8361
|
+
exports.AccordionItem = require_key_pad_menu.AccordionItem;
|
|
8362
|
+
exports.AccordionRoot = require_key_pad_menu.AccordionRoot;
|
|
8363
|
+
exports.AccordionTrigger = require_key_pad_menu.AccordionTrigger;
|
|
8358
8364
|
exports.ActivityFeed = ActivityFeed;
|
|
8359
|
-
exports.Alert =
|
|
8365
|
+
exports.Alert = require_highlight.Alert;
|
|
8360
8366
|
exports.AlertBuilder = AlertBuilder;
|
|
8361
|
-
exports.AlertDialogPanel =
|
|
8367
|
+
exports.AlertDialogPanel = require_highlight.AlertDialogPanel;
|
|
8362
8368
|
exports.AppMenubar = require_field_sidebar.AppMenubar;
|
|
8363
8369
|
exports.AppShell = AppShell;
|
|
8364
8370
|
exports.AsyncCombobox = AsyncCombobox;
|
|
8365
8371
|
exports.AuditLog = AuditLog;
|
|
8366
8372
|
exports.AuditTimeline = AuditTimeline;
|
|
8367
8373
|
exports.AuthForm = AuthForm;
|
|
8368
|
-
exports.Avatar =
|
|
8369
|
-
exports.AvatarGroup =
|
|
8370
|
-
exports.Badge =
|
|
8371
|
-
exports.BlockLayout =
|
|
8374
|
+
exports.Avatar = require_key_pad_menu.Avatar;
|
|
8375
|
+
exports.AvatarGroup = require_key_pad_menu.AvatarGroup;
|
|
8376
|
+
exports.Badge = require_highlight.Badge;
|
|
8377
|
+
exports.BlockLayout = require_key_pad_menu.BlockLayout;
|
|
8372
8378
|
exports.BranchSelect = require_field_sidebar.BranchSelect;
|
|
8373
|
-
exports.Breadcrumb =
|
|
8379
|
+
exports.Breadcrumb = require_key_pad_menu.Breadcrumb;
|
|
8374
8380
|
exports.BulkActions = BulkActions;
|
|
8375
|
-
exports.Button =
|
|
8381
|
+
exports.Button = require_highlight.Button;
|
|
8376
8382
|
exports.COLOR_PRESETS = COLOR_PRESETS;
|
|
8377
|
-
exports.Card =
|
|
8378
|
-
exports.CardContent =
|
|
8379
|
-
exports.CardDescription =
|
|
8380
|
-
exports.CardFooter =
|
|
8381
|
-
exports.CardHeader =
|
|
8382
|
-
exports.CardTitle =
|
|
8383
|
+
exports.Card = require_key_pad_menu.Card;
|
|
8384
|
+
exports.CardContent = require_key_pad_menu.CardContent;
|
|
8385
|
+
exports.CardDescription = require_key_pad_menu.CardDescription;
|
|
8386
|
+
exports.CardFooter = require_key_pad_menu.CardFooter;
|
|
8387
|
+
exports.CardHeader = require_key_pad_menu.CardHeader;
|
|
8388
|
+
exports.CardTitle = require_key_pad_menu.CardTitle;
|
|
8383
8389
|
exports.ChatInput = ChatInput;
|
|
8384
8390
|
exports.ChatMessageList = ChatMessageList;
|
|
8385
8391
|
exports.ChatSidebar = ChatSidebar;
|
|
8386
|
-
exports.Checkbox =
|
|
8387
|
-
exports.CheckboxGroup =
|
|
8388
|
-
exports.CircularProgress =
|
|
8392
|
+
exports.Checkbox = require_highlight.Checkbox;
|
|
8393
|
+
exports.CheckboxGroup = require_highlight.CheckboxGroup;
|
|
8394
|
+
exports.CircularProgress = require_key_pad_menu.CircularProgress;
|
|
8389
8395
|
exports.CodeDiffViewer = CodeDiffViewer;
|
|
8390
8396
|
exports.CodeSnippetViewer = CodeSnippetViewer;
|
|
8391
|
-
exports.
|
|
8397
|
+
exports.ColorPaletteDisplay = require_key_pad_menu.ColorPaletteDisplay;
|
|
8398
|
+
exports.ColorPalettePicker = require_key_pad_menu.ColorPalettePicker;
|
|
8399
|
+
exports.ColorPicker = require_highlight.ColorPicker;
|
|
8392
8400
|
exports.ColumnToggler = ColumnToggler;
|
|
8393
|
-
exports.ComboboxEmpty =
|
|
8394
|
-
exports.ComboboxGroup =
|
|
8395
|
-
exports.ComboboxGroupLabel =
|
|
8396
|
-
exports.ComboboxInput =
|
|
8397
|
-
exports.ComboboxItem =
|
|
8398
|
-
exports.ComboboxPopover =
|
|
8399
|
-
exports.ComboboxRoot =
|
|
8401
|
+
exports.ComboboxEmpty = require_highlight.ComboboxEmpty;
|
|
8402
|
+
exports.ComboboxGroup = require_highlight.ComboboxGroup;
|
|
8403
|
+
exports.ComboboxGroupLabel = require_highlight.ComboboxGroupLabel;
|
|
8404
|
+
exports.ComboboxInput = require_highlight.ComboboxInput;
|
|
8405
|
+
exports.ComboboxItem = require_highlight.ComboboxItem;
|
|
8406
|
+
exports.ComboboxPopover = require_highlight.ComboboxPopover;
|
|
8407
|
+
exports.ComboboxRoot = require_highlight.ComboboxRoot;
|
|
8400
8408
|
exports.Command = require_field_sidebar.Command;
|
|
8401
8409
|
exports.CommandDialog = require_field_sidebar.CommandDialog;
|
|
8402
8410
|
exports.CommandEmpty = require_field_sidebar.CommandEmpty;
|
|
@@ -8413,45 +8421,45 @@ exports.Composite = _reopt_ai_opt_ui_primitives.Composite;
|
|
|
8413
8421
|
exports.CompositeItem = _reopt_ai_opt_ui_primitives.CompositeItem;
|
|
8414
8422
|
exports.CompositeProvider = _reopt_ai_opt_ui_primitives.CompositeProvider;
|
|
8415
8423
|
exports.CompositeRow = _reopt_ai_opt_ui_primitives.CompositeRow;
|
|
8416
|
-
exports.CompositeZone =
|
|
8417
|
-
exports.ConditionBuilder =
|
|
8424
|
+
exports.CompositeZone = require_highlight.CompositeZone;
|
|
8425
|
+
exports.ConditionBuilder = require_key_pad_menu.ConditionBuilder;
|
|
8418
8426
|
exports.ConfirmDialog = ConfirmDialog;
|
|
8419
8427
|
exports.ConnectionIndicator = ConnectionIndicator;
|
|
8420
|
-
exports.Container =
|
|
8428
|
+
exports.Container = require_key_pad_menu.Container;
|
|
8421
8429
|
exports.ContentTabs = require_field_sidebar.ContentTabs;
|
|
8422
|
-
exports.DEFAULT_PRESETS =
|
|
8430
|
+
exports.DEFAULT_PRESETS = require_highlight.DEFAULT_PRESETS;
|
|
8423
8431
|
exports.DEFAULT_TIME_PRESETS = require_field_sidebar.DEFAULT_TIME_PRESETS;
|
|
8424
8432
|
exports.DashboardGrid = require_field_sidebar.DashboardGrid;
|
|
8425
8433
|
exports.DataImportWizard = DataImportWizard;
|
|
8426
8434
|
exports.DataTable = require_field_sidebar.DataTable;
|
|
8427
|
-
exports.DateRangePicker =
|
|
8435
|
+
exports.DateRangePicker = require_highlight.DateRangePicker;
|
|
8428
8436
|
exports.DeploymentTimeline = require_field_sidebar.DeploymentTimeline;
|
|
8429
8437
|
exports.DesignGuidePanel = DesignGuidePanel;
|
|
8430
|
-
exports.DialogBody =
|
|
8431
|
-
exports.DialogDescription =
|
|
8432
|
-
exports.DialogDisclosure =
|
|
8433
|
-
exports.DialogDismiss =
|
|
8434
|
-
exports.DialogFooter =
|
|
8435
|
-
exports.DialogHeader =
|
|
8436
|
-
exports.DialogHeading =
|
|
8437
|
-
exports.DialogPanel =
|
|
8438
|
-
exports.DialogRoot =
|
|
8439
|
-
exports.DisclosureContent =
|
|
8440
|
-
exports.DisclosureRoot =
|
|
8441
|
-
exports.DisclosureTrigger =
|
|
8438
|
+
exports.DialogBody = require_highlight.DialogBody;
|
|
8439
|
+
exports.DialogDescription = require_highlight.DialogDescription;
|
|
8440
|
+
exports.DialogDisclosure = require_highlight.DialogDisclosure;
|
|
8441
|
+
exports.DialogDismiss = require_highlight.DialogDismiss;
|
|
8442
|
+
exports.DialogFooter = require_highlight.DialogFooter;
|
|
8443
|
+
exports.DialogHeader = require_highlight.DialogHeader;
|
|
8444
|
+
exports.DialogHeading = require_highlight.DialogHeading;
|
|
8445
|
+
exports.DialogPanel = require_highlight.DialogPanel;
|
|
8446
|
+
exports.DialogRoot = require_highlight.DialogRoot;
|
|
8447
|
+
exports.DisclosureContent = require_highlight.DisclosureContent;
|
|
8448
|
+
exports.DisclosureRoot = require_highlight.DisclosureRoot;
|
|
8449
|
+
exports.DisclosureTrigger = require_highlight.DisclosureTrigger;
|
|
8442
8450
|
exports.DomainTable = require_field_sidebar.DomainTable;
|
|
8443
|
-
exports.DrawerClose =
|
|
8444
|
-
exports.DrawerPanel =
|
|
8445
|
-
exports.DrawerRoot =
|
|
8446
|
-
exports.DropdownContent =
|
|
8447
|
-
exports.DropdownItem =
|
|
8448
|
-
exports.DropdownMenu =
|
|
8449
|
-
exports.DropdownSeparator =
|
|
8450
|
-
exports.DropdownTrigger =
|
|
8451
|
+
exports.DrawerClose = require_key_pad_menu.DrawerClose;
|
|
8452
|
+
exports.DrawerPanel = require_key_pad_menu.DrawerPanel;
|
|
8453
|
+
exports.DrawerRoot = require_key_pad_menu.DrawerRoot;
|
|
8454
|
+
exports.DropdownContent = require_key_pad_menu.DropdownContent;
|
|
8455
|
+
exports.DropdownItem = require_key_pad_menu.DropdownItem;
|
|
8456
|
+
exports.DropdownMenu = require_key_pad_menu.DropdownMenu;
|
|
8457
|
+
exports.DropdownSeparator = require_key_pad_menu.DropdownSeparator;
|
|
8458
|
+
exports.DropdownTrigger = require_key_pad_menu.DropdownTrigger;
|
|
8451
8459
|
exports.DynamicFieldForm = DynamicFieldForm;
|
|
8452
8460
|
exports.EMPTY_QUERY = require_field_sidebar.EMPTY_QUERY;
|
|
8453
8461
|
exports.EditorToolbar = require_field_sidebar.EditorToolbar;
|
|
8454
|
-
exports.EmptyState =
|
|
8462
|
+
exports.EmptyState = require_highlight.EmptyState;
|
|
8455
8463
|
exports.EnvPanel = require_field_sidebar.EnvPanel;
|
|
8456
8464
|
exports.ErrorBoundary = ErrorBoundary;
|
|
8457
8465
|
exports.EventIcon = EventIcon;
|
|
@@ -8463,69 +8471,79 @@ Object.defineProperty(exports, "EventSparkline", {
|
|
|
8463
8471
|
}
|
|
8464
8472
|
});
|
|
8465
8473
|
exports.ExportButton = ExportButton;
|
|
8474
|
+
exports.Expression = require_key_pad_menu.Expression;
|
|
8475
|
+
exports.ExpressionGroup = require_key_pad_menu.ExpressionGroup;
|
|
8476
|
+
exports.FIELD_TYPE_TOKENS = require_highlight.FIELD_TYPE_TOKENS;
|
|
8466
8477
|
exports.FORCE_LIGHT_PRESETS = FORCE_LIGHT_PRESETS;
|
|
8467
8478
|
exports.FORCE_LIGHT_PRESET_IDS = FORCE_LIGHT_PRESET_IDS;
|
|
8479
|
+
exports.Facet = require_key_pad_menu.Facet;
|
|
8480
|
+
exports.FacetGroup = require_key_pad_menu.FacetGroup;
|
|
8468
8481
|
exports.FailureList = require_field_sidebar.FailureList;
|
|
8469
8482
|
exports.FaqAccordion = require_field_sidebar.FaqAccordion;
|
|
8470
8483
|
exports.FeatureFlagPanel = FeatureFlagPanel;
|
|
8471
8484
|
exports.FieldSidebar = require_field_sidebar.FieldSidebar;
|
|
8485
|
+
exports.FieldToken = require_highlight.FieldToken;
|
|
8472
8486
|
exports.FileUploadForm = FileUploadForm;
|
|
8473
8487
|
exports.FilterBar = FilterBar;
|
|
8474
8488
|
exports.FloatingActionBar = FloatingActionBar;
|
|
8475
|
-
exports.FormCheckbox =
|
|
8476
|
-
exports.FormColorPicker =
|
|
8477
|
-
exports.FormControl =
|
|
8478
|
-
exports.FormDateRangePicker =
|
|
8479
|
-
exports.FormDescription =
|
|
8480
|
-
exports.FormError =
|
|
8481
|
-
exports.FormField =
|
|
8482
|
-
exports.FormGroup =
|
|
8483
|
-
exports.FormGroupLabel =
|
|
8484
|
-
exports.FormIconPicker =
|
|
8485
|
-
exports.FormInput =
|
|
8486
|
-
exports.FormLabel =
|
|
8487
|
-
exports.FormNumberInput =
|
|
8488
|
-
exports.FormProvider =
|
|
8489
|
-
exports.FormPush =
|
|
8490
|
-
exports.FormRadio =
|
|
8491
|
-
exports.FormRadioGroup =
|
|
8492
|
-
exports.FormRemove =
|
|
8493
|
-
exports.FormReset =
|
|
8494
|
-
exports.FormRoot =
|
|
8495
|
-
exports.FormSelect =
|
|
8496
|
-
exports.FormSelectItem =
|
|
8497
|
-
exports.FormSelectPopover =
|
|
8498
|
-
exports.FormSlider =
|
|
8499
|
-
exports.FormStarRating =
|
|
8500
|
-
exports.FormSubmit =
|
|
8501
|
-
exports.FormSwitch =
|
|
8502
|
-
exports.FormTagInput =
|
|
8503
|
-
exports.FormTextarea =
|
|
8489
|
+
exports.FormCheckbox = require_highlight.FormCheckbox;
|
|
8490
|
+
exports.FormColorPicker = require_highlight.FormColorPicker;
|
|
8491
|
+
exports.FormControl = require_highlight.FormControl;
|
|
8492
|
+
exports.FormDateRangePicker = require_highlight.FormDateRangePicker;
|
|
8493
|
+
exports.FormDescription = require_highlight.FormDescription;
|
|
8494
|
+
exports.FormError = require_highlight.FormError;
|
|
8495
|
+
exports.FormField = require_highlight.FormField;
|
|
8496
|
+
exports.FormGroup = require_highlight.FormGroup;
|
|
8497
|
+
exports.FormGroupLabel = require_highlight.FormGroupLabel;
|
|
8498
|
+
exports.FormIconPicker = require_highlight.FormIconPicker;
|
|
8499
|
+
exports.FormInput = require_highlight.FormInput;
|
|
8500
|
+
exports.FormLabel = require_highlight.FormLabel;
|
|
8501
|
+
exports.FormNumberInput = require_highlight.FormNumberInput;
|
|
8502
|
+
exports.FormProvider = require_highlight.FormProvider;
|
|
8503
|
+
exports.FormPush = require_highlight.FormPush;
|
|
8504
|
+
exports.FormRadio = require_highlight.FormRadio;
|
|
8505
|
+
exports.FormRadioGroup = require_highlight.FormRadioGroup;
|
|
8506
|
+
exports.FormRemove = require_highlight.FormRemove;
|
|
8507
|
+
exports.FormReset = require_highlight.FormReset;
|
|
8508
|
+
exports.FormRoot = require_highlight.FormRoot;
|
|
8509
|
+
exports.FormSelect = require_highlight.FormSelect;
|
|
8510
|
+
exports.FormSelectItem = require_highlight.FormSelectItem;
|
|
8511
|
+
exports.FormSelectPopover = require_highlight.FormSelectPopover;
|
|
8512
|
+
exports.FormSlider = require_highlight.FormSlider;
|
|
8513
|
+
exports.FormStarRating = require_highlight.FormStarRating;
|
|
8514
|
+
exports.FormSubmit = require_highlight.FormSubmit;
|
|
8515
|
+
exports.FormSwitch = require_highlight.FormSwitch;
|
|
8516
|
+
exports.FormTagInput = require_highlight.FormTagInput;
|
|
8517
|
+
exports.FormTextarea = require_highlight.FormTextarea;
|
|
8504
8518
|
exports.GENERATED_THEME_ID_DEFAULT = GENERATED_THEME_ID_DEFAULT;
|
|
8505
8519
|
exports.GLOBAL_THEME_STYLE_ID = GLOBAL_THEME_STYLE_ID;
|
|
8506
|
-
exports.Heading =
|
|
8507
|
-
exports.
|
|
8520
|
+
exports.Heading = require_key_pad_menu.Heading;
|
|
8521
|
+
exports.Highlight = require_highlight.Highlight;
|
|
8522
|
+
exports.IconPicker = require_highlight.IconPicker;
|
|
8523
|
+
exports.InlineEdit = require_key_pad_menu.InlineEdit;
|
|
8508
8524
|
exports.InlineEditTable = InlineEditTable;
|
|
8509
|
-
exports.Input =
|
|
8525
|
+
exports.Input = require_highlight.Input;
|
|
8510
8526
|
exports.InsightsPanel = InsightsPanel;
|
|
8511
8527
|
exports.KanbanBoard = KanbanBoard;
|
|
8512
|
-
exports.Kbd =
|
|
8528
|
+
exports.Kbd = require_highlight.Kbd;
|
|
8529
|
+
exports.KeyPadMenu = require_key_pad_menu.KeyPadMenu;
|
|
8513
8530
|
exports.KeyValueEditor = require_field_sidebar.KeyValueEditor;
|
|
8514
|
-
exports.
|
|
8531
|
+
exports.LiveRegion = require_key_pad_menu.LiveRegion;
|
|
8532
|
+
exports.LoadingOverlay = require_key_pad_menu.LoadingOverlay;
|
|
8515
8533
|
exports.LogTable = require_field_sidebar.LogTable;
|
|
8516
|
-
exports.Logo =
|
|
8534
|
+
exports.Logo = require_key_pad_menu.Logo;
|
|
8517
8535
|
exports.MegaMenu = MegaMenu;
|
|
8518
|
-
exports.MenuButtonArrow =
|
|
8519
|
-
exports.MenuItem =
|
|
8520
|
-
exports.MenuItemCheckbox =
|
|
8521
|
-
exports.MenuItemRadio =
|
|
8522
|
-
exports.MenuPopover =
|
|
8523
|
-
exports.MenuRoot =
|
|
8524
|
-
exports.MenuSeparator =
|
|
8525
|
-
exports.MenuTrigger =
|
|
8526
|
-
exports.MenubarContainer =
|
|
8527
|
-
exports.MenubarRoot =
|
|
8528
|
-
exports.Meter =
|
|
8536
|
+
exports.MenuButtonArrow = require_highlight.MenuButtonArrow;
|
|
8537
|
+
exports.MenuItem = require_highlight.MenuItem;
|
|
8538
|
+
exports.MenuItemCheckbox = require_highlight.MenuItemCheckbox;
|
|
8539
|
+
exports.MenuItemRadio = require_highlight.MenuItemRadio;
|
|
8540
|
+
exports.MenuPopover = require_highlight.MenuPopover;
|
|
8541
|
+
exports.MenuRoot = require_highlight.MenuRoot;
|
|
8542
|
+
exports.MenuSeparator = require_highlight.MenuSeparator;
|
|
8543
|
+
exports.MenuTrigger = require_highlight.MenuTrigger;
|
|
8544
|
+
exports.MenubarContainer = require_highlight.MenubarContainer;
|
|
8545
|
+
exports.MenubarRoot = require_highlight.MenubarRoot;
|
|
8546
|
+
exports.Meter = require_key_pad_menu.Meter;
|
|
8529
8547
|
Object.defineProperty(exports, "MetricsCard", {
|
|
8530
8548
|
enumerable: true,
|
|
8531
8549
|
get: function() {
|
|
@@ -8534,29 +8552,29 @@ Object.defineProperty(exports, "MetricsCard", {
|
|
|
8534
8552
|
});
|
|
8535
8553
|
exports.NotificationCenter = NotificationCenter;
|
|
8536
8554
|
exports.NotificationToast = require_field_sidebar.NotificationToast;
|
|
8537
|
-
exports.NumberInput =
|
|
8538
|
-
exports.OPT_TEXT_PRIMARY =
|
|
8539
|
-
exports.OPT_TEXT_SECONDARY =
|
|
8555
|
+
exports.NumberInput = require_highlight.NumberInput;
|
|
8556
|
+
exports.OPT_TEXT_PRIMARY = require_highlight.OPT_TEXT_PRIMARY;
|
|
8557
|
+
exports.OPT_TEXT_SECONDARY = require_highlight.OPT_TEXT_SECONDARY;
|
|
8540
8558
|
exports.OptThemeControllerContext = OptThemeControllerContext;
|
|
8541
8559
|
exports.OptThemeProvider = OptThemeProvider;
|
|
8542
|
-
exports.OtpField =
|
|
8560
|
+
exports.OtpField = require_key_pad_menu.OtpField;
|
|
8543
8561
|
exports.POPULAR_ICONS = POPULAR_ICONS;
|
|
8544
8562
|
exports.PageAside = PageAside;
|
|
8545
|
-
exports.PageHeader =
|
|
8546
|
-
exports.Pagination =
|
|
8547
|
-
exports.PopoverClose =
|
|
8548
|
-
exports.PopoverContent =
|
|
8549
|
-
exports.PopoverRoot =
|
|
8550
|
-
exports.PopoverTrigger =
|
|
8551
|
-
exports.Progress =
|
|
8563
|
+
exports.PageHeader = require_key_pad_menu.PageHeader;
|
|
8564
|
+
exports.Pagination = require_highlight.Pagination;
|
|
8565
|
+
exports.PopoverClose = require_highlight.PopoverClose;
|
|
8566
|
+
exports.PopoverContent = require_highlight.PopoverContent;
|
|
8567
|
+
exports.PopoverRoot = require_highlight.PopoverRoot;
|
|
8568
|
+
exports.PopoverTrigger = require_highlight.PopoverTrigger;
|
|
8569
|
+
exports.Progress = require_key_pad_menu.Progress;
|
|
8552
8570
|
exports.ProjectSwitcher = require_field_sidebar.ProjectSwitcher;
|
|
8553
8571
|
exports.PromptTemplate = PromptTemplate;
|
|
8554
8572
|
exports.PropertyExplorer = PropertyExplorer;
|
|
8555
8573
|
exports.QueryBar = require_field_sidebar.QueryBar;
|
|
8556
8574
|
exports.QueryResultsTable = QueryResultsTable;
|
|
8557
8575
|
exports.QuickActions = QuickActions;
|
|
8558
|
-
exports.Radio =
|
|
8559
|
-
exports.RadioGroup =
|
|
8576
|
+
exports.Radio = require_key_pad_menu.Radio;
|
|
8577
|
+
exports.RadioGroup = require_key_pad_menu.RadioGroup;
|
|
8560
8578
|
exports.ReportBuilder = ReportBuilder;
|
|
8561
8579
|
Object.defineProperty(exports, "ReportWidget", {
|
|
8562
8580
|
enumerable: true,
|
|
@@ -8564,75 +8582,77 @@ Object.defineProperty(exports, "ReportWidget", {
|
|
|
8564
8582
|
return _reopt_ai_opt_charts.ReportWidget;
|
|
8565
8583
|
}
|
|
8566
8584
|
});
|
|
8567
|
-
exports.ResizableHandle =
|
|
8568
|
-
exports.ResizablePanel =
|
|
8569
|
-
exports.ResizablePanelGroup =
|
|
8585
|
+
exports.ResizableHandle = require_key_pad_menu.ResizableHandle;
|
|
8586
|
+
exports.ResizablePanel = require_key_pad_menu.ResizablePanel;
|
|
8587
|
+
exports.ResizablePanelGroup = require_key_pad_menu.ResizablePanelGroup;
|
|
8570
8588
|
exports.RichTextEditor = RichTextEditor;
|
|
8571
8589
|
exports.RouteFocusManager = RouteFocusManager;
|
|
8572
|
-
exports.SHADER_OVERLAY_PARAM_KEYS =
|
|
8573
|
-
exports.SHADER_PARAM_FALLBACK =
|
|
8574
|
-
exports.SHADER_PARAM_KEYS =
|
|
8575
|
-
exports.SHADER_PRESETS =
|
|
8576
|
-
exports.SHADER_PRESET_IDS =
|
|
8590
|
+
exports.SHADER_OVERLAY_PARAM_KEYS = require_key_pad_menu.SHADER_OVERLAY_PARAM_KEYS;
|
|
8591
|
+
exports.SHADER_PARAM_FALLBACK = require_key_pad_menu.SHADER_PARAM_FALLBACK;
|
|
8592
|
+
exports.SHADER_PARAM_KEYS = require_key_pad_menu.SHADER_PARAM_KEYS;
|
|
8593
|
+
exports.SHADER_PRESETS = require_key_pad_menu.SHADER_PRESETS;
|
|
8594
|
+
exports.SHADER_PRESET_IDS = require_key_pad_menu.SHADER_PRESET_IDS;
|
|
8577
8595
|
exports.SavedFilters = SavedFilters;
|
|
8578
|
-
exports.ScrollArea =
|
|
8596
|
+
exports.ScrollArea = require_key_pad_menu.ScrollArea;
|
|
8579
8597
|
exports.SearchCombobox = require_field_sidebar.SearchCombobox;
|
|
8580
|
-
exports.Section =
|
|
8598
|
+
exports.Section = require_key_pad_menu.Section;
|
|
8581
8599
|
exports.SegmentBuilder = SegmentBuilder;
|
|
8582
|
-
exports.SelectItem =
|
|
8583
|
-
exports.SelectLabel =
|
|
8584
|
-
exports.SelectPopover =
|
|
8585
|
-
exports.SelectRoot =
|
|
8586
|
-
exports.SelectTrigger =
|
|
8587
|
-
exports.Separator =
|
|
8600
|
+
exports.SelectItem = require_highlight.SelectItem;
|
|
8601
|
+
exports.SelectLabel = require_highlight.SelectLabel;
|
|
8602
|
+
exports.SelectPopover = require_highlight.SelectPopover;
|
|
8603
|
+
exports.SelectRoot = require_highlight.SelectRoot;
|
|
8604
|
+
exports.SelectTrigger = require_highlight.SelectTrigger;
|
|
8605
|
+
exports.Separator = require_key_pad_menu.Separator;
|
|
8588
8606
|
exports.SettingsForm = require_field_sidebar.SettingsForm;
|
|
8589
|
-
exports.ShaderSurface =
|
|
8607
|
+
exports.ShaderSurface = require_key_pad_menu.ShaderSurface;
|
|
8590
8608
|
exports.Sidebar = Sidebar;
|
|
8591
8609
|
exports.SidebarNav = require_field_sidebar.SidebarNav;
|
|
8592
|
-
exports.Skeleton =
|
|
8593
|
-
exports.SkeletonAvatar =
|
|
8594
|
-
exports.SkeletonCard =
|
|
8595
|
-
exports.SkeletonTable =
|
|
8596
|
-
exports.SkeletonText =
|
|
8597
|
-
exports.Slider =
|
|
8610
|
+
exports.Skeleton = require_key_pad_menu.Skeleton;
|
|
8611
|
+
exports.SkeletonAvatar = require_key_pad_menu.SkeletonAvatar;
|
|
8612
|
+
exports.SkeletonCard = require_key_pad_menu.SkeletonCard;
|
|
8613
|
+
exports.SkeletonTable = require_key_pad_menu.SkeletonTable;
|
|
8614
|
+
exports.SkeletonText = require_key_pad_menu.SkeletonText;
|
|
8615
|
+
exports.Slider = require_highlight.Slider;
|
|
8598
8616
|
exports.SpatialNavProvider = SpatialNavProvider;
|
|
8599
|
-
exports.Spinner =
|
|
8617
|
+
exports.Spinner = require_highlight.Spinner;
|
|
8600
8618
|
exports.SqlEditor = SqlEditor;
|
|
8601
|
-
exports.StarRating =
|
|
8602
|
-
exports.StatCard =
|
|
8619
|
+
exports.StarRating = require_highlight.StarRating;
|
|
8620
|
+
exports.StatCard = require_highlight.StatCard;
|
|
8603
8621
|
exports.StatusSelect = require_field_sidebar.StatusSelect;
|
|
8604
|
-
exports.StepBuilder =
|
|
8622
|
+
exports.StepBuilder = require_key_pad_menu.StepBuilder;
|
|
8605
8623
|
exports.SummaryRow = SummaryRow;
|
|
8606
|
-
exports.SurfaceLayout =
|
|
8607
|
-
exports.Switch =
|
|
8624
|
+
exports.SurfaceLayout = require_key_pad_menu.BlockLayout;
|
|
8625
|
+
exports.Switch = require_key_pad_menu.Switch;
|
|
8626
|
+
exports.THEME_PALETTES = require_key_pad_menu.THEME_PALETTES;
|
|
8608
8627
|
exports.THEME_PRESET_IDS = THEME_PRESET_IDS;
|
|
8609
8628
|
exports.THEME_REGISTRY = THEME_REGISTRY;
|
|
8610
8629
|
exports.THEME_SPEC_STORAGE_KEY = THEME_SPEC_STORAGE_KEY;
|
|
8611
8630
|
exports.THEME_TOKENS_STORAGE_KEY = THEME_TOKENS_STORAGE_KEY;
|
|
8612
|
-
exports.Tab =
|
|
8613
|
-
exports.TabList =
|
|
8614
|
-
exports.TabPanel =
|
|
8615
|
-
exports.TabsRoot =
|
|
8616
|
-
exports.TagInput =
|
|
8631
|
+
exports.Tab = require_highlight.Tab;
|
|
8632
|
+
exports.TabList = require_highlight.TabList;
|
|
8633
|
+
exports.TabPanel = require_highlight.TabPanel;
|
|
8634
|
+
exports.TabsRoot = require_highlight.TabsRoot;
|
|
8635
|
+
exports.TagInput = require_highlight.TagInput;
|
|
8617
8636
|
exports.TaskList = TaskList;
|
|
8618
8637
|
exports.TeamMemberList = TeamMemberList;
|
|
8619
8638
|
exports.TemplatePicker = TemplatePicker;
|
|
8620
|
-
exports.Text =
|
|
8621
|
-
exports.
|
|
8639
|
+
exports.Text = require_key_pad_menu.Text;
|
|
8640
|
+
exports.TextTruncate = require_key_pad_menu.TextTruncate;
|
|
8641
|
+
exports.Textarea = require_key_pad_menu.Textarea;
|
|
8622
8642
|
exports.ThemeSwitcher = ThemeSwitcher;
|
|
8623
8643
|
exports.TimeRangeControl = require_field_sidebar.TimeRangeControl;
|
|
8624
8644
|
exports.TimeRangeSelector = TimeRangeSelector;
|
|
8625
8645
|
exports.TimeSeriesPanel = require_field_sidebar.TimeSeriesPanel;
|
|
8626
8646
|
exports.ToastProvider = require_field_sidebar.ToastProvider;
|
|
8627
|
-
exports.Toggle =
|
|
8628
|
-
exports.ToggleGroup =
|
|
8629
|
-
exports.ToolbarButton =
|
|
8630
|
-
exports.ToolbarContainer =
|
|
8631
|
-
exports.ToolbarRoot =
|
|
8632
|
-
exports.ToolbarSeparator =
|
|
8633
|
-
exports.Tooltip =
|
|
8634
|
-
exports.TooltipAnchor =
|
|
8635
|
-
exports.TooltipProvider =
|
|
8647
|
+
exports.Toggle = require_key_pad_menu.Toggle;
|
|
8648
|
+
exports.ToggleGroup = require_key_pad_menu.ToggleGroup;
|
|
8649
|
+
exports.ToolbarButton = require_highlight.ToolbarButton;
|
|
8650
|
+
exports.ToolbarContainer = require_highlight.ToolbarContainer;
|
|
8651
|
+
exports.ToolbarRoot = require_highlight.ToolbarRoot;
|
|
8652
|
+
exports.ToolbarSeparator = require_highlight.ToolbarSeparator;
|
|
8653
|
+
exports.Tooltip = require_highlight.Tooltip;
|
|
8654
|
+
exports.TooltipAnchor = require_highlight.TooltipAnchor;
|
|
8655
|
+
exports.TooltipProvider = require_highlight.TooltipProvider;
|
|
8636
8656
|
exports.TreeTable = TreeTable;
|
|
8637
8657
|
Object.defineProperty(exports, "TrendChart", {
|
|
8638
8658
|
enumerable: true,
|
|
@@ -8641,7 +8661,7 @@ Object.defineProperty(exports, "TrendChart", {
|
|
|
8641
8661
|
}
|
|
8642
8662
|
});
|
|
8643
8663
|
exports.VerticalTabs = VerticalTabs;
|
|
8644
|
-
exports.VirtualList =
|
|
8664
|
+
exports.VirtualList = require_key_pad_menu.VirtualList;
|
|
8645
8665
|
exports.WebhookConfig = WebhookConfig;
|
|
8646
8666
|
exports.WidgetGrid = WidgetGrid;
|
|
8647
8667
|
exports.WizardForm = WizardForm;
|
|
@@ -8649,12 +8669,12 @@ exports.WorkflowCanvas = require_field_sidebar.WorkflowCanvas;
|
|
|
8649
8669
|
exports.addClause = require_field_sidebar.addClause;
|
|
8650
8670
|
exports.applyCellAction = require_field_sidebar.applyCellAction;
|
|
8651
8671
|
exports.buildTokenCache = buildTokenCache;
|
|
8652
|
-
exports.cn =
|
|
8672
|
+
exports.cn = require_highlight.cn;
|
|
8653
8673
|
exports.coerceThemeMode = coerceThemeMode;
|
|
8654
8674
|
exports.computeGeneratedTokens = computeGeneratedTokens;
|
|
8655
8675
|
exports.computeSpatialTargets = computeSpatialTargets;
|
|
8656
|
-
exports.createBlock =
|
|
8657
|
-
exports.createSurface =
|
|
8676
|
+
exports.createBlock = require_key_pad_menu.createBlock;
|
|
8677
|
+
exports.createSurface = require_key_pad_menu.createBlock;
|
|
8658
8678
|
exports.createThemeBootScript = createThemeBootScript;
|
|
8659
8679
|
exports.defineThemeOverrides = defineThemeOverrides;
|
|
8660
8680
|
exports.describeClause = require_field_sidebar.describeClause;
|
|
@@ -8663,16 +8683,16 @@ exports.enComboboxLabels = enComboboxLabels;
|
|
|
8663
8683
|
exports.enStarRatingLabels = enStarRatingLabels;
|
|
8664
8684
|
exports.fieldValues = require_field_sidebar.fieldValues;
|
|
8665
8685
|
exports.formatClause = require_field_sidebar.formatClause;
|
|
8666
|
-
exports.formatOptDateTime =
|
|
8667
|
-
exports.formatOptNumber =
|
|
8668
|
-
exports.formatOptShortDate =
|
|
8669
|
-
exports.formatOptTime =
|
|
8686
|
+
exports.formatOptDateTime = require_key_pad_menu.formatOptDateTime;
|
|
8687
|
+
exports.formatOptNumber = require_key_pad_menu.formatOptNumber;
|
|
8688
|
+
exports.formatOptShortDate = require_key_pad_menu.formatOptShortDate;
|
|
8689
|
+
exports.formatOptTime = require_key_pad_menu.formatOptTime;
|
|
8670
8690
|
exports.formatQuery = require_field_sidebar.formatQuery;
|
|
8671
8691
|
exports.generatedTheme = generatedTheme;
|
|
8672
8692
|
exports.getCompoundIdForSpec = getCompoundIdForSpec;
|
|
8673
8693
|
exports.getCompoundTheme = getCompoundTheme;
|
|
8674
|
-
exports.getShaderFragment =
|
|
8675
|
-
exports.getShaderPreset =
|
|
8694
|
+
exports.getShaderFragment = require_key_pad_menu.getShaderFragment;
|
|
8695
|
+
exports.getShaderPreset = require_key_pad_menu.getShaderPreset;
|
|
8676
8696
|
exports.getThemeDescriptor = getThemeDescriptor;
|
|
8677
8697
|
exports.getTrappedContextRole = getTrappedContextRole;
|
|
8678
8698
|
exports.isDescriptorSpec = isDescriptorSpec;
|
|
@@ -8681,9 +8701,9 @@ exports.isForceLightSpec = isForceLightSpec;
|
|
|
8681
8701
|
exports.isGeneratedSpec = isGeneratedSpec;
|
|
8682
8702
|
exports.isPresetSpec = isPresetSpec;
|
|
8683
8703
|
exports.isThemePresetId = isThemePresetId;
|
|
8684
|
-
exports.koBreadcrumbLabels =
|
|
8685
|
-
exports.koComboboxLabels =
|
|
8686
|
-
exports.koStarRatingLabels =
|
|
8704
|
+
exports.koBreadcrumbLabels = require_highlight.koBreadcrumbLabels;
|
|
8705
|
+
exports.koComboboxLabels = require_highlight.koComboboxLabels;
|
|
8706
|
+
exports.koStarRatingLabels = require_highlight.koStarRatingLabels;
|
|
8687
8707
|
exports.matchesQuery = matchesQuery;
|
|
8688
8708
|
exports.matchesQueryObject = matchesQueryObject;
|
|
8689
8709
|
exports.parseQuery = require_field_sidebar.parseQuery;
|
|
@@ -8694,6 +8714,7 @@ exports.quoteValue = require_field_sidebar.quoteValue;
|
|
|
8694
8714
|
exports.readStoredTheme = readStoredTheme;
|
|
8695
8715
|
exports.removeClause = require_field_sidebar.removeClause;
|
|
8696
8716
|
exports.resolveDescriptor = resolveDescriptor;
|
|
8717
|
+
exports.resolveFieldType = require_highlight.resolveFieldType;
|
|
8697
8718
|
exports.resolveThemeMode = resolveThemeMode;
|
|
8698
8719
|
exports.safeParseStoredSpec = safeParseStoredSpec;
|
|
8699
8720
|
exports.safeParseStoredTokens = safeParseStoredTokens;
|
|
@@ -8704,11 +8725,11 @@ exports.serializeTokenBody = serializeTokenBody;
|
|
|
8704
8725
|
exports.shouldSkipArrow = shouldSkipArrow;
|
|
8705
8726
|
exports.toast = require_field_sidebar.toast;
|
|
8706
8727
|
exports.useAutoRefresh = require_field_sidebar.useAutoRefresh;
|
|
8707
|
-
exports.useControlledState =
|
|
8728
|
+
exports.useControlledState = require_highlight.useControlledState;
|
|
8708
8729
|
exports.useFieldValue = _reopt_ai_opt_ui_primitives.useFieldValue;
|
|
8709
8730
|
exports.useFormContext = _reopt_ai_opt_ui_primitives.useFormContext;
|
|
8710
8731
|
exports.useFormStore = _reopt_ai_opt_ui_primitives.useFormStore;
|
|
8711
|
-
exports.useInputId =
|
|
8732
|
+
exports.useInputId = require_highlight.useInputId;
|
|
8712
8733
|
exports.useOptTheme = useOptTheme;
|
|
8713
8734
|
exports.useOptThemeController = useOptThemeController;
|
|
8714
8735
|
exports.useOptionalOptTheme = useOptionalOptTheme;
|