@pgcorp/ui-kit 0.12.0 → 0.14.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 (334) hide show
  1. package/README.md +787 -19
  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_13b9b27a_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_0e58afdc_scoped_0e58afdc_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/SMenuItem.css_vue_type_style_index_0_src_af485607_scoped_af485607_lang.css +2 -0
  8. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css +1 -0
  9. package/dist/assets/src/components/shared/containers/{SCollapsiblePanel.css_vue_type_style_index_0_src_4882f962_scoped_4882f962_lang.css → SCollapsiblePanel.css_vue_type_style_index_0_src_71824088_scoped_71824088_lang.css} +1 -1
  10. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_61cf20dd_scoped_61cf20dd_lang.css +2 -0
  11. package/dist/assets/src/components/shared/containers/{SModal.css_vue_type_style_index_0_src_23373daf_scoped_23373daf_lang.css → SModal.css_vue_type_style_index_0_src_42e1bd5f_scoped_42e1bd5f_lang.css} +1 -1
  12. package/dist/assets/src/components/shared/containers/SOverlayHost.css_vue_type_style_index_0_src_8f9be94e_scoped_8f9be94e_lang.css +2 -0
  13. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_4091d007_scoped_4091d007_lang.css +2 -0
  14. 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
  15. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_21f71ae8_scoped_21f71ae8_lang.css +2 -0
  16. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +2 -0
  17. package/dist/assets/src/components/shared/controls/{SCheckbox.css_vue_type_style_index_0_src_b20b27dd_scoped_b20b27dd_lang.css → SCheckbox.css_vue_type_style_index_0_src_55d4826e_scoped_55d4826e_lang.css} +1 -1
  18. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_537f5744_scoped_537f5744_lang.css +2 -0
  19. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_03921269_scoped_03921269_lang.css +1 -0
  20. package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_b854a89e_scoped_b854a89e_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_857e2649_scoped_857e2649_lang.css} +1 -1
  21. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_2d353c26_scoped_2d353c26_lang.css +2 -0
  22. package/dist/assets/src/components/shared/controls/{SInputText.css_vue_type_style_index_0_src_a9c5f1aa_scoped_a9c5f1aa_lang.css → SInputText.css_vue_type_style_index_0_src_023c25d0_scoped_023c25d0_lang.css} +1 -1
  23. 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
  24. 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
  25. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_50063f9f_scoped_50063f9f_lang.css +2 -0
  26. 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
  27. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_84109ad9_scoped_84109ad9_lang.css +2 -0
  28. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_df3d6688_scoped_df3d6688_lang.css +2 -0
  29. package/dist/assets/src/components/shared/controls/STextarea.css_vue_type_style_index_0_src_true_lang.css +1 -1
  30. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_cad721dd_scoped_cad721dd_lang.css +2 -0
  31. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_8db085d5_scoped_8db085d5_lang.css +2 -0
  32. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +1 -1
  33. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_b23b3d71_scoped_b23b3d71_lang.css +2 -0
  34. package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
  35. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_9fe3ade0_scoped_9fe3ade0_lang.css +2 -0
  36. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_eaae882d_scoped_eaae882d_lang.css +2 -0
  37. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_1f0ffc97_scoped_1f0ffc97_lang.css +2 -0
  38. package/dist/assets/src/components/shared/data-display/_internal/SRichImage.css_vue_type_style_index_0_src_2f1c39a9_scoped_2f1c39a9_lang.css +2 -0
  39. 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
  40. package/dist/assets/src/components/shared/data-display/_internal/STableCell.css_vue_type_style_index_0_src_b829cbc6_scoped_b829cbc6_lang.css +2 -0
  41. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_52b5825e_scoped_52b5825e_lang.css +2 -0
  42. package/dist/assets/src/components/shared/data-display/_internal/STableRow.css_vue_type_style_index_0_src_1661f8b8_scoped_1661f8b8_lang.css +2 -0
  43. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_8a291af7_scoped_8a291af7_lang.css +2 -0
  44. 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_24be0f2b_lang.css} +1 -1
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.js +3 -3
  47. package/dist/reference.css +4 -0
  48. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +15 -0
  49. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +4 -4
  50. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +46 -1
  51. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +260 -230
  52. package/dist/src/components/icons/sputnigUiIcons.d.ts +1 -1
  53. package/dist/src/components/icons/sputnigUiIcons.js +233 -218
  54. package/dist/src/components/layout/SAppShell.vue_vue_type_script_setup_true_lang.js +8 -8
  55. package/dist/src/components/layout/SDockRegion.vue.d.ts +18 -5
  56. package/dist/src/components/layout/SDockRegion.vue.js +2 -2
  57. package/dist/src/components/layout/SDockRegion.vue_vue_type_script_setup_true_lang.js +112 -64
  58. package/dist/src/components/layout/SResizeHandle.vue.d.ts +6 -3
  59. package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
  60. package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +125 -87
  61. package/dist/src/components/layout/SStack.vue.d.ts +1 -1
  62. package/dist/src/components/layout/SWorkbenchPanelShell.vue.d.ts +4 -4
  63. package/dist/src/components/layout/SWorkbenchPanelShell.vue.js +2 -2
  64. package/dist/src/components/layout/SWorkbenchPanelShell.vue_vue_type_script_setup_true_lang.js +62 -58
  65. package/dist/src/components/layout/types.d.ts +20 -0
  66. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  67. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +64 -41
  68. package/dist/src/components/shared/_internal/SHeaderSurface.vue.d.ts +1 -1
  69. package/dist/src/components/shared/_internal/SListboxGroup.vue.d.ts +5 -0
  70. package/dist/src/components/shared/_internal/SListboxGroup.vue.js +2 -2
  71. package/dist/src/components/shared/_internal/SListboxGroup.vue_vue_type_script_setup_true_lang.js +33 -15
  72. package/dist/src/components/shared/_internal/SMenuItem.vue.js +2 -2
  73. package/dist/src/components/shared/_internal/SMenuItem.vue_vue_type_script_setup_true_lang.js +88 -76
  74. package/dist/src/components/shared/_internal/SMenuLayer.vue.d.ts +5 -1
  75. package/dist/src/components/shared/_internal/SMenuLayer.vue.js +2 -2
  76. package/dist/src/components/shared/_internal/SMenuLayer.vue_vue_type_script_setup_true_lang.js +64 -20
  77. package/dist/src/components/shared/_internal/dialogSurface.d.ts +16 -3
  78. package/dist/src/components/shared/_internal/dialogSurface.js +40 -23
  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 +1 -1
  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 +60 -58
  93. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +12 -1
  94. package/dist/src/components/shared/containers/SDrawer.vue.js +2 -2
  95. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +151 -53
  96. package/dist/src/components/shared/containers/SModal.vue.js +2 -2
  97. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +79 -49
  98. package/dist/src/components/shared/containers/SOverlayHost.vue.d.ts +16 -0
  99. package/dist/src/components/shared/containers/SOverlayHost.vue.js +8 -0
  100. package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +65 -0
  101. package/dist/src/components/shared/containers/SPageHeader.vue.d.ts +1 -1
  102. package/dist/src/components/shared/containers/SPanel.vue.d.ts +1 -1
  103. package/dist/src/components/shared/containers/SPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  104. package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
  105. package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +214 -145
  106. package/dist/src/components/shared/containers/SSidebarGroup.vue.js +2 -2
  107. package/dist/src/components/shared/containers/SSidebarGroup.vue_vue_type_script_setup_true_lang.js +30 -8
  108. package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
  109. package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +58 -45
  110. package/dist/src/components/shared/controls/SButton.vue.d.ts +7 -0
  111. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  112. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +11 -5
  113. package/dist/src/components/shared/controls/SCheckbox.vue.d.ts +3 -0
  114. package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
  115. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +45 -41
  116. package/dist/src/components/shared/controls/SCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -7
  117. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +4 -4
  118. package/dist/src/components/shared/controls/SColorSelect.vue_vue_type_script_setup_true_lang.js +6 -6
  119. package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
  120. package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +147 -132
  121. package/dist/src/components/shared/controls/SComboboxTrigger.vue.d.ts +2 -2
  122. package/dist/src/components/shared/controls/SContextMenu.vue.d.ts +11 -0
  123. package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
  124. package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +144 -59
  125. package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +6 -6
  126. package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +5 -5
  127. package/dist/src/components/shared/controls/SDropdownMenu.vue.d.ts +15 -4
  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 +114 -71
  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.d.ts +2 -2
  136. package/dist/src/components/shared/controls/SInputText.vue.js +2 -2
  137. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +33 -42
  138. package/dist/src/components/shared/controls/SInteractiveSurface.vue.js +2 -2
  139. package/dist/src/components/shared/controls/SInteractiveSurface.vue_vue_type_script_setup_true_lang.js +99 -74
  140. package/dist/src/components/shared/controls/SLink.d.ts +11 -1
  141. package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
  142. package/dist/src/components/shared/controls/SLink.vue.js +2 -2
  143. package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +157 -62
  144. package/dist/src/components/shared/controls/SListbox.vue.d.ts +10 -1
  145. package/dist/src/components/shared/controls/SListbox.vue.js +2 -2
  146. package/dist/src/components/shared/controls/SListbox.vue_vue_type_script_setup_true_lang.js +371 -189
  147. package/dist/src/components/shared/controls/SListboxOption.vue.d.ts +6 -0
  148. package/dist/src/components/shared/controls/SListboxOption.vue.js +2 -2
  149. package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +47 -34
  150. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  151. package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
  152. package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +165 -117
  153. package/dist/src/components/shared/controls/SRange.vue_vue_type_script_setup_true_lang.js +12 -12
  154. package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
  155. package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +126 -116
  156. package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
  157. package/dist/src/components/shared/controls/STextarea.vue.d.ts +32 -2
  158. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +346 -200
  159. package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +36 -36
  160. package/dist/src/components/shared/controls/menu.d.ts +9 -1
  161. package/dist/src/components/shared/controls/menu.js +43 -28
  162. package/dist/src/components/shared/data-display/SActionList.vue.d.ts +1 -1
  163. package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +4 -4
  164. package/dist/src/components/shared/data-display/SActionListItem.vue_vue_type_script_setup_true_lang.js +6 -6
  165. package/dist/src/components/shared/data-display/SBadge.vue.d.ts +1 -1
  166. package/dist/src/components/shared/data-display/SChart.vue_vue_type_script_setup_true_lang.js +89 -89
  167. package/dist/src/components/shared/data-display/SChip.vue.d.ts +1 -1
  168. package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +7 -7
  169. package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +19 -19
  170. package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +37 -37
  171. package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +17 -17
  172. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +12 -12
  173. package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +4 -4
  174. package/dist/src/components/shared/data-display/SDiffViewer.vue_vue_type_script_setup_true_lang.js +13 -13
  175. package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +12 -12
  176. package/dist/src/components/shared/data-display/SEmptyState.vue.d.ts +1 -1
  177. package/dist/src/components/shared/data-display/SEmptyState.vue_vue_type_script_setup_true_lang.js +4 -4
  178. package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +7 -7
  179. package/dist/src/components/shared/data-display/SKeyValueGrid.vue_vue_type_script_setup_true_lang.js +15 -15
  180. package/dist/src/components/shared/data-display/SLinkedSystemsList.vue_vue_type_script_setup_true_lang.js +17 -17
  181. package/dist/src/components/shared/data-display/SMessage.vue.d.ts +1 -1
  182. package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +9 -9
  183. package/dist/src/components/shared/data-display/SMetricCard.vue.d.ts +1 -1
  184. package/dist/src/components/shared/data-display/SProgressBar.vue.d.ts +22 -3
  185. package/dist/src/components/shared/data-display/SProgressBar.vue.js +2 -2
  186. package/dist/src/components/shared/data-display/SProgressBar.vue_vue_type_script_setup_true_lang.js +133 -47
  187. package/dist/src/components/shared/data-display/SProgressIndicator.vue_vue_type_script_setup_true_lang.js +4 -4
  188. package/dist/src/components/shared/data-display/SRichDocument.vue.js +2 -2
  189. package/dist/src/components/shared/data-display/SRichDocument.vue_vue_type_script_setup_true_lang.js +46 -23
  190. package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +18 -18
  191. package/dist/src/components/shared/data-display/SSectionHeader.vue.d.ts +1 -1
  192. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +4 -4
  193. package/dist/src/components/shared/data-display/STable.vue.js +2 -2
  194. package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +343 -322
  195. package/dist/src/components/shared/data-display/STooltip.vue.d.ts +2 -2
  196. package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +181 -154
  197. package/dist/src/components/shared/data-display/STooltipAnchor.vue_vue_type_script_setup_true_lang.js +5 -5
  198. package/dist/src/components/shared/data-display/STooltipTarget.vue_vue_type_script_setup_true_lang.js +4 -4
  199. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  200. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +196 -246
  201. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
  202. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +242 -220
  203. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.d.ts +13 -2
  204. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.js +2 -2
  205. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue_vue_type_script_setup_true_lang.js +67 -11
  206. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.d.ts +11 -0
  207. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.js +8 -0
  208. package/dist/src/components/shared/data-display/_internal/SRichImage.vue_vue_type_script_setup_true_lang.js +89 -0
  209. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.d.ts +3 -2
  210. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.js +2 -2
  211. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue_vue_type_script_setup_true_lang.js +179 -125
  212. package/dist/src/components/shared/data-display/_internal/SRichMath.vue_vue_type_script_setup_true_lang.js +4 -4
  213. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.d.ts +21 -0
  214. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.js +5 -0
  215. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue_vue_type_script_setup_true_lang.js +150 -0
  216. package/dist/src/components/shared/data-display/_internal/STableCell.vue.d.ts +52 -0
  217. package/dist/src/components/shared/data-display/_internal/STableCell.vue.js +8 -0
  218. package/dist/src/components/shared/data-display/_internal/STableCell.vue_vue_type_script_setup_true_lang.js +148 -0
  219. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +42 -0
  220. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +8 -0
  221. package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +98 -0
  222. package/dist/src/components/shared/data-display/_internal/STableRow.vue.d.ts +43 -0
  223. package/dist/src/components/shared/data-display/_internal/STableRow.vue.js +8 -0
  224. package/dist/src/components/shared/data-display/_internal/STableRow.vue_vue_type_script_setup_true_lang.js +115 -0
  225. package/dist/src/components/shared/data-display/_internal/STableSection.vue.d.ts +28 -0
  226. package/dist/src/components/shared/data-display/_internal/STableSection.vue.js +5 -0
  227. package/dist/src/components/shared/data-display/_internal/STableSection.vue_vue_type_script_setup_true_lang.js +77 -0
  228. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.d.ts +6 -0
  229. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.js +136 -0
  230. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.d.ts +21 -0
  231. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.js +39 -0
  232. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.d.ts +30 -0
  233. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.js +88 -0
  234. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.d.ts +9 -0
  235. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.js +240 -0
  236. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.d.ts +15 -0
  237. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.js +61 -0
  238. package/dist/src/components/shared/data-display/_internal/richDocumentTypes.d.ts +466 -0
  239. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.d.ts +65 -0
  240. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.js +192 -0
  241. package/dist/src/components/shared/data-display/_internal/tableFoundation.d.ts +27 -0
  242. package/dist/src/components/shared/data-display/_internal/tableFoundation.js +16 -0
  243. package/dist/src/components/shared/data-display/richDocument.d.ts +3 -220
  244. package/dist/src/components/shared/data-display/richDocument.js +607 -399
  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 +138 -129
  253. package/dist/src/components/shared/navigation/SBreadcrumbs.vue.d.ts +2 -2
  254. package/dist/src/components/shared/navigation/STabPanel.vue.d.ts +2 -2
  255. package/dist/src/components/shared/navigation/SWizardSteps.vue_vue_type_script_setup_true_lang.js +16 -16
  256. package/dist/src/components/shared/persona/SPersonaProjectPicker.vue.d.ts +2 -2
  257. package/dist/src/composables/useDialogOverlay.d.ts +12 -2
  258. package/dist/src/composables/useDialogOverlay.js +202 -41
  259. package/dist/src/composables/useFloatingPosition.d.ts +20 -0
  260. package/dist/src/composables/useFloatingPosition.js +129 -52
  261. package/dist/src/internal/fieldSurface.d.ts +3 -0
  262. package/dist/src/internal/fieldSurface.js +3 -2
  263. package/dist/src/internal/focusNavigation.d.ts +2 -0
  264. package/dist/src/internal/focusNavigation.js +9 -9
  265. package/dist/src/internal/layerStack.d.ts +12 -0
  266. package/dist/src/internal/layerStack.js +138 -62
  267. package/dist/src/internal/linkTarget.d.ts +7 -1
  268. package/dist/src/internal/linkTarget.js +11 -7
  269. package/dist/src/internal/overlayHost.d.ts +18 -0
  270. package/dist/src/internal/overlayHost.js +18 -0
  271. package/dist/src/internal/ownedAttrs.d.ts +13 -3
  272. package/dist/src/internal/ownedAttrs.js +8 -1
  273. package/dist/src/internal/runtimeContract.d.ts +2 -0
  274. package/dist/src/internal/runtimeContract.js +10 -5
  275. package/dist/src/internal/textLengthConstraints.d.ts +9 -0
  276. package/dist/src/internal/textLengthConstraints.js +18 -0
  277. package/dist/src/internal/useMenuLayer.d.ts +8 -4
  278. package/dist/src/internal/useMenuLayer.js +75 -46
  279. package/dist/tailwind.css +3 -0
  280. package/dist/typography.LICENSE.txt +94 -0
  281. package/dist/typography.js +5150 -0
  282. package/docs/getting-started.md +39 -0
  283. package/docs/link-download.md +114 -0
  284. package/docs/listbox.md +129 -0
  285. package/docs/public-api.md +208 -4
  286. package/docs/resize.md +129 -0
  287. package/docs/rich-document.md +442 -25
  288. package/package.json +12 -4
  289. package/src/components/shared/_internal/SDialogSurface.css +43 -7
  290. package/src/components/shared/_internal/SMenuItem.css +22 -1
  291. package/src/components/shared/_internal/SMenuLayer.css +4 -0
  292. package/src/components/shared/containers/SDrawer.css +20 -2
  293. package/src/components/shared/containers/SOverlayHost.css +14 -0
  294. package/src/components/shared/containers/SPopover.css +8 -2
  295. package/src/components/shared/controls/SButton.css +4 -0
  296. package/src/components/shared/controls/SField.css +6 -0
  297. package/src/components/shared/controls/SListbox.css +17 -0
  298. package/src/components/shared/controls/SMenuSurface.css +38 -4
  299. package/src/components/shared/controls/STextarea.css +42 -3
  300. package/src/components/shared/data-display/SProgressBar.css +79 -0
  301. package/src/components/shared/data-display/SRichDocument.css +1 -0
  302. package/src/components/shared/data-display/SStatus.css +8 -25
  303. package/src/components/shared/data-display/STable.css +0 -113
  304. package/src/components/shared/data-display/STooltip.css +4 -1
  305. package/src/components/shared/data-display/_internal/SRichBlockNode.css +11 -7
  306. package/src/components/shared/data-display/_internal/SRichDisclosure.css +16 -0
  307. package/src/components/shared/data-display/_internal/SRichImage.css +37 -0
  308. package/src/components/shared/data-display/_internal/STableCell.css +55 -0
  309. package/src/components/shared/data-display/_internal/STableFrame.css +41 -0
  310. package/src/components/shared/data-display/_internal/STableRow.css +12 -0
  311. package/src/components/shared/feedback/SAsyncState.css +0 -4
  312. package/src/styles/style.css +9 -5
  313. package/src/styles/tokens.css +30 -0
  314. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_2932631d_lang.css +0 -1
  315. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css +0 -2
  316. package/dist/assets/src/components/shared/_internal/SMenuItem.css_vue_type_style_index_0_src_e5bd192e_scoped_e5bd192e_lang.css +0 -2
  317. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css +0 -1
  318. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +0 -2
  319. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_deded766_scoped_deded766_lang.css +0 -2
  320. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_96f51ac6_scoped_96f51ac6_lang.css +0 -2
  321. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +0 -2
  322. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_e3b4f580_scoped_e3b4f580_lang.css +0 -2
  323. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_00c91d39_scoped_00c91d39_lang.css +0 -1
  324. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_60628f96_scoped_60628f96_lang.css +0 -2
  325. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_24db4abb_scoped_24db4abb_lang.css +0 -2
  326. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_bc7c7be4_scoped_bc7c7be4_lang.css +0 -2
  327. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_441648c9_scoped_441648c9_lang.css +0 -2
  328. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_9308293a_scoped_9308293a_lang.css +0 -2
  329. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_d1afafc5_scoped_d1afafc5_lang.css +0 -2
  330. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_9955d482_scoped_9955d482_lang.css +0 -2
  331. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +0 -2
  332. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +0 -2
  333. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_fa94e2ff_scoped_fa94e2ff_lang.css +0 -2
  334. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_bfc28903_scoped_bfc28903_lang.css +0 -2
