@pgcorp/ui-kit 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/README.md +1055 -31
  2. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_a1f403e2_lang.css +1 -0
  3. package/dist/assets/src/components/layout/{SResizeHandle.vue_vue_type_style_index_0_scoped_90cc655e_lang.css → SResizeHandle.vue_vue_type_style_index_0_scoped_dc65aba1_lang.css} +1 -1
  4. package/dist/assets/src/components/layout/{SWorkbenchPanelShell.css_vue_type_style_index_0_src_1030a231_scoped_1030a231_lang.css → SWorkbenchPanelShell.css_vue_type_style_index_0_src_f9faa52a_scoped_f9faa52a_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_a108e8f1_scoped_a108e8f1_lang.css +2 -0
  6. package/dist/assets/src/components/shared/_internal/{SListboxGroup.css_vue_type_style_index_0_src_518787d3_scoped_518787d3_lang.css → SListboxGroup.css_vue_type_style_index_0_src_00060944_scoped_00060944_lang.css} +1 -1
  7. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css +1 -0
  8. package/dist/assets/src/components/shared/containers/{SCollapsiblePanel.css_vue_type_style_index_0_src_71824088_scoped_71824088_lang.css → SCollapsiblePanel.css_vue_type_style_index_0_src_db85261d_scoped_db85261d_lang.css} +1 -1
  9. package/dist/assets/src/components/shared/containers/SOverlayHost.css_vue_type_style_index_0_src_09215628_scoped_09215628_lang.css +2 -0
  10. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_a4f1f64a_scoped_a4f1f64a_lang.css +2 -0
  11. package/dist/assets/src/components/shared/containers/{SSidebarGroup.css_vue_type_style_index_0_src_3e8bc2d7_scoped_3e8bc2d7_lang.css → SSidebarGroup.css_vue_type_style_index_0_src_5b1eeb6c_scoped_5b1eeb6c_lang.css} +1 -1
  12. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_52396e42_scoped_52396e42_lang.css +2 -0
  13. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +2 -0
  14. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_2562f916_scoped_2562f916_lang.css +2 -0
  15. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_d630c922_scoped_d630c922_lang.css +2 -0
  16. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_43b6e378_scoped_43b6e378_lang.css +1 -0
  17. package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_1ccb9efc_scoped_1ccb9efc_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_40040ae5_scoped_40040ae5_lang.css} +1 -1
  18. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_2d353c26_scoped_2d353c26_lang.css +2 -0
  19. package/dist/assets/src/components/shared/controls/{SInteractiveSurface.css_vue_type_style_index_0_src_998940dd_scoped_998940dd_lang.css → SInteractiveSurface.css_vue_type_style_index_0_src_5e422fac_scoped_5e422fac_lang.css} +1 -1
  20. package/dist/assets/src/components/shared/controls/{SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css → SLink.css_vue_type_style_index_0_src_ac46e5a4_scoped_ac46e5a4_lang.css} +1 -1
  21. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_50063f9f_scoped_50063f9f_lang.css +2 -0
  22. package/dist/assets/src/components/shared/controls/{SListboxOption.css_vue_type_style_index_0_src_77c399b4_scoped_77c399b4_lang.css → SListboxOption.css_vue_type_style_index_0_src_59c9c538_scoped_59c9c538_lang.css} +1 -1
  23. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_d2b7d71b_scoped_d2b7d71b_lang.css +2 -0
  24. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_d1ead6c0_scoped_d1ead6c0_lang.css +2 -0
  25. package/dist/assets/src/components/shared/controls/STextarea.css_vue_type_style_index_0_src_true_lang.css +1 -1
  26. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_a69aa84b_scoped_a69aa84b_lang.css +2 -0
  27. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_cad721dd_scoped_cad721dd_lang.css +2 -0
  28. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_8db085d5_scoped_8db085d5_lang.css +2 -0
  29. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_d94fcf8c_scoped_d94fcf8c_lang.css +2 -0
  30. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +1 -1
  31. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_b23b3d71_scoped_b23b3d71_lang.css +2 -0
  32. package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
  33. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_9fe3ade0_scoped_9fe3ade0_lang.css +2 -0
  34. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_eaae882d_scoped_eaae882d_lang.css +2 -0
  35. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_1f0ffc97_scoped_1f0ffc97_lang.css +2 -0
  36. package/dist/assets/src/components/shared/data-display/_internal/SRichImage.css_vue_type_style_index_0_src_2f1c39a9_scoped_2f1c39a9_lang.css +2 -0
  37. package/dist/assets/src/components/shared/data-display/_internal/{SRichInlineNode.css_vue_type_style_index_0_src_20c8cc87_scoped_20c8cc87_lang.css → SRichInlineNode.css_vue_type_style_index_0_src_3ca8df12_scoped_3ca8df12_lang.css} +1 -1
  38. package/dist/assets/src/components/shared/data-display/_internal/STableCell.css_vue_type_style_index_0_src_b829cbc6_scoped_b829cbc6_lang.css +2 -0
  39. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_914bad28_scoped_914bad28_lang.css +2 -0
  40. package/dist/assets/src/components/shared/data-display/_internal/STableRow.css_vue_type_style_index_0_src_1661f8b8_scoped_1661f8b8_lang.css +2 -0
  41. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_8a291af7_scoped_8a291af7_lang.css +2 -0
  42. package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_b3963080_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_68cf84b3_lang.css} +1 -1
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.js +3 -3
  45. package/dist/reference.css +4 -0
  46. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +15 -0
  47. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +4 -4
  48. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +46 -1
  49. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +260 -230
  50. package/dist/src/components/icons/sputnigUiIcons.d.ts +1 -1
  51. package/dist/src/components/icons/sputnigUiIcons.js +233 -218
  52. package/dist/src/components/layout/SAppShell.vue_vue_type_script_setup_true_lang.js +8 -8
  53. package/dist/src/components/layout/SDockRegion.vue.d.ts +18 -5
  54. package/dist/src/components/layout/SDockRegion.vue.js +2 -2
  55. package/dist/src/components/layout/SDockRegion.vue_vue_type_script_setup_true_lang.js +112 -64
  56. package/dist/src/components/layout/SResizeHandle.vue.d.ts +6 -3
  57. package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
  58. package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +127 -87
  59. package/dist/src/components/layout/SStack.vue.d.ts +1 -1
  60. package/dist/src/components/layout/SWorkbenchPanelShell.vue.d.ts +4 -4
  61. package/dist/src/components/layout/SWorkbenchPanelShell.vue.js +2 -2
  62. package/dist/src/components/layout/SWorkbenchPanelShell.vue_vue_type_script_setup_true_lang.js +62 -58
  63. package/dist/src/components/layout/types.d.ts +20 -0
  64. package/dist/src/components/shared/_internal/SDialogSurface.vue.d.ts +9 -1
  65. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  66. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +183 -68
  67. package/dist/src/components/shared/_internal/SHeaderSurface.vue.d.ts +1 -1
  68. package/dist/src/components/shared/_internal/SListboxGroup.vue.d.ts +5 -0
  69. package/dist/src/components/shared/_internal/SListboxGroup.vue.js +2 -2
  70. package/dist/src/components/shared/_internal/SListboxGroup.vue_vue_type_script_setup_true_lang.js +33 -15
  71. package/dist/src/components/shared/_internal/SMenuLayer.vue.d.ts +5 -1
  72. package/dist/src/components/shared/_internal/SMenuLayer.vue.js +2 -2
  73. package/dist/src/components/shared/_internal/SMenuLayer.vue_vue_type_script_setup_true_lang.js +64 -20
  74. package/dist/src/components/shared/_internal/dialogSurface.d.ts +17 -2
  75. package/dist/src/components/shared/_internal/dialogSurface.js +42 -23
  76. package/dist/src/components/shared/_internal/dialogSurfaceMotion.d.ts +14 -0
  77. package/dist/src/components/shared/_internal/dialogSurfaceMotion.js +84 -0
  78. package/dist/src/components/shared/_internal/focusTrap.js +15 -13
  79. package/dist/src/components/shared/_internal/listboxContext.d.ts +1 -0
  80. package/dist/src/components/shared/_internal/listboxInventory.d.ts +51 -0
  81. package/dist/src/components/shared/_internal/listboxInventory.js +85 -0
  82. package/dist/src/components/shared/_internal/menuContext.d.ts +8 -0
  83. package/dist/src/components/shared/_internal/menuContext.js +2 -2
  84. package/dist/src/components/shared/_internal/sidebarGroupContext.d.ts +1 -0
  85. package/dist/src/components/shared/_internal/useVirtualCollection.d.ts +45 -0
  86. package/dist/src/components/shared/_internal/useVirtualCollection.js +123 -0
  87. package/dist/src/components/shared/complex/SKanbanLane.vue_vue_type_script_setup_true_lang.js +5 -5
  88. package/dist/src/components/shared/containers/SCloudChrome.vue.d.ts +1 -1
  89. package/dist/src/components/shared/containers/SCloudChromeRow.vue.d.ts +1 -1
  90. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.d.ts +5 -0
  91. package/dist/src/components/shared/containers/SCollapsiblePanel.vue.js +2 -2
  92. package/dist/src/components/shared/containers/SCollapsiblePanel.vue_vue_type_script_setup_true_lang.js +123 -121
  93. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +16 -5
  94. package/dist/src/components/shared/containers/SDrawer.vue.js +3 -6
  95. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +149 -75
  96. package/dist/src/components/shared/containers/SModal.vue.d.ts +8 -8
  97. package/dist/src/components/shared/containers/SModal.vue.js +3 -6
  98. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +93 -85
  99. package/dist/src/components/shared/containers/SOverlayHost.vue.d.ts +16 -0
  100. package/dist/src/components/shared/containers/SOverlayHost.vue.js +8 -0
  101. package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +66 -0
  102. package/dist/src/components/shared/containers/SPageHeader.vue.d.ts +1 -1
  103. package/dist/src/components/shared/containers/SPanel.vue.d.ts +2 -2
  104. package/dist/src/components/shared/containers/SPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  105. package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
  106. package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +250 -156
  107. package/dist/src/components/shared/containers/SSidebarGroup.vue.js +2 -2
  108. package/dist/src/components/shared/containers/SSidebarGroup.vue_vue_type_script_setup_true_lang.js +30 -8
  109. package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
  110. package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +59 -45
  111. package/dist/src/components/shared/controls/SButton.vue.d.ts +7 -0
  112. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  113. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +11 -5
  114. package/dist/src/components/shared/controls/SCheckbox.vue.d.ts +3 -0
  115. package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
  116. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +53 -43
  117. package/dist/src/components/shared/controls/SCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -7
  118. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +4 -4
  119. package/dist/src/components/shared/controls/SColorSelect.vue_vue_type_script_setup_true_lang.js +6 -6
  120. package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
  121. package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +157 -132
  122. package/dist/src/components/shared/controls/SComboboxTrigger.vue.d.ts +2 -2
  123. package/dist/src/components/shared/controls/SContextMenu.vue.d.ts +11 -0
  124. package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
  125. package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +163 -73
  126. package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +6 -6
  127. package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +5 -5
  128. package/dist/src/components/shared/controls/SDropdownMenu.vue.js +2 -2
  129. package/dist/src/components/shared/controls/SDropdownMenu.vue_vue_type_script_setup_true_lang.js +77 -65
  130. package/dist/src/components/shared/controls/SField.vue.d.ts +9 -6
  131. package/dist/src/components/shared/controls/SField.vue.js +2 -2
  132. package/dist/src/components/shared/controls/SField.vue_vue_type_script_setup_true_lang.js +69 -52
  133. package/dist/src/components/shared/controls/SFieldGroup.vue_vue_type_script_setup_true_lang.js +13 -13
  134. package/dist/src/components/shared/controls/SInlineTokenEditor.vue_vue_type_script_setup_true_lang.js +26 -26
  135. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +21 -21
  136. package/dist/src/components/shared/controls/SInteractiveSurface.vue.js +2 -2
  137. package/dist/src/components/shared/controls/SInteractiveSurface.vue_vue_type_script_setup_true_lang.js +99 -74
  138. package/dist/src/components/shared/controls/SLink.d.ts +11 -1
  139. package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
  140. package/dist/src/components/shared/controls/SLink.vue.js +2 -2
  141. package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +157 -62
  142. package/dist/src/components/shared/controls/SListbox.vue.d.ts +10 -1
  143. package/dist/src/components/shared/controls/SListbox.vue.js +2 -2
  144. package/dist/src/components/shared/controls/SListbox.vue_vue_type_script_setup_true_lang.js +371 -189
  145. package/dist/src/components/shared/controls/SListboxOption.vue.d.ts +6 -0
  146. package/dist/src/components/shared/controls/SListboxOption.vue.js +2 -2
  147. package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +47 -34
  148. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  149. package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
  150. package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +145 -115
  151. package/dist/src/components/shared/controls/SRange.vue_vue_type_script_setup_true_lang.js +12 -12
  152. package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
  153. package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +130 -112
  154. package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
  155. package/dist/src/components/shared/controls/STextarea.vue.d.ts +28 -2
  156. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +348 -209
  157. package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +36 -36
  158. package/dist/src/components/shared/data-display/SActionList.vue.d.ts +1 -1
  159. package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +4 -4
  160. package/dist/src/components/shared/data-display/SActionListItem.vue_vue_type_script_setup_true_lang.js +6 -6
  161. package/dist/src/components/shared/data-display/SBadge.vue.d.ts +1 -1
  162. package/dist/src/components/shared/data-display/SChart.vue_vue_type_script_setup_true_lang.js +89 -89
  163. package/dist/src/components/shared/data-display/SChip.vue.d.ts +1 -1
  164. package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +7 -7
  165. package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +19 -19
  166. package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +37 -37
  167. package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +17 -17
  168. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +12 -12
  169. package/dist/src/components/shared/data-display/SControlledToastViewport.vue.js +2 -2
  170. package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +57 -48
  171. package/dist/src/components/shared/data-display/SDiffViewer.vue_vue_type_script_setup_true_lang.js +13 -13
  172. package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +12 -12
  173. package/dist/src/components/shared/data-display/SEmptyState.vue.d.ts +1 -1
  174. package/dist/src/components/shared/data-display/SEmptyState.vue_vue_type_script_setup_true_lang.js +4 -4
  175. package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +7 -7
  176. package/dist/src/components/shared/data-display/SKeyValueGrid.vue_vue_type_script_setup_true_lang.js +15 -15
  177. package/dist/src/components/shared/data-display/SLinkedSystemsList.vue_vue_type_script_setup_true_lang.js +17 -17
  178. package/dist/src/components/shared/data-display/SMessage.vue.d.ts +1 -1
  179. package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +9 -9
  180. package/dist/src/components/shared/data-display/SMetricCard.vue.d.ts +1 -1
  181. package/dist/src/components/shared/data-display/SProgressBar.vue.d.ts +22 -3
  182. package/dist/src/components/shared/data-display/SProgressBar.vue.js +2 -2
  183. package/dist/src/components/shared/data-display/SProgressBar.vue_vue_type_script_setup_true_lang.js +133 -47
  184. package/dist/src/components/shared/data-display/SProgressIndicator.vue_vue_type_script_setup_true_lang.js +4 -4
  185. package/dist/src/components/shared/data-display/SRichDocument.vue.js +2 -2
  186. package/dist/src/components/shared/data-display/SRichDocument.vue_vue_type_script_setup_true_lang.js +46 -23
  187. package/dist/src/components/shared/data-display/SScrollViewport.vue.d.ts +10 -5
  188. package/dist/src/components/shared/data-display/SScrollViewport.vue.js +2 -2
  189. package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +162 -111
  190. package/dist/src/components/shared/data-display/SSectionHeader.vue.d.ts +1 -1
  191. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +4 -4
  192. package/dist/src/components/shared/data-display/STable.vue.js +2 -2
  193. package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +343 -322
  194. package/dist/src/components/shared/data-display/STooltip.vue.d.ts +2 -2
  195. package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +284 -205
  196. package/dist/src/components/shared/data-display/STooltipAnchor.vue_vue_type_script_setup_true_lang.js +5 -5
  197. package/dist/src/components/shared/data-display/STooltipTarget.vue_vue_type_script_setup_true_lang.js +4 -4
  198. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  199. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +196 -246
  200. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
  201. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +242 -220
  202. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.d.ts +13 -2
  203. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.js +2 -2
  204. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue_vue_type_script_setup_true_lang.js +67 -11
  205. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.d.ts +11 -0
  206. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.js +8 -0
  207. package/dist/src/components/shared/data-display/_internal/SRichImage.vue_vue_type_script_setup_true_lang.js +89 -0
  208. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.d.ts +3 -2
  209. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.js +2 -2
  210. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue_vue_type_script_setup_true_lang.js +179 -125
  211. package/dist/src/components/shared/data-display/_internal/SRichMath.vue_vue_type_script_setup_true_lang.js +4 -4
  212. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.d.ts +21 -0
  213. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.js +5 -0
  214. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue_vue_type_script_setup_true_lang.js +150 -0
  215. package/dist/src/components/shared/data-display/_internal/STableCell.vue.d.ts +52 -0
  216. package/dist/src/components/shared/data-display/_internal/STableCell.vue.js +8 -0
  217. package/dist/src/components/shared/data-display/_internal/STableCell.vue_vue_type_script_setup_true_lang.js +148 -0
  218. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +42 -0
  219. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +8 -0
  220. package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +114 -0
  221. package/dist/src/components/shared/data-display/_internal/STableRow.vue.d.ts +43 -0
  222. package/dist/src/components/shared/data-display/_internal/STableRow.vue.js +8 -0
  223. package/dist/src/components/shared/data-display/_internal/STableRow.vue_vue_type_script_setup_true_lang.js +115 -0
  224. package/dist/src/components/shared/data-display/_internal/STableSection.vue.d.ts +28 -0
  225. package/dist/src/components/shared/data-display/_internal/STableSection.vue.js +5 -0
  226. package/dist/src/components/shared/data-display/_internal/STableSection.vue_vue_type_script_setup_true_lang.js +77 -0
  227. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.d.ts +6 -0
  228. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.js +136 -0
  229. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.d.ts +21 -0
  230. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.js +39 -0
  231. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.d.ts +30 -0
  232. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.js +88 -0
  233. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.d.ts +9 -0
  234. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.js +240 -0
  235. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.d.ts +15 -0
  236. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.js +61 -0
  237. package/dist/src/components/shared/data-display/_internal/richDocumentTypes.d.ts +466 -0
  238. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.d.ts +65 -0
  239. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.js +192 -0
  240. package/dist/src/components/shared/data-display/_internal/tableFoundation.d.ts +27 -0
  241. package/dist/src/components/shared/data-display/_internal/tableFoundation.js +16 -0
  242. package/dist/src/components/shared/data-display/richDocument.d.ts +3 -220
  243. package/dist/src/components/shared/data-display/richDocument.js +607 -399
  244. package/dist/src/components/shared/data-display/scrollViewport.d.ts +2 -0
  245. package/dist/src/components/shared/database/SDataGrid.vue_vue_type_script_setup_true_lang.js +36 -36
  246. package/dist/src/components/shared/database/SSqlEditor.vue.d.ts +2 -2
  247. package/dist/src/components/shared/database/SSqlEditor.vue_vue_type_script_setup_true_lang.js +36 -36
  248. package/dist/src/components/shared/feedback/SAsyncState.vue.js +2 -2
  249. package/dist/src/components/shared/feedback/SAsyncState.vue_vue_type_script_setup_true_lang.js +70 -63
  250. package/dist/src/components/shared/navigation/SBottomNav.vue.d.ts +2 -2
  251. package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
  252. package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +140 -129
  253. package/dist/src/components/shared/navigation/SBreadcrumbs.vue.d.ts +2 -2
  254. package/dist/src/components/shared/navigation/STabList.vue.d.ts +1 -1
  255. package/dist/src/components/shared/navigation/STabPanel.vue.d.ts +2 -2
  256. package/dist/src/components/shared/navigation/SWizardSteps.vue_vue_type_script_setup_true_lang.js +16 -16
  257. package/dist/src/components/shared/persona/SPersonaProjectPicker.vue.d.ts +2 -2
  258. package/dist/src/composables/useDialogOverlay.d.ts +21 -2
  259. package/dist/src/composables/useDialogOverlay.js +275 -44
  260. package/dist/src/composables/useFloatingPosition.d.ts +20 -0
  261. package/dist/src/composables/useFloatingPosition.js +129 -52
  262. package/dist/src/internal/fieldSurface.d.ts +3 -0
  263. package/dist/src/internal/fieldSurface.js +3 -2
  264. package/dist/src/internal/flatTree.d.ts +8 -0
  265. package/dist/src/internal/flatTree.js +23 -0
  266. package/dist/src/internal/focusNavigation.d.ts +5 -0
  267. package/dist/src/internal/focusNavigation.js +29 -16
  268. package/dist/src/internal/inertLease.d.ts +8 -0
  269. package/dist/src/internal/inertLease.js +33 -0
  270. package/dist/src/internal/layerStack.d.ts +52 -0
  271. package/dist/src/internal/layerStack.js +343 -60
  272. package/dist/src/internal/linkTarget.d.ts +7 -1
  273. package/dist/src/internal/linkTarget.js +11 -7
  274. package/dist/src/internal/nativeFocus.d.ts +4 -0
  275. package/dist/src/internal/nativeFocus.js +12 -0
  276. package/dist/src/internal/overlayHost.d.ts +18 -0
  277. package/dist/src/internal/overlayHost.js +18 -0
  278. package/dist/src/internal/overlayPortal.d.ts +17 -0
  279. package/dist/src/internal/overlayPortal.js +23 -0
  280. package/dist/src/internal/ownedAttrs.d.ts +13 -3
  281. package/dist/src/internal/ownedAttrs.js +8 -1
  282. package/dist/src/internal/runtimeContract.d.ts +2 -0
  283. package/dist/src/internal/runtimeContract.js +10 -5
  284. package/dist/src/internal/semanticSizing.d.ts +2 -2
  285. package/dist/src/internal/semanticSizing.js +2 -1
  286. package/dist/src/internal/useMenuLayer.d.ts +8 -4
  287. package/dist/src/internal/useMenuLayer.js +78 -49
  288. package/dist/src/internal/viewportModality.d.ts +27 -0
  289. package/dist/src/internal/viewportModality.js +132 -0
  290. package/dist/tailwind.css +3 -0
  291. package/dist/typography.LICENSE.txt +94 -0
  292. package/dist/typography.js +5105 -0
  293. package/docs/getting-started.md +39 -0
  294. package/docs/link-download.md +114 -0
  295. package/docs/listbox.md +129 -0
  296. package/docs/overlay-lifecycle.md +195 -0
  297. package/docs/public-api.md +335 -6
  298. package/docs/resize.md +158 -0
  299. package/docs/rich-document.md +442 -25
  300. package/docs/scroll-viewport.md +30 -10
  301. package/docs/theming.md +42 -8
  302. package/package.json +12 -4
  303. package/src/components/shared/_internal/SDialogSurface.css +213 -36
  304. package/src/components/shared/_internal/SMenuLayer.css +4 -0
  305. package/src/components/shared/containers/SOverlayHost.css +14 -0
  306. package/src/components/shared/containers/SPopover.css +8 -2
  307. package/src/components/shared/controls/SButton.css +4 -3
  308. package/src/components/shared/controls/SCheckbox.css +19 -7
  309. package/src/components/shared/controls/SField.css +6 -0
  310. package/src/components/shared/controls/SListbox.css +17 -0
  311. package/src/components/shared/controls/SMenuSurface.css +18 -4
  312. package/src/components/shared/controls/STextarea.css +42 -3
  313. package/src/components/shared/data-display/SControlledToastViewport.css +2 -10
  314. package/src/components/shared/data-display/SProgressBar.css +79 -0
  315. package/src/components/shared/data-display/SRichDocument.css +1 -0
  316. package/src/components/shared/data-display/SScrollViewport.css +17 -1
  317. package/src/components/shared/data-display/SStatus.css +8 -25
  318. package/src/components/shared/data-display/STable.css +0 -113
  319. package/src/components/shared/data-display/STooltip.css +3 -0
  320. package/src/components/shared/data-display/_internal/SRichBlockNode.css +11 -7
  321. package/src/components/shared/data-display/_internal/SRichDisclosure.css +16 -0
  322. package/src/components/shared/data-display/_internal/SRichImage.css +37 -0
  323. package/src/components/shared/data-display/_internal/STableCell.css +55 -0
  324. package/src/components/shared/data-display/_internal/STableFrame.css +37 -0
  325. package/src/components/shared/data-display/_internal/STableRow.css +12 -0
  326. package/src/components/shared/feedback/SAsyncState.css +0 -4
  327. package/src/styles/style.css +9 -5
  328. package/src/styles/tokens.css +30 -0
  329. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_2932631d_lang.css +0 -1
  330. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css +0 -2
  331. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css +0 -1
  332. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +0 -2
  333. package/dist/assets/src/components/shared/containers/SModal.css_vue_type_style_index_0_src_0dc51b74_scoped_0dc51b74_lang.css +0 -2
  334. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_deded766_scoped_deded766_lang.css +0 -2
  335. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_96f51ac6_scoped_96f51ac6_lang.css +0 -2
  336. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +0 -2
  337. package/dist/assets/src/components/shared/controls/SCheckbox.css_vue_type_style_index_0_src_b20b27dd_scoped_b20b27dd_lang.css +0 -2
  338. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_e3b4f580_scoped_e3b4f580_lang.css +0 -2
  339. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_00c91d39_scoped_00c91d39_lang.css +0 -1
  340. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_60628f96_scoped_60628f96_lang.css +0 -2
  341. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_24db4abb_scoped_24db4abb_lang.css +0 -2
  342. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_ddcc5fbb_scoped_ddcc5fbb_lang.css +0 -2
  343. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_441648c9_scoped_441648c9_lang.css +0 -2
  344. package/dist/assets/src/components/shared/data-display/SControlledToastViewport.css_vue_type_style_index_0_src_5864b6c6_scoped_5864b6c6_lang.css +0 -2
  345. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_9308293a_scoped_9308293a_lang.css +0 -2
  346. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_d1afafc5_scoped_d1afafc5_lang.css +0 -2
  347. package/dist/assets/src/components/shared/data-display/SScrollViewport.css_vue_type_style_index_0_src_e5d11342_scoped_e5d11342_lang.css +0 -2
  348. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_9955d482_scoped_9955d482_lang.css +0 -2
  349. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +0 -2
  350. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +0 -2
  351. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_fa94e2ff_scoped_fa94e2ff_lang.css +0 -2
  352. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_bfc28903_scoped_bfc28903_lang.css +0 -2
  353. package/src/components/shared/containers/SDrawer.css +0 -69
  354. package/src/components/shared/containers/SModal.css +0 -27
