@reopt-ai/opt-ui 1.12.2 → 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.
@@ -253,7 +253,7 @@ function CommandPaletteTrigger({ commands, onSelect, labels }) {
253
253
  }
254
254
  //#endregion
255
255
  //#region src/shells/dashboard-grid.tsx
256
- const defaultLabels$21 = { ariaLabel: "대시보드 통계" };
256
+ const defaultLabels$22 = { ariaLabel: "대시보드 통계" };
257
257
  const MIN_DASHBOARD_COLUMNS = 1;
258
258
  const MAX_DASHBOARD_COLUMNS = 12;
259
259
  function normalizeDashboardColumns(columns) {
@@ -262,7 +262,7 @@ function normalizeDashboardColumns(columns) {
262
262
  }
263
263
  /** Renders the dashboard grid component. */
264
264
  function DashboardGrid({ stats, columns = 3, labels: customLabels }) {
265
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$21), customLabels);
265
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$22), customLabels);
266
266
  const columnCount = normalizeDashboardColumns(columns);
267
267
  const rowStyle = { "--opt-dashboard-grid-columns": `repeat(${columnCount}, minmax(0, 1fr))` };
268
268
  const rows = [];
@@ -290,13 +290,13 @@ function DashboardGrid({ stats, columns = 3, labels: customLabels }) {
290
290
  }
291
291
  //#endregion
292
292
  //#region src/shells/search-combobox.tsx
293
- const defaultLabels$20 = {
293
+ const defaultLabels$21 = {
294
294
  noResults: "결과가 없습니다.",
295
295
  loading: "Loading…"
296
296
  };
297
297
  /** Renders the search combobox component. */
298
298
  function SearchCombobox({ items, placeholder = "검색...", label = "검색", onSelect, labels: customLabels, async: isAsync = false, onSearch, debounceMs = 300 }) {
299
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$20), customLabels);
299
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$21), customLabels);
300
300
  const inputId = useId();
301
301
  const [query, setQuery] = useState("");
302
302
  const [asyncResults, setAsyncResults] = useState([]);
@@ -394,14 +394,14 @@ function SearchCombobox({ items, placeholder = "검색...", label = "검색", on
394
394
  }
395
395
  //#endregion
396
396
  //#region src/shells/status-select.tsx
397
- const defaultLabels$19 = {
397
+ const defaultLabels$20 = {
398
398
  selectLabel: "상태",
399
399
  emptyMessage: "사용 가능한 상태 옵션이 없습니다."
400
400
  };
401
401
  /** Renders the status select component. */
402
402
  function StatusSelect({ options, value: controlledValue, onChange, label, labels: customLabels }) {
403
403
  var _options$0$value, _options$;
404
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$19), customLabels);
404
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$20), customLabels);
405
405
  const resolvedLabel = label !== null && label !== void 0 ? label : labels.selectLabel;
406
406
  const [internalValue, setInternalValue] = useState((_options$0$value = (_options$ = options[0]) === null || _options$ === void 0 ? void 0 : _options$.value) !== null && _options$0$value !== void 0 ? _options$0$value : "");
407
407
  const value = controlledValue !== null && controlledValue !== void 0 ? controlledValue : internalValue;