@@ -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_bc7c7be4_scoped_bc7c7be4_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_84109ad9_scoped_84109ad9_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-bc7c7be4"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-84109ad9"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -1,19 +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";
6
- import ee from "../_internal/SMenuItem.vue.js";
7
- import o from "../_internal/SMenuSeparator.vue.js";
8
- import { validateSMenuEntries as s } from "./menu.js";
9
- import { Fragment as c, Teleport as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createVNode as m, defineComponent as h, inject as g, mergeProps as _, nextTick as v, onBeforeUnmount as y, onMounted as b, openBlock as x, provide as S, ref as C, renderList as te, resolveComponent as ne, toRef as re, unref as w, watch as ie, withCtx as T } from "vue";
4
+ import { menuContextKey as r, menuDepthKey as i, menuViewportKey as a } from "../_internal/menuContext.js";
5
+ import ee from "../_internal/SMenuLayer.vue.js";
6
+ import o from "../_internal/SMenuItem.vue.js";
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 ie, createElementBlock as u, createElementVNode as d, createVNode as ae, defineComponent as f, inject as p, mergeProps as oe, nextTick as m, onBeforeUnmount as se, onMounted as ce, openBlock as h, provide as g, ref as _, renderList as v, resolveComponent as le, toDisplayString as ue, toRef as de, unref as y, watch as fe, withCtx as b } from "vue";
10
10
  //#region src/components/shared/controls/SMenuSurface.vue?vue&type=script&setup=true&lang.ts
