@pgcorp/ui-kit 0.13.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 (354) hide show
  1. package/README.md +1055 -31
  2. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_a1f403e2_lang.css +1 -0
  3. package/dist/assets/src/components/layout/{SResizeHandle.vue_vue_type_style_index_0_scoped_90cc655e_lang.css → SResizeHandle.vue_vue_type_style_index_0_scoped_dc65aba1_lang.css} +1 -1
  4. package/dist/assets/src/components/layout/{SWorkbenchPanelShell.css_vue_type_style_index_0_src_1030a231_scoped_1030a231_lang.css → SWorkbenchPanelShell.css_vue_type_style_index_0_src_f9faa52a_scoped_f9faa52a_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_a108e8f1_scoped_a108e8f1_lang.css +2 -0
  6. package/dist/assets/src/components/shared/_internal/{SListboxGroup.css_vue_type_style_index_0_src_518787d3_scoped_518787d3_lang.css → SListboxGroup.css_vue_type_style_index_0_src_00060944_scoped_00060944_lang.css} +1 -1
  7. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css +1 -0
  8. 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
  9. package/dist/assets/src/components/shared/containers/SOverlayHost.css_vue_type_style_index_0_src_09215628_scoped_09215628_lang.css +2 -0
  10. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_a4f1f64a_scoped_a4f1f64a_lang.css +2 -0
  11. package/dist/assets/src/components/shared/containers/{SSidebarGroup.css_vue_type_style_index_0_src_3e8bc2d7_scoped_3e8bc2d7_lang.css → SSidebarGroup.css_vue_type_style_index_0_src_5b1eeb6c_scoped_5b1eeb6c_lang.css} +1 -1
  12. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_52396e42_scoped_52396e42_lang.css +2 -0
  13. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +2 -0
  14. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_2562f916_scoped_2562f916_lang.css +2 -0
  15. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_d630c922_scoped_d630c922_lang.css +2 -0
  16. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_43b6e378_scoped_43b6e378_lang.css +1 -0
  17. package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_1ccb9efc_scoped_1ccb9efc_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_40040ae5_scoped_40040ae5_lang.css} +1 -1
  18. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_2d353c26_scoped_2d353c26_lang.css +2 -0
  19. package/dist/assets/src/components/shared/controls/{SInteractiveSurface.css_vue_type_style_index_0_src_998940dd_scoped_998940dd_lang.css → SInteractiveSurface.css_vue_type_style_index_0_src_5e422fac_scoped_5e422fac_lang.css} +1 -1
  20. package/dist/assets/src/components/shared/controls/{SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css → SLink.css_vue_type_style_index_0_src_ac46e5a4_scoped_ac46e5a4_lang.css} +1 -1
  21. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_50063f9f_scoped_50063f9f_lang.css +2 -0
  22. package/dist/assets/src/components/shared/controls/{SListboxOption.css_vue_type_style_index_0_src_77c399b4_scoped_77c399b4_lang.css → SListboxOption.css_vue_type_style_index_0_src_59c9c538_scoped_59c9c538_lang.css} +1 -1
  23. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_d2b7d71b_scoped_d2b7d71b_lang.css +2 -0
  24. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_d1ead6c0_scoped_d1ead6c0_lang.css +2 -0
  25. package/dist/assets/src/components/shared/controls/STextarea.css_vue_type_style_index_0_src_true_lang.css +1 -1
  26. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_a69aa84b_scoped_a69aa84b_lang.css +2 -0
  27. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_cad721dd_scoped_cad721dd_lang.css +2 -0
  28. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_8db085d5_scoped_8db085d5_lang.css +2 -0
  29. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_d94fcf8c_scoped_d94fcf8c_lang.css +2 -0
  30. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +1 -1
  31. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_b23b3d71_scoped_b23b3d71_lang.css +2 -0
  32. package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
  33. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_9fe3ade0_scoped_9fe3ade0_lang.css +2 -0
  34. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_eaae882d_scoped_eaae882d_lang.css +2 -0
  35. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_1f0ffc97_scoped_1f0ffc97_lang.css +2 -0
  36. package/dist/assets/src/components/shared/data-display/_internal/SRichImage.css_vue_type_style_index_0_src_2f1c39a9_scoped_2f1c39a9_lang.css +2 -0
  37. package/dist/assets/src/components/shared/data-display/_internal/{SRichInlineNode.css_vue_type_style_index_0_src_20c8cc87_scoped_20c8cc87_lang.css → SRichInlineNode.css_vue_type_style_index_0_src_3ca8df12_scoped_3ca8df12_lang.css} +1 -1
  38. package/dist/assets/src/components/shared/data-display/_internal/STableCell.css_vue_type_style_index_0_src_b829cbc6_scoped_b829cbc6_lang.css +2 -0
  39. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_914bad28_scoped_914bad28_lang.css +2 -0
  40. package/dist/assets/src/components/shared/data-display/_internal/STableRow.css_vue_type_style_index_0_src_1661f8b8_scoped_1661f8b8_lang.css +2 -0
  41. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_8a291af7_scoped_8a291af7_lang.css +2 -0
  42. package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_b3963080_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_68cf84b3_lang.css} +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js +3 -3
  45. package/dist/reference.css +4 -0
  46. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +15 -0
  47. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +4 -4
  48. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +46 -1
  49. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +260 -230
  50. package/dist/src/components/icons/sputnigUiIcons.d.ts +1 -1
  51. package/dist/src/components/icons/sputnigUiIcons.js +233 -218
  52. package/dist/src/components/layout/SAppShell.vue_vue_type_script_setup_true_lang.js +8 -8
  53. package/dist/src/components/layout/SDockRegion.vue.d.ts +18 -5
  54. package/dist/src/components/layout/SDockRegion.vue.js +2 -2
  55. package/dist/src/components/layout/SDockRegion.vue_vue_type_script_setup_true_lang.js +112 -64
  56. package/dist/src/components/layout/SResizeHandle.vue.d.ts +6 -3
  57. package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
  58. package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +127 -87
  59. package/dist/src/components/layout/SStack.vue.d.ts +1 -1
  60. package/dist/src/components/layout/SWorkbenchPanelShell.vue.d.ts +4 -4
  61. package/dist/src/components/layout/SWorkbenchPanelShell.vue.js +2 -2
  62. package/dist/src/components/layout/SWorkbenchPanelShell.vue_vue_type_script_setup_true_lang.js +62 -58
  63. package/dist/src/components/layout/types.d.ts +20 -0
  64. package/dist/src/components/shared/_internal/SDialogSurface.vue.d.ts +9 -1
  65. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  66. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +183 -68
  67. package/dist/src/components/shared/_internal/SHeaderSurface.vue.d.ts +1 -1
  68. package/dist/src/components/shared/_internal/SListboxGroup.vue.d.ts +5 -0
  69. package/dist/src/components/shared/_internal/SListboxGroup.vue.js +2 -2
  70. package/dist/src/components/shared/_internal/SListboxGroup.vue_vue_type_script_setup_true_lang.js +33 -15
  71. package/dist/src/components/shared/_internal/SMenuLayer.vue.d.ts +5 -1
  72. package/dist/src/components/shared/_internal/SMenuLayer.vue.js +2 -2
  73. package/dist/src/components/shared/_internal/SMenuLayer.vue_vue_type_script_setup_true_lang.js +64 -20
  74. package/dist/src/components/shared/_internal/dialogSurface.d.ts +17 -2
  75. package/dist/src/components/shared/_internal/dialogSurface.js +42 -23
  76. package/dist/src/components/shared/_internal/dialogSurfaceMotion.d.ts +14 -0
  77. package/dist/src/components/shared/_internal/dialogSurfaceMotion.js +84 -0
  78. package/dist/src/components/shared/_internal/focusTrap.js +15 -13
  79. package/dist/src/components/shared/_internal/listboxContext.d.ts +1 -0
  80. package/dist/src/components/shared/_internal/listboxInventory.d.ts +51 -0
  81. package/dist/src/components/shared/_internal/listboxInventory.js +85 -0
  82. package/dist/src/components/shared/_internal/menuContext.d.ts +8 -0
  83. package/dist/src/components/shared/_internal/menuContext.js +2 -2
  84. package/dist/src/components/shared/_internal/sidebarGroupContext.d.ts +1 -0
  85. package/dist/src/components/shared/_internal/useVirtualCollection.d.ts +45 -0
  86. package/dist/src/components/shared/_internal/useVirtualCollection.js +123 -0
  87. package/dist/src/components/shared/complex/SKanbanLane.vue_vue_type_script_setup_true_lang.js +5 -5
  88. package/dist/src/components/shared/containers/SCloudChrome.vue.d.ts +1 -1
  89. package/dist/src/components/shared/containers/SCloudChromeRow.vue.d.ts +1 -1
  90. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.d.ts +5 -0
  91. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.js +2 -2
  92. package/dist/src/components/shared/containers/SCollapsiblePanel.vue_vue_type_script_setup_true_lang.js +123 -121
  93. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +16 -5
  94. package/dist/src/components/shared/containers/SDrawer.vue.js +3 -6
  95. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +149 -75
  96. package/dist/src/components/shared/containers/SModal.vue.d.ts +8 -8
  97. package/dist/src/components/shared/containers/SModal.vue.js +3 -6
  98. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +93 -85
  99. package/dist/src/components/shared/containers/SOverlayHost.vue.d.ts +16 -0
  100. package/dist/src/components/shared/containers/SOverlayHost.vue.js +8 -0
  101. package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +66 -0
  102. package/dist/src/components/shared/containers/SPageHeader.vue.d.ts +1 -1
  103. package/dist/src/components/shared/containers/SPanel.vue.d.ts +2 -2
  104. package/dist/src/components/shared/containers/SPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  105. package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
  106. package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +250 -156
  107. package/dist/src/components/shared/containers/SSidebarGroup.vue.js +2 -2
  108. package/dist/src/components/shared/containers/SSidebarGroup.vue_vue_type_script_setup_true_lang.js +30 -8
  109. package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
  110. package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +59 -45
  111. package/dist/src/components/shared/controls/SButton.vue.d.ts +7 -0
  112. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  113. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +11 -5
  114. package/dist/src/components/shared/controls/SCheckbox.vue.d.ts +3 -0
  115. package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
  116. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +53 -43
  117. package/dist/src/components/shared/controls/SCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -7
  118. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +4 -4
  119. package/dist/src/components/shared/controls/SColorSelect.vue_vue_type_script_setup_true_lang.js +6 -6
  120. package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
  121. package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +157 -132
  122. package/dist/src/components/shared/controls/SComboboxTrigger.vue.d.ts +2 -2
  123. package/dist/src/components/shared/controls/SContextMenu.vue.d.ts +11 -0
  124. package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
  125. package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +163 -73
  126. package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +6 -6
  127. package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +5 -5
  128. package/dist/src/components/shared/controls/SDropdownMenu.vue.js +2 -2
  129. package/dist/src/components/shared/controls/SDropdownMenu.vue_vue_type_script_setup_true_lang.js +77 -65
  130. package/dist/src/components/shared/controls/SField.vue.d.ts +9 -6
  131. package/dist/src/components/shared/controls/SField.vue.js +2 -2
  132. package/dist/src/components/shared/controls/SField.vue_vue_type_script_setup_true_lang.js +69 -52
  133. package/dist/src/components/shared/controls/SFieldGroup.vue_vue_type_script_setup_true_lang.js +13 -13
  134. package/dist/src/components/shared/controls/SInlineTokenEditor.vue_vue_type_script_setup_true_lang.js +26 -26
  135. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +21 -21
  136. package/dist/src/components/shared/controls/SInteractiveSurface.vue.js +2 -2
  137. package/dist/src/components/shared/controls/SInteractiveSurface.vue_vue_type_script_setup_true_lang.js +99 -74
  138. package/dist/src/components/shared/controls/SLink.d.ts +11 -1
  139. package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
  140. package/dist/src/components/shared/controls/SLink.vue.js +2 -2
  141. package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +157 -62
  142. package/dist/src/components/shared/controls/SListbox.vue.d.ts +10 -1
  143. package/dist/src/components/shared/controls/SListbox.vue.js +2 -2
  144. package/dist/src/components/shared/controls/SListbox.vue_vue_type_script_setup_true_lang.js +371 -189
  145. package/dist/src/components/shared/controls/SListboxOption.vue.d.ts +6 -0
  146. package/dist/src/components/shared/controls/SListboxOption.vue.js +2 -2
  147. package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +47 -34
  148. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  149. package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
  150. package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +145 -115
  151. package/dist/src/components/shared/controls/SRange.vue_vue_type_script_setup_true_lang.js +12 -12
  152. package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
  153. package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +130 -112
  154. package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
  155. package/dist/src/components/shared/controls/STextarea.vue.d.ts +28 -2
  156. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +348 -209
  157. package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +36 -36
  158. package/dist/src/components/shared/data-display/SActionList.vue.d.ts +1 -1
  159. package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +4 -4
  160. package/dist/src/components/shared/data-display/SActionListItem.vue_vue_type_script_setup_true_lang.js +6 -6
  161. package/dist/src/components/shared/data-display/SBadge.vue.d.ts +1 -1
  162. package/dist/src/components/shared/data-display/SChart.vue_vue_type_script_setup_true_lang.js +89 -89
  163. package/dist/src/components/shared/data-display/SChip.vue.d.ts +1 -1
  164. package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +7 -7
  165. package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +19 -19
  166. package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +37 -37
  167. package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +17 -17
  168. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +12 -12
  169. package/dist/src/components/shared/data-display/SControlledToastViewport.vue.js +2 -2
  170. package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +57 -48
  171. package/dist/src/components/shared/data-display/SDiffViewer.vue_vue_type_script_setup_true_lang.js +13 -13
  172. package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +12 -12
  173. package/dist/src/components/shared/data-display/SEmptyState.vue.d.ts +1 -1
  174. package/dist/src/components/shared/data-display/SEmptyState.vue_vue_type_script_setup_true_lang.js +4 -4
  175. package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +7 -7
  176. package/dist/src/components/shared/data-display/SKeyValueGrid.vue_vue_type_script_setup_true_lang.js +15 -15
  177. package/dist/src/components/shared/data-display/SLinkedSystemsList.vue_vue_type_script_setup_true_lang.js +17 -17
  178. package/dist/src/components/shared/data-display/SMessage.vue.d.ts +1 -1
  179. package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +9 -9
  180. package/dist/src/components/shared/data-display/SMetricCard.vue.d.ts +1 -1
  181. package/dist/src/components/shared/data-display/SProgressBar.vue.d.ts +22 -3
  182. package/dist/src/components/shared/data-display/SProgressBar.vue.js +2 -2
  183. package/dist/src/components/shared/data-display/SProgressBar.vue_vue_type_script_setup_true_lang.js +133 -47
  184. package/dist/src/components/shared/data-display/SProgressIndicator.vue_vue_type_script_setup_true_lang.js +4 -4
  185. package/dist/src/components/shared/data-display/SRichDocument.vue.js +2 -2
  186. package/dist/src/components/shared/data-display/SRichDocument.vue_vue_type_script_setup_true_lang.js +46 -23
  187. package/dist/src/components/shared/data-display/SScrollViewport.vue.d.ts +10 -5
  188. package/dist/src/components/shared/data-display/SScrollViewport.vue.js +2 -2
  189. package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +162 -111
  190. package/dist/src/components/shared/data-display/SSectionHeader.vue.d.ts +1 -1
  191. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +4 -4
  192. package/dist/src/components/shared/data-display/STable.vue.js +2 -2
  193. package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +343 -322
  194. package/dist/src/components/shared/data-display/STooltip.vue.d.ts +2 -2
  195. package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +284 -205
  196. package/dist/src/components/shared/data-display/STooltipAnchor.vue_vue_type_script_setup_true_lang.js +5 -5
  197. package/dist/src/components/shared/data-display/STooltipTarget.vue_vue_type_script_setup_true_lang.js +4 -4
  198. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  199. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +196 -246
  200. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
  201. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +242 -220
  202. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.d.ts +13 -2
  203. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.js +2 -2
  204. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue_vue_type_script_setup_true_lang.js +67 -11
  205. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.d.ts +11 -0
  206. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.js +8 -0
  207. package/dist/src/components/shared/data-display/_internal/SRichImage.vue_vue_type_script_setup_true_lang.js +89 -0
  208. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.d.ts +3 -2
  209. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.js +2 -2
  210. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue_vue_type_script_setup_true_lang.js +179 -125
  211. package/dist/src/components/shared/data-display/_internal/SRichMath.vue_vue_type_script_setup_true_lang.js +4 -4
  212. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.d.ts +21 -0
  213. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.js +5 -0
  214. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue_vue_type_script_setup_true_lang.js +150 -0
  215. package/dist/src/components/shared/data-display/_internal/STableCell.vue.d.ts +52 -0
  216. package/dist/src/components/shared/data-display/_internal/STableCell.vue.js +8 -0
  217. package/dist/src/components/shared/data-display/_internal/STableCell.vue_vue_type_script_setup_true_lang.js +148 -0
  218. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +42 -0
  219. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +8 -0
  220. package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +114 -0
  221. package/dist/src/components/shared/data-display/_internal/STableRow.vue.d.ts +43 -0
  222. package/dist/src/components/shared/data-display/_internal/STableRow.vue.js +8 -0
  223. package/dist/src/components/shared/data-display/_internal/STableRow.vue_vue_type_script_setup_true_lang.js +115 -0
  224. package/dist/src/components/shared/data-display/_internal/STableSection.vue.d.ts +28 -0
  225. package/dist/src/components/shared/data-display/_internal/STableSection.vue.js +5 -0
  226. package/dist/src/components/shared/data-display/_internal/STableSection.vue_vue_type_script_setup_true_lang.js +77 -0
  227. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.d.ts +6 -0
  228. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.js +136 -0
  229. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.d.ts +21 -0
  230. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.js +39 -0
  231. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.d.ts +30 -0
  232. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.js +88 -0
  233. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.d.ts +9 -0
  234. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.js +240 -0
  235. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.d.ts +15 -0
  236. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.js +61 -0
  237. package/dist/src/components/shared/data-display/_internal/richDocumentTypes.d.ts +466 -0
  238. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.d.ts +65 -0
  239. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.js +192 -0
  240. package/dist/src/components/shared/data-display/_internal/tableFoundation.d.ts +27 -0
  241. package/dist/src/components/shared/data-display/_internal/tableFoundation.js +16 -0
  242. package/dist/src/components/shared/data-display/richDocument.d.ts +3 -220
  243. package/dist/src/components/shared/data-display/richDocument.js +607 -399
  244. package/dist/src/components/shared/data-display/scrollViewport.d.ts +2 -0
  245. package/dist/src/components/shared/database/SDataGrid.vue_vue_type_script_setup_true_lang.js +36 -36
  246. package/dist/src/components/shared/database/SSqlEditor.vue.d.ts +2 -2
  247. package/dist/src/components/shared/database/SSqlEditor.vue_vue_type_script_setup_true_lang.js +36 -36
  248. package/dist/src/components/shared/feedback/SAsyncState.vue.js +2 -2
  249. package/dist/src/components/shared/feedback/SAsyncState.vue_vue_type_script_setup_true_lang.js +70 -63
  250. package/dist/src/components/shared/navigation/SBottomNav.vue.d.ts +2 -2
  251. package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
  252. package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +140 -129
  253. package/dist/src/components/shared/navigation/SBreadcrumbs.vue.d.ts +2 -2
  254. package/dist/src/components/shared/navigation/STabList.vue.d.ts +1 -1
  255. package/dist/src/components/shared/navigation/STabPanel.vue.d.ts +2 -2
  256. package/dist/src/components/shared/navigation/SWizardSteps.vue_vue_type_script_setup_true_lang.js +16 -16
  257. package/dist/src/components/shared/persona/SPersonaProjectPicker.vue.d.ts +2 -2
  258. package/dist/src/composables/useDialogOverlay.d.ts +21 -2
  259. package/dist/src/composables/useDialogOverlay.js +275 -44
  260. package/dist/src/composables/useFloatingPosition.d.ts +20 -0
  261. package/dist/src/composables/useFloatingPosition.js +129 -52
  262. package/dist/src/internal/fieldSurface.d.ts +3 -0
  263. package/dist/src/internal/fieldSurface.js +3 -2
  264. package/dist/src/internal/flatTree.d.ts +8 -0
  265. package/dist/src/internal/flatTree.js +23 -0
  266. package/dist/src/internal/focusNavigation.d.ts +5 -0
  267. package/dist/src/internal/focusNavigation.js +29 -16
  268. package/dist/src/internal/inertLease.d.ts +8 -0
  269. package/dist/src/internal/inertLease.js +33 -0
  270. package/dist/src/internal/layerStack.d.ts +52 -0
  271. package/dist/src/internal/layerStack.js +343 -60
  272. package/dist/src/internal/linkTarget.d.ts +7 -1
  273. package/dist/src/internal/linkTarget.js +11 -7
  274. package/dist/src/internal/nativeFocus.d.ts +4 -0
  275. package/dist/src/internal/nativeFocus.js +12 -0
  276. package/dist/src/internal/overlayHost.d.ts +18 -0
  277. package/dist/src/internal/overlayHost.js +18 -0
  278. package/dist/src/internal/overlayPortal.d.ts +17 -0
  279. package/dist/src/internal/overlayPortal.js +23 -0
  280. package/dist/src/internal/ownedAttrs.d.ts +13 -3
  281. package/dist/src/internal/ownedAttrs.js +8 -1
  282. package/dist/src/internal/runtimeContract.d.ts +2 -0
  283. package/dist/src/internal/runtimeContract.js +10 -5
  284. package/dist/src/internal/semanticSizing.d.ts +2 -2
  285. package/dist/src/internal/semanticSizing.js +2 -1
  286. package/dist/src/internal/useMenuLayer.d.ts +8 -4
  287. package/dist/src/internal/useMenuLayer.js +78 -49
  288. package/dist/src/internal/viewportModality.d.ts +27 -0
  289. package/dist/src/internal/viewportModality.js +132 -0
  290. package/dist/tailwind.css +3 -0
  291. package/dist/typography.LICENSE.txt +94 -0
  292. package/dist/typography.js +5105 -0
  293. package/docs/getting-started.md +39 -0
  294. package/docs/link-download.md +114 -0
  295. package/docs/listbox.md +129 -0
  296. package/docs/overlay-lifecycle.md +195 -0
  297. package/docs/public-api.md +335 -6
  298. package/docs/resize.md +158 -0
  299. package/docs/rich-document.md +442 -25
  300. package/docs/scroll-viewport.md +30 -10
  301. package/docs/theming.md +42 -8
  302. package/package.json +12 -4
  303. package/src/components/shared/_internal/SDialogSurface.css +213 -36
  304. package/src/components/shared/_internal/SMenuLayer.css +4 -0
  305. package/src/components/shared/containers/SOverlayHost.css +14 -0
  306. package/src/components/shared/containers/SPopover.css +8 -2
  307. package/src/components/shared/controls/SButton.css +4 -3
  308. package/src/components/shared/controls/SCheckbox.css +19 -7
  309. package/src/components/shared/controls/SField.css +6 -0
  310. package/src/components/shared/controls/SListbox.css +17 -0
  311. package/src/components/shared/controls/SMenuSurface.css +18 -4
  312. package/src/components/shared/controls/STextarea.css +42 -3
  313. package/src/components/shared/data-display/SControlledToastViewport.css +2 -10
  314. package/src/components/shared/data-display/SProgressBar.css +79 -0
  315. package/src/components/shared/data-display/SRichDocument.css +1 -0
  316. package/src/components/shared/data-display/SScrollViewport.css +17 -1
  317. package/src/components/shared/data-display/SStatus.css +8 -25
  318. package/src/components/shared/data-display/STable.css +0 -113
  319. package/src/components/shared/data-display/STooltip.css +3 -0
  320. package/src/components/shared/data-display/_internal/SRichBlockNode.css +11 -7
  321. package/src/components/shared/data-display/_internal/SRichDisclosure.css +16 -0
  322. package/src/components/shared/data-display/_internal/SRichImage.css +37 -0
  323. package/src/components/shared/data-display/_internal/STableCell.css +55 -0
  324. package/src/components/shared/data-display/_internal/STableFrame.css +37 -0
  325. package/src/components/shared/data-display/_internal/STableRow.css +12 -0
  326. package/src/components/shared/feedback/SAsyncState.css +0 -4
  327. package/src/styles/style.css +9 -5
  328. package/src/styles/tokens.css +30 -0
  329. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_2932631d_lang.css +0 -1
  330. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css +0 -2
  331. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css +0 -1
  332. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +0 -2
  333. package/dist/assets/src/components/shared/containers/SModal.css_vue_type_style_index_0_src_0dc51b74_scoped_0dc51b74_lang.css +0 -2
  334. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_deded766_scoped_deded766_lang.css +0 -2
  335. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_96f51ac6_scoped_96f51ac6_lang.css +0 -2
  336. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +0 -2
  337. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_b20b27dd_scoped_b20b27dd_lang.css +0 -2
  338. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_e3b4f580_scoped_e3b4f580_lang.css +0 -2
  339. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_00c91d39_scoped_00c91d39_lang.css +0 -1
  340. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_60628f96_scoped_60628f96_lang.css +0 -2
  341. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_24db4abb_scoped_24db4abb_lang.css +0 -2
  342. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_ddcc5fbb_scoped_ddcc5fbb_lang.css +0 -2
  343. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_441648c9_scoped_441648c9_lang.css +0 -2
  344. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_5864b6c6_scoped_5864b6c6_lang.css +0 -2
  345. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_9308293a_scoped_9308293a_lang.css +0 -2
  346. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_d1afafc5_scoped_d1afafc5_lang.css +0 -2
  347. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_e5d11342_scoped_e5d11342_lang.css +0 -2
  348. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_9955d482_scoped_9955d482_lang.css +0 -2
  349. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +0 -2
  350. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +0 -2
  351. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_fa94e2ff_scoped_fa94e2ff_lang.css +0 -2
  352. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_bfc28903_scoped_bfc28903_lang.css +0 -2
  353. package/src/components/shared/containers/SDrawer.css +0 -69
  354. 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.13.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",
