@reopt-ai/opt-ui 1.5.0 → 1.6.0

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.
Files changed (87) hide show
  1. package/COMPONENT_CATALOG.md +83 -38
  2. package/README.md +28 -7
  3. package/dist/app.css +146 -0
  4. package/dist/core/index.cjs +164 -324
  5. package/dist/core/index.d.cts +3 -6
  6. package/dist/core/index.d.ts +3 -6
  7. package/dist/core/index.js +3 -323
  8. package/dist/docs/01-getting-started.md +25 -5
  9. package/dist/docs/02-components/01-core.md +36 -28
  10. package/dist/docs/02-components/02-visuals.md +1 -1
  11. package/dist/docs/02-components/03-shells.md +40 -12
  12. package/dist/docs/02-components/04-surfaces.md +1 -1
  13. package/dist/docs/02-components/index.md +1 -1
  14. package/dist/docs/03-recipes/03-layouts.md +16 -12
  15. package/dist/docs/05-migration/01-breaking-changes.md +28 -0
  16. package/dist/id-registry.cjs +1899 -1872
  17. package/dist/id-registry.d.cts +13 -10
  18. package/dist/id-registry.d.cts.map +1 -0
  19. package/dist/id-registry.d.ts +13 -10
  20. package/dist/id-registry.d.ts.map +1 -0
  21. package/dist/id-registry.js +1897 -1871
  22. package/dist/id-registry.js.map +1 -0
  23. package/dist/id-registry.json +28 -28
  24. package/dist/index.cjs +8294 -9790
  25. package/dist/index.d.cts +1486 -1442
  26. package/dist/index.d.cts.map +1 -0
  27. package/dist/index.d.ts +1486 -1442
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +7933 -9777
  30. package/dist/index.js.map +1 -0
  31. package/dist/meta.cjs +7461 -6875
  32. package/dist/meta.d.cts.map +1 -0
  33. package/dist/meta.d.ts.map +1 -0
  34. package/dist/meta.js +7460 -6846
  35. package/dist/meta.js.map +1 -0
  36. package/dist/pagination-By7Ozv3U.js +3788 -0
  37. package/dist/pagination-By7Ozv3U.js.map +1 -0
  38. package/dist/pagination-Uv3CnGJz.cjs +4677 -0
  39. package/dist/shader-surface-BK1GMt5_.d.cts +1788 -0
  40. package/dist/shader-surface-BK1GMt5_.d.cts.map +1 -0
  41. package/dist/shader-surface-BWhO2xkk.js +3715 -0
  42. package/dist/shader-surface-BWhO2xkk.js.map +1 -0
  43. package/dist/shader-surface-DIVWtpFl.d.ts +1788 -0
  44. package/dist/shader-surface-DIVWtpFl.d.ts.map +1 -0
  45. package/dist/shader-surface-DxLLfrE6.cjs +4108 -0
  46. package/dist/shells/index.cjs +51 -65
  47. package/dist/shells/index.d.cts +4 -5
  48. package/dist/shells/index.d.ts +4 -5
  49. package/dist/shells/index.js +3 -64
  50. package/dist/tailwind.css +49 -0
  51. package/dist/theme/server.cjs +257 -228
  52. package/dist/theme/server.d.cts +48 -60
  53. package/dist/theme/server.d.cts.map +1 -0
  54. package/dist/theme/server.d.ts +48 -60
  55. package/dist/theme/server.d.ts.map +1 -0
  56. package/dist/theme/server.js +234 -189
  57. package/dist/theme/server.js.map +1 -0
  58. package/dist/types-D0FlcYnM.d.cts +301 -0
  59. package/dist/types-D0FlcYnM.d.cts.map +1 -0
  60. package/dist/types-D0FlcYnM.d.ts +301 -0
  61. package/dist/types-D0FlcYnM.d.ts.map +1 -0
  62. package/dist/visuals/index.cjs +10 -4
  63. package/dist/visuals/index.d.cts +2 -1
  64. package/dist/visuals/index.d.ts +2 -1
  65. package/dist/visuals/index.js +1 -2
  66. package/dist/workflow-canvas-3Jeevkgy.cjs +2599 -0
  67. package/dist/workflow-canvas-BGBAcjf-.js +2403 -0
  68. package/dist/workflow-canvas-BGBAcjf-.js.map +1 -0
  69. package/dist/workflow-canvas-Bar_O2SQ.d.ts +494 -0
  70. package/dist/workflow-canvas-Bar_O2SQ.d.ts.map +1 -0
  71. package/dist/workflow-canvas-DghDRtHn.d.cts +494 -0
  72. package/dist/workflow-canvas-DghDRtHn.d.cts.map +1 -0
  73. package/package.json +11 -6
  74. package/dist/chunk-3GWWZKX7.js +0 -38
  75. package/dist/chunk-3QFYBBL6.cjs +0 -4759
  76. package/dist/chunk-3XD4HIFL.js +0 -3241
  77. package/dist/chunk-AFF2HPE5.cjs +0 -5008
  78. package/dist/chunk-NXZJIHEZ.cjs +0 -3241
  79. package/dist/chunk-ONE3C5RV.cjs +0 -38
  80. package/dist/chunk-RBM2RNC2.js +0 -5008
  81. package/dist/chunk-VBGPEW45.js +0 -4759
  82. package/dist/index-BZ_lBlO1.d.ts +0 -474
  83. package/dist/index-BuvxoWHf.d.cts +0 -474
  84. package/dist/index-DWyqDIkH.d.cts +0 -1689
  85. package/dist/index-Uyijm14M.d.ts +0 -1689
  86. package/dist/types-D4-0lwaE.d.cts +0 -298
  87. package/dist/types-D4-0lwaE.d.ts +0 -298
