@reopt-ai/opt-ui 1.12.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -299,37 +299,38 @@ import { AppShell } from "@reopt-ai/opt-ui";
299
299
 
300
300
  ## Data Display
301
301
 
302
- | Component | Description | Key Exports |
303
- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
304
- | DataTable | 제네릭 데이터 테이블. 동적 컬럼, 결측값 안전 정렬, 키보드 컬럼 리사이즈, 보정된 인라인 진행률과 Composite 탐색을 지원합니다. | `DataTable` |
305
- | InlineEditTable | 인라인 편집 테이블. 더블클릭으로 셀 편집, Enter 확정, Escape 취소. | `InlineEditTable` |
306
- | TreeTable | 계층형 트리 테이블. 재귀 행 렌더링 + 펼침/접기 셰브론. | `TreeTable` |
307
- | DomainTable | 도메인 테이블. Composite 기반 그리드로 키보드 탐색 지원. | `DomainTable` |
308
- | QueryResultsTable | 쿼리 결과 테이블. SQL 결과와 스크린 리더에 안내되는 로딩, 에러, 빈 상태를 지원합니다. | `QueryResultsTable` |
309
- | DashboardGrid | Composite 기반 통계 카드 그리드. 유효한 1–4열 레이아웃과 화살표 키 2D 탐색을 지원합니다. | `DashboardGrid` |
310
- | SummaryRow | 통계 요약 행. StatCard 그리드 레이아웃을 표준화합니다. loading 시 SkeletonCard 표시. | `SummaryRow` |
311
- | CodeSnippetViewer | 코드 스니펫 뷰어. 줄 번호, 복사 버튼, 포커스 가능한 스크롤 영역, syntaxTheme 톤을 지원합니다. | `CodeSnippetViewer` |
312
- | CodeDiffViewer | 코드 비교 뷰어. LCS 알고리즘 기반 unified/split 모드 diff와 포커스 가능한 스크롤 영역을 제공합니다. | `CodeDiffViewer` |
313
- | ConnectionIndicator | 연결 상태 표시기. connected, connecting, disconnected, error 상태를 지원합니다. | `ConnectionIndicator` |
314
- | EventIcon | 이벤트 아이콘. semantic key 또는 ReactNode 아이콘과 배경색을 표시합니다. | `EventIcon`, `POPULAR_ICONS`, `COLOR_PRESETS` |
302
+ | Component | Description | Key Exports |
303
+ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
304
+ | DataTable | 제네릭 데이터 테이블. 제목은 opt-in이고 ariaLabel로 grid를 이름 붙이며, 동적 컬럼·안전 정렬·키보드 리사이즈·Composite 탐색을 지원합니다. | `DataTable` |
305
+ | InlineEditTable | 인라인 편집 테이블. 더블클릭으로 셀 편집, Enter 확정, Escape 취소. | `InlineEditTable` |
306
+ | TreeTable | 계층형 트리 테이블. 재귀 행 렌더링 + 펼침/접기 셰브론. | `TreeTable` |
307
+ | DomainTable | 도메인 테이블. Composite 기반 그리드로 키보드 탐색 지원. | `DomainTable` |
308
+ | QueryResultsTable | 쿼리 결과 테이블. SQL 결과와 스크린 리더에 안내되는 로딩, 에러, 빈 상태를 지원합니다. | `QueryResultsTable` |
309
+ | DashboardGrid | Composite 기반 통계 카드 그리드. 유효한 1–4열 레이아웃과 화살표 키 2D 탐색을 지원합니다. | `DashboardGrid` |
310
+ | SummaryRow | 통계 요약 행. StatCard 그리드 레이아웃을 표준화합니다. loading 시 SkeletonCard 표시. | `SummaryRow` |
311
+ | CodeSnippetViewer | 코드 스니펫 뷰어. 줄 번호, 복사 버튼, 포커스 가능한 스크롤 영역, syntaxTheme 톤을 지원합니다. | `CodeSnippetViewer` |
312
+ | CodeDiffViewer | 코드 비교 뷰어. LCS 알고리즘 기반 unified/split 모드 diff와 포커스 가능한 스크롤 영역을 제공합니다. | `CodeDiffViewer` |
313
+ | ConnectionIndicator | 연결 상태 표시기. connected, connecting, disconnected, error 상태를 지원합니다. | `ConnectionIndicator` |
314
+ | EventIcon | 이벤트 아이콘. semantic key 또는 ReactNode 아이콘과 배경색을 표시합니다. | `EventIcon`, `POPULAR_ICONS`, `COLOR_PRESETS` |
315
315
 