@@ -176,6 +176,9 @@
176
176
  "shared/containers/SModal.vue": [
177
177
  "dist/src/components/shared/containers/SModal.vue.d.ts"
178
178
  ],
179
+ "shared/containers/SOverlayHost.vue": [
180
+ "dist/src/components/shared/containers/SOverlayHost.vue.d.ts"
181
+ ],
179
182
  "shared/containers/SPageHeader.vue": [
180
183
  "dist/src/components/shared/containers/SPageHeader.vue.d.ts"
181
184
  ],
@@ -582,7 +585,7 @@
582
585
  "import": "./dist/src/components/layout/types.js",
583
586
  "default": "./dist/src/components/layout/types.js"
584
587
  },
585
- "./reference.css": "./src/styles/reference.css",
588
+ "./reference.css": "./dist/reference.css",
586
589
  "./shared/codeLanguages": {
587
590
  "types": "./dist/src/components/shared/codeLanguages.d.ts",
588
591
  "import": "./dist/src/components/shared/codeLanguages.js",
@@ -673,6 +676,11 @@
673
676
  "import": "./dist/src/components/shared/containers/SModal.vue.js",
674
677
  "default": "./dist/src/components/shared/containers/SModal.vue.js"
675
678
  },
679
+ "./shared/containers/SOverlayHost.vue": {
680
+ "types": "./dist/src/components/shared/containers/SOverlayHost.vue.d.ts",
681
+ "import": "./dist/src/components/shared/containers/SOverlayHost.vue.js",
682
+ "default": "./dist/src/components/shared/containers/SOverlayHost.vue.js"
683
+ },
676
684
  "./shared/containers/SPageHeader.vue": {
677
685
  "types": "./dist/src/components/shared/containers/SPageHeader.vue.d.ts",
678
686
  "import": "./dist/src/components/shared/containers/SPageHeader.vue.js",
@@ -1159,7 +1167,7 @@
1159
1167
  "default": "./dist/src/stores/useNotifierStore.js"
1160
1168
  },