@@ -468,7 +468,7 @@ function StatusSelect({ options, value: controlledValue, onChange, label, labels
468
468
  }
469
469
  //#endregion
470
470
  //#region src/shells/app-menubar.tsx
471
- const defaultLabels$18 = { ariaLabel: "Application menu" };
471
+ const defaultLabels$19 = { ariaLabel: "Application menu" };
472
472
  function MenuSection({ menu }) {
473
473
  return /* @__PURE__ */ jsxs(MenuRoot$1, { children: [/* @__PURE__ */ jsxs(MenuTrigger$1, { children: [menu.label, /* @__PURE__ */ jsx(MenuButtonArrow$1, {})] }), /* @__PURE__ */ jsx(MenuPopover$1, { children: menu.items.map((item, i) => {
474
474
  if (item.type === "separator") return /* @__PURE__ */ jsx(MenuSeparator$1, {}, `sep-${i}`);
@@ -512,7 +512,7 @@ function MenuSection({ menu }) {
512
512
  }
513
513
  /** Renders the app menubar component. */
514
514
  function AppMenubar({ menus, labels: customLabels }) {
515
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$18), customLabels);
515
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$19), customLabels);
516
516
  if (menus.length === 0) return null;
517
517
  return /* @__PURE__ */ jsx(MenubarRoot$1, {
518
518
  "data-opt-id": "BGKHW",
@@ -551,10 +551,10 @@ const sectionStyles = {
551
551
  Templates: "text-text-tertiary"
552
552
  };
553
553
  const defaultSectionStyle = "text-text-secondary";
554
- const defaultLabels$17 = { ariaLabel: "문서 네비게이션" };
554
+ const defaultLabels$18 = { ariaLabel: "문서 네비게이션" };
555
555
  /** Renders the sidebar nav component. */
556
556
  function SidebarNav({ items, labels: customLabels }) {
557
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$17), customLabels);
557
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$18), customLabels);
558
558
  const pathname = usePathname();
559
559
  const activeItem = items.find((item) => item.href === pathname);
560
560
  const [activeId, setActiveId] = useState(activeItem ? domId(activeItem.id) : void 0);
@@ -602,7 +602,7 @@ function SidebarNav({ items, labels: customLabels }) {
602
602
  }
603
603
  //#endregion
604
604
  //#region src/shells/editor-toolbar.tsx
605
- const defaultLabels$16 = { ariaLabel: "텍스트 편집기 툴바" };
605
+ const defaultLabels$17 = { ariaLabel: "텍스트 편집기 툴바" };
606
606
  function ToolbarButtonWithTooltip({ button, active, onAction }) {
607
607
  return /* @__PURE__ */ jsxs(TooltipProvider$1, { children: [/* @__PURE__ */ jsx(TooltipAnchor$1, { children: /* @__PURE__ */ jsx(ToolbarButton$1, {
608
608
  className: `text-text-primary data-[active-item]:bg-bg-subtle data-[focus-visible]:ring-ring rounded-md p-2 transition-colors outline-none data-[focus-visible]:ring-2 ${active ? "bg-bg-muted" : "hover:bg-bg-subtle"}`,
@@ -612,7 +612,7 @@ function ToolbarButtonWithTooltip({ button, active, onAction }) {
612
612
  }
613
613
  /** Renders the editor toolbar component. */
614
614
  function EditorToolbar({ buttons, onAction, activeButtons = [], labels: customLabels }) {
615
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$16), customLabels);
615
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$17), customLabels);
616
616
  const groups = [];
617
617
  let current = [];
618
618
  for (const btn of buttons) {
@@ -645,14 +645,14 @@ function EditorToolbar({ buttons, onAction, activeButtons = [], labels: customLa
645
645
  }
646
646
  //#endregion
647
647
  //#region src/shells/content-tabs.tsx
648
- const defaultLabels$15 = {
648
+ const defaultLabels$16 = {
649
649
  ariaLabel: "콘텐츠 탭",
650
650
  emptyMessage: "표시할 탭이 없습니다."
651
651
  };
652
652
  /** Renders the content tabs component. */
653
653
  function ContentTabs({ tabs, defaultTabId, labels: customLabels }) {
654
654
  var _tabs$, _tabs$find;
655
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$15), customLabels);
655
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$16), customLabels);
656
656
  const [selectedTabId, setSelectedTabId] = useState(defaultTabId !== null && defaultTabId !== void 0 ? defaultTabId : (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.id);
657
657
  if (tabs.length === 0) return /* @__PURE__ */ jsx("div", {
658
658
  className: "text-text-secondary text-sm",
@@ -684,13 +684,13 @@ function ContentTabs({ tabs, defaultTabId, labels: customLabels }) {
684
684
  }
685
685
  //#endregion
686
686
  //#region src/shells/faq-accordion.tsx
687
- const defaultLabels$14 = {
687
+ const defaultLabels$15 = {
688
688
  ariaLabel: "자주 묻는 질문",
689
689
  emptyMessage: "등록된 FAQ가 없습니다."
690
690
  };
691
691
  /** Renders the faq accordion component. */
692
692
  function FaqAccordion({ items, labels: customLabels }) {
693
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$14), customLabels);
693
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$15), customLabels);
694
694
  if (items.length === 0) return /* @__PURE__ */ jsx("div", {
695
695
  className: "text-text-secondary text-sm",
696
696
  "data-opt-id": "QRBHV",
@@ -730,14 +730,14 @@ function FaqAccordion({ items, labels: customLabels }) {
730
730
  }
731
731
  //#endregion
732
732
  //#region src/shells/settings-form.tsx
733
- const defaultLabels$13 = {
733
+ const defaultLabels$14 = {
734
734
  formAriaLabel: "설정 폼",
735
735
  submitButton: "저장",
736
736
  successMessage: "설정이 저장되었습니다."
737
737
  };
738
738
  /** Renders the settings form component. */
739
739
  function SettingsForm({ fields, onSubmit, labels: customLabels }) {
740
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$13), customLabels);
740
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$14), customLabels);
741
741
  const [submitted, setSubmitted] = useState(false);
742
742
  const defaultValues = {};
743
743
  for (const field of fields) {
@@ -1063,7 +1063,7 @@ function ProjectSwitcher({ projects, value, onChange, placeholder = "프로젝
1063
1063
  ProjectSwitcher.displayName = "ProjectSwitcher";
1064
1064
  //#endregion
1065
1065
  //#region src/shells/env-panel.tsx
1066
- const defaultLabels$12 = {
1066
+ const defaultLabels$13 = {
1067
1067
  varCount: (count) => `${count}개 변수`,
1068
1068
  envVarsLabel: (env) => `${env} 환경 변수`,
1069
1069
  secretBadge: "secret"
@@ -1075,7 +1075,7 @@ const envDot = {
1075
1075
  };
1076
1076
  /** Renders the env panel component. */
1077
1077
  function EnvPanel({ groups, labels: customLabels }) {
1078
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$12), customLabels);
1078
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$13), customLabels);
1079
1079
  return /* @__PURE__ */ jsx("div", {
1080
1080
  className: `rounded-lg ${OPT_BORDER} divide-y ${OPT_DIVIDER} bg-surface`,
1081
1081
  "data-opt-id": "ZBDWK",
@@ -1148,7 +1148,7 @@ function EnvPanel({ groups, labels: customLabels }) {
1148
1148
  }
1149
1149
  //#endregion
1150
1150
  //#region src/shells/branch-select.tsx
1151
- const defaultLabels$11 = {
1151
+ const defaultLabels$12 = {
1152
1152
  selectLabel: "브랜치",
1153
1153
  emptySelectionLabel: "선택...",
1154
1154
  emptyMessage: "사용 가능한 브랜치가 없습니다.",
@@ -1157,7 +1157,7 @@ const defaultLabels$11 = {
1157
1157
  /** Renders the branch select component. */
1158
1158
  function BranchSelect({ branches, value: controlledValue, onChange, label, labels: customLabels }) {
1159
1159
  var _ref, _defaultBranch$name, _branches$, _selected$name;
1160
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$11), customLabels);
1160
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$12), customLabels);
1161
1161
  const resolvedLabel = label !== null && label !== void 0 ? label : labels.selectLabel;
1162
1162
  const defaultBranch = branches.find((b) => b.isDefault);
1163
1163
  const [internalValue, setInternalValue] = useState((_ref = (_defaultBranch$name = defaultBranch === null || defaultBranch === void 0 ? void 0 : defaultBranch.name) !== null && _defaultBranch$name !== void 0 ? _defaultBranch$name : (_branches$ = branches[0]) === null || _branches$ === void 0 ? void 0 : _branches$.name) !== null && _ref !== void 0 ? _ref : "");
@@ -1266,7 +1266,7 @@ function BranchSelect({ branches, value: controlledValue, onChange, label, label
1266
1266
  BranchSelect.displayName = "BranchSelect";
1267
1267
  //#endregion
1268
1268
  //#region src/shells/domain-table.tsx
1269
- const defaultLabels$10 = {
1269
+ const defaultLabels$11 = {
1270
1270
  domain: "Domain",
1271
1271
  status: "Status",
1272
1272
  ssl: "SSL",
@@ -1296,7 +1296,7 @@ const sslLabel = {
1296
1296
  };
1297
1297
  /** Renders the domain table component. */
1298
1298
  function DomainTable({ domains, title = "도메인", labels: customLabels }) {
1299
- const labels = _objectSpread2(_objectSpread2({}, defaultLabels$10), customLabels);
1299
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$11), customLabels);
1300
1300
  if (domains.length === 0) return /* @__PURE__ */ jsxs("div", {
1301
1301
  className: "gap-group flex flex-col",
1302
1302
  "data-opt-id": "A7SRM",
@@ -1414,6 +1414,13 @@ function DomainTable({ domains, title = "도메인", labels: customLabels }) {
1414
1414
  }
1415
1415
  //#endregion
1416
1416
  //#region src/shells/data-table.tsx
1417
+ const defaultLabels$10 = {
1418
+ selectAll: "Select all",
1419
+ selectRow: (key) => `Select row ${key}`,
1420
+ resizeColumn: (header) => `Resize ${header}`,
1421
+ expandRow: (key) => `Expand row ${key}`,
1422
+ collapseRow: (key) => `Collapse row ${key}`
1423
+ };
1417
1424
  const MIN_COLUMN_WIDTH = 40;
1418
1425
  const DEFAULT_COLUMN_RESIZE_MAX = 1200;
1419
1426
  const alignmentClass = {
@@ -1474,7 +1481,8 @@ function DataTableProgressBar({ value, barColor, label }) {
1474
1481
  });
1475
1482
  }
1476
1483
  /** Renders the data table component. */
1477
- function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage = "No data available", activeRowId, sortable = false, selectable = false, selectedKeys, onSelectionChange, expandable = false, renderExpanded, pageSize, stickyHeader = false, resizableColumns = false, onSort: onSortExternal, className }) {
1484
+ function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage = "No data available", activeRowId, sortable = false, selectable = false, selectedKeys, onSelectionChange, expandable = false, renderExpanded, pageSize, stickyHeader = false, resizableColumns = false, onSort: onSortExternal, labels: customLabels, className }) {
1485
+ const labels = _objectSpread2(_objectSpread2({}, defaultLabels$10), customLabels);
1478
1486
  const [sortCol, setSortCol] = useState(null);
1479
1487
  const [sortDir, setSortDir] = useState(null);
1480
1488
  const [expandedKeys, setExpandedKeys] = useState(/* @__PURE__ */ new Set());
@@ -1579,7 +1587,7 @@ function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick,
1579
1587
  children: /* @__PURE__ */ jsx(Checkbox, {
1580
1588
  checked: allSelected,
1581
1589
  onChange: toggleSelectAll,
1582
- "aria-label": "Select all"
1590
+ "aria-label": labels.selectAll
1583
1591
  })
1584
1592
  }),
1585
1593
  expandable && /* @__PURE__ */ jsx("th", { className: cn("px-3 py-2.5 text-left text-xs font-semibold uppercase tracking-wider text-text-tertiary", "w-10") }),
@@ -1601,11 +1609,14 @@ function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick,
1601
1609
  "aria-sort": sortCol === col.id && sortDir ? sortDir === "asc" ? "ascending" : "descending" : void 0,
1602
1610
  children: [/* @__PURE__ */ jsxs("span", {
1603
1611
  className: "flex items-center whitespace-nowrap",
1604
- children: [col.header, sortIndicator(col.id)]
1612
+ children: [/* @__PURE__ */ jsx("span", {
1613
+ className: cn(col.headerHidden && "sr-only"),
1614
+ children: col.header
1615
+ }), sortIndicator(col.id)]
1605
1616
  }), resizableColumns && /* @__PURE__ */ jsx("span", {
1606
1617
  role: "separator",
1607
1618
  "aria-orientation": "vertical",
1608
- "aria-label": `Resize ${col.header}`,
1619
+ "aria-label": labels.resizeColumn(col.header),
1609
1620
  "aria-valuemin": MIN_COLUMN_WIDTH,
1610
1621
  "aria-valuemax": resizeMax,
1611
1622
  "aria-valuenow": resizeValue,
@@ -1668,7 +1679,7 @@ function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick,
1668
1679
  children: /* @__PURE__ */ jsx(Checkbox, {
1669
1680
  checked: isSelected,
1670
1681
  onChange: () => toggleSelectRow(key),
1671
- "aria-label": `Select row ${key}`
1682
+ "aria-label": labels.selectRow(key)
1672
1683
  })
1673
1684
  }),
1674
1685
  expandable && /* @__PURE__ */ jsx(CompositeItem, {
@@ -1685,7 +1696,7 @@ function DataTable({ data, columns, keyExtractor, title, ariaLabel, onRowClick,
1685
1696
  },
1686
1697
  className: cn("rounded p-0.5 text-sm transition-transform", "text-text-secondary", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-ring-offset", isExpanded && "rotate-90"),
1687
1698
  "aria-expanded": isExpanded,
1688
- "aria-label": `${isExpanded ? "Collapse" : "Expand"} row ${key}`,
1699
+ "aria-label": isExpanded ? labels.collapseRow(key) : labels.expandRow(key),
1689
1700
  children: "▶"
1690
1701
  })
1691
1702
  }),
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_text_truncate = require("./text-truncate-DsG5UAOY.cjs");
4
4
  const require_key_pad_menu = require("./key-pad-menu-1YN221Oi.cjs");
5
- const require_field_sidebar = require("./field-sidebar-D0ITbhfJ.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({ className: require_text_truncate.cn("flex items-start rounded-lg border", toneStyles[tone], sizeStyles$3[size], className) }, props), {}, {
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,
@@ -342,7 +345,7 @@ function SegmentedControl({ options, value, onChange, size = "md", fullWidth = f
342
345
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_reopt_ai_opt_ui_primitives.Radio, {
343
346
  value: option.value,
344
347
  disabled: itemDisabled,
345
- className: "sr-only"
348
+ className: "absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0"
346
349
  }),
347
350
  option.icon,
348
351
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: option.label }),
@@ -2075,7 +2078,7 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
2075
2078
  const resolvedColor = (color === null || color === void 0 ? void 0 : color.trim()) ? color : void 0;
2076
2079
  const iconEntry = typeof icon === "string" ? require_text_truncate.getIconRegistryEntry(icon) : void 0;
2077
2080
  const iconElement = react.isValidElement(icon) ? icon : null;
2078
- 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;
2079
2082
  let iconContent;
2080
2083
  if (iconEntry) iconContent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(iconEntry.Icon, {
2081
2084
  "aria-hidden": true,
@@ -2991,6 +2994,7 @@ const defaultLabels$21 = {
2991
2994
  displayNamePlaceholder: "Page View",
2992
2995
  descriptionPlaceholder: "Triggered when a user views a page",
2993
2996
  tagsPlaceholder: "Add tag...",
2997
+ iconPlaceholder: "Select icon",
2994
2998
  emptyTagsMessage: "No tags added yet."
2995
2999
  };
2996
3000
  /** Renders the event meta editor component. */
@@ -3005,7 +3009,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3005
3009
  onChange(require_text_truncate._objectSpread2(require_text_truncate._objectSpread2({}, value), partial));
3006
3010
  };
3007
3011
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3008
- className: require_text_truncate.cn("gap-group flex flex-col", className),
3012
+ className: require_text_truncate.cn("@container gap-group flex flex-col", className),
3009
3013
  "data-opt-id": "EZR35",
3010
3014
  "data-opt-slug": "event-meta-editor.EventMetaEditor",
3011
3015
  children: [
@@ -3019,6 +3023,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3019
3023
  value: value.icon,
3020
3024
  onChange: (icon) => update({ icon }),
3021
3025
  icons,
3026
+ placeholder: labels.iconPlaceholder,
3022
3027
  "aria-label": labels.icon
3023
3028
  })] }),
3024
3029
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -3040,7 +3045,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3040
3045
  ]
3041
3046
  }),
3042
3047
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3043
- className: "gap-group grid grid-cols-2",
3048
+ className: "gap-group grid grid-cols-1 @sm:grid-cols-2",
3044
3049
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3045
3050
  htmlFor: nameId,
3046
3051
  className: "text-text-tertiary mb-1 block text-xs font-medium",
@@ -3050,7 +3055,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3050
3055
  value: value.name,
3051
3056
  onChange: (e) => update({ name: e.target.value }),
3052
3057
  placeholder: labels.namePlaceholder,
3053
- className: "font-mono"
3058
+ className: "font-mono",
3059
+ fullWidth: true
3054
3060
  })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
3055
3061
  htmlFor: displayNameId,
3056
3062
  className: "text-text-tertiary mb-1 block text-xs font-medium",
@@ -3059,7 +3065,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3059
3065
  id: displayNameId,
3060
3066
  value: value.displayName,
3061
3067
  onChange: (e) => update({ displayName: e.target.value }),
3062
- placeholder: labels.displayNamePlaceholder
3068
+ placeholder: labels.displayNamePlaceholder,
3069
+ fullWidth: true
3063
3070
  })] })]
3064
3071
  }),
