@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
@@ -10,6 +10,9 @@ export interface Props {
10
10
  id?: string;
11
11
  active?: boolean;
12
12
  focusOnSelect?: boolean;
13
+ position?: number;
14
+ setSize?: number;
15
+ virtualOffset?: number;
13
16
  }
14
17
  declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
18
  select: () => any;
@@ -23,7 +26,10 @@ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {},
23
26
  title: string;
24
27
  marker: MarkerContract;
25
28
  disabled: boolean;
29
+ position: number;
30
+ setSize: number;
26
31
  appearance: "select" | "color";
32
+ virtualOffset: number;
27
33
  focusOnSelect: boolean;
28
34
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
35
  declare const _default: typeof __VLS_export;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/controls/SListboxOption.css_vue_type_style_index_0_src_77c399b4_scoped_77c399b4_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SListboxOption.css_vue_type_style_index_0_src_59c9c538_scoped_59c9c538_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SListboxOption.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/controls/SListboxOption.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-77c399b4"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-59c9c538"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -2,17 +2,19 @@ import { Check as e } from "../../icons/_internal/generatedSputnigUiIconComponen
2
2
  import { useInteractiveLeafRegistration as t } from "../../../internal/passiveContentContract.js";
3
3
  import n from "./SMarker.vue.js";
4
4
  import { listboxContextKey as r } from "../_internal/listboxContext.js";
5
- import { createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, inject as u, onBeforeUnmount as d, onMounted as f, openBlock as p, ref as m, toDisplayString as h, unref as g, withModifiers as _ } from "vue";
5
+ import { createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, inject as u, normalizeStyle as d, onBeforeUnmount as f, onMounted as p, openBlock as m, ref as h, toDisplayString as g, unref as _, withModifiers as v } from "vue";
6
6
  //#region src/components/shared/controls/SListboxOption.vue?vue&type=script&setup=true&lang.ts
