@reopt-ai/opt-ui 1.12.1 → 1.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
 
3
3
  <!-- DEPRECATED: Prefer dist/docs/02-components/ for per-layer reference. -->
4
4
  <!-- Auto-generated from ComponentMeta. Do not edit. -->
5
- <!-- Version: 1.12.0 -->
5
+ <!-- Version: 1.12.2 -->
6
6
 
7
7
  ## Quick Stats
8
8
 
@@ -2385,12 +2385,12 @@ const MyDashboard = createBlock<MyDashboardProps>(
2385
2385
 
2386
2386
  **Import:** `import { StatusDot } from "@reopt-ai/opt-ui"`
2387
2387
 
2388
- | Prop | Type | Required | Default | Description |
2389
- | ---------- | ---------------------------------------------------------------------- | -------- | --------- | -------------------------------------- |
2390
- | `tone` | `"neutral" \| "muted" \| "info" \| "success" \| "warning" \| "danger"` | | "neutral" | 점 색상 |
2391
- | `size` | `"sm" \| "md"` | | "md" | 점과 글자 크기 |
2392
- | `children` | `ReactNode` | Yes | | 상태 라벨. 필수 — 색은 상태가 아닙니다 |
2393
- | `hint` | `string` | | | 판정 기준 툴팁 |
2388
+ | Prop | Type | Required | Default | Description |
2389
+ | ---------- | ---------------------------------------------------------------------- | -------- | --------- | -------------------------------------------------------------------------------------- |
2390
+ | `tone` | `"neutral" \| "muted" \| "info" \| "success" \| "warning" \| "danger"` | | "neutral" | 점 색상 |
2391
+ | `size` | `"sm" \| "md"` | | "md" | 점과 글자 크기 |
2392
+ | `children` | `ReactNode` | Yes | | 상태 라벨. 필수 — 색은 상태가 아닙니다 |
2393
+ | `hint` | `string` | | | 판정 기준. 호버·키보드 포커스로 열리는 툴팁이며, 지정하면 이 항목이 탭 정지점이 됩니다 |
2394
2394
 
2395
2395
  #### CopyButton
2396
2396
 
@@ -2671,22 +2671,24 @@ const fields = [
2671
2671
 
2672
2672
  **DataTable:**
2673
2673
 
2674
- | Prop | Type | Required | Default | Description |
2675
- | -------------- | -------------------- | -------- | ------------------- | ----------------------------------------------------------- |
2676
- | `data` | `T[]` | Yes | | 테이블 데이터 배열 |
2677
- | `columns` | `ColumnDef<T>[]` | Yes | | 컬럼 정의. { id, header, accessor, width?, align? } |
2678
- | `keyExtractor` | `(row: T) => string` | Yes | | 각 행의 고유 키 추출 함수 |
2679
- | `title` | `string` | | | 테이블 위에 표시할 제목. 생략하면 제목 영역을 렌더하지 않음 |
2680
- | `ariaLabel` | `string` | | | 보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름 |
2681
- | `onRowClick` | `(row: T) => void` | | | 행 클릭 핸들러 |
2682
- | `emptyMessage` | `string` | | "No data available" | 데이터 없을 때 표시할 메시지 |
2674
+ | Prop | Type | Required | Default | Description |
2675
+ | -------------- | -------------------- | -------- | ------------------- | -------------------------------------------------------------------------------------------------------------- |
2676
+ | `data` | `T[]` | Yes | | 테이블 데이터 배열 |
2677
+ | `columns` | `ColumnDef<T>[]` | Yes | | 컬럼 정의. { id, header, accessor, width?, align? } |
2678
+ | `keyExtractor` | `(row: T) => string` | Yes | | 각 행의 고유 키 추출 함수 |
2679
+ | `title` | `string` | | | 테이블 위에 표시할 제목. 생략하면 제목 영역을 렌더하지 않음 |
2680
+ | `ariaLabel` | `string` | | | 보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름 |
2681
+ | `onRowClick` | `(row: T) => void` | | | 행 클릭 핸들러 |
2682
+ | `emptyMessage` | `string` | | "No data available" | 데이터 없을 때 표시할 메시지 |
2683
+ | `labels` | `DataTableLabels` | | | 선택·리사이즈·펼치기처럼 스크린리더만 듣는 문구. 보이는 문구는 columns와 emptyMessage가 이미 호출자의 것입니다 |
2683
2684
 
2684
2685
  **ColumnDef:**
2685
2686
 
2686
- | Prop | Type | Required | Default | Description |
2687
- | ---------- | -------------------- | -------- | ----------- | ------------------------------------------------------------ |
2688
- | `bar` | `(row: T) => number` | | | 인라인 프로그레스 비율(0-1) 계산 함수. 범위 밖/NaN은 보정 |
2689
- | `barColor` | `string` | | "bg-accent" | 인라인 바 색상 클래스 |
2687
+ | Prop | Type | Required | Default | Description |
2688
+ | -------------- | -------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------- |
2689
+ | `headerHidden` | `boolean` | | false | 이름은 두되 그리지 않음. 액션처럼 제목이 필요 없는 컬럼용 — 빈 header는 컬럼을 익명으로 만듭니다 |
2690
+ | `bar` | `(row: T) => number` | | | 인라인 프로그레스 비율(0-1) 계산 함수. 범위 밖/NaN은 보정 |
2691
+ | `barColor` | `string` | | "bg-accent" | 인라인 바 색상 클래스 |
2690
2692
 
2691
2693
  **Keyboard Shortcuts:**
2692
2694
 
@@ -3130,15 +3132,15 @@ const filters = [
3130
3132
 
3131
3133
  **EventMetaEditor:**
3132
3134
 
3133
- | Prop | Type | Required | Default | Description |
3134
- | ----------- | --------------------------- | -------- | ------- | ------------------------------------------------------ |
3135
- | `value` | `EventMeta` | Yes | | 편집 중인 이벤트 메타데이터 |
3136
- | `onChange` | `(meta: EventMeta) => void` | Yes | | 메타데이터 변경 |
3137
- | `icons` | `IconDef[]` | | | 선택 가능한 아이콘 |
3138
- | `sections` | `EventMetaEditorSection[]` | | | 기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션 |
3139
- | `footer` | `ReactNode` | | | 내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역 |
3140
- | `className` | `string` | | | 추가 CSS 클래스 |
3141
- | `labels` | `EventMetaEditorLabels` | | | 필드 레이블과 placeholder 문구 |
3135
+ | Prop | Type | Required | Default | Description |
3136
+ | ----------- | --------------------------- | -------- | ------- | ------------------------------------------------------------------------------ |
3137
+ | `value` | `EventMeta` | Yes | | 편집 중인 이벤트 메타데이터 |
3138
+ | `onChange` | `(meta: EventMeta) => void` | Yes | | 메타데이터 변경 |
3139
+ | `icons` | `IconDef[]` | | | 선택 가능한 아이콘 |
3140
+ | `sections` | `EventMetaEditorSection[]` | | | 기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션 |
3141
+ | `footer` | `ReactNode` | | | 내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역 |
3142
+ | `className` | `string` | | | 추가 CSS 클래스 |
3143
+ | `labels` | `EventMetaEditorLabels` | | | 필드 레이블과 placeholder 문구. iconPlaceholder는 내부 IconPicker로 전달됩니다 |
3142
3144
 
3143
3145
  **EventMetaEditorSection:**
3144
3146
 
@@ -3906,7 +3908,7 @@ const messages = [
3906
3908
  | `onBulkAction` | `(actionId: string) => void` | | | 일괄 작업 실행 |
3907
3909
  | `error` | `ReactNode` | | | 읽기 실패. 빈 목록과 다른 답 |
3908
3910
  | `onRetry` | `() => void` | | | 재시도 |
3909
- | `labels` | `CatalogFrameLabels` | | | 빈/필터된 빈/에러 문구 |
3911
+ | `labels` | `CatalogFrameLabels` | | | 빈/필터된 빈/에러 문구와 인스펙터 닫기 버튼(closeInspector) |
3910
3912
  | `className` | `string` | | | 추가 CSS 클래스 |
3911
3913
 
3912
3914
  **CatalogRowActions:**
package/README.md CHANGED
@@ -214,13 +214,18 @@ import {
214
214
  ```ts
215
215
  import { matchesQueryObject, parseQuery } from "@reopt-ai/opt-ui/query";
216
216
 
217
- const query = parseQuery("service:api -status:200 duration>250");
217
+ const query = parseQuery("service:api tags:checkout -status:200");
218
218
 
219
219
  const visibleRows = rows.filter((row) =>
220
220
  matchesQueryObject(query, row, { nested: "properties" }),
221
221
  );
222
222
  ```
223
223
 
224
+ 문자열·숫자 같은 단일 값과 `tags: ["checkout", "payment"]` 같은 배열 필드는
225
+ 같은 쿼리로 다룰 수 있습니다. `tags:checkout`과 `tags:*`는 배열 전체를 문자열로
226
+ 바꾸지 않고 각 원소를 비교하며, 빈 배열은 `tags:*`에 일치하지 않습니다. 필드가
227
+ 없는 bare term 검색도 문자열·숫자·불리언 배열 원소를 검색합니다.
228
+
224
229
  UI에서는 동일한 <code>Query</code>를 <code>QueryBar</code>에 전달하고,
225
230
  <code>LogTable</code>의 cell action을 <code>applyCellAction</code>으로 다시
226
231
  쿼리에 합칩니다. <code>FieldSidebar</code>의 값 분포 필터도 같은
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_text_truncate = require("../text-truncate-I1XLWmRa.cjs");
4
- const require_key_pad_menu = require("../key-pad-menu-SItoHPLu.cjs");
3
+ const require_text_truncate = require("../text-truncate-DsG5UAOY.cjs");
4
+ const require_key_pad_menu = require("../key-pad-menu-1YN221Oi.cjs");
5
5
  let _reopt_ai_opt_ui_primitives = require("@reopt-ai/opt-ui-primitives");
6
6
  exports.AccordionContent = require_key_pad_menu.AccordionContent;
7
7
  exports.AccordionItem = require_key_pad_menu.AccordionItem;
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { $ as PopoverClose, $t as CompositeProvider, A as FormRadio, At as DialogBody, B as FormSubmit, Bt as SelectLabel, C as FormGroupLabel, Ct as ComboboxGroup, Dt as ComboboxPopover, E as FormLabel, Et as ComboboxItem, F as FormSelect, Ft as DialogHeader, G as useFormContext, Gt as TabList, Ht as SelectRoot, I as FormSelectItem, It as DialogHeading, J as DateRangePicker, Jt as DisclosureContent, K as useFormStore, Kt as TabPanel, L as FormSelectPopover, Lt as DialogPanel, M as FormRemove, Mt as DialogDisclosure, N as FormReset, Nt as DialogDismiss, O as FormProvider, Ot as ComboboxRoot, P as FormRoot, Pt as DialogFooter, Q as ColorPicker, Qt as CompositeItem, Rt as DialogRoot, S as FormGroup, St as ComboboxEmpty, T as FormInput, Tt as ComboboxInput, U as FormTextarea, Ut as SelectTrigger, V as FormSwitch, Vt as SelectPopover, Wt as Tab, X as IconPicker, Xt as DisclosureTrigger, Y as TagInput, Yt as DisclosureRoot, Zt as Composite, _ as FormControl, _n as SkeletonCard, _t as MenuRoot, at as ToolbarButton, b as FormError, bt as MenubarContainer, c as Checkbox, cn as Badge, ct as ToolbarSeparator, dt as TooltipProvider, en as CompositeRow, et as PopoverContent, ft as MenuButtonArrow, gn as SkeletonAvatar, gt as MenuPopover, h as FormCheckbox, hn as Skeleton, ht as MenuItemRadio, i as FieldToken, in as Input, it as NumberInput, j as FormRadioGroup, jt as DialogDescription, k as FormPush, kt as AlertDialogPanel, l as CheckboxGroup, ln as EmptyState, lt as Tooltip, mn as StatCard, mt as MenuItemCheckbox, n as Highlight, nn as Meter, nt as PopoverTrigger, o as resolveFieldType, on as Alert, or as Kbd, ot as ToolbarContainer, pt as MenuItem, q as DEFAULT_PRESETS, qt as TabsRoot, r as FIELD_TYPE_TOKENS, rt as Slider, s as Pagination, sn as Spinner, st as ToolbarRoot, t as TextTruncate, tn as CompositeZone, tt as PopoverRoot, un as Button, ut as TooltipAnchor, vn as SkeletonTable, vt as MenuSeparator, wt as ComboboxGroupLabel, x as FormField, xt as MenubarRoot, y as FormDescription, yn as SkeletonText, yt as MenuTrigger, zt as SelectItem } from "../text-truncate-DSuZECy0.js";
3
- import { $ as Identity, A as PageHeader, B as DropdownTrigger, C as Logo, D as Section, E as ResizablePanelGroup, F as RadioGroup, G as Textarea, H as StepBuilder, I as DropdownContent, J as CardContent, K as Switch, L as DropdownItem, M as BlockLayout, 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";
2
+ import { $ as PopoverClose, $t as ToolbarButton, A as FormRadio, At as DialogPanel, B as FormSubmit, Bt as TabsRoot, C as FormGroupLabel, Ct as DialogBody, Dt as DialogFooter, E as FormLabel, Et as DialogDismiss, F as FormSelect, Ft as SelectRoot, G as useFormContext, Gt as CompositeItem, Ht as DisclosureRoot, I as FormSelectItem, It as SelectTrigger, J as DateRangePicker, Jt as CompositeZone, K as useFormStore, Kt as CompositeProvider, L as FormSelectPopover, Lt as Tab, M as FormRemove, Mt as SelectItem, N as FormReset, Nt as SelectLabel, O as FormProvider, Ot as DialogHeader, P as FormRoot, Pt as SelectPopover, Q as ColorPicker, Rt as TabList, S as FormGroup, St as AlertDialogPanel, T as FormInput, Tt as DialogDisclosure, U as FormTextarea, Ut as DisclosureTrigger, V as FormSwitch, Vt as DisclosureContent, Wt as Composite, X as IconPicker, Y as TagInput, Yt as Meter, Zt as Input, _ as FormControl, _n as SkeletonCard, _t as ComboboxGroupLabel, an as TooltipProvider, at as MenuButtonArrow, b as FormError, bt as ComboboxPopover, c as Checkbox, cn as Badge, ct as MenuItemRadio, dt as MenuSeparator, en as ToolbarContainer, et as PopoverContent, ft as MenuTrigger, gn as SkeletonAvatar, gt as ComboboxGroup, h as FormCheckbox, hn as Skeleton, ht as ComboboxEmpty, i as FieldToken, in as TooltipAnchor, it as NumberInput, j as FormRadioGroup, jt as DialogRoot, k as FormPush, kt as DialogHeading, l as CheckboxGroup, ln as EmptyState, lt as MenuPopover, mn as StatCard, mt as MenubarRoot, n as Highlight, nn as ToolbarSeparator, nt as PopoverTrigger, o as resolveFieldType, on as Alert, or as Kbd, ot as MenuItem, pt as MenubarContainer, q as DEFAULT_PRESETS, qt as CompositeRow, r as FIELD_TYPE_TOKENS, rn as Tooltip, rt as Slider, s as Pagination, sn as Spinner, st as MenuItemCheckbox, t as TextTruncate, tn as ToolbarRoot, tt as PopoverRoot, un as Button, ut as MenuRoot, vn as SkeletonTable, vt as ComboboxInput, wt as DialogDescription, x as FormField, xt as ComboboxRoot, y as FormDescription, yn as SkeletonText, yt as ComboboxItem, zt as TabPanel } from "../text-truncate-BFWd2cE_.js";
3
+ import { $ as Identity, A as PageHeader, B as DropdownTrigger, C as Logo, D as Section, E as ResizablePanelGroup, F as RadioGroup, G as Textarea, H as StepBuilder, I as DropdownContent, J as CardContent, K as Switch, L as DropdownItem, M as BlockLayout, 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
4
  export { AccordionContent, AccordionItem, AccordionRoot, AccordionTrigger, Alert, AlertDialogPanel, Avatar, AvatarGroup, Badge, BlockLayout, BlockLayout as SurfaceLayout, Breadcrumb, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxGroup, CircularProgress, ColorPaletteDisplay, ColorPalettePicker, ColorPicker, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxPopover, ComboboxRoot, Composite, CompositeItem, CompositeProvider, CompositeRow, CompositeZone, ConditionBuilder, Container, DEFAULT_PRESETS, DateRangePicker, DescriptionList, DialogBody, DialogDescription, DialogDisclosure, DialogDismiss, DialogFooter, DialogHeader, DialogHeading, DialogPanel, DialogRoot, DisclosureContent, DisclosureRoot, DisclosureTrigger, DrawerClose, DrawerPanel, DrawerRoot, DropdownContent, DropdownItem, DropdownMenu, DropdownSeparator, DropdownTrigger, EmptyState, Expression, ExpressionGroup, FIELD_TYPE_TOKENS, Facet, FacetGroup, FieldToken, FormCheckbox, FormControl, FormDescription, FormError, FormField, FormGroup, FormGroupLabel, FormInput, FormLabel, FormProvider, FormPush, FormRadio, FormRadioGroup, FormRemove, FormReset, FormRoot, FormSelect, FormSelectItem, FormSelectPopover, FormSubmit, FormSwitch, FormTextarea, Heading, Highlight, IconPicker, Identity, InlineEdit, Input, Kbd, KeyPadMenu, LiveRegion, Logo, MenuButtonArrow, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuPopover, MenuRoot, MenuSeparator, MenuTrigger, MenubarContainer, MenubarRoot, Meter, NumberInput, OtpField, PageHeader, Pagination, PopoverClose, PopoverContent, PopoverRoot, PopoverTrigger, Progress, Radio, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, SHADER_OVERLAY_PARAM_KEYS, SHADER_PARAM_FALLBACK, SHADER_PARAM_KEYS, SHADER_PRESETS, SHADER_PRESET_IDS, ScrollArea, Section, SelectItem, SelectLabel, SelectPopover, SelectRoot, SelectTrigger, Separator, ShaderSurface, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonTable, SkeletonText, Slider, Spinner, StatCard, StepBuilder, Switch, THEME_PALETTES, Tab, TabList, TabPanel, TabsRoot, TagInput, Text, TextTruncate, Textarea, Toggle, ToggleGroup, ToolbarButton, ToolbarContainer, ToolbarRoot, ToolbarSeparator, Tooltip, TooltipAnchor, TooltipProvider, VirtualList, createBlock, createBlock as createSurface, getShaderFragment, getShaderPreset, resolveFieldType, useFormContext, useFormStore };
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Core Components"
3
3
  description: "74 Core layer components — props, examples, keyboard shortcuts."
4
- version: "1.12.0"
4
+ version: "1.12.2"
5
5
  generated: true
6
6
  ---
7
7
 
@@ -2272,12 +2272,12 @@ const MyDashboard = createBlock<MyDashboardProps>(
2272
2272
 
2273
2273
  **Import:** `import { StatusDot } from "@reopt-ai/opt-ui"`
2274
2274
 
2275
- | Prop | Type | Required | Default | Description |
2276
- | ---------- | ---------------------------------------------------------------------- | -------- | --------- | -------------------------------------- |
2277
- | `tone` | `"neutral" \| "muted" \| "info" \| "success" \| "warning" \| "danger"` | | "neutral" | 점 색상 |
2278
- | `size` | `"sm" \| "md"` | | "md" | 점과 글자 크기 |
2279
- | `children` | `ReactNode` | Yes | | 상태 라벨. 필수 — 색은 상태가 아닙니다 |
2280
- | `hint` | `string` | | | 판정 기준 툴팁 |
2275
+ | Prop | Type | Required | Default | Description |
2276
+ | ---------- | ---------------------------------------------------------------------- | -------- | --------- | -------------------------------------------------------------------------------------- |
2277
+ | `tone` | `"neutral" \| "muted" \| "info" \| "success" \| "warning" \| "danger"` | | "neutral" | 점 색상 |
2278
+ | `size` | `"sm" \| "md"` | | "md" | 점과 글자 크기 |
2279
+ | `children` | `ReactNode` | Yes | | 상태 라벨. 필수 — 색은 상태가 아닙니다 |
2280
+ | `hint` | `string` | | | 판정 기준. 호버·키보드 포커스로 열리는 툴팁이며, 지정하면 이 항목이 탭 정지점이 됩니다 |
2281
2281
 
2282
2282
  ### CopyButton
2283
2283
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Visual Components"
3
3
  description: "0 Visual layer components — props, examples, keyboard shortcuts."
4
- version: "1.12.0"
4
+ version: "1.12.2"
5
5
  generated: true
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Shell Components"
3
3
  description: "86 Shell layer components — props, examples, keyboard shortcuts."
4
- version: "1.12.0"
4
+ version: "1.12.2"
5
5
  generated: true
6
6
  ---
7
7
 
@@ -322,22 +322,24 @@ import { AppShell } from "@reopt-ai/opt-ui";
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
- | `ariaLabel` | `string` | | | 보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름 |
332
- | `onRowClick` | `(row: T) => void` | | | 행 클릭 핸들러 |
333
- | `emptyMessage` | `string` | | "No data available" | 데이터 없을 때 표시할 메시지 |
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" | 데이터 없을 때 표시할 메시지 |
334
+ | `labels` | `DataTableLabels` | | | 선택·리사이즈·펼치기처럼 스크린리더만 듣는 문구. 보이는 문구는 columns와 emptyMessage가 이미 호출자의 것입니다 |
334
335
 
335
336
  **ColumnDef:**
336
337
 
337
- | Prop | Type | Required | Default | Description |
338
- | ---------- | -------------------- | -------- | ----------- | ------------------------------------------------------------ |
339
- | `bar` | `(row: T) => number` | | | 인라인 프로그레스 비율(0-1) 계산 함수. 범위 밖/NaN은 보정 |
340
- | `barColor` | `string` | | "bg-accent" | 인라인 바 색상 클래스 |
338
+ | Prop | Type | Required | Default | Description |
339
+ | -------------- | -------------------- | -------- | ----------- | --------------------------------------------------------------------------------------------------- |
340
+ | `headerHidden` | `boolean` | | false | 이름은 두되 그리지 않음. 액션처럼 제목이 필요 없는 컬럼용 — 빈 header는 컬럼을 익명으로 만듭니다 |
341
+ | `bar` | `(row: T) => number` | | | 인라인 프로그레스 비율(0-1) 계산 함수. 범위 밖/NaN은 보정 |
342
+ | `barColor` | `string` | | "bg-accent" | 인라인 바 색상 클래스 |
341
343
 
342
344
  **Keyboard Shortcuts:**
343
345
 
@@ -1180,15 +1182,15 @@ const fields = [
1180
1182
 
1181
1183
  **EventMetaEditor:**
1182
1184
 
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 문구 |
1185
+ | Prop | Type | Required | Default | Description |
1186
+ | ----------- | --------------------------- | -------- | ------- | ------------------------------------------------------------------------------ |
1187
+ | `value` | `EventMeta` | Yes | | 편집 중인 이벤트 메타데이터 |
1188
+ | `onChange` | `(meta: EventMeta) => void` | Yes | | 메타데이터 변경 |
1189
+ | `icons` | `IconDef[]` | | | 선택 가능한 아이콘 |
1190
+ | `sections` | `EventMetaEditorSection[]` | | | 기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션 |
1191
+ | `footer` | `ReactNode` | | | 내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역 |
1192
+ | `className` | `string` | | | 추가 CSS 클래스 |
1193
+ | `labels` | `EventMetaEditorLabels` | | | 필드 레이블과 placeholder 문구. iconPlaceholder는 내부 IconPicker로 전달됩니다 |
1192
1194
 
1193
1195
  **EventMetaEditorSection:**
1194
1196
 
@@ -1831,7 +1833,7 @@ const messages = [
1831
1833
  | `onBulkAction` | `(actionId: string) => void` | | | 일괄 작업 실행 |
1832
1834
  | `error` | `ReactNode` | | | 읽기 실패. 빈 목록과 다른 답 |
1833
1835
  | `onRetry` | `() => void` | | | 재시도 |
1834
- | `labels` | `CatalogFrameLabels` | | | 빈/필터된 빈/에러 문구 |
1836
+ | `labels` | `CatalogFrameLabels` | | | 빈/필터된 빈/에러 문구와 인스펙터 닫기 버튼(closeInspector) |
1835
1837
  | `className` | `string` | | | 추가 CSS 클래스 |
1836
1838
 
1837
1839
  **CatalogRowActions:**
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Surface Components"
3
3
  description: "0 Surface layer components — props, examples, keyboard shortcuts."
4
- version: "1.12.0"
4
+ version: "1.12.2"
5
5
  generated: true
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Component Reference"
3
3
  description: "Complete reference for 160 @reopt-ai/opt-ui components across 4 layers."
4
- version: "1.12.0"
4
+ version: "1.12.2"
5
5
  generated: true
6
6
  ---
7
7
 
@@ -282,6 +282,30 @@ interface ColumnDef<T> {
282
282
  bar?: (row: T) => number;
283
283
  /** Bar color class (default: "bg-accent") */
284
284
  barColor?: string;
285
+ /**
286
+ * Name the column without drawing the name.
287
+ *
288
+ * A column of row actions or icons needs no visible heading, but a `<th>`
289
+ * with an empty string leaves the column unnamed to anyone navigating the
290
+ * grid by header. `header` stays required so there is always a name to say.
291
+ */
292
+ headerHidden?: boolean;
293
+ }
294
+ /**
295
+ * Localized labels for the data table component.
296
+ *
297
+ * These were hard-coded English. Everything a caller can see was already
298
+ * theirs to write — headers, empty message, title — but the strings only a
299
+ * screen reader hears were not, so a fully translated table still announced
300
+ * "Select row purchase_completed" in the middle of a Korean page.
301
+ */
302
+ interface DataTableLabels {
303
+ selectAll?: string;
304
+ /** Named per row, because "select row" alone does not say which. */
305
+ selectRow?: (key: string) => string;
306
+ resizeColumn?: (header: string) => string;
307
+ expandRow?: (key: string) => string;
308
+ collapseRow?: (key: string) => string;
285
309
  }
286
310
  /** Props for the data table component. */
287
311
  interface DataTableProps<T> {
@@ -321,10 +345,11 @@ interface DataTableProps<T> {
321
345
  resizableColumns?: boolean;
322
346
  /** External (server-side) sort callback */
323
347
  onSort?: (columnId: string, direction: "asc" | "desc" | null) => void;
348
+ labels?: DataTableLabels;
324
349
  className?: string;
325
350
  }
326
351
  /** Renders the data table component. */
327
- declare function DataTable<T>({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, className }: DataTableProps<T>): import("react").JSX.Element;
352
+ declare function DataTable<T>({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, labels: customLabels, className }: DataTableProps<T>): import("react").JSX.Element;
328
353
  //#endregion
329
354
  //#region src/shells/notification-toast.d.ts
330
355
  /** Defines the toast action shape. */
@@ -282,6 +282,30 @@ interface ColumnDef<T> {
282
282
  bar?: (row: T) => number;
283
283
  /** Bar color class (default: "bg-accent") */
284
284
  barColor?: string;
285
+ /**
286
+ * Name the column without drawing the name.
287
+ *
288
+ * A column of row actions or icons needs no visible heading, but a `<th>`
289
+ * with an empty string leaves the column unnamed to anyone navigating the
290
+ * grid by header. `header` stays required so there is always a name to say.
291
+ */
292
+ headerHidden?: boolean;
293
+ }
294
+ /**
295
+ * Localized labels for the data table component.
296
+ *
297
+ * These were hard-coded English. Everything a caller can see was already
298
+ * theirs to write — headers, empty message, title — but the strings only a
299
+ * screen reader hears were not, so a fully translated table still announced
300
+ * "Select row purchase_completed" in the middle of a Korean page.
301
+ */
302
+ interface DataTableLabels {
303
+ selectAll?: string;
304
+ /** Named per row, because "select row" alone does not say which. */
305
+ selectRow?: (key: string) => string;
306
+ resizeColumn?: (header: string) => string;
307
+ expandRow?: (key: string) => string;
308
+ collapseRow?: (key: string) => string;
285
309
  }
286
310
  /** Props for the data table component. */
287
311
  interface DataTableProps<T> {
@@ -321,10 +345,11 @@ interface DataTableProps<T> {
321
345
  resizableColumns?: boolean;
322
346
  /** External (server-side) sort callback */
323
347
  onSort?: (columnId: string, direction: "asc" | "desc" | null) => void;
348
+ labels?: DataTableLabels;
324
349
  className?: string;
325
350
  }
326
351
  /** Renders the data table component. */
327
- declare function DataTable<T>({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, className }: DataTableProps<T>): import("react").JSX.Element;
352
+ declare function DataTable<T>({ data, columns, keyExtractor, title, ariaLabel, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, labels: customLabels, className }: DataTableProps<T>): import("react").JSX.Element;
328
353
  //#endregion
329
354
  //#region src/shells/notification-toast.d.ts
330
355
  /** Defines the toast action shape. */