316
316
  ### DataTable
317
317
 
318
- > 제네릭 데이터 테이블. 동적 컬럼, 결측값 안전 정렬, 키보드 컬럼 리사이즈, 보정된 인라인 진행률과 Composite 탐색을 지원합니다.
318
+ > 제네릭 데이터 테이블. 제목은 opt-in이고 ariaLabel로 grid를 이름 붙이며, 동적 컬럼·안전 정렬·키보드 리사이즈·Composite 탐색을 지원합니다.
319
319
 
320
320
  **Import:** `import { DataTable } from "@reopt-ai/opt-ui"`
321
321
  **Dependencies:** composite-zone (core), button (core), checkbox (core)
322
322
 
323
323
  **DataTable:**
324
324
 
325
- | Prop | Type | Required | Default | Description |
326
- | -------------- | -------------------- | -------- | ------------------- | --------------------------------------------------- |
327
- | `data` | `T[]` | Yes | | 테이블 데이터 배열 |
328
- | `columns` | `ColumnDef<T>[]` | Yes | | 컬럼 정의. { id, header, accessor, width?, align? } |
329
- | `keyExtractor` | `(row: T) => string` | Yes | | 각 행의 고유 키 추출 함수 |
330
- | `title` | `string` | | "데이터 테이블" | 테이블 제목 |
331
- | `onRowClick` | `(row: T) => void` | | | 클릭 핸들러 |
332
- | `emptyMessage` | `string` | | "데이터가 없습니다" | 데이터 없을 때 표시할 메시지 |
325
+ | Prop | Type | Required | Default | Description |
326
+ | -------------- | -------------------- | -------- | ------------------- | ----------------------------------------------------------- |
327
+ | `data` | `T[]` | Yes | | 테이블 데이터 배열 |
328
+ | `columns` | `ColumnDef<T>[]` | Yes | | 컬럼 정의. { id, header, accessor, width?, align? } |
329
+ | `keyExtractor` | `(row: T) => string` | Yes | | 각 행의 고유 키 추출 함수 |
330
+ | `title` | `string` | | | 테이블 위에 표시할 제목. 생략하면 제목 영역을 렌더하지 않음 |
331
+ | `ariaLabel` | `string` | | | 보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름 |
332
+ | `onRowClick` | `(row: T) => void` | | | 클릭 핸들러 |
333
+ | `emptyMessage` | `string` | | "No data available" | 데이터 없을 때 표시할 메시지 |
333
334
 
334
335
  **ColumnDef:**
335
336
 
