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