@@ -3,10 +3,10 @@ import { useOwnedAttrs as t } from "../../../internal/ownedAttrs.js";
3
3
  import { resolveSemanticToneBinding as n } from "../../../internal/semanticTone.js";
4
4
  import { PassiveContentBoundary as r, useInteractiveLeafRegistration as i } from "../../../internal/passiveContentContract.js";
5
5
  import { resolveLinkTarget as a } from "../../../internal/linkTarget.js";
6
- import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, mergeProps as p, openBlock as m, renderSlot as h, resolveDynamicComponent as g, toDisplayString as _, unref as v, useSlots as y, watchEffect 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, createVNode as d, defineComponent as f, mergeProps as p, openBlock as m, renderSlot as h, toDisplayString as g, unref as _, useSlots as v, watchEffect as y, withCtx as b } from "vue";
7
+ import { RouterLink as x } from "vue-router";
8
8
  //#region src/components/shared/controls/SInteractiveSurface.vue?vue&type=script&setup=true&lang.ts
9
- var C = [
9
+ var S = [
10
10
  "data-s-tone",
11
11
  "data-mode",
12
12
  "data-density",
@@ -20,17 +20,29 @@ var C = [
20
20
  "data-pressed",
21
21
  "data-disabled",
22
22
  "data-content-align"
23
- ], w = { class: "s-interactive-surface__layout" }, T = { class: "s-interactive-surface__primary" }, E = [
23
+ ], C = { class: "s-interactive-surface__layout" }, w = { class: "s-interactive-surface__primary" }, T = [
24
24
  "disabled",
25
25
  "aria-label",
26
26
  "aria-pressed"
27
- ], D = { class: "s-interactive-surface__accessible-label" }, O = { class: "s-interactive-surface__accessible-label" }, k = {
27
+ ], E = { class: "s-interactive-surface__accessible-label" }, D = [
28
+ "href",
29
+ "aria-label",
30
+ "aria-current",
31
+ "aria-disabled",
32
+ "tabindex",
33
+ "onClick"
34
+ ], O = { class: "s-interactive-surface__accessible-label" }, k = [
35
+ "aria-label",
36
+ "aria-current",
37
+ "aria-disabled",
38
+ "tabindex"
39
+ ], A = { class: "s-interactive-surface__accessible-label" }, j = {
28
40
  class: "s-interactive-surface__content",
29
41
  "data-passive-content": ""
30
- }, A = {
42
+ }, M = {
31
43
  key: 0,
32
44
  class: "s-interactive-surface__actions"
33
- }, j = /*@__PURE__*/ f({
45
+ }, N = /*@__PURE__*/ f({
34
46
  inheritAttrs: !1,
35
47
  __name: "SInteractiveSurface",
36
48
  props: {
@@ -50,32 +62,32 @@ var C = [
50
62
  tooltipTrigger: { default: void 0 }
51
63
  },
52
64
  emits: ["activate"],
53
- setup(f, { emit: j }) {
54
- let M = [
65
+ setup(f, { emit: N }) {
66
+ let P = [
55
67
  "default",
56
68
  "primary",
57
69
  "success",
58
70
  "danger"
59
- ], N = f, P = j, F = y(), I = t({
71
+ ], F = f, I = N, L = v(), R = t({
60
72
  component: "SInteractiveSurface",
61
73
  owner: "interactive surface owner"
62
- }), L = o(() => n("SInteractiveSurface", "tone", N.tone, M)), R = (e, t) => {
74
+ }), z = o(() => n("SInteractiveSurface", "tone", F.tone, P)), B = (e, t) => {
63
75
  if (e[t] !== void 0 && typeof e[t] != "boolean") throw TypeError(`SInteractiveSurface: surface.${t} должен быть boolean`);
64
- }, z = (e, t) => {
76
+ }, V = (e, t) => {
65
77
  let n = new Set(t), r = Object.keys(e).filter((e) => !n.has(e));
66
78
  if (r.length > 0) throw Error(`SInteractiveSurface: surface mode="${String(e.mode)}" не допускает поля ${r.join(", ")}`);
67
- }, B = o(() => {
68
- let e = N.surface;
79
+ }, H = o(() => {
80
+ let e = F.surface;
69
81
  if (typeof e != "object" || !e || Array.isArray(e)) throw TypeError("SInteractiveSurface: surface должен быть discriminated object");
70
82
  let t = e;
71
- if (t.mode === "static") return z(t, ["mode"]), { mode: "static" };
83
+ if (t.mode === "static") return V(t, ["mode"]), { mode: "static" };
72
84
  if (t.mode === "action") {
73
- if (z(t, [
85
+ if (V(t, [
74
86
  "mode",
75
87
  "accessibleLabel",
76
88
  "disabled",
77
89
  "pressed"
78
- ]), R(t, "disabled"), R(t, "pressed"), typeof t.accessibleLabel != "string" || !t.accessibleLabel.trim()) throw TypeError("SInteractiveSurface: accessibleLabel обязателен для mode=\"action\"");
90
+ ]), B(t, "disabled"), B(t, "pressed"), typeof t.accessibleLabel != "string" || !t.accessibleLabel.trim()) throw TypeError("SInteractiveSurface: accessibleLabel обязателен для mode=\"action\"");
79
91
  return {
80
92
  mode: "action",
81
93
  accessibleLabel: t.accessibleLabel,
@@ -84,7 +96,7 @@ var C = [
84
96
  };
85
97
  }
86
98
  if (t.mode === "link") {
87
- if (z(t, [
99
+ if (V(t, [
88
100
  "mode",
89
101
  "accessibleLabel",
90
102
  "disabled",
@@ -92,7 +104,7 @@ var C = [
92
104
  "rel",
93
105
  "href",
94
106
  "to"
95
- ]), R(t, "disabled"), typeof t.accessibleLabel != "string" || !t.accessibleLabel.trim()) throw TypeError("SInteractiveSurface: accessibleLabel обязателен для mode=\"link\"");
107
+ ]), B(t, "disabled"), typeof t.accessibleLabel != "string" || !t.accessibleLabel.trim()) throw TypeError("SInteractiveSurface: accessibleLabel обязателен для mode=\"link\"");
96
108
  let e = t.target ?? "_self";
97
109
  if (![
98
110
  "_self",
@@ -127,7 +139,7 @@ var C = [
127
139
  };
128
140
  }
129
141
  throw TypeError(`SInteractiveSurface: неизвестный surface.mode "${String(t.mode)}"`);
130
- }), V = [
142
+ }), U = [
131
143
  "ref",
132
144
  "aria-describedby",
133
145
  "onPointerenter",
@@ -137,21 +149,21 @@ var C = [
137
149
  "onPointercancel",
138
150
  "onFocusin",
139
151
  "onFocusout"
140
- ], H = o(() => {
141
- let t = N.tooltipTrigger;
152
+ ], W = o(() => {
153
+ let t = F.tooltipTrigger;
142
154
  if (t === void 0) return;
143
155
  if (typeof t != "object" || !t || Array.isArray(t)) throw TypeError("SInteractiveSurface: tooltipTrigger должен быть полным STooltip trigger binding. / SInteractiveSurface: tooltipTrigger must be a complete STooltip trigger binding.");
144
- let n = t, r = Object.keys(n).filter((e) => !V.includes(e)), i = V.filter((t) => !e(n, t));
156
+ let n = t, r = Object.keys(n).filter((e) => !U.includes(e)), i = U.filter((t) => !e(n, t));
145
157
  if (r.length > 0 || i.length > 0) throw Error(`SInteractiveSurface: tooltipTrigger имеет недопустимый набор ключей; missing=${i.join(",")}; unexpected=${r.join(",")}. / SInteractiveSurface: tooltipTrigger has an invalid key set; missing=${i.join(",")}; unexpected=${r.join(",")}.`);
146
158
  if (n["aria-describedby"] !== void 0 && typeof n["aria-describedby"] != "string") throw TypeError("SInteractiveSurface: tooltipTrigger aria-describedby должен быть string или undefined. / SInteractiveSurface: tooltipTrigger aria-describedby must be a string or undefined.");
147
159
  if (typeof n.ref != "function") throw TypeError("SInteractiveSurface: tooltipTrigger.ref должен быть callback ref. / SInteractiveSurface: tooltipTrigger.ref must be a callback ref.");
148
- for (let e of V) if (e !== "ref" && e !== "aria-describedby" && typeof n[e] != "function") throw TypeError(`SInteractiveSurface: tooltipTrigger.${e} должен быть function. / SInteractiveSurface: tooltipTrigger.${e} must be a function.`);
160
+ for (let e of U) if (e !== "ref" && e !== "aria-describedby" && typeof n[e] != "function") throw TypeError(`SInteractiveSurface: tooltipTrigger.${e} должен быть function. / SInteractiveSurface: tooltipTrigger.${e} must be a function.`);
149
161
  return t;
150
- }), U = () => ({
151
- ...I.bindings(),
152
- ...H.value ?? {}
153
- }), W = o(() => B.value.mode), G = o(() => B.value.mode === "static" ? !1 : B.value.disabled ?? !1), K = o(() => B.value.mode === "action" ? B.value.pressed : void 0), q = o(() => {
154
- let e = B.value;
162
+ }), G = () => ({
163
+ ...R.bindings(),
164
+ ...W.value ?? {}
165
+ }), K = o(() => H.value.mode), q = o(() => H.value.mode === "static" ? !1 : H.value.disabled ?? !1), J = o(() => H.value.mode === "action" ? H.value.pressed : void 0), Y = o(() => {
166
+ let e = H.value;
155
167
  return e.mode === "link" ? a({
156
168
  href: e.href,
157
169
  to: e.to,
@@ -159,81 +171,94 @@ var C = [
159
171
  rel: e.rel,
160
172
  owner: "SInteractiveSurface"
161
173
  }) : null;
162
- }), J = o(() => q.value?.kind === "router" ? S : "a"), Y = () => {
163
- let e = q.value;
174
+ }), X = () => {
175
+ let e = Y.value;
164
176
  if (!e) throw Error("SInteractiveSurface: link bindings requested outside link surface");
165
177
  return {
166
- ...U(),
167
- ...e.bindings
178
+ ...G(),
179
+ ...e.kind === "anchor" ? e.bindings : {
180
+ target: e.bindings.target,
181
+ rel: e.bindings.rel
182
+ }
168
183
  };
169
- }, X = o(() => {
170
- if (B.value.mode !== "static") return B.value.accessibleLabel.trim();
184
+ }, Z = o(() => {
185
+ if (H.value.mode !== "static") return H.value.accessibleLabel.trim();
171
186
  });
172
- b(() => {
173
- if (B.value.mode === "static" && H.value) throw Error("SInteractiveSurface: tooltipTrigger требует action или link surface. / SInteractiveSurface: tooltipTrigger requires an action or link surface.");
174
- H.value;
187
+ y(() => {
188
+ if (H.value.mode === "static" && W.value) throw Error("SInteractiveSurface: tooltipTrigger требует action или link surface. / SInteractiveSurface: tooltipTrigger requires an action or link surface.");
189
+ W.value;
175
190
  }), i({
176
191
  owner: "SInteractiveSurface",
177
- active: () => W.value !== "static"
192
+ active: () => K.value !== "static"
178
193
  });
179
- let Z = {
194
+ let Q = {
180
195
  owner: "SInteractiveSurface",
181
196
  region: "passive content-region",
182
- active: () => W.value !== "static",
197
+ active: () => K.value !== "static",
183
198
  guidance: "Передайте дополнительное действие через sibling action-region. / Put the additional action in the sibling action region."
184
199
  };
185
- function Q(e) {
186
- if (G.value) {
200
+ function $(e) {
201
+ if (q.value) {
187
202
  e.preventDefault();
188
203
  return;
189
204
  }
190
- P("activate", e);
205
+ I("activate", e);
191
206
  }
192
- function $(e) {
193
- P("activate", e);
207
+ function ee(e) {
208
+ I("activate", e);
209
+ }
210
+ function te(e, t) {
211
+ $(e), q.value || t(e);
194
212
  }
195
- return (e, t) => (m(), l("div", p(W.value === "static" ? v(I).bindings() : void 0, {
196
- "data-s-tone": L.value["data-s-tone"],
213
+ return (e, t) => (m(), l("div", p(K.value === "static" ? _(R).bindings() : void 0, {
214
+ "data-s-tone": z.value["data-s-tone"],
197
215
  class: "s-interactive-surface",
198
- "data-mode": W.value,
216
+ "data-mode": K.value,
199
217
  "data-density": f.density,
200
218
  "data-padding": f.padding,
201
219
  "data-radius": f.radius,
202
220
  "data-fill": f.fill,
203
221
  "data-appearance": f.appearance,
204
222
  "data-actions-layout": f.actionsLayout,
205
- "data-has-actions": !!F.actions || void 0,
223
+ "data-has-actions": !!L.actions || void 0,
206
224
  "data-selected": f.selected || void 0,
207
- "data-pressed": K.value,
208
- "data-disabled": G.value || void 0,
225
+ "data-pressed": J.value,
226
+ "data-disabled": q.value || void 0,
209
227
  "data-content-align": f.contentAlign
210
- }), [u("div", w, [u("div", T, [W.value === "action" ? (m(), l("button", p({ key: 0 }, U(), {
228
+ }), [u("div", C, [u("div", w, [K.value === "action" ? (m(), l("button", p({ key: 0 }, G(), {
211
229
  class: "s-interactive-surface__activation",
212
230
  type: "button",
213
- disabled: G.value,
214
- "aria-label": X.value,
215
- "aria-pressed": K.value,
216
- onClick: $
217
- }), [u("span", D, _(X.value), 1)], 16, E)) : W.value === "link" ? (m(), s(g(J.value), p({ key: 1 }, Y(), {
231
+ disabled: q.value,
232
+ "aria-label": Z.value,
233
+ "aria-pressed": J.value,
234
+ onClick: ee
235
+ }), [u("span", E, g(Z.value), 1)], 16, T)) : Y.value?.kind === "router" ? (m(), s(_(x), {
236
+ key: 1,
237
+ to: Y.value.bindings.to,
238
+ custom: ""
239
+ }, {
240
+ default: b(({ href: e, navigate: t }) => [u("a", p(X(), {
241
+ class: "s-interactive-surface__activation",
242
+ href: e,
243
+ "aria-label": Z.value,
244
+ "aria-current": f.selected ? "page" : void 0,
245
+ "aria-disabled": q.value || void 0,
246
+ tabindex: q.value ? -1 : void 0,
247
+ onClick: (e) => te(e, t)
248
+ }), [u("span", O, g(Z.value), 1)], 16, D)]),
249
+ _: 1
250
+ }, 8, ["to"])) : Y.value?.kind === "anchor" ? (m(), l("a", p({ key: 2 }, X(), {
218
251
  class: "s-interactive-surface__activation",
219
- "aria-label": X.value,
252
+ "aria-label": Z.value,
220
253
  "aria-current": f.selected ? "page" : void 0,
221
- "aria-disabled": G.value || void 0,
222
- tabindex: G.value ? -1 : void 0,
223
- onClick: Q
224
- }), {
225
- default: x(() => [u("span", O, _(X.value), 1)]),
226
- _: 1
227
- }, 16, [
228
- "aria-label",
229
- "aria-current",
230
- "aria-disabled",
231
- "tabindex"
232
- ])) : c("", !0), u("div", k, [d(v(r), { contract: Z }, {
233
- default: x(() => [h(e.$slots, "default", {}, void 0, !0)]),
254
+ "aria-disabled": q.value || void 0,
255
+ tabindex: q.value ? -1 : void 0,
256
+ onClick: $
257
+ }), [u("span", A, g(Z.value), 1)], 16, k)) : c("", !0), u("div", j, [d(_(r), { contract: Q }, {
258
+ default: b(() => [h(e.$slots, "default", {}, void 0, !0)]),
234
259
  _: 3
235
- })])]), e.$slots.actions ? (m(), l("div", A, [h(e.$slots, "actions", {}, void 0, !0)])) : c("", !0)])], 16, C));
260
+ })])]), e.$slots.actions ? (m(), l("div", M, [h(e.$slots, "actions", {}, void 0, !0)])) : c("", !0)])], 16, S));
236
261
  }
237
262
  });
238
263
  //#endregion
239
- export { j as default };
264
+ export { N as default };
@@ -36,20 +36,30 @@ export type LinkRouterTarget = string | LinkRouterLocation;
36
36
  export declare const LINK_BROWSING_TARGETS: readonly ["_self", "_blank", "_parent", "_top"];
37
37
  /** Допустимый browsing-context target ссылки. / Supported link browsing-context target. */
38
38
  export type LinkBrowsingTarget = typeof LINK_BROWSING_TARGETS[number];
39
+ /** Native download intent: a filename, browser-chosen name (true), or no download (false). */
40
+ export type LinkDownload = string | boolean;
39
41
  interface LinkDestinationOptions {
40
42
  readonly target?: LinkBrowsingTarget;
41
43
  readonly rel?: string;
42
44
  }
43
- /** Native href destination; router target is structurally forbidden. */
45
+ /** Ordinary native href navigation; router and download capabilities are structurally forbidden. */
44
46
  export type HrefLinkDestination = LinkDestinationOptions & {
45
47
  readonly href: string;
46
48
  readonly to?: never;
49
+ readonly download?: never;
47
50
  };
48
51
  /** Explicit named/path router destination; native href is structurally forbidden. */
49
52
  export type RouterLinkDestination = LinkDestinationOptions & {
50
53
  readonly href?: never;
51
54
  readonly to: LinkRouterTarget;
55
+ readonly download?: never;
52
56
  };
53
57
  /** Строгий XOR-контракт обычного destination. / Strict XOR contract for an ordinary destination. */
54
58
  export type LinkDestination = HrefLinkDestination | RouterLinkDestination;
59
+ /** Native href download capability supported by SButton and SLink, not navigation-item models. */
60
+ export type HrefDownloadDestination = Omit<HrefLinkDestination, 'download'> & {
61
+ readonly download?: LinkDownload;
62
+ };
63
+ /** Exact SButton/SLink destination capability: download is available in the href branch only. */
64
+ export type DownloadLinkDestination = HrefDownloadDestination | RouterLinkDestination;
55
65
  export type { LinkPresentationProps, Props as SLinkProps } from './SLink.vue';
@@ -1,5 +1,8 @@
1
1
  import { Component, VNodeChild } from 'vue';
2
+ import { InteractiveElementApi } from '../../../internal/interactiveElement';
2
3
  import { LinkBrowsingTarget, LinkRouterTarget } from './SLink';
4
+ /** Actual native activation owner for composition-owned focus and navigation. */
5
+ export type SLinkApi = InteractiveElementApi<HTMLAnchorElement>;
3
6
  /** Canonical presentation/state API owned by SLink. */
4
7
  export interface LinkPresentationProps {
5
8
  readonly variant?: 'default' | 'subtle' | 'brand' | 'navigation' | 'bottom-navigation' | 'document';
@@ -12,6 +15,13 @@ export interface LinkPresentationProps {
12
15
  readonly wrap?: 'normal' | 'anywhere';
13
16
  readonly contentKind?: 'text' | 'identifier';
14
17
  readonly leadingIcon?: Component;
18
+ /** Native semantic identity and scoped accessibility references for composed documents. */
19
+ readonly domId?: string;
20
+ readonly language?: string;
21
+ readonly direction?: 'ltr' | 'rtl' | 'auto';
22
+ readonly ariaLabel?: string;
23
+ readonly ariaLabelledby?: string;
24
+ readonly ariaDescribedby?: string;
15
25
  }
16
26
  interface LinkDestinationOptions {
17
27
  readonly target?: LinkBrowsingTarget;
@@ -21,9 +31,11 @@ interface LinkDestinationOptions {
21
31
  export type Props = LinkPresentationProps & LinkDestinationOptions & ({
22
32
  readonly href: string;
23
33
  readonly to?: never;
34
+ readonly download?: string | boolean;
24
35
  } | {
25
36
  readonly href?: never;
26
37
  readonly to: LinkRouterTarget;
38
+ readonly download?: never;
27
39
  });
28
40
  type __VLS_Slots = {
29
41
  /** Пассивный текст/inline-контент ссылки. / Passive text or inline link content. */
@@ -34,17 +46,21 @@ type __VLS_Slots = {
34
46
  declare const __VLS_base: import('vue').DefineComponent<(LinkPresentationProps & LinkDestinationOptions & {
35
47
  readonly href: string;
36
48
  readonly to?: never;
49
+ readonly download?: string | boolean;
37
50
  }) | (LinkPresentationProps & LinkDestinationOptions & {
38
51
  readonly href?: never;
39
52
  readonly to: LinkRouterTarget;
40
- }), {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
53
+ readonly download?: never;
54
+ }), SLinkApi, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
41
55
  click: (event: MouseEvent) => any;
42
56
  }, string, import('vue').PublicProps, Readonly<(LinkPresentationProps & LinkDestinationOptions & {
43
57
  readonly href: string;
44
58
  readonly to?: never;
59
+ readonly download?: string | boolean;
45
60
  }) | (LinkPresentationProps & LinkDestinationOptions & {
46
61
  readonly href?: never;
47
62
  readonly to: LinkRouterTarget;
63
+ readonly download?: never;
48
64
  })> & Readonly<{
49
65
  onClick?: ((event: MouseEvent) => any) | undefined;
50
66
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/controls/SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SLink.css_vue_type_style_index_0_src_ac46e5a4_scoped_ac46e5a4_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SLink.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/controls/SLink.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-c7ae14e1"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-ac46e5a4"]]);
7
7
  //#endregion
8
8
  export { n as default };
@@ -1,17 +1,50 @@
1
- import { useOwnedAttrs as e } from "../../../internal/ownedAttrs.js";
2
- import { PassiveContentBoundary as t, useInteractiveLeafRegistration as n } from "../../../internal/passiveContentContract.js";
3
- import { resolveLinkTarget as r } from "../../../internal/linkTarget.js";
4
- import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, mergeProps as d, openBlock as f, renderSlot as p, resolveDynamicComponent as m, unref as h, useSlots as g, withCtx as _ } from "vue";
5
- import { RouterLink as v } from "vue-router";
1
+ import { validateDomId as e, validateDomIdReferences as t, validateExactString as n, validateNonEmptyString as r } from "../../../internal/runtimeContract.js";
2
+ import { useOwnedAttrs as i } from "../../../internal/ownedAttrs.js";
3
+ import { PassiveContentBoundary as a, useInteractiveLeafRegistration as o } from "../../../internal/passiveContentContract.js";
4
+ import { resolveLinkTarget as s } from "../../../internal/linkTarget.js";
5
+ import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createVNode as p, defineComponent as m, mergeProps as h, openBlock as g, ref as _, renderSlot as v, resolveDynamicComponent as y, unref as b, useSlots as x, withCtx as S } from "vue";
6
+ import { RouterLink as C } from "vue-router";
6
7
  //#region src/components/shared/controls/SLink.vue?vue&type=script&setup=true&lang.ts
7
- var y = {
8
+ var w = [
9
+ "data-variant",
10
+ "data-external",
11
+ "data-active",
12
+ "data-width",
13
+ "data-size",
14
+ "data-underline",
15
+ "data-wrap",
16
+ "data-content-kind",
17
+ "aria-current",
18
+ "onClick"
19
+ ], T = {
8
20
  key: 0,
9
21
  class: "s-link__icon",
10
22
  "aria-hidden": "true"
11
- }, b = { class: "s-link__content" }, x = {
23
+ }, E = { class: "s-link__content" }, D = {
12
24
  key: 0,
13
25
  class: "s-link__trailing"
14
- }, S = /*@__PURE__*/ u({
26
+ }, O = [
27
+ "data-variant",
28
+ "data-external",
29
+ "data-active",
30
+ "data-disabled",
31
+ "data-width",
32
+ "data-size",
33
+ "data-underline",
34
+ "data-wrap",
35
+ "data-content-kind",
36
+ "aria-current",
37
+ "aria-disabled",
38
+ "tabindex",
39
+ "role"
40
+ ], k = {
41
+ key: 0,
42
+ class: "s-link__icon",
43
+ "aria-hidden": "true"
44
+ }, A = { class: "s-link__content" }, j = {
45
+ key: 0,
46
+ class: "s-link__trailing"
47
+ }, M = /*@__PURE__*/ m({
15
48
  inheritAttrs: !1,
16
49
  __name: "SLink",
17
50
  props: {
@@ -34,77 +67,139 @@ var y = {
34
67
  wrap: { default: "normal" },
35
68
  contentKind: { default: "text" },
36
69
  leadingIcon: {},
70
+ domId: {},
71
+ language: {},
72
+ direction: {},
73
+ ariaLabel: {},
74
+ ariaLabelledby: {},
75
+ ariaDescribedby: {},
37
76
  target: { default: "_self" },
38
77
  rel: {},
39
78
  href: {},
40
- to: {}
79
+ to: {},
80
+ download: {
81
+ type: [String, Boolean],
82
+ default: () => void 0
83
+ }
41
84
  },
42
85
  emits: ["click"],
43
- setup(u, { emit: S }) {
44
- let C = S, w = e({
86
+ setup(m, { expose: M, emit: N }) {
87
+ let P = N, F = i({
45
88
  component: "SLink",
46
89
  owner: "native navigation link"
47
- }), T = g();
48
- n({ owner: "SLink" });
49
- let E = {
90
+ }), I = _(null), L = x();
91
+ o({ owner: "SLink" });
92
+ let R = {
50
93
  owner: "SLink",
51
94
  region: "passive link content",
52
95
  guidance: "Вынесите control за границы ссылки. / Move the control outside the link."
53
- }, D = i(() => r({
54
- href: u.href,
55
- to: u.to,
56
- target: u.target,
57
- rel: u.rel,
96
+ }, z = c(() => s({
97
+ href: m.href,
98
+ to: m.to,
99
+ target: m.target,
100
+ rel: m.rel,
101
+ download: m.download,
58
102
  owner: "SLink"
59
- })), O = i(() => u.disabled ? "a" : D.value.kind === "router" ? v : "a"), k = () => ({
60
- ...w.bindings(),
61
- ...u.disabled ? {} : D.value.bindings
62
- });
63
- function A(e) {
64
- if (u.disabled) {
103
+ }));
104
+ function B(i) {
105
+ let a = z.value, o = {
106
+ id: m.domId === void 0 ? void 0 : e("SLink", "domId", m.domId),
107
+ lang: m.language === void 0 ? void 0 : r("SLink", "language", m.language),
108
+ dir: m.direction === void 0 ? void 0 : n("SLink", "direction", m.direction, [
109
+ "ltr",
110
+ "rtl",
111
+ "auto"
112
+ ]),
113
+ "aria-label": m.ariaLabel === void 0 ? void 0 : r("SLink", "ariaLabel", m.ariaLabel),
114
+ "aria-labelledby": m.ariaLabelledby === void 0 ? void 0 : t("SLink", "ariaLabelledby", m.ariaLabelledby),
115
+ "aria-describedby": m.ariaDescribedby === void 0 ? void 0 : t("SLink", "ariaDescribedby", m.ariaDescribedby)
116
+ };
117
+ if (m.disabled) return {
118
+ ...F.bindings(),
119
+ ...o
120
+ };
121
+ if (a.kind === "anchor") return {
122
+ ...F.bindings(),
123
+ ...o,
124
+ ...a.bindings
125
+ };
126
+ if (i === void 0) throw Error("SLink: native router href is unavailable");
127
+ return {
128
+ ...F.bindings(),
129
+ ...o,
130
+ href: i,
131
+ target: a.bindings.target,
132
+ rel: a.bindings.rel
133
+ };
134
+ }
135
+ function V(e) {
136
+ if (e !== null && !(e instanceof HTMLAnchorElement)) throw TypeError("SLink: native owner must be an HTMLAnchorElement");
137
+ I.value = e;
138
+ }
139
+ function H(e) {
140
+ if (m.disabled) {
65
141
  e.preventDefault(), e.stopImmediatePropagation();
66
142
  return;
67
143
  }
68
- C("click", e);
144
+ P("click", e);
69
145
  }
70
- return (e, n) => (f(), a(m(O.value), d(k(), {
71
- class: "s-link",
72
- "data-variant": u.variant,
73
- "data-external": u.external || void 0,
74
- "data-active": u.active || void 0,
75
- "data-disabled": u.disabled || void 0,
76
- "data-width": u.width,
77
- "data-size": u.size,
78
- "data-underline": u.underline,
79
- "data-wrap": u.wrap,
80
- "data-content-kind": u.contentKind,
81
- "aria-current": u.active ? "page" : void 0,
82
- "aria-disabled": u.disabled || void 0,
83
- tabindex: u.disabled ? -1 : void 0,
84
- role: u.disabled ? "link" : void 0,
85
- onClick: A
86
- }), {
87
- default: _(() => [u.leadingIcon ? (f(), s("span", y, [(f(), a(m(u.leadingIcon), { class: "s-link__icon-graphic" }))])) : o("", !0), l(h(t), { contract: E }, {
88
- default: _(() => [c("span", b, [p(e.$slots, "default", {}, void 0, !0)]), T.trailing ? (f(), s("span", x, [p(e.$slots, "trailing", {}, void 0, !0)])) : o("", !0)]),
146
+ async function U(e, t) {
147
+ H(e), e.defaultPrevented || await t(e);
148
+ }
149
+ function W() {
150
+ let e = I.value;
151
+ if (!e) throw Error("SLink: native activation element is unavailable");
152
+ return e;
153
+ }
154
+ return M({
155
+ getElement: W,
156
+ focus: (e) => W().focus(e)
157
+ }), (e, t) => z.value.kind === "router" && !m.disabled ? (g(), l(b(C), {
158
+ key: 0,
159
+ to: z.value.bindings.to,
160
+ custom: ""
161
+ }, {
162
+ default: S(({ href: t, navigate: n }) => [f("a", h({ ref: V }, B(t), {
163
+ class: "s-link",
164
+ "data-variant": m.variant,
165
+ "data-external": m.external || void 0,
166
+ "data-active": m.active || void 0,
167
+ "data-width": m.width,
168
+ "data-size": m.size,
169
+ "data-underline": m.underline,
170
+ "data-wrap": m.wrap,
171
+ "data-content-kind": m.contentKind,
172
+ "aria-current": m.active ? "page" : void 0,
173
+ onClick: (e) => U(e, n)
174
+ }), [m.leadingIcon ? (g(), d("span", T, [(g(), l(y(m.leadingIcon), { class: "s-link__icon-graphic" }))])) : u("", !0), p(b(a), { contract: R }, {
175
+ default: S(() => [f("span", E, [v(e.$slots, "default", {}, void 0, !0)]), L.trailing ? (g(), d("span", D, [v(e.$slots, "trailing", {}, void 0, !0)])) : u("", !0)]),
89
176
  _: 3
90
- })]),
177
+ })], 16, w)]),
178
+ _: 3
179
+ }, 8, ["to"])) : (g(), d("a", h({
180
+ key: 1,
181
+ ref: V
182
+ }, B(), {
183
+ class: "s-link",
184
+ "data-variant": m.variant,
185
+ "data-external": m.external || void 0,
186
+ "data-active": m.active || void 0,
187
+ "data-disabled": m.disabled || void 0,
188
+ "data-width": m.width,
189
+ "data-size": m.size,
190
+ "data-underline": m.underline,
191
+ "data-wrap": m.wrap,
192
+ "data-content-kind": m.contentKind,
193
+ "aria-current": m.active ? "page" : void 0,
194
+ "aria-disabled": m.disabled || void 0,
195
+ tabindex: m.disabled ? -1 : void 0,
196
+ role: m.disabled ? "link" : void 0,
197
+ onClick: H
198
+ }), [m.leadingIcon ? (g(), d("span", k, [(g(), l(y(m.leadingIcon), { class: "s-link__icon-graphic" }))])) : u("", !0), p(b(a), { contract: R }, {
199
+ default: S(() => [f("span", A, [v(e.$slots, "default", {}, void 0, !0)]), L.trailing ? (g(), d("span", j, [v(e.$slots, "trailing", {}, void 0, !0)])) : u("", !0)]),
91
200
  _: 3
92
- }, 16, [
93
- "data-variant",
94
- "data-external",
95
- "data-active",
96
- "data-disabled",
97
- "data-width",
98
- "data-size",
99
- "data-underline",
100
- "data-wrap",
101
- "data-content-kind",
102
- "aria-current",
103
- "aria-disabled",
104
- "tabindex",
105
- "role"
106
- ]));
201
+ })], 16, O));
107
202
  }
108
203
  });
109
204
  //#endregion
110
- export { S as default };
205
+ export { M as default };