11
- var E = [
11
+ var x = [
12
12
  "data-density",
13
13
  "data-orientation",
14
14
  "aria-label",
15
15
  "aria-orientation"
16
- ], D = /*@__PURE__*/ h({
16
+ ], S = ["aria-label", "data-menu-group-id"], pe = {
17
+ class: "s-menu-group__label",
18
+ "aria-hidden": "true"
19
+ }, C = /*@__PURE__*/ f({
17
20
  inheritAttrs: !1,
18
21
  __name: "SMenuSurface",
19
22
  props: {
@@ -35,193 +38,237 @@ var E = [
35
38
  "submenu-back",
36
39
  "dismiss-tree"
37
40
  ],
38
- setup(h, { expose: D, emit: O }) {
39
- let k = h, A = O, j = e({
41
+ setup(f, { expose: C, emit: me }) {
42
+ let w = f, T = me, he = e({
40
43
  component: "SMenuSurface",
41
44
  owner: "menu root"
42
45
  });
43
46
  t({ owner: "SMenuSurface" });
44
- let M = g(a, -1) + 1;
45
- S(a, M);
46
- let N = C(null), P = /* @__PURE__ */ new Map();
47
- S(i, {
48
- density: re(k, "density"),
47
+ let E = p(i, -1) + 1;
48
+ g(i, E);
49
+ let D = _(null), O = _(null), k = p(a, null), A = null, j = /* @__PURE__ */ new Map();
50
+ g(r, {
51
+ density: de(w, "density"),
49
52
  register: (e) => {
50
- if (P.has(e.entryId)) throw Error(`SMenuSurface: duplicate mounted entry id '${e.entryId}'`);
51
- return P.set(e.entryId, e), () => P.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);
52
55
  }
53
56
  });
54
- let F = C(null), I = C(!0), L = C(null), R = C(null), z = u(() => L.value?.getElement() ?? null), { position: B, zIndex: V, open: H, close: U } = n(z, { onDismiss: (e) => {
55
- F.value = null, e === "outside" && A("dismiss-tree");
56
- } }), W = u(() => {
57
- let e = k.items.find((e) => e.id === F.value);
57
+ let M = _(null), N = _(!0), P = _(null), F = _(null), I = c(() => P.value?.getElement() ?? null), { position: L, availableSize: ge, zIndex: _e, open: ve, close: R } = 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]), z = (e) => ye(w.items).find((t) => t.id === e), B = c(() => {
65
+ let e = M.value ? z(M.value) : void 0;
58
66
  return e?.kind === "submenu" ? e : null;
59
- }), G = "", K = null, q = () => [...P.values()].filter((e) => e.element().isConnected).sort((e, t) => {
67
+ }), V = "", H = null, U = () => [...j.values()].filter((e) => e.element().isConnected).sort((e, t) => {
60
68
  let n = e.element().compareDocumentPosition(t.element());
61
69
  return n & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : n & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
62
- }), J = (e, t) => {
70
+ }), W = (e, t) => {
63
71
  for (let t of e) t.setTabStop(!1);
64
72
  let n = e[t];
65
- n && (n.setTabStop(!0), n.focus());
66
- }, Y = () => {
67
- let e = q();
68
- e.length > 0 && J(e, 0);
69
- }, X = () => {
70
- let e = q();
71
- e.length > 0 && J(e, e.length - 1);
72
- }, ae = () => {
73
- if (typeof k.label != "string" || !k.label.trim()) throw TypeError("SMenuSurface: label must be a non-empty string");
74
- s(k.items);
75
- }, oe = (e) => {
76
- let t = q();
73
+ n && (n.setTabStop(!0), n.focus(), $());
74
+ }, G = () => {
75
+ let e = U();
76
+ e.length > 0 && W(e, 0);
77
+ }, K = () => {
78
+ let e = U();
79
+ e.length > 0 && W(e, e.length - 1);
80
+ }, q = () => {
81
+ if (typeof w.label != "string" || !w.label.trim()) throw TypeError("SMenuSurface: label must be a non-empty string");
82
+ ne(w.items);
83
+ }, be = (e) => {
84
+ let t = U();
77
85
  if (t.length === 0) return;
78
86
  let n = t.findIndex((e) => e.isFocused());
79
- J(t, ((n < 0 ? e === 1 ? -1 : 0 : n) + e + t.length) % t.length);
80
- }, se = (e) => {
87
+ W(t, ((n < 0 ? e === 1 ? -1 : 0 : n) + e + t.length) % t.length);
88
+ }, xe = (e) => {
81
89
  let t = e.toLocaleLowerCase();
82
- G += t, K && clearTimeout(K), K = setTimeout(() => {
83
- G = "", K = null;
90
+ V += t, H && clearTimeout(H), H = setTimeout(() => {
91
+ V = "", H = null;
84
92
  }, 500);
85
- let n = [...G].every((e) => e === t) ? t : G, r = q();
93
+ let n = [...V].every((e) => e === t) ? t : V, r = U();
86
94
  if (r.length === 0) return;
87
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));
88
- a && J(r, r.indexOf(a));
96
+ a && W(r, r.indexOf(a));
89
97
  };
90
- async function Z(e, t) {
91
- let n = k.items.find((t) => t.id === e), r = P.get(e);
98
+ async function J(e, t) {
99
+ let n = z(e), r = j.get(e);
92
100
  if (n?.kind === "submenu" && !n.disabled && r) {
93
- if (F.value === e) {
94
- t && await v(() => R.value?.focusFirst());
101
+ if (M.value === e) {
102
+ t && await m(() => F.value?.focusFirst());
95
103
  return;
96
104
  }
97
- F.value && U("outside"), I.value = t, F.value = e, await H({
105
+ M.value && R("outside"), N.value = t, M.value = e, await ve({
98
106
  type: "element",
99
107
  element: r.element(),
100
108
  align: "left",
101
109
  placement: "inline"
102
- }, r.element()), t && await v(() => R.value?.focusFirst());
110
+ }, r.element()), t && await m(() => F.value?.focusFirst());
103
111
  }
104
112
  }
105
- function Q(e) {
106
- F.value &&= (U(e), null);
113
+ function Y(e) {
114
+ M.value &&= (R(e), null);
115
+ }
116
+ function X(e) {
117
+ e.kind === "submenu" && !e.disabled ? J(e.id, !1) : M.value && Y("outside");
107
118
  }
108
- function ce(e) {
109
- e.kind === "submenu" && !e.disabled ? Z(e.id, !1) : F.value && Q("outside");
119
+ function Z(e, t) {
120
+ e.kind === "submenu" || e.disabled || T("select", e, t);
110
121
  }
111
- function le(e, t) {
112
- e.kind === "submenu" || e.disabled || A("select", e, t);
122
+ function Se(e, t) {
123
+ T("select", e, t);
113
124
  }
114
- function ue(e, t) {
115
- A("select", e, t);
125
+ function Q() {
126
+ return U().find((e) => e.isFocused());
116
127
  }
117
128
  function $() {
118
- return q().find((e) => e.isFocused());
129
+ let e = D.value, t = Q();
130
+ if (!e || !t || e.clientHeight === 0 || e.clientWidth === 0) return;
131
+ let n = e.getBoundingClientRect(), r = t.element().getBoundingClientRect();
132
+ 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);
119
133
  }
120
- let de = (e) => {
134
+ let Ce = (e) => {
121
135
  let t = e.target;
122
- if (e.currentTarget !== t && !q().some((e) => e.ownsEventTarget(t))) return;
136
+ if (e.currentTarget !== t && !U().some((e) => e.ownsEventTarget(t))) return;
123
137
  if (e.key === "Tab") {
124
- A("tab", e);
138
+ T("tab", e);
125
139
  return;
126
140
  }
127
141
  if (e.key === "Escape") {
128
- e.preventDefault(), A("escape");
142
+ e.preventDefault(), T("escape");
129
143
  return;
130
144
  }
131
- let n = k.orientation === "horizontal" ? "ArrowRight" : "ArrowDown", r = k.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
132
- if (k.orientation === "vertical" && (e.key === "ArrowRight" || e.key === "ArrowLeft")) {
133
- let t = $();
134
- e.preventDefault(), e.key === "ArrowRight" && t?.hasSubmenu() ? Z(t.entryId, !0) : e.key === "ArrowLeft" && M > 0 && A("submenu-back");
145
+ let n = w.orientation === "horizontal" ? "ArrowRight" : "ArrowDown", r = w.orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
146
+ if (w.orientation === "vertical" && (e.key === "ArrowRight" || e.key === "ArrowLeft")) {
147
+ let t = Q();
148
+ e.preventDefault(), e.key === "ArrowRight" && t?.hasSubmenu() ? J(t.entryId, !0) : e.key === "ArrowLeft" && E > 0 && T("submenu-back");
135
149
  return;
136
150
  }
137
151
  if (e.key === n || e.key === r) {
138
- e.preventDefault(), oe(e.key === n ? 1 : -1);
152
+ e.preventDefault(), be(e.key === n ? 1 : -1);
139
153
  return;
140
154
  }
141
- if (k.orientation === "horizontal" && e.key === "ArrowDown") {
142
- let t = $();
143
- t?.hasSubmenu() && (e.preventDefault(), Z(t.entryId, !0));
155
+ if (w.orientation === "horizontal" && e.key === "ArrowDown") {
156
+ let t = Q();
157
+ t?.hasSubmenu() && (e.preventDefault(), J(t.entryId, !0));
144
158
  return;
145
159
  }
146
160
  if (e.key === "Home" || e.key === "End") {
147
- e.preventDefault(), e.key === "Home" ? Y() : X();
161
+ e.preventDefault(), e.key === "Home" ? G() : K();
148
162
  return;
149
163
  }
150
164
  if (e.key === "Enter" || e.key === " ") {
151
- let t = $();
165
+ let t = Q();
152
166
  t && t.activate(e);
153
167
  return;
154
168
  }
155
- e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey && se(e.key);
156
- }, fe = (e) => {
169
+ e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey && xe(e.key);
170
+ }, we = (e) => {
157
171
  let t = e.relatedTarget;
158
- t instanceof Node && (N.value?.contains(t) || z.value?.contains(t)) || A("focus-exit", e);
172
+ t instanceof Node && (D.value?.contains(t) || I.value?.contains(t)) || T("focus-exit", e);
159
173
  };
160
- return b(() => {
161
- k.autofocus && v(k.initialFocus === "last" ? X : Y);
162
- }), ie(() => [k.label, k.items], () => {
163
- ae(), F.value && !W.value && Q("outside");
174
+ return ce(() => {
175
+ if (k) {
176
+ let e = D.value, t = O.value;
177
+ if (!e || !t) throw Error("SMenuSurface: native surface/content are unavailable after mounting");
178
+ A = k.register({
179
+ surface: e,
180
+ content: t,
181
+ revealFocusedItem: $
182
+ });
183
+ }
184
+ w.autofocus && m(w.initialFocus === "last" ? K : G);
185
+ }), fe(() => [w.label, w.items], () => {
186
+ q(), M.value && !B.value && Y("outside");
164
187
  }, {
165
188
  immediate: !0,
166
189
  deep: !0
167
- }), y(() => {
168
- K && clearTimeout(K);
169
- }), D({
170
- focusFirst: Y,
171
- focusLast: X
190
+ }), se(() => {
191
+ A?.(), A = null, H && clearTimeout(H);
192
+ }), C({
193
+ focusFirst: G,
194
+ focusLast: K
172
195
  }), (e, t) => {
173
- let n = ne("SMenuSurface", !0);
174
- return x(), p("div", _({
196
+ let n = le("SMenuSurface", !0);
197
+ return h(), u("div", oe({
175
198
  ref_key: "surfaceRef",
176
- ref: N
177
- }, w(j).bindings(), {
199
+ ref: D
200
+ }, y(he).bindings(), {
178
201
  class: "s-menu-surface",
179
- "data-density": h.density,
180
- "data-orientation": h.orientation,
181
- "data-menu-depth": M,
202
+ "data-density": f.density,
203
+ "data-orientation": f.orientation,
204
+ "data-menu-depth": E,
182
205
  role: "menu",
183
- "aria-label": h.label,
184
- "aria-orientation": h.orientation,
185
- onKeydown: de,
186
- onFocusout: fe
187
- }), [(x(!0), p(c, null, te(h.items, (e) => (x(), p(c, { key: e.id }, [e.kind === "separator" ? (x(), d(o, {
206
+ "aria-label": f.label,
207
+ "aria-orientation": f.orientation,
208
+ onKeydown: Ce,
209
+ onFocusout: we
210
+ }), [d("div", {
211
+ ref_key: "contentRef",
212
+ ref: O,
213
+ class: "s-menu-surface__content"
214
+ }, [(h(!0), u(s, null, v(f.items, (e) => (h(), u(s, { key: e.id }, [e.kind === "separator" ? (h(), l(te, {
188
215
  key: 0,
189
216
  "entry-id": e.id
190
- }, null, 8, ["entry-id"])) : (x(), d(ee, {
217
+ }, null, 8, ["entry-id"])) : e.kind === "group" ? (h(), u("div", {
191
218
  key: 1,
219
+ class: "s-menu-group",
220
+ role: "group",
221
+ "aria-label": e.label,
222
+ "data-menu-group-id": e.id
223
+ }, [d("div", pe, ue(e.label), 1), (h(!0), u(s, null, v(e.children, (e) => (h(), l(o, {
224
+ key: e.id,
225
+ entry: e,
226
+ "submenu-open": B.value?.id === e.id,
227
+ onSelect: (t) => Z(e, t),
228
+ onOpenSubmenu: (t) => J(e.id, !0),
229
+ onPointerIntent: (t) => X(e)
230
+ }, null, 8, [
231
+ "entry",
232
+ "submenu-open",
233
+ "onSelect",
234
+ "onOpenSubmenu",
235
+ "onPointerIntent"
236
+ ]))), 128))], 8, S)) : (h(), l(o, {
237
+ key: 2,
192
238
  entry: e,
193
- "submenu-open": W.value?.id === e.id,
194
- onSelect: (t) => le(e, t),
195
- onOpenSubmenu: (t) => Z(e.id, !0),
196
- onPointerIntent: (t) => ce(e)
239
+ "submenu-open": B.value?.id === e.id,
240
+ onSelect: (t) => Z(e, t),
241
+ onOpenSubmenu: (t) => J(e.id, !0),
242
+ onPointerIntent: (t) => X(e)
197
243
  }, null, 8, [
198
244
  "entry",
199
245
  "submenu-open",
200
246
  "onSelect",
201
247
  "onOpenSubmenu",
202
248
  "onPointerIntent"
203
- ]))], 64))), 128)), (x(), d(l, { to: "body" }, [W.value ? (x(), d(r, {
249
+ ]))], 64))), 128))], 512), (h(), l(re, { to: "body" }, [B.value ? (h(), l(ee, {
204
250
  key: 0,
205
251
  ref_key: "submenuLayerRef",
206
- ref: L,
252
+ ref: P,
207
253
  kind: "submenu",
208
- "landmark-label": `${h.label}: ${W.value.label}`,
209
- position: w(B),
210
- "z-index": w(V)
254
+ "landmark-label": `${f.label}: ${B.value.label}`,
255
+ position: y(L),
256
+ "available-size": y(ge),
257
+ "z-index": y(_e)
211
258
  }, {
212
- default: T(() => [m(n, {
259
+ default: b(() => [ae(n, {
213
260
  ref_key: "submenuSurfaceRef",
214
- ref: R,
215
- label: `${h.label}: ${W.value.label}`,
216
- items: W.value.children,
217
- density: h.density,
261
+ ref: F,
262
+ label: `${f.label}: ${B.value.label}`,
263
+ items: B.value.children,
264
+ density: f.density,
218
265
  orientation: "vertical",
219
- autofocus: I.value,
220
- onEscape: t[0] ||= (e) => Q("escape"),
221
- onSubmenuBack: t[1] ||= (e) => Q("escape"),
222
- onDismissTree: t[2] ||= (e) => A("dismiss-tree"),
223
- onSelect: ue,
224
- onTab: t[3] ||= (e) => A("tab", e)
266
+ autofocus: N.value,
267
+ onEscape: t[0] ||= (e) => Y("escape"),
268
+ onSubmenuBack: t[1] ||= (e) => Y("escape"),
269
+ onDismissTree: t[2] ||= (e) => T("dismiss-tree"),
270
+ onSelect: Se,
271
+ onTab: t[3] ||= (e) => T("tab", e)
225
272
  }, null, 8, [
226
273
  "label",
227
274
  "items",
@@ -232,10 +279,11 @@ var E = [
232
279
  }, 8, [
233
280
  "landmark-label",
234
281
  "position",
282
+ "available-size",
235
283
  "z-index"
236
- ])) : f("", !0)]))], 16, E);
284
+ ])) : ie("", !0)]))], 16, x);
237
285
  };
238
286
  }
239
287
  });
240
288
  //#endregion
241
- export { D as default };
289
+ 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, [