@@ -1135,14 +1136,14 @@ const fields = [
1135
1136
 
1136
1137
  ## Analytics
1137
1138
 
1138
- | Component | Description | Key Exports |
1139
- | ---------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------ |
1140
- | SqlEditor | SQL 에디터. CodeMirror 기반의 SQL 편집기로 구문 강조와 자동 완성을 지원합니다. | `SqlEditor` |
1141
- | EventMetaEditor | 이벤트 메타 에디터. 레이블이 연결된 IconPicker + ColorPicker + TagInput 조합으로 이벤트 메타데이터를 편집합니다. | `EventMetaEditor` |
1142
- | PropertyExplorer | 프로퍼티 탐색기. 검색 가능한 속성 목록을 그룹별로 표시합니다. | `PropertyExplorer` |
1143
- | RichTextEditor | 마크다운 리치 텍스트 에디터. 서식 툴바 + textarea 조합. | `RichTextEditor` |
1144
- | ExportButton | 데이터 내보내기 버튼. CSV/JSON 변환 내장, PDF는 콜백 위임. DropdownMenu 기반. | `ExportButton` |
1145
- | InsightsPanel | 이상 탐지 인사이트 패널. severity별 카드, 통계 필터, dismiss 기능, 검출 설정(유형/Z-score/days). | `InsightsPanel` |
1139
+ | Component | Description | Key Exports |
1140
+ | ---------------- | ---------------------------------------------------------------------------------------------------------- | ------------------ |
1141
+ | SqlEditor | SQL 에디터. CodeMirror 기반의 SQL 편집기로 구문 강조와 자동 완성을 지원합니다. | `SqlEditor` |
1142
+ | EventMetaEditor | 기본 이벤트 메타와 호출자 소유 섹션을 폼에서 편집하고, footer의 액션으로 함께 저장할 있습니다. | `EventMetaEditor` |
1143
+ | PropertyExplorer | 검색 가능한 속성 목록을 그룹별로 표시하고, 숨김 상태와 호출자 소유의 명시적인 편집 액션을 함께 제공합니다. | `PropertyExplorer` |
1144
+ | RichTextEditor | 마크다운 리치 텍스트 에디터. 서식 툴바 + textarea 조합. | `RichTextEditor` |
1145
+ | ExportButton | 데이터 내보내기 버튼. CSV/JSON 변환 내장, PDF는 콜백 위임. DropdownMenu 기반. | `ExportButton` |
1146
+ | InsightsPanel | 이상 탐지 인사이트 패널. severity별 카드, 통계 필터, dismiss 기능, 검출 설정(유형/Z-score/days). | `InsightsPanel` |
1146
1147
 
1147
1148
  ### SqlEditor
1148
1149
 
@@ -1172,18 +1173,61 @@ const fields = [
1172
1173
 
1173
1174
  ### EventMetaEditor
1174
1175
 
1175
- > 이벤트 메타 에디터. 레이블이 연결된 IconPicker + ColorPicker + TagInput 조합으로 이벤트 메타데이터를 편집합니다.
1176
+ > 기본 이벤트 메타와 호출자 소유 섹션을 폼에서 편집하고, footer의 액션으로 함께 저장할 수 있습니다.
1176
1177
 
1177
1178
  **Import:** `import { EventMetaEditor } from "@reopt-ai/opt-ui"`
1178
1179
  **Dependencies:** input (core), icon-picker (core), color-picker (core), tag-input (core)
1179
1180
 
1181
+ **EventMetaEditor:**
1182
+
1183
+ | Prop | Type | Required | Default | Description |
1184
+ | ----------- | --------------------------- | -------- | ------- | ------------------------------------------------------ |
1185
+ | `value` | `EventMeta` | Yes | | 편집 중인 이벤트 메타데이터 |
1186
+ | `onChange` | `(meta: EventMeta) => void` | Yes | | 메타데이터 변경 |
1187
+ | `icons` | `IconDef[]` | | | 선택 가능한 아이콘 |
1188
+ | `sections` | `EventMetaEditorSection[]` | | | 기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션 |
1189
+ | `footer` | `ReactNode` | | | 내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역 |
1190
+ | `className` | `string` | | | 추가 CSS 클래스 |
1191
+ | `labels` | `EventMetaEditorLabels` | | | 필드 레이블과 placeholder 문구 |
1192
+
1193
+ **EventMetaEditorSection:**
1194
+
1195
+ | Prop | Type | Required | Default | Description |
1196
+ | ------------- | ----------- | -------- | ------- | ---------------------------- |
1197
+ | `id` | `string` | Yes | | 섹션 키 |
1198
+ | `title` | `ReactNode` | | | 섹션 제목 |
1199
+ | `description` | `ReactNode` | | | 섹션 변경이 미치는 영향 안내 |
1200
+ | `children` | `ReactNode` | Yes | | 호출자가 소유하는 필드 |
1201
+
1180
1202
  ### PropertyExplorer
1181
1203
 
1182
- > 프로퍼티 탐색기. 검색 가능한 속성 목록을 그룹별로 표시합니다.
1204
+ > 검색 가능한 속성 목록을 그룹별로 표시하고, 숨김 상태와 호출자 소유의 명시적인 편집 액션을 함께 제공합니다.
1183
1205
 
1184
1206
  **Import:** `import { PropertyExplorer } from "@reopt-ai/opt-ui"`
1185
1207
  **Dependencies:** input (core)
1186
1208
 
1209
+ **PropertyExplorer:**
1210
+
1211
+ | Prop | Type | Required | Default | Description |
1212
+ | ----------- | --------------------------------- | -------- | ------- | -------------------------------------------------------------- |
1213
+ | `groups` | `PropertyGroup[]` | Yes | | 그룹별 속성 목록. 각 속성은 dataType과 hidden 상태를 포함 가능 |
1214
+ | `onSelect` | `(property: PropertyDef) => void` | | | 속성 선택 |
1215
+ | `onEdit` | `(property: PropertyDef) => void` | | | 행에 명시적인 편집 버튼을 표시하고 선택한 속성을 전달 |
1216
+ | `className` | `string` | | | 추가 CSS 클래스 |
1217
+ | `labels` | `PropertyExplorerLabels` | | | 검색·빈 상태·편집·숨김 문구 |
1218
+
1219
+ **PropertyDef:**
1220
+
1221
+ | Prop | Type | Required | Default | Description |
1222
+ | -------------- | --------------- | -------- | ------- | ------------------------------------------------- |
1223
+ | `name` | `string` | Yes | | 속성 이름 |
1224
+ | `type` | `string` | Yes | | 원본 스키마 타입 |
1225
+ | `dataType` | `FieldDataType` | | | 호출자가 이미 판정한 opt-ui 필드 타입 |
1226
+ | `description` | `string` | | | 속성 설명 |
1227
+ | `exampleValue` | `string` | | | 예시 값 |
1228
+ | `eventCount` | `number` | | | 관측 이벤트 수 |
1229
+ | `hidden` | `boolean` | | | 피커에서는 숨기되 탐색기에서는 흐리게 표시할 상태 |
1230
+
1187
1231
  ### RichTextEditor
1188
1232
 
1189
1233
  > 마크다운 리치 텍스트 에디터. 서식 툴바 + textarea 조합.
@@ -1724,6 +1768,8 @@ const messages = [
1724
1768
  | `footer` | `ReactNode` | | | 인스펙터 하단 |
1725
1769
  | `breakpoint` | `"lg" \| "xl" \| "2xl"` | | "xl" | 이 폭 이상이면 push |
1726
1770
  | `width` | `"sm" \| "md" \| "lg"` | | "md" | push 레이아웃에서의 인스펙터 폭 |
1771
+ | `labels` | `InspectorLayoutLabels` | | | 닫기 버튼 등 인스펙터 문구 |
1772
+ | `className` | `string` | | | 추가 CSS 클래스 |
1727
1773
 
1728
1774
  ### QueryFilterBar
1729
1775
 
@@ -1742,6 +1788,8 @@ const messages = [
1742
1788
  | `live` | `boolean` | | false | 매 입력마다 커밋 |
1743
1789
  | `disabled` | `boolean` | | false | 전체 비활성 |
1744
1790
  | `queryBarLabels` | `QueryBarLabels` | | | QueryBar로 통과되는 나머지 문구. placeholder/ariaLabel은 labels가 이깁니다 |
1791
+ | `labels` | `QueryFilterBarLabels` | | | 검색·필터·초기화 문구 |
1792
+ | `className` | `string` | | | 추가 CSS 클래스 |
1745
1793
 
1746
1794
  ### CatalogFrame
1747
1795
 
@@ -1784,6 +1832,7 @@ const messages = [
1784
1832
  | `error` | `ReactNode` | | | 읽기 실패. 빈 목록과 다른 답 |
1785
1833
  | `onRetry` | `() => void` | | | 재시도 |
1786
1834
  | `labels` | `CatalogFrameLabels` | | | 빈/필터된 빈/에러 문구 |
1835
+ | `className` | `string` | | | 추가 CSS 클래스 |
1787
1836
 
1788
1837
  **CatalogRowActions:**
1789
1838
 
@@ -1794,6 +1843,16 @@ const messages = [
1794
1843
  | `visibleCount` | `number` | | 2 | 오버플로 전에 노출할 개수. available 필터링 후에 적용됨 |
1795
1844
  | `labels` | `CatalogRowActionsLabels` | | | 그룹·오버플로 라벨 |
1796
1845
 
1846
+ **CatalogRowAction:**
1847
+
1848
+ | Prop | Type | Required | Default | Description |
1849
+ | ----------- | ---------------------- | -------- | ------- | ----------------------------------------------- |
1850
+ | `id` | `string` | Yes | | 액션 키 |
1851
+ | `label` | `string` | Yes | | 액션 문구 |
1852
+ | `icon` | `ReactNode` | | | 선택적 액션 아이콘 |
1853
+ | `onSelect` | `(item: T) => void` | Yes | | 행과 함께 호출되는 액션 |
1854
+ | `available` | `(item: T) => boolean` | | | 이 행에 적용되지 않는 액션을 비활성화 대신 제거 |
1855
+
1797
1856
  **CatalogCellControls:**
1798
1857
 
1799
1858
  | Prop | Type | Required | Default | Description |
@@ -2944,7 +2944,7 @@ function Flyout({ open, onClose, title, description, type = "overlay", side = "r
2944
2944
  });
2945
2945
  if (type === "inline") return panel;
2946
2946
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [scrim && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2947
- className: "bg-overlay fixed inset-0 z-30",
2947
+ className: "bg-scrim fixed inset-0 z-30",
2948
2948
  "aria-hidden": "true"
2949
2949
  }), panel] });
2950
2950
  }
@@ -2943,7 +2943,7 @@ function Flyout({ open, onClose, title, description, type = "overlay", side = "r
2943
2943
  });
2944
2944
  if (type === "inline") return panel;
2945
2945
  return /* @__PURE__ */ jsxs(Fragment, { children: [scrim && /* @__PURE__ */ jsx("div", {
2946
- className: "bg-overlay fixed inset-0 z-30",
2946
+ className: "bg-scrim fixed inset-0 z-30",
2947
2947
  "aria-hidden": "true"
2948
2948
  }), panel] });
2949
2949
  }
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-I1XLWmRa.cjs");
4
4
  const require_key_pad_menu = require("./key-pad-menu-SItoHPLu.cjs");
