@pgcorp/ui-kit 0.14.0 → 0.15.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 (117) hide show
  1. package/README.md +330 -12
  2. package/dist/assets/src/components/layout/{SResizeHandle.vue_vue_type_style_index_0_scoped_13b9b27a_lang.css → SResizeHandle.vue_vue_type_style_index_0_scoped_dc65aba1_lang.css} +1 -1
  3. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_a108e8f1_scoped_a108e8f1_lang.css +2 -0
  4. package/dist/assets/src/components/shared/containers/{SCollapsiblePanel.css_vue_type_style_index_0_src_71824088_scoped_71824088_lang.css → SCollapsiblePanel.css_vue_type_style_index_0_src_db85261d_scoped_db85261d_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/containers/{SOverlayHost.css_vue_type_style_index_0_src_8f9be94e_scoped_8f9be94e_lang.css → SOverlayHost.css_vue_type_style_index_0_src_09215628_scoped_09215628_lang.css} +1 -1
  6. package/dist/assets/src/components/shared/containers/{SPopover.css_vue_type_style_index_0_src_4091d007_scoped_4091d007_lang.css → SPopover.css_vue_type_style_index_0_src_a4f1f64a_scoped_a4f1f64a_lang.css} +1 -1
  7. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_52396e42_scoped_52396e42_lang.css +2 -0
  8. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +1 -1
  9. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_2562f916_scoped_2562f916_lang.css +2 -0
  10. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_d630c922_scoped_d630c922_lang.css +2 -0
  11. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_43b6e378_scoped_43b6e378_lang.css +1 -0
  12. package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_857e2649_scoped_857e2649_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_40040ae5_scoped_40040ae5_lang.css} +1 -1
  13. package/dist/assets/src/components/shared/controls/{SMenuSurface.css_vue_type_style_index_0_src_84109ad9_scoped_84109ad9_lang.css → SMenuSurface.css_vue_type_style_index_0_src_d2b7d71b_scoped_d2b7d71b_lang.css} +1 -1
  14. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_d1ead6c0_scoped_d1ead6c0_lang.css +2 -0
  15. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_a69aa84b_scoped_a69aa84b_lang.css +2 -0
  16. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_d94fcf8c_scoped_d94fcf8c_lang.css +2 -0
  17. package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
  18. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_914bad28_scoped_914bad28_lang.css +2 -0
  19. package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_24be0f2b_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_68cf84b3_lang.css} +1 -1
  20. package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
  21. package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +4 -2
  22. package/dist/src/components/shared/_internal/SDialogSurface.vue.d.ts +9 -1
  23. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  24. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +174 -82
  25. package/dist/src/components/shared/_internal/dialogSurface.d.ts +2 -0
  26. package/dist/src/components/shared/_internal/dialogSurface.js +30 -27
  27. package/dist/src/components/shared/_internal/dialogSurfaceMotion.d.ts +14 -0
  28. package/dist/src/components/shared/_internal/dialogSurfaceMotion.js +84 -0
  29. package/dist/src/components/shared/_internal/focusTrap.js +15 -13
  30. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.d.ts +5 -0
  31. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.js +2 -2
  32. package/dist/src/components/shared/containers/SCollapsiblePanel.vue_vue_type_script_setup_true_lang.js +123 -121
  33. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +4 -4
  34. package/dist/src/components/shared/containers/SDrawer.vue.js +3 -6
  35. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +104 -128
  36. package/dist/src/components/shared/containers/SModal.vue.d.ts +8 -8
  37. package/dist/src/components/shared/containers/SModal.vue.js +3 -6
  38. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +87 -103
  39. package/dist/src/components/shared/containers/SOverlayHost.vue.js +2 -2
  40. package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +32 -31
  41. package/dist/src/components/shared/containers/SPanel.vue.d.ts +1 -1
  42. package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
  43. package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +225 -200
  44. package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
  45. package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +4 -3
  46. package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
  47. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +13 -7
  48. package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
  49. package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +104 -94
  50. package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
  51. package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +86 -81
  52. package/dist/src/components/shared/controls/SDropdownMenu.vue.js +2 -2
  53. package/dist/src/components/shared/controls/SDropdownMenu.vue_vue_type_script_setup_true_lang.js +77 -72
  54. package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
  55. package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +81 -77
  56. package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
  57. package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +85 -77
  58. package/dist/src/components/shared/data-display/SControlledToastViewport.vue.js +2 -2
  59. package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +58 -49
  60. package/dist/src/components/shared/data-display/SScrollViewport.vue.d.ts +10 -5
  61. package/dist/src/components/shared/data-display/SScrollViewport.vue.js +2 -2
  62. package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +162 -111
  63. package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +276 -224
  64. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +3 -3
  65. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +2 -2
  66. package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +62 -46
  67. package/dist/src/components/shared/data-display/scrollViewport.d.ts +2 -0
  68. package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
  69. package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +3 -1
  70. package/dist/src/components/shared/navigation/STabList.vue.d.ts +1 -1
  71. package/dist/src/composables/useDialogOverlay.d.ts +12 -2
  72. package/dist/src/composables/useDialogOverlay.js +192 -119
  73. package/dist/src/internal/flatTree.d.ts +8 -0
  74. package/dist/src/internal/flatTree.js +23 -0
  75. package/dist/src/internal/focusNavigation.d.ts +3 -0
  76. package/dist/src/internal/focusNavigation.js +28 -15
  77. package/dist/src/internal/inertLease.d.ts +8 -0
  78. package/dist/src/internal/inertLease.js +33 -0
  79. package/dist/src/internal/layerStack.d.ts +40 -0
  80. package/dist/src/internal/layerStack.js +301 -94
  81. package/dist/src/internal/nativeFocus.d.ts +4 -0
  82. package/dist/src/internal/nativeFocus.js +12 -0
  83. package/dist/src/internal/overlayPortal.d.ts +17 -0
  84. package/dist/src/internal/overlayPortal.js +23 -0
  85. package/dist/src/internal/semanticSizing.d.ts +2 -2
  86. package/dist/src/internal/semanticSizing.js +2 -1
  87. package/dist/src/internal/useMenuLayer.d.ts +1 -0
  88. package/dist/src/internal/useMenuLayer.js +63 -57
  89. package/dist/src/internal/viewportModality.d.ts +27 -0
  90. package/dist/src/internal/viewportModality.js +132 -0
  91. package/dist/typography.js +17 -62
  92. package/docs/overlay-lifecycle.md +195 -0
  93. package/docs/public-api.md +141 -4
  94. package/docs/resize.md +34 -5
  95. package/docs/scroll-viewport.md +30 -10
  96. package/docs/theming.md +42 -8
  97. package/package.json +1 -1
  98. package/src/components/shared/_internal/SDialogSurface.css +185 -40
  99. package/src/components/shared/controls/SButton.css +0 -3
  100. package/src/components/shared/controls/SCheckbox.css +19 -7
  101. package/src/components/shared/data-display/SControlledToastViewport.css +2 -10
  102. package/src/components/shared/data-display/SScrollViewport.css +17 -1
  103. package/src/components/shared/data-display/STooltip.css +1 -1
  104. package/src/components/shared/data-display/_internal/STableFrame.css +1 -5
  105. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_0e58afdc_scoped_0e58afdc_lang.css +0 -2
  106. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_61cf20dd_scoped_61cf20dd_lang.css +0 -2
  107. package/dist/assets/src/components/shared/containers/SModal.css_vue_type_style_index_0_src_42e1bd5f_scoped_42e1bd5f_lang.css +0 -2
  108. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_21f71ae8_scoped_21f71ae8_lang.css +0 -2
  109. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_55d4826e_scoped_55d4826e_lang.css +0 -2
  110. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_537f5744_scoped_537f5744_lang.css +0 -2
  111. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_03921269_scoped_03921269_lang.css +0 -1
  112. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_df3d6688_scoped_df3d6688_lang.css +0 -2
  113. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_5864b6c6_scoped_5864b6c6_lang.css +0 -2
  114. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_e5d11342_scoped_e5d11342_lang.css +0 -2
  115. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_52b5825e_scoped_52b5825e_lang.css +0 -2
  116. package/src/components/shared/containers/SDrawer.css +0 -87
  117. package/src/components/shared/containers/SModal.css +0 -27