@@ -0,0 +1,494 @@
1
+
2
+ import { A as StatCard, C as MenuDef, D as ProjectDef, E as NavItemDef, L as ToolbarButtonDef, S as FormFieldDef, d as CommandDef, f as DeploymentStep, j as TabDef, k as SelectOption, m as EnvGroupDef, n as BranchDef, p as DomainDef, v as FailureItem, y as FaqItem } from "./types-D0FlcYnM.cjs";
3
+ import * as React from "react";
4
+ import { ReactNode } from "react";
5
+ //#region src/shells/command-palette.d.ts
6
+ /** Localized labels for the command palette component. */
7
+ interface CommandPaletteLabels {
8
+ title?: string;
9
+ description?: string;
10
+ input?: string;
11
+ placeholder?: string;
12
+ list?: string;
13
+ empty?: ReactNode;
14
+ escape?: string;
15
+ }
16
+ /** Props for the command palette component. */
17
+ interface CommandPaletteProps {
18
+ commands: Omit<CommandDef, "action">[];
19
+ open: boolean;
20
+ onOpenChange: (open: boolean) => void;
21
+ onSelect?: (command: Omit<CommandDef, "action">) => void;
22
+ /** Render inline (no dialog overlay). */
23
+ inline?: boolean;
24
+ labels?: CommandPaletteLabels;
25
+ footer?: ReactNode;
26
+ empty?: ReactNode;
27
+ inputTrailing?: ReactNode;
28
+ className?: string;
29
+ }
30
+ /** Renders the command palette component. */
31
+ declare function CommandPalette({ commands, open, onOpenChange, onSelect, inline, labels, footer, empty, inputTrailing, className }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element | null;
32
+ //#endregion
33
+ //#region src/shells/command-palette-trigger.d.ts
34
+ /** Props for the command palette trigger component. */
35
+ interface CommandPaletteTriggerProps {
36
+ commands: Omit<CommandDef, "action">[];
37
+ onSelect?: (command: Omit<CommandDef, "action">) => void;
38
+ labels?: CommandPaletteTriggerLabels;
39
+ }
40
+ /** Localized labels for the command palette trigger component. */
41
+ type CommandPaletteTriggerLabels = CommandPaletteLabels;
42
+ /** Renders the command palette trigger component. */
43
+ declare function CommandPaletteTrigger({ commands, onSelect, labels }: CommandPaletteTriggerProps): import("react/jsx-runtime").JSX.Element | null;
44
+ //#endregion
45
+ //#region src/shells/dashboard-grid.d.ts
46
+ /** Localized labels for the dashboard grid component. */
47
+ interface DashboardGridLabels {
48
+ ariaLabel?: string;
49
+ }
50
+ /** Props for the dashboard grid component. */
51
+ interface DashboardGridProps {
52
+ stats: StatCard[];
53
+ columns?: number;
54
+ labels?: DashboardGridLabels;
55
+ }
56
+ /** Renders the dashboard grid component. */
57
+ declare function DashboardGrid({ stats, columns, labels: customLabels }: DashboardGridProps): import("react/jsx-runtime").JSX.Element;
58
+ //#endregion
59
+ //#region src/shells/search-combobox.d.ts
60
+ /** Localized labels for the search combobox component. */
61
+ interface SearchComboboxLabels {
62
+ noResults?: string;
63
+ loading?: string;
64
+ }
65
+ /** Props for the search combobox component. */
66
+ interface SearchComboboxProps {
67
+ items: string[];
68
+ placeholder?: string;
69
+ label?: string;
70
+ onSelect?: (item: string) => void;
71
+ labels?: SearchComboboxLabels;
72
+ /** Enable async search mode */
73
+ async?: boolean;
74
+ /** Async search callback (used when async=true) */
75
+ onSearch?: (query: string) => Promise<string[]>;
76
+ /** Debounce ms for async search */
77
+ debounceMs?: number;
78
+ }
79
+ /** Renders the search combobox component. */
80
+ declare function SearchCombobox({ items, placeholder, label, onSelect, labels: customLabels, async: isAsync, onSearch, debounceMs }: SearchComboboxProps): import("react/jsx-runtime").JSX.Element;
81
+ //#endregion
82
+ //#region src/shells/status-select.d.ts
83
+ /** Props for the status select component. */
84
+ interface StatusSelectProps {
85
+ options: SelectOption[];
86
+ value?: string;
87
+ onChange?: (value: string) => void;
88
+ label?: string;
89
+ labels?: StatusSelectLabels;
90
+ }
91
+ /** Localized labels for the status select component. */
92
+ interface StatusSelectLabels {
93
+ selectLabel?: string;
94
+ emptyMessage?: string;
95
+ }
96
+ /** Renders the status select component. */
97
+ declare function StatusSelect({ options, value: controlledValue, onChange, label, labels: customLabels }: StatusSelectProps): import("react/jsx-runtime").JSX.Element;
98
+ //#endregion
99
+ //#region src/shells/app-menubar.d.ts
100
+ /** Props for the app menubar component. */
101
+ interface AppMenubarProps {
102
+ menus: MenuDef[];
103
+ labels?: AppMenubarLabels;
104
+ }
105
+ /** Localized labels for the app menubar component. */
106
+ interface AppMenubarLabels {
107
+ ariaLabel?: string;
108
+ }
109
+ /** Renders the app menubar component. */
110
+ declare function AppMenubar({ menus, labels: customLabels }: AppMenubarProps): import("react/jsx-runtime").JSX.Element | null;
111
+ declare namespace AppMenubar {
112
+ var displayName: string;
113
+ }
114
+ //#endregion
115
+ //#region src/shells/sidebar-nav.d.ts
116
+ /** Localized labels for the sidebar nav component. */
117
+ interface SidebarNavLabels {
118
+ ariaLabel?: string;
119
+ }
120
+ /** Props for the sidebar nav component. */
121
+ interface SidebarNavProps {
122
+ items: NavItemDef[];
123
+ labels?: SidebarNavLabels;
124
+ }
125
+ /** Renders the sidebar nav component. */
126
+ declare function SidebarNav({ items, labels: customLabels }: SidebarNavProps): import("react/jsx-runtime").JSX.Element | null;
127
+ //#endregion
128
+ //#region src/shells/editor-toolbar.d.ts
129
+ /** Localized labels for the editor toolbar component. */
130
+ interface EditorToolbarLabels {
131
+ ariaLabel?: string;
132
+ }
133
+ /** Props for the editor toolbar component. */
134
+ interface EditorToolbarProps {
135
+ buttons: ToolbarButtonDef[];
136
+ onAction?: (id: string) => void;
137
+ activeButtons?: string[];
138
+ labels?: EditorToolbarLabels;
139
+ }
140
+ /** Renders the editor toolbar component. */
141
+ declare function EditorToolbar({ buttons, onAction, activeButtons, labels: customLabels }: EditorToolbarProps): import("react/jsx-runtime").JSX.Element;
142
+ //#endregion
143
+ //#region src/shells/content-tabs.d.ts
144
+ /** Localized labels for the content tabs component. */
145
+ interface ContentTabsLabels {
146
+ ariaLabel?: string;
147
+ emptyMessage?: string;
148
+ }
149
+ /** Props for the content tabs component. */
150
+ interface ContentTabsProps {
151
+ tabs: TabDef[];
152
+ defaultTabId?: string;
153
+ labels?: ContentTabsLabels;
154
+ }
155
+ /** Renders the content tabs component. */
156
+ declare function ContentTabs({ tabs, defaultTabId, labels: customLabels }: ContentTabsProps): import("react/jsx-runtime").JSX.Element;
157
+ //#endregion
158
+ //#region src/shells/faq-accordion.d.ts
159
+ /** Localized labels for the faq accordion component. */
160
+ interface FaqAccordionLabels {
161
+ ariaLabel?: string;
162
+ emptyMessage?: string;
163
+ }
164
+ /** Props for the faq accordion component. */
165
+ interface FaqAccordionProps {
166
+ items: FaqItem[];
167
+ labels?: FaqAccordionLabels;
168
+ }
169
+ /** Renders the faq accordion component. */
170
+ declare function FaqAccordion({ items, labels: customLabels }: FaqAccordionProps): import("react/jsx-runtime").JSX.Element;
171
+ //#endregion
172
+ //#region src/shells/settings-form.d.ts
173
+ /** Localized labels for the settings form component. */
174
+ interface SettingsFormLabels {
175
+ formAriaLabel?: string;
176
+ submitButton?: string;
177
+ successMessage?: string;
178
+ }
179
+ /** Props for the settings form component. */
180
+ interface SettingsFormProps {
181
+ fields: FormFieldDef[];
182
+ onSubmit?: (values: Record<string, unknown>) => void;
183
+ labels?: SettingsFormLabels;
184
+ }
185
+ /** Renders the settings form component. */
186
+ declare function SettingsForm({ fields, onSubmit, labels: customLabels }: SettingsFormProps): import("react/jsx-runtime").JSX.Element;
187
+ //#endregion
188
+ //#region src/shells/deployment-timeline.d.ts
189
+ /** Props for the deployment timeline component. */
190
+ interface DeploymentTimelineProps {
191
+ steps: DeploymentStep[];
192
+ title?: string;
193
+ }
194
+ /** Renders the deployment timeline component. */
195
+ declare function DeploymentTimeline({ steps, title }: DeploymentTimelineProps): import("react/jsx-runtime").JSX.Element;
196
+ //#endregion
197
+ //#region src/shells/project-switcher.d.ts
198
+ /** Props for the project switcher component. */
199
+ interface ProjectSwitcherProps {
200
+ projects: ProjectDef[];
201
+ value?: string;
202
+ onChange?: (id: string) => void;
203
+ placeholder?: string;
204
+ }
205
+ /** Renders the project switcher component. */
206
+ declare function ProjectSwitcher({ projects, value, onChange, placeholder }: ProjectSwitcherProps): import("react/jsx-runtime").JSX.Element;
207
+ declare namespace ProjectSwitcher {
208
+ var displayName: string;
209
+ }
210
+ //#endregion
211
+ //#region src/shells/env-panel.d.ts
212
+ /** Localized labels for the env panel component. */
213
+ interface EnvPanelLabels {
214
+ varCount?: (count: number) => string;
215
+ envVarsLabel?: (env: string) => string;
216
+ secretBadge?: string;
217
+ }
218
+ /** Props for the env panel component. */
219
+ interface EnvPanelProps {
220
+ groups: EnvGroupDef[];
221
+ labels?: EnvPanelLabels;
222
+ }
223
+ /** Renders the env panel component. */
224
+ declare function EnvPanel({ groups, labels: customLabels }: EnvPanelProps): import("react/jsx-runtime").JSX.Element;
225
+ //#endregion
226
+ //#region src/shells/branch-select.d.ts
227
+ /** Localized labels for the branch select component. */
228
+ interface BranchSelectLabels {
229
+ selectLabel?: string;
230
+ emptySelectionLabel?: string;
231
+ emptyMessage?: string;
232
+ defaultBadge?: string;
233
+ }
234
+ /** Props for the branch select component. */
235
+ interface BranchSelectProps {
236
+ branches: BranchDef[];
237
+ value?: string;
238
+ onChange?: (name: string) => void;
239
+ label?: string;
240
+ labels?: BranchSelectLabels;
241
+ }
242
+ /** Renders the branch select component. */
243
+ declare function BranchSelect({ branches, value: controlledValue, onChange, label, labels: customLabels }: BranchSelectProps): import("react/jsx-runtime").JSX.Element;
244
+ declare namespace BranchSelect {
245
+ var displayName: string;
246
+ }
247
+ //#endregion
248
+ //#region src/shells/domain-table.d.ts
249
+ /** Localized labels for the domain table component. */
250
+ interface DomainTableLabels {
251
+ domain?: string;
252
+ status?: string;
253
+ ssl?: string;
254
+ redirect?: string;
255
+ added?: string;
256
+ emptyMessage?: string;
257
+ }
258
+ /** Props for the domain table component. */
259
+ interface DomainTableProps {
260
+ domains: DomainDef[];
261
+ title?: string;
262
+ labels?: DomainTableLabels;
263
+ }
264
+ /** Renders the domain table component. */
265
+ declare function DomainTable({ domains, title, labels: customLabels }: DomainTableProps): import("react/jsx-runtime").JSX.Element;
266
+ //#endregion
267
+ //#region src/shells/data-table.d.ts
268
+ /**
269
+ * Column definition for DataTable.
270
+ * `accessor` can be a property key for simple lookups or a render function
271
+ * for computed/complex cells.
272
+ */
273
+ interface ColumnDef<T> {
274
+ id: string;
275
+ header: string;
276
+ accessor: keyof T | ((row: T) => ReactNode);
277
+ width?: string;
278
+ align?: "left" | "center" | "right";
279
+ sortable?: boolean;
280
+ /** Show an inline progress bar in the cell. Return a 0-1 ratio. */
281
+ bar?: (row: T) => number;
282
+ /** Bar color class (default: "bg-accent") */
283
+ barColor?: string;
284
+ }
285
+ /** Props for the data table component. */
286
+ interface DataTableProps<T> {
287
+ data: T[];
288
+ columns: ColumnDef<T>[];
289
+ keyExtractor: (row: T) => string;
290
+ title?: string;
291
+ onRowClick?: (row: T) => void;
292
+ emptyMessage?: string;
293
+ /** Highlight a single row by its key */
294
+ activeRowId?: string;
295
+ /** Enable column sorting */
296
+ sortable?: boolean;
297
+ /** Enable row selection with checkboxes */
298
+ selectable?: boolean;
299
+ selectedKeys?: string[];
300
+ onSelectionChange?: (keys: string[]) => void;
301
+ /** Enable expandable rows */
302
+ expandable?: boolean;
303
+ renderExpanded?: (row: T) => ReactNode;
304
+ /** Enable pagination */
305
+ pageSize?: number;
306
+ /** Sticky table header */
307
+ stickyHeader?: boolean;
308
+ /** Enable column resizing via drag handle */
309
+ resizableColumns?: boolean;
310
+ /** External (server-side) sort callback */
311
+ onSort?: (columnId: string, direction: "asc" | "desc" | null) => void;
312
+ className?: string;
313
+ }
314
+ /** Renders the data table component. */
315
+ declare function DataTable<T>({ data, columns, keyExtractor, title, onRowClick, emptyMessage, activeRowId, sortable, selectable, selectedKeys, onSelectionChange, expandable, renderExpanded, pageSize, stickyHeader, resizableColumns, onSort: onSortExternal, className }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
316
+ //#endregion
317
+ //#region src/shells/notification-toast.d.ts
318
+ /** Defines the toast action shape. */
319
+ interface ToastAction {
320
+ label: string;
321
+ onClick: () => void;
322
+ }
323
+ /** Toast severity. */
324
+ type ToastVariant = "info" | "success" | "warning" | "error";
325
+ /** Defines the toast message shape. */
326
+ interface ToastMessage {
327
+ id: string;
328
+ variant: ToastVariant;
329
+ title?: string;
330
+ message: string;
331
+ duration?: number;
332
+ actions?: ToastAction[];
333
+ }
334
+ /** Options accepted by the imperative `toast()` API. */
335
+ interface ToastOptions {
336
+ variant?: ToastVariant;
337
+ title?: string;
338
+ message: string;
339
+ duration?: number;
340
+ actions?: ToastAction[];
341
+ }
342
+ /** Defines the toast context value shape. */
343
+ interface ToastContextValue {
344
+ toasts: ToastMessage[];
345
+ addToast: (toast: Omit<ToastMessage, "id">) => string;
346
+ removeToast: (id: string) => void;
347
+ }
348
+ /**
349
+ * Imperative toast API. Call from anywhere (no hook required):
350
+ * `toast.success("Saved")`, `toast.error("Failed", { title: "Oops" })`,
351
+ * `toast.dismiss(id)`, `toast.clear()`. Requires a mounted `ToastProvider`.
352
+ */
353
+ declare const toast: ((options: ToastOptions) => string) & {
354
+ info: (message: string, options?: Omit<ToastOptions, "message" | "variant">) => string;
355
+ success: (message: string, options?: Omit<ToastOptions, "message" | "variant">) => string;
356
+ warning: (message: string, options?: Omit<ToastOptions, "message" | "variant">) => string;
357
+ error: (message: string, options?: Omit<ToastOptions, "message" | "variant">) => string;
358
+ dismiss: (id: string) => void;
359
+ clear: () => void;
360
+ };
361
+ /** Props for the toast provider component. */
362
+ interface ToastProviderProps {
363
+ children: ReactNode;
364
+ position?: "top-right" | "top-left" | "bottom-right" | "bottom-left";
365
+ defaultDuration?: number;
366
+ stackLimit?: number;
367
+ }
368
+ /** Renders the toast provider component. */
369
+ declare function ToastProvider({ children, position, defaultDuration, stackLimit }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
370
+ /** Provides toast. */
371
+ declare function useToast(): ToastContextValue;
372
+ interface NotificationToastProps {
373
+ toast: ToastMessage;
374
+ onDismiss: () => void;
375
+ /** Falls back here when the toast itself sets no duration. */
376
+ defaultDuration?: number;
377
+ }
378
+ /** Renders the notification toast component. */
379
+ declare function NotificationToast({ toast, onDismiss, defaultDuration }: NotificationToastProps): import("react/jsx-runtime").JSX.Element;
380
+ //#endregion
381
+ //#region src/shells/failure-list.d.ts
382
+ interface TimeAgoLabels {
383
+ justNow: string;
384
+ minutesAgo: string;
385
+ hoursAgo: string;
386
+ daysAgo: string;
387
+ }
388
+ /** Localized labels for the failure list component. */
389
+ interface FailureListLabels {
390
+ title?: string;
391
+ emptyMessage?: string;
392
+ moreItems?: string;
393
+ severityLabels?: Partial<Record<"critical" | "error" | "warning", string>>;
394
+ timeAgo?: Partial<TimeAgoLabels>;
395
+ }
396
+ /** Props for the failure list component. */
397
+ interface FailureListProps {
398
+ failures: FailureItem[];
399
+ title?: string;
400
+ maxItems?: number;
401
+ /** Group failures by `group` field */
402
+ grouped?: boolean;
403
+ onFailureClick?: (failure: FailureItem) => void;
404
+ onShowMore?: () => void;
405
+ labels?: FailureListLabels;
406
+ locale?: string;
407
+ loading?: boolean;
408
+ renderActions?: (failure: FailureItem) => ReactNode;
409
+ className?: string;
410
+ }
411
+ /** Renders the failure list component. */
412
+ declare function FailureList({ failures, title, maxItems, grouped, onFailureClick, onShowMore, labels: customLabels, locale, loading, renderActions, className }: FailureListProps): import("react/jsx-runtime").JSX.Element;
413
+ //#endregion
414
+ //#region src/shells/key-value-editor.d.ts
415
+ /** Defines the key value entry shape. */
416
+ interface KeyValueEntry {
417
+ id: string;
418
+ key: string;
419
+ value: string;
420
+ isSecret?: boolean;
421
+ }
422
+ /** Localized labels for the key value editor component. */
423
+ interface KeyValueEditorLabels {
424
+ keyPlaceholder?: string;
425
+ valuePlaceholder?: string;
426
+ addButton?: string;
427
+ removeAriaLabel?: string;
428
+ toggleSecretAriaLabel?: string;
429
+ emptyMessage?: string;
430
+ }
431
+ /** Props for the key value editor component. */
432
+ interface KeyValueEditorProps {
433
+ /** Current entries (controlled) */
434
+ value?: KeyValueEntry[];
435
+ /** Initial entries (uncontrolled) */
436
+ defaultValue?: KeyValueEntry[];
437
+ /** Called when entries change */
438
+ onChange?: (entries: KeyValueEntry[]) => void;
439
+ /** Allow toggling secret/password visibility */
440
+ showSecretToggle?: boolean;
441
+ /** Maximum number of entries allowed */
442
+ maxEntries?: number;
443
+ /** Whether entries are read-only */
444
+ readOnly?: boolean;
445
+ /** Custom labels for i18n */
446
+ labels?: KeyValueEditorLabels;
447
+ /** Render custom actions per entry */
448
+ renderActions?: (entry: KeyValueEntry, index: number) => ReactNode;
449
+ /** Validate key on change. Return error message or undefined. */
450
+ validateKey?: (key: string, entries: KeyValueEntry[]) => string | undefined;
451
+ className?: string;
452
+ }
453
+ /** Renders the key value editor component. */
454
+ declare function KeyValueEditor({ value: controlledValue, defaultValue, onChange, showSecretToggle, maxEntries, readOnly, labels: customLabels, renderActions, validateKey, className }: KeyValueEditorProps): import("react/jsx-runtime").JSX.Element;
455
+ //#endregion
456
+ //#region src/shells/workflow-canvas.d.ts
457
+ /** Defines the workflow canvas step shape. */
458
+ interface WorkflowCanvasStep {
459
+ id: string;
460
+ title: string;
461
+ row: number;
462
+ col: number;
463
+ status?: "idle" | "running" | "success" | "error";
464
+ }
465
+ /** Defines the workflow canvas connection shape. */
466
+ interface WorkflowCanvasConnection {
467
+ from: string;
468
+ to: string;
469
+ label?: string;
470
+ }
471
+ /** Props for the workflow canvas component. */
472
+ interface WorkflowCanvasProps {
473
+ steps: WorkflowCanvasStep[];
474
+ connections?: WorkflowCanvasConnection[];
475
+ rows?: number;
476
+ cols?: number;
477
+ cellSize?: number;
478
+ gap?: number;
479
+ title?: string;
480
+ emptyMessage?: string;
481
+ selectedStepId?: string;
482
+ onSelectStep?: (step: WorkflowCanvasStep) => void;
483
+ onStepMove?: (stepId: string, row: number, col: number) => void;
484
+ renderStep?: (step: WorkflowCanvasStep, selected: boolean) => React.ReactNode;
485
+ className?: string;
486
+ }
487
+ /** Renders the workflow canvas component. */
488
+ declare function WorkflowCanvas({ steps, connections, rows, cols, cellSize, gap, title, emptyMessage, selectedStepId, onSelectStep, onStepMove, renderStep, className }: WorkflowCanvasProps): import("react/jsx-runtime").JSX.Element;
489
+ declare namespace WorkflowCanvas {
490
+ var displayName: string;
491
+ }
492
+ //#endregion
493
+ export { CommandPaletteTriggerProps as $, ProjectSwitcher as A, EditorToolbar as B, DataTableProps as C, BranchSelectProps as D, BranchSelect as E, SettingsFormProps as F, AppMenubarProps as G, SidebarNav as H, FaqAccordion as I, SearchCombobox as J, StatusSelect as K, FaqAccordionProps as L, DeploymentTimeline as M, DeploymentTimelineProps as N, EnvPanel as O, SettingsForm as P, CommandPaletteTrigger as Q, ContentTabs as R, DataTable as S, DomainTableProps as T, SidebarNavProps as U, EditorToolbarProps as V, AppMenubar as W, DashboardGrid as X, SearchComboboxProps as Y, DashboardGridProps as Z, ToastProviderProps as _, KeyValueEditor as a, useToast as b, KeyValueEntry as c, FailureListProps as d, CommandPalette as et, NotificationToast as f, ToastProvider as g, ToastMessage as h, WorkflowCanvasStep as i, ProjectSwitcherProps as j, EnvPanelProps as k, FailureList as l, ToastContextValue as m, WorkflowCanvasConnection as n, KeyValueEditorLabels as o, ToastAction as p, StatusSelectProps as q, WorkflowCanvasProps as r, KeyValueEditorProps as s, WorkflowCanvas as t, CommandPaletteProps as tt, FailureListLabels as u, ToastVariant as v, DomainTable as w, ColumnDef as x, toast as y, ContentTabsProps as z };
494
+ //# sourceMappingURL=workflow-canvas-DghDRtHn.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-canvas-DghDRtHn.d.cts","names":[],"sources":["../src/shells/command-palette.tsx","../src/shells/command-palette-trigger.tsx","../src/shells/dashboard-grid.tsx","../src/shells/search-combobox.tsx","../src/shells/status-select.tsx","../src/shells/app-menubar.tsx","../src/shells/sidebar-nav.tsx","../src/shells/editor-toolbar.tsx","../src/shells/content-tabs.tsx","../src/shells/faq-accordion.tsx","../src/shells/settings-form.tsx","../src/shells/deployment-timeline.tsx","../src/shells/project-switcher.tsx","../src/shells/env-panel.tsx","../src/shells/branch-select.tsx","../src/shells/domain-table.tsx","../src/shells/data-table.tsx","../src/shells/notification-toast.tsx","../src/shells/failure-list.tsx","../src/shells/key-value-editor.tsx","../src/shells/workflow-canvas.tsx"],"mappings":"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AQ;EACR,WAAW,OAAO,KAAK;EACvB,cAAc;;;;;;;cA6DH,SAAK,SACN;EAXC,OAAA,iBAAM,UACL,KAAK;;;;EAgBD,UAAA;;;;UAWD;EACf,UAAU;EACV;EACA;EACA;;;iBAcc,gBACd,UACA,UACA,iBACA,cACC,iDAAkB,IAAA;;iBA6CL,YAAQ;UAQd;EACR,OAAO;EACP;;EAEA;;;iBAIc,oBACd,OACA,WACA,mBACC,qDAAsB,IAAA;;;UChMf;EACR;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA,iBAAiB,QAAQ;EACzB,UAAU,QAAQ;;;UA6CH;EACf,UAAU;EACV;EACA;;EAEA;EACA,kBAAkB,SAAS;EAC3B;EACA,SAAS;EACT;EACA;EACA,iBAAiB,SAAS,gBAAgB;EAC1C;;;iBA0Hc,cACd,UACA,OACA,UACA,SACA,gBACA,YACA,QAAQ,cACR,QACA,SACA,eACA,aACC,+CAAgB,IAAA;;;;UC5NF;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;;;UAae;;EAEf,QAAQ;;EAER,eAAe;;EAEf,YAAY,SAAS;;EAErB;;EAEA;;EAEA;;EAEA,SAAS;;EAET,iBAAiB,OAAO,eAAe,kBAAkB;;EAEzD,eAAe,aAAa,SAAS;EACrC;;;iBASc,iBACd,OAAO,iBACP,cACA,UACA,kBACA,YACA,UACA,QAAQ,cACR,eACA,aACA,aACC,kDAAmB,IAAA;;;;UCjEL;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAOe;EACf,OAAO;EACP,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA,gBAAgB,MAAM;EACtB,cAAc,gBAAgB,aAAa;EAC3C,cAAc,MAAM,oBAAoB,sBAAsB,MAAM;EACpE;;;iBAec,iBACd,OACA,aACA,MACA,MACA,UACA,KACA,OACA,cACA,gBACA,cACA,YACA,YACA,aACC,kDAAmB,IAAA;kBAdN;MAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reopt-ai/opt-ui",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "접근성 우선 UI 컴포넌트 라이브러리. opt-ui-primitives Core, 비즈니스 Shells, 페이지 Surfaces.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -118,6 +118,7 @@
118
118
  },
119
119
  "./id-registry.json": "./dist/id-registry.json",
120
120
  "./tailwind.css": "./dist/tailwind.css",
121
+ "./app.css": "./dist/app.css",
121
122
  "./theme/presets/default.css": "./dist/theme/presets/default.css",
122
123
  "./theme/presets/minimal.css": "./dist/theme/presets/minimal.css",
123
124
  "./theme/presets/natural.css": "./dist/theme/presets/natural.css",
@@ -148,16 +149,17 @@
148
149
  "tailwind-merge": "^3.4.0"
149
150
  },
150
151
  "peerDependencies": {
151
- "react": "^19.0.0",
152
- "react-dom": "^19.0.0",
153
- "next": ">=16.0.0",
152
+ "@codemirror/autocomplete": "^6.20.1",
154
153
  "@codemirror/lang-sql": "^6.10.0",
155
154
  "@codemirror/state": "^6.5.4",
156
155
  "@codemirror/theme-one-dark": "^6.1.3",
157
- "@codemirror/view": "^6.39.12"
156
+ "@codemirror/view": "^6.39.12",
157
+ "next": ">=16.0.0",
158
+ "react": "^19.0.0",
159
+ "react-dom": "^19.0.0"
158
160
  },
159
161
  "peerDependenciesMeta": {
160
- "next": {
162
+ "@codemirror/autocomplete": {
161
163
  "optional": true
162
164
  },
163
165
  "@codemirror/lang-sql": {
@@ -171,6 +173,9 @@
171
173
  },
172
174
  "@codemirror/view": {
173
175
  "optional": true
176
+ },
177
+ "next": {
178
+ "optional": true
174
179
  }
175
180
  }
176
181
  }
@@ -1,38 +0,0 @@
1
- "use client";
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __spreadValues = (a, b) => {
10
- for (var prop in b || (b = {}))
11
- if (__hasOwnProp.call(b, prop))
12
- __defNormalProp(a, prop, b[prop]);
13
- if (__getOwnPropSymbols)
14
- for (var prop of __getOwnPropSymbols(b)) {
15
- if (__propIsEnum.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- }
18
- return a;
19
- };
20
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
- var __objRest = (source, exclude) => {
22
- var target = {};
23
- for (var prop in source)
24
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target[prop] = source[prop];
26
- if (source != null && __getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(source)) {
28
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target[prop] = source[prop];
30
- }
31
- return target;
32
- };
33
-
34
- export {
35
- __spreadValues,
36
- __spreadProps,
37
- __objRest
38
- };