5
- const require_field_sidebar = require("./field-sidebar-BYgEmdy0.cjs");
5
+ const require_field_sidebar = require("./field-sidebar-oa6zOmcd.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);
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { $ as PopoverClose, $t as CompositeProvider, A as FormRadio, An as OPT_BADGE_RED, At as DialogBody, B as FormSubmit, Bn as OPT_FOCUS, Bt as SelectLabel, C as FormGroupLabel, Ct as ComboboxGroup, D as FormNumberInput, Dn as OPT_BADGE_BLUE, Dt as ComboboxPopover, E as FormLabel, Et as ComboboxItem, F as FormSelect, Ft as DialogHeader, G as useFormContext, Gt as TabList, H as FormTagInput, Hn as OPT_HOVER_ITEM, Ht as SelectRoot, I as FormSelectItem, In as OPT_DOT_GRAY, It as DialogHeading, J as DateRangePicker, Jt as DisclosureContent, K as useFormStore, Kt as TabPanel, L as FormSelectPopover, Ln as OPT_DOT_GREEN, Lt as DialogPanel, M as FormRemove, Mn as OPT_BORDER, Mt as DialogDisclosure, N as FormReset, Nt as DialogDismiss, O as FormProvider, On as OPT_BADGE_GREEN, Ot as ComboboxRoot, P as FormRoot, Pt as DialogFooter, Q as ColorPicker, Qt as CompositeItem, R as FormSlider, Rn as OPT_DOT_RED, Rt as DialogRoot, S as FormGroup, St as ComboboxEmpty, T as FormInput, Tt as ComboboxInput, U as FormTextarea, Un as OPT_INPUT, Ut as SelectTrigger, V as FormSwitch, Vn as OPT_FOCUS_VISIBLE, Vt as SelectPopover, W as useFieldValue, Wt as Tab, X as IconPicker, Xn as OPT_TD, Xt as DisclosureTrigger, Y as TagInput, Yt as DisclosureRoot, Z as getIconRegistryEntry, Zt as Composite, _ as FormControl, _n as SkeletonCard, _t as MenuRoot, a as FieldTokenLegend, an as useInputId, ar as _objectWithoutProperties, at as ToolbarButton, b as FormError, bn as useControlledState, bt as MenubarContainer, c as Checkbox, cn as Badge, ct as ToolbarSeparator, d as formatOptDateTime, dn as koBreadcrumbLabels, dt as TooltipProvider, en as CompositeRow, er as OPT_TEXT_PRIMARY, et as PopoverContent, f as formatOptNumber, fn as koComboboxLabels, ft as MenuButtonArrow, g as FormColorPicker, gn as SkeletonAvatar, gt as MenuPopover, h as FormCheckbox, hn as Skeleton, ht as MenuItemRadio, i as FieldToken, in as Input, ir as _objectSpread2, it as NumberInput, j as FormRadioGroup, jn as OPT_BADGE_YELLOW, jt as DialogDescription, k as FormPush, kn as OPT_BADGE_NEUTRAL, kt as AlertDialogPanel, l as CheckboxGroup, ln as EmptyState, lt as Tooltip, m as formatOptTime, mn as StatCard, mt as MenuItemCheckbox, n as Highlight, nn as Meter, nr as OPT_TEXT_TERTIARY, nt as PopoverTrigger, o as resolveFieldType, on as Alert, or as Kbd, ot as ToolbarContainer, p as formatOptShortDate, pn as koStarRatingLabels, pt as MenuItem, q as DEFAULT_PRESETS, qt as TabsRoot, r as FIELD_TYPE_TOKENS, rn as StarRating, rr as OPT_TH, rt as Slider, s as Pagination, sn as Spinner, sr as cn, st as ToolbarRoot, t as TextTruncate, tn as CompositeZone, tr as OPT_TEXT_SECONDARY, tt as PopoverRoot, un as Button, ut as TooltipAnchor, v as FormDateRangePicker, vn as SkeletonTable, vt as MenuSeparator, w as FormIconPicker, wt as ComboboxGroupLabel, x as FormField, xt as MenubarRoot, y as FormDescription, yn as SkeletonText, yt as MenuTrigger, z as FormStarRating, zn as OPT_DOT_YELLOW, zt as SelectItem } from "./text-truncate-DSuZECy0.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-Di2aRGbM.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-BuO37l4c.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-zkkqC7__.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";
package/dist/meta.cjs CHANGED
@@ -3,7 +3,7 @@ const coreMetas = [
3
3
  {
4
4
  name: "FieldToken",
5
5
  category: "core",
6
- description: "필드 타입을 글리프 하나로 표현하는 토큰. 문자열·숫자·날짜·IP·지오 등 분석 스키마 타입마다 고정된 아이콘과 팔레트 슬롯을 부여해 필드 목록·컬럼 헤더·속성 테이블 전역에서 같은 어휘를 쓴다.",
6
+ description: "필드 타입을 일관된 글리프와 선택적 텍스트 레이블로 표현합니다. 문자열·숫자·날짜·IP·지오 등 분석 스키마 타입마다 같은 아이콘과 팔레트 슬롯을 씁니다.",
7
7
  slug: "field-token",
8
8
  exports: [
9
9
  "FieldToken",
@@ -46,6 +46,17 @@ const coreMetas = [
46
46
  default: "false",
47
47
  description: "인접 텍스트가 타입을 이미 말할 때 접근성 트리에서 제외"
48
48
  },
49
+ {
50
+ name: "withLabel",
51
+ type: "boolean",
52
+ default: "false",
53
+ description: "글리프 옆에 타입 이름을 함께 표시"
54
+ },
55
+ {
56
+ name: "label",
57
+ type: "string",
58
+ description: "withLabel이 표시할 문구. 기본값은 타입 이름"
59
+ },
49
60
  {
50
61
  name: "className",
51
62
  type: "string",
@@ -5157,6 +5168,11 @@ const MyDashboard = createBlock<MyDashboardProps>(
5157
5168
  type: "string",
5158
5169
  required: true,
5159
5170
  description: "radiogroup 이름. 필수"
5171
+ },
5172
+ {
5173
+ name: "className",
5174
+ type: "string",
5175
+ description: "추가 CSS 클래스"
5160
5176
  }
5161
5177
  ] },
5162
5178
  usage: {
@@ -5767,7 +5783,7 @@ const fields = [
5767
5783
  {
5768
5784
  name: "DataTable",
5769
5785
  category: "shell",
5770
- description: "제네릭 데이터 테이블. 동적 컬럼, 결측값 안전 정렬, 키보드 컬럼 리사이즈, 보정된 인라인 진행률과 Composite 탐색을 지원합니다.",
5786
+ description: "제네릭 데이터 테이블. 제목은 opt-in이고 ariaLabel로 grid를 이름 붙이며, 동적 컬럼·안전 정렬·키보드 리사이즈·Composite 탐색을 지원합니다.",
5771
5787
  slug: "data-table",
5772
5788
  exports: ["DataTable"],
5773
5789
  keyboardShortcuts: [
@@ -5835,8 +5851,12 @@ const fields = [
5835
5851
  {
5836
5852
  name: "title",
5837
5853
  type: "string",
5838
- default: "\"데이터 테이블\"",
5839
- description: "테이블 제목"
5854
+ description: "테이블 위에 표시할 제목. 생략하면 제목 영역을 렌더하지 않음"
5855
+ },
5856
+ {
5857
+ name: "ariaLabel",
5858
+ type: "string",
5859
+ description: "보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름"
5840
5860
  },
5841
5861
  {
5842
5862
  name: "onRowClick",
@@ -5846,7 +5866,7 @@ const fields = [
5846
5866
  {
5847
5867
  name: "emptyMessage",
5848
5868
  type: "string",
5849
- default: "\"데이터가 없습니다\"",
5869
+ default: "\"No data available\"",
5850
5870
  description: "데이터 없을 때 표시할 메시지"
5851
5871
  }
5852
5872
  ],
@@ -6820,10 +6840,78 @@ const filters = [
6820
6840
  {
6821
6841
  name: "PropertyExplorer",
6822
6842
  category: "shell",
6823
- description: "프로퍼티 탐색기. 검색 가능한 속성 목록을 그룹별로 표시합니다.",
6843
+ description: "검색 가능한 속성 목록을 그룹별로 표시하고, 숨김 상태와 호출자 소유의 명시적인 편집 액션을 함께 제공합니다.",
6824
6844
  slug: "property-explorer",
6825
6845
  exports: ["PropertyExplorer"],
6826
- props: {},
6846
+ props: {
6847
+ PropertyExplorer: [
6848
+ {
6849
+ name: "groups",
6850
+ type: "PropertyGroup[]",
6851
+ required: true,
6852
+ description: "그룹별 속성 목록. 각 속성은 dataType과 hidden 상태를 포함 가능"
6853
+ },
6854
+ {
6855
+ name: "onSelect",
6856
+ type: "(property: PropertyDef) => void",
6857
+ description: "속성 선택"
6858
+ },
6859
+ {
6860
+ name: "onEdit",
6861
+ type: "(property: PropertyDef) => void",
6862
+ description: "행에 명시적인 편집 버튼을 표시하고 선택한 속성을 전달"
6863
+ },
6864
+ {
6865
+ name: "className",
6866
+ type: "string",
6867
+ description: "추가 CSS 클래스"
6868
+ },
6869
+ {
6870
+ name: "labels",
6871
+ type: "PropertyExplorerLabels",
6872
+ description: "검색·빈 상태·편집·숨김 문구"
6873
+ }
6874
+ ],
6875
+ PropertyDef: [
6876
+ {
6877
+ name: "name",
6878
+ type: "string",
6879
+ required: true,
6880
+ description: "속성 이름"
6881
+ },
6882
+ {
6883
+ name: "type",
6884
+ type: "string",
6885
+ required: true,
6886
+ description: "원본 스키마 타입"
6887
+ },
6888
+ {
6889
+ name: "dataType",
6890
+ type: "FieldDataType",
6891
+ description: "호출자가 이미 판정한 opt-ui 필드 타입"
6892
+ },
6893
+ {
6894
+ name: "description",
6895
+ type: "string",
6896
+ description: "속성 설명"
6897
+ },
6898
+ {
6899
+ name: "exampleValue",
6900
+ type: "string",
6901
+ description: "예시 값"
6902
+ },
6903
+ {
6904
+ name: "eventCount",
6905
+ type: "number",
6906
+ description: "관측 이벤트 수"
6907
+ },
6908
+ {
6909
+ name: "hidden",
6910
+ type: "boolean",
6911
+ description: "피커에서는 숨기되 탐색기에서는 흐리게 표시할 상태"
6912
+ }
6913
+ ]
6914
+ },
6827
6915
  dependencies: [{
6828
6916
  slug: "input",
6829
6917
  category: "core"
@@ -6982,10 +7070,74 @@ const filters = [
6982
7070
  {
6983
7071
  name: "EventMetaEditor",
6984
7072
  category: "shell",
6985
- description: "이벤트 메타 에디터. 레이블이 연결된 IconPicker + ColorPicker + TagInput 조합으로 이벤트 메타데이터를 편집합니다.",
7073
+ description: "기본 이벤트 메타와 호출자 소유 섹션을 폼에서 편집하고, footer의 액션으로 함께 저장할 수 있습니다.",
6986
7074
  slug: "event-meta-editor",
6987
7075
  exports: ["EventMetaEditor"],
6988
- props: {},
7076
+ props: {
7077
+ EventMetaEditor: [
7078
+ {
7079
+ name: "value",
7080
+ type: "EventMeta",
7081
+ required: true,
7082
+ description: "편집 중인 이벤트 메타데이터"
7083
+ },
7084
+ {
7085
+ name: "onChange",
7086
+ type: "(meta: EventMeta) => void",
7087
+ required: true,
7088
+ description: "메타데이터 변경"
7089
+ },
7090
+ {
7091
+ name: "icons",
7092
+ type: "IconDef[]",
7093
+ description: "선택 가능한 아이콘"
7094
+ },
7095
+ {
7096
+ name: "sections",
7097
+ type: "EventMetaEditorSection[]",
7098
+ description: "기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션"
7099
+ },
7100
+ {
7101
+ name: "footer",
7102
+ type: "ReactNode",
7103
+ description: "내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역"
7104
+ },
7105
+ {
7106
+ name: "className",
7107
+ type: "string",
7108
+ description: "추가 CSS 클래스"
7109
+ },
7110
+ {
7111
+ name: "labels",
7112
+ type: "EventMetaEditorLabels",
7113
+ description: "필드 레이블과 placeholder 문구"
7114
+ }
7115
+ ],
7116
+ EventMetaEditorSection: [
7117
+ {
7118
+ name: "id",
7119
+ type: "string",
7120
+ required: true,
7121
+ description: "섹션 키"
7122
+ },
7123
+ {
7124
+ name: "title",
7125
+ type: "ReactNode",
7126
+ description: "섹션 제목"
7127
+ },
7128
+ {
7129
+ name: "description",
7130
+ type: "ReactNode",
7131
+ description: "섹션 변경이 미치는 영향 안내"
7132
+ },
7133
+ {
7134
+ name: "children",
7135
+ type: "ReactNode",
7136
+ required: true,
7137
+ description: "호출자가 소유하는 필드"
7138
+ }
7139
+ ]
7140
+ },
6989
7141
  dependencies: [
6990
7142
  {
6991
7143
  slug: "input",
@@ -9369,6 +9521,16 @@ const messages = [
9369
9521
  type: "\"sm\" | \"md\" | \"lg\"",
9370
9522
  default: "\"md\"",
9371
9523
  description: "push 레이아웃에서의 인스펙터 폭"
9524
+ },
9525
+ {
9526
+ name: "labels",
9527
+ type: "InspectorLayoutLabels",
9528
+ description: "닫기 버튼 등 인스펙터 문구"
9529
+ },
9530
+ {
9531
+ name: "className",
9532
+ type: "string",
9533
+ description: "추가 CSS 클래스"
9372
9534
  }
9373
9535
  ] },
9374
9536
  usage: {
@@ -9434,6 +9596,16 @@ const messages = [
9434
9596
  name: "queryBarLabels",
9435
9597
  type: "QueryBarLabels",
9436
9598
  description: "QueryBar로 통과되는 나머지 문구. placeholder/ariaLabel은 labels가 이깁니다"
9599
+ },
9600
+ {
9601
+ name: "labels",
9602
+ type: "QueryFilterBarLabels",
9603
+ description: "검색·필터·초기화 문구"
9604
+ },
9605
+ {
9606
+ name: "className",
9607
+ type: "string",
9608
+ description: "추가 CSS 클래스"
9437
9609
  }
9438
9610
  ] },
9439
9611
  usage: {
@@ -9616,6 +9788,11 @@ const messages = [
9616
9788
  name: "labels",
9617
9789
  type: "CatalogFrameLabels",
9618
9790
  description: "빈/필터된 빈/에러 문구"
9791
+ },
9792
+ {
9793
+ name: "className",
9794
+ type: "string",
9795
+ description: "추가 CSS 클래스"
9619
9796
  }
9620
9797
  ],
9621
9798
  CatalogRowActions: [
@@ -9643,6 +9820,36 @@ const messages = [
9643
9820
  description: "그룹·오버플로 라벨"
9644
9821
  }
9645
9822
  ],
9823
+ CatalogRowAction: [
9824
+ {
9825
+ name: "id",
9826
+ type: "string",
9827
+ required: true,
9828
+ description: "액션 키"
9829
+ },
9830
+ {
9831
+ name: "label",
9832
+ type: "string",
9833
+ required: true,
9834
+ description: "액션 문구"
9835
+ },
9836
+ {
9837
+ name: "icon",
9838
+ type: "ReactNode",
9839
+ description: "선택적 액션 아이콘"
9840
+ },
9841
+ {
9842
+ name: "onSelect",
9843
+ type: "(item: T) => void",
9844
+ required: true,
9845
+ description: "행과 함께 호출되는 액션"
9846
+ },
9847
+ {
9848
+ name: "available",
9849
+ type: "(item: T) => boolean",
9850
+ description: "이 행에 적용되지 않는 액션을 비활성화 대신 제거"
9851
+ }
9852
+ ],
9646
9853
  CatalogCellControls: [{
9647
9854
  name: "children",
9648
9855
  type: "ReactNode",