package/docs/theming.md CHANGED
@@ -27,10 +27,21 @@ prop `hitbox`; переопределяйте токены только как
27
27
 
28
28
  ### Интеграция шкалы слоёв host-приложения
29
29
 
30
- Floating surfaces (`STooltip`, menu, select, combobox и popover), modal и
31
- drawer телепортируются в `document.body`. `SToastContainer` также размещается
32
- в корневой области приложения. Их layer tokens разрешаются на `:root`, а не
33
- во вложенном theme-контейнере trigger.
30
+ Unscoped floating surfaces (`STooltip`, menu, select, combobox и popover)
31
+ телепортируются в `document.body`. Их layer tokens разрешаются на `:root`, а
32
+ не во вложенном theme-контейнере trigger. Viewport modal/drawer — нативные
33
+ modal dialogs в top layer. Их floating descendants используют собственный
34
+ untransformed portal внутри dialog, вне visual-frame scroll/clipping.
35
+
36
+ Global `SToastContainer` и application-root `SControlledToastViewport`
37
+ сохраняют background-приоритет и native недоступность во время viewport modal.
38
+ Modal-local `SControlledToastViewport` использует portal своего dialog;
39
+ parent-local уведомление недоступно в дочернем modal. Notification records,
40
+ действия и lifetime принадлежат своим явным owners, не глобальному переносу.
41
+ Exact native portal задаёт локальный toast anchor как сумму backdrop owner
42
+ и `--s-layer-toast`. Application-root anchor не изменяется. Зарегистрированные
43
+ nested popup сохраняют собственный динамический step и могут находиться выше
44
+ локального уведомления; toast не является новым modal или focus-stack owner.
34
45
 
35
46
  Шкала задаёт base anchors, а не статический total order:
36
47
 
@@ -63,6 +74,12 @@ drawer телепортируются в `document.body`. `SToastContainer` та
63
74
  интеграции проверьте tooltip/menu/select, toast, drag, modal/drawer и floating
64
75
  surface внутри modal. Не меняйте `z-index` внутренних элементов компонентов.
65
76
 
77
+ Host offset согласует обычные stacking contexts. Native top-layer order
78
+ определяется браузером: `z-index` не поднимает body portal или global toast над
79
+ modal и не допускает взаимодействие с background. Modal-owned drag surface
80
+ остаётся внутри actual dialog; background drag не начинается во время
81
+ модальности. Вложенные native dialogs следуют lifecycle общего layer owner.
82
+
66
83
  Локальные floating-элементы не входят в root-level bridge. Autocomplete-tooltip
67
84
  `SCodeEditor` остаётся потомком `.cm-editor`, а overlay-вариант
68
85
  `SResizeHandle` — абсолютным потомком своего positioned owner. Они используют
@@ -99,10 +116,21 @@ the hitbox.
99
116
 
100
117
  ### Host application layer-scale integration
101
118
 
102
- Floating surfaces (`STooltip`, menus, selects, comboboxes, and popovers), modals,
103
- and drawers teleport to `document.body`. `SToastContainer` also belongs at the
104
- application root. Their layer tokens resolve on `:root`, not in the trigger's
105
- nested theme container.
119
+ Unscoped floating surfaces (`STooltip`, menus, selects, comboboxes, and popovers)
120
+ teleport to `document.body`. Their layer tokens resolve on `:root`, not in the
121
+ trigger's nested theme container. Viewport modals/drawers are native modal
122
+ dialogs in the top layer. Floating descendants use the dialog's untransformed
123
+ portal outside visual-frame scrolling/clipping.
124
+
125
+ Global `SToastContainer` and application-root `SControlledToastViewport` retain
126
+ background priority and native inactivity during viewport modality. A modal-local
127
+ `SControlledToastViewport` uses its own dialog's portal; parent-local
128
+ notifications are inactive inside a child modal. Notification records, actions,
129
+ and lifetimes retain their explicit owners without global relocation.
130
+ The exact native portal derives its local toast anchor from its backdrop owner
131
+ plus `--s-layer-toast`; the application-root anchor is unchanged. Registered
132
+ nested popups keep their dynamic step and may paint above local notifications.
133
+ The toast does not create a modal or a focus-stack owner.
106
134
 
107
135
  The scale defines base anchors, not a static total order:
108
136
 