3065
3072
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
@@ -3070,7 +3077,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3070
3077
  id: descriptionId,
3071
3078
  value: value.description,
3072
3079
  onChange: (e) => update({ description: e.target.value }),
3073
- placeholder: labels.descriptionPlaceholder
3080
+ placeholder: labels.descriptionPlaceholder,
3081
+ fullWidth: true
3074
3082
  })] }),
3075
3083
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
3076
3084
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -4871,6 +4879,7 @@ function CatalogCellControls({ children }) {
4871
4879
  });
4872
4880
  }
4873
4881
  const defaultLabels$13 = {
4882
+ closeInspector: "Close panel",
4874
4883
  emptyTitle: "아직 아무것도 없습니다",
4875
4884
  emptyDescription: "데이터가 도착하면 여기에 나타납니다.",
4876
4885
  filteredEmptyTitle: "조건에 맞는 항목이 없습니다",
@@ -4970,6 +4979,7 @@ function CatalogFrame({ children, isEmpty, query, onQueryChange, filters, stats,
4970
4979
  actions: inspectorActions,
4971
4980
  footer: inspectorFooter,
4972
4981
  width: inspectorWidth,
4982
+ labels: { close: labels.closeInspector },
4973
4983
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4974
4984
  className: "gap-group flex flex-col",
4975
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-uXmoyvd7.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-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";
@@ -1029,6 +1029,8 @@ interface EventMetaEditorLabels {
1029
1029
  displayNamePlaceholder?: string;
1030
1030
  descriptionPlaceholder?: string;
1031
1031
  tagsPlaceholder?: string;
1032
+ /** The icon picker's own empty text. Forwarded, so one `labels` covers the pane. */
1033
+ iconPlaceholder?: string;
1032
1034
  emptyTagsMessage?: string;
1033
1035
  }
1034
1036
  /** Renders the event meta editor component. */
@@ -1624,6 +1626,14 @@ declare function CatalogCellControls({ children }: {
1624
1626
  }): import("react").JSX.Element;
1625
1627
  /** Localized strings for the catalog frame. */
1626
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;
1627
1637
  emptyTitle?: string;
1628
1638
  emptyDescription?: string;
1629
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-CrYlRZew.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-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";
@@ -1029,6 +1029,8 @@ interface EventMetaEditorLabels {
1029
1029
  displayNamePlaceholder?: string;
1030
1030
  descriptionPlaceholder?: string;
1031
1031
  tagsPlaceholder?: string;
1032
+ /** The icon picker's own empty text. Forwarded, so one `labels` covers the pane. */
1033
+ iconPlaceholder?: string;
1032
1034
  emptyTagsMessage?: string;
1033
1035
  }
1034
1036
  /** Renders the event meta editor component. */
@@ -1624,6 +1626,14 @@ declare function CatalogCellControls({ children }: {
1624
1626
  }): import("react").JSX.Element;
1625
1627
  /** Localized strings for the catalog frame. */
1626
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;
1627
1637
  emptyTitle?: string;
1628
1638
  emptyDescription?: string;
1629
1639
  filteredEmptyTitle?: string;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
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
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-BXAXigMS.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({ className: cn("flex items-start rounded-lg border", toneStyles[tone], sizeStyles$3[size], className) }, props), {}, {
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,
@@ -342,7 +345,7 @@ function SegmentedControl({ options, value, onChange, size = "md", fullWidth = f
342
345
  /* @__PURE__ */ jsx(Radio$1, {
343
346
  value: option.value,
344
347
  disabled: itemDisabled,
345
- className: "sr-only"
348
+ className: "absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0"
346
349
  }),
347
350
  option.icon,
348
351
  /* @__PURE__ */ jsx("span", { children: option.label }),
@@ -2075,7 +2078,7 @@ function EventIcon({ icon, color, size = "md", className, labels: customLabels }
2075
2078
  const resolvedColor = (color === null || color === void 0 ? void 0 : color.trim()) ? color : void 0;
2076
2079
  const iconEntry = typeof icon === "string" ? getIconRegistryEntry(icon) : void 0;
2077
2080
  const iconElement = React.isValidElement(icon) ? icon : null;
2078
- 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;
2079
2082
  let iconContent;
2080
2083
  if (iconEntry) iconContent = /* @__PURE__ */ jsx(iconEntry.Icon, {
2081
2084
  "aria-hidden": true,
@@ -2991,6 +2994,7 @@ const defaultLabels$21 = {
2991
2994
  displayNamePlaceholder: "Page View",
2992
2995
  descriptionPlaceholder: "Triggered when a user views a page",
2993
2996
  tagsPlaceholder: "Add tag...",
2997
+ iconPlaceholder: "Select icon",
2994
2998
  emptyTagsMessage: "No tags added yet."
2995
2999
  };
2996
3000
  /** Renders the event meta editor component. */
@@ -3005,7 +3009,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3005
3009
  onChange(_objectSpread2(_objectSpread2({}, value), partial));
3006
3010
  };
3007
3011
  return /* @__PURE__ */ jsxs("div", {
3008
- className: cn("gap-group flex flex-col", className),
3012
+ className: cn("@container gap-group flex flex-col", className),
3009
3013
  "data-opt-id": "EZR35",
3010
3014
  "data-opt-slug": "event-meta-editor.EventMetaEditor",
3011
3015
  children: [
@@ -3019,6 +3023,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3019
3023
  value: value.icon,
3020
3024
  onChange: (icon) => update({ icon }),
3021
3025
  icons,
3026
+ placeholder: labels.iconPlaceholder,
3022
3027
  "aria-label": labels.icon
3023
3028
  })] }),
3024
3029
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
@@ -3040,7 +3045,7 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3040
3045
  ]
3041
3046
  }),
3042
3047
  /* @__PURE__ */ jsxs("div", {
3043
- className: "gap-group grid grid-cols-2",
3048
+ className: "gap-group grid grid-cols-1 @sm:grid-cols-2",
3044
3049
  children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
3045
3050
  htmlFor: nameId,
3046
3051
  className: "text-text-tertiary mb-1 block text-xs font-medium",
@@ -3050,7 +3055,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3050
3055
  value: value.name,
3051
3056
  onChange: (e) => update({ name: e.target.value }),
3052
3057
  placeholder: labels.namePlaceholder,
3053
- className: "font-mono"
3058
+ className: "font-mono",
3059
+ fullWidth: true
3054
3060
  })] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
3055
3061
  htmlFor: displayNameId,
3056
3062
  className: "text-text-tertiary mb-1 block text-xs font-medium",
@@ -3059,7 +3065,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3059
3065
  id: displayNameId,
3060
3066
  value: value.displayName,
3061
3067
  onChange: (e) => update({ displayName: e.target.value }),
3062
- placeholder: labels.displayNamePlaceholder
3068
+ placeholder: labels.displayNamePlaceholder,
3069
+ fullWidth: true
3063
3070
  })] })]
