@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
@@ -1,82 +1,158 @@
1
- import { isFocusableElement as e } from "./focusNavigation.js";
1
+ import { createAggregateError as e } from "./es2020.js";
2
+ import { isFocusableElement as t } from "./focusNavigation.js";
2
3
  //#region src/internal/layerStack.ts
3
- var t = [], n = !1, r = 0, i = "", a = (e, t) => e.root()?.contains(t) || e.anchor?.()?.contains(t) ? !0 : e.branches?.().some((e) => e.contains(t)) ?? !1, o = (e) => {
4
- let n = e.anchor?.() ?? e.restoreTarget ?? (typeof document < "u" && document.activeElement instanceof HTMLElement ? document.activeElement : null);
5
- return n ? [...t].reverse().find((e) => a(e, n))?.id ?? null : null;
6
- }, s = () => t[t.length - 1], c = (e) => {
7
- let n = e.parentId;
8
- for (; n;) {
9
- let e = t.find((e) => e.id === n);
4
+ var n = [], r = !1, i = 0, a = "", o = 0, s = (e, t) => e.root()?.contains(t) || e.anchor?.()?.contains(t) ? !0 : e.branches?.().some((e) => e.contains(t)) ?? !1, c = (e) => {
5
+ if (e.parent !== void 0) {
6
+ if (e.parent === null) return null;
7
+ let t = n.find((t) => t.id === e.parent?.id);
8
+ if (!t?.registered || !t.root()?.isConnected) throw TypeError("layerStack: explicit parent must be a live connected layer registration");
9
+ return t.id;
10
+ }
11
+ let t = e.anchor?.() ?? e.restoreTarget ?? (typeof document < "u" && document.activeElement instanceof HTMLElement ? document.activeElement : null);
12
+ return t ? [...n].reverse().find((e) => s(e, t))?.id ?? null : null;
13
+ }, l = () => n[n.length - 1], u = (e, t) => {
14
+ if (!e.eventBoundary) return !0;
15
+ let n = e.eventBoundary();
16
+ return n?.isConnected ? t.composedPath().some((t) => t instanceof Node && (n.contains(t) || s(e, t))) : !1;
17
+ }, d = (e) => {
18
+ let t = [...n].reverse().find((e) => e.modal);
19
+ return [...n].reverse().find((n) => (!t || n === t || T(n, t)) && u(n, e));
20
+ }, f = (e) => {
21
+ let t = e.parentId;
22
+ for (; t;) {
23
+ let e = n.find((e) => e.id === t);
10
24
  if (!e) break;
11
25
  if (e.modal || e.trapFocus) return e.root() ?? document;
12
- n = e.parentId;
26
+ t = e.parentId;
13
27
  }
14
28
  return document;
15
- }, l = (e) => {
16
- let n = s();
17
- if (!n) return;
29
+ }, p = (e) => {
30
+ if (!l()) return;
18
31
  if (e.key === "Escape") {
19
- (n.dismissOnEscape?.() ?? !0) && (e.preventDefault(), e.stopPropagation(), n.requestDismiss("escape", e));
32
+ let t = d(e);
33
+ if (!t) return;
34
+ (t.dismissOnEscape?.() ?? !0) && (e.preventDefault(), e.stopPropagation(), t.requestDismiss("escape", e));
20
35
  return;
21
36
  }
22
37
  if (e.key !== "Tab") return;
23
- let r = -1;
24
- for (let e = t.length - 1; e >= 0; --e) if (t[e]?.trapFocus) {
25
- r = e;
38
+ let t = -1;
39
+ for (let e = n.length - 1; e >= 0; --e) if (n[e]?.trapFocus) {
40
+ t = e;
26
41
  break;
27
42
  }
28
- r < 0 || t.slice(r + 1).some((e) => e.blocksParentFocusTrap ?? !0) || t[r]?.trapFocus?.(e);
29
- }, u = (e, t) => {
30
- let n = s();
31
- if (!n) return;
32
- let r = e.target;
33
- r instanceof Node && a(n, r) || (n.dismissOnOutsidePointer?.() ?? !0) && n.requestDismiss(t, e);
34
- }, d = (e) => {
35
- u(e, "outside-pointer");
36
- }, f = (e) => {
37
- u(e, "outside-contextmenu");
38
- }, p = () => {
39
- n || typeof window > "u" || typeof document > "u" || (n = !0, window.addEventListener("keydown", l, !0), document.addEventListener("pointerdown", d, !0), document.addEventListener("contextmenu", f, !0));
40
- }, m = () => {
41
- !n || t.length > 0 || typeof window > "u" || typeof document > "u" || (n = !1, window.removeEventListener("keydown", l, !0), document.removeEventListener("pointerdown", d, !0), document.removeEventListener("contextmenu", f, !0));
42
- }, h = () => {
43
- typeof document < "u" && (r === 0 && (i = document.body.style.overflow, document.body.style.overflow = "hidden"), r += 1);
44
- }, g = () => {
45
- typeof document < "u" && (r = Math.max(0, r - 1), r === 0 && (document.body.style.overflow = i));
46
- }, _ = (t) => {
43
+ if (t < 0) return;
44
+ let r = n[t];
45
+ r && (n.slice(t + 1).some((e) => T(e, r) && (e.blocksParentFocusTrap ?? !0)) || r.trapFocus?.(e));
46
+ }, m = (e, t) => {
47
+ let r = d(e);
48
+ if (!r) return;
49
+ let i = e.target;
50
+ if (i instanceof Node && s(r, i)) return;
51
+ let a = x();
52
+ t === "outside-pointer" && a && i instanceof Node && !s(a, i) && !n.some((e) => T(e, a) && s(e, i)) && e.preventDefault(), (r.dismissOnOutsidePointer?.() ?? !0) && r.requestDismiss(t, e);
53
+ }, h = (e) => {
54
+ m(e, "outside-pointer");
55
+ }, g = (e) => {
56
+ m(e, "outside-contextmenu");
57
+ }, _ = () => {
58
+ r || typeof window > "u" || typeof document > "u" || (r = !0, window.addEventListener("keydown", p, !0), document.addEventListener("pointerdown", h, !0), document.addEventListener("contextmenu", g, !0));
59
+ }, v = () => {
60
+ !r || n.length > 0 || typeof window > "u" || typeof document > "u" || (r = !1, window.removeEventListener("keydown", p, !0), document.removeEventListener("pointerdown", h, !0), document.removeEventListener("contextmenu", g, !0));
61
+ }, y = () => {
62
+ typeof document < "u" && (i === 0 && (a = document.body.style.overflow, document.body.style.overflow = "hidden"), i += 1);
63
+ }, b = () => {
64
+ typeof document < "u" && (i = Math.max(0, i - 1), i === 0 && (document.body.style.overflow = a));
65
+ }, x = () => [...n].reverse().find((e) => e.modal), S = (e, t) => {
66
+ let r = x();
67
+ return r ? s(r, e) || n.some((t) => T(t, r) && s(t, e)) : t.contains(e);
68
+ }, C = (e, n, r) => {
47
69
  queueMicrotask(() => {
48
- if (t.restoreTarget?.isConnected && e(t.restoreTarget)) {
49
- t.restoreTarget.focus();
50
- return;
70
+ if (o !== r) return;
71
+ let i = document.activeElement, a = n instanceof HTMLElement && !n.isConnected && i === document.body;
72
+ if (i !== n && !a) return;
73
+ if (e.restoreTarget?.isConnected && t(e.restoreTarget)) {
74
+ let t = f(e);
75
+ if (S(e.restoreTarget, t)) {
76
+ e.restoreTarget.focus({ preventScroll: !0 });
77
+ return;
78
+ }
51
79
  }
52
- s()?.root()?.focus();
80
+ let s = f(e), c = x()?.root();
81
+ c?.isConnected ? c.focus({ preventScroll: !0 }) : s instanceof HTMLElement && s.isConnected ? s.focus({ preventScroll: !0 }) : l()?.root()?.focus({ preventScroll: !0 });
53
82
  });
83
+ }, w = (e, n) => {
84
+ let r = document.activeElement, i = !1;
85
+ return {
86
+ cancel: () => {
87
+ i = !0;
88
+ },
89
+ commit: (a) => {
90
+ queueMicrotask(() => {
91
+ if (i || o !== a || !e.isConnected || !t(e) || !(n instanceof Node) || !n.isConnected || !n.contains(e)) return;
92
+ let s = document.activeElement, c = r instanceof HTMLElement && !r.isConnected && s === document.body;
93
+ (s === r || c) && S(e, n) && e.focus({ preventScroll: !0 });
94
+ });
95
+ }
96
+ };
97
+ }, T = (e, t) => {
98
+ let r = e.parentId;
99
+ for (; r;) {
100
+ if (r === t.id) return !0;
101
+ r = n.find((e) => e.id === r)?.parentId ?? null;
102
+ }
103
+ return !1;
104
+ }, E = (e) => {
105
+ if (!e.registered) return;
106
+ e.focusHandoff?.cancel(), e.focusHandoff = null, e.registered = !1;
107
+ let t = n.indexOf(e);
108
+ t >= 0 && n.splice(t, 1), e.modal && b();
54
109
  };
55
- function v(e) {
56
- let n = s(), r = e.modal || n?.tier === "overlay" ? "overlay" : "floating", i = n && n.tier === r ? `calc(${n.zIndex} + var(--s-layer-overlay-step))` : r === "overlay" ? "var(--s-layer-root-overlay-backdrop)" : "var(--s-layer-root-floating)", a = {
57
- ...e,
58
- id: Symbol(e.kind),
59
- parentId: o(e),
60
- restoreTarget: e.restoreTarget ?? null,
61
- tier: r,
62
- zIndex: i
63
- }, l = !0;
64
- return t.push(a), a.modal && h(), p(), {
65
- id: a.id,
66
- zIndex: a.zIndex,
67
- focusScope: () => c(a),
68
- unregister: ({ restoreFocus: e = !1 } = {}) => {
69
- if (!l) return;
70
- l = !1;
71
- let n = t.findIndex((e) => e.id === a.id), r = n === t.length - 1;
72
- if (n >= 0) {
73
- let e = a.root();
74
- for (let r of t.slice(n + 1)) r.parentId === a.id && (r.parentId = a.parentId), e?.contains(r.restoreTarget) && (r.restoreTarget = a.restoreTarget);
75
- t.splice(n, 1);
110
+ function D(t) {
111
+ let r = l(), i = c(t), a = n.find((e) => e.id === i), u = t.kind === "dialog" || t.modal || r?.tier === "overlay" ? "overlay" : "floating", d = r && r.tier === u ? `calc(${r.zIndex} + var(--s-layer-overlay-step))` : u === "overlay" ? "var(--s-layer-root-overlay-backdrop)" : "var(--s-layer-root-floating)", p = {
112
+ ...t,
113
+ id: Symbol(t.kind),
114
+ parentId: i,
115
+ eventBoundary: t.eventBoundary ?? (t.modal ? void 0 : a?.eventBoundary),
116
+ restoreTarget: t.restoreTarget ?? null,
117
+ tier: u,
118
+ zIndex: d,
119
+ registered: !0,
120
+ focusHandoff: null
121
+ };
122
+ return n.push(p), o += 1, p.modal && y(), _(), {
123
+ id: p.id,
124
+ zIndex: p.zIndex,
125
+ focusScope: () => f(p),
126
+ isTopmost: () => p.registered && l() === p,
127
+ handoffFocus: (e) => {
128
+ if (!p.registered) throw Error("layerStack: focus handoff requires a live registration");
129
+ p.focusHandoff?.cancel();
130
+ let t = w(e, f(p));
131
+ return p.focusHandoff = t, t.cancel;
132
+ },
133
+ unregister: ({ restoreFocus: t = !1, retireDescendants: r = !1, commitFocusHandoff: i = !1 } = {}) => {
134
+ if (!p.registered) return;
135
+ let a = i ? p.focusHandoff : null;
136
+ a && (p.focusHandoff = null);
137
+ let c = n.findIndex((e) => e.id === p.id), l = r ? n.filter((e) => T(e, p)) : [], u = typeof document < "u" ? document.activeElement : null, d = u instanceof Node && (s(p, u) || l.some((e) => s(e, u)));
138
+ if (c >= 0) {
139
+ let e = p.root();
140
+ for (let t of n.slice(c + 1)) t.parentId === p.id && (t.parentId = p.parentId), e?.contains(t.restoreTarget) && (t.restoreTarget = p.restoreTarget);
141
+ for (let e of [...l].reverse()) E(e);
142
+ E(p);
143
+ }
144
+ o += 1;
145
+ let f = o;
146
+ v();
147
+ let m = [];
148
+ for (let e of [...l].reverse()) try {
149
+ e.onRetire?.();
150
+ } catch (e) {
151
+ m.push(e);
76
152
  }
77
- a.modal && g(), m(), e && r && _(a);
153
+ if (a && m.length === 0 ? a.commit(f) : a?.cancel(), !a && t && d && C(p, u, f), m.length > 0) throw e(m, "layerStack: owner retirement failed");
78
154
  }
79
155
  };
80
156
  }
81
157
  //#endregion
82
- export { v as registerLayer };
158
+ export { D as registerLayer };
@@ -5,6 +5,7 @@ export interface LinkTargetInput {
5
5
  readonly to?: unknown;
6
6
  readonly target?: unknown;
7
7
  readonly rel?: unknown;
8
+ readonly download?: unknown;
8
9
  readonly owner: string;
9
10
  }
10
11
  export type ResolvedLinkTarget = {
@@ -13,6 +14,7 @@ export type ResolvedLinkTarget = {
13
14
  readonly href: string;
14
15
  readonly target: LinkBrowsingTarget;
15
16
  readonly rel?: string;
17
+ readonly download?: string;
16
18
  };
17
19
  } | {
18
20
  readonly kind: 'router';
@@ -22,5 +24,9 @@ export type ResolvedLinkTarget = {
22
24
  readonly rel?: string;
23
25
  };
24
26
  };
25
- /** Validates the sole link-target boundary and secures new browsing contexts. */
27
+ /**
28
+ * Validates the sole href/router boundary and secures new browsing contexts.
29
+ * Download is href-only native intent; filenames are preserved and false omits
30
+ * the attribute. Invalid destinations or download payloads throw TypeError.
31
+ */
26
32
  export declare function resolveLinkTarget(input: LinkTargetInput): ResolvedLinkTarget;
@@ -103,17 +103,21 @@ function f(e, t, n) {
103
103
  return i.has("noopener") || r.push("noopener"), i.has("noreferrer") || r.push("noreferrer"), r.join(" ");
104
104
  }
105
105
  function p(e) {
106
- let t = e.href !== void 0;
107
- if (t === (e.to !== void 0)) throw TypeError(`${e.owner}: передайте ровно один target — href или to`);
108
- let n = d(e.owner, e.target), r = f(e.owner, e.rel, n);
106
+ let t = e.href !== void 0, n = e.to !== void 0;
107
+ if (e.download !== void 0 && (!t || n)) throw TypeError(`${e.owner}: download допускается только с href / download requires an href-only destination`);
108
+ if (t === n) throw TypeError(`${e.owner}: передайте ровно один target — href или to`);
109
+ let r = d(e.owner, e.target), i = f(e.owner, e.rel, r);
109
110
  if (t) {
110
111
  if (typeof e.href != "string" || e.href.trim().length === 0 || e.href !== e.href.trim()) throw TypeError(`${e.owner}: href должен быть непустой строкой / href must be a non-empty string`);
112
+ if (e.download !== void 0 && typeof e.download != "string" && typeof e.download != "boolean") throw TypeError(`${e.owner}: download должен быть строкой или boolean / download must be a string or boolean`);
113
+ let t = e.download === !0 ? "" : e.download;
111
114
  return {
112
115
  kind: "anchor",
113
116
  bindings: {
114
117
  href: e.href,
115
- target: n,
116
- ...r === void 0 ? {} : { rel: r }
118
+ target: r,
119
+ ...i === void 0 ? {} : { rel: i },
120
+ ...typeof t == "string" ? { download: t } : {}
117
121
  }
118
122
  };
119
123
  }
@@ -121,8 +125,8 @@ function p(e) {
121
125
  kind: "router",
122
126
  bindings: {
123
127
  to: e.to,
124
- target: n,
125
- ...r === void 0 ? {} : { rel: r }
128
+ target: r,
129
+ ...i === void 0 ? {} : { rel: i }
126
130
  }
127
131
  };
128
132
  throw TypeError(`${e.owner}: недостижимый router target / unreachable router target`);
@@ -0,0 +1,18 @@
1
+ import { InjectionKey, Ref } from 'vue';
2
+ /** Logical ancestor visibility controls overlay admission without changing portal geometry or owning consumer content. */
3
+ export declare function useOverlayAdmission(): Readonly<Ref<boolean>>;
4
+ /** Provides parent AND local admission; retained descendants may run while their transient overlays are retired. */
5
+ export declare function provideOverlayAdmission(active: Readonly<Ref<boolean>>): Readonly<Ref<boolean>>;
6
+ /** Private connected host contract shared by scoped overlay owners. / Приватный connected host для scoped overlay owners. */
7
+ export interface OverlayHostContext {
8
+ readonly root: Readonly<Ref<HTMLElement | null>>;
9
+ readonly content: Readonly<Ref<HTMLElement | null>>;
10
+ readonly portal: Readonly<Ref<HTMLElement | null>>;
11
+ /** Acquire local content inertness; release is idempotent, retirement invokes the callback once. */
12
+ acquire: (onRetire: () => void) => () => void;
13
+ }
14
+ export declare const overlayHostKey: InjectionKey<OverlayHostContext>;
15
+ /** Resolves the nearest host; required ownership has no global-body fallback. */
16
+ export declare function useOverlayHost(owner: string, required: true): OverlayHostContext;
17
+ export declare function useOverlayHost(owner: string, required: false): OverlayHostContext | undefined;
18
+ export declare function useOverlayHost(owner: string, required: boolean): OverlayHostContext | undefined;
@@ -0,0 +1,18 @@
1
+ import { computed as e, inject as t, provide as n } from "vue";
2
+ //#region src/internal/overlayHost.ts
3
+ var r = Symbol("ui-kit-overlay-admission"), i = e(() => !0);
4
+ function a() {
5
+ return t(r, i);
6
+ }
7
+ function o(t) {
8
+ let i = a(), o = e(() => i.value && t.value);
9
+ return n(r, o), o;
10
+ }
11
+ var s = Symbol("ui-kit-overlay-host");
12
+ function c(e, n) {
13
+ let r = t(s, void 0);
14
+ if (n && !r) throw TypeError(`${e}: scope="contained" requires a parent SOverlayHost. / Требуется родительский SOverlayHost.`);
15
+ return r;
16
+ }
17
+ //#endregion
18
+ export { s as overlayHostKey, o as provideOverlayAdmission, a as useOverlayAdmission, c as useOverlayHost };
@@ -1,13 +1,21 @@
1
1
  import { AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from 'vue';
2
2
  type OwnedAttributeValueKind = 'aria' | 'aria-boolean' | 'aria-current' | 'aria-haspopup' | 'aria-pressed' | 'boolean-attribute' | 'data' | 'input-mode' | 'listener' | 'string' | 'string-or-boolean' | 'string-or-number';
3
3
  /**
4
- * Exact runtime allowlist каждого public owner.
5
- * Exact runtime allowlist for every public owner.
4
+ * Exact runtime allowlist каждого зарегистрированного attribute owner.
5
+ * Exact runtime allowlist for every registered attribute owner.
6
+ *
7
+ * Public owners обязаны иметь схему; private compound owners объявляют её при передаче attrs.
8
+ * Public owners require a schema; private compound owners declare one when forwarding attrs.
6
9
  *
7
10
  * Пустая схема означает, что компонент не принимает fallthrough attrs: его API целиком выражен props/emits/slots.
8
11
  * An empty schema means that the component accepts no fallthrough attrs: props/emits/slots express its entire API.
9
12
  */
10
13
  export declare const ownedAttributeSchemas: Readonly<{
14
+ readonly STableFrame: Readonly<{}>;
15
+ readonly SRichImage: Readonly<{}>;
16
+ readonly STableSection: Readonly<{}>;
17
+ readonly STableRow: Readonly<{}>;
18
+ readonly STableCell: Readonly<{}>;
11
19
  readonly SAppShell: Readonly<{}>;
12
20
  readonly SDockRegion: Readonly<{}>;
13
21
  readonly SResizeHandle: Readonly<{
@@ -40,6 +48,7 @@ export declare const ownedAttributeSchemas: Readonly<{
40
48
  readonly 'data-testid': "data";
41
49
  }>;
42
50
  readonly SDrawer: Readonly<{}>;
51
+ readonly SOverlayHost: Readonly<{}>;
43
52
  readonly SFormGrid: Readonly<{}>;
44
53
  readonly SFormGridItem: Readonly<{}>;
45
54
  readonly SLeftSidebar: Readonly<{}>;
@@ -187,7 +196,6 @@ export declare const ownedAttributeSchemas: Readonly<{
187
196
  readonly 'aria-label': "string";
188
197
  readonly 'data-s-app-shell-brand-passive': "data";
189
198
  readonly 'data-testid': "data";
190
- readonly download: "string-or-boolean";
191
199
  readonly title: "string";
192
200
  }>;
193
201
  readonly SListbox: Readonly<{
@@ -211,7 +219,9 @@ export declare const ownedAttributeSchemas: Readonly<{
211
219
  readonly 'data-testid': "data";
212
220
  }>;
213
221
  readonly STextarea: Readonly<{
222
+ readonly 'aria-controls': "string";
214
223
  readonly 'aria-describedby': "string";
224
+ readonly 'aria-haspopup': "aria-haspopup";
215
225
  readonly 'aria-label': "string";
216
226
  readonly 'data-testid': "data";
217
227
  readonly autocomplete: "string";
@@ -4,6 +4,11 @@ function t(e) {
4
4
  return Object.freeze(e);
5
5
  }
6
6
  var n = Object.freeze({
7
+ STableFrame: t({}),
8
+ SRichImage: t({}),
9
+ STableSection: t({}),
10
+ STableRow: t({}),
11
+ STableCell: t({}),
7
12
  SAppShell: t({}),
8
13
  SDockRegion: t({}),
9
14
  SResizeHandle: t({ "data-test-id": "data" }),
@@ -24,6 +29,7 @@ var n = Object.freeze({
24
29
  SCloudChromeRow: t({}),
25
30
  SCollapsiblePanel: t({ "data-testid": "data" }),
26
31
  SDrawer: t({}),
32
+ SOverlayHost: t({}),
27
33
  SFormGrid: t({}),
28
34
  SFormGridItem: t({}),
29
35
  SLeftSidebar: t({}),
@@ -163,7 +169,6 @@ var n = Object.freeze({
163
169
  "aria-label": "string",
164
170
  "data-s-app-shell-brand-passive": "data",
165
171
  "data-testid": "data",
166
- download: "string-or-boolean",
167
172
  title: "string"
168
173
  }),
169
174
  SListbox: t({
@@ -185,7 +190,9 @@ var n = Object.freeze({
185
190
  "data-testid": "data"
186
191
  }),
187
192
  STextarea: t({
193
+ "aria-controls": "string",
188
194
  "aria-describedby": "string",
195
+ "aria-haspopup": "aria-haspopup",
189
196
  "aria-label": "string",
190
197
  "data-testid": "data",
191
198
  autocomplete: "string",
@@ -17,6 +17,8 @@ export declare function validateBoolean(owner: string, coordinate: string, value
17
17
  * Validates an HTML DOM id: a non-empty string without ASCII whitespace.
18
18
  */
19
19
  export declare function validateDomId(owner: string, coordinate: string, value: unknown): string;
20
+ /** Validates an explicit single-space DOM IDREF list without rewriting input identities. */
21
+ export declare function validateDomIdReferences(owner: string, coordinate: string, value: unknown): string;
20
22
  /**
21
23
  * Возвращает generated DOM id только при отсутствии явного значения и валидирует обе ветки.
22
24
  * Returns a generated DOM id only when the explicit value is absent and validates both branches.
@@ -26,23 +26,28 @@ function o(n, r, i) {
26
26
  let a = t(i);
27
27
  throw TypeError(`${n}: ${r} должен быть непустым DOM id без ASCII-пробелов; получено ${a}. / ${n}: ${r} must be a non-empty DOM id without ASCII whitespace; received ${a}.`);
28
28
  }
29
- function s(e, t, n, r) {
29
+ function s(e, t, n) {
30
+ let r = i(e, t, n);
31
+ for (let [n, i] of r.split(" ").entries()) o(e, `${t}[${n}]`, i);
32
+ return r;
33
+ }
34
+ function c(e, t, n, r) {
30
35
  return n === void 0 ? o(e, `generated ${t}`, r) : o(e, t, n);
31
36
  }
32
- function c(e, n, i, a) {
37
+ function l(e, n, i, a) {
33
38
  if (r(e, n, a), typeof i == "string" && a.includes(i)) return i;
34
39
  let o = `[${a.map((e) => JSON.stringify(e)).join(", ")}]`, s = t(i);
35
40
  throw TypeError(`${e}: ${n} должен быть одним из ${o}; получено ${s}. / ${e}: ${n} must be one of ${o}; received ${s}.`);
36
41
  }
37
- function l(e, r, i, a) {
42
+ function u(e, r, i, a) {
38
43
  if (n(e, r, a, !1), typeof i == "number" && Number.isFinite(i) && i >= a.minimum && i <= a.maximum) return i;
39
44
  let o = t(i);
40
45
  throw TypeError(`${e}: ${r} должен быть конечным числом в диапазоне [${a.minimum}, ${a.maximum}]; получено ${o}. / ${e}: ${r} must be a finite number in the inclusive range [${a.minimum}, ${a.maximum}]; received ${o}.`);
41
46
  }
42
- function u(e, r, i, a) {
47
+ function d(e, r, i, a) {
43
48
  if (n(e, r, a, !0), typeof i == "number" && Number.isInteger(i) && i >= a.minimum && i <= a.maximum) return i;
44
49
  let o = t(i);
45
50
  throw TypeError(`${e}: ${r} должен быть целым числом в диапазоне [${a.minimum}, ${a.maximum}]; получено ${o}. / ${e}: ${r} must be an integer in the inclusive range [${a.minimum}, ${a.maximum}]; received ${o}.`);
46
51
  }
47
52
  //#endregion
48
- export { s as resolveOptionalDomId, a as validateBoolean, u as validateBoundedInteger, l as validateBoundedNumber, o as validateDomId, c as validateExactString, i as validateNonEmptyString };
53
+ export { c as resolveOptionalDomId, a as validateBoolean, d as validateBoundedInteger, u as validateBoundedNumber, o as validateDomId, s as validateDomIdReferences, l as validateExactString, i as validateNonEmptyString };
@@ -1,4 +1,5 @@
1
1
  import { Ref } from 'vue';
2
+ import { SMenuLayerApi } from '../components/shared/_internal/SMenuLayer.vue';
2
3
  export type MenuAnchor = {
3
4
  type: 'element';
4
5
  element: HTMLElement;
@@ -9,14 +10,16 @@ export type MenuAnchor = {
9
10
  x: number;
10
11
  y: number;
11
12
  };
12
- export type MenuCloseReason = 'escape' | 'outside' | 'programmatic' | 'selection' | 'trigger';
13
+ export type MenuCloseReason = 'escape' | 'outside' | 'programmatic' | 'selection' | 'trigger' | 'tab';
13
14
  /** Управляет общей lifecycle/focus границей menu поверх canonical floating geometry. / Owns menu lifecycle and focus over canonical floating geometry. */
14
- export declare function useMenuLayer(layerRef: Ref<HTMLElement | null>, options?: {
15
- onDismiss?: (reason: 'escape' | 'outside') => void;
16
- onRequestDismiss?: (reason: 'escape' | 'outside') => void;
15
+ export declare function useMenuLayer(layerApiRef: Ref<SMenuLayerApi | null>, options?: {
16
+ onDismiss?: (reason: 'escape' | 'outside' | 'tab') => void;
17
+ onRequestDismiss?: (reason: 'escape' | 'outside' | 'tab') => void;
18
+ onRetire?: () => void;
17
19
  }): {
18
20
  isOpen: Ref<boolean, boolean>;
19
21
  position: Ref<import('../composables/useFloatingPosition').FloatingCoordinates, import('../composables/useFloatingPosition').FloatingCoordinates>;
22
+ availableSize: Ref<import('../composables/useFloatingPosition').FloatingAvailableSize | null, import('../composables/useFloatingPosition').FloatingAvailableSize | null>;
20
23
  zIndex: Ref<string, string>;
21
24
  open: (nextAnchor: MenuAnchor, focusTarget?: HTMLElement | null) => Promise<void>;
22
25
  close: (reason?: MenuCloseReason) => void;