@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
@@ -3,20 +3,20 @@ import n from "../data-display/SBadge.vue.js";
3
3
  import { useInteractiveLeafRegistration as r } from "../../../internal/passiveContentContract.js";
4
4
  import { resolveLinkTarget as i } from "../../../internal/linkTarget.js";
5
5
  import { menuContextKey as a } from "./menuContext.js";
6
- import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, inject as m, mergeProps as h, openBlock as g, ref as _, resolveDynamicComponent as v, toDisplayString as y, unref as b, withCtx as x } from "vue";
7
- import { RouterLink as S } from "vue-router";
6
+ import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, inject as m, mergeProps as h, openBlock as g, ref as _, resolveDynamicComponent as v, toDisplayString as y, unref as b, useId as x, withCtx as S } from "vue";
7
+ import { RouterLink as C } from "vue-router";
8
8
  //#region src/components/shared/_internal/SMenuItem.vue?vue&type=script&setup=true&lang.ts
9
- var C = { class: "s-menu-item__main" }, w = { class: "s-menu-item__label" }, T = {
9
+ var w = { class: "s-menu-item__main" }, T = { class: "s-menu-item__text" }, E = { class: "s-menu-item__label" }, D = {
10
10
  key: 0,
11
11
  class: "s-menu-item__meta"
12
- }, E = {
12
+ }, O = {
13
13
  key: 0,
14
14
  class: "s-menu-item__badge"
15
- }, D = {
15
+ }, ee = {
16
16
  key: 1,
17
17
  class: "s-menu-item__shortcut",
18
18
  "aria-hidden": "true"
19
- }, O = [
19
+ }, te = [
20
20
  "role",
21
21
  "data-layout",
22
22
  "data-density",
@@ -26,12 +26,13 @@ var C = { class: "s-menu-item__main" }, w = { class: "s-menu-item__label" }, T =
26
26
  "aria-current",
27
27
  "aria-checked",
28
28
  "aria-haspopup",
29
- "aria-expanded"
30
- ], k = { class: "s-menu-item__main" }, A = { class: "s-menu-item__state" }, j = {
29
+ "aria-expanded",
30
+ "aria-describedby"
31
+ ], ne = { class: "s-menu-item__main" }, k = { class: "s-menu-item__state" }, A = {
31
32
  key: 1,
32
33
  class: "s-menu-item__radio-dot",
33
34
  "aria-hidden": "true"
34
- }, M = { class: "s-menu-item__label" }, N = {
35
+ }, j = { class: "s-menu-item__text" }, M = { class: "s-menu-item__label" }, N = {
35
36
  key: 0,
36
37
  class: "s-menu-item__meta"
37
38
  }, P = {
@@ -59,76 +60,76 @@ var C = { class: "s-menu-item__main" }, w = { class: "s-menu-item__label" }, T =
59
60
  setup(p, { emit: I }) {
60
61
  let L = m(a);
61
62
  if (!L) throw Error("SMenuItem must be used inside SMenuSurface");
62
- let R = L, z = p, B = I, V = _(null);
63
+ let R = L, z = `s-menu-item-description-${x()}`, B = p, V = I, H = _(null);
63
64
  r({ owner: "SMenuItem" });
64
- let H, U = !1, W = o(() => z.entry.kind === "destination" ? i({
65
- href: z.entry.href,
66
- to: z.entry.to,
67
- target: z.entry.target ?? "_self",
68
- rel: z.entry.rel,
69
- owner: `SMenuItem(${z.entry.id})`
70
- }) : null), G = o(() => W.value?.kind === "router" ? S : "a"), K = o(() => W.value?.bindings ?? {}), q = o(() => z.entry.kind === "checkbox" ? "menuitemcheckbox" : z.entry.kind === "radio" ? "menuitemradio" : "menuitem"), J = o(() => z.entry.kind === "checkbox" || z.entry.kind === "radio" ? z.entry.checked : void 0), Y = o(() => (z.entry.kind === "action" || z.entry.kind === "destination") && !(!z.entry.current || z.entry.disabled));
71
- function X() {
72
- let e = V.value;
65
+ let U, W = !1, G = o(() => B.entry.kind === "destination" ? i({
66
+ href: B.entry.href,
67
+ to: B.entry.to,
68
+ target: B.entry.target ?? "_self",
69
+ rel: B.entry.rel,
70
+ owner: `SMenuItem(${B.entry.id})`
71
+ }) : null), K = o(() => G.value?.kind === "router" ? C : "a"), q = o(() => G.value?.bindings ?? {}), J = o(() => B.entry.kind === "checkbox" ? "menuitemcheckbox" : B.entry.kind === "radio" ? "menuitemradio" : "menuitem"), Y = o(() => B.entry.kind === "checkbox" || B.entry.kind === "radio" ? B.entry.checked : void 0), X = o(() => (B.entry.kind === "action" || B.entry.kind === "destination") && !(!B.entry.current || B.entry.disabled));
72
+ function Z() {
73
+ let e = H.value;
73
74
  if (!e) throw Error("SMenuItem: interactive element is unavailable");
74
75
  return e;
75
76
  }
76
- function Z(e) {
77
+ function Q(e) {
77
78
  if (!(e.el instanceof HTMLElement)) throw Error("SMenuItem: interactive component must render one HTMLElement root");
78
- V.value !== e.el && (H?.(), V.value = e.el, H = R.register({
79
- entryId: z.entry.id,
80
- label: () => z.entry.label,
81
- hasSubmenu: () => z.entry.kind === "submenu",
82
- element: X,
79
+ H.value !== e.el && (U?.(), H.value = e.el, U = R.register({
80
+ entryId: B.entry.id,
81
+ label: () => B.entry.label,
82
+ hasSubmenu: () => B.entry.kind === "submenu",
83
+ element: Z,
83
84
  setTabStop: (e) => {
84
- X().tabIndex = e ? 0 : -1;
85
+ Z().tabIndex = e ? 0 : -1;
85
86
  },
86
- focus: () => X().focus(),
87
- isFocused: () => document.activeElement === V.value,
88
- ownsEventTarget: (e) => e instanceof Node && (e === V.value || X().contains(e)),
89
- activate: te
87
+ focus: () => Z().focus(),
88
+ isFocused: () => document.activeElement === H.value,
89
+ ownsEventTarget: (e) => e instanceof Node && (e === H.value || Z().contains(e)),
90
+ activate: ae
90
91
  }));
91
92
  }
92
- function Q() {
93
- H?.(), H = void 0, V.value = null;
93
+ function $() {
94
+ U?.(), U = void 0, H.value = null;
94
95
  }
95
- function $(e) {
96
- if (z.entry.disabled) {
96
+ function re(e) {
97
+ if (B.entry.disabled) {
97
98
  e.preventDefault(), e.stopPropagation();
98
99
  return;
99
100
  }
100
- if (z.entry.kind === "submenu") {
101
- B("open-submenu");
101
+ if (B.entry.kind === "submenu") {
102
+ V("open-submenu");
102
103
  return;
103
104
  }
104
- B("select", e);
105
+ V("select", e);
105
106
  }
106
- function ee(e) {
107
- U && e.detail === 0 || (U = !1, B("select", e));
107
+ function ie(e) {
108
+ W && e.detail === 0 || (W = !1, V("select", e));
108
109
  }
109
- function te(e) {
110
- if (!z.entry.disabled) {
111
- if (z.entry.kind === "submenu") {
112
- e.preventDefault(), B("open-submenu");
110
+ function ae(e) {
111
+ if (!B.entry.disabled) {
112
+ if (B.entry.kind === "submenu") {
113
+ e.preventDefault(), V("open-submenu");
113
114
  return;
114
115
  }
115
- if (z.entry.kind === "destination") {
116
- B("select", e);
116
+ if (B.entry.kind === "destination") {
117
+ V("select", e);
117
118
  let t = e.defaultPrevented;
118
119
  if (e.preventDefault(), !t) {
119
- U = !0;
120
+ W = !0;
120
121
  try {
121
- X().click();
122
+ Z().click();
122
123
  } finally {
123
- U = !1;
124
+ W = !1;
124
125
  }
125
126
  }
126
127
  return;
127
128
  }
128
- e.preventDefault(), B("select", e);
129
+ e.preventDefault(), V("select", e);
129
130
  }
130
131
  }
131
- return (r, i) => p.entry.kind === "destination" && !p.entry.disabled ? (g(), s(v(G.value), h({ key: 0 }, K.value, {
132
+ return (r, i) => p.entry.kind === "destination" && !p.entry.disabled ? (g(), s(v(K.value), h({ key: 0 }, q.value, {
132
133
  class: "s-menu-item",
133
134
  role: "menuitem",
134
135
  "data-layout": p.entry.layout ?? "row",
@@ -137,72 +138,83 @@ var C = { class: "s-menu-item__main" }, w = { class: "s-menu-item__label" }, T =
137
138
  "data-current": p.entry.current || void 0,
138
139
  tabindex: "-1",
139
140
  "aria-current": p.entry.current ? "page" : void 0,
140
- onClick: ee,
141
- onPointermove: i[0] ||= (e) => B("pointer-intent"),
142
- onVnodeMounted: Z,
143
- onVnodeUpdated: Z,
144
- onVnodeBeforeUnmount: Q
141
+ "aria-describedby": p.entry.description ? z : void 0,
142
+ onClick: ie,
143
+ onPointermove: i[0] ||= (e) => V("pointer-intent"),
144
+ onVnodeMounted: Q,
145
+ onVnodeUpdated: Q,
146
+ onVnodeBeforeUnmount: $
145
147
  }), {
146
- default: x(() => [u("span", C, [
148
+ default: S(() => [u("span", w, [
147
149
  i[2] ||= u("span", { class: "s-menu-item__state" }, null, -1),
148
150
  p.entry.icon ? (g(), s(v(p.entry.icon), {
149
151
  key: 0,
150
152
  class: "s-menu-item__icon",
151
153
  "aria-hidden": "true"
152
154
  })) : c("", !0),
153
- u("span", w, y(p.entry.label), 1)
154
- ]), p.entry.badge !== void 0 || p.entry.shortcut ? (g(), l("span", T, [p.entry.badge === void 0 ? c("", !0) : (g(), l("span", E, [f(n, {
155
+ u("span", T, [u("span", E, y(p.entry.label), 1), p.entry.description ? (g(), l("span", {
156
+ key: 0,
157
+ id: z,
158
+ class: "s-menu-item__description"
159
+ }, y(p.entry.description), 1)) : c("", !0)])
160
+ ]), p.entry.badge !== void 0 || p.entry.shortcut ? (g(), l("span", D, [p.entry.badge === void 0 ? c("", !0) : (g(), l("span", O, [f(n, {
155
161
  severity: p.entry.badgeSeverity ?? "secondary",
156
162
  size: "xs"
157
163
  }, {
158
- default: x(() => [d(y(p.entry.badge), 1)]),
164
+ default: S(() => [d(y(p.entry.badge), 1)]),
159
165
  _: 1
160
- }, 8, ["severity"])])), p.entry.shortcut ? (g(), l("span", D, y(p.entry.shortcut), 1)) : c("", !0)])) : c("", !0)]),
166
+ }, 8, ["severity"])])), p.entry.shortcut ? (g(), l("span", ee, y(p.entry.shortcut), 1)) : c("", !0)])) : c("", !0)]),
161
167
  _: 1
162
168
  }, 16, [
163
169
  "data-layout",
164
170
  "data-density",
165
171
  "data-menu-entry-id",
166
172
  "data-current",
167
- "aria-current"
173
+ "aria-current",
174
+ "aria-describedby"
168
175
  ])) : (g(), l("button", {
169
176
  key: 1,
170
177
  class: "s-menu-item",
171
178
  type: "button",
172
- role: q.value,
179
+ role: J.value,
173
180
  "data-layout": p.entry.layout ?? "row",
174
181
  "data-density": b(R).density.value,
175
182
  "data-menu-entry-id": p.entry.id,
176
- "data-current": Y.value || void 0,
183
+ "data-current": X.value || void 0,
177
184
  tabindex: "-1",
178
185
  "aria-disabled": p.entry.disabled || void 0,
179
- "aria-current": Y.value ? "page" : void 0,
180
- "aria-checked": J.value,
186
+ "aria-current": X.value ? "page" : void 0,
187
+ "aria-checked": Y.value,
181
188
  "aria-haspopup": p.entry.kind === "submenu" ? "menu" : void 0,
182
189
  "aria-expanded": p.entry.kind === "submenu" ? p.submenuOpen : void 0,
183
- onClick: $,
184
- onPointermove: i[1] ||= (e) => B("pointer-intent"),
185
- onVnodeMounted: Z,
186
- onVnodeUpdated: Z,
187
- onVnodeBeforeUnmount: Q
188
- }, [u("span", k, [
189
- u("span", A, [p.entry.kind === "checkbox" && p.entry.checked !== !1 ? (g(), s(b(e), {
190
+ "aria-describedby": p.entry.description ? z : void 0,
191
+ onClick: re,
192
+ onPointermove: i[1] ||= (e) => V("pointer-intent"),
193
+ onVnodeMounted: Q,
194
+ onVnodeUpdated: Q,
195
+ onVnodeBeforeUnmount: $
196
+ }, [u("span", ne, [
197
+ u("span", k, [p.entry.kind === "checkbox" && p.entry.checked !== !1 ? (g(), s(b(e), {
190
198
  key: 0,
191
199
  class: "s-menu-item__state-icon",
192
200
  "aria-hidden": "true"
193
- })) : p.entry.kind === "radio" && p.entry.checked ? (g(), l("span", j)) : c("", !0)]),
201
+ })) : p.entry.kind === "radio" && p.entry.checked ? (g(), l("span", A)) : c("", !0)]),
194
202
  p.entry.icon ? (g(), s(v(p.entry.icon), {
195
203
  key: 0,
196
204
  class: "s-menu-item__icon",
197
205
  "aria-hidden": "true"
198
206
  })) : c("", !0),
199
- u("span", M, y(p.entry.label), 1)
207
+ u("span", j, [u("span", M, y(p.entry.label), 1), p.entry.description ? (g(), l("span", {
208
+ key: 0,
209
+ id: z,
210
+ class: "s-menu-item__description"
211
+ }, y(p.entry.description), 1)) : c("", !0)])
200
212
  ]), p.entry.badge !== void 0 || p.entry.shortcut || p.entry.kind === "submenu" ? (g(), l("span", N, [
201
213
  p.entry.badge === void 0 ? c("", !0) : (g(), l("span", P, [f(n, {
202
214
  severity: p.entry.badgeSeverity ?? "secondary",
203
215
  size: "xs"
204
216
  }, {
205
- default: x(() => [d(y(p.entry.badge), 1)]),
217
+ default: S(() => [d(y(p.entry.badge), 1)]),
206
218
  _: 1
207
219
  }, 8, ["severity"])])),
208
220
  p.entry.shortcut ? (g(), l("span", F, y(p.entry.shortcut), 1)) : c("", !0),
@@ -211,7 +223,7 @@ var C = { class: "s-menu-item__main" }, w = { class: "s-menu-item__label" }, T =
211
223
  class: "s-menu-item__submenu-icon",
212
224
  "aria-hidden": "true"
213
225
  })) : c("", !0)
214
- ])) : c("", !0)], 40, O));
226
+ ])) : c("", !0)], 40, te));
215
227
  }
216
228
  });
217
229
  //#endregion
@@ -1,5 +1,8 @@
1
1
  import { ElementApi } from '../../../internal/interactiveElement';
2
- export type SMenuLayerApi = ElementApi<HTMLDivElement>;
2
+ import { FloatingAvailableSize, FloatingSizingElements } from '../../../composables/useFloatingPosition';
3
+ export interface SMenuLayerApi extends ElementApi<HTMLDivElement> {
4
+ getSizingElements: () => FloatingSizingElements | null;
5
+ }
3
6
  interface Props {
4
7
  kind: 'dropdown' | 'context' | 'submenu';
5
8
  landmarkLabel: string;
@@ -8,6 +11,7 @@ interface Props {
8
11
  top: number;
9
12
  };
10
13
  zIndex: string;
14
+ availableSize: FloatingAvailableSize | null;
11
15
  }
12
16
  declare var __VLS_1: {};
13
17
  type __VLS_Slots = {} & {
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css";
1
+ import "../../../../assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SMenuLayer.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/_internal/SMenuLayer.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-4913bbe1"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-e478164c"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -1,33 +1,77 @@
1
- import { computed as e, createElementBlock as t, defineComponent as n, normalizeClass as r, normalizeStyle as i, openBlock as a, ref as o, renderSlot as s } from "vue";
1
+ import { useOverlayAdmission as e } from "../../../internal/overlayHost.js";
2
+ import { menuViewportKey as t } from "./menuContext.js";
3
+ import { computed as n, createElementBlock as r, defineComponent as i, nextTick as a, normalizeClass as o, normalizeStyle as s, openBlock as c, provide as l, ref as u, renderSlot as d, unref as f, watch as p } from "vue";
2
4
  //#region src/components/shared/_internal/SMenuLayer.vue?vue&type=script&setup=true&lang.ts
3
- var c = ["data-kind", "aria-label"], l = /*@__PURE__*/ n({
5
+ var m = [
6
+ "hidden",
7
+ "^inert",
8
+ "data-kind",
9
+ "aria-label"
10
+ ], h = /*@__PURE__*/ i({
4
11
  __name: "SMenuLayer",
5
12
  props: {
6
13
  kind: {},
7
14
  landmarkLabel: {},
8
15
  position: {},
9
- zIndex: {}
16
+ zIndex: {},
17
+ availableSize: {}
10
18
  },
11
- setup(n, { expose: l }) {
12
- let u = n, d = o(null), f = e(() => ({
13
- left: `${u.position.left}px`,
14
- top: `${u.position.top}px`,
15
- zIndex: u.zIndex
19
+ setup(i, { expose: h }) {
20
+ let g = i, _ = u(null), v = e(), y = u(!v.value);
21
+ p(v, (e) => {
22
+ if (e) return;
23
+ y.value = !0;
24
+ let t = _.value;
25
+ if (!t) return;
26
+ t.hidden = !0, t.setAttribute("inert", "");
27
+ let n = t.ownerDocument.activeElement;
28
+ n instanceof HTMLElement && t.contains(n) && n.blur();
29
+ }, { flush: "sync" });
30
+ let b = null;
31
+ l(t, { register(e) {
32
+ if (b !== null) throw Error("SMenuLayer: exactly one native menu sizing surface is allowed");
33
+ if (!e.surface.contains(e.content)) throw Error("SMenuLayer: native sizing content must belong to its surface");
34
+ return b = e, () => {
35
+ b === e && (b = null);
36
+ };
37
+ } });
38
+ let x = n(() => ({
39
+ left: `${g.position.left}px`,
40
+ top: `${g.position.top}px`,
41
+ zIndex: g.zIndex,
42
+ ...g.availableSize ? {
43
+ "--s-menu-viewport-available-inline-size": `${g.availableSize.width}px`,
44
+ "--s-menu-viewport-available-block-size": `${g.availableSize.height}px`
45
+ } : {}
16
46
  }));
17
- return l({ getElement: () => {
18
- let e = d.value;
19
- if (!e) throw Error("SMenuLayer: layer element is unavailable");
20
- return e;
21
- } }), (e, o) => (a(), t("div", {
47
+ return p(() => [g.availableSize?.width, g.availableSize?.height], async ([e, t], n) => {
48
+ if (e === n[0] && t === n[1]) return;
49
+ let r = b;
50
+ await a(), r && b === r && _.value?.isConnected && r.surface.isConnected && _.value.contains(r.surface) && r.revealFocusedItem();
51
+ }), h({
52
+ getElement: () => {
53
+ let e = _.value;
54
+ if (!e) throw Error("SMenuLayer: layer element is unavailable");
55
+ return e;
56
+ },
57
+ getSizingElements: () => {
58
+ let e = _.value;
59
+ if (!e || !b) return null;
60
+ if (!e.contains(b.surface)) throw Error("SMenuLayer: native sizing surface must belong to the current layer");
61
+ return b;
62
+ }
63
+ }), (e, t) => (c(), r("div", {
22
64
  ref_key: "layerRef",
23
- ref: d,
24
- class: r(["s-menu-layer", [`s-menu-layer--${n.kind}`, n.kind === "context" ? "s-context-menu" : n.kind === "dropdown" ? "s-dropdown-menu-items" : "s-submenu-items"]]),
25
- "data-kind": n.kind,
65
+ ref: _,
66
+ hidden: y.value || !f(v),
67
+ "^inert": y.value || !f(v) ? !0 : void 0,
68
+ class: o(["s-menu-layer", [`s-menu-layer--${i.kind}`, i.kind === "context" ? "s-context-menu" : i.kind === "dropdown" ? "s-dropdown-menu-items" : "s-submenu-items"]]),
69
+ "data-kind": i.kind,
26
70
  role: "region",
27
- "aria-label": n.landmarkLabel,
28
- style: i(f.value)
29
- }, [s(e.$slots, "default", {}, void 0, !0)], 14, c));
71
+ "aria-label": i.landmarkLabel,
72
+ style: s(x.value)
73
+ }, [d(e.$slots, "default", {}, void 0, !0)], 14, m));
30
74
  }
31
75
  });
32
76
  //#endregion
33
- export { l as default };
77
+ export { h as default };
@@ -1,6 +1,8 @@
1
- export type DialogSurfaceModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'wide' | 'full';
1
+ export type DialogSurfaceModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | 'wide' | 'full';
2
2
  export type DialogSurfaceDrawerSize = 'sm' | 'md' | 'lg';
3
- export type DialogSurfaceDrawerPlacement = 'right' | 'bottom';
3
+ export type DialogSurfaceDrawerPlacement = 'left' | 'right' | 'bottom';
4
+ export type DialogSurfaceDrawerScope = 'viewport' | 'contained';
5
+ export type DialogSurfaceDrawerScrollBehavior = 'body' | 'content';
4
6
  export type DialogSurfaceTone = 'default' | 'subtle';
5
7
  export type DialogSurfaceScrollBehavior = 'page' | 'body';
6
8
  export type DialogSurfaceHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
@@ -13,12 +15,22 @@ export interface ModalDialogSurfacePresentation {
13
15
  surface: DialogSurfaceTone;
14
16
  scrollBehavior: DialogSurfaceScrollBehavior;
15
17
  }
16
- export interface DrawerDialogSurfacePresentation {
18
+ interface DrawerDialogSurfaceBase {
17
19
  kind: 'drawer';
18
20
  size: DialogSurfaceDrawerSize;
19
21
  placement: DialogSurfaceDrawerPlacement;
20
22
  mobileFullScreen: boolean;
23
+ scrollBehavior: DialogSurfaceDrawerScrollBehavior;
21
24
  }
25
+ export type DrawerDialogSurfacePresentation = DrawerDialogSurfaceBase & ({
26
+ scope: 'viewport';
27
+ extent?: never;
28
+ } | {
29
+ scope: 'contained';
30
+ extent: number;
31
+ });
32
+ /** Validates an exact finite percentage in (0,100], with no unit coercion. */
33
+ export declare function validateDrawerExtent(owner: string, value: unknown): number;
22
34
  export type DialogSurfacePresentation = ModalDialogSurfacePresentation | DrawerDialogSurfacePresentation;
23
35
  export type DialogSurfaceContractErrorCode = 'invalid-presentation' | 'invalid-size' | 'invalid-surface' | 'invalid-scroll-behavior';
24
36
  export declare class DialogSurfaceContractError extends Error {
@@ -30,3 +42,4 @@ export declare class DialogSurfaceContractError extends Error {
30
42
  * Validates the private dialog surface discriminated contract without fallback branches.
31
43
  */
32
44
  export declare function assertDialogSurfacePresentation(presentation: DialogSurfacePresentation): asserts presentation is DialogSurfacePresentation;
45
+ export {};
@@ -1,56 +1,73 @@
1
+ import { hasOwn as e } from "../../../internal/es2020.js";
1
2
  //#region src/components/shared/_internal/dialogSurface.ts
2
- function e(e, t) {
3
+ function t(e, t) {
3
4
  if (t === 1 || t === 2 || t === 3 || t === 4 || t === 5 || t === 6) return t;
4
5
  throw TypeError(`${e}: headingLevel должен быть целым числом от 1 до 6; получено ${String(t)}. / ${e}: headingLevel must be an integer from 1 to 6; received ${String(t)}.`);
5
6
  }
6
- var t = class extends Error {
7
+ function n(e, t) {
8
+ if (typeof t == "number" && Number.isFinite(t) && t > 0 && t <= 100) return t;
9
+ throw TypeError(`${e}: extent must be a finite percentage in (0,100]; received ${String(t)}`);
10
+ }
11
+ var r = class extends Error {
7
12
  constructor(e, t) {
8
13
  super(t), this.name = "DialogSurfaceContractError", this.code = e;
9
14
  }
10
- }, n = /* @__PURE__ */ new Set([
15
+ }, i = /* @__PURE__ */ new Set([
11
16
  "kind",
12
17
  "size",
13
18
  "fullscreen",
14
19
  "surface",
15
20
  "scrollBehavior"
16
- ]), r = /* @__PURE__ */ new Set([
21
+ ]), a = /* @__PURE__ */ new Set([
17
22
  "kind",
18
23
  "size",
19
24
  "placement",
20
- "mobileFullScreen"
21
- ]), i = /* @__PURE__ */ new Set([
25
+ "mobileFullScreen",
26
+ "scope",
27
+ "extent",
28
+ "scrollBehavior"
29
+ ]), o = /* @__PURE__ */ new Set([
22
30
  "sm",
23
31
  "md",
24
32
  "lg",
25
33
  "xl",
26
34
  "2xl",
27
35
  "3xl",
36
+ "4xl",
28
37
  "wide",
29
38
  "full"
30
- ]), a = /* @__PURE__ */ new Set([
39
+ ]), s = /* @__PURE__ */ new Set([
31
40
  "sm",
32
41
  "md",
33
42
  "lg"
34
- ]), o = /* @__PURE__ */ new Set(["right", "bottom"]), s = /* @__PURE__ */ new Set(["default", "subtle"]), c = /* @__PURE__ */ new Set(["page", "body"]), l = (e, n, r) => {
35
- let i = Object.keys(e).find((e) => !r.has(e));
36
- if (i) throw new t("invalid-presentation", `SDialogSurface presentation kind="${n}" содержит недопустимое поле ${i}`);
43
+ ]), c = /* @__PURE__ */ new Set([
44
+ "left",
45
+ "right",
46
+ "bottom"
47
+ ]), l = /* @__PURE__ */ new Set(["default", "subtle"]), u = /* @__PURE__ */ new Set(["page", "body"]), d = (e, t, n) => {
48
+ let i = Object.keys(e).find((e) => !n.has(e));
49
+ if (i) throw new r("invalid-presentation", `SDialogSurface presentation kind="${t}" содержит недопустимое поле ${i}`);
37
50
  };
38
- function u(e) {
39
- let u = e;
40
- if (u.kind === "modal") {
41
- if (l(u, "modal", n), !i.has(u.size)) throw new t("invalid-size", `Недопустимый размер SModal: ${String(u.size)}`);
42
- if (typeof u.fullscreen != "boolean") throw new t("invalid-presentation", "SModal presentation требует boolean fullscreen");
43
- if (!s.has(u.surface)) throw new t("invalid-surface", `Недопустимая поверхность SModal: ${String(u.surface)}`);
44
- if (!c.has(u.scrollBehavior)) throw new t("invalid-scroll-behavior", `Недопустимый scroll behavior SModal: ${String(u.scrollBehavior)}`);
51
+ function f(t) {
52
+ let f = t;
53
+ if (f.kind === "modal") {
54
+ if (d(f, "modal", i), !o.has(f.size)) throw new r("invalid-size", `Недопустимый размер SModal: ${String(f.size)}`);
55
+ if (typeof f.fullscreen != "boolean") throw new r("invalid-presentation", "SModal presentation требует boolean fullscreen");
56
+ if (!l.has(f.surface)) throw new r("invalid-surface", `Недопустимая поверхность SModal: ${String(f.surface)}`);
57
+ if (!u.has(f.scrollBehavior)) throw new r("invalid-scroll-behavior", `Недопустимый scroll behavior SModal: ${String(f.scrollBehavior)}`);
45
58
  return;
46
59
  }
47
- if (u.kind === "drawer") {
48
- if (l(u, "drawer", r), !a.has(u.size)) throw new t("invalid-size", `Недопустимый размер SDrawer: ${String(u.size)}`);
49
- if (!o.has(u.placement)) throw new t("invalid-presentation", `Недопустимое размещение SDrawer: ${String(u.placement)}`);
50
- if (typeof u.mobileFullScreen != "boolean") throw new t("invalid-presentation", "SDrawer presentation требует boolean mobileFullScreen");
60
+ if (f.kind === "drawer") {
61
+ if (d(f, "drawer", a), !s.has(f.size)) throw new r("invalid-size", `Недопустимый размер SDrawer: ${String(f.size)}`);
62
+ if (!c.has(f.placement)) throw new r("invalid-presentation", `Недопустимое размещение SDrawer: ${String(f.placement)}`);
63
+ if (typeof f.mobileFullScreen != "boolean") throw new r("invalid-presentation", "SDrawer presentation требует boolean mobileFullScreen");
64
+ if (f.scope !== "viewport" && f.scope !== "contained") throw new r("invalid-presentation", "SDrawer presentation requires viewport or contained scope");
65
+ if (f.scrollBehavior !== "body" && f.scrollBehavior !== "content") throw new r("invalid-scroll-behavior", "SDrawer presentation requires body or content scrollBehavior");
66
+ if (f.scope === "contained") n("SDialogSurface", f.extent);
67
+ else if (e(f, "extent")) throw new r("invalid-presentation", "SDrawer extent requires contained scope");
51
68
  return;
52
69
  }
53
- throw new t("invalid-presentation", `Неизвестный kind SDialogSurface: ${String(u.kind)}`);
70
+ throw new r("invalid-presentation", `Неизвестный kind SDialogSurface: ${String(f.kind)}`);
54
71
  }
55
72
  //#endregion
56
- export { t as DialogSurfaceContractError, u as assertDialogSurfacePresentation, e as validateDialogSurfaceHeadingLevel };
73
+ export { r as DialogSurfaceContractError, f as assertDialogSurfacePresentation, t as validateDialogSurfaceHeadingLevel, n as validateDrawerExtent };
@@ -9,5 +9,6 @@ export interface ListboxOptionRegistration {
9
9
  }
10
10
  export interface ListboxContext {
11
11
  register: (registration: ListboxOptionRegistration) => () => void;
12
+ registerGeometry?: (token: string, element: HTMLElement) => () => void;
12
13
  }
13
14
  export declare const listboxContextKey: InjectionKey<ListboxContext>;
@@ -0,0 +1,51 @@
1
+ import { ResolvedSelectionInventory, ResolvedSelectionOption } from './selectionContract';
2
+ import { SelectionKey } from './useSelectionRoving';
3
+ export declare const CLEAR_OPTION_TOKEN = "clear-option";
4
+ export interface ListboxCatalogOption<TKey extends SelectionKey> extends ResolvedSelectionOption<TKey> {
5
+ position: number;
6
+ rowIndex: number;
7
+ }
8
+ export type ListboxCatalogEntry<TKey extends SelectionKey> = {
9
+ kind: 'option';
10
+ token: string;
11
+ record: ListboxCatalogOption<TKey>;
12
+ } | {
13
+ kind: 'group';
14
+ token: string;
15
+ label: string;
16
+ headerIndex: number;
17
+ endIndex: number;
18
+ records: readonly ListboxCatalogOption<TKey>[];
19
+ };
20
+ export interface ListboxNavigationOption<TKey extends SelectionKey> {
21
+ token: string;
22
+ value: TKey | null;
23
+ label: string;
24
+ disabled: boolean;
25
+ position: number;
26
+ rowIndex: number;
27
+ }
28
+ export type ListboxVirtualRow<TKey extends SelectionKey> = {
29
+ kind: 'clear';
30
+ key: string;
31
+ } | {
32
+ kind: 'header';
33
+ key: string;
34
+ entryToken: string;
35
+ } | {
36
+ kind: 'option';
37
+ key: string;
38
+ entryToken: string;
39
+ record: ListboxCatalogOption<TKey>;
40
+ };
41
+ /** Complete semantic inventory, independent of mounted viewport rows. */
42
+ export declare function createListboxInventory<TKey extends SelectionKey>(inventory: ResolvedSelectionInventory<TKey>, clearLabel: string | undefined, disabled: boolean): {
43
+ rows: ListboxVirtualRow<TKey>[];
44
+ entries: ListboxCatalogEntry<TKey>[];
45
+ entriesByToken: Map<string, ListboxCatalogEntry<TKey>>;
46
+ navigation: ListboxNavigationOption<TKey>[];
47
+ navigationByToken: Map<string, ListboxNavigationOption<TKey>>;
48
+ setSize: number;
49
+ };
50
+ /** A bounded DOM projection; a mounted group always includes at least one option and its accessible label. */
51
+ export declare function projectListboxEntries<TKey extends SelectionKey>(catalog: ReturnType<typeof createListboxInventory<TKey>>, rows: readonly ListboxVirtualRow<TKey>[]): ListboxCatalogEntry<TKey>[];