7
- var v = [
7
+ var y = [
8
8
  "id",
9
9
  "data-appearance",
10
10
  "data-focused",
11
11
  "title",
12
12
  "aria-label",
13
13
  "aria-selected",
14
- "aria-disabled"
15
- ], y = ["data-appearance"], b = ["data-selected"], x = ["data-appearance"], S = /*@__PURE__*/ l({
14
+ "aria-disabled",
15
+ "aria-posinset",
16
+ "aria-setsize"
17
+ ], b = ["data-appearance"], x = ["data-selected"], S = ["data-appearance"], C = /*@__PURE__*/ l({
16
18
  inheritAttrs: !1,
17
19
  __name: "SListboxOption",
18
20
  props: {
@@ -34,66 +36,77 @@ var v = [
34
36
  focusOnSelect: {
35
37
  type: Boolean,
36
38
  default: !0
37
- }
39
+ },
40
+ position: { default: void 0 },
41
+ setSize: { default: void 0 },
42
+ virtualOffset: { default: void 0 }
38
43
  },
39
44
  emits: ["select", "hover"],
40
- setup(l, { emit: S }) {
41
- let C = l, w = S;
45
+ setup(l, { emit: C }) {
46
+ let w = l, T = C;
42
47
  t({ owner: "SListboxOption" });
43
- let T = u(r);
44
- if (!T) throw Error("SListboxOption must be used inside SListbox");
45
- let E = m(!1), D = m(null), O, k = () => {
46
- C.disabled || (C.focusOnSelect && D.value?.focus(), w("select"));
47
- }, A = (e) => {
48
- C.focusOnSelect || e.preventDefault();
48
+ let E = u(r);
49
+ if (!E) throw Error("SListboxOption must be used inside SListbox");
50
+ let D = h(!1), O = h(null), k, A = () => {
51
+ w.disabled || (w.focusOnSelect && O.value?.focus(), T("select"));
52
+ }, j = (e) => {
53
+ w.focusOnSelect || e.preventDefault();
49
54
  };
50
- return f(() => {
51
- let e = D.value;
55
+ return p(() => {
56
+ let e = O.value;
52
57
  if (!(e instanceof HTMLLIElement)) throw Error("SListboxOption: option element is unavailable");
53
- O = T.register({
58
+ k = E.register({
54
59
  element: e,
55
- token: C.registrationToken,
56
- activate: k,
57
- disabled: () => C.disabled,
58
- label: () => C.label,
59
- selected: () => C.selected
60
+ token: w.registrationToken,
61
+ activate: A,
62
+ disabled: () => w.disabled,
63
+ label: () => w.label,
64
+ selected: () => w.selected
60
65
  });
61
- }), d(() => O?.()), (t, r) => (p(), o("li", {
66
+ }), f(() => k?.()), (t, r) => (m(), o("li", {
62
67
  ref_key: "optionRef",
63
- ref: D,
68
+ ref: O,
64
69
  id: l.id,
65
70
  class: "s-listbox-option__control",
66
71
  "data-appearance": l.appearance,
67
- "data-focused": E.value || l.active || void 0,
72
+ "data-focused": D.value || l.active || void 0,
73
+ style: d(l.virtualOffset === void 0 ? void 0 : {
74
+ position: "absolute",
75
+ top: `${l.virtualOffset}px`,
76
+ left: "0",
77
+ right: "0"
78
+ }),
68
79
  title: l.title ?? l.label,
69
80
  "aria-label": l.appearance === "color" ? l.label : void 0,
70
81
  role: "option",
71
82
  "aria-selected": l.selected,
72
83
  "aria-disabled": l.disabled || void 0,
84
+ "aria-posinset": l.position,
85
+ "aria-setsize": l.setSize,
73
86
  tabindex: -1,
74
- onFocus: r[0] ||= (e) => E.value = !0,
75
- onBlur: r[1] ||= (e) => E.value = !1,
76
- onMousedown: A,
77
- onMouseenter: r[2] ||= (e) => w("hover"),
78
- onClick: _(k, ["stop"])
87
+ onFocus: r[0] ||= (e) => D.value = !0,
88
+ onBlur: r[1] ||= (e) => D.value = !1,
89
+ onMousedown: j,
90
+ onMouseenter: r[2] ||= (e) => T("hover"),
91
+ onClick: v(A, ["stop"])
79
92
  }, [s("span", {
80
93
  class: "s-listbox-option__main",
81
94
  "data-appearance": l.appearance
82
- }, [l.marker ? (p(), i(n, {
95
+ }, [l.marker ? (m(), i(n, {
83
96
  key: 0,
84
97
  marker: l.marker,
85
98
  size: l.appearance === "color" ? "lg" : "sm"
86
- }, null, 8, ["marker", "size"])) : a("", !0), l.appearance === "select" ? (p(), o("span", {
99
+ }, null, 8, ["marker", "size"])) : a("", !0), l.appearance === "select" ? (m(), o("span", {
87
100
  key: 1,
88
101
  class: "s-listbox-option__label",
89
102
  "data-selected": l.selected || void 0
90
- }, h(l.label), 9, b)) : a("", !0)], 8, y), l.selected ? (p(), o("span", {
103
+ }, g(l.label), 9, x)) : a("", !0)], 8, b), l.selected ? (m(), o("span", {
91
104
  key: 0,
92
105
  class: "s-listbox-option__check",
93
106
  "data-appearance": l.appearance,
94
107
  "aria-hidden": "true"
95
- }, [c(g(e))], 8, x)) : a("", !0)], 40, v));
108
+ }, [c(_(e))], 8, S)) : a("", !0)], 44, y));
96
109
  }
97
110
  });
98
111
  //#endregion
99
- export { S as default };
112
+ export { C as default };
@@ -17,15 +17,15 @@ export interface SMenuSurfaceApi {
17
17
  declare const __VLS_export: import('vue').DefineComponent<Props, SMenuSurfaceApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
18
  select: (item: SMenuSelectableEntry, event: SMenuActivationEvent) => any;
19
19
  escape: () => any;
20
- "focus-exit": (event: FocusEvent) => any;
21
20
  tab: (event: KeyboardEvent) => any;
21
+ "focus-exit": (event: FocusEvent) => any;
22
22
  "submenu-back": () => any;
23
23
  "dismiss-tree": () => any;
24
24
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
25
25
  onSelect?: ((item: SMenuSelectableEntry, event: SMenuActivationEvent) => any) | undefined;
26
26
  onEscape?: (() => any) | undefined;
27
- "onFocus-exit"?: ((event: FocusEvent) => any) | undefined;
28
27
  onTab?: ((event: KeyboardEvent) => any) | undefined;
28
+ "onFocus-exit"?: ((event: FocusEvent) => any) | undefined;
29
29
  "onSubmenu-back"?: (() => any) | undefined;
30
30
  "onDismiss-tree"?: (() => any) | undefined;
31
31
  }>, {
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_ddcc5fbb_scoped_ddcc5fbb_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_d2b7d71b_scoped_d2b7d71b_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SMenuSurface.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/controls/SMenuSurface.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-ddcc5fbb"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-d2b7d71b"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -1,22 +1,22 @@
1
1
  import { useOwnedAttrs as e } from "../../../internal/ownedAttrs.js";
2
2
  import { useInteractiveLeafRegistration as t } from "../../../internal/passiveContentContract.js";
3
3
  import { useMenuLayer as n } from "../../../internal/useMenuLayer.js";
4
- import r from "../_internal/SMenuLayer.vue.js";
5
- import { menuContextKey as i, menuDepthKey as a } from "../_internal/menuContext.js";
4
+ import { menuContextKey as r, menuDepthKey as i, menuViewportKey as a } from "../_internal/menuContext.js";
5
+ import ee from "../_internal/SMenuLayer.vue.js";
6
6
  import o from "../_internal/SMenuItem.vue.js";
7
- import ee from "../_internal/SMenuSeparator.vue.js";
8
- import { validateSMenuEntries as s } from "./menu.js";
9
- import { Fragment as c, Teleport as te, computed as l, createBlock as u, createCommentVNode as ne, createElementBlock as d, createElementVNode as f, createVNode as re, defineComponent as p, inject as ie, mergeProps as m, nextTick as h, onBeforeUnmount as ae, onMounted as oe, openBlock as g, provide as _, ref as v, renderList as y, resolveComponent as se, toDisplayString as ce, toRef as le, unref as b, watch as x, withCtx as S } from "vue";
7
+ import te from "../_internal/SMenuSeparator.vue.js";
8
+ import { validateSMenuEntries as ne } from "./menu.js";
9
+ import { Fragment as s, Teleport as re, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createVNode as ie, defineComponent as p, inject as m, mergeProps as ae, nextTick as h, onBeforeUnmount as oe, onMounted as se, openBlock as g, provide as _, ref as v, renderList as y, resolveComponent as ce, toDisplayString as b, toRef as le, unref as x, watch as ue, withCtx as de } from "vue";
10
10
  //#region src/components/shared/controls/SMenuSurface.vue?vue&type=script&setup=true&lang.ts
11
- var C = [
11
+ var fe = [
12
12
  "data-density",
13
13
  "data-orientation",
14
14
  "aria-label",
15
15
  "aria-orientation"
16
- ], ue = ["aria-label", "data-menu-group-id"], de = {
16
+ ], pe = ["aria-label", "data-menu-group-id"], S = {
17
17
  class: "s-menu-group__label",
18
18
  "aria-hidden": "true"
19
- }, w = /*@__PURE__*/ p({
19
+ }, C = /*@__PURE__*/ p({
20
20
  inheritAttrs: !1,
21
21
  __name: "SMenuSurface",
22
22
  props: {
@@ -38,156 +38,181 @@ var C = [
38
38
  "submenu-back",
39
39
  "dismiss-tree"
40
40
  ],
41
- setup(p, { expose: w, emit: T }) {
42
- let E = p, D = T, fe = e({
41
+ setup(p, { expose: C, emit: me }) {
42
+ let w = p, T = me, he = e({
43
43
  component: "SMenuSurface",
44
44
  owner: "menu root"
45
45
  });
46
46
  t({ owner: "SMenuSurface" });
47
- let O = ie(a, -1) + 1;
48
- _(a, O);
49
- let k = v(null), A = /* @__PURE__ */ new Map();
50
- _(i, {
51
- density: le(E, "density"),
47
+ let E = m(i, -1) + 1;
48
+ _(i, E);
49
+ let D = v(null), O = v(null), k = m(a, null), A = null, j = /* @__PURE__ */ new Map();
50
+ _(r, {
51
+ density: le(w, "density"),
52
52
  register: (e) => {
53
- if (A.has(e.entryId)) throw Error(`SMenuSurface: duplicate mounted entry id '${e.entryId}'`);
54
- return A.set(e.entryId, e), () => A.delete(e.entryId);
53
+ if (j.has(e.entryId)) throw Error(`SMenuSurface: duplicate mounted entry id '${e.entryId}'`);
54
+ return j.set(e.entryId, e), () => j.delete(e.entryId);
55
55
  }
56
56
  });
57
- let j = v(null), M = v(!0), N = v(null), P = v(null), F = l(() => N.value?.getElement() ?? null), { position: I, zIndex: L, open: R, close: z } = n(F, { onDismiss: (e) => {
58
- j.value = null, e === "outside" && D("dismiss-tree");
59
- } }), B = (e) => e.flatMap((e) => e.kind === "group" ? [...e.children] : e.kind === "separator" ? [] : [e]), V = (e) => B(E.items).find((t) => t.id === e), H = l(() => {
60
- let e = j.value ? V(j.value) : void 0;
57
+ let M = v(null), N = v(!0), P = v(null), F = v(null), I = c(() => P.value?.getElement() ?? null), { portalTarget: L, position: ge, availableSize: R, zIndex: _e, open: ve, close: z } = n(P, {
58
+ onRetire: () => {
59
+ M.value = null;
60
+ },
61
+ onDismiss: (e) => {
62
+ M.value = null, e === "outside" && T("dismiss-tree");
63
+ }
64
+ }), ye = (e) => e.flatMap((e) => e.kind === "group" ? [...e.children] : e.kind === "separator" ? [] : [e]), B = (e) => ye(w.items).find((t) => t.id === e), V = c(() => {
65
+ let e = M.value ? B(M.value) : void 0;
61
66
  return e?.kind === "submenu" ? e : null;
62
- }), U = "", W = null, G = () => [...A.values()].filter((e) => e.element().isConnected).sort((e, t) => {
67
+ }), H = "", U = null, W = () => [...j.values()].filter((e) => e.element().isConnected).sort((e, t) => {
63
68
  let n = e.element().compareDocumentPosition(t.element());
64
69
  return n & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : n & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
65
- }), K = (e, t) => {
70
+ }), G = (e, t) => {
66
71
  for (let t of e) t.setTabStop(!1);
67
72
  let n = e[t];
68
- n && (n.setTabStop(!0), n.focus());
73
+ n && (n.setTabStop(!0), n.focus(), $());
74
+ }, K = () => {
75
+ let e = W();
76
+ e.length > 0 && G(e, 0);
69
77
  }, q = () => {
70
- let e = G();
71
- e.length > 0 && K(e, 0);
72
- }, J = () => {
73
- let e = G();
74
- e.length > 0 && K(e, e.length - 1);
75
- }, pe = () => {
76
- if (typeof E.label != "string" || !E.label.trim()) throw TypeError("SMenuSurface: label must be a non-empty string");
77
- s(E.items);
78
- }, me = (e) => {
79
- let t = G();
78
+ let e = W();
79
+ e.length > 0 && G(e, e.length - 1);
80
+ }, be = () => {
81
+ if (typeof w.label != "string" || !w.label.trim()) throw TypeError("SMenuSurface: label must be a non-empty string");
82
+ ne(w.items);
83
+ }, xe = (e) => {
84
+ let t = W();
80
85
  if (t.length === 0) return;
81
86
  let n = t.findIndex((e) => e.isFocused());
82
- K(t, ((n < 0 ? e === 1 ? -1 : 0 : n) + e + t.length) % t.length);
83
- }, he = (e) => {
87
+ G(t, ((n < 0 ? e === 1 ? -1 : 0 : n) + e + t.length) % t.length);
88
+ }, Se = (e) => {
84
89
  let t = e.toLocaleLowerCase();
85
- U += t, W && clearTimeout(W), W = setTimeout(() => {
86
- U = "", W = null;
90
+ H += t, U && clearTimeout(U), U = setTimeout(() => {
91
+ H = "", U = null;
87
92
  }, 500);
88
- let n = [...U].every((e) => e === t) ? t : U, r = G();
93
+ let n = [...H].every((e) => e === t) ? t : H, r = W();
89
94
  if (r.length === 0) return;
90
95
  let i = r.findIndex((e) => e.isFocused()), a = [...r.slice(i + 1), ...r.slice(0, i + 1)].find((e) => e.label().trim().toLocaleLowerCase().startsWith(n));
91
- a && K(r, r.indexOf(a));
96
+ a && G(r, r.indexOf(a));
92
97
  };
93
- async function Y(e, t) {
94
- let n = V(e), r = A.get(e);
98
+ async function J(e, t) {
99
+ if (L.value === null) return;
100
+ let n = B(e), r = j.get(e);
95
101
  if (n?.kind === "submenu" && !n.disabled && r) {
96
- if (j.value === e) {
97
- t && await h(() => P.value?.focusFirst());
102
+ if (M.value === e) {
103
+ t && await h(() => F.value?.focusFirst());
98
104
  return;
99
105
  }
100
- j.value && z("outside"), M.value = t, j.value = e, await R({
106
+ M.value && z("outside"), N.value = t, M.value = e, await ve({
101
107
  type: "element",
102
108
  element: r.element(),
103
109
  align: "left",
104
110
  placement: "inline"
105
- }, r.element()), t && await h(() => P.value?.focusFirst());
111
+ }, r.element()), t && await h(() => F.value?.focusFirst());
106
112
  }
107
113
  }
114
+ function Y(e) {
115
+ M.value &&= (z(e), null);
116
+ }
108
117
  function X(e) {
109
- j.value &&= (z(e), null);
118
+ e.kind === "submenu" && !e.disabled ? J(e.id, !1) : M.value && Y("outside");
110
119
  }
111
- function Z(e) {
112
- e.kind === "submenu" && !e.disabled ? Y(e.id, !1) : j.value && X("outside");
120
+ function Z(e, t) {
121
+ e.kind === "submenu" || e.disabled || T("select", e, t);
113
122
  }
114
- function Q(e, t) {
115
- e.kind === "submenu" || e.disabled || D("select", e, t);
123
+ function Ce(e, t) {
124
+ T("select", e, t);
116
125
  }
117
- function ge(e, t) {
118
- D("select", e, t);
126
+ function Q() {
127
+ return W().find((e) => e.isFocused());
119
128
  }
120
129
  function $() {
121
- return G().find((e) => e.isFocused());
130
+ let e = D.value, t = Q();
131
+ if (!e || !t || e.clientHeight === 0 || e.clientWidth === 0) return;
132
+ let n = e.getBoundingClientRect(), r = t.element().getBoundingClientRect();
133
+ r.top < n.top ? e.scrollTop += r.top - n.top : r.bottom > n.bottom && (e.scrollTop += r.bottom - n.bottom), r.left < n.left ? e.scrollLeft += r.left - n.left : r.right > n.right && (e.scrollLeft += r.right - n.right);
122
134
  }
123
- let _e = (e) => {
135
+ let we = (e) => {
124
136
  let t = e.target;
125
- if (e.currentTarget !== t && !G().some((e) => e.ownsEventTarget(t))) return;
137
+ if (e.currentTarget !== t && !W().some((e) => e.ownsEventTarget(t))) return;
126
138
  if (e.key === "Tab") {
127
- D("tab", e);
139
+ T("tab", e);
128
140
  return;
129
141
  }
130
142
  if (e.key === "Escape") {
131
- e.preventDefault(), D("escape");
143
+ e.preventDefault(), T("escape");
132
144
  return;
133
145
  }
134
- let n = E.orientation === "horizontal" ? "ArrowRight" : "ArrowDown", r = E.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
135
- if (E.orientation === "vertical" && (e.key === "ArrowRight" || e.key === "ArrowLeft")) {
136
- let t = $();
137
- e.preventDefault(), e.key === "ArrowRight" && t?.hasSubmenu() ? Y(t.entryId, !0) : e.key === "ArrowLeft" && O > 0 && D("submenu-back");
146
+ let n = w.orientation === "horizontal" ? "ArrowRight" : "ArrowDown", r = w.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
147
+ if (w.orientation === "vertical" && (e.key === "ArrowRight" || e.key === "ArrowLeft")) {
148
+ let t = Q();
149
+ e.preventDefault(), e.key === "ArrowRight" && t?.hasSubmenu() ? J(t.entryId, !0) : e.key === "ArrowLeft" && E > 0 && T("submenu-back");
138
150
  return;
139
151
  }
140
152
  if (e.key === n || e.key === r) {
141
- e.preventDefault(), me(e.key === n ? 1 : -1);
153
+ e.preventDefault(), xe(e.key === n ? 1 : -1);
142
154
  return;
143
155
  }
144
- if (E.orientation === "horizontal" && e.key === "ArrowDown") {
145
- let t = $();
146
- t?.hasSubmenu() && (e.preventDefault(), Y(t.entryId, !0));
156
+ if (w.orientation === "horizontal" && e.key === "ArrowDown") {
157
+ let t = Q();
158
+ t?.hasSubmenu() && (e.preventDefault(), J(t.entryId, !0));
147
159
  return;
148
160
  }
149
161
  if (e.key === "Home" || e.key === "End") {
150
- e.preventDefault(), e.key === "Home" ? q() : J();
162
+ e.preventDefault(), e.key === "Home" ? K() : q();
151
163
  return;
152
164
  }
153
165
  if (e.key === "Enter" || e.key === " ") {
154
- let t = $();
166
+ let t = Q();
155
167
  t && t.activate(e);
156
168
  return;
157
169
  }
158
- e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey && he(e.key);
159
- }, ve = (e) => {
170
+ e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey && Se(e.key);
171
+ }, Te = (e) => {
160
172
  let t = e.relatedTarget;
161
- t instanceof Node && (k.value?.contains(t) || F.value?.contains(t)) || D("focus-exit", e);
173
+ t instanceof Node && (D.value?.contains(t) || I.value?.contains(t)) || T("focus-exit", e);
162
174
  };
163
- return oe(() => {
164
- E.autofocus && h(E.initialFocus === "last" ? J : q);
165
- }), x(() => [E.label, E.items], () => {
166
- pe(), j.value && !H.value && X("outside");
175
+ return se(() => {
176
+ if (k) {
177
+ let e = D.value, t = O.value;
178
+ if (!e || !t) throw Error("SMenuSurface: native surface/content are unavailable after mounting");
179
+ A = k.register({
180
+ surface: e,
181
+ content: t,
182
+ revealFocusedItem: $
183
+ });
184
+ }
185
+ w.autofocus && h(w.initialFocus === "last" ? q : K);
186
+ }), ue(() => [w.label, w.items], () => {
187
+ be(), M.value && !V.value && Y("outside");
167
188
  }, {
168
189
  immediate: !0,
169
190
  deep: !0
170
- }), ae(() => {
171
- W && clearTimeout(W);
172
- }), w({
173
- focusFirst: q,
174
- focusLast: J
191
+ }), oe(() => {
192
+ A?.(), A = null, U && clearTimeout(U);
193
+ }), C({
194
+ focusFirst: K,
195
+ focusLast: q
175
196
  }), (e, t) => {
176
- let n = se("SMenuSurface", !0);
177
- return g(), d("div", m({
197
+ let n = ce("SMenuSurface", !0);
198
+ return g(), d("div", ae({
178
199
  ref_key: "surfaceRef",
179
- ref: k
180
- }, b(fe).bindings(), {
200
+ ref: D
201
+ }, x(he).bindings(), {
181
202
  class: "s-menu-surface",
182
203
  "data-density": p.density,
183
204
  "data-orientation": p.orientation,
184
- "data-menu-depth": O,
205
+ "data-menu-depth": E,
185
206
  role: "menu",
186
207
  "aria-label": p.label,
187
208
  "aria-orientation": p.orientation,
188
- onKeydown: _e,
189
- onFocusout: ve
190
- }), [(g(!0), d(c, null, y(p.items, (e) => (g(), d(c, { key: e.id }, [e.kind === "separator" ? (g(), u(ee, {
209
+ onKeydown: we,
210
+ onFocusout: Te
211
+ }), [f("div", {
212
+ ref_key: "contentRef",
213
+ ref: O,
214
+ class: "s-menu-surface__content"
215
+ }, [(g(!0), d(s, null, y(p.items, (e) => (g(), d(s, { key: e.id }, [e.kind === "separator" ? (g(), l(te, {
191
216
  key: 0,
192
217
  "entry-id": e.id
193
218
  }, null, 8, ["entry-id"])) : e.kind === "group" ? (g(), d("div", {
@@ -196,54 +221,58 @@ var C = [
196
221
  role: "group",
197
222
  "aria-label": e.label,
198
223
  "data-menu-group-id": e.id
199
- }, [f("div", de, ce(e.label), 1), (g(!0), d(c, null, y(e.children, (e) => (g(), u(o, {
224
+ }, [f("div", S, b(e.label), 1), (g(!0), d(s, null, y(e.children, (e) => (g(), l(o, {
200
225
  key: e.id,
201
226
  entry: e,
202
- "submenu-open": H.value?.id === e.id,
203
- onSelect: (t) => Q(e, t),
204
- onOpenSubmenu: (t) => Y(e.id, !0),
205
- onPointerIntent: (t) => Z(e)
227
+ "submenu-open": V.value?.id === e.id,
228
+ onSelect: (t) => Z(e, t),
229
+ onOpenSubmenu: (t) => J(e.id, !0),
230
+ onPointerIntent: (t) => X(e)
206
231
  }, null, 8, [
207
232
  "entry",
208
233
  "submenu-open",
209
234
  "onSelect",
210
235
  "onOpenSubmenu",
211
236
  "onPointerIntent"
212
- ]))), 128))], 8, ue)) : (g(), u(o, {
237
+ ]))), 128))], 8, pe)) : (g(), l(o, {
213
238
  key: 2,
214
239
  entry: e,
215
- "submenu-open": H.value?.id === e.id,
216
- onSelect: (t) => Q(e, t),
217
- onOpenSubmenu: (t) => Y(e.id, !0),
218
- onPointerIntent: (t) => Z(e)
240
+ "submenu-open": V.value?.id === e.id,
241
+ onSelect: (t) => Z(e, t),
242
+ onOpenSubmenu: (t) => J(e.id, !0),
243
+ onPointerIntent: (t) => X(e)
219
244
  }, null, 8, [
220
245
  "entry",
221
246
  "submenu-open",
222
247
  "onSelect",
223
248
  "onOpenSubmenu",
224
249
  "onPointerIntent"
225
- ]))], 64))), 128)), (g(), u(te, { to: "body" }, [H.value ? (g(), u(r, {
250
+ ]))], 64))), 128))], 512), x(L) ? (g(), l(re, {
251
+ key: 0,
252
+ to: x(L)
253
+ }, [V.value ? (g(), l(ee, {
226
254
  key: 0,
227
255
  ref_key: "submenuLayerRef",
228
- ref: N,
256
+ ref: P,
229
257
  kind: "submenu",
230
- "landmark-label": `${p.label}: ${H.value.label}`,
231
- position: b(I),
232
- "z-index": b(L)
258
+ "landmark-label": `${p.label}: ${V.value.label}`,
259
+ position: x(ge),
260
+ "available-size": x(R),
261
+ "z-index": x(_e)
233
262
  }, {
234
- default: S(() => [re(n, {
263
+ default: de(() => [ie(n, {
235
264
  ref_key: "submenuSurfaceRef",
236
- ref: P,
237
- label: `${p.label}: ${H.value.label}`,
238
- items: H.value.children,
265
+ ref: F,
266
+ label: `${p.label}: ${V.value.label}`,
267
+ items: V.value.children,
239
268
  density: p.density,
240
269
  orientation: "vertical",
241
- autofocus: M.value,
242
- onEscape: t[0] ||= (e) => X("escape"),
243
- onSubmenuBack: t[1] ||= (e) => X("escape"),
244
- onDismissTree: t[2] ||= (e) => D("dismiss-tree"),
245
- onSelect: ge,
246
- onTab: t[3] ||= (e) => D("tab", e)
270
+ autofocus: N.value,
271
+ onEscape: t[0] ||= (e) => Y("escape"),
272
+ onSubmenuBack: t[1] ||= (e) => Y("escape"),
273
+ onDismissTree: t[2] ||= (e) => T("dismiss-tree"),
274
+ onSelect: Ce,
275
+ onTab: t[3] ||= (e) => T("tab", e)
247
276
  }, null, 8, [
248
277
  "label",
249
278
  "items",
@@ -254,10 +283,11 @@ var C = [
254
283
  }, 8, [
255
284
  "landmark-label",
256
285
  "position",
286
+ "available-size",
257
287
  "z-index"
258
- ])) : ne("", !0)]))], 16, C);
288
+ ])) : u("", !0)], 8, ["to"])) : u("", !0)], 16, fe);
259
289
  };
260
290
  }
261
291
  });
262
292
  //#endregion
263
- export { w as default };
293
+ export { C as default };
@@ -1,5 +1,5 @@
1
- import { mergeIdReferences as e, useOwnedAttrs as t } from "../../../internal/ownedAttrs.js";
2
- import { resolveOptionalDomId as n } from "../../../internal/runtimeContract.js";
1
+ import { resolveOptionalDomId as e } from "../../../internal/runtimeContract.js";
2
+ import { mergeIdReferences as t, useOwnedAttrs as n } from "../../../internal/ownedAttrs.js";
3
3
  import { useInteractiveLeafRegistration as r } from "../../../internal/passiveContentContract.js";
4
4
  import i from "./SField.vue.js";
5
5
  import { computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, mergeProps as d, openBlock as f, toDisplayString as p, unref as m, useId as h, withCtx as g } from "vue";
@@ -67,7 +67,7 @@ var _ = { class: "s-range" }, v = [
67
67
  let e = C("modelValue", x.modelValue);
68
68
  if (e < w.value || e > T.value) throw RangeError("SRange: modelValue должен находиться внутри [min, max] / must be within [min, max]");
69
69
  return e;
70
- }), O = h(), k = a(() => n("SRange", "id", x.id, `s-range-${O}`)), A = t({
70
+ }), O = h(), k = a(() => e("SRange", "id", x.id, `s-range-${O}`)), A = n({
71
71
  component: "SRange",
72
72
  owner: "native range input"
73
73
  });
@@ -82,7 +82,7 @@ var _ = { class: "s-range" }, v = [
82
82
  let n = Number(t.value);
83
83
  C("input value", n), S("update:modelValue", n);
84
84
  }
85
- return (t, n) => (f(), o(i, {
85
+ return (e, n) => (f(), o(i, {
86
86
  "control-id": k.value,
87
87
  label: u.label,
88
88
  disabled: u.disabled,
@@ -92,24 +92,24 @@ var _ = { class: "s-range" }, v = [
92
92
  "error-message": u.errorMessage,
93
93
  invalid: u.invalid
94
94
  }, {
95
- default: g((t) => [l("div", _, [l("input", d(m(A).bindings(), {
96
- id: t.controlId,
95
+ default: g((e) => [l("div", _, [l("input", d(m(A).bindings(), {
96
+ id: e.controlId,
97
97
  class: "s-range__input",
98
98
  type: "range",
99
99
  min: w.value,
100
100
  max: T.value,
101
101
  step: E.value,
102
102
  value: D.value,
103
- disabled: t.disabled,
104
- "aria-invalid": t.invalid || void 0,
105
- "aria-readonly": t.readonly || void 0,
106
- "aria-required": t.required || void 0,
107
- "aria-describedby": m(e)(m(A).string("aria-describedby"), t.describedBy),
103
+ disabled: e.disabled,
104
+ "aria-invalid": e.invalid || void 0,
105
+ "aria-readonly": e.readonly || void 0,
106
+ "aria-required": e.required || void 0,
107
+ "aria-describedby": m(t)(m(A).string("aria-describedby"), e.describedBy),
108
108
  onInput: j
109
109
  }), null, 16, v), u.showValue ? (f(), c("output", {
110
110
  key: 0,
111
111
  class: "s-range__value",
112
- for: t.controlId
112
+ for: e.controlId
113
113
  }, p(D.value), 9, y)) : s("", !0)])]),
114
114
  _: 1
115
115
  }, 8, [