@@ -134,6 +162,12 @@ sticky, affordance, and navigation anchors are not shifted.
134
162
  Verify tooltip/menu/select, toast, drag, modal/drawer, and a floating surface
135
163
  inside a modal. Do not override internal component `z-index` values.
136
164
 
165
+ The host offset integrates ordinary stacking contexts. The browser determines
166
+ native top-layer order: `z-index` cannot lift body portals or global toasts over
167
+ a modal or enable background interaction. A modal-owned drag surface stays
168
+ inside the actual dialog; background dragging cannot start during modality.
169
+ Nested native dialogs follow the shared layer owner's lifecycle.
170
+
137
171
  Local floating elements are outside the root-level bridge. The `SCodeEditor`
138
172
  autocomplete tooltip remains a descendant of `.cm-editor`, and the overlay
139
173
  `SResizeHandle` remains an absolutely positioned child of its positioned owner.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pgcorp/ui-kit",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Typed Vue 3 design system with accessible components, semantic themes, and workbench patterns.",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -1,86 +1,165 @@
1
1
  @reference "../../../styles/reference.css";
2
2
 
3
3
  .s-dialog-surface {
4
+ position: absolute;
5
+ inset: 0;
6
+ margin: 0;
7
+ padding: 0;
8
+ border: 0;
9
+ max-width: none;
10
+ max-height: none;
11
+ width: 100%;
12
+ height: 100%;
13
+ overflow: visible;
14
+ background: transparent;
15
+ color: inherit;
16
+ box-shadow: none;
17
+ }
18
+
19
+ dialog.s-dialog-surface {
20
+ position: fixed;
21
+ display: block;
22
+ }
23
+
24
+ dialog.s-dialog-surface::backdrop {
25
+ background: transparent;
26
+ pointer-events: none;
27
+ }
28
+
29
+ .s-dialog-surface__portal {
30
+ display: contents;
31
+ }
32
+
33
+ .s-dialog-surface__frame {
4
34
  box-shadow: var(--s-elevation-overlay);
5
35
  }
6
36
 
7
37
  .s-dialog-surface:focus-visible {
38
+ outline: none;
39
+ }
40
+
41
+ .s-dialog-surface:focus-visible .s-dialog-surface__frame {
8
42
  outline: var(--s-focus-ring-width) solid var(--s-focus-ring-color);
9
43
  outline-offset: var(--s-focus-ring-inset-offset);
10
44
  }
11
45
 
