@reopt-ai/opt-ui 1.12.1 → 1.12.3
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 +32 -30
- package/README.md +6 -1
- package/dist/core/index.cjs +2 -2
- package/dist/core/index.js +2 -2
- package/dist/docs/02-components/01-core.md +7 -7
- package/dist/docs/02-components/02-visuals.md +1 -1
- package/dist/docs/02-components/03-shells.md +26 -24
- package/dist/docs/02-components/04-surfaces.md +1 -1
- package/dist/docs/02-components/index.md +1 -1
- package/dist/{field-sidebar-uXmoyvd7.d.cts → field-sidebar-BdP0-TMs.d.cts} +26 -1
- package/dist/{field-sidebar-CrYlRZew.d.ts → field-sidebar-CHs8eEzs.d.ts} +26 -1
- package/dist/{field-sidebar-oa6zOmcd.cjs → field-sidebar-CQSlweP0.cjs} +42 -31
- package/dist/{field-sidebar-zkkqC7__.js → field-sidebar-DJKWQQeu.js} +42 -31
- package/dist/index.cjs +47 -18
- package/dist/index.d.cts +21 -6
- package/dist/index.d.ts +21 -6
- package/dist/index.js +47 -18
- package/dist/{key-pad-menu-SItoHPLu.cjs → key-pad-menu-1YN221Oi.cjs} +1 -1
- package/dist/{key-pad-menu-Di2aRGbM.js → key-pad-menu-CUiQ-vKw.js} +1 -1
- package/dist/meta.cjs +28 -14
- package/dist/meta.js +28 -14
- package/dist/query.cjs +19 -6
- package/dist/query.js +19 -6
- 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/dist/{text-truncate-DSuZECy0.js → text-truncate-BFWd2cE_.js} +116 -116
- package/dist/{text-truncate-I1XLWmRa.cjs → text-truncate-DsG5UAOY.cjs} +115 -115
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const require_text_truncate = require("./text-truncate-
|
|
4
|
-
const require_key_pad_menu = require("./key-pad-menu-
|
|
5
|
-
const require_field_sidebar = require("./field-sidebar-
|
|
3
|
+
const require_text_truncate = require("./text-truncate-DsG5UAOY.cjs");
|
|
4
|
+
const require_key_pad_menu = require("./key-pad-menu-1YN221Oi.cjs");
|
|
5
|
+
const require_field_sidebar = require("./field-sidebar-CQSlweP0.cjs");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let react = require("react");
|
|
8
8
|
react = require_text_truncate.__toESM(react, 1);
|
|
@@ -79,7 +79,10 @@ function Callout(_ref) {
|
|
|
79
79
|
let { tone = "info", title, icon, action, size = "md", className, children } = _ref, props = require_text_truncate._objectWithoutProperties(_ref, _excluded$2);
|
|
80
80
|
const DefaultIcon = defaultIcons[tone];
|
|
81
81
|
const glyph = icon === void 0 ? DefaultIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DefaultIcon, { "aria-hidden": "true" }) : null : icon;
|
|
82
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", require_text_truncate._objectSpread2(require_text_truncate._objectSpread2({
|
|
82
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", require_text_truncate._objectSpread2(require_text_truncate._objectSpread2({
|
|
83
|
+
role: "status",
|
|
84
|
+
className: require_text_truncate.cn("flex items-start rounded-lg border", toneStyles[tone], sizeStyles$3[size], className)
|
|
85
|
+
}, props), {}, {
|
|
83
86
|
"data-opt-id": "AT7TX",
|
|
84
87
|
"data-opt-slug": "callout.Callout",
|
|
85
88
|
"data-tone": tone,
|
|
@@ -149,6 +152,10 @@ const dotSize = {
|
|
|
149
152
|
* The dot is decorative on purpose. It never carries meaning the text does not
|
|
150
153
|
* also carry, so the component cannot be used to say something in colour alone.
|
|
151
154
|
*
|
|
155
|
+
* Without a `hint` this renders one span and nothing else: a table repeats this
|
|
156
|
+
* on every row, and a tooltip's provider, listeners and floating context are
|
|
157
|
+
* not a cost worth paying hundreds of times for rows that have nothing to say.
|
|
158
|
+
*
|
|
152
159
|
* @example
|
|
153
160
|
* ```tsx
|
|
154
161
|
* <StatusDot tone="warning" hint="7일 이상 수신되지 않음">비활성</StatusDot>
|
|
@@ -156,9 +163,9 @@ const dotSize = {
|
|
|
156
163
|
*/
|
|
157
164
|
function StatusDot(_ref) {
|
|
158
165
|
let { tone = "neutral", size = "md", hint, className, children } = _ref, props = require_text_truncate._objectWithoutProperties(_ref, _excluded$1);
|
|
159
|
-
|
|
160
|
-
className: require_text_truncate.cn("inline-flex items-center whitespace-nowrap", sizeStyles$2[size], textTone[tone], className),
|
|
161
|
-
|
|
166
|
+
const dot = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", require_text_truncate._objectSpread2(require_text_truncate._objectSpread2({
|
|
167
|
+
className: require_text_truncate.cn("inline-flex items-center whitespace-nowrap", sizeStyles$2[size], textTone[tone], hint && "focus-visible:ring-ring rounded-sm outline-none focus-visible:ring-2", className),
|
|
168
|
+
tabIndex: hint ? 0 : void 0
|
|
162
169
|
}, props), {}, {
|
|
163
170
|
"data-opt-id": "N51AT",
|
|
164
171
|
"data-opt-slug": "status-dot.StatusDot",
|
|
@@ -168,6 +175,8 @@ function StatusDot(_ref) {
|
|
|
168
175
|
"aria-hidden": "true"
|
|
169
176
|
}), children]
|
|
170
177
|
}));
|
|
178
|
+
if (!hint) return dot;
|
|
179
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_text_truncate.TooltipProvider, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_text_truncate.TooltipAnchor, { render: dot }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_text_truncate.Tooltip, { children: hint })] });
|
|
171
180
|
}
|
|
172
181
|
//#endregion
|
|
173
182
|
//#region src/core/copy-button.tsx
|
|
@@ -336,7 +345,7 @@ function SegmentedControl({ options, value, onChange, size = "md", fullWidth = f
|
|
|
336
345
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.Radio, {
|
|
337
346
|
value: option.value,
|
|
338
347
|
disabled: itemDisabled,
|
|
339
|
-
className: "
|
|
348
|
+
className: "absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0"
|
|
340
349
|
}),
|
|
341
350
|
option.icon,
|
|
342
351
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: option.label }),
|
|
@@ -2069,7 +2078,7 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
|
|
|
2069
2078
|
const resolvedColor = (color === null || color === void 0 ? void 0 : color.trim()) ? color : void 0;
|
|
2070
2079
|
const iconEntry = typeof icon === "string" ? require_text_truncate.getIconRegistryEntry(icon) : void 0;
|
|
2071
2080
|
const iconElement = react.isValidElement(icon) ? icon : null;
|
|
2072
|
-
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;
|
|
2081
|
+
const ariaLabel = typeof icon === "string" && icon !== "" ? `${labels.eventLabelPrefix}: ${(_iconEntry$label = iconEntry === null || iconEntry === void 0 ? void 0 : iconEntry.label) !== null && _iconEntry$label !== void 0 ? _iconEntry$label : icon}` : labels.defaultAriaLabel;
|
|
2073
2082
|
let iconContent;
|
|
2074
2083
|
if (iconEntry) iconContent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(iconEntry.Icon, {
|
|
2075
2084
|
"aria-hidden": true,
|
|
@@ -2985,6 +2994,7 @@ const defaultLabels$21 = {
|
|
|
2985
2994
|
displayNamePlaceholder: "Page View",
|
|
2986
2995
|
descriptionPlaceholder: "Triggered when a user views a page",
|
|
2987
2996
|
tagsPlaceholder: "Add tag...",
|
|
2997
|
+
iconPlaceholder: "Select icon",
|
|
2988
2998
|
emptyTagsMessage: "No tags added yet."
|
|
2989
2999
|
};
|
|
2990
3000
|
/** Renders the event meta editor component. */
|
|
@@ -2999,7 +3009,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
2999
3009
|
onChange(require_text_truncate._objectSpread2(require_text_truncate._objectSpread2({}, value), partial));
|
|
3000
3010
|
};
|
|
3001
3011
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3002
|
-
className: require_text_truncate.cn("gap-group flex flex-col", className),
|
|
3012
|
+
className: require_text_truncate.cn("@container gap-group flex flex-col", className),
|
|
3003
3013
|
"data-opt-id": "EZR35",
|
|
3004
3014
|
"data-opt-slug": "event-meta-editor.EventMetaEditor",
|
|
3005
3015
|
children: [
|
|
@@ -3013,6 +3023,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3013
3023
|
value: value.icon,
|
|
3014
3024
|
onChange: (icon) => update({ icon }),
|
|
3015
3025
|
icons,
|
|
3026
|
+
placeholder: labels.iconPlaceholder,
|
|
3016
3027
|
"aria-label": labels.icon
|
|
3017
3028
|
})] }),
|
|
3018
3029
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -3034,7 +3045,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3034
3045
|
]
|
|
3035
3046
|
}),
|
|
3036
3047
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3037
|
-
className: "gap-group grid grid-cols-2",
|
|
3048
|
+
className: "gap-group grid grid-cols-1 @sm:grid-cols-2",
|
|
3038
3049
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
3039
3050
|
htmlFor: nameId,
|
|
3040
3051
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
@@ -3044,7 +3055,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3044
3055
|
value: value.name,
|
|
3045
3056
|
onChange: (e) => update({ name: e.target.value }),
|
|
3046
3057
|
placeholder: labels.namePlaceholder,
|
|
3047
|
-
className: "font-mono"
|
|
3058
|
+
className: "font-mono",
|
|
3059
|
+
fullWidth: true
|
|
3048
3060
|
})] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
3049
3061
|
htmlFor: displayNameId,
|
|
3050
3062
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
@@ -3053,7 +3065,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3053
3065
|
id: displayNameId,
|
|
3054
3066
|
value: value.displayName,
|
|
3055
3067
|
onChange: (e) => update({ displayName: e.target.value }),
|
|
3056
|
-
placeholder: labels.displayNamePlaceholder
|
|
3068
|
+
placeholder: labels.displayNamePlaceholder,
|
|
3069
|
+
fullWidth: true
|
|
3057
3070
|
})] })]
|
|
3058
3071
|
}),
|
|
3059
3072
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
@@ -3064,7 +3077,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3064
3077
|
id: descriptionId,
|
|
3065
3078
|
value: value.description,
|
|
3066
3079
|
onChange: (e) => update({ description: e.target.value }),
|
|
3067
|
-
placeholder: labels.descriptionPlaceholder
|
|
3080
|
+
placeholder: labels.descriptionPlaceholder,
|
|
3081
|
+
fullWidth: true
|
|
3068
3082
|
})] }),
|
|
3069
3083
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
3070
3084
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -4478,6 +4492,19 @@ function toText(value) {
|
|
|
4478
4492
|
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
4479
4493
|
return JSON.stringify(value);
|
|
4480
4494
|
}
|
|
4495
|
+
/**
|
|
4496
|
+
* The values one field holds, as a list.
|
|
4497
|
+
*
|
|
4498
|
+
* A clause names a single value, so an array field has to be read element by
|
|
4499
|
+
* element: `tag:pay` asks whether *any* tag is `pay`, not whether the whole
|
|
4500
|
+
* list stringifies to it — and `toText` on an array produces `["pay","cart"]`,
|
|
4501
|
+
* which no user ever types. Scalars read as a list of one so both shapes take
|
|
4502
|
+
* the same path, and negation stays where it already is: `matchesQuery` flips
|
|
4503
|
+
* the result, so `-tag:pay` correctly means "no element matches".
|
|
4504
|
+
*/
|
|
4505
|
+
function readValues(value) {
|
|
4506
|
+
return Array.isArray(value) ? value : [value];
|
|
4507
|
+
}
|
|
4481
4508
|
function compare(left, right) {
|
|
4482
4509
|
const leftNumber = typeof left === "number" ? left : Number(toText(left));
|
|
4483
4510
|
const rightNumber = Number(right);
|
|
@@ -4488,9 +4515,9 @@ function matchesClause(clause, read, searchable) {
|
|
|
4488
4515
|
if (clause.type === "term") return searchable().toLowerCase().includes(clause.value.toLowerCase());
|
|
4489
4516
|
const value = read(clause.field);
|
|
4490
4517
|
switch (clause.operator) {
|
|
4491
|
-
case "exists": return value !== void 0 &&
|
|
4492
|
-
case "eq": return clause.values.some((candidate) =>
|
|
4493
|
-
case "contains": return clause.values.some((candidate) =>
|
|
4518
|
+
case "exists": return readValues(value).some((item) => item !== void 0 && item !== null && item !== "");
|
|
4519
|
+
case "eq": return clause.values.some((candidate) => readValues(value).some((item) => toText(item).toLowerCase() === candidate.toLowerCase()));
|
|
4520
|
+
case "contains": return clause.values.some((candidate) => readValues(value).some((item) => toText(item).toLowerCase().includes(candidate.toLowerCase())));
|
|
4494
4521
|
case "gt":
|
|
4495
4522
|
var _clause$values$;
|
|
4496
4523
|
return compare(value, (_clause$values$ = clause.values[0]) !== null && _clause$values$ !== void 0 ? _clause$values$ : "") > 0;
|
|
@@ -4526,7 +4553,7 @@ function matchesQueryObject(query, row, options = {}) {
|
|
|
4526
4553
|
let cached = null;
|
|
4527
4554
|
const searchable = () => {
|
|
4528
4555
|
var _cached;
|
|
4529
|
-
(_cached = cached) !== null && _cached !== void 0 || (cached = [...Object.values(row).
|
|
4556
|
+
(_cached = cached) !== null && _cached !== void 0 || (cached = [...Object.values(row).flatMap((value) => Array.isArray(value) ? value.filter((item) => typeof item !== "object") : typeof value === "object" ? [] : [value]), ...Object.values(nested !== null && nested !== void 0 ? nested : {})].map(toText).join(" "));
|
|
4530
4557
|
return cached;
|
|
4531
4558
|
};
|
|
4532
4559
|
return matchesQuery(query, read, searchable);
|
|
@@ -4852,6 +4879,7 @@ function CatalogCellControls({ children }) {
|
|
|
4852
4879
|
});
|
|
4853
4880
|
}
|
|
4854
4881
|
const defaultLabels$13 = {
|
|
4882
|
+
closeInspector: "Close panel",
|
|
4855
4883
|
emptyTitle: "아직 아무것도 없습니다",
|
|
4856
4884
|
emptyDescription: "데이터가 도착하면 여기에 나타납니다.",
|
|
4857
4885
|
filteredEmptyTitle: "조건에 맞는 항목이 없습니다",
|
|
@@ -4951,6 +4979,7 @@ function CatalogFrame({ children, isEmpty, query, onQueryChange, filters, stats,
|
|
|
4951
4979
|
actions: inspectorActions,
|
|
4952
4980
|
footer: inspectorFooter,
|
|
4953
4981
|
width: inspectorWidth,
|
|
4982
|
+
labels: { close: labels.closeInspector },
|
|
4954
4983
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
4955
4984
|
className: "gap-group flex flex-col",
|
|
4956
4985
|
children: [body, onPageChange && totalCount != null && totalCount > pageSize && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_text_truncate.Pagination, {
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { $ as DrawerSize, $i as CardTitle, $n as StarRating, $r as TabPanelProps, $t as FormColorPickerProps, A as ShaderSurfaceHandle, Aa as SeparatorProps, Ai as SkeletonText, An as FormSwitch, Ar as AlertDialogPanelProps, At as CheckboxGroupProps, B as ShaderPresetCategory, Ba as Kbd, Bi as BadgeProps, Bn as DEFAULT_PRESETS, Br as DialogHeading, Bt as PopoverRoot, C as Facet, Ca as Toggle, Ci as Textarea, Cn as FormSelectPopover, Cr as ComboboxGroup, Ct as BlockLayoutProps, D as FacetItem, Da as OtpField, Di as SkeletonCard, Dn as FormStarRating, Dr as ComboboxPopover, Dt as RadioProps, E as FacetGroupProps, Ea as ToggleProps, Ei as SkeletonAvatar, En as FormSliderProps, Er as ComboboxItem, Et as RadioGroupProps, F as SHADER_PRESETS, Fa as Text, Fi as Alert, Fn as FormTextareaProps, Fr as DialogDismiss, Ft as DropdownSeparator, G as VirtualListProps, Gi as CardContentProps, Gn as DateRangePreset, Gr as SelectLabel, Gt as ConditionGroup, H as getShaderFragment, Hi as ButtonProps, Hn as DateRange, Hr as DialogRoot, Ht as ConditionBuilder, I as SHADER_PRESET_IDS, Ia as TextElement, Ii as AlertProps, In as useFieldValue, Ir as DialogFooter, It as DropdownTrigger, J as DrawerClose, Ji as CardFooter, Jn as IconDef, Jr as SelectTrigger, Jt as StepBuilder, K as Pagination, Ki as CardDescription, Kn as TagInput, Kr as SelectPopover, Kt as ConditionOperator, L as ShaderParamKey, La as TextProps, Li as Spinner, Ln as useFormContext, Lr as DialogFooterProps, Lt as PopoverClose, M as SHADER_OVERLAY_PARAM_KEYS, Ma as HeadingLevel, Mi as SwitchProps, Mn as FormTagInput, Mr as DialogBodyProps, Mt as DropdownContent, N as SHADER_PARAM_FALLBACK, Na as HeadingProps, Ni as Input, Nn as FormTagInputProps, Nr as DialogDescription, Nt as DropdownItem, O as FacetProps, Oa as OtpFieldProps, Oi as SkeletonProps, On as FormStarRatingProps, Or as ComboboxRoot, Ot as Checkbox, P as SHADER_PARAM_KEYS, Pa as HeadingRole, Pi as InputProps, Pn as FormTextarea, Pr as DialogDisclosure, Pt as DropdownMenu, Q as DrawerSide, Qi as CardProps, Qn as ColorPickerProps, Qr as TabPanel, Qt as FormColorPicker, R as ShaderParamSpec, Ra as TextRole, Ri as SpinnerProps, Rn as useFormStore, Rr as DialogHeader, Rt as PopoverContent, S as ExpressionTone, Sa as PrimAccordionTriggerProps, Si as AvatarProps, Sn as FormSelectItem, Sr as ComboboxEmpty, St as BlockLayout, T as FacetGroupLabels, Ta as ToggleGroupProps, Ti as Skeleton, Tn as FormSlider, Tr as ComboboxInput, Tt as RadioGroup, U as getShaderPreset, Ui as Card, Un as DateRangePicker, Ur as DialogSize, Ut as ConditionBuilderProps, V as ShaderPresetId, Va as KbdProps, Vi as Button, Vn as DateGranularity, Vr as DialogPanel, Vt as PopoverTrigger, W as VirtualList, Wi as CardContent, Wn as DateRangePickerProps, Wr as SelectItem, Wt as ConditionDef, X as DrawerPanelProps, Xi as CardHeader, Xn as IconPickerProps, Xr as TabList, Xt as StepDef, Y as DrawerPanel, Yi as CardFooterProps, Yn as IconPicker, Yr as Tab, Yt as StepBuilderProps, Z as DrawerRoot, Zi as CardHeaderProps, Zn as ColorPicker, Zr as TabListProps, Zt as FormCheckbox, _ as HighlightProps, _a as AccordionRoot, _i as Progress, _n as FormRadioGroup, _r as MenuRoot, _t as ScrollAreaProps, a as InlineEditLabels, aa as DescriptionListLabels, ai as DisclosureContent, an as FormField, ar as ToolbarButton, at as PanelSize, b as ExpressionGroupProps, ba as PrimAccordionContentProps, bi as AvatarGroup, bn as FormRoot, br as MenubarContainer, bt as BlockBaseProps, c as ColorPaletteDisplay, ca as EmptyStateAction, ci as Composite, cn as FormIconPicker, cr as ToolbarSeparator, ct as ResizablePanel, d as ColorPalettePickerProps, da as BreadcrumbItem, di as CompositeRow, dn as FormLabel, dr as TooltipProvider, dt as ResizablePanelProps, ea as CardTitleProps, ei as TabProps, en as FormControl, er as StarRatingProps, et as Logo, f as PaletteKind, fa as BreadcrumbProps, fi as CompositeZone, fn as FormNumberInput, fr as MenuButtonArrow, ft as Section, g as Highlight, ga as AccordionItem, gi as CircularProgressProps, gn as FormRadio, gr as MenuPopover, gt as ScrollArea, h as LiveRegionProps, ha as AccordionContent, hi as CircularProgress, hn as FormPush, hr as MenuItemRadio, ht as ContainerProps, i as InlineEdit, ia as DescriptionListItem, ii as TabsVariant, in as FormError, ir as NumberInputProps, it as PanelImperativeHandle, j as ShaderSurfaceProps, ja as Heading, ji as Switch, jn as FormSwitchProps, jr as DialogBody, jt as CheckboxProps, k as ShaderSurface, ka as Separator, ki as SkeletonTable, kn as FormSubmit, kr as AlertDialogPanel, kt as CheckboxGroup, l as ColorPaletteDisplayProps, la as EmptyStateProps, li as CompositeItem, ln as FormIconPickerProps, lr as Tooltip, lt as ResizablePanelGroup, m as LiveRegion, ma as StatCardProps, mi as MeterProps, mn as FormProvider, mr as MenuItemCheckbox, mt as Container, n as KeyPadMenu, na as IdentityProps, ni as TabsRoot, nn as FormDateRangePickerProps, nr as SliderProps, nt as GroupImperativeHandle, o as InlineEditProps, oa as DescriptionListProps, oi as DisclosureRoot, on as FormGroup, or as ToolbarContainer, ot as ResizableHandle, p as THEME_PALETTES, pa as StatCard, pi as Meter, pn as FormNumberInputProps, pr as MenuItem, pt as SectionProps, q as PaginationProps, qi as CardDescriptionProps, qn as TagInputProps, qr as SelectRoot, qt as ConditionTypeRenderer, r as KeyPadMenuProps, ra as DescriptionList, ri as TabsRootProps, rn as FormDescription, rr as NumberInput, rt as Layout, s as ColorPalette, sa as EmptyState, si as DisclosureTrigger, sn as FormGroupLabel, sr as ToolbarRoot, st as ResizableHandleProps, t as KeyPadItem, ta as Identity, ti as TabStatus, tn as FormDateRangePicker, tr as Slider, tt as LogoProps, u as ColorPalettePicker, ua as Breadcrumb, ui as CompositeProvider, un as FormInput, ur as TooltipAnchor, ut as ResizablePanelGroupProps, v as Expression, va as AccordionRootProps, vi as ProgressProps, vn as FormRemove, vr as MenuSeparator, vt as PageHeader, w as FacetGroup, wa as ToggleGroup, wi as TextareaProps, wn as FormSelectProps, wr as ComboboxGroupLabel, wt as Radio, x as ExpressionProps, xa as PrimAccordionItemProps, xi as AvatarGroupProps, xn as FormSelect, xr as MenubarRoot, xt as createBlock, y as ExpressionGroup, ya as AccordionTrigger, yi as Avatar, yn as FormReset, yr as MenuTrigger, yt as PageHeaderProps, z as ShaderPreset, za as TextTone, zi as Badge, zn as ComparisonMode, zr as DialogHeaderProps, zt as PopoverContentProps } from "./key-pad-menu-CwcY_Vps.cjs";
|
|
3
3
|
import { A as FilterGroupDef, B as StatCard$1, C as DomainDef, D as ExportFormat, E as ExportColumn, F as NavItem, G as TimePreset, H as TableColumn, I as NavItemDef, K as ToastOptions, L as ProjectDef, M as FormFieldDef, N as MenuDef, O as FailureItem, P as MenuItemDef, R as QuickActionDef, S as DeploymentStep, T as EnvVarDef, U as TaskDef, V as TabDef, W as TeamMemberDef, _ as ChatConversationDef, a as FieldDataType, b as ChatStylePresetDef, c as FieldTokenLegendProps, d as ActivityDef, f as BranchDef, g as ChartSeriesDef, h as ChartMargin, i as FIELD_TYPE_TOKENS, j as FilterOption, k as FaqItem, l as FieldTokenProps, m as ChartDataPoint, n as TextTruncateProps, o as FieldToken, p as ChartConfig, q as ToolbarButtonDef, r as TruncationSide, s as FieldTokenLegend, t as TextTruncate, u as resolveFieldType, v as ChatMessageDef, w as EnvGroupDef, x as CommandDef, y as ChatModelDef, z as SelectOption } from "./text-truncate-CQyfUZvq.cjs";
|
|
4
|
-
import { $ as EventTimelineItem, $t as DashboardGridProps, A as QueryCellAction, At as EnvPanel, B as removeClause, Bt as ContentTabs, C as TimeRangePreset, Ct as ColumnDef, D as QueryField, Dt as DomainTableProps, E as QueryBarProps, Et as DomainTable, F as addClause, Ft as DeploymentTimelineProps, G as FlyoutProps, Gt as SidebarNavProps, H as withoutField, Ht as EditorToolbar, I as applyCellAction, It as SettingsForm, J as ScoreBreakdown, Jt as StatusSelect, K as ScoreAxis, Kt as AppMenubar, L as fieldValues, Lt as SettingsFormProps, M as QueryFieldClause, Mt as ProjectSwitcher, N as QueryOperator, Nt as ProjectSwitcherProps, O as EMPTY_QUERY, Ot as BranchSelect, P as QueryTermClause, Pt as DeploymentTimeline, Q as EventTimelineGroup, Qt as DashboardGrid, R as isEmptyQuery, Rt as FaqAccordion, S as TimeRangeControlProps, St as useToast, T as QueryBarLabels, Tt as DataTableProps, U as Flyout, Ut as EditorToolbarProps, V as withFieldValue, Vt as ContentTabsProps, W as FlyoutLabels, Wt as SidebarNav, X as ScoreBreakdownProps, Xt as SearchCombobox, Y as ScoreBreakdownLabels, Yt as StatusSelectProps, Z as EventTimeline, Zt as SearchComboboxProps, _ as TimeSeriesPanelProps, _t as ToastMessage, a as FieldValueCount, at as WorkflowCanvasProps, b as TimeRangeControl, bt as ToastVariant, c as LogColumnPriority, ct as KeyValueEditorLabels, d as LogTable, dt as FailureList, en as CommandPaletteTrigger, et as EventTimelineLabels, f as LogTableHandle, ft as FailureListLabels, g as TimeSeriesPanelLabels, gt as ToastContextValue, h as TimeSeriesPanel, ht as ToastAction, i as FieldSummary, it as WorkflowCanvasConnection, j as QueryClause, jt as EnvPanelProps, k as Query, kt as BranchSelectProps, l as LogDensity, lt as KeyValueEditorProps, m as LogTableProps, mt as NotificationToast, n as FieldSidebarLabels, nn as CommandPalette, nt as EventTimelineTone, o as LogCellAction, ot as WorkflowCanvasStep, p as LogTableLabels, pt as FailureListProps, q as ScoreBand, qt as AppMenubarProps, r as FieldSidebarProps, rn as CommandPaletteProps, rt as WorkflowCanvas, s as LogColumn, st as KeyValueEditor, t as FieldSidebar, tn as CommandPaletteTriggerProps, tt as EventTimelineProps, u as LogSort, ut as KeyValueEntry, v as DEFAULT_TIME_PRESETS, vt as ToastProvider, w as QueryBar, wt as DataTable, x as TimeRangeControlLabels, xt as toast, y as RefreshSetting, yt as ToastProviderProps, z as queryFields, zt as FaqAccordionProps } from "./field-sidebar-
|
|
4
|
+
import { $ as EventTimelineItem, $t as DashboardGridProps, A as QueryCellAction, At as EnvPanel, B as removeClause, Bt as ContentTabs, C as TimeRangePreset, Ct as ColumnDef, D as QueryField, Dt as DomainTableProps, E as QueryBarProps, Et as DomainTable, F as addClause, Ft as DeploymentTimelineProps, G as FlyoutProps, Gt as SidebarNavProps, H as withoutField, Ht as EditorToolbar, I as applyCellAction, It as SettingsForm, J as ScoreBreakdown, Jt as StatusSelect, K as ScoreAxis, Kt as AppMenubar, L as fieldValues, Lt as SettingsFormProps, M as QueryFieldClause, Mt as ProjectSwitcher, N as QueryOperator, Nt as ProjectSwitcherProps, O as EMPTY_QUERY, Ot as BranchSelect, P as QueryTermClause, Pt as DeploymentTimeline, Q as EventTimelineGroup, Qt as DashboardGrid, R as isEmptyQuery, Rt as FaqAccordion, S as TimeRangeControlProps, St as useToast, T as QueryBarLabels, Tt as DataTableProps, U as Flyout, Ut as EditorToolbarProps, V as withFieldValue, Vt as ContentTabsProps, W as FlyoutLabels, Wt as SidebarNav, X as ScoreBreakdownProps, Xt as SearchCombobox, Y as ScoreBreakdownLabels, Yt as StatusSelectProps, Z as EventTimeline, Zt as SearchComboboxProps, _ as TimeSeriesPanelProps, _t as ToastMessage, a as FieldValueCount, at as WorkflowCanvasProps, b as TimeRangeControl, bt as ToastVariant, c as LogColumnPriority, ct as KeyValueEditorLabels, d as LogTable, dt as FailureList, en as CommandPaletteTrigger, et as EventTimelineLabels, f as LogTableHandle, ft as FailureListLabels, g as TimeSeriesPanelLabels, gt as ToastContextValue, h as TimeSeriesPanel, ht as ToastAction, i as FieldSummary, it as WorkflowCanvasConnection, j as QueryClause, jt as EnvPanelProps, k as Query, kt as BranchSelectProps, l as LogDensity, lt as KeyValueEditorProps, m as LogTableProps, mt as NotificationToast, n as FieldSidebarLabels, nn as CommandPalette, nt as EventTimelineTone, o as LogCellAction, ot as WorkflowCanvasStep, p as LogTableLabels, pt as FailureListProps, q as ScoreBand, qt as AppMenubarProps, r as FieldSidebarProps, rn as CommandPaletteProps, rt as WorkflowCanvas, s as LogColumn, st as KeyValueEditor, t as FieldSidebar, tn as CommandPaletteTriggerProps, tt as EventTimelineProps, u as LogSort, ut as KeyValueEntry, v as DEFAULT_TIME_PRESETS, vt as ToastProvider, w as QueryBar, wt as DataTable, x as TimeRangeControlLabels, xt as toast, y as RefreshSetting, yt as ToastProviderProps, z as queryFields, zt as FaqAccordionProps } from "./field-sidebar-BdP0-TMs.cjs";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { Component, ComponentPropsWithoutRef, ErrorInfo, ReactNode } from "react";
|
|
7
7
|
import { CommandEmptyProps, CommandGroupProps, CommandInputProps as CommandInputProps$1, CommandItemProps, CommandListProps, CommandRootProps, CommandSeparatorProps, FormErrors, FormErrors as FormErrors$1, FormStoreInstance, FormStoreOptions, ValidateOn } from "@reopt-ai/opt-ui-primitives";
|
|
@@ -64,12 +64,13 @@ interface StatusDotProps extends Omit<ComponentPropsWithoutRef<"span">, "childre
|
|
|
64
64
|
*/
|
|
65
65
|
children: ReactNode;
|
|
66
66
|
/**
|
|
67
|
-
* How the state was decided
|
|
67
|
+
* How the state was decided.
|
|
68
68
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
69
|
+
* Shown in a tooltip that opens on hover and on keyboard focus, so the rule
|
|
70
|
+
* is reachable without a pointer. Giving a hint makes the dot a tab stop —
|
|
71
|
+
* the only way a keyboard reader can reach it — so it is still a bonus for
|
|
72
|
+
* the curious rather than the only place a rule lives: if knowing the rule is
|
|
73
|
+
* required to act, put it in text beside the status instead.
|
|
73
74
|
*/
|
|
74
75
|
hint?: string;
|
|
75
76
|
}
|
|
@@ -84,6 +85,10 @@ interface StatusDotProps extends Omit<ComponentPropsWithoutRef<"span">, "childre
|
|
|
84
85
|
* The dot is decorative on purpose. It never carries meaning the text does not
|
|
85
86
|
* also carry, so the component cannot be used to say something in colour alone.
|
|
86
87
|
*
|
|
88
|
+
* Without a `hint` this renders one span and nothing else: a table repeats this
|
|
89
|
+
* on every row, and a tooltip's provider, listeners and floating context are
|
|
90
|
+
* not a cost worth paying hundreds of times for rows that have nothing to say.
|
|
91
|
+
*
|
|
87
92
|
* @example
|
|
88
93
|
* ```tsx
|
|
89
94
|
* <StatusDot tone="warning" hint="7일 이상 수신되지 않음">비활성</StatusDot>
|
|
@@ -1024,6 +1029,8 @@ interface EventMetaEditorLabels {
|
|
|
1024
1029
|
displayNamePlaceholder?: string;
|
|
1025
1030
|
descriptionPlaceholder?: string;
|
|
1026
1031
|
tagsPlaceholder?: string;
|
|
1032
|
+
/** The icon picker's own empty text. Forwarded, so one `labels` covers the pane. */
|
|
1033
|
+
iconPlaceholder?: string;
|
|
1027
1034
|
emptyTagsMessage?: string;
|
|
1028
1035
|
}
|
|
1029
1036
|
/** Renders the event meta editor component. */
|
|
@@ -1619,6 +1626,14 @@ declare function CatalogCellControls({ children }: {
|
|
|
1619
1626
|
}): import("react").JSX.Element;
|
|
1620
1627
|
/** Localized strings for the catalog frame. */
|
|
1621
1628
|
interface CatalogFrameLabels {
|
|
1629
|
+
/**
|
|
1630
|
+
* The inspector's close button.
|
|
1631
|
+
*
|
|
1632
|
+
* The frame renders the inspector, so a caller who localizes this frame has
|
|
1633
|
+
* no other way to reach it — it was the one English word left in a
|
|
1634
|
+
* translated catalogue.
|
|
1635
|
+
*/
|
|
1636
|
+
closeInspector?: string;
|
|
1622
1637
|
emptyTitle?: string;
|
|
1623
1638
|
emptyDescription?: string;
|
|
1624
1639
|
filteredEmptyTitle?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { $ as DrawerSize, $i as CardTitle, $n as StarRating, $r as TabPanelProps, $t as FormColorPickerProps, A as ShaderSurfaceHandle, Aa as SeparatorProps, Ai as SkeletonText, An as FormSwitch, Ar as AlertDialogPanelProps, At as CheckboxGroupProps, B as ShaderPresetCategory, Ba as Kbd, Bi as BadgeProps, Bn as DEFAULT_PRESETS, Br as DialogHeading, Bt as PopoverRoot, C as Facet, Ca as Toggle, Ci as Textarea, Cn as FormSelectPopover, Cr as ComboboxGroup, Ct as BlockLayoutProps, D as FacetItem, Da as OtpField, Di as SkeletonCard, Dn as FormStarRating, Dr as ComboboxPopover, Dt as RadioProps, E as FacetGroupProps, Ea as ToggleProps, Ei as SkeletonAvatar, En as FormSliderProps, Er as ComboboxItem, Et as RadioGroupProps, F as SHADER_PRESETS, Fa as Text, Fi as Alert, Fn as FormTextareaProps, Fr as DialogDismiss, Ft as DropdownSeparator, G as VirtualListProps, Gi as CardContentProps, Gn as DateRangePreset, Gr as SelectLabel, Gt as ConditionGroup, H as getShaderFragment, Hi as ButtonProps, Hn as DateRange, Hr as DialogRoot, Ht as ConditionBuilder, I as SHADER_PRESET_IDS, Ia as TextElement, Ii as AlertProps, In as useFieldValue, Ir as DialogFooter, It as DropdownTrigger, J as DrawerClose, Ji as CardFooter, Jn as IconDef, Jr as SelectTrigger, Jt as StepBuilder, K as Pagination, Ki as CardDescription, Kn as TagInput, Kr as SelectPopover, Kt as ConditionOperator, L as ShaderParamKey, La as TextProps, Li as Spinner, Ln as useFormContext, Lr as DialogFooterProps, Lt as PopoverClose, M as SHADER_OVERLAY_PARAM_KEYS, Ma as HeadingLevel, Mi as SwitchProps, Mn as FormTagInput, Mr as DialogBodyProps, Mt as DropdownContent, N as SHADER_PARAM_FALLBACK, Na as HeadingProps, Ni as Input, Nn as FormTagInputProps, Nr as DialogDescription, Nt as DropdownItem, O as FacetProps, Oa as OtpFieldProps, Oi as SkeletonProps, On as FormStarRatingProps, Or as ComboboxRoot, Ot as Checkbox, P as SHADER_PARAM_KEYS, Pa as HeadingRole, Pi as InputProps, Pn as FormTextarea, Pr as DialogDisclosure, Pt as DropdownMenu, Q as DrawerSide, Qi as CardProps, Qn as ColorPickerProps, Qr as TabPanel, Qt as FormColorPicker, R as ShaderParamSpec, Ra as TextRole, Ri as SpinnerProps, Rn as useFormStore, Rr as DialogHeader, Rt as PopoverContent, S as ExpressionTone, Sa as PrimAccordionTriggerProps, Si as AvatarProps, Sn as FormSelectItem, Sr as ComboboxEmpty, St as BlockLayout, T as FacetGroupLabels, Ta as ToggleGroupProps, Ti as Skeleton, Tn as FormSlider, Tr as ComboboxInput, Tt as RadioGroup, U as getShaderPreset, Ui as Card, Un as DateRangePicker, Ur as DialogSize, Ut as ConditionBuilderProps, V as ShaderPresetId, Va as KbdProps, Vi as Button, Vn as DateGranularity, Vr as DialogPanel, Vt as PopoverTrigger, W as VirtualList, Wi as CardContent, Wn as DateRangePickerProps, Wr as SelectItem, Wt as ConditionDef, X as DrawerPanelProps, Xi as CardHeader, Xn as IconPickerProps, Xr as TabList, Xt as StepDef, Y as DrawerPanel, Yi as CardFooterProps, Yn as IconPicker, Yr as Tab, Yt as StepBuilderProps, Z as DrawerRoot, Zi as CardHeaderProps, Zn as ColorPicker, Zr as TabListProps, Zt as FormCheckbox, _ as HighlightProps, _a as AccordionRoot, _i as Progress, _n as FormRadioGroup, _r as MenuRoot, _t as ScrollAreaProps, a as InlineEditLabels, aa as DescriptionListLabels, ai as DisclosureContent, an as FormField, ar as ToolbarButton, at as PanelSize, b as ExpressionGroupProps, ba as PrimAccordionContentProps, bi as AvatarGroup, bn as FormRoot, br as MenubarContainer, bt as BlockBaseProps, c as ColorPaletteDisplay, ca as EmptyStateAction, ci as Composite, cn as FormIconPicker, cr as ToolbarSeparator, ct as ResizablePanel, d as ColorPalettePickerProps, da as BreadcrumbItem, di as CompositeRow, dn as FormLabel, dr as TooltipProvider, dt as ResizablePanelProps, ea as CardTitleProps, ei as TabProps, en as FormControl, er as StarRatingProps, et as Logo, f as PaletteKind, fa as BreadcrumbProps, fi as CompositeZone, fn as FormNumberInput, fr as MenuButtonArrow, ft as Section, g as Highlight, ga as AccordionItem, gi as CircularProgressProps, gn as FormRadio, gr as MenuPopover, gt as ScrollArea, h as LiveRegionProps, ha as AccordionContent, hi as CircularProgress, hn as FormPush, hr as MenuItemRadio, ht as ContainerProps, i as InlineEdit, ia as DescriptionListItem, ii as TabsVariant, in as FormError, ir as NumberInputProps, it as PanelImperativeHandle, j as ShaderSurfaceProps, ja as Heading, ji as Switch, jn as FormSwitchProps, jr as DialogBody, jt as CheckboxProps, k as ShaderSurface, ka as Separator, ki as SkeletonTable, kn as FormSubmit, kr as AlertDialogPanel, kt as CheckboxGroup, l as ColorPaletteDisplayProps, la as EmptyStateProps, li as CompositeItem, ln as FormIconPickerProps, lr as Tooltip, lt as ResizablePanelGroup, m as LiveRegion, ma as StatCardProps, mi as MeterProps, mn as FormProvider, mr as MenuItemCheckbox, mt as Container, n as KeyPadMenu, na as IdentityProps, ni as TabsRoot, nn as FormDateRangePickerProps, nr as SliderProps, nt as GroupImperativeHandle, o as InlineEditProps, oa as DescriptionListProps, oi as DisclosureRoot, on as FormGroup, or as ToolbarContainer, ot as ResizableHandle, p as THEME_PALETTES, pa as StatCard, pi as Meter, pn as FormNumberInputProps, pr as MenuItem, pt as SectionProps, q as PaginationProps, qi as CardDescriptionProps, qn as TagInputProps, qr as SelectRoot, qt as ConditionTypeRenderer, r as KeyPadMenuProps, ra as DescriptionList, ri as TabsRootProps, rn as FormDescription, rr as NumberInput, rt as Layout, s as ColorPalette, sa as EmptyState, si as DisclosureTrigger, sn as FormGroupLabel, sr as ToolbarRoot, st as ResizableHandleProps, t as KeyPadItem, ta as Identity, ti as TabStatus, tn as FormDateRangePicker, tr as Slider, tt as LogoProps, u as ColorPalettePicker, ua as Breadcrumb, ui as CompositeProvider, un as FormInput, ur as TooltipAnchor, ut as ResizablePanelGroupProps, v as Expression, va as AccordionRootProps, vi as ProgressProps, vn as FormRemove, vr as MenuSeparator, vt as PageHeader, w as FacetGroup, wa as ToggleGroup, wi as TextareaProps, wn as FormSelectProps, wr as ComboboxGroupLabel, wt as Radio, x as ExpressionProps, xa as PrimAccordionItemProps, xi as AvatarGroupProps, xn as FormSelect, xr as MenubarRoot, xt as createBlock, y as ExpressionGroup, ya as AccordionTrigger, yi as Avatar, yn as FormReset, yr as MenuTrigger, yt as PageHeaderProps, z as ShaderPreset, za as TextTone, zi as Badge, zn as ComparisonMode, zr as DialogHeaderProps, zt as PopoverContentProps } from "./key-pad-menu-WBJShCJn.js";
|
|
3
3
|
import { A as FilterGroupDef, B as StatCard$1, C as DomainDef, D as ExportFormat, E as ExportColumn, F as NavItem, G as TimePreset, H as TableColumn, I as NavItemDef, K as ToastOptions, L as ProjectDef, M as FormFieldDef, N as MenuDef, O as FailureItem, P as MenuItemDef, R as QuickActionDef, S as DeploymentStep, T as EnvVarDef, U as TaskDef, V as TabDef, W as TeamMemberDef, _ as ChatConversationDef, a as FieldDataType, b as ChatStylePresetDef, c as FieldTokenLegendProps, d as ActivityDef, f as BranchDef, g as ChartSeriesDef, h as ChartMargin, i as FIELD_TYPE_TOKENS, j as FilterOption, k as FaqItem, l as FieldTokenProps, m as ChartDataPoint, n as TextTruncateProps, o as FieldToken, p as ChartConfig, q as ToolbarButtonDef, r as TruncationSide, s as FieldTokenLegend, t as TextTruncate, u as resolveFieldType, v as ChatMessageDef, w as EnvGroupDef, x as CommandDef, y as ChatModelDef, z as SelectOption } from "./text-truncate-CQyfUZvq.js";
|
|
4
|
-
import { $ as EventTimelineItem, $t as DashboardGridProps, A as QueryCellAction, At as EnvPanel, B as removeClause, Bt as ContentTabs, C as TimeRangePreset, Ct as ColumnDef, D as QueryField, Dt as DomainTableProps, E as QueryBarProps, Et as DomainTable, F as addClause, Ft as DeploymentTimelineProps, G as FlyoutProps, Gt as SidebarNavProps, H as withoutField, Ht as EditorToolbar, I as applyCellAction, It as SettingsForm, J as ScoreBreakdown, Jt as StatusSelect, K as ScoreAxis, Kt as AppMenubar, L as fieldValues, Lt as SettingsFormProps, M as QueryFieldClause, Mt as ProjectSwitcher, N as QueryOperator, Nt as ProjectSwitcherProps, O as EMPTY_QUERY, Ot as BranchSelect, P as QueryTermClause, Pt as DeploymentTimeline, Q as EventTimelineGroup, Qt as DashboardGrid, R as isEmptyQuery, Rt as FaqAccordion, S as TimeRangeControlProps, St as useToast, T as QueryBarLabels, Tt as DataTableProps, U as Flyout, Ut as EditorToolbarProps, V as withFieldValue, Vt as ContentTabsProps, W as FlyoutLabels, Wt as SidebarNav, X as ScoreBreakdownProps, Xt as SearchCombobox, Y as ScoreBreakdownLabels, Yt as StatusSelectProps, Z as EventTimeline, Zt as SearchComboboxProps, _ as TimeSeriesPanelProps, _t as ToastMessage, a as FieldValueCount, at as WorkflowCanvasProps, b as TimeRangeControl, bt as ToastVariant, c as LogColumnPriority, ct as KeyValueEditorLabels, d as LogTable, dt as FailureList, en as CommandPaletteTrigger, et as EventTimelineLabels, f as LogTableHandle, ft as FailureListLabels, g as TimeSeriesPanelLabels, gt as ToastContextValue, h as TimeSeriesPanel, ht as ToastAction, i as FieldSummary, it as WorkflowCanvasConnection, j as QueryClause, jt as EnvPanelProps, k as Query, kt as BranchSelectProps, l as LogDensity, lt as KeyValueEditorProps, m as LogTableProps, mt as NotificationToast, n as FieldSidebarLabels, nn as CommandPalette, nt as EventTimelineTone, o as LogCellAction, ot as WorkflowCanvasStep, p as LogTableLabels, pt as FailureListProps, q as ScoreBand, qt as AppMenubarProps, r as FieldSidebarProps, rn as CommandPaletteProps, rt as WorkflowCanvas, s as LogColumn, st as KeyValueEditor, t as FieldSidebar, tn as CommandPaletteTriggerProps, tt as EventTimelineProps, u as LogSort, ut as KeyValueEntry, v as DEFAULT_TIME_PRESETS, vt as ToastProvider, w as QueryBar, wt as DataTable, x as TimeRangeControlLabels, xt as toast, y as RefreshSetting, yt as ToastProviderProps, z as queryFields, zt as FaqAccordionProps } from "./field-sidebar-
|
|
4
|
+
import { $ as EventTimelineItem, $t as DashboardGridProps, A as QueryCellAction, At as EnvPanel, B as removeClause, Bt as ContentTabs, C as TimeRangePreset, Ct as ColumnDef, D as QueryField, Dt as DomainTableProps, E as QueryBarProps, Et as DomainTable, F as addClause, Ft as DeploymentTimelineProps, G as FlyoutProps, Gt as SidebarNavProps, H as withoutField, Ht as EditorToolbar, I as applyCellAction, It as SettingsForm, J as ScoreBreakdown, Jt as StatusSelect, K as ScoreAxis, Kt as AppMenubar, L as fieldValues, Lt as SettingsFormProps, M as QueryFieldClause, Mt as ProjectSwitcher, N as QueryOperator, Nt as ProjectSwitcherProps, O as EMPTY_QUERY, Ot as BranchSelect, P as QueryTermClause, Pt as DeploymentTimeline, Q as EventTimelineGroup, Qt as DashboardGrid, R as isEmptyQuery, Rt as FaqAccordion, S as TimeRangeControlProps, St as useToast, T as QueryBarLabels, Tt as DataTableProps, U as Flyout, Ut as EditorToolbarProps, V as withFieldValue, Vt as ContentTabsProps, W as FlyoutLabels, Wt as SidebarNav, X as ScoreBreakdownProps, Xt as SearchCombobox, Y as ScoreBreakdownLabels, Yt as StatusSelectProps, Z as EventTimeline, Zt as SearchComboboxProps, _ as TimeSeriesPanelProps, _t as ToastMessage, a as FieldValueCount, at as WorkflowCanvasProps, b as TimeRangeControl, bt as ToastVariant, c as LogColumnPriority, ct as KeyValueEditorLabels, d as LogTable, dt as FailureList, en as CommandPaletteTrigger, et as EventTimelineLabels, f as LogTableHandle, ft as FailureListLabels, g as TimeSeriesPanelLabels, gt as ToastContextValue, h as TimeSeriesPanel, ht as ToastAction, i as FieldSummary, it as WorkflowCanvasConnection, j as QueryClause, jt as EnvPanelProps, k as Query, kt as BranchSelectProps, l as LogDensity, lt as KeyValueEditorProps, m as LogTableProps, mt as NotificationToast, n as FieldSidebarLabels, nn as CommandPalette, nt as EventTimelineTone, o as LogCellAction, ot as WorkflowCanvasStep, p as LogTableLabels, pt as FailureListProps, q as ScoreBand, qt as AppMenubarProps, r as FieldSidebarProps, rn as CommandPaletteProps, rt as WorkflowCanvas, s as LogColumn, st as KeyValueEditor, t as FieldSidebar, tn as CommandPaletteTriggerProps, tt as EventTimelineProps, u as LogSort, ut as KeyValueEntry, v as DEFAULT_TIME_PRESETS, vt as ToastProvider, w as QueryBar, wt as DataTable, x as TimeRangeControlLabels, xt as toast, y as RefreshSetting, yt as ToastProviderProps, z as queryFields, zt as FaqAccordionProps } from "./field-sidebar-CHs8eEzs.js";
|
|
5
5
|
import { ClassValue } from "clsx";
|
|
6
6
|
import * as React$1 from "react";
|
|
7
7
|
import { Component, ComponentPropsWithoutRef, ErrorInfo, ReactNode } from "react";
|
|
@@ -64,12 +64,13 @@ interface StatusDotProps extends Omit<ComponentPropsWithoutRef<"span">, "childre
|
|
|
64
64
|
*/
|
|
65
65
|
children: ReactNode;
|
|
66
66
|
/**
|
|
67
|
-
* How the state was decided
|
|
67
|
+
* How the state was decided.
|
|
68
68
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
69
|
+
* Shown in a tooltip that opens on hover and on keyboard focus, so the rule
|
|
70
|
+
* is reachable without a pointer. Giving a hint makes the dot a tab stop —
|
|
71
|
+
* the only way a keyboard reader can reach it — so it is still a bonus for
|
|
72
|
+
* the curious rather than the only place a rule lives: if knowing the rule is
|
|
73
|
+
* required to act, put it in text beside the status instead.
|
|
73
74
|
*/
|
|
74
75
|
hint?: string;
|
|
75
76
|
}
|
|
@@ -84,6 +85,10 @@ interface StatusDotProps extends Omit<ComponentPropsWithoutRef<"span">, "childre
|
|
|
84
85
|
* The dot is decorative on purpose. It never carries meaning the text does not
|
|
85
86
|
* also carry, so the component cannot be used to say something in colour alone.
|
|
86
87
|
*
|
|
88
|
+
* Without a `hint` this renders one span and nothing else: a table repeats this
|
|
89
|
+
* on every row, and a tooltip's provider, listeners and floating context are
|
|
90
|
+
* not a cost worth paying hundreds of times for rows that have nothing to say.
|
|
91
|
+
*
|
|
87
92
|
* @example
|
|
88
93
|
* ```tsx
|
|
89
94
|
* <StatusDot tone="warning" hint="7일 이상 수신되지 않음">비활성</StatusDot>
|
|
@@ -1024,6 +1029,8 @@ interface EventMetaEditorLabels {
|
|
|
1024
1029
|
displayNamePlaceholder?: string;
|
|
1025
1030
|
descriptionPlaceholder?: string;
|
|
1026
1031
|
tagsPlaceholder?: string;
|
|
1032
|
+
/** The icon picker's own empty text. Forwarded, so one `labels` covers the pane. */
|
|
1033
|
+
iconPlaceholder?: string;
|
|
1027
1034
|
emptyTagsMessage?: string;
|
|
1028
1035
|
}
|
|
1029
1036
|
/** Renders the event meta editor component. */
|
|
@@ -1619,6 +1626,14 @@ declare function CatalogCellControls({ children }: {
|
|
|
1619
1626
|
}): import("react").JSX.Element;
|
|
1620
1627
|
/** Localized strings for the catalog frame. */
|
|
1621
1628
|
interface CatalogFrameLabels {
|
|
1629
|
+
/**
|
|
1630
|
+
* The inspector's close button.
|
|
1631
|
+
*
|
|
1632
|
+
* The frame renders the inspector, so a caller who localizes this frame has
|
|
1633
|
+
* no other way to reach it — it was the one English word left in a
|
|
1634
|
+
* translated catalogue.
|
|
1635
|
+
*/
|
|
1636
|
+
closeInspector?: string;
|
|
1622
1637
|
emptyTitle?: string;
|
|
1623
1638
|
emptyDescription?: string;
|
|
1624
1639
|
filteredEmptyTitle?: string;
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { $ as PopoverClose, $t as
|
|
3
|
-
import { $ as Identity, A as PageHeader, B as DropdownTrigger, C as Logo, D as Section, E as ResizablePanelGroup, F as RadioGroup, G as Textarea, H as StepBuilder, I as DropdownContent, J as CardContent, K as Switch, L as DropdownItem, M as BlockLayout, N as LoadingOverlay, O as Container, P as Radio, Q as CardTitle, R as DropdownMenu, S as DrawerRoot, T as ResizablePanel, U as CircularProgress, V as ConditionBuilder, W as Progress, X as CardFooter, Y as CardDescription, Z as CardHeader, _ as getShaderFragment, a as THEME_PALETTES, at as AccordionItem, b as DrawerClose, c as ExpressionGroup, ct as Toggle, d as ShaderSurface, dt as Separator, et as Avatar, f as SHADER_OVERLAY_PARAM_KEYS, ft as Heading, g as SHADER_PRESET_IDS, h as SHADER_PRESETS, i as ColorPalettePicker, it as AccordionContent, j as createBlock, k as ScrollArea, l as Facet, lt as ToggleGroup, m as SHADER_PARAM_KEYS, n as InlineEdit, nt as DescriptionList, o as LiveRegion, ot as AccordionRoot, p as SHADER_PARAM_FALLBACK, pt as Text, q as Card, r as ColorPaletteDisplay, rt as Breadcrumb, s as Expression, st as AccordionTrigger, t as KeyPadMenu, tt as AvatarGroup, u as FacetGroup, ut as OtpField, v as getShaderPreset, w as ResizableHandle, x as DrawerPanel, y as VirtualList, z as DropdownSeparator } from "./key-pad-menu-
|
|
4
|
-
import { $ as CommandGroup, A as ToastProvider, B as FaqAccordion, C as Flyout, D as KeyValueEditor, E as WorkflowCanvas, F as BranchSelect, G as StatusSelect, H as EditorToolbar, I as EnvPanel, J as CommandPaletteTrigger, K as SearchCombobox, L as ProjectSwitcher, M as useToast, N as DataTable, O as FailureList, P as DomainTable, Q as CommandEmpty, R as DeploymentTimeline, S as withoutField, T as EventTimeline, U as SidebarNav, V as ContentTabs, W as AppMenubar, X as Command, Y as CommandPalette, Z as CommandDialog, _ as fieldValues, a as TimeRangeControl, b as removeClause, c as describeClause, d as quoteValue, et as CommandInput, f as parseQuery, g as applyCellAction, h as addClause, i as DEFAULT_TIME_PRESETS, it as CommandShortcut, j as toast, k as NotificationToast, l as formatClause, m as EMPTY_QUERY, n as LogTable, nt as CommandList, o as useAutoRefresh, p as parseQueryWithDiagnostics, q as DashboardGrid, r as TimeSeriesPanel, rt as CommandSeparator, s as QueryBar, t as FieldSidebar, tt as CommandItem, u as formatQuery, v as isEmptyQuery, w as ScoreBreakdown, x as withFieldValue, y as queryFields, z as SettingsForm } from "./field-sidebar-
|
|
2
|
+
import { $ as PopoverClose, $t as ToolbarButton, A as FormRadio, An as OPT_BADGE_RED, At as DialogPanel, B as FormSubmit, Bn as OPT_FOCUS, Bt as TabsRoot, C as FormGroupLabel, Ct as DialogBody, D as FormNumberInput, Dn as OPT_BADGE_BLUE, Dt as DialogFooter, E as FormLabel, Et as DialogDismiss, F as FormSelect, Ft as SelectRoot, G as useFormContext, Gt as CompositeItem, H as FormTagInput, Hn as OPT_HOVER_ITEM, Ht as DisclosureRoot, I as FormSelectItem, In as OPT_DOT_GRAY, It as SelectTrigger, J as DateRangePicker, Jt as CompositeZone, K as useFormStore, Kt as CompositeProvider, L as FormSelectPopover, Ln as OPT_DOT_GREEN, Lt as Tab, M as FormRemove, Mn as OPT_BORDER, Mt as SelectItem, N as FormReset, Nt as SelectLabel, O as FormProvider, On as OPT_BADGE_GREEN, Ot as DialogHeader, P as FormRoot, Pt as SelectPopover, Q as ColorPicker, Qt as useInputId, R as FormSlider, Rn as OPT_DOT_RED, Rt as TabList, S as FormGroup, St as AlertDialogPanel, T as FormInput, Tt as DialogDisclosure, U as FormTextarea, Un as OPT_INPUT, Ut as DisclosureTrigger, V as FormSwitch, Vn as OPT_FOCUS_VISIBLE, Vt as DisclosureContent, W as useFieldValue, Wt as Composite, X as IconPicker, Xn as OPT_TD, Xt as StarRating, Y as TagInput, Yt as Meter, Z as getIconRegistryEntry, Zt as Input, _ as FormControl, _n as SkeletonCard, _t as ComboboxGroupLabel, a as FieldTokenLegend, an as TooltipProvider, ar as _objectWithoutProperties, at as MenuButtonArrow, b as FormError, bn as useControlledState, bt as ComboboxPopover, c as Checkbox, cn as Badge, ct as MenuItemRadio, d as formatOptDateTime, dn as koBreadcrumbLabels, dt as MenuSeparator, en as ToolbarContainer, er as OPT_TEXT_PRIMARY, et as PopoverContent, f as formatOptNumber, fn as koComboboxLabels, ft as MenuTrigger, g as FormColorPicker, gn as SkeletonAvatar, gt as ComboboxGroup, h as FormCheckbox, hn as Skeleton, ht as ComboboxEmpty, i as FieldToken, in as TooltipAnchor, ir as _objectSpread2, it as NumberInput, j as FormRadioGroup, jn as OPT_BADGE_YELLOW, jt as DialogRoot, k as FormPush, kn as OPT_BADGE_NEUTRAL, kt as DialogHeading, l as CheckboxGroup, ln as EmptyState, lt as MenuPopover, m as formatOptTime, mn as StatCard, mt as MenubarRoot, n as Highlight, nn as ToolbarSeparator, nr as OPT_TEXT_TERTIARY, nt as PopoverTrigger, o as resolveFieldType, on as Alert, or as Kbd, ot as MenuItem, p as formatOptShortDate, pn as koStarRatingLabels, pt as MenubarContainer, q as DEFAULT_PRESETS, qt as CompositeRow, r as FIELD_TYPE_TOKENS, rn as Tooltip, rr as OPT_TH, rt as Slider, s as Pagination, sn as Spinner, sr as cn, st as MenuItemCheckbox, t as TextTruncate, tn as ToolbarRoot, tr as OPT_TEXT_SECONDARY, tt as PopoverRoot, un as Button, ut as MenuRoot, v as FormDateRangePicker, vn as SkeletonTable, vt as ComboboxInput, w as FormIconPicker, wt as DialogDescription, x as FormField, xt as ComboboxRoot, y as FormDescription, yn as SkeletonText, yt as ComboboxItem, z as FormStarRating, zn as OPT_DOT_YELLOW, zt as TabPanel } from "./text-truncate-BFWd2cE_.js";
|
|
3
|
+
import { $ as Identity, A as PageHeader, B as DropdownTrigger, C as Logo, D as Section, E as ResizablePanelGroup, F as RadioGroup, G as Textarea, H as StepBuilder, I as DropdownContent, J as CardContent, K as Switch, L as DropdownItem, M as BlockLayout, N as LoadingOverlay, O as Container, P as Radio, Q as CardTitle, R as DropdownMenu, S as DrawerRoot, T as ResizablePanel, U as CircularProgress, V as ConditionBuilder, W as Progress, X as CardFooter, Y as CardDescription, Z as CardHeader, _ as getShaderFragment, a as THEME_PALETTES, at as AccordionItem, b as DrawerClose, c as ExpressionGroup, ct as Toggle, d as ShaderSurface, dt as Separator, et as Avatar, f as SHADER_OVERLAY_PARAM_KEYS, ft as Heading, g as SHADER_PRESET_IDS, h as SHADER_PRESETS, i as ColorPalettePicker, it as AccordionContent, j as createBlock, k as ScrollArea, l as Facet, lt as ToggleGroup, m as SHADER_PARAM_KEYS, n as InlineEdit, nt as DescriptionList, o as LiveRegion, ot as AccordionRoot, p as SHADER_PARAM_FALLBACK, pt as Text, q as Card, r as ColorPaletteDisplay, rt as Breadcrumb, s as Expression, st as AccordionTrigger, t as KeyPadMenu, tt as AvatarGroup, u as FacetGroup, ut as OtpField, v as getShaderPreset, w as ResizableHandle, x as DrawerPanel, y as VirtualList, z as DropdownSeparator } from "./key-pad-menu-CUiQ-vKw.js";
|
|
4
|
+
import { $ as CommandGroup, A as ToastProvider, B as FaqAccordion, C as Flyout, D as KeyValueEditor, E as WorkflowCanvas, F as BranchSelect, G as StatusSelect, H as EditorToolbar, I as EnvPanel, J as CommandPaletteTrigger, K as SearchCombobox, L as ProjectSwitcher, M as useToast, N as DataTable, O as FailureList, P as DomainTable, Q as CommandEmpty, R as DeploymentTimeline, S as withoutField, T as EventTimeline, U as SidebarNav, V as ContentTabs, W as AppMenubar, X as Command, Y as CommandPalette, Z as CommandDialog, _ as fieldValues, a as TimeRangeControl, b as removeClause, c as describeClause, d as quoteValue, et as CommandInput, f as parseQuery, g as applyCellAction, h as addClause, i as DEFAULT_TIME_PRESETS, it as CommandShortcut, j as toast, k as NotificationToast, l as formatClause, m as EMPTY_QUERY, n as LogTable, nt as CommandList, o as useAutoRefresh, p as parseQueryWithDiagnostics, q as DashboardGrid, r as TimeSeriesPanel, rt as CommandSeparator, s as QueryBar, t as FieldSidebar, tt as CommandItem, u as formatQuery, v as isEmptyQuery, w as ScoreBreakdown, x as withFieldValue, y as queryFields, z as SettingsForm } from "./field-sidebar-DJKWQQeu.js";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { Component, createContext, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -79,7 +79,10 @@ function Callout(_ref) {
|
|
|
79
79
|
let { tone = "info", title, icon, action, size = "md", className, children } = _ref, props = _objectWithoutProperties(_ref, _excluded$2);
|
|
80
80
|
const DefaultIcon = defaultIcons[tone];
|
|
81
81
|
const glyph = icon === void 0 ? DefaultIcon ? /* @__PURE__ */ jsx(DefaultIcon, { "aria-hidden": "true" }) : null : icon;
|
|
82
|
-
return /* @__PURE__ */ jsxs("div", _objectSpread2(_objectSpread2({
|
|
82
|
+
return /* @__PURE__ */ jsxs("div", _objectSpread2(_objectSpread2({
|
|
83
|
+
role: "status",
|
|
84
|
+
className: cn("flex items-start rounded-lg border", toneStyles[tone], sizeStyles$3[size], className)
|
|
85
|
+
}, props), {}, {
|
|
83
86
|
"data-opt-id": "AT7TX",
|
|
84
87
|
"data-opt-slug": "callout.Callout",
|
|
85
88
|
"data-tone": tone,
|
|
@@ -149,6 +152,10 @@ const dotSize = {
|
|
|
149
152
|
* The dot is decorative on purpose. It never carries meaning the text does not
|
|
150
153
|
* also carry, so the component cannot be used to say something in colour alone.
|
|
151
154
|
*
|
|
155
|
+
* Without a `hint` this renders one span and nothing else: a table repeats this
|
|
156
|
+
* on every row, and a tooltip's provider, listeners and floating context are
|
|
157
|
+
* not a cost worth paying hundreds of times for rows that have nothing to say.
|
|
158
|
+
*
|
|
152
159
|
* @example
|
|
153
160
|
* ```tsx
|
|
154
161
|
* <StatusDot tone="warning" hint="7일 이상 수신되지 않음">비활성</StatusDot>
|
|
@@ -156,9 +163,9 @@ const dotSize = {
|
|
|
156
163
|
*/
|
|
157
164
|
function StatusDot(_ref) {
|
|
158
165
|
let { tone = "neutral", size = "md", hint, className, children } = _ref, props = _objectWithoutProperties(_ref, _excluded$1);
|
|
159
|
-
|
|
160
|
-
className: cn("inline-flex items-center whitespace-nowrap", sizeStyles$2[size], textTone[tone], className),
|
|
161
|
-
|
|
166
|
+
const dot = /* @__PURE__ */ jsxs("span", _objectSpread2(_objectSpread2({
|
|
167
|
+
className: cn("inline-flex items-center whitespace-nowrap", sizeStyles$2[size], textTone[tone], hint && "focus-visible:ring-ring rounded-sm outline-none focus-visible:ring-2", className),
|
|
168
|
+
tabIndex: hint ? 0 : void 0
|
|
162
169
|
}, props), {}, {
|
|
163
170
|
"data-opt-id": "N51AT",
|
|
164
171
|
"data-opt-slug": "status-dot.StatusDot",
|
|
@@ -168,6 +175,8 @@ function StatusDot(_ref) {
|
|
|
168
175
|
"aria-hidden": "true"
|
|
169
176
|
}), children]
|
|
170
177
|
}));
|
|
178
|
+
if (!hint) return dot;
|
|
179
|
+
return /* @__PURE__ */ jsxs(TooltipProvider, { children: [/* @__PURE__ */ jsx(TooltipAnchor, { render: dot }), /* @__PURE__ */ jsx(Tooltip, { children: hint })] });
|
|
171
180
|
}
|
|
172
181
|
//#endregion
|
|
173
182
|
//#region src/core/copy-button.tsx
|
|
@@ -336,7 +345,7 @@ function SegmentedControl({ options, value, onChange, size = "md", fullWidth = f
|
|
|
336
345
|
/* @__PURE__ */ jsx(Radio$1, {
|
|
337
346
|
value: option.value,
|
|
338
347
|
disabled: itemDisabled,
|
|
339
|
-
className: "
|
|
348
|
+
className: "absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0"
|
|
340
349
|
}),
|
|
341
350
|
option.icon,
|
|
342
351
|
/* @__PURE__ */ jsx("span", { children: option.label }),
|
|
@@ -2069,7 +2078,7 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
|
|
|
2069
2078
|
const resolvedColor = (color === null || color === void 0 ? void 0 : color.trim()) ? color : void 0;
|
|
2070
2079
|
const iconEntry = typeof icon === "string" ? getIconRegistryEntry(icon) : void 0;
|
|
2071
2080
|
const iconElement = React.isValidElement(icon) ? icon : null;
|
|
2072
|
-
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;
|
|
2081
|
+
const ariaLabel = typeof icon === "string" && icon !== "" ? `${labels.eventLabelPrefix}: ${(_iconEntry$label = iconEntry === null || iconEntry === void 0 ? void 0 : iconEntry.label) !== null && _iconEntry$label !== void 0 ? _iconEntry$label : icon}` : labels.defaultAriaLabel;
|
|
2073
2082
|
let iconContent;
|
|
2074
2083
|
if (iconEntry) iconContent = /* @__PURE__ */ jsx(iconEntry.Icon, {
|
|
2075
2084
|
"aria-hidden": true,
|
|
@@ -2985,6 +2994,7 @@ const defaultLabels$21 = {
|
|
|
2985
2994
|
displayNamePlaceholder: "Page View",
|
|
2986
2995
|
descriptionPlaceholder: "Triggered when a user views a page",
|
|
2987
2996
|
tagsPlaceholder: "Add tag...",
|
|
2997
|
+
iconPlaceholder: "Select icon",
|
|
2988
2998
|
emptyTagsMessage: "No tags added yet."
|
|
2989
2999
|
};
|
|
2990
3000
|
/** Renders the event meta editor component. */
|
|
@@ -2999,7 +3009,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
2999
3009
|
onChange(_objectSpread2(_objectSpread2({}, value), partial));
|
|
3000
3010
|
};
|
|
3001
3011
|
return /* @__PURE__ */ jsxs("div", {
|
|
3002
|
-
className: cn("gap-group flex flex-col", className),
|
|
3012
|
+
className: cn("@container gap-group flex flex-col", className),
|
|
3003
3013
|
"data-opt-id": "EZR35",
|
|
3004
3014
|
"data-opt-slug": "event-meta-editor.EventMetaEditor",
|
|
3005
3015
|
children: [
|
|
@@ -3013,6 +3023,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3013
3023
|
value: value.icon,
|
|
3014
3024
|
onChange: (icon) => update({ icon }),
|
|
3015
3025
|
icons,
|
|
3026
|
+
placeholder: labels.iconPlaceholder,
|
|
3016
3027
|
"aria-label": labels.icon
|
|
3017
3028
|
})] }),
|
|
3018
3029
|
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
|
|
@@ -3034,7 +3045,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3034
3045
|
]
|
|
3035
3046
|
}),
|
|
3036
3047
|
/* @__PURE__ */ jsxs("div", {
|
|
3037
|
-
className: "gap-group grid grid-cols-2",
|
|
3048
|
+
className: "gap-group grid grid-cols-1 @sm:grid-cols-2",
|
|
3038
3049
|
children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
|
|
3039
3050
|
htmlFor: nameId,
|
|
3040
3051
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
@@ -3044,7 +3055,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3044
3055
|
value: value.name,
|
|
3045
3056
|
onChange: (e) => update({ name: e.target.value }),
|
|
3046
3057
|
placeholder: labels.namePlaceholder,
|
|
3047
|
-
className: "font-mono"
|
|
3058
|
+
className: "font-mono",
|
|
3059
|
+
fullWidth: true
|
|
3048
3060
|
})] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
|
|
3049
3061
|
htmlFor: displayNameId,
|
|
3050
3062
|
className: "text-text-tertiary mb-1 block text-xs font-medium",
|
|
@@ -3053,7 +3065,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3053
3065
|
id: displayNameId,
|
|
3054
3066
|
value: value.displayName,
|
|
3055
3067
|
onChange: (e) => update({ displayName: e.target.value }),
|
|
3056
|
-
placeholder: labels.displayNamePlaceholder
|
|
3068
|
+
placeholder: labels.displayNamePlaceholder,
|
|
3069
|
+
fullWidth: true
|
|
3057
3070
|
})] })]
|
|
3058
3071
|
}),
|
|
3059
3072
|
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
|
|
@@ -3064,7 +3077,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
|
|
|
3064
3077
|
id: descriptionId,
|
|
3065
3078
|
value: value.description,
|
|
3066
3079
|
onChange: (e) => update({ description: e.target.value }),
|
|
3067
|
-
placeholder: labels.descriptionPlaceholder
|
|
3080
|
+
placeholder: labels.descriptionPlaceholder,
|
|
3081
|
+
fullWidth: true
|
|
3068
3082
|
})] }),
|
|
3069
3083
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
3070
3084
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -4478,6 +4492,19 @@ function toText(value) {
|
|
|
4478
4492
|
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
4479
4493
|
return JSON.stringify(value);
|
|
4480
4494
|
}
|
|
4495
|
+
/**
|
|
4496
|
+
* The values one field holds, as a list.
|
|
4497
|
+
*
|
|
4498
|
+
* A clause names a single value, so an array field has to be read element by
|
|
4499
|
+
* element: `tag:pay` asks whether *any* tag is `pay`, not whether the whole
|
|
4500
|
+
* list stringifies to it — and `toText` on an array produces `["pay","cart"]`,
|
|
4501
|
+
* which no user ever types. Scalars read as a list of one so both shapes take
|
|
4502
|
+
* the same path, and negation stays where it already is: `matchesQuery` flips
|
|
4503
|
+
* the result, so `-tag:pay` correctly means "no element matches".
|
|
4504
|
+
*/
|
|
4505
|
+
function readValues(value) {
|
|
4506
|
+
return Array.isArray(value) ? value : [value];
|
|
4507
|
+
}
|
|
4481
4508
|
function compare(left, right) {
|
|
4482
4509
|
const leftNumber = typeof left === "number" ? left : Number(toText(left));
|
|
4483
4510
|
const rightNumber = Number(right);
|
|
@@ -4488,9 +4515,9 @@ function matchesClause(clause, read, searchable) {
|
|
|
4488
4515
|
if (clause.type === "term") return searchable().toLowerCase().includes(clause.value.toLowerCase());
|
|
4489
4516
|
const value = read(clause.field);
|
|
4490
4517
|
switch (clause.operator) {
|
|
4491
|
-
case "exists": return value !== void 0 &&
|
|
4492
|
-
case "eq": return clause.values.some((candidate) =>
|
|
4493
|
-
case "contains": return clause.values.some((candidate) =>
|
|
4518
|
+
case "exists": return readValues(value).some((item) => item !== void 0 && item !== null && item !== "");
|
|
4519
|
+
case "eq": return clause.values.some((candidate) => readValues(value).some((item) => toText(item).toLowerCase() === candidate.toLowerCase()));
|
|
4520
|
+
case "contains": return clause.values.some((candidate) => readValues(value).some((item) => toText(item).toLowerCase().includes(candidate.toLowerCase())));
|
|
4494
4521
|
case "gt":
|
|
4495
4522
|
var _clause$values$;
|
|
4496
4523
|
return compare(value, (_clause$values$ = clause.values[0]) !== null && _clause$values$ !== void 0 ? _clause$values$ : "") > 0;
|
|
@@ -4526,7 +4553,7 @@ function matchesQueryObject(query, row, options = {}) {
|
|
|
4526
4553
|
let cached = null;
|
|
4527
4554
|
const searchable = () => {
|
|
4528
4555
|
var _cached;
|
|
4529
|
-
(_cached = cached) !== null && _cached !== void 0 || (cached = [...Object.values(row).
|
|
4556
|
+
(_cached = cached) !== null && _cached !== void 0 || (cached = [...Object.values(row).flatMap((value) => Array.isArray(value) ? value.filter((item) => typeof item !== "object") : typeof value === "object" ? [] : [value]), ...Object.values(nested !== null && nested !== void 0 ? nested : {})].map(toText).join(" "));
|
|
4530
4557
|
return cached;
|
|
4531
4558
|
};
|
|
4532
4559
|
return matchesQuery(query, read, searchable);
|
|
@@ -4852,6 +4879,7 @@ function CatalogCellControls({ children }) {
|
|
|
4852
4879
|
});
|
|
4853
4880
|
}
|
|
4854
4881
|
const defaultLabels$13 = {
|
|
4882
|
+
closeInspector: "Close panel",
|
|
4855
4883
|
emptyTitle: "아직 아무것도 없습니다",
|
|
4856
4884
|
emptyDescription: "데이터가 도착하면 여기에 나타납니다.",
|
|
4857
4885
|
filteredEmptyTitle: "조건에 맞는 항목이 없습니다",
|
|
@@ -4951,6 +4979,7 @@ function CatalogFrame({ children, isEmpty, query, onQueryChange, filters, stats,
|
|
|
4951
4979
|
actions: inspectorActions,
|
|
4952
4980
|
footer: inspectorFooter,
|
|
4953
4981
|
width: inspectorWidth,
|
|
4982
|
+
labels: { close: labels.closeInspector },
|
|
4954
4983
|
children: /* @__PURE__ */ jsxs("div", {
|
|
4955
4984
|
className: "gap-group flex flex-col",
|
|
4956
4985
|
children: [body, onPageChange && totalCount != null && totalCount > pageSize && /* @__PURE__ */ jsx(Pagination, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const require_text_truncate = require("./text-truncate-
|
|
2
|
+
const require_text_truncate = require("./text-truncate-DsG5UAOY.cjs");
|
|
3
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
react = require_text_truncate.__toESM(react, 1);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Bn as OPT_FOCUS, Cn as getDescribedBy, En as OPT_ANIMATE_ENTER_EXIT,
|
|
2
|
+
import { Bn as OPT_FOCUS, Cn as getDescribedBy, En as OPT_ANIMATE_ENTER_EXIT, Ft as SelectRoot$1, It as SelectTrigger$1, Kn as OPT_SURFACE, Mn as OPT_BORDER, Mt as SelectItem$1, Pt as SelectPopover$1, Qn as OPT_TEXTAREA_SIZE, Qt as useInputId, Sn as RequiredMark, Tn as OPT_ANIMATE_DRAWER, Un as OPT_INPUT, Vn as OPT_FOCUS_VISIBLE, ar as _objectWithoutProperties, bn as useControlledState, cn as Badge, dn as koBreadcrumbLabels, dt as MenuSeparator$1, er as OPT_TEXT_PRIMARY, f as formatOptNumber, ft as MenuTrigger$1, ir as _objectSpread2, lt as MenuPopover$1, nr as OPT_TEXT_TERTIARY, ot as MenuItem$1, sn as Spinner, sr as cn, tr as OPT_TEXT_SECONDARY, un as Button, ut as MenuRoot$1, xn as FieldMessages } from "./text-truncate-BFWd2cE_.js";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { createContext, createElement, forwardRef, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|