1161
1169
  "./style.css": "./src/styles/style.css",
1162
- "./tailwind.css": "./src/styles/tailwind.css",
1170
+ "./tailwind.css": "./dist/tailwind.css",
1163
1171
  "./theme": {
1164
1172
  "types": "./dist/src/theme.d.ts",
1165
1173
  "import": "./dist/src/theme.js",
@@ -1194,7 +1202,6 @@
1194
1202
  "highlight.js": "^11.12.0",
1195
1203
  "katex": "0.18.7",
1196
1204
  "@lucide/vue": "^1.47.0",
1197
- "@tailwindcss/typography": "^0.5.20",
1198
1205
  "marked": "^18.0.13",
1199
1206
  "sigma": "^3.0.3",
1200
1207
  "tailwindcss": "^4.3.3",
@@ -1204,6 +1211,7 @@
1204
1211
  "devDependencies": {
1205
1212
  "@storybook/vue3-vite": "10.6.0",
1206
1213
  "@tailwindcss/postcss": "^4.3.3",
1214
+ "@tailwindcss/typography": "0.5.20",
1207
1215
  "@types/node": "^22.20.4",
1208
1216
  "@vitejs/plugin-vue": "^6.0.9",
1209
1217
  "@vitest/coverage-v8": "^5.0.1",
@@ -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,58 +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-size='sm'] {
183
+ .s-dialog-surface__frame[data-presentation='drawer'][data-placement='left'] {
184
+ @apply border-l-0 border-r;
185
+ }
186
+
187
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='sm'] {
105
188
  max-width: 30rem;
106
189
  }
107
190
 
108
- .s-dialog-surface[data-presentation='drawer'][data-size='md'] {
191
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='md'] {
109
192
  max-width: 36rem;
110
193
  }
111
194
 
112
- .s-dialog-surface[data-presentation='drawer'][data-size='lg'] {
195
+ .s-dialog-surface__frame[data-presentation='drawer'][data-size='lg'] {
113
196
  max-width: 44rem;
114
197
  }
115
198
 
116
- .s-dialog-surface[data-presentation='drawer'][data-placement='bottom'] {
199
+ .s-dialog-surface__frame[data-presentation='drawer'][data-placement='bottom'] {
117
200
  @apply max-w-none rounded-t-2xl border-l-0 border-t border-surface-200 dark:border-surface-700;
118
201
  width: 100%;
202
+ }
203
+
204
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'] {
119
205
  max-height: calc(100dvh - 1rem);
120
206
  }
121
207
 
122
- .s-dialog-surface[data-presentation='drawer'][data-placement='bottom'][data-size='sm'] {
208
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='sm'] {
123
209
  height: 50dvh;
124
210
  }
125
211
 
126
- .s-dialog-surface[data-presentation='drawer'][data-placement='bottom'][data-size='md'] {
212
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='md'] {
127
213
  height: 70dvh;
128
214
  }
129
215
 
130
- .s-dialog-surface[data-presentation='drawer'][data-placement='bottom'][data-size='lg'] {
216
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='viewport'][data-placement='bottom'][data-size='lg'] {
131
217
  height: 90dvh;
132
218
  }
133
219
 
134
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__header {
135
- @apply flex items-start gap-3 border-b border-surface-200 px-5 py-4 dark:border-surface-700 md:px-6;
220
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'] {
221
+ max-inline-size: none;
222
+ max-block-size: 100%;
223
+ min-inline-size: 0;
224
+ min-block-size: 0;
136
225
  }
137
226
 
138
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__title {
227
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scope='contained'][data-placement='bottom'] {
228
+ block-size: var(--s-drawer-extent);
229
+ }
230
+
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'] {
233
+ inline-size: var(--s-drawer-extent);
234
+ }
235
+
236
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__header {
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;
238
+ }
239
+
240
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__title {
139
241
  @apply min-w-0 flex-1 text-lg font-semibold leading-6 text-surface-950 dark:text-surface-0;
140
242
  }
141
243
 
142
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__body {
143
- @apply flex-1 overflow-y-auto p-5 md:p-6;
244
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__body {
245
+ @apply min-h-0 min-w-0 flex-1 overflow-y-auto p-5 md:p-6;
246
+ overscroll-behavior: contain;
247
+ }
248
+
249
+ .s-dialog-surface__frame[data-presentation='drawer'][data-scroll='content'] .s-dialog-surface__body {
250
+ @apply flex flex-col overflow-hidden p-0;
144
251
  }
145
252
 
146
- .s-dialog-surface[data-presentation='drawer'] .s-dialog-surface__footer {
147
- @apply flex flex-wrap justify-end gap-3 border-t border-surface-200 px-5 py-4 dark:border-surface-700 md:px-6;
253
+ .s-dialog-surface__frame[data-presentation='drawer'] .s-dialog-surface__footer {
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;
148
255
  }
149
256
 
150
257
  @media (max-width: 767px) {
151
- .s-dialog-surface[data-presentation='drawer'][data-layout='mobile-fullscreen'] {
152
- @apply max-w-full border-l-0;
258
+ .s-dialog-surface__frame[data-presentation='drawer'][data-layout='mobile-fullscreen'] {
259
+ @apply max-w-full border-l-0 border-r-0;
260
+ }
261
+ }
262
+
263
+ .s-dialog-surface[hidden] {
264
+ display: none;
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;
153
330
  }
154
331
  }
@@ -2,6 +2,10 @@
2
2
  position: fixed;
3
3
  }
4
4
 
5
+ .s-menu-layer[hidden] {
6
+ display: none;
7
+ }
8
+
5
9
  .s-menu-layer--dropdown {
6
10
  --s-menu-surface-width: max-content;
7
11
  --s-menu-surface-min-width: 12rem;
@@ -0,0 +1,14 @@
1
+ @reference "../../../styles/reference.css";
2
+
3
+ .s-overlay-host {
4
+ @apply relative flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden;
5
+ isolation: isolate;
6
+ }
7
+
8
+ .s-overlay-host__content {
9
+ @apply flex min-h-0 min-w-0 flex-1 flex-col;
10
+ }
11
+
12
+ .s-overlay-host__portal {
13
+ @apply pointer-events-none absolute inset-0;
14
+ }
@@ -13,7 +13,7 @@
13
13
  background: var(--s-floating-surface);
14
14
  color: var(--s-floating-foreground);
15
15
  box-shadow: 0 0 0 1px var(--s-floating-outline), var(--s-elevation-floating);
16
- display: inline-block;
16
+ display: block;
17
17
  }
18
18
 
19
19
  .s-popover-panel[data-width='sm'] {
@@ -28,8 +28,14 @@
28
28
  width: min(36rem, calc(100vw - 1rem));
29
29
  }
30
30
 
31
+ .s-popover-panel[data-surface='transparent'] {
32
+ max-width: 90vw;
33
+ }
34
+
31
35
  .s-popover-panel[data-surface='transparent'] .s-popover-content {
32
36
  @apply bg-transparent shadow-none dark:bg-transparent;
33
37
  box-shadow: none;
34
- max-width: 90vw;
38
+ }
39
+ .s-popover-panel[hidden] {
40
+ display: none;
35
41
  }
@@ -10,6 +10,7 @@
10
10
  --s-button-outline: color-mix(in srgb, var(--s-button-accent) 45%, transparent);
11
11
  --s-button-soft-background: color-mix(in srgb, var(--s-button-accent) 12%, transparent);
12
12
  --s-button-hover-background: color-mix(in srgb, var(--s-button-accent) 10%, transparent);
13
+ --s-passive-content-foreground: var(--s-button-foreground);
13
14
 
14
15
  @apply relative inline-flex min-w-0 items-center justify-center font-semibold;
15
16
  border: 1px solid transparent;
@@ -20,10 +21,7 @@
20
21
  appearance: none;
21
22
  touch-action: manipulation;
22
23
  transition:
23
- background-color var(--s-motion-standard) ease,
24
- border-color var(--s-motion-standard) ease,
25
24
  box-shadow var(--s-motion-standard) ease,
26
- color var(--s-motion-standard) ease,
27
25
  transform var(--s-motion-fast) ease;
28
26
  }
29
27
 
@@ -175,6 +173,7 @@
175
173
  }