12
- .s-dialog-surface[data-presentation='modal'] {
13
- @apply w-full transform overflow-hidden rounded-2xl p-6 text-left align-middle transition-all;
46
+ .s-modal-backdrop,
47
+ .s-drawer-backdrop {
48
+ position: absolute;
49
+ inset: 0;
50
+ background: var(--s-overlay-backdrop-surface);
51
+ -webkit-backdrop-filter: blur(var(--s-overlay-backdrop-blur));
52
+ backdrop-filter: blur(var(--s-overlay-backdrop-blur));
53
+ }
54
+
55
+ .s-modal-container,
56
+ .s-drawer-shell {
57
+ position: absolute;
58
+ inset: 0;
59
+ }
60
+
61
+ .s-modal-container {
62
+ overflow-y: auto;
63
+ }
64
+
65
+ .s-drawer-backdrop[data-scope='contained'],
66
+ .s-drawer-shell[data-scope='contained'] {
67
+ pointer-events: auto;
68
+ }
69
+
70
+ .s-modal-panel-container {
71
+ @apply flex min-h-full items-center justify-center p-4 text-center;
72
+ }
73
+
74
+ .s-modal-panel-container--fullscreen {
75
+ @apply items-stretch justify-stretch p-0 text-left;
76
+ }
77
+
78
+ .s-drawer-positioner {
79
+ @apply absolute inset-0 flex items-stretch;
80
+ justify-content: right;
81
+ }
82
+
83
+ .s-drawer-positioner[data-placement='left'] {
84
+ justify-content: left;
85
+ }
86
+
87
+ .s-drawer-positioner[data-placement='bottom'] {
88
+ @apply items-end justify-stretch;
89
+ }
90
+
91
+ .s-dialog-surface__frame[data-presentation='modal'] {
92
+ @apply w-full transform overflow-hidden rounded-2xl p-6 text-left align-middle;
14
93
  @apply bg-surface-0 dark:bg-surface-800;
15
94
  }
16
95
 
17
- .s-dialog-surface[data-presentation='modal'][data-surface='subtle'] {
96
+ .s-dialog-surface__frame[data-presentation='modal'][data-surface='subtle'] {
18
97
  @apply bg-surface-50 dark:bg-surface-900;
19
98
  }
20
99
 
21
- .s-dialog-surface[data-presentation='modal'][data-scroll='body'] {
100
+ .s-dialog-surface__frame[data-presentation='modal'][data-scroll='body'] {
22
101
  @apply flex max-h-[calc(100dvh-2rem)] flex-col;
23
102
  }
24
103
 
25
- .s-dialog-surface[data-presentation='modal'][data-scroll='body'] .s-dialog-surface__body {
104
+ .s-dialog-surface__frame[data-presentation='modal'][data-scroll='body'] .s-dialog-surface__body {
26
105
  @apply min-h-0 flex-1 overflow-y-auto;
27
106
  }
28
107
 
29
- .s-dialog-surface[data-presentation='modal'][data-layout='fullscreen'] {
108
+ .s-dialog-surface__frame[data-presentation='modal'][data-layout='fullscreen'] {
30
109
  @apply min-h-screen rounded-none;
31
110
  max-width: 100%;
32
111
  height: 100%;
33
112
  }
34
113
 
35
- .s-dialog-surface[data-presentation='modal'][data-size='sm'] {
114
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='sm'] {
36
115
  max-width: 24rem;
37
116
  }
38
117
 
39
- .s-dialog-surface[data-presentation='modal'][data-size='md'] {
118
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='md'] {
40
119
  max-width: 28rem;
41
120
  }
42
121
 
43
- .s-dialog-surface[data-presentation='modal'][data-size='lg'] {
122
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='lg'] {
44
123
  max-width: 32rem;
45
124
  }
46
125
 
47
- .s-dialog-surface[data-presentation='modal'][data-size='xl'] {
126
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='xl'] {
48
127
  max-width: 36rem;
49
128
  }
50
129
 
51
- .s-dialog-surface[data-presentation='modal'][data-size='2xl'] {
130
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='2xl'] {
52
131
  max-width: 42rem;
53
132
  }
54
133
 
55
- .s-dialog-surface[data-presentation='modal'][data-size='3xl'] {
134
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='3xl'] {
56
135
  max-width: 48rem;
57
136
  }
58
137
 
59
- .s-dialog-surface[data-presentation='modal'][data-size='4xl'] {
138
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='4xl'] {
60
139
  max-width: 56rem;
61
140
  }
62
141
 
63
- .s-dialog-surface[data-presentation='modal'][data-size='wide'] {
142
+ .s-dialog-surface__frame[data-presentation='modal'][data-size='wide'] {
64
143
  max-width: 72rem;
65
144
  }
66
145
 
67
- .s-dialog-surface[data-presentation='modal'] .s-dialog-surface__header {
146
+ .s-dialog-surface__frame[data-presentation='modal'] .s-dialog-surface__header {
68
147
  @apply flex items-start justify-between border-b border-surface-200 pb-4 dark:border-surface-700;
69
148
  }
70
149
 
71
- .s-dialog-surface[data-presentation='modal'] .s-dialog-surface__title {
150
+ .s-dialog-surface__frame[data-presentation='modal'] .s-dialog-surface__title {
72
151
  @apply text-lg font-medium leading-6 text-surface-900 dark:text-surface-100;
73
152
  }
74
153
 
75
- .s-dialog-surface[data-presentation='modal'] .s-dialog-surface__body {
154
+ .s-dialog-surface__frame[data-presentation='modal'] .s-dialog-surface__body {
76
155
  @apply mt-4 text-sm text-surface-600 dark:text-surface-300;
77
156
  }
78
157
 
79
- .s-dialog-surface[data-presentation='modal'] .s-dialog-surface__footer {
158
+ .s-dialog-surface__frame[data-presentation='modal'] .s-dialog-surface__footer {
80
159
  @apply mt-6 flex justify-end gap-3 border-t border-surface-200 pt-4 dark:border-surface-700;
81
160
  }
82
161
 
83
- .s-dialog-surface[data-presentation='modal'] .s-dialog-surface__footer[data-layout='split'] {
162
+ .s-dialog-surface__frame[data-presentation='modal'] .s-dialog-surface__footer[data-layout='split'] {
84
163
  @apply flex-wrap items-center justify-start gap-x-3 gap-y-2;
85
164
  }
86
165
 
@@ -97,90 +176,156 @@
97
176
  @apply ml-auto justify-end;
98
177
  }
99
178
 
100
- .s-dialog-surface[data-presentation='drawer'] {
179
+ .s-dialog-surface__frame[data-presentation='drawer'] {
101
180
  @apply relative flex h-full w-full flex-col overflow-hidden border-l border-surface-200 bg-surface-0 text-surface-900 dark:border-surface-700 dark:bg-surface-900 dark:text-surface-0;
102
181
  }
103
182
 
104
- .s-dialog-surface[data-presentation='drawer'][data-placement='left'] {
183
+ .s-dialog-surface__frame[data-presentation='drawer'][data-placement='left'] {
105
184
  @apply border-l-0 border-r;
106
185
  }
107
186
 
108
- .s-dialog-surface[data-presentation='drawer'][data-size='sm'] {
187
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='sm'] {
109
188
  max-width: 30rem;
110
189
  }
111
190
 
112
- .s-dialog-surface[data-presentation='drawer'][data-size='md'] {
191
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='md'] {
113
192
  max-width: 36rem;
114
193
  }
115
194
 
116
- .s-dialog-surface[data-presentation='drawer'][data-size='lg'] {
195
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='lg'] {
117
196
  max-width: 44rem;
118
197
  }
119
198
 
120
- .s-dialog-surface[data-presentation='drawer'][data-placement='bottom'] {
199
+ .s-dialog-surface__frame[data-presentation='drawer'][data-placement='bottom'] {
121
200
  @apply max-w-none rounded-t-2xl border-l-0 border-t border-surface-200 dark:border-surface-700;
122
201
  width: 100%;
123
202
  }
124
203
 
125
- .s-dialog-surface[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'] {
204
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'] {
126
205
  max-height: calc(100dvh - 1rem);
127
206
  }
128
207
 
129
- .s-dialog-surface[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='sm'] {
208
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='sm'] {
130
209
  height: 50dvh;
131
210
  }
132
211
 
133
- .s-dialog-surface[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='md'] {
212
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='md'] {
134
213
  height: 70dvh;
135
214
  }
136
215
 
137
- .s-dialog-surface[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='lg'] {
216
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='lg'] {
138
217
  height: 90dvh;
139
218
  }
140
219
 
141
- .s-dialog-surface[data-presentation='drawer'][data-scope='contained'] {
220
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'] {
142
221
  max-inline-size: none;
143
222
  max-block-size: 100%;
144
223
  min-inline-size: 0;
145
224
  min-block-size: 0;
146
225
  }
147
226
 
148
- .s-dialog-surface[data-presentation='drawer'][data-scope='contained'][data-placement='bottom'] {
227
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'][data-placement='bottom'] {
149
228
  block-size: var(--s-drawer-extent);
150
229
  }
151
230
 
152
- .s-dialog-surface[data-presentation='drawer'][data-scope='contained'][data-placement='left'],
153
- .s-dialog-surface[data-presentation='drawer'][data-scope='contained'][data-placement='right'] {
231
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'][data-placement='left'],
232
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'][data-placement='right'] {
154
233
  inline-size: var(--s-drawer-extent);
155
234
  }
156
235
 
157
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__header {
236
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__header {
158
237
  @apply flex shrink-0 items-start gap-3 border-b border-surface-200 px-5 py-4 dark:border-surface-700 md:px-6;
159
238
  }
160
239
 
161
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__title {
240
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__title {
162
241
  @apply min-w-0 flex-1 text-lg font-semibold leading-6 text-surface-950 dark:text-surface-0;
163
242
  }
164
243
 
165
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__body {
244
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__body {
166
245
  @apply min-h-0 min-w-0 flex-1 overflow-y-auto p-5 md:p-6;
167
246
  overscroll-behavior: contain;
168
247
  }
169
248
 
170
- .s-dialog-surface[data-presentation='drawer'][data-scroll='content'] .s-dialog-surface__body {
249
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scroll='content'] .s-dialog-surface__body {
171
250
  @apply flex flex-col overflow-hidden p-0;
172
251
  }
173
252
 
174
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__footer {
253
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__footer {
175
254
  @apply flex shrink-0 flex-wrap justify-end gap-3 border-t border-surface-200 px-5 py-4 dark:border-surface-700 md:px-6;
176
255
  }
177
256
 
178
257
  @media (max-width: 767px) {
179
- .s-dialog-surface[data-presentation='drawer'][data-layout='mobile-fullscreen'] {
258
+ .s-dialog-surface__frame[data-presentation='drawer'][data-layout='mobile-fullscreen'] {
180
259
  @apply max-w-full border-l-0 border-r-0;
181
260
  }
182
261
  }
183
262
 
184
- .s-dialog-surface[data-presentation][hidden] {
263
+ .s-dialog-surface[hidden] {
185
264
  display: none;
186
265
  }
266
+
267
+ .s-dialog-surface-motion-enter-active .s-dialog-surface__frame,
268
+ .s-dialog-surface-motion-leave-active .s-dialog-surface__frame {
269
+ transition: transform var(--s-motion-standard) ease;
270
+ }
271
+
272
+ .s-dialog-surface-motion-enter-from[data-presentation='modal'] .s-dialog-surface__frame,
273
+ .s-dialog-surface-motion-leave-to[data-presentation='modal'] .s-dialog-surface__frame {
274
+ transform: scale(0.96);
275
+ }
276
+
277
+ .s-dialog-surface-motion-enter-from[data-presentation='drawer'] .s-dialog-surface__frame,
278
+ .s-dialog-surface-motion-leave-to[data-presentation='drawer'] .s-dialog-surface__frame {
279
+ transform: translateX(1.5rem);
280
+ }
281
+
282
+ .s-dialog-surface-motion-enter-from[data-placement='left'] .s-dialog-surface__frame,
283
+ .s-dialog-surface-motion-leave-to[data-placement='left'] .s-dialog-surface__frame {
284
+ transform: translateX(-1.5rem);
285
+ }
286
+
287
+ .s-dialog-surface-motion-enter-from[data-placement='bottom'] .s-dialog-surface__frame,
288
+ .s-dialog-surface-motion-leave-to[data-placement='bottom'] .s-dialog-surface__frame {
289
+ transform: translateY(1.5rem);
290
+ }
291
+
292
+ @media (max-width: 767px) {
293
+ .s-dialog-surface-motion-enter-from[data-placement='right'] .s-dialog-surface__frame,
294
+ .s-dialog-surface-motion-leave-to[data-placement='right'] .s-dialog-surface__frame {
295
+ transform: translateY(1.5rem);
296
+ }
297
+ }
298
+
299
+ .s-dialog-surface-motion-enter-active .s-modal-backdrop,
300
+ .s-dialog-surface-motion-leave-active .s-modal-backdrop,
301
+ .s-dialog-surface-motion-enter-active .s-drawer-backdrop,
302
+ .s-dialog-surface-motion-leave-active .s-drawer-backdrop {
303
+ transition: opacity var(--s-motion-standard) ease;
304
+ }
305
+
306
+ .s-dialog-surface-motion-enter-from .s-modal-backdrop,
307
+ .s-dialog-surface-motion-leave-to .s-modal-backdrop,
308
+ .s-dialog-surface-motion-enter-from .s-drawer-backdrop,
309
+ .s-dialog-surface-motion-leave-to .s-drawer-backdrop {
310
+ opacity: 0;
311
+ }
312
+
313
+ @media (prefers-reduced-motion: reduce) {
314
+ .s-dialog-surface-motion-enter-active .s-dialog-surface__frame,
315
+ .s-dialog-surface-motion-leave-active .s-dialog-surface__frame,
316
+ .s-dialog-surface-motion-enter-active .s-modal-backdrop,
317
+ .s-dialog-surface-motion-leave-active .s-modal-backdrop,
318
+ .s-dialog-surface-motion-enter-active .s-drawer-backdrop,
319
+ .s-dialog-surface-motion-leave-active .s-drawer-backdrop {
320
+ transition: none;
321
+ }
322
+
323
+ .s-dialog-surface-motion-enter-from[data-presentation='modal'] .s-dialog-surface__frame,
324
+ .s-dialog-surface-motion-leave-to[data-presentation='modal'] .s-dialog-surface__frame,
325
+ .s-dialog-surface-motion-enter-from[data-presentation='drawer'] .s-dialog-surface__frame,
326
+ .s-dialog-surface-motion-leave-to[data-presentation='drawer'] .s-dialog-surface__frame,
327
+ .s-dialog-surface-motion-enter-from[data-placement] .s-dialog-surface__frame,
328
+ .s-dialog-surface-motion-leave-to[data-placement] .s-dialog-surface__frame {
329
+ transform: none;
330
+ }
331
+ }
@@ -21,10 +21,7 @@
21
21
  appearance: none;
22
22
  touch-action: manipulation;
23
23
  transition:
24
- background-color var(--s-motion-standard) ease,
25
- border-color var(--s-motion-standard) ease,
26
24
  box-shadow var(--s-motion-standard) ease,
27
- color var(--s-motion-standard) ease,
28
25
  transform var(--s-motion-fast) ease;
29
26
  }
30
27
 
@@ -4,19 +4,29 @@
4
4
  @reference "../../../styles/reference.css";
5
5
 
6
6
  .s-checkbox-control {
7
- @apply relative inline-flex items-center;
7
+ @apply relative inline-flex shrink-0 items-center justify-center;
8
+ width: var(--s-control-hitbox-2xs);
9
+ height: var(--s-control-hitbox-2xs);
10
+ }
11
+
12
+ .s-checkbox-control[data-presentation='inline'] {
8
13
  width: var(--s-control-indicator-size);
9
14
  height: var(--s-control-indicator-size);
10
15
  }
11
16
 
12
17
  /* Hide the browser's default checkbox */
13
18
  .s-checkbox-input {
14
- @apply absolute opacity-0 w-0 h-0;
19
+ @apply absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0;
20
+ }
21
+
22
+ .s-checkbox-input:disabled,
23
+ .s-checkbox-input[aria-readonly='true'] {
24
+ @apply cursor-default;
15
25
  }
16
26
 
17
27
  /* The custom checkbox */
18
28
  .s-checkbox-box {
19
- @apply relative shrink-0 rounded-md border;
29
+ @apply pointer-events-none relative shrink-0 rounded-md border;
20
30
  width: var(--s-control-indicator-size);
21
31
  height: var(--s-control-indicator-size);
22
32
  @apply border-surface-300 dark:border-surface-600;
@@ -27,12 +37,13 @@
27
37
  }
28
38
 
29
39
  /* Hover state */
30
- .s-checkbox-input:not(:disabled) + .s-checkbox-box {
31
- @apply hover:border-primary-500 dark:hover:border-primary-400;
40
+ .s-checkbox-input:not(:disabled):not([aria-readonly='true']):hover + .s-checkbox-box {
41
+ @apply border-primary-500 dark:border-primary-400;
32
42
  }
33
43
 
34
44
  /* Checked state */
35
- .s-checkbox-input:checked + .s-checkbox-box {
45
+ .s-checkbox-input:checked + .s-checkbox-box,
46
+ .s-checkbox-input:indeterminate + .s-checkbox-box {
36
47
  @apply border-primary-500 bg-primary-500;
37
48
  @apply dark:border-primary-400 dark:bg-primary-400;
38
49
  }
@@ -50,7 +61,8 @@
50
61
  height: var(--s-icon-size-xs);
51
62
  }
52
63
 
53
- .s-checkbox-input:checked + .s-checkbox-box > .s-checkbox-check {
64
+ .s-checkbox-input:checked + .s-checkbox-box > .s-checkbox-check,
65
+ .s-checkbox-input:indeterminate + .s-checkbox-box > .s-checkbox-check {
54
66
  @apply opacity-100;
55
67
  }
56
68
 
@@ -44,35 +44,27 @@
44
44
  }
45
45
 
46
46
  .notification-transition-enter-active {
47
- transition:
48
- opacity var(--s-motion-standard) ease-out,
49
- transform var(--s-motion-standard) ease-out;
47
+ transition: transform var(--s-motion-standard) ease-out;
50
48
  }
51
49
 
52
50
  .notification-transition-enter-from {
53
- opacity: 0;
54
51
  transform: translate3d(0, 0.75rem, 0) scale(0.98);
55
52
  }
56
53
 
57
54
  .notification-transition-enter-to {
58
- opacity: 1;
59
55
  transform: translate3d(0, 0, 0) scale(1);
60
56
  }
61
57
 
62
58
  .notification-transition-leave-active {
63
59
  position: absolute;
64
- transition:
65
- opacity var(--s-motion-fast) ease-in,
66
- transform var(--s-motion-fast) ease-in;
60
+ transition: transform var(--s-motion-fast) ease-in;
67
61
  }
68
62
 
69
63
  .notification-transition-leave-from {
70
- opacity: 1;
71
64
  transform: translate3d(0, 0, 0) scale(1);
72
65
  }
73
66
 
74
67
  .notification-transition-leave-to {
75
- opacity: 0;
76
68
  transform: translate3d(0, 0.5rem, 0) scale(0.98);
77
69
  }
78
70
 
@@ -34,6 +34,22 @@
34
34
  block-size: 100%;
35
35
  }
36
36
 
37
+ .s-scroll-viewport[data-block-size='content'] {
38
+ block-size: auto;
39
+ }
40
+
41
+ .s-scroll-viewport[data-max-block-size='sm'] {
42
+ max-block-size: var(--s-scroll-viewport-max-block-size-sm);
43
+ }
44
+
45
+ .s-scroll-viewport[data-max-block-size='md'] {
46
+ max-block-size: var(--s-scroll-viewport-max-block-size-md);
47
+ }
48
+
49
+ .s-scroll-viewport[data-max-block-size='lg'] {
50
+ max-block-size: var(--s-scroll-viewport-max-block-size-lg);
51
+ }
52
+
37
53
  .s-scroll-viewport[data-overscroll-behavior='contain'] {
38
54
  overscroll-behavior: contain;
39
55
  }
@@ -42,7 +58,7 @@
42
58
  overscroll-behavior: none;
43
59
  }
44
60
 
45
- .s-scroll-viewport[data-focusable='true']:focus-visible {
61
+ .s-scroll-viewport:focus-visible {
46
62
  outline: var(--s-focus-ring-width) solid var(--s-focus-ring-color);
47
63
  outline-offset: var(--s-focus-ring-inset-offset);
48
64
  }
@@ -10,7 +10,7 @@
10
10
  overflow-wrap: anywhere;
11
11
  word-break: break-word;
12
12
  white-space: normal;
13
- pointer-events: auto;
13
+ pointer-events: none;
14
14
  user-select: none;
15
15
  }
16
16
 
@@ -1,7 +1,7 @@
1
1
  @reference "../../../../styles/reference.css";
2
2
 
3
3
  .s-table-wrapper {
4
- @apply w-full min-w-0 overflow-auto rounded-lg border border-surface-200 bg-surface-0;
4
+ @apply w-full min-w-0 overflow-hidden rounded-lg border border-surface-200 bg-surface-0;
5
5
  @apply dark:border-surface-700 dark:bg-surface-800;
6
6
  }
7
7
 
@@ -9,10 +9,6 @@
9
9
  @apply rounded-none border-0 bg-transparent dark:bg-transparent;
10
10
  }
11
11
 
12
- .s-table-wrapper[data-max-height="sm"] { max-block-size: var(--s-scroll-viewport-max-block-size-sm); }
13
- .s-table-wrapper[data-max-height="md"] { max-block-size: var(--s-scroll-viewport-max-block-size-md); }
14
- .s-table-wrapper[data-max-height="lg"] { max-block-size: var(--s-scroll-viewport-max-block-size-lg); }
15
-
16
12
  .s-table {
17
13
  --s-table-cell-padding-inline: 1rem;
18
14
  --s-table-cell-padding-block: 0.75rem;
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-0e58afdc],[data-v-0e58afdc]:before,[data-v-0e58afdc]:after,[data-v-0e58afdc]::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}.s-dialog-surface[data-v-0e58afdc]{box-shadow:var(--s-elevation-overlay)}.s-dialog-surface[data-v-0e58afdc]:focus-visible{outline:var(--s-focus-ring-width) solid var(--s-focus-ring-color);outline-offset:var(--s-focus-ring-inset-offset)}.s-dialog-surface[data-presentation=modal][data-v-0e58afdc]{width:100%;transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);border-radius:var(--radius-2xl,1rem);padding:calc(var(--spacing,.25rem) * 6);text-align:left;vertical-align:middle;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:var(--color-surface-0,#fff);overflow:hidden}.s-dialog-surface[data-presentation=modal][data-v-0e58afdc]:where(.dark,.dark *){background-color:var(--color-surface-800,#1e293b)}.s-dialog-surface[data-presentation=modal][data-surface=subtle][data-v-0e58afdc]{background-color:var(--color-surface-50,#f8fafc)}.s-dialog-surface[data-presentation=modal][data-surface=subtle][data-v-0e58afdc]:where(.dark,.dark *){background-color:var(--color-surface-900,#0f172a)}.s-dialog-surface[data-presentation=modal][data-scroll=body][data-v-0e58afdc]{flex-direction:column;max-height:calc(100dvh - 2rem);display:flex}.s-dialog-surface[data-presentation=modal][data-scroll=body] .s-dialog-surface__body[data-v-0e58afdc]{flex:1;min-height:0;overflow-y:auto}.s-dialog-surface[data-presentation=modal][data-layout=fullscreen][data-v-0e58afdc]{border-radius:0;max-width:100%;height:100%;min-height:100vh}.s-dialog-surface[data-presentation=modal][data-size=sm][data-v-0e58afdc]{max-width:24rem}.s-dialog-surface[data-presentation=modal][data-size=md][data-v-0e58afdc]{max-width:28rem}.s-dialog-surface[data-presentation=modal][data-size=lg][data-v-0e58afdc]{max-width:32rem}.s-dialog-surface[data-presentation=modal][data-size=xl][data-v-0e58afdc]{max-width:36rem}.s-dialog-surface[data-presentation=modal][data-size="2xl"][data-v-0e58afdc]{max-width:42rem}.s-dialog-surface[data-presentation=modal][data-size="3xl"][data-v-0e58afdc]{max-width:48rem}.s-dialog-surface[data-presentation=modal][data-size="4xl"][data-v-0e58afdc]{max-width:56rem}.s-dialog-surface[data-presentation=modal][data-size=wide][data-v-0e58afdc]{max-width:72rem}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__header[data-v-0e58afdc]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-surface-200,#e2e8f0);padding-bottom:calc(var(--spacing,.25rem) * 4);justify-content:space-between;align-items:flex-start;display:flex}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__header[data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__title[data-v-0e58afdc]{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 6);line-height:calc(var(--spacing,.25rem) * 6);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-surface-900,#0f172a)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__title[data-v-0e58afdc]:where(.dark,.dark *){color:var(--color-surface-100,#f1f5f9)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__body[data-v-0e58afdc]{margin-top:calc(var(--spacing,.25rem) * 4);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-surface-600,#475569)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__body[data-v-0e58afdc]:where(.dark,.dark *){color:var(--color-surface-300,#cbd5e1)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__footer[data-v-0e58afdc]{margin-top:calc(var(--spacing,.25rem) * 6);justify-content:flex-end;gap:calc(var(--spacing,.25rem) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-surface-200,#e2e8f0);padding-top:calc(var(--spacing,.25rem) * 4);display:flex}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__footer[data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155)}.s-dialog-surface[data-presentation=modal] .s-dialog-surface__footer[data-layout=split][data-v-0e58afdc]{justify-content:flex-start;align-items:center;column-gap:calc(var(--spacing,.25rem) * 3);row-gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap}.s-dialog-surface__footer-start[data-v-0e58afdc],.s-dialog-surface__footer-end[data-v-0e58afdc]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;min-width:0;display:flex}.s-dialog-surface__footer-start[data-v-0e58afdc]{margin-right:auto}.s-dialog-surface__footer-end[data-v-0e58afdc]{justify-content:flex-end;margin-left:auto}.s-dialog-surface[data-presentation=drawer][data-v-0e58afdc]{border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-0,#fff);width:100%;height:100%;color:var(--color-surface-900,#0f172a);flex-direction:column;display:flex;position:relative;overflow:hidden}.s-dialog-surface[data-presentation=drawer][data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-900,#0f172a);color:var(--color-surface-0,#fff)}.s-dialog-surface[data-presentation=drawer][data-placement=left][data-v-0e58afdc]{border-right-style:var(--tw-border-style);border-right-width:1px;border-left-style:var(--tw-border-style);border-left-width:0}.s-dialog-surface[data-presentation=drawer][data-size=sm][data-v-0e58afdc]{max-width:30rem}.s-dialog-surface[data-presentation=drawer][data-size=md][data-v-0e58afdc]{max-width:36rem}.s-dialog-surface[data-presentation=drawer][data-size=lg][data-v-0e58afdc]{max-width:44rem}.s-dialog-surface[data-presentation=drawer][data-placement=bottom][data-v-0e58afdc]{border-top-left-radius:var(--radius-2xl,1rem);border-top-right-radius:var(--radius-2xl,1rem);border-top-style:var(--tw-border-style);border-top-width:1px;border-left-style:var(--tw-border-style);border-left-width:0;border-color:var(--color-surface-200,#e2e8f0);max-width:none}.s-dialog-surface[data-presentation=drawer][data-placement=bottom][data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155)}.s-dialog-surface[data-presentation=drawer][data-placement=bottom][data-v-0e58afdc]{width:100%}.s-dialog-surface[data-presentation=drawer][data-scope=viewport][data-placement=bottom][data-v-0e58afdc]{max-height:calc(100dvh - 1rem)}.s-dialog-surface[data-presentation=drawer][data-scope=viewport][data-placement=bottom][data-size=sm][data-v-0e58afdc]{height:50dvh}.s-dialog-surface[data-presentation=drawer][data-scope=viewport][data-placement=bottom][data-size=md][data-v-0e58afdc]{height:70dvh}.s-dialog-surface[data-presentation=drawer][data-scope=viewport][data-placement=bottom][data-size=lg][data-v-0e58afdc]{height:90dvh}.s-dialog-surface[data-presentation=drawer][data-scope=contained][data-v-0e58afdc]{min-block-size:0;max-block-size:100%;min-inline-size:0;max-inline-size:none}.s-dialog-surface[data-presentation=drawer][data-scope=contained][data-placement=bottom][data-v-0e58afdc]{block-size:var(--s-drawer-extent)}.s-dialog-surface[data-presentation=drawer][data-scope=contained][data-placement=left][data-v-0e58afdc],.s-dialog-surface[data-presentation=drawer][data-scope=contained][data-placement=right][data-v-0e58afdc]{inline-size:var(--s-drawer-extent)}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__header[data-v-0e58afdc]{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-surface-200,#e2e8f0);padding-inline:calc(var(--spacing,.25rem) * 5);padding-block:calc(var(--spacing,.25rem) * 4);flex-shrink:0;display:flex}@media (width>=48rem){.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__header[data-v-0e58afdc]{padding-inline:calc(var(--spacing,.25rem) * 6)}}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__header[data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155)}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__title[data-v-0e58afdc]{min-width:0;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-leading:calc(var(--spacing,.25rem) * 6);line-height:calc(var(--spacing,.25rem) * 6);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--color-surface-950,#020617);flex:1}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__title[data-v-0e58afdc]:where(.dark,.dark *){color:var(--color-surface-0,#fff)}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__body[data-v-0e58afdc]{min-width:0;min-height:0;padding:calc(var(--spacing,.25rem) * 5);flex:1;overflow-y:auto}@media (width>=48rem){.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__body[data-v-0e58afdc]{padding:calc(var(--spacing,.25rem) * 6)}}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__body[data-v-0e58afdc]{overscroll-behavior:contain}.s-dialog-surface[data-presentation=drawer][data-scroll=content] .s-dialog-surface__body[data-v-0e58afdc]{flex-direction:column;padding:0;display:flex;overflow:hidden}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__footer[data-v-0e58afdc]{justify-content:flex-end;gap:calc(var(--spacing,.25rem) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-surface-200,#e2e8f0);padding-inline:calc(var(--spacing,.25rem) * 5);padding-block:calc(var(--spacing,.25rem) * 4);flex-wrap:wrap;flex-shrink:0;display:flex}@media (width>=48rem){.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__footer[data-v-0e58afdc]{padding-inline:calc(var(--spacing,.25rem) * 6)}}.s-dialog-surface[data-presentation=drawer] .s-dialog-surface__footer[data-v-0e58afdc]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155)}@media (width<=767px){.s-dialog-surface[data-presentation=drawer][data-layout=mobile-fullscreen][data-v-0e58afdc]{border-right-style:var(--tw-border-style);border-right-width:0;border-left-style:var(--tw-border-style);border-left-width:0;max-width:100%}}.s-dialog-surface[data-presentation][hidden][data-v-0e58afdc]{display:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- .s-drawer-backdrop[data-v-61cf20dd]{background:var(--s-overlay-backdrop-surface);-webkit-backdrop-filter:blur(var(--s-overlay-backdrop-blur));backdrop-filter:blur(var(--s-overlay-backdrop-blur));position:fixed;inset:0}.s-drawer-shell[data-v-61cf20dd]{position:fixed;inset:0}.s-drawer-positioner[data-v-61cf20dd]{justify-content:right;align-items:stretch;display:flex;position:absolute;inset:0}.s-drawer-positioner[data-placement=left][data-v-61cf20dd]{justify-content:left}.s-drawer-positioner[data-placement=bottom][data-v-61cf20dd]{justify-content:stretch;align-items:flex-end}.s-drawer-backdrop[data-scope=contained][data-v-61cf20dd],.s-drawer-shell[data-scope=contained][data-v-61cf20dd]{pointer-events:auto;position:absolute}.s-drawer-backdrop-enter-active[data-v-61cf20dd],.s-drawer-backdrop-leave-active[data-v-61cf20dd]{transition:opacity var(--s-motion-standard) ease}.s-drawer-backdrop-enter-from[data-v-61cf20dd],.s-drawer-backdrop-leave-to[data-v-61cf20dd]{opacity:0}.s-drawer-panel-enter-active[data-v-61cf20dd],.s-drawer-panel-leave-active[data-v-61cf20dd]{transition:opacity var(--s-motion-standard) ease, transform var(--s-motion-standard) ease}.s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-panel-leave-to[data-v-61cf20dd]{opacity:0;transform:translate(1.5rem)}.s-drawer-shell[data-placement=left].s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-shell[data-placement=left].s-drawer-panel-leave-to[data-v-61cf20dd]{transform:translate(-1.5rem)}.s-drawer-shell[data-placement=bottom].s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-shell[data-placement=bottom].s-drawer-panel-leave-to[data-v-61cf20dd]{transform:translateY(1.5rem)}@media (width<=767px){.s-drawer-shell[data-placement=right].s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-shell[data-placement=right].s-drawer-panel-leave-to[data-v-61cf20dd]{transform:translateY(1.5rem)}}@media (prefers-reduced-motion:reduce){.s-drawer-backdrop-enter-active[data-v-61cf20dd],.s-drawer-backdrop-leave-active[data-v-61cf20dd],.s-drawer-panel-enter-active[data-v-61cf20dd],.s-drawer-panel-leave-active[data-v-61cf20dd]{transition:none}.s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-panel-leave-to[data-v-61cf20dd],.s-drawer-shell[data-placement].s-drawer-panel-enter-from[data-v-61cf20dd],.s-drawer-shell[data-placement].s-drawer-panel-leave-to[data-v-61cf20dd]{transform:none}}
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- .s-modal-backdrop[data-v-42e1bd5f]{background:var(--s-overlay-backdrop-surface);-webkit-backdrop-filter:blur(var(--s-overlay-backdrop-blur));backdrop-filter:blur(var(--s-overlay-backdrop-blur));position:fixed;inset:0}.s-modal-container[data-v-42e1bd5f]{position:fixed;inset:0;overflow-y:auto}.s-modal-panel-container[data-v-42e1bd5f]{min-height:100%;padding:calc(var(--spacing,.25rem) * 4);text-align:center;justify-content:center;align-items:center;display:flex}.s-modal-panel-container--fullscreen[data-v-42e1bd5f]{text-align:left;justify-content:stretch;align-items:stretch;padding:0}