@orcestr/ui 0.0.3 → 0.1.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.
Files changed (184) hide show
  1. package/dist/components/Alert/Alert.d.ts +5 -4
  2. package/dist/components/Alert/Alert.d.ts.map +1 -1
  3. package/dist/components/Alert/Alert.js +5 -2
  4. package/dist/components/AppShell/AppShell.d.ts +13 -0
  5. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  6. package/dist/components/AppShell/AppShell.js +14 -9
  7. package/dist/components/AppSidebar/AppSidebar.d.ts +36 -0
  8. package/dist/components/AppSidebar/AppSidebar.d.ts.map +1 -0
  9. package/dist/components/AppSidebar/AppSidebar.js +117 -0
  10. package/dist/components/Badge/Badge.d.ts +8 -6
  11. package/dist/components/Badge/Badge.d.ts.map +1 -1
  12. package/dist/components/Badge/Badge.js +4 -4
  13. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.d.ts +22 -0
  14. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.d.ts.map +1 -0
  15. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.js +50 -0
  16. package/dist/components/Box/Box.d.ts +2 -0
  17. package/dist/components/Box/Box.d.ts.map +1 -1
  18. package/dist/components/Box/Box.js +15 -2
  19. package/dist/components/Button/Button.d.ts +7 -3
  20. package/dist/components/Button/Button.d.ts.map +1 -1
  21. package/dist/components/Button/Button.js +23 -3
  22. package/dist/components/Card/Card.d.ts +26 -0
  23. package/dist/components/Card/Card.d.ts.map +1 -0
  24. package/dist/components/Card/Card.js +25 -0
  25. package/dist/components/Checkbox/Checkbox.d.ts +6 -2
  26. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  27. package/dist/components/Checkbox/Checkbox.js +13 -4
  28. package/dist/components/Collapse/Collapse.d.ts.map +1 -1
  29. package/dist/components/Collapse/Collapse.js +5 -25
  30. package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -1
  31. package/dist/components/CommandPalette/CommandPalette.js +10 -9
  32. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  33. package/dist/components/ConfirmDialog/ConfirmDialog.js +5 -2
  34. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
  35. package/dist/components/ContextMenu/ContextMenu.js +2 -2
  36. package/dist/components/CopyButton/CopyButton.d.ts +24 -0
  37. package/dist/components/CopyButton/CopyButton.d.ts.map +1 -0
  38. package/dist/components/CopyButton/CopyButton.js +81 -0
  39. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  40. package/dist/components/DatePicker/DatePicker.js +9 -1
  41. package/dist/components/Dialog/Dialog.d.ts +69 -1
  42. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  43. package/dist/components/Dialog/Dialog.js +48 -1
  44. package/dist/components/Drawer/Drawer.d.ts +2 -1
  45. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  46. package/dist/components/Drawer/Drawer.js +4 -4
  47. package/dist/components/EntityPicker/EntityPicker.d.ts +2 -1
  48. package/dist/components/EntityPicker/EntityPicker.d.ts.map +1 -1
  49. package/dist/components/EntityPicker/EntityPicker.js +2 -2
  50. package/dist/components/Flex/Flex.d.ts +5 -1
  51. package/dist/components/Flex/Flex.d.ts.map +1 -1
  52. package/dist/components/Flex/Flex.js +16 -3
  53. package/dist/components/Grid/Grid.d.ts +9 -2
  54. package/dist/components/Grid/Grid.d.ts.map +1 -1
  55. package/dist/components/Grid/Grid.js +22 -1
  56. package/dist/components/IconButton/IconButton.d.ts +19 -7
  57. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  58. package/dist/components/IconButton/IconButton.js +40 -5
  59. package/dist/components/IconTextButton/IconTextButton.d.ts +20 -0
  60. package/dist/components/IconTextButton/IconTextButton.d.ts.map +1 -0
  61. package/dist/components/IconTextButton/IconTextButton.js +24 -0
  62. package/dist/components/InlineEdit/InlineEdit.d.ts +63 -0
  63. package/dist/components/InlineEdit/InlineEdit.d.ts.map +1 -0
  64. package/dist/components/InlineEdit/InlineEdit.js +98 -0
  65. package/dist/components/LinkButton/LinkButton.d.ts +25 -0
  66. package/dist/components/LinkButton/LinkButton.d.ts.map +1 -0
  67. package/dist/components/LinkButton/LinkButton.js +12 -0
  68. package/dist/components/Modal/Modal.d.ts +29 -6
  69. package/dist/components/Modal/Modal.d.ts.map +1 -1
  70. package/dist/components/Modal/Modal.js +37 -13
  71. package/dist/components/Overlay/OverlayProvider.d.ts +1 -0
  72. package/dist/components/Overlay/OverlayProvider.d.ts.map +1 -1
  73. package/dist/components/Overlay/OverlayProvider.js +18 -1
  74. package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts +2 -1
  75. package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts.map +1 -1
  76. package/dist/components/PaginatedCombobox/PaginatedCombobox.js +3 -3
  77. package/dist/components/Popover/Popover.d.ts +37 -3
  78. package/dist/components/Popover/Popover.d.ts.map +1 -1
  79. package/dist/components/Popover/Popover.js +56 -9
  80. package/dist/components/ScrollArea/ScrollArea.d.ts +4 -0
  81. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  82. package/dist/components/ScrollArea/ScrollArea.js +30 -4
  83. package/dist/components/Section/Section.d.ts +2 -0
  84. package/dist/components/Section/Section.d.ts.map +1 -1
  85. package/dist/components/SegmentedControl/SegmentedControl.d.ts +24 -1
  86. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  87. package/dist/components/SegmentedControl/SegmentedControl.js +28 -2
  88. package/dist/components/Select/Select.d.ts +36 -4
  89. package/dist/components/Select/Select.d.ts.map +1 -1
  90. package/dist/components/Select/Select.js +70 -3
  91. package/dist/components/Separator/Separator.d.ts +3 -1
  92. package/dist/components/Separator/Separator.d.ts.map +1 -1
  93. package/dist/components/Separator/Separator.js +4 -2
  94. package/dist/components/SpecialModal/SpecialModal.d.ts +43 -0
  95. package/dist/components/SpecialModal/SpecialModal.d.ts.map +1 -0
  96. package/dist/components/SpecialModal/SpecialModal.js +34 -0
  97. package/dist/components/Spinner/Spinner.d.ts +3 -1
  98. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  99. package/dist/components/Spinner/Spinner.js +2 -2
  100. package/dist/components/State/State.d.ts +8 -1
  101. package/dist/components/State/State.d.ts.map +1 -1
  102. package/dist/components/State/State.js +2 -2
  103. package/dist/components/Switch/Switch.d.ts +2 -0
  104. package/dist/components/Switch/Switch.d.ts.map +1 -1
  105. package/dist/components/Switch/Switch.js +2 -1
  106. package/dist/components/Table/Table.d.ts +64 -0
  107. package/dist/components/Table/Table.d.ts.map +1 -0
  108. package/dist/components/Table/Table.js +38 -0
  109. package/dist/components/Tabs/Tabs.d.ts +33 -2
  110. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  111. package/dist/components/Tabs/Tabs.js +201 -5
  112. package/dist/components/Text/Text.d.ts +13 -3
  113. package/dist/components/Text/Text.d.ts.map +1 -1
  114. package/dist/components/Text/Text.js +16 -3
  115. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  116. package/dist/components/TextArea/TextArea.js +1 -1
  117. package/dist/components/TextField/TextField.d.ts.map +1 -1
  118. package/dist/components/TextField/TextField.js +1 -1
  119. package/dist/components/Toast/Toast.d.ts +1 -4
  120. package/dist/components/Toast/Toast.d.ts.map +1 -1
  121. package/dist/components/Toast/Toast.js +72 -37
  122. package/dist/components/Tooltip/Tooltip.d.ts +11 -3
  123. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  124. package/dist/components/Tooltip/Tooltip.js +58 -9
  125. package/dist/example/CodePreview.d.ts +2 -1
  126. package/dist/example/CodePreview.d.ts.map +1 -1
  127. package/dist/example/CodePreview.js +16 -51
  128. package/dist/example/ExampleActionsSection.d.ts.map +1 -1
  129. package/dist/example/ExampleActionsSection.js +3 -3
  130. package/dist/example/ExampleApplicationSection.d.ts +7 -0
  131. package/dist/example/ExampleApplicationSection.d.ts.map +1 -0
  132. package/dist/example/ExampleApplicationSection.js +88 -0
  133. package/dist/example/ExampleBasicsSections.d.ts +1 -1
  134. package/dist/example/ExampleBasicsSections.d.ts.map +1 -1
  135. package/dist/example/ExampleBasicsSections.js +15 -13
  136. package/dist/example/ExampleDataSection.d.ts.map +1 -1
  137. package/dist/example/ExampleDataSection.js +31 -30
  138. package/dist/example/ExampleFieldsSection.d.ts.map +1 -1
  139. package/dist/example/ExampleFieldsSection.js +51 -3
  140. package/dist/example/ExampleFoundationsSection.js +1 -1
  141. package/dist/example/ExampleOverlays.d.ts.map +1 -1
  142. package/dist/example/ExampleOverlays.js +7 -2
  143. package/dist/example/ExampleOverlaysSection.d.ts.map +1 -1
  144. package/dist/example/ExampleOverlaysSection.js +20 -30
  145. package/dist/example/ExampleSelectionSection.d.ts +3 -1
  146. package/dist/example/ExampleSelectionSection.d.ts.map +1 -1
  147. package/dist/example/ExampleSelectionSection.js +10 -3
  148. package/dist/example/ExampleStateSection.d.ts +3 -0
  149. package/dist/example/ExampleStateSection.d.ts.map +1 -1
  150. package/dist/example/ExampleStateSection.js +65 -9
  151. package/dist/example/ExampleThemePlayground.d.ts +84 -54
  152. package/dist/example/ExampleThemePlayground.d.ts.map +1 -1
  153. package/dist/example/ExampleThemePlayground.js +129 -63
  154. package/dist/example/UiExamplePage.d.ts.map +1 -1
  155. package/dist/example/UiExamplePage.js +39 -19
  156. package/dist/example/codeSamples.d.ts +8 -1
  157. package/dist/example/codeSamples.d.ts.map +1 -1
  158. package/dist/example/codeSamples.js +590 -119
  159. package/dist/example/exampleData.d.ts.map +1 -1
  160. package/dist/example/exampleData.js +18 -10
  161. package/dist/example/styles.css +277 -146
  162. package/dist/hooks/useFloatingPosition.js +1 -1
  163. package/dist/hooks/usePresence.d.ts.map +1 -1
  164. package/dist/hooks/usePresence.js +9 -7
  165. package/dist/index.d.ts +9 -1
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +9 -1
  168. package/dist/styles/orcestr-ui.css +3002 -872
  169. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  170. package/dist/theme/ThemeProvider.js +109 -53
  171. package/dist/theme/defaultTheme.d.ts.map +1 -1
  172. package/dist/theme/defaultTheme.js +356 -223
  173. package/dist/theme/systemProps.d.ts +48 -28
  174. package/dist/theme/systemProps.d.ts.map +1 -1
  175. package/dist/theme/systemProps.js +103 -1
  176. package/dist/theme/themeTypes.d.ts +44 -35
  177. package/dist/theme/themeTypes.d.ts.map +1 -1
  178. package/dist/utils/slot.d.ts +11 -0
  179. package/dist/utils/slot.d.ts.map +1 -0
  180. package/dist/utils/slot.js +18 -0
  181. package/package.json +4 -1
  182. package/dist/components/Workflow/Workflow.d.ts +0 -82
  183. package/dist/components/Workflow/Workflow.d.ts.map +0 -1
  184. package/dist/components/Workflow/Workflow.js +0 -73