3064
3071
  }),
3065
3072
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
@@ -3070,7 +3077,8 @@ function EventMetaEditor({ value, onChange, icons, sections, footer, className,
3070
3077
  id: descriptionId,
3071
3078
  value: value.description,
3072
3079
  onChange: (e) => update({ description: e.target.value }),
3073
- placeholder: labels.descriptionPlaceholder
3080
+ placeholder: labels.descriptionPlaceholder,
3081
+ fullWidth: true
3074
3082
  })] }),
3075
3083
  /* @__PURE__ */ jsxs("div", { children: [
3076
3084
  /* @__PURE__ */ jsx("span", {
@@ -4871,6 +4879,7 @@ function CatalogCellControls({ children }) {
4871
4879
  });
4872
4880
  }
4873
4881
  const defaultLabels$13 = {
4882
+ closeInspector: "Close panel",
4874
4883
  emptyTitle: "아직 아무것도 없습니다",
4875
4884
  emptyDescription: "데이터가 도착하면 여기에 나타납니다.",
4876
4885
  filteredEmptyTitle: "조건에 맞는 항목이 없습니다",
@@ -4970,6 +4979,7 @@ function CatalogFrame({ children, isEmpty, query, onQueryChange, filters, stats,
4970
4979
  actions: inspectorActions,
4971
4980
  footer: inspectorFooter,
4972
4981
  width: inspectorWidth,
4982
+ labels: { close: labels.closeInspector },
4973
4983
  children: /* @__PURE__ */ jsxs("div", {
4974
4984
  className: "gap-group flex flex-col",
4975
4985
  children: [body, onPageChange && totalCount != null && totalCount > pageSize && /* @__PURE__ */ jsx(Pagination, {