@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.
package/dist/meta.js CHANGED
@@ -2,7 +2,7 @@ const coreMetas = [
2
2
  {
3
3
  name: "FieldToken",
4
4
  category: "core",
5
- description: "필드 타입을 글리프 하나로 표현하는 토큰. 문자열·숫자·날짜·IP·지오 등 분석 스키마 타입마다 고정된 아이콘과 팔레트 슬롯을 부여해 필드 목록·컬럼 헤더·속성 테이블 전역에서 같은 어휘를 쓴다.",
5
+ description: "필드 타입을 일관된 글리프와 선택적 텍스트 레이블로 표현합니다. 문자열·숫자·날짜·IP·지오 등 분석 스키마 타입마다 같은 아이콘과 팔레트 슬롯을 씁니다.",
6
6
  slug: "field-token",
7
7
  exports: [
8
8
  "FieldToken",
@@ -45,6 +45,17 @@ const coreMetas = [
45
45
  default: "false",
46
46
  description: "인접 텍스트가 타입을 이미 말할 때 접근성 트리에서 제외"
47
47
  },
48
+ {
49
+ name: "withLabel",
50
+ type: "boolean",
51
+ default: "false",
52
+ description: "글리프 옆에 타입 이름을 함께 표시"
53
+ },
54
+ {
55
+ name: "label",
56
+ type: "string",
57
+ description: "withLabel이 표시할 문구. 기본값은 타입 이름"
58
+ },
48
59
  {
49
60
  name: "className",
50
61
  type: "string",
@@ -5156,6 +5167,11 @@ const MyDashboard = createBlock<MyDashboardProps>(
5156
5167
  type: "string",
5157
5168
  required: true,
5158
5169
  description: "radiogroup 이름. 필수"
5170
+ },
5171
+ {
5172
+ name: "className",
5173
+ type: "string",
5174
+ description: "추가 CSS 클래스"
5159
5175
  }
5160
5176
  ] },
5161
5177
  usage: {
@@ -5766,7 +5782,7 @@ const fields = [
5766
5782
  {
5767
5783
  name: "DataTable",
5768
5784
  category: "shell",
5769
- description: "제네릭 데이터 테이블. 동적 컬럼, 결측값 안전 정렬, 키보드 컬럼 리사이즈, 보정된 인라인 진행률과 Composite 탐색을 지원합니다.",
5785
+ description: "제네릭 데이터 테이블. 제목은 opt-in이고 ariaLabel로 grid를 이름 붙이며, 동적 컬럼·안전 정렬·키보드 리사이즈·Composite 탐색을 지원합니다.",
5770
5786
  slug: "data-table",
5771
5787
  exports: ["DataTable"],
5772
5788
  keyboardShortcuts: [
@@ -5834,8 +5850,12 @@ const fields = [
5834
5850
  {
5835
5851
  name: "title",
5836
5852
  type: "string",
5837
- default: "\"데이터 테이블\"",
5838
- description: "테이블 제목"
5853
+ description: "테이블 위에 표시할 제목. 생략하면 제목 영역을 렌더하지 않음"
5854
+ },
5855
+ {
5856
+ name: "ariaLabel",
5857
+ type: "string",
5858
+ description: "보이는 제목이 없을 때 grid에 제공할 접근 가능한 이름"
5839
5859
  },
5840
5860
  {
5841
5861
  name: "onRowClick",
@@ -5845,7 +5865,7 @@ const fields = [
5845
5865
  {
5846
5866
  name: "emptyMessage",
5847
5867
  type: "string",
5848
- default: "\"데이터가 없습니다\"",
5868
+ default: "\"No data available\"",
5849
5869
  description: "데이터 없을 때 표시할 메시지"
5850
5870
  }
5851
5871
  ],
@@ -6819,10 +6839,78 @@ const filters = [
6819
6839
  {
6820
6840
  name: "PropertyExplorer",
6821
6841
  category: "shell",
6822
- description: "프로퍼티 탐색기. 검색 가능한 속성 목록을 그룹별로 표시합니다.",
6842
+ description: "검색 가능한 속성 목록을 그룹별로 표시하고, 숨김 상태와 호출자 소유의 명시적인 편집 액션을 함께 제공합니다.",
6823
6843
  slug: "property-explorer",
6824
6844
  exports: ["PropertyExplorer"],
6825
- props: {},
6845
+ props: {
6846
+ PropertyExplorer: [
6847
+ {
6848
+ name: "groups",
6849
+ type: "PropertyGroup[]",
6850
+ required: true,
6851
+ description: "그룹별 속성 목록. 각 속성은 dataType과 hidden 상태를 포함 가능"
6852
+ },
6853
+ {
6854
+ name: "onSelect",
6855
+ type: "(property: PropertyDef) => void",
6856
+ description: "속성 선택"
6857
+ },
6858
+ {
6859
+ name: "onEdit",
6860
+ type: "(property: PropertyDef) => void",
6861
+ description: "행에 명시적인 편집 버튼을 표시하고 선택한 속성을 전달"
6862
+ },
6863
+ {
6864
+ name: "className",
6865
+ type: "string",
6866
+ description: "추가 CSS 클래스"
6867
+ },
6868
+ {
6869
+ name: "labels",
6870
+ type: "PropertyExplorerLabels",
6871
+ description: "검색·빈 상태·편집·숨김 문구"
6872
+ }
6873
+ ],
6874
+ PropertyDef: [
6875
+ {
6876
+ name: "name",
6877
+ type: "string",
6878
+ required: true,
6879
+ description: "속성 이름"
6880
+ },
6881
+ {
6882
+ name: "type",
6883
+ type: "string",
6884
+ required: true,
6885
+ description: "원본 스키마 타입"
6886
+ },
6887
+ {
6888
+ name: "dataType",
6889
+ type: "FieldDataType",
6890
+ description: "호출자가 이미 판정한 opt-ui 필드 타입"
6891
+ },
6892
+ {
6893
+ name: "description",
6894
+ type: "string",
6895
+ description: "속성 설명"
6896
+ },
6897
+ {
6898
+ name: "exampleValue",
6899
+ type: "string",
6900
+ description: "예시 값"
6901
+ },
6902
+ {
6903
+ name: "eventCount",
6904
+ type: "number",
6905
+ description: "관측 이벤트 수"
6906
+ },
6907
+ {
6908
+ name: "hidden",
6909
+ type: "boolean",
6910
+ description: "피커에서는 숨기되 탐색기에서는 흐리게 표시할 상태"
6911
+ }
6912
+ ]
6913
+ },
6826
6914
  dependencies: [{
6827
6915
  slug: "input",
6828
6916
  category: "core"
@@ -6981,10 +7069,74 @@ const filters = [
6981
7069
  {
6982
7070
  name: "EventMetaEditor",
6983
7071
  category: "shell",
6984
- description: "이벤트 메타 에디터. 레이블이 연결된 IconPicker + ColorPicker + TagInput 조합으로 이벤트 메타데이터를 편집합니다.",
7072
+ description: "기본 이벤트 메타와 호출자 소유 섹션을 폼에서 편집하고, footer의 액션으로 함께 저장할 수 있습니다.",
6985
7073
  slug: "event-meta-editor",
6986
7074
  exports: ["EventMetaEditor"],
6987
- props: {},
7075
+ props: {
7076
+ EventMetaEditor: [
7077
+ {
7078
+ name: "value",
7079
+ type: "EventMeta",
7080
+ required: true,
7081
+ description: "편집 중인 이벤트 메타데이터"
7082
+ },
7083
+ {
7084
+ name: "onChange",
7085
+ type: "(meta: EventMeta) => void",
7086
+ required: true,
7087
+ description: "메타데이터 변경"
7088
+ },
7089
+ {
7090
+ name: "icons",
7091
+ type: "IconDef[]",
7092
+ description: "선택 가능한 아이콘"
7093
+ },
7094
+ {
7095
+ name: "sections",
7096
+ type: "EventMetaEditorSection[]",
7097
+ description: "기본 여섯 필드 뒤에 렌더할 호출자 소유 섹션"
7098
+ },
7099
+ {
7100
+ name: "footer",
7101
+ type: "ReactNode",
7102
+ description: "내장 필드와 추가 섹션을 함께 저장하는 마지막 액션 영역"
7103
+ },
7104
+ {
7105
+ name: "className",
7106
+ type: "string",
7107
+ description: "추가 CSS 클래스"
7108
+ },
7109
+ {
7110
+ name: "labels",
7111
+ type: "EventMetaEditorLabels",
7112
+ description: "필드 레이블과 placeholder 문구"
7113
+ }
7114
+ ],
7115
+ EventMetaEditorSection: [
7116
+ {
7117
+ name: "id",
7118
+ type: "string",
7119
+ required: true,
7120
+ description: "섹션 키"
7121
+ },
7122
+ {
7123
+ name: "title",
7124
+ type: "ReactNode",
7125
+ description: "섹션 제목"
7126
+ },
7127
+ {
7128
+ name: "description",
7129
+ type: "ReactNode",
7130
+ description: "섹션 변경이 미치는 영향 안내"
7131
+ },
7132
+ {
7133
+ name: "children",
7134
+ type: "ReactNode",
7135
+ required: true,
7136
+ description: "호출자가 소유하는 필드"
7137
+ }
7138
+ ]
7139
+ },
6988
7140
  dependencies: [
6989
7141
  {
6990
7142
  slug: "input",
@@ -9368,6 +9520,16 @@ const messages = [
9368
9520
  type: "\"sm\" | \"md\" | \"lg\"",
9369
9521
  default: "\"md\"",
9370
9522
  description: "push 레이아웃에서의 인스펙터 폭"
9523
+ },
9524
+ {
9525
+ name: "labels",
9526
+ type: "InspectorLayoutLabels",
9527
+ description: "닫기 버튼 등 인스펙터 문구"
9528
+ },
9529
+ {
9530
+ name: "className",
9531
+ type: "string",
9532
+ description: "추가 CSS 클래스"
9371
9533
  }
9372
9534
  ] },
9373
9535
  usage: {
@@ -9433,6 +9595,16 @@ const messages = [
9433
9595
  name: "queryBarLabels",
9434
9596
  type: "QueryBarLabels",
9435
9597
  description: "QueryBar로 통과되는 나머지 문구. placeholder/ariaLabel은 labels가 이깁니다"
9598
+ },
9599
+ {
9600
+ name: "labels",
9601
+ type: "QueryFilterBarLabels",
9602
+ description: "검색·필터·초기화 문구"
9603
+ },
9604
+ {
9605
+ name: "className",
9606
+ type: "string",
9607
+ description: "추가 CSS 클래스"
9436
9608
  }
9437
9609
  ] },
9438
9610
  usage: {
@@ -9615,6 +9787,11 @@ const messages = [
9615
9787
  name: "labels",
9616
9788
  type: "CatalogFrameLabels",
9617
9789
  description: "빈/필터된 빈/에러 문구"
9790
+ },
9791
+ {
9792
+ name: "className",
9793
+ type: "string",
9794
+ description: "추가 CSS 클래스"
9618
9795
  }
9619
9796
  ],
9620
9797
  CatalogRowActions: [
@@ -9642,6 +9819,36 @@ const messages = [
9642
9819
  description: "그룹·오버플로 라벨"
9643
9820
  }
9644
9821
  ],
9822
+ CatalogRowAction: [
9823
+ {
9824
+ name: "id",
9825
+ type: "string",
9826
+ required: true,
9827
+ description: "액션 키"
9828
+ },
9829
+ {
9830
+ name: "label",
9831
+ type: "string",
9832
+ required: true,
9833
+ description: "액션 문구"
9834
+ },
9835
+ {
9836
+ name: "icon",
9837
+ type: "ReactNode",
9838
+ description: "선택적 액션 아이콘"
9839
+ },
9840
+ {
9841
+ name: "onSelect",
9842
+ type: "(item: T) => void",
9843
+ required: true,
9844
+ description: "행과 함께 호출되는 액션"
9845
+ },
9846
+ {
9847
+ name: "available",
9848
+ type: "(item: T) => boolean",
9849
+ description: "이 행에 적용되지 않는 액션을 비활성화 대신 제거"
9850
+ }
9851
+ ],
9645
9852
  CatalogCellControls: [{
9646
9853
  name: "children",
9647
9854
  type: "ReactNode",
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
- const require_field_sidebar = require("../field-sidebar-BYgEmdy0.cjs");
4
+ const require_field_sidebar = require("../field-sidebar-oa6zOmcd.cjs");
5
5
  let _reopt_ai_opt_charts = require("@reopt-ai/opt-charts");
6
6
  exports.AppMenubar = require_field_sidebar.AppMenubar;
7
7
  exports.BranchSelect = require_field_sidebar.BranchSelect;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
  "use client";
3
- import { 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, R as DeploymentTimeline, T as EventTimeline, U as SidebarNav, V as ContentTabs, W as AppMenubar, Y as CommandPalette, a as TimeRangeControl, i as DEFAULT_TIME_PRESETS, k as NotificationToast, n as LogTable, q as DashboardGrid, r as TimeSeriesPanel, s as QueryBar, t as FieldSidebar, w as ScoreBreakdown, z as SettingsForm } from "../field-sidebar-BuO37l4c.js";
3
+ import { 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, R as DeploymentTimeline, T as EventTimeline, U as SidebarNav, V as ContentTabs, W as AppMenubar, Y as CommandPalette, a as TimeRangeControl, i as DEFAULT_TIME_PRESETS, k as NotificationToast, n as LogTable, q as DashboardGrid, r as TimeSeriesPanel, s as QueryBar, t as FieldSidebar, w as ScoreBreakdown, z as SettingsForm } from "../field-sidebar-zkkqC7__.js";
4
4
  import { EventSparkline, MetricsCard, ReportWidget, TrendChart } from "@reopt-ai/opt-charts";
5
5
  export { AppMenubar, BranchSelect, CommandPalette, CommandPaletteTrigger, ContentTabs, DEFAULT_TIME_PRESETS, DashboardGrid, DataTable, DeploymentTimeline, DomainTable, EditorToolbar, EnvPanel, EventSparkline, EventTimeline, FailureList, FaqAccordion, FieldSidebar, Flyout, KeyValueEditor, LogTable, MetricsCard, NotificationToast, ProjectSwitcher, QueryBar, ReportWidget, ScoreBreakdown, SearchCombobox, SettingsForm, SidebarNav, StatusSelect, TimeRangeControl, TimeSeriesPanel, ToastProvider, TrendChart, WorkflowCanvas, useToast };
package/dist/tailwind.css CHANGED
@@ -143,6 +143,13 @@
143
143
  @utility bg-overlay {
144
144
  background-color: var(--opt-surface-overlay);
145
145
  }
146
+ /* The scrim behind an overlay panel. Not `bg-overlay`: that is the *surface*
147
+ colour of popovers and is opaque, so using it for a backdrop hides the page.
148
+ Mirrors `dialog::backdrop` below so a Flyout and a Dialog dim the page the
149
+ same way. */
150
+ @utility bg-scrim {
151
+ background-color: rgb(0 0 0 / 0.5);
152
+ }
146
153
  @utility bg-inset {
147
154
  background-color: var(--opt-surface-inset);
148
155
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reopt-ai/opt-ui",
3
- "version": "1.12.0",
3
+ "version": "1.12.1",
4
4
  "description": "접근성 우선 UI 컴포넌트 라이브러리. opt-ui-primitives Core, 비즈니스 Shells, 페이지 Surfaces.",
5
5
  "type": "module",
6
6
  "license": "MIT",