@@ -29,6 +29,8 @@ body.oui-ui-document-lock {
29
29
 
30
30
  .oui-ui-section {
31
31
  container-type: inline-size;
32
+ content-visibility: auto;
33
+ contain-intrinsic-size: auto 560px;
32
34
  overflow: hidden;
33
35
  padding: 18px;
34
36
  }
@@ -53,20 +55,6 @@ body.oui-ui-document-lock {
53
55
  min-height: 0;
54
56
  }
55
57
 
56
- .oui-ui-topbar {
57
- display: flex;
58
- min-width: 0;
59
- flex: 0 0 auto;
60
- align-items: center;
61
- justify-content: space-between;
62
- gap: 14px;
63
- border-radius: var(--oui-radius);
64
- background: var(--oui-section-surface-bg, var(--oui-panel));
65
- box-shadow: var(--oui-section-shadow, none);
66
- margin: 0 28px 10px 22px;
67
- padding: 14px 16px;
68
- }
69
-
70
58
  .oui-ui-brand {
71
59
  display: inline-flex;
72
60
  min-width: 0;
@@ -117,31 +105,27 @@ body.oui-ui-document-lock {
117
105
  white-space: nowrap;
118
106
  }
119
107
 
120
- .oui-app-shell-sidebar-title .oui-ui-brand {
108
+ .oui-ui-main-sidebar .oui-ui-brand {
121
109
  width: 100%;
122
110
  }
123
111
 
124
- .oui-app-shell-sidebar-title .oui-ui-brand-text {
112
+ .oui-ui-main-sidebar .oui-ui-brand-text {
125
113
  flex: 1 1 auto;
126
114
  }
127
115
 
128
- .oui-ui-topbar-actions {
129
- display: inline-flex;
130
- min-width: 0;
131
- flex: 0 0 auto;
132
- align-items: center;
133
- justify-content: flex-end;
134
- gap: 8px;
116
+ .oui-app-shell-header > .oui-ui-brand {
117
+ flex: 1 1 auto;
135
118
  }
136
119
 
137
- .oui-ui-topbar-slogan {
120
+ .oui-ui-header-title {
138
121
  display: flex;
139
122
  min-width: 0;
123
+ flex: 1 1 auto;
140
124
  flex-direction: column;
141
125
  gap: 2px;
142
126
  }
143
127
 
144
- .oui-ui-topbar-slogan strong {
128
+ .oui-ui-header-title strong {
145
129
  overflow: hidden;
146
130
  color: var(--oui-text);
147
131
  font-size: 14px;
@@ -151,7 +135,7 @@ body.oui-ui-document-lock {
151
135
  white-space: nowrap;
152
136
  }
153
137
 
154
- .oui-ui-topbar-slogan span {
138
+ .oui-ui-header-title span {
155
139
  overflow: hidden;
156
140
  color: var(--oui-muted);
157
141
  font-size: 12px;
@@ -160,7 +144,16 @@ body.oui-ui-document-lock {
160
144
  white-space: nowrap;
161
145
  }
162
146
 
163
- .oui-ui-topbar-link {
147
+ .oui-ui-header-actions {
148
+ display: inline-flex;
149
+ min-width: 0;
150
+ flex: 0 0 auto;
151
+ align-items: center;
152
+ justify-content: flex-end;
153
+ gap: 8px;
154
+ }
155
+
156
+ .oui-ui-header-link {
164
157
  display: inline-flex;
165
158
  min-height: 30px;
166
159
  align-items: center;
@@ -178,64 +171,20 @@ body.oui-ui-document-lock {
178
171
  font-family: inherit;
179
172
  }
180
173
 
181
- .oui-ui-topbar-link {
174
+ .oui-ui-header-link {
182
175
  background: var(--oui-pad-bg);
183
176
  padding: 0 9px;
184
177
  }
185
178
 
186
- .oui-ui-language-switch {
187
- display: inline-flex;
188
- min-height: 30px;
189
- align-items: center;
190
- gap: 3px;
191
- border: 0;
192
- border-radius: var(--oui-radius-sm);
193
- background: var(--oui-pad-bg);
194
- padding: 2px;
195
- }
196
-
197
- .oui-ui-language-label {
198
- padding: 0 6px;
199
- color: var(--oui-muted);
200
- font-size: 12px;
201
- font-weight: 720;
202
- line-height: 1;
203
- white-space: nowrap;
204
- }
205
-
206
- .oui-ui-language-option {
207
- display: inline-flex;
208
- min-width: 32px;
209
- min-height: 24px;
210
- align-items: center;
211
- justify-content: center;
212
- border: 0;
213
- border-radius: 5px;
214
- background: transparent;
215
- color: var(--oui-muted);
216
- cursor: pointer;
217
- font: inherit;
218
- font-size: 12px;
219
- font-weight: 800;
220
- line-height: 1;
221
- }
222
-
223
- .oui-ui-language-option:hover,
224
- .oui-ui-language-option:focus-visible {
225
- color: var(--oui-text);
226
- outline: none;
227
- }
228
-
229
- .oui-ui-language-option[data-active=true] {
230
- background: var(--oui-brand-soft);
231
- color: var(--oui-brand-strong);
179
+ .oui-ui-language-button {
180
+ flex: 0 0 auto;
232
181
  }
233
182
 
234
- .oui-ui-topbar-link:hover {
183
+ .oui-ui-header-link:hover {
235
184
  background: var(--oui-pad-hover-bg);
236
185
  }
237
186
 
238
- .oui-ui-topbar-link:focus-visible {
187
+ .oui-ui-header-link:focus-visible {
239
188
  outline: none;
240
189
  box-shadow: var(--oui-ring);
241
190
  }
@@ -347,55 +296,202 @@ body.oui-ui-document-lock {
347
296
  flex: 0 0 auto;
348
297
  }
349
298
 
350
- .oui-ui-sidebar-groups {
299
+ .oui-ui-context-menu-demo {
351
300
  display: flex;
352
301
  min-width: 0;
353
302
  flex-direction: column;
354
- gap: 10px;
303
+ gap: 3px;
304
+ border: 1px dashed var(--oui-border);
305
+ border-radius: var(--oui-radius-sm);
306
+ background: var(--oui-pad-bg);
307
+ cursor: context-menu;
308
+ padding: 12px;
309
+ }
310
+
311
+ .oui-ui-inline-edit-popover {
312
+ width: 280px;
313
+ }
314
+
315
+ .oui-ui-inline-edit-option {
316
+ min-height: 34px;
317
+ padding: 6px 8px;
318
+ }
319
+
320
+ .oui-ui-inline-edit-option .oui-combobox-option-main {
321
+ align-self: auto;
322
+ padding: 0;
355
323
  }
356
324
 
357
- .oui-ui-sidebar-group {
325
+ .oui-ui-app-sidebar-demo {
326
+ width: min(100%, 300px);
327
+ height: 440px;
328
+ overflow: hidden;
329
+ border: 1px solid var(--oui-border);
330
+ border-radius: var(--oui-radius);
331
+ background: var(--oui-bg);
332
+ }
333
+
334
+ .oui-ui-app-sidebar-demo .oui-app-sidebar {
335
+ width: 100%;
336
+ height: 100%;
337
+ }
338
+
339
+ .oui-ui-app-shell-modal {
358
340
  display: flex;
359
- min-width: 0;
341
+ width: min(100vw - 32px, 1720px) !important;
342
+ height: min(100vh - 32px, 940px);
343
+ max-height: calc(100vh - 32px);
360
344
  flex-direction: column;
361
- gap: 5px;
362
345
  }
363
346
 
364
- .oui-ui-sidebar-group-label {
347
+ .oui-ui-app-shell-modal-header {
348
+ border-bottom: 1px solid var(--oui-border);
349
+ padding: 10px 12px;
350
+ }
351
+
352
+ .oui-ui-app-shell-modal-body {
365
353
  display: flex;
354
+ min-height: 0;
355
+ flex: 1 1 auto;
356
+ align-items: stretch;
357
+ justify-content: center;
358
+ overflow: hidden;
359
+ padding: 12px;
360
+ }
361
+
362
+ .oui-special-modal-scroll-body .oui-ui-app-shell-modal-body {
363
+ overflow: hidden;
364
+ }
365
+
366
+ .oui-ui-app-shell-preview-stage {
367
+ width: 100%;
368
+ height: 100%;
366
369
  min-width: 0;
367
- align-items: center;
368
- gap: 8px;
369
- color: var(--oui-muted);
370
- font-size: 11px;
371
- font-weight: 800;
372
- letter-spacing: 0.04em;
373
- line-height: 1;
374
- text-transform: uppercase;
370
+ min-height: 520px;
371
+ overflow: hidden;
372
+ border: 1px solid var(--oui-border);
373
+ border-radius: var(--oui-radius);
374
+ background: var(--oui-bg);
375
375
  }
376
376
 
377
- .oui-ui-sidebar-group-label::after {
378
- content: "";
379
- display: block;
377
+ .oui-ui-app-shell-preview-stage[data-mode=phone] {
378
+ width: min(100%, 410px);
379
+ min-height: 0;
380
+ border-radius: 14px;
381
+ }
382
+
383
+ .oui-ui-app-shell-preview-stage .oui-app-shell {
384
+ height: 100%;
385
+ min-height: 0;
386
+ overflow: hidden;
387
+ background: var(--oui-bg);
388
+ padding: 0;
389
+ }
390
+
391
+ .oui-ui-app-shell-preview-stage .oui-app-shell-frame {
392
+ height: 100%;
393
+ max-width: 100%;
394
+ margin: 0;
395
+ }
396
+
397
+ .oui-ui-app-shell-preview-stage .oui-app-shell[data-has-header=true] .oui-app-shell-frame {
398
+ height: 100%;
399
+ }
400
+
401
+ .oui-ui-app-shell-preview-stage .oui-app-shell[data-sidebar-mode=mobile] .oui-app-shell-frame,
402
+ .oui-ui-app-shell-preview-stage .oui-app-shell[data-sidebar-mode=mobile][data-has-header=true] .oui-app-shell-frame {
403
+ height: 100%;
404
+ }
405
+
406
+ .oui-ui-app-shell-preview-stage[data-mode=phone] .oui-app-shell-frame {
407
+ grid-template-columns: minmax(0, 1fr);
408
+ }
409
+
410
+ .oui-ui-app-shell-preview-stage .oui-app-shell-header {
411
+ min-height: 56px;
412
+ padding: 8px 12px;
413
+ }
414
+
415
+ .oui-ui-app-shell-preview-stage[data-mode=phone] .oui-app-shell-header {
416
+ padding: 8px 18px 8px 10px;
417
+ }
418
+
419
+ .oui-ui-app-shell-header-main {
380
420
  min-width: 0;
381
- height: 1px;
382
421
  flex: 1 1 auto;
383
- background: var(--oui-border);
384
422
  }
385
423
 
386
- .oui-ui-sidebar-nav {
387
- width: 100%;
388
- gap: 4px;
424
+ .oui-ui-app-shell-header-actions-demo {
425
+ min-width: 0;
389
426
  }
390
427
 
391
- .oui-ui-sidebar-nav .oui-app-shell-nav-item {
392
- min-height: 34px;
393
- padding: 7px 9px;
428
+ .oui-ui-app-shell-preview-stage[data-mode=phone] .oui-ui-app-shell-quick-jump .oui-icon-text-button-label,
429
+ .oui-ui-app-shell-preview-stage[data-mode=phone] .oui-ui-app-shell-header-actions-demo > .oui-icon-button:nth-last-child(-n+3) {
430
+ display: none;
394
431
  }
395
432
 
396
- .oui-ui-sidebar-nav .oui-app-shell-nav-label {
433
+ .oui-ui-app-shell-preview-stage .oui-app-shell-content {
434
+ display: flex;
435
+ flex-direction: column;
436
+ gap: 14px;
437
+ padding: 18px 18px 22px;
438
+ }
439
+
440
+ .oui-ui-app-shell-preview-stage .oui-app-sidebar {
441
+ border-right: 1px solid var(--oui-border);
442
+ }
443
+
444
+ @media (max-width: 980px) {
445
+ .oui-ui-app-shell-mode-toggle {
446
+ display: none;
447
+ }
448
+ .oui-ui-app-shell-modal {
449
+ width: 100dvw !important;
450
+ height: 100dvh;
451
+ max-height: 100dvh;
452
+ }
453
+ .oui-ui-app-shell-modal-body {
454
+ padding: 8px;
455
+ }
456
+ }
457
+ .oui-ui-main-sidebar {
458
+ height: 100%;
459
+ border-radius: var(--oui-radius);
460
+ background: var(--oui-section-surface-bg, var(--oui-panel));
461
+ box-shadow: var(--oui-section-shadow, none);
462
+ }
463
+
464
+ .oui-ui-demo-logo {
465
+ display: inline-flex;
466
+ width: 28px;
467
+ height: 28px;
468
+ align-items: center;
469
+ justify-content: center;
470
+ border-radius: 7px;
471
+ background: var(--oui-primary-surface);
472
+ color: var(--oui-primary-text);
397
473
  font-size: 14px;
398
- font-weight: 760;
474
+ font-weight: 820;
475
+ line-height: 1;
476
+ }
477
+
478
+ .oui-ui-application-table-preview {
479
+ display: grid;
480
+ min-width: 0;
481
+ grid-template-columns: 1fr 1.4fr 1fr 0.6fr 0.7fr;
482
+ overflow: hidden;
483
+ border: 1px solid var(--oui-border);
484
+ border-radius: var(--oui-radius-sm);
485
+ }
486
+
487
+ .oui-ui-application-table-preview > * {
488
+ min-width: 0;
489
+ border-bottom: 1px solid var(--oui-border);
490
+ padding: 9px 10px;
491
+ }
492
+
493
+ .oui-ui-application-table-preview > :nth-last-child(-n+5) {
494
+ border-bottom: 0;
399
495
  }
400
496
 
401
497
  .oui-ui-theme-rail {
@@ -465,8 +561,8 @@ body.oui-ui-document-lock {
465
561
  }
466
562
 
467
563
  .oui-ui-theme-rail-item[data-active=true] {
468
- background: var(--oui-brand-soft);
469
- color: var(--oui-brand-strong);
564
+ background: var(--oui-primary-surface);
565
+ color: var(--oui-primary-text);
470
566
  }
471
567
 
472
568
  .oui-ui-theme-rail-preview {
@@ -586,7 +682,7 @@ body.oui-ui-document-lock {
586
682
  }
587
683
 
588
684
  .oui-theme-preset-card[data-active=true] {
589
- background: var(--oui-brand-soft);
685
+ background: var(--oui-primary-surface);
590
686
  }
591
687
 
592
688
  .oui-theme-preset-preview {
@@ -673,8 +769,8 @@ body.oui-ui-document-lock {
673
769
  }
674
770
 
675
771
  .oui-theme-surface-button[data-active=true] {
676
- border-color: color-mix(in srgb, var(--oui-brand) 68%, var(--oui-border));
677
- background: var(--oui-brand-soft);
772
+ border-color: color-mix(in srgb, var(--oui-primary-base) 68%, var(--oui-border));
773
+ background: var(--oui-primary-surface);
678
774
  }
679
775
 
680
776
  .oui-theme-surface-label {
@@ -802,8 +898,8 @@ body.oui-ui-document-lock {
802
898
  display: inline-flex;
803
899
  align-items: center;
804
900
  justify-content: center;
805
- background: var(--oui-brand-soft);
806
- color: var(--oui-brand-strong);
901
+ background: var(--oui-primary-surface);
902
+ color: var(--oui-primary-text);
807
903
  font-size: 11px;
808
904
  font-weight: 760;
809
905
  }
@@ -838,21 +934,6 @@ body.oui-ui-document-lock {
838
934
  padding: 10px;
839
935
  }
840
936
 
841
- .oui-ui-state-grid {
842
- display: grid;
843
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
844
- align-items: start;
845
- gap: 8px;
846
- }
847
-
848
- .oui-ui-icon-text-list {
849
- display: flex;
850
- min-width: 0;
851
- flex-wrap: wrap;
852
- align-items: center;
853
- gap: 10px 16px;
854
- }
855
-
856
937
  :root[data-oui-theme=dark] .oui-ui-light-only,
857
938
  .oui-root[data-oui-theme=dark] .oui-ui-light-only {
858
939
  display: none;
@@ -861,18 +942,22 @@ body.oui-ui-document-lock {
861
942
  .oui-code-info-button {
862
943
  display: none;
863
944
  flex: 0 0 auto;
864
- color: var(--oui-info);
945
+ color: var(--oui-info-base);
865
946
  }
866
947
 
867
948
  .oui-code-inline-panel {
868
949
  position: relative;
950
+ --oui-code-collapsed-height: 180px;
951
+ --oui-code-expanded-height: calc((var(--oui-code-lines, 9) * 20.15px) + 66px);
869
952
  width: min(52%, 760px);
870
953
  min-width: 0;
871
954
  flex: 1 1 420px;
872
955
  align-self: flex-start;
956
+ height: var(--oui-code-collapsed-height);
957
+ contain: layout paint style;
873
958
  overflow: hidden;
874
959
  border-radius: var(--oui-radius);
875
- transition: height 260ms cubic-bezier(0.22, 1, 0.36, 1);
960
+ transition: height 460ms cubic-bezier(0.2, 0, 0.2, 1), padding-bottom 320ms ease;
876
961
  }
877
962
 
878
963
  .oui-code-inline-content {
@@ -883,18 +968,18 @@ body.oui-ui-document-lock {
883
968
  max-height: none;
884
969
  }
885
970
 
886
- .oui-code-inline-panel .oui-code-preview-scroll .oui-scroll-area-viewport {
887
- max-height: none;
888
- overflow-x: auto;
889
- overflow-y: hidden;
971
+ .oui-code-inline-panel[data-expanded=true] {
972
+ height: var(--oui-code-expanded-height);
973
+ padding-bottom: 38px;
890
974
  }
891
975
 
892
- .oui-code-inline-panel[data-expanded=false][data-collapsible=true] .oui-code-preview-scroll .oui-scroll-area-viewport {
893
- overflow: hidden;
976
+ .oui-code-inline-panel[data-collapsible=false] {
977
+ height: auto;
894
978
  }
895
979
 
896
- .oui-code-inline-panel[data-expanded=true] {
897
- padding-bottom: 38px;
980
+ .oui-code-inline-panel[data-collapsible=false] .oui-code-inline-toggle,
981
+ .oui-code-inline-panel[data-collapsible=false] .oui-code-inline-fade {
982
+ display: none;
898
983
  }
899
984
 
900
985
  .oui-code-inline-fade {
@@ -904,8 +989,14 @@ body.oui-ui-document-lock {
904
989
  left: 0;
905
990
  z-index: 2;
906
991
  height: 92px;
992
+ opacity: 1;
907
993
  pointer-events: none;
908
994
  background: linear-gradient(to bottom, transparent, var(--oui-bg) 72%);
995
+ transition: opacity 180ms ease;
996
+ }
997
+
998
+ .oui-code-inline-panel[data-expanded=true] .oui-code-inline-fade {
999
+ opacity: 0;
909
1000
  }
910
1001
 
911
1002
  .oui-code-inline-toggle {
@@ -943,11 +1034,44 @@ body.oui-ui-document-lock {
943
1034
  overflow: hidden;
944
1035
  }
945
1036
 
1037
+ .oui-code-preview-wrap {
1038
+ position: relative;
1039
+ min-width: 0;
1040
+ }
1041
+
1042
+ .oui-code-preview-copy {
1043
+ position: absolute;
1044
+ top: 8px;
1045
+ right: 8px;
1046
+ z-index: 4;
1047
+ opacity: 0;
1048
+ transform: translateY(-2px);
1049
+ transition: opacity 140ms ease, transform 140ms ease;
1050
+ }
1051
+
1052
+ .oui-code-preview-wrap:hover .oui-code-preview-copy,
1053
+ .oui-code-preview-wrap:focus-within .oui-code-preview-copy {
1054
+ opacity: 1;
1055
+ transform: translateY(0);
1056
+ }
1057
+
1058
+ .oui-code-preview-scroll-inline {
1059
+ overflow: hidden;
1060
+ }
1061
+
946
1062
  .oui-code-preview-scroll .oui-scroll-area-viewport {
947
1063
  max-height: min(62vh, 620px);
948
1064
  overflow: auto;
949
1065
  }
950
1066
 
1067
+ .oui-code-preview-scroll-inline .oui-scroll-area-viewport {
1068
+ max-height: none;
1069
+ overflow-x: auto;
1070
+ overflow-y: hidden;
1071
+ overscroll-behavior-x: contain;
1072
+ overscroll-behavior-y: auto;
1073
+ }
1074
+
951
1075
  .oui-code-preview {
952
1076
  min-width: max-content;
953
1077
  margin: 0;
@@ -963,23 +1087,27 @@ body.oui-ui-document-lock {
963
1087
  white-space: pre;
964
1088
  }
965
1089
 
1090
+ .oui-code-inline-panel .oui-code-preview {
1091
+ padding-bottom: 42px;
1092
+ }
1093
+
966
1094
  .oui-code-line {
967
1095
  display: block;
968
1096
  min-height: 1.55em;
969
1097
  }
970
1098
 
971
1099
  .oui-code-keyword {
972
- color: var(--oui-brand-strong);
1100
+ color: var(--oui-primary-text);
973
1101
  font-weight: 650;
974
1102
  }
975
1103
 
976
1104
  .oui-code-component {
977
- color: var(--oui-info);
1105
+ color: var(--oui-info-base);
978
1106
  font-weight: 650;
979
1107
  }
980
1108
 
981
1109
  .oui-code-string {
982
- color: var(--oui-success);
1110
+ color: var(--oui-success-base);
983
1111
  }
984
1112
 
985
1113
  .oui-code-comment {
@@ -1002,9 +1130,6 @@ body.oui-ui-document-lock {
1002
1130
  }
1003
1131
  }
1004
1132
  @media (max-width: 860px) {
1005
- .oui-ui-topbar {
1006
- display: none;
1007
- }
1008
1133
  .oui-ui-workspace {
1009
1134
  display: flex;
1010
1135
  flex-direction: column;
@@ -1020,10 +1145,19 @@ body.oui-ui-document-lock {
1020
1145
  .oui-ui-brand[data-compact=true] .oui-ui-brand-text span {
1021
1146
  display: none;
1022
1147
  }
1023
- .oui-ui-topbar-actions[data-compact=true] .oui-ui-topbar-link span {
1148
+ .oui-ui-header-title {
1149
+ gap: 0;
1150
+ }
1151
+ .oui-ui-header-title strong {
1152
+ font-size: 14px;
1153
+ }
1154
+ .oui-ui-header-title span {
1024
1155
  display: none;
1025
1156
  }
1026
- .oui-ui-topbar-actions[data-compact=true] .oui-ui-topbar-link {
1157
+ .oui-ui-header-actions[data-compact=true] .oui-ui-header-link span {
1158
+ display: none;
1159
+ }
1160
+ .oui-ui-header-actions[data-compact=true] .oui-ui-header-link {
1027
1161
  width: 30px;
1028
1162
  min-height: 30px;
1029
1163
  padding: 0;
@@ -1091,9 +1225,6 @@ body.oui-ui-document-lock {
1091
1225
  flex-direction: column;
1092
1226
  gap: 8px;
1093
1227
  }
1094
- .oui-ui-state-grid {
1095
- grid-template-columns: minmax(0, 1fr);
1096
- }
1097
1228
  .oui-ui-language-label {
1098
1229
  display: none;
1099
1230
  }
@@ -69,7 +69,7 @@ export function useFloatingPosition({ triggerRef, contentRef, open, side = 'bott
69
69
  position: 'fixed',
70
70
  left,
71
71
  top,
72
- minWidth: matchTriggerWidth ? triggerRect.width : undefined,
72
+ minWidth: matchTriggerWidth ? contentWidth : undefined,
73
73
  maxWidth: `calc(100vw - ${collisionPadding * 2}px)`,
74
74
  maxHeight: `calc(100vh - ${collisionPadding * 2}px)`,
75
75
  visibility: 'visible',
@@ -1 +1 @@
1
- {"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,SAAM;;;EAsC1D"}
1
+ {"version":3,"file":"usePresence.d.ts","sourceRoot":"","sources":["../../src/hooks/usePresence.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,SAAM;;;EAwC1D"}
@@ -1,15 +1,19 @@
1
1
  'use client';
2
- import { useEffect, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  export function usePresence(open, durationMs = 220) {
4
4
  const [present, setPresent] = useState(open);
5
5
  const [state, setState] = useState(open ? 'open' : 'closed');
6
+ const previousOpenRef = useRef(open);
6
7
  useEffect(() => {
8
+ if (previousOpenRef.current === open)
9
+ return;
10
+ previousOpenRef.current = open;
7
11
  let frame = 0;
8
12
  let timer = 0;
9
13
  if (open) {
14
+ setState('opening');
15
+ setPresent(true);
10
16
  frame = window.requestAnimationFrame(() => {
11
- setPresent(true);
12
- setState('opening');
13
17
  timer = window.setTimeout(() => setState('open'), durationMs);
14
18
  });
15
19
  return () => {
@@ -17,10 +21,8 @@ export function usePresence(open, durationMs = 220) {
17
21
  window.clearTimeout(timer);
18
22
  };
19
23
  }
20
- if (!present)
21
- return;
24
+ setState('closing');
22
25
  frame = window.requestAnimationFrame(() => {
23
- setState('closing');
24
26
  timer = window.setTimeout(() => {
25
27
  setPresent(false);
26
28
  setState('closed');
@@ -30,6 +32,6 @@ export function usePresence(open, durationMs = 220) {
30
32
  window.cancelAnimationFrame(frame);
31
33
  window.clearTimeout(timer);
32
34
  };
33
- }, [durationMs, open, present]);
35
+ }, [durationMs, open]);
34
36
  return { present, state };
35
37
  }