@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
@@ -7,7 +7,7 @@ related:
7
7
  - ../02-components/03-shells.md
8
8
  ---
9
9
 
10
- <!-- AI agent hint: Surface/페이지 루트에 직접 space-y-* 사용 금지. 반드시 SurfaceLayout 또는 createSurface 사용. -->
10
+ <!-- AI agent hint: Block/페이지 루트에 직접 space-y-* 사용 금지. 반드시 BlockLayout 또는 createBlock 사용. 페이지 경계를 직접 맡으면 inset="section"을 지정. -->
11
11
 
12
12
  # Layout Recipes
13
13
 
@@ -111,14 +111,14 @@ export function AppLayout({ children }: { children: React.ReactNode }) {
111
111
 
112
112
  ## 2. Data Explorer Page
113
113
 
114
- FilterBar + DataTable + Pagination in a SurfaceLayout.
114
+ FilterBar + DataTable + Pagination in a BlockLayout.
115
115
 
116
116
  ```tsx
117
117
  "use client";
118
118
 
119
119
  import { useState, useMemo } from "react";
120
120
  import {
121
- SurfaceLayout,
121
+ BlockLayout,
122
122
  PageHeader,
123
123
  FilterBar,
124
124
  DataTable,
@@ -221,7 +221,7 @@ export function UserExplorerPage() {
221
221
  };
222
222
 
223
223
  return (
224
- <SurfaceLayout>
224
+ <BlockLayout inset="section">
225
225
  <PageHeader
226
226
  title="사용자 관리"
227
227
  description={`총 ${filtered.length}명`}
@@ -253,20 +253,20 @@ export function UserExplorerPage() {
253
253
  currentPage={page}
254
254
  onPageChange={setPage}
255
255
  />
256
- </SurfaceLayout>
256
+ </BlockLayout>
257
257
  );
258
258
  }
259
259
  ```
260
260
 
261
261
  ## 3. Settings Page with Vertical Tabs
262
262
 
263
- SurfaceLayout with VerticalTabs for section navigation and SettingsForm for each tab.
263
+ BlockLayout with VerticalTabs for section navigation and SettingsForm for each tab.
264
264
 
265
265
  ```tsx
266
266
  "use client";
267
267
 
268
268
  import {
269
- SurfaceLayout,
269
+ BlockLayout,
270
270
  PageHeader,
271
271
  VerticalTabs,
272
272
  SettingsForm,
@@ -391,7 +391,7 @@ const tabs: TabDef[] = [
391
391
 
392
392
  export function SettingsPage() {
393
393
  return (
394
- <SurfaceLayout>
394
+ <BlockLayout inset="section">
395
395
  <PageHeader title="설정" description="프로젝트 설정을 관리합니다" />
396
396
 
397
397
  <VerticalTabs
@@ -399,7 +399,7 @@ export function SettingsPage() {
399
399
  defaultTabId="general"
400
400
  labels={{ ariaLabel: "설정 카테고리" }}
401
401
  />
402
- </SurfaceLayout>
402
+ </BlockLayout>
403
403
  );
404
404
  }
405
405
  ```
@@ -408,14 +408,14 @@ export function SettingsPage() {
408
408
 
409
409
  | Element | Approach |
410
410
  | -------------- | ------------------------------------------------------------------------- |
411
- | Page root | `SurfaceLayout` (provides `gap-section` between children) |
411
+ | Page root | `BlockLayout inset="section"` (page inset + `gap-section`) |
412
412
  | App chrome | `AppShell` + `AppShell.Header/Sidebar/Content/Footer` |
413
413
  | Sidebar nav | `Sidebar` with `Sidebar.Header/Content/Footer` sub-components |
414
- | Page title | `PageHeader` with optional `description` and `actions` slot |
414
+ | Page title | `PageHeader` with optional slots; outer inset belongs to the page root |
415
415
  | Section grids | `gap-group` between columns, `gap-element` for tight spacing |
416
416
  | Tab navigation | `VerticalTabs` for left-side tabs, `ContentTabs` for horizontal |
417
417
  | Pagination | `Pagination` below `DataTable` with `totalItems`/`pageSize`/`currentPage` |
418
- | Loading state | `SurfaceLayout loading={true}` wraps content with `LoadingOverlay` |
418
+ | Loading state | `BlockLayout loading={true}` wraps content with `LoadingOverlay` |
419
419
 
420
420
  ### Semantic Spacing Quick Reference
421
421
 
@@ -423,6 +423,10 @@ export function SettingsPage() {
423
423
  gap-section -> 24px (between major sections)
424
424
  gap-group -> 16px (between related items)
425
425
  gap-element -> 8px (between tightly coupled elements)
426
+ p-section -> 24px (inside a page-owned content boundary)
426
427
  ```
427
428
 
428
429
  CSS variables: `--opt-space-section`, `--opt-space-group`, `--opt-space-element`.
430
+
431
+ `BlockLayout`의 inset 기본값은 없음입니다. 재사용 Block이 카드나 Shell 안에 들어갈 때 이중
432
+ 여백이 생기지 않게 하고, 페이지 콘텐츠 경계를 맡는 호출부만 `inset="section"`을 명시합니다.
@@ -25,6 +25,34 @@ description: "opt-ui 버전별 Breaking/Deprecated 변경사항 레지스트리"
25
25
 
26
26
  ---
27
27
 
28
+ ## Version 1.5.0
29
+
30
+ ### Breaking
31
+
32
+ - version: "1.5.0"
33
+ level: B
34
+ component: "Surface runtime exports"
35
+ change: "런타임 Surface export 제거 — opt-cli 블록 registry로 이관"
36
+ detail: "ChatAssistant, DataExplorer, DeploymentCenter 등 런타임 Surface와 createSurface가 @reopt-ai/opt-ui에서 더 이상 export되지 않습니다. 페이지 템플릿은 opt-cli 블록 registry(copy-paste)로 소비합니다."
37
+ scan: "ChatAssistant\\|DataExplorer\\|DeploymentCenter\\|createSurface"
38
+ fix:
39
+ type: manual
40
+ from: 'import { ChatAssistant } from "@reopt-ai/opt-ui"'
41
+ to: "npx @reopt-ai/opt-cli surface add <slug>"
42
+
43
+ ### Deprecated
44
+
45
+ - version: "1.5.0"
46
+ level: D
47
+ component: "SurfaceLayout"
48
+ change: "SurfaceLayout deprecated → BlockLayout / createBlock"
49
+ detail: "SurfaceLayout이 deprecated 되었습니다. 페이지 간격·레이아웃은 BlockLayout 또는 createBlock을 사용하세요."
50
+ scan: "SurfaceLayout"
51
+ fix:
52
+ type: rename
53
+ from: "<SurfaceLayout>"
54
+ to: "<BlockLayout>"
55
+
28
56
  ## Version 1.2.0
29
57
 
30
58
  ### Breaking