176
174
 
177
175
  .s-button[data-appearance='solid'] {
176
+ --s-passive-content-foreground: var(--s-button-on-solid);
178
177
  border-color: var(--s-button-solid-background);
179
178
  background: var(--s-button-solid-background);
180
179
  box-shadow: var(--s-elevation-control);
@@ -256,6 +255,7 @@
256
255
  }
257
256
 
258
257
  .s-button:disabled {
258
+ --s-passive-content-foreground: var(--s-button-disabled-foreground);
259
259
  border-color: transparent;
260
260
  background: var(--s-button-disabled-background);
261
261
  box-shadow: none;
@@ -264,6 +264,7 @@
264
264
  }
265
265
 
266
266
  .s-button[aria-disabled='true'] {
267
+ --s-passive-content-foreground: var(--s-button-disabled-foreground);
267
268
  border-color: transparent;
268
269
  background: var(--s-button-disabled-background);
269
270
  box-shadow: none;
@@ -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
 
@@ -13,6 +13,12 @@
13
13
  @apply h-full;
14
14
  }
15
15
 
16
+ .s-field[data-content-flow='phrasing'] {
17
+ display: inline-grid;
18
+ width: auto;
19
+ vertical-align: middle;
20
+ }
21
+
16
22
  .s-field--stacked[data-fill='container'] {
17
23
  grid-template-rows: auto minmax(0, 1fr) auto auto;
18
24
  }