@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
@@ -4,6 +4,11 @@ function t(e) {
4
4
  return Object.freeze(e);
5
5
  }
6
6
  var n = Object.freeze({
7
+ STableFrame: t({}),
8
+ SRichImage: t({}),
9
+ STableSection: t({}),
10
+ STableRow: t({}),
11
+ STableCell: t({}),
7
12
  SAppShell: t({}),
8
13
  SDockRegion: t({}),
9
14
  SResizeHandle: t({ "data-test-id": "data" }),
@@ -24,6 +29,7 @@ var n = Object.freeze({
24
29
  SCloudChromeRow: t({}),
25
30
  SCollapsiblePanel: t({ "data-testid": "data" }),
26
31
  SDrawer: t({}),
32
+ SOverlayHost: t({}),
27
33
  SFormGrid: t({}),
28
34
  SFormGridItem: t({}),
29
35
  SLeftSidebar: t({}),
@@ -163,7 +169,6 @@ var n = Object.freeze({
163
169
  "aria-label": "string",
164
170
  "data-s-app-shell-brand-passive": "data",
165
171
  "data-testid": "data",
166
- download: "string-or-boolean",
167
172
  title: "string"
168
173
  }),
169
174
  SListbox: t({
@@ -185,7 +190,9 @@ var n = Object.freeze({
185
190
  "data-testid": "data"
186
191
  }),
187
192
  STextarea: t({
193
+ "aria-controls": "string",
188
194
  "aria-describedby": "string",
195
+ "aria-haspopup": "aria-haspopup",
189
196
  "aria-label": "string",
190
197
  "data-testid": "data",
191
198
  autocomplete: "string",
@@ -17,6 +17,8 @@ export declare function validateBoolean(owner: string, coordinate: string, value
17
17
  * Validates an HTML DOM id: a non-empty string without ASCII whitespace.
18
18
  */
19
19
  export declare function validateDomId(owner: string, coordinate: string, value: unknown): string;
20
+ /** Validates an explicit single-space DOM IDREF list without rewriting input identities. */
21
+ export declare function validateDomIdReferences(owner: string, coordinate: string, value: unknown): string;
20
22
  /**
21
23
  * Возвращает generated DOM id только при отсутствии явного значения и валидирует обе ветки.
22
24
  * Returns a generated DOM id only when the explicit value is absent and validates both branches.
@@ -26,23 +26,28 @@ function o(n, r, i) {
26
26
  let a = t(i);
27
27
  throw TypeError(`${n}: ${r} должен быть непустым DOM id без ASCII-пробелов; получено ${a}. / ${n}: ${r} must be a non-empty DOM id without ASCII whitespace; received ${a}.`);
28
28
  }
29
- function s(e, t, n, r) {
29
+ function s(e, t, n) {
30
+ let r = i(e, t, n);
31
+ for (let [n, i] of r.split(" ").entries()) o(e, `${t}[${n}]`, i);
32
+ return r;
33
+ }
34
+ function c(e, t, n, r) {
30
35
  return n === void 0 ? o(e, `generated ${t}`, r) : o(e, t, n);
31
36
  }
32
- function c(e, n, i, a) {
37
+ function l(e, n, i, a) {
33
38
  if (r(e, n, a), typeof i == "string" && a.includes(i)) return i;
34
39
  let o = `[${a.map((e) => JSON.stringify(e)).join(", ")}]`, s = t(i);
35
40
  throw TypeError(`${e}: ${n} должен быть одним из ${o}; получено ${s}. / ${e}: ${n} must be one of ${o}; received ${s}.`);
36
41
  }
37
- function l(e, r, i, a) {
42
+ function u(e, r, i, a) {
38
43
  if (n(e, r, a, !1), typeof i == "number" && Number.isFinite(i) && i >= a.minimum && i <= a.maximum) return i;
39
44
  let o = t(i);
40
45
  throw TypeError(`${e}: ${r} должен быть конечным числом в диапазоне [${a.minimum}, ${a.maximum}]; получено ${o}. / ${e}: ${r} must be a finite number in the inclusive range [${a.minimum}, ${a.maximum}]; received ${o}.`);
41
46
  }
42
- function u(e, r, i, a) {
47
+ function d(e, r, i, a) {
43
48
  if (n(e, r, a, !0), typeof i == "number" && Number.isInteger(i) && i >= a.minimum && i <= a.maximum) return i;
44
49
  let o = t(i);
45
50
  throw TypeError(`${e}: ${r} должен быть целым числом в диапазоне [${a.minimum}, ${a.maximum}]; получено ${o}. / ${e}: ${r} must be an integer in the inclusive range [${a.minimum}, ${a.maximum}]; received ${o}.`);
46
51
  }
47
52
  //#endregion
48
- export { s as resolveOptionalDomId, a as validateBoolean, u as validateBoundedInteger, l as validateBoundedNumber, o as validateDomId, c as validateExactString, i as validateNonEmptyString };
53
+ export { c as resolveOptionalDomId, a as validateBoolean, d as validateBoundedInteger, u as validateBoundedNumber, o as validateDomId, s as validateDomIdReferences, l as validateExactString, i as validateNonEmptyString };
@@ -1,5 +1,5 @@
1
1
  declare const SCROLLABLE_VIEWPORT_MAX_BLOCK_SIZES: readonly ["none", "sm", "md", "lg"];
2
- declare const SCROLL_VIEWPORT_BLOCK_SIZES: readonly ["sm", "md", "lg", "fill"];
2
+ declare const SCROLL_VIEWPORT_BLOCK_SIZES: readonly ["sm", "md", "lg", "fill", "content"];
3
3
  declare const EXPANDED_CONTENT_MAX_BLOCK_SIZES: readonly ["sm", "md", "lg"];
4
4
  declare const TABLE_COLUMN_INLINE_SIZES: readonly ["auto", "content", "2xs", "xs", "sm", "md", "lg", "xl", "fill"];
5
5
  declare const TABLE_COLUMN_MIN_INLINE_SIZES: readonly ["2xs", "xs", "sm", "md", "lg", "xl"];
@@ -8,7 +8,7 @@ declare const TABLE_COLUMN_MIN_INLINE_SIZES: readonly ["2xs", "xs", "sm", "md",
8
8
  * Maximum block size for a scroll viewport; none preserves natural flow.
9
9
  */
10
10
  export type ScrollableViewportMaxBlockSize = typeof SCROLLABLE_VIEWPORT_MAX_BLOCK_SIZES[number];
11
- /** Фиксированная semantic block-size рабочей scroll-области. / Fixed semantic block size of a scroll workspace. */
11
+ /** Semantic block-size scroll-области; content сохраняет естественный flow. / Semantic scroll size; content preserves natural flow. */
12
12
  export type ScrollViewportBlockSize = typeof SCROLL_VIEWPORT_BLOCK_SIZES[number];
13
13
  /**
14
14
  * Максимальный block-size раскрытого текстового content region.
@@ -9,7 +9,8 @@ var t = [
9
9
  "sm",
10
10
  "md",
11
11
  "lg",
12
- "fill"
12
+ "fill",
13
+ "content"
13
14
  ], r = [
14
15
  "sm",
15
16
  "md",
@@ -1,4 +1,5 @@
1
1
  import { Ref } from 'vue';
2
+ import { SMenuLayerApi } from '../components/shared/_internal/SMenuLayer.vue';
2
3
  export type MenuAnchor = {
3
4
  type: 'element';
4
5
  element: HTMLElement;
@@ -9,14 +10,17 @@ export type MenuAnchor = {
9
10
  x: number;
10
11
  y: number;
11
12
  };
12
- export type MenuCloseReason = 'escape' | 'outside' | 'programmatic' | 'selection' | 'trigger';
13
+ export type MenuCloseReason = 'escape' | 'outside' | 'programmatic' | 'selection' | 'trigger' | 'tab';
13
14
  /** Управляет общей lifecycle/focus границей menu поверх canonical floating geometry. / Owns menu lifecycle and focus over canonical floating geometry. */
14
- export declare function useMenuLayer(layerRef: Ref<HTMLElement | null>, options?: {
15
- onDismiss?: (reason: 'escape' | 'outside') => void;
16
- onRequestDismiss?: (reason: 'escape' | 'outside') => void;
15
+ export declare function useMenuLayer(layerApiRef: Ref<SMenuLayerApi | null>, options?: {
16
+ onDismiss?: (reason: 'escape' | 'outside' | 'tab') => void;
17
+ onRequestDismiss?: (reason: 'escape' | 'outside' | 'tab') => void;
18
+ onRetire?: () => void;
17
19
  }): {
18
20
  isOpen: Ref<boolean, boolean>;
21
+ portalTarget: import('vue').ComputedRef<HTMLElement | "body" | null>;
19
22
  position: Ref<import('../composables/useFloatingPosition').FloatingCoordinates, import('../composables/useFloatingPosition').FloatingCoordinates>;
23
+ availableSize: Ref<import('../composables/useFloatingPosition').FloatingAvailableSize | null, import('../composables/useFloatingPosition').FloatingAvailableSize | null>;
20
24
  zIndex: Ref<string, string>;
21
25
  open: (nextAnchor: MenuAnchor, focusTarget?: HTMLElement | null) => Promise<void>;
22
26
  close: (reason?: MenuCloseReason) => void;
@@ -1,9 +1,11 @@
1
1
  import { findFocusableOwner as e, findRelativeTabTarget as t } from "./focusNavigation.js";
2
2
  import { registerLayer as n } from "./layerStack.js";
3
- import { useFloatingPosition as r } from "../composables/useFloatingPosition.js";
4
- import { nextTick as i, onBeforeUnmount as a, ref as o } from "vue";
3
+ import { useOverlayAdmission as r } from "./overlayHost.js";
4
+ import { useOverlayPortalTarget as i } from "./overlayPortal.js";
5
+ import { useFloatingPosition as a } from "../composables/useFloatingPosition.js";
6
+ import { computed as o, nextTick as s, onBeforeUnmount as c, ref as l, watch as u } from "vue";
5
7
  //#region src/internal/useMenuLayer.ts
6
- var s = 5, c = (e, t) => ({
8
+ var d = 5, f = (e, t) => ({
7
9
  x: e,
8
10
  y: t,
9
11
  left: e,
@@ -17,71 +19,98 @@ var s = 5, c = (e, t) => ({
17
19
  y: t
18
20
  })
19
21
  });
20
- function l(l, u = {}) {
21
- let d = o(!1), f = o("var(--s-layer-root-floating)"), p = null, m = null, h = null;
22
- function g(e = "programmatic") {
23
- (d.value || h) && (d.value = !1, h?.unregister({ restoreFocus: e !== "outside" }), h = null, p = null, m = null, f.value = "var(--s-layer-root-floating)");
22
+ function p(p, m = {}) {
23
+ let h = o(() => p.value?.getElement() ?? null), g = r(), _ = i(), v = l(!1), y = l("var(--s-layer-root-floating)"), b = null, x = null, S = null, C = null, w = !1, T = 0;
24
+ u(h, () => S?.refreshModality(), { flush: "sync" });
25
+ function E(e = "programmatic") {
26
+ T += 1;
27
+ let t = w && (e === "tab" || e === "programmatic");
28
+ t || (C?.(), C = null), w = !1, (v.value || S) && (v.value = !1, S?.unregister({
29
+ restoreFocus: !t && e !== "outside",
30
+ commitFocusHandoff: t
31
+ }), S = null, b = null, x = null, y.value = "var(--s-layer-root-floating)");
24
32
  }
25
- function _(e) {
26
- if (u.onRequestDismiss) {
27
- u.onRequestDismiss(e);
33
+ function D(e) {
34
+ if (m.onRequestDismiss) {
35
+ m.onRequestDismiss(e);
28
36
  return;
29
37
  }
30
- g(e), u.onDismiss?.(e);
38
+ E(e), m.onDismiss?.(e);
31
39
  }
32
- function v(e) {
33
- let n = m;
40
+ function O(e) {
41
+ let n = x;
34
42
  if (!n) {
35
- g("outside");
43
+ E("outside");
36
44
  return;
37
45
  }
38
- let r = h?.focusScope() ?? document, a = t(n, r, l.value, e.shiftKey);
39
- e.preventDefault(), _("outside"), a && i(() => a.focus());
46
+ let r = S?.focusScope() ?? document, i = t(n, r, h.value, e.shiftKey);
47
+ e.preventDefault(), C?.(), C = i && S ? S.handoffFocus(i) : null, w = !0, D("tab");
40
48
  }
41
- let { coordinates: y, updatePosition: b } = r({
42
- active: d,
43
- placement: () => p?.type === "element" && p.placement === "inline" ? p.align === "right" ? "left-start" : "right-start" : p?.type === "element" && p.placement === "top" ? p.align === "right" ? "top-end" : "top-start" : p?.type === "element" && p.align === "right" ? "bottom-end" : "bottom-start",
44
- anchorElement: () => p?.type === "element" ? p.element : null,
45
- anchorRect: () => p ? p.type === "point" ? c(p.x, p.y) : p.element.isConnected ? p.element.getBoundingClientRect() : (g("outside"), null) : null,
46
- panelRef: l,
49
+ let { coordinates: k, availableSize: A, updatePosition: j } = a({
50
+ active: v,
51
+ placement: () => b?.type === "element" && b.placement === "inline" ? b.align === "right" ? "left-start" : "right-start" : b?.type === "element" && b.placement === "top" ? b.align === "right" ? "top-end" : "top-start" : b?.type === "element" && b.align === "right" ? "bottom-end" : "bottom-start",
52
+ anchorElement: () => b?.type === "element" ? b.element : null,
53
+ anchorRect: () => b ? b.type === "point" ? f(b.x, b.y) : b.element.isConnected ? b.element.getBoundingClientRect() : (E("outside"), null) : null,
54
+ panelRef: h,
47
55
  offset: () => 0,
48
- boundaryPadding: () => s,
56
+ boundaryPadding: () => d,
49
57
  flip: () => !0,
50
58
  shift: () => !0,
51
59
  widthMatch: () => "none",
52
- zIndex: () => f.value,
60
+ viewportSizing: () => !0,
61
+ sizingElements: () => p.value?.getSizingElements() ?? null,
62
+ zIndex: () => y.value,
53
63
  scrollStrategy: "reposition"
54
64
  });
55
- async function x(t, r) {
56
- if (d.value && g("outside"), t.type === "element" && e(t.element) !== t.element) throw Error("useMenuLayer: element anchor must be the canonical focusable owner");
57
- p = t;
65
+ async function M(t, r) {
66
+ if (!g.value) {
67
+ E("outside"), m.onRetire?.();
68
+ return;
69
+ }
70
+ if (_.value === null) return;
71
+ C?.(), C = null, w = !1, v.value && E("outside");
72
+ let i = ++T;
73
+ if (t.type === "element" && e(t.element) !== t.element) throw Error("useMenuLayer: element anchor must be the canonical focusable owner");
74
+ b = t;
58
75
  let a = e(r ?? null) ?? e(document.activeElement);
59
- if (m = t.type === "element" ? t.element : a, d.value = !0, h = n({
60
- kind: "menu",
61
- root: () => l.value,
62
- anchor: () => t.type === "element" ? t.element : a,
63
- restoreTarget: a,
64
- requestDismiss: (e) => {
65
- _(e === "escape" ? "escape" : "outside");
76
+ if (x = t.type === "element" ? t.element : a, v.value = !0, await s(), T === i && v.value && g.value) {
77
+ if (!h.value?.isConnected) throw E("outside"), Error("useMenuLayer: connected layer element is unavailable after opening");
78
+ if (S = n({
79
+ kind: "menu",
80
+ root: () => h.value,
81
+ anchor: () => t.type === "element" ? t.element : a,
82
+ restoreTarget: a,
83
+ requestDismiss: (e) => {
84
+ D(e === "escape" ? "escape" : "outside");
85
+ },
86
+ onRetire: () => {
87
+ E("outside"), m.onRetire?.();
88
+ }
89
+ }), y.value = S.zIndex, await s(), T === i && v.value && g.value) {
90
+ if (!h.value) throw E("outside"), Error("useMenuLayer: layer element is unavailable after opening");
91
+ j();
66
92
  }
67
- }), f.value = h.zIndex, await i(), d.value) {
68
- if (!l.value) throw g("outside"), Error("useMenuLayer: layer element is unavailable after opening");
69
- b();
70
93
  }
71
94
  }
72
- function S(e, t) {
73
- d.value ? g("trigger") : x(e, t);
95
+ function N(e, t) {
96
+ v.value ? E("trigger") : M(e, t);
74
97
  }
75
- return a(() => g("outside")), {
76
- isOpen: d,
77
- position: y,
78
- zIndex: f,
79
- open: x,
80
- close: g,
81
- closeForTab: v,
82
- toggle: S,
83
- positionLayer: b
98
+ return c(() => E("outside")), u(g, (e) => {
99
+ e || !v.value && !S || (E("outside"), m.onRetire?.());
100
+ }, { flush: "sync" }), u(_, (e) => {
101
+ e === null && (v.value || S) && (E("outside"), m.onRetire?.());
102
+ }, { flush: "sync" }), {
103
+ isOpen: v,
104
+ portalTarget: _,
105
+ position: k,
106
+ availableSize: A,
107
+ zIndex: y,
108
+ open: M,
109
+ close: E,
110
+ closeForTab: O,
111
+ toggle: N,
112
+ positionLayer: j
84
113
  };
85
114
  }
86
115
  //#endregion
87
- export { l as useMenuLayer };
116
+ export { p as useMenuLayer };
@@ -0,0 +1,27 @@
1
+ /** Exact loss evidence from the native owner, never from an arbitrary historical BODY state. */
2
+ export interface ModalityMutation {
3
+ readonly boundary: Element;
4
+ readonly isCurrent: () => boolean;
5
+ }
6
+ export interface NativeDialogCycle {
7
+ readonly subject: HTMLDialogElement;
8
+ readonly refresh: () => void;
9
+ readonly close: (beforeRetire?: (mutation: ModalityMutation) => void) => void;
10
+ }
11
+ /** Admits only the actual live native modal owned by this shared lifecycle. */
12
+ export declare function isOwnedNativeModal(element: Element): boolean;
13
+ /** Native modal focus semantics apply to an exposed host subject as well as a kit owner. */
14
+ export declare function isActualNativeModal(element: Element): boolean;
15
+ /** Native Document blocking is independent of visible inert attributes on background elements. */
16
+ export declare function isNativeModalBackground(element: Element): boolean;
17
+ /** Releases the exact inactive shell lease after removal, or before the same subject acquires a new cycle. */
18
+ export declare function releaseRetiredNativeSubject(subject: HTMLDialogElement): void;
19
+ /**
20
+ * Acquires one actual connected native dialog. Self inert suppresses UA autofocus;
21
+ * the authenticated shared admission performs the sole initial focus claim.
22
+ * Exact previous native subjects remain inert for the acquired cycle's lifetime,
23
+ * including their direct portals; leases release before authorized source return.
24
+ * Native close extends its Document blocking synchronously until all UA return steps
25
+ * finish, preserving arbitrary source styles and attributes.
26
+ */
27
+ export declare function acquireNativeDialog(subject: HTMLDialogElement, beforeAcquire?: (mutation: ModalityMutation) => void, onUnownedSourceLoss?: () => void): NativeDialogCycle;
@@ -0,0 +1,132 @@
1
+ import { createAggregateError as e } from "./es2020.js";
2
+ import { flatTreeContains as t, flatTreeParent as n } from "./flatTree.js";
3
+ import { acquireInertLease as r } from "./inertLease.js";
4
+ import { nativeFocusChain as i } from "./nativeFocus.js";
5
+ //#region src/internal/viewportModality.ts
6
+ var a = [], o = /* @__PURE__ */ new WeakMap();
7
+ function s(e) {
8
+ return e instanceof HTMLDialogElement && e.open && e.matches(":modal");
9
+ }
10
+ function c(e) {
11
+ let n = a[a.length - 1]?.subject;
12
+ return !!(n?.open && n.isConnected && e.isConnected && !t(n, e));
13
+ }
14
+ function l(e) {
15
+ let t = o.get(e);
16
+ t && (o.delete(e), t.observer.disconnect(), t.lease.release());
17
+ }
18
+ var u = (e, t) => {
19
+ let r = () => {
20
+ i.disconnect();
21
+ for (let t = n(e); t; t = n(t)) i.observe(t, { childList: !0 });
22
+ }, i = new MutationObserver(() => {
23
+ e.isConnected ? r() : l(e);
24
+ });
25
+ o.set(e, {
26
+ lease: t,
27
+ observer: i
28
+ }), e.isConnected ? r() : l(e);
29
+ }, d = (e) => {
30
+ let t = [];
31
+ for (let r = e; r; r = n(r)) r instanceof HTMLDialogElement && s(r) && t.push(r);
32
+ return t;
33
+ };
34
+ function f(n, o, s) {
35
+ if (!(n instanceof HTMLDialogElement) || !n.isConnected || n.ownerDocument !== document) throw TypeError("ui-kit native dialog: subject must be a connected same-document HTMLDialogElement");
36
+ if (n.open || a.some((e) => e.subject === n)) throw TypeError("ui-kit native dialog: subject lifecycle is already open");
37
+ l(n);
38
+ let f = !0, p = !0, m = !0, h = i(), g = [], _ = h[h.length - 1], v = _ && _ !== document.body && _ !== document.documentElement ? {
39
+ boundary: _,
40
+ isCurrent: () => m && f && n.open && n.isConnected && (p || a[a.length - 1] === C) && c(_)
41
+ } : null, y = () => {
42
+ let e = i(), r = e[e.length - 1];
43
+ r && r !== document.body && r !== document.documentElement && !t(n, r) && (h = e);
44
+ }, b = (e) => {
45
+ !n.open && _ && e.composedPath().includes(_) && (m = !1, s?.());
46
+ }, x = () => {
47
+ if (f && (!n.open || !n.isConnected || !n.matches(":modal"))) throw TypeError("ui-kit native dialog: external close(), showModal(), open mutation or subject removal violates the owned lifecycle");
48
+ }, S = new MutationObserver((e) => {
49
+ if (f && e.some((e) => e.type === "attributes" && e.attributeName === "open")) throw TypeError("ui-kit native dialog: external open attribute mutation violates the owned lifecycle");
50
+ x();
51
+ }), C = {
52
+ subject: n,
53
+ refresh: x,
54
+ close: (t) => {
55
+ if (!f) return;
56
+ S.disconnect();
57
+ let i = [], o = [];
58
+ try {
59
+ let e = /* @__PURE__ */ new Set();
60
+ for (let t of h) for (let r of d(t)) r !== n && e.add(r);
61
+ for (let t of a) t !== C && t.subject.open && t.subject.isConnected && e.add(t.subject);
62
+ i.push(r(n.ownerDocument.documentElement));
63
+ for (let t of e) i.push(r(t));
64
+ let s = null, c = {
65
+ boundary: n,
66
+ isCurrent: () => s?.isCurrent() === !0 && n.isConnected && !n.open
67
+ };
68
+ try {
69
+ t?.(c);
70
+ } catch (e) {
71
+ o.push(e);
72
+ }
73
+ if (s = r(n), u(n, s), f = !1, n.open) try {
74
+ n.close();
75
+ } catch (e) {
76
+ o.push(e);
77
+ }
78
+ } finally {
79
+ f = !1;
80
+ let e = a.indexOf(C);
81
+ e >= 0 && a.splice(e, 1);
82
+ for (let e of g.splice(0).reverse()) try {
83
+ e.release();
84
+ } catch (e) {
85
+ o.push(e);
86
+ }
87
+ for (let e of i.reverse()) try {
88
+ e.release();
89
+ } catch (e) {
90
+ o.push(e);
91
+ }
92
+ }
93
+ if (o.length === 1) throw o[0];
94
+ if (o.length > 1) throw e(o, "ui-kit native dialog: close transaction cleanup failed");
95
+ }
96
+ }, w = r(n);
97
+ a.push(C), document.addEventListener("focusin", y, !0), document.addEventListener("focusout", b, !0);
98
+ try {
99
+ if (v && o?.(v), n.showModal(), !n.open || !n.isConnected) throw TypeError("ui-kit native dialog: showModal() must establish the connected native cycle");
100
+ let e = /* @__PURE__ */ new Set();
101
+ for (let t of a) t !== C && t.subject.open && t.subject.isConnected && e.add(t.subject);
102
+ for (let t of h) for (let r of d(t)) r !== n && e.add(r);
103
+ for (let t of e) g.push(r(t));
104
+ S.observe(n, {
105
+ attributes: !0,
106
+ attributeFilter: ["open"]
107
+ });
108
+ } catch (t) {
109
+ let r = [t];
110
+ if (n.open) try {
111
+ C.close();
112
+ } catch (e) {
113
+ r.push(e);
114
+ }
115
+ else {
116
+ f = !1;
117
+ let e = a.indexOf(C);
118
+ e >= 0 && a.splice(e, 1);
119
+ for (let e of g.splice(0).reverse()) try {
120
+ e.release();
121
+ } catch (e) {
122
+ r.push(e);
123
+ }
124
+ }
125
+ throw r.length > 1 ? e(r, "ui-kit native dialog: acquisition cleanup failed") : t;
126
+ } finally {
127
+ p = !1, document.removeEventListener("focusin", y, !0), document.removeEventListener("focusout", b, !0), w.release();
128
+ }
129
+ return C;
130
+ }
131
+ //#endregion
132
+ export { f as acquireNativeDialog, s as isActualNativeModal, c as isNativeModalBackground, l as releaseRetiredNativeSubject };
@@ -0,0 +1,3 @@
1
+ @import "../src/styles/style.css";
2
+ @plugin "./typography.js";
3
+ @custom-variant dark (&:where(.dark, .dark *));
@@ -0,0 +1,94 @@
1
+ @tailwindcss/typography@0.5.20
2
+ MIT License
3
+
4
+ Copyright (c) Tailwind Labs, Inc.
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+
24
+ postcss-selector-parser@7.1.6
25
+ Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
26
+
27
+ Permission is hereby granted, free of charge, to any person
28
+ obtaining a copy of this software and associated documentation
29
+ files (the "Software"), to deal in the Software without
30
+ restriction, including without limitation the rights to use,
31
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
32
+ copies of the Software, and to permit persons to whom the
33
+ Software is furnished to do so, subject to the following
34
+ conditions:
35
+
36
+ The above copyright notice and this permission notice shall be
37
+ included in all copies or substantial portions of the Software.
38
+
39
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46
+ OTHER DEALINGS IN THE SOFTWARE.
47
+
48
+ cssesc@3.0.0
49
+ Copyright Mathias Bynens <https://mathiasbynens.be/>
50
+
51
+ Permission is hereby granted, free of charge, to any person obtaining
52
+ a copy of this software and associated documentation files (the
53
+ "Software"), to deal in the Software without restriction, including
54
+ without limitation the rights to use, copy, modify, merge, publish,
55
+ distribute, sublicense, and/or sell copies of the Software, and to
56
+ permit persons to whom the Software is furnished to do so, subject to
57
+ the following conditions:
58
+
59
+ The above copyright notice and this permission notice shall be
60
+ included in all copies or substantial portions of the Software.
61
+
62
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
63
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
64
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
65
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
66
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
67
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
68
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
69
+
70
+ util-deprecate@1.0.2
71
+ (The MIT License)
72
+
73
+ Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
74
+
75
+ Permission is hereby granted, free of charge, to any person
76
+ obtaining a copy of this software and associated documentation
77
+ files (the "Software"), to deal in the Software without
78
+ restriction, including without limitation the rights to use,
79
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
80
+ copies of the Software, and to permit persons to whom the
81
+ Software is furnished to do so, subject to the following
82
+ conditions:
83
+
84
+ The above copyright notice and this permission notice shall be
85
+ included in all copies or substantial portions of the Software.
86
+
87
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
88
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
89
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
90
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
91
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
92
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
93
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
94
+ OTHER DEALINGS IN THE SOFTWARE.