@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
@@ -1,30 +1,34 @@
1
- import { useUiKitLocale as e } from "../../../composables/useUiKitLocale.js";
2
- import { useOwnedAttrs as t } from "../../../internal/ownedAttrs.js";
3
- import { validateBoolean as n, validateDomId as r, validateExactString as i, validateNonEmptyString as a } from "../../../internal/runtimeContract.js";
4
- import { useInteractiveLeafRegistration as ee } from "../../../internal/passiveContentContract.js";
5
- import { selectionKeyToken as o } from "../_internal/useSelectionRoving.js";
6
- import { isSelectionModelList as s, resolveSelectionInventory as te, validateSelectionModel as c } from "../_internal/selectionContract.js";
7
- import { listboxContextKey as ne } from "../_internal/listboxContext.js";
8
- import l from "../_internal/SListboxGroup.vue.js";
9
- import u from "./SListboxOption.vue.js";
10
- import { Fragment as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, defineComponent as g, mergeProps as re, onBeforeUnmount as ie, openBlock as _, provide as ae, renderList as v, toDisplayString as oe, unref as se, useId as ce, withCtx as y } from "vue";
1
+ import { validateBoolean as e, validateBoundedInteger as t, validateBoundedNumber as n, validateDomId as r, validateExactString as i, validateNonEmptyString as a } from "../../../internal/runtimeContract.js";
2
+ import { useUiKitLocale as ee } from "../../../composables/useUiKitLocale.js";
3
+ import { useOwnedAttrs as te } from "../../../internal/ownedAttrs.js";
4
+ import { useInteractiveLeafRegistration as ne } from "../../../internal/passiveContentContract.js";
5
+ import { selectionKeyToken as re } from "../_internal/useSelectionRoving.js";
6
+ import { isSelectionModelList as ie, resolveSelectionInventory as ae, validateSelectionModel as o } from "../_internal/selectionContract.js";
7
+ import { listboxContextKey as oe } from "../_internal/listboxContext.js";
8
+ import se from "../_internal/SListboxGroup.vue.js";
9
+ import ce from "./SListboxOption.vue.js";
10
+ import { CLEAR_OPTION_TOKEN as s, createListboxInventory as le, projectListboxEntries as ue } from "../_internal/listboxInventory.js";
11
+ import { useVirtualCollection as de } from "../_internal/useVirtualCollection.js";
12
+ import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, defineComponent as p, mergeProps as fe, nextTick as m, normalizeStyle as pe, onBeforeUnmount as me, onMounted as he, openBlock as h, provide as ge, ref as g, renderList as _e, toDisplayString as ve, unref as _, useId as ye, watch as v, withCtx as be } from "vue";
11
13
  //#region src/components/shared/controls/SListbox.vue?vue&type=script&setup=true&lang.ts
12
- var b = [
14
+ var xe = [
13
15
  "id",
14
16
  "data-variant",
15
17
  "data-invalid",
16
18
  "data-readonly",
17
19
  "data-focus-mode",
20
+ "data-virtualized",
18
21
  "aria-label",
19
22
  "aria-multiselectable",
20
23
  "aria-disabled",
21
24
  "aria-readonly",
22
- "aria-invalid"
23
- ], le = {
24
- key: 1,
25
+ "aria-invalid",
26
+ "tabindex"
27
+ ], Se = {
28
+ key: 2,
25
29
  class: "s-listbox__empty",
26
30
  role: "presentation"
27
- }, x = /*@__PURE__*/ g({
31
+ }, Ce = /*@__PURE__*/ p({
28
32
  inheritAttrs: !1,
29
33
  __name: "SListbox",
30
34
  props: {
@@ -48,6 +52,7 @@ var b = [
48
52
  id: { default: void 0 },
49
53
  focusMode: { default: "roving" },
50
54
  activeValue: { default: void 0 },
55
+ virtualization: { default: void 0 },
51
56
  selectionMode: { default: void 0 },
52
57
  modelValue: {}
53
58
  },
@@ -55,162 +60,265 @@ var b = [
55
60
  "update:modelValue",
56
61
  "update:activeValue",
57
62
  "option-keydown",
63
+ "active-descendant-change",
58
64
  "escape",
59
65
  "tab"
60
66
  ],
61
- setup(g, { expose: x, emit: S }) {
62
- let C = g, { t: ue } = e(), w = S, de = t({
67
+ setup(p, { expose: Ce, emit: we }) {
68
+ let y = p, { t: Te } = ee(), b = we, Ee = te({
63
69
  component: "SListbox",
64
70
  owner: "listbox root"
65
71
  });
66
- ee({ owner: "SListbox" });
67
- let fe = ce(), T = f(() => {
68
- let e = i("SListbox", "selectionMode", C.selectionMode ?? "single", ["single", "multiple"]), t;
69
- if (C.clearOptionLabel !== void 0) {
70
- if (e === "multiple") throw Error("SListbox: clearOptionLabel is available only in single selection mode");
71
- t = a("SListbox", "clearOptionLabel", C.clearOptionLabel);
72
+ ne({ owner: "SListbox" });
73
+ let De = ye(), x = l(() => {
74
+ let t = i("SListbox", "selectionMode", y.selectionMode ?? "single", ["single", "multiple"]), n;
75
+ if (y.clearOptionLabel !== void 0) {
76
+ if (t === "multiple") throw Error("SListbox: clearOptionLabel is available only in single selection mode");
77
+ n = a("SListbox", "clearOptionLabel", y.clearOptionLabel);
72
78
  }
73
79
  return {
74
- id: C.id === void 0 ? `s-listbox-${fe}` : r("SListbox", "id", C.id),
75
- label: a("SListbox", "label", C.label),
76
- emptyLabel: a("SListbox", "emptyLabel", C.emptyLabel ?? ue("forms.noOptions")),
77
- variant: i("SListbox", "variant", C.variant, ["select", "color"]),
78
- disabled: n("SListbox", "disabled", C.disabled),
79
- readonly: n("SListbox", "readonly", C.readonly),
80
- invalid: n("SListbox", "invalid", C.invalid),
81
- focusMode: i("SListbox", "focusMode", C.focusMode, ["roving", "activedescendant"]),
82
- selectionMode: e,
83
- clearOptionLabel: t
80
+ id: y.id === void 0 ? `s-listbox-${De}` : r("SListbox", "id", y.id),
81
+ label: a("SListbox", "label", y.label),
82
+ emptyLabel: a("SListbox", "emptyLabel", y.emptyLabel ?? Te("forms.noOptions")),
83
+ variant: i("SListbox", "variant", y.variant, ["select", "color"]),
84
+ disabled: e("SListbox", "disabled", y.disabled),
85
+ readonly: e("SListbox", "readonly", y.readonly),
86
+ invalid: e("SListbox", "invalid", y.invalid),
87
+ focusMode: i("SListbox", "focusMode", y.focusMode, ["roving", "activedescendant"]),
88
+ selectionMode: t,
89
+ clearOptionLabel: n
84
90
  };
85
- }), E = f(() => T.value.id), D = f(() => T.value.label), O = f(() => T.value.emptyLabel), k = f(() => T.value.variant), A = f(() => T.value.disabled), j = f(() => T.value.readonly), M = f(() => T.value.invalid), N = f(() => T.value.selectionMode), P = f(() => T.value.focusMode), F = f(() => T.value.clearOptionLabel), I = f(() => {
86
- let e = te("SListbox", C.options);
91
+ }), S = l(() => x.value.id), Oe = l(() => x.value.label), ke = l(() => x.value.emptyLabel), C = l(() => x.value.variant), w = l(() => x.value.disabled), T = l(() => x.value.readonly), Ae = l(() => x.value.invalid), E = l(() => x.value.selectionMode), D = l(() => x.value.focusMode), O = l(() => x.value.clearOptionLabel), je = l(() => {
92
+ let e = ae("SListbox", y.options);
87
93
  return {
88
94
  inventory: e,
89
- selectedTokens: c("SListbox", T.value.selectionMode, C.modelValue, e)
95
+ selectedTokens: o("SListbox", x.value.selectionMode, y.modelValue, e)
90
96
  };
91
- }), L = f(() => I.value.inventory), R = f(() => I.value.selectedTokens), z = f(() => k.value === "color" ? "color" : "select"), B = "clear-option", V = f(() => {
92
- if (P.value === "roving") return;
93
- if (N.value !== "single") throw Error("SListbox: activedescendant focus mode supports single selection only");
94
- if (C.activeValue === void 0) throw TypeError("SListbox: activeValue is required in activedescendant focus mode");
95
- if (C.activeValue === null) return null;
96
- let e = o("SListbox", C.activeValue, "activeValue");
97
- if (!L.value.optionsByToken.has(e)) throw Error("SListbox: activeValue does not match any option");
97
+ }), k = l(() => je.value.inventory), Me = l(() => je.value.selectedTokens), Ne = l(() => C.value === "color" ? "color" : "select"), Pe = l(() => {
98
+ if (D.value === "roving") return;
99
+ if (E.value !== "single") throw Error("SListbox: activedescendant focus mode supports single selection only");
100
+ if (y.activeValue === void 0) throw TypeError("SListbox: activeValue is required in activedescendant focus mode");
101
+ if (y.activeValue === null) return null;
102
+ let e = re("SListbox", y.activeValue, "activeValue");
103
+ if (!k.value.optionsByToken.has(e)) throw Error("SListbox: activeValue does not match any option");
98
104
  return e;
99
- });
100
- function H(e) {
101
- return `${E.value}-option-${encodeURIComponent(e)}`;
105
+ }), A = g({ kind: "controlled" }), j = [], M = g(), N = l(() => {
106
+ let e = Pe.value;
107
+ if (e === void 0) return;
108
+ let t = A.value;
109
+ return t.kind === "controlled" ? e : t.kind === "reset" ? null : t.token;
110
+ }), P = g(null), F = g(), I = g([]), L = l(() => {
111
+ let e = y.virtualization;
112
+ if (e === void 0) return;
113
+ if (typeof e != "object" || !e || Array.isArray(e)) throw TypeError("SListbox: virtualization must be an object");
114
+ let r = /* @__PURE__ */ new Set([
115
+ "viewportHeight",
116
+ "estimatedItemHeight",
117
+ "overscan"
118
+ ]);
119
+ for (let t of Object.keys(e)) if (!r.has(t)) throw TypeError(`SListbox: virtualization.${t} is not part of the virtualization contract`);
120
+ if (C.value !== "select") throw Error("SListbox: virtualization supports the select variant only");
121
+ return {
122
+ viewportHeight: n("SListbox", "virtualization.viewportHeight", Reflect.get(e, "viewportHeight"), {
123
+ minimum: 1,
124
+ maximum: 1e5
125
+ }),
126
+ estimatedItemHeight: n("SListbox", "virtualization.estimatedItemHeight", Reflect.get(e, "estimatedItemHeight"), {
127
+ minimum: 1,
128
+ maximum: 1e5
129
+ }),
130
+ overscan: t("SListbox", "virtualization.overscan", Reflect.get(e, "overscan") === void 0 ? 8 : Reflect.get(e, "overscan"), {
131
+ minimum: 0,
132
+ maximum: 1e3
133
+ })
134
+ };
135
+ }), R = l(() => le(k.value, O.value, w.value)), z = l(() => R.value.navigation.filter((e) => !e.disabled)), B = g(null), Fe = g(0), V = g(0), Ie = l(() => V.value > 0 ? V.value : L.value?.viewportHeight ?? 0), H = null, U = de({
136
+ owner: "SListbox",
137
+ items: () => R.value.rows,
138
+ itemKey: (e) => e.key,
139
+ estimatedSize: () => L.value?.estimatedItemHeight ?? 1,
140
+ overscan: () => L.value?.overscan ?? 0,
141
+ scrollOffset: Fe,
142
+ viewportSize: Ie,
143
+ pinnedKeys: () => {
144
+ let e = D.value === "activedescendant" ? N.value : M.value;
145
+ return [.../* @__PURE__ */ new Set([
146
+ ...e == null ? [] : [e],
147
+ ...F.value === void 0 ? [] : [F.value],
148
+ ...I.value
149
+ ])];
150
+ },
151
+ observer: () => H
152
+ }), Le = l(() => L.value === void 0 ? R.value.entries : ue(R.value, U.visibleEntries.value.map((e) => e.item))), Re = l(() => L.value === void 0 || U.visibleEntries.value.some((e) => e.item.kind === "clear"));
153
+ function W(e, t = 0) {
154
+ if (L.value !== void 0) return U.offsets.value[e] - U.offsets.value[t];
102
155
  }
103
- function U(e) {
104
- if (T.value.selectionMode === "multiple") {
105
- if (!s(e)) throw TypeError("SListbox: multiple selection update must be an array");
106
- c("SListbox update", "multiple", e, L.value), w("update:modelValue", e);
156
+ function ze(e) {
157
+ return `${S.value}-option-${encodeURIComponent(e)}`;
158
+ }
159
+ function Be(e) {
160
+ if (x.value.selectionMode === "multiple") {
161
+ if (!ie(e)) throw TypeError("SListbox: multiple selection update must be an array");
162
+ o("SListbox update", "multiple", e, k.value), b("update:modelValue", e);
107
163
  return;
108
164
  }
109
- if (s(e)) throw TypeError("SListbox: single selection update must be a selection key or null");
110
- c("SListbox update", "single", e, L.value), w("update:modelValue", e);
165
+ if (ie(e)) throw TypeError("SListbox: single selection update must be a selection key or null");
166
+ o("SListbox update", "single", e, k.value), b("update:modelValue", e);
111
167
  }
112
- function pe(e) {
113
- return `${E.value}-${e.replace(/[^a-zA-Z0-9_-]/gu, "-")}-label`;
168
+ function Ve(e) {
169
+ let t = [...e].map((e) => e.codePointAt(0).toString(16)).join("-");
170
+ return `${S.value}-group-${t}-label`;
114
171
  }
115
- function W(e) {
116
- if (A.value || j.value) return;
117
- let t = L.value.optionsByToken.get(e);
172
+ function He(e) {
173
+ if (w.value || T.value) return;
174
+ let t = k.value.optionsByToken.get(e);
118
175
  if (!t) throw Error("SListbox: attempted to select a stale option identity");
119
176
  if (t.option.disabled) return;
120
- if (N.value === "single") {
121
- U(t.option.value);
177
+ if (E.value === "single") {
178
+ Be(t.option.value);
122
179
  return;
123
180
  }
124
- if (!Array.isArray(C.modelValue)) throw TypeError("SListbox: multiple selection requires modelValue to be an array");
125
- let n = [...C.modelValue], r = n.findIndex((t) => o("SListbox", t, "modelValue item") === e);
126
- r >= 0 ? n.splice(r, 1) : n.push(t.option.value), U(n);
181
+ if (!Array.isArray(y.modelValue)) throw TypeError("SListbox: multiple selection requires modelValue to be an array");
182
+ let n = [...y.modelValue], r = n.findIndex((t) => re("SListbox", t, "modelValue item") === e);
183
+ r >= 0 ? n.splice(r, 1) : n.push(t.option.value), Be(n);
127
184
  }
128
- function me() {
129
- if (!(A.value || j.value)) {
130
- if (N.value !== "single") throw Error("SListbox: clear selection is available only in single selection mode");
131
- U(null);
185
+ function Ue() {
186
+ if (!(w.value || T.value)) {
187
+ if (E.value !== "single") throw Error("SListbox: clear selection is available only in single selection mode");
188
+ Be(null);
132
189
  }
133
190
  }
134
- let G = /* @__PURE__ */ new Set(), K = "", q;
135
- function J() {
136
- return [...G].filter((e) => !e.disabled() && e.element.isConnected).sort((e, t) => {
137
- let n = e.element.compareDocumentPosition(t.element);
138
- return n & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : n & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
139
- });
140
- }
141
- function he() {
142
- let e = J();
143
- for (let e of G) e.element.tabIndex = -1;
144
- if (P.value === "activedescendant") return;
145
- let t = e.find((e) => e.selected()) ?? e[0];
146
- t && (t.element.tabIndex = 0);
191
+ let G = /* @__PURE__ */ new Map(), K = "", q, J = !1, We = 0;
192
+ function Ge() {
193
+ return z.value.find((e) => e.token === "clear-option" ? y.modelValue === null : Me.value.has(e.token)) ?? z.value[0];
147
194
  }
148
- ae(ne, { register: (e) => (G.add(e), queueMicrotask(he), () => G.delete(e)) });
149
- function Y(e) {
150
- for (let e of G) e.element.tabIndex = -1;
151
- e.element.tabIndex = 0, e.element.focus();
195
+ function Y() {
196
+ if (J) return;
197
+ for (let e of G.values()) e.element.tabIndex = -1;
198
+ if (D.value === "activedescendant") return;
199
+ let e = M.value === void 0 ? void 0 : R.value.navigationByToken.get(M.value), t = e && !e.disabled ? e : Ge();
200
+ M.value = t?.token;
201
+ let n = t === void 0 ? void 0 : G.get(t.token);
202
+ n && (n.element.tabIndex = 0);
152
203
  }
153
- function X(e) {
154
- if (P.value !== "activedescendant") return;
155
- let t = J().find((t) => t.token === e);
156
- t && w("update:activeValue", $(t));
204
+ ge(oe, {
205
+ register: (e) => {
206
+ if (G.has(e.token)) throw Error("SListbox: duplicate mounted option registration");
207
+ G.set(e.token, e), U.registerRenderedItem(e.token, e.element);
208
+ let t = () => {
209
+ M.value = e.token, Y();
210
+ };
211
+ return e.element.addEventListener("focus", t), queueMicrotask(Y), () => {
212
+ e.element.removeEventListener("focus", t), G.delete(e.token), U.unregisterRenderedItem(e.token);
213
+ };
214
+ },
215
+ registerGeometry: (e, t) => (U.registerRenderedItem(e, t), () => U.unregisterRenderedItem(e))
216
+ });
217
+ function X() {
218
+ let e = B.value;
219
+ e && (Fe.value = Math.max(0, e.scrollTop), V.value = e.clientHeight);
157
220
  }
158
221
  function Z(e) {
159
- let t = V.value;
160
- return t == null ? void 0 : e.find((e) => e.token === t);
222
+ if (L.value === void 0) return;
223
+ let t = U.offsetForIndex(e.rowIndex), n = B.value;
224
+ t !== null && n && (n.scrollTop = Math.max(0, t), X());
161
225
  }
162
- function ge() {
163
- if (P.value !== "activedescendant") throw Error("SListbox: initializeActive is available only in activedescendant focus mode");
164
- let e = J(), t = Z(e) ?? e.find((e) => e.selected()) ?? e[0];
165
- t && w("update:activeValue", $(t));
226
+ async function Ke(e) {
227
+ let t = ++We;
228
+ if (M.value = e.token, Z(e), G.has(e.token) || await m(), J || t !== We) return;
229
+ let n = G.get(e.token);
230
+ if (!n || !R.value.navigationByToken.has(e.token)) throw Error("SListbox: keyboard focus target became stale before mounting");
231
+ for (let e of G.values()) e.element.tabIndex = -1;
232
+ n.element.tabIndex = 0, n.element.focus();
166
233
  }
167
- function Q(e) {
168
- if (P.value !== "activedescendant") throw Error("SListbox: moveActive is available only in activedescendant focus mode");
169
- let t = J();
170
- if (t.length === 0) return;
171
- let n = Z(t), r = n === void 0 ? -1 : t.indexOf(n), i = t[e === "first" ? 0 : e === "last" ? t.length - 1 : e === "next" ? (Math.max(r, -1) + 1) % t.length : (r <= 0 ? t.length : r) - 1];
172
- i && w("update:activeValue", $(i));
234
+ function Q() {
235
+ if (J) return;
236
+ let e = N.value, t = e == null ? void 0 : G.get(e), n = t?.element.isConnected ? t.element.id : null;
237
+ if (P.value !== n) {
238
+ let t = F.value;
239
+ t !== void 0 && (I.value = [.../* @__PURE__ */ new Set([...I.value, t])]), P.value = n, F.value = n === null || e === null ? void 0 : e, b("active-descendant-change", n), m(() => {
240
+ I.value = [];
241
+ });
242
+ }
173
243
  }
174
- function _e() {
175
- if (P.value !== "activedescendant") throw Error("SListbox: selectActive is available only in activedescendant focus mode");
176
- j.value || A.value || Z(J())?.activate();
244
+ function $(e) {
245
+ if (D.value !== "activedescendant") return;
246
+ let t = R.value.navigationByToken.get(e);
247
+ t && !t.disabled && (qe({
248
+ kind: "target",
249
+ token: e
250
+ }), Z(t), b("update:activeValue", t.value), m(Q));
177
251
  }
178
- function ve(e, t) {
179
- return e.find((e) => e.element === t.target) ?? e.find((e) => e.element === document.activeElement) ?? e.find((e) => e.element.tabIndex === 0);
252
+ function qe(e) {
253
+ let t = j.findIndex((t) => e.kind === "reset" ? t.kind === "reset" : t.kind === "target" && t.token === e.token);
254
+ t >= 0 && j.splice(t, 1), j.push(e), A.value = e.kind === "reset" ? { kind: "reset" } : {
255
+ kind: "requested",
256
+ token: e.token
257
+ };
180
258
  }
181
- function $(e) {
182
- if (e.token === B) return null;
183
- let t = L.value.optionsByToken.get(e.token);
184
- if (!t) throw Error(`SListbox: registered option token ${JSON.stringify(e.token)} is stale`);
185
- return t.option.value;
259
+ function Je() {
260
+ if (D.value !== "activedescendant") throw Error("SListbox: initializeActive is available only in activedescendant focus mode");
261
+ let e = N.value, t = e == null ? void 0 : R.value.navigationByToken.get(e), n = t && !t.disabled ? t : Ge();
262
+ n && $(n.token);
263
+ }
264
+ function Ye(e) {
265
+ if (D.value !== "activedescendant") throw Error("SListbox: moveActive is available only in activedescendant focus mode");
266
+ i("SListbox", "moveActive intent", e, [
267
+ "next",
268
+ "previous",
269
+ "first",
270
+ "last"
271
+ ]);
272
+ let t = $e(e, N.value);
273
+ t && $(t.token);
186
274
  }
187
- function ye(e) {
188
- if (P.value === "activedescendant") return;
275
+ function Xe() {
276
+ if (D.value !== "activedescendant") throw Error("SListbox: selectActive is available only in activedescendant focus mode");
277
+ let e = N.value;
278
+ e != null && Qe(e);
279
+ }
280
+ function Ze() {
281
+ if (D.value !== "activedescendant") throw Error("SListbox: resetActive is available only in activedescendant focus mode");
282
+ qe({ kind: "reset" }), b("update:activeValue", null), m(Q);
283
+ }
284
+ function Qe(e) {
285
+ e === "clear-option" ? Ue() : He(e);
286
+ }
287
+ function $e(e, t) {
288
+ let n = z.value, r = n.findIndex((e) => e.token === t);
289
+ return n[e === "first" ? 0 : e === "last" ? n.length - 1 : e === "next" ? (r + 1) % n.length : (r <= 0 ? n.length : r) - 1];
290
+ }
291
+ function et(e) {
292
+ let t = ([...G.values()].find((t) => t.element === e.target) ?? [...G.values()].find((e) => e.element === document.activeElement))?.token ?? M.value;
293
+ return t === void 0 ? void 0 : R.value.navigationByToken.get(t);
294
+ }
295
+ function tt(e) {
296
+ if (D.value === "activedescendant") return;
189
297
  if (e.key === "Tab") {
190
- w("tab", e);
298
+ b("tab", e);
191
299
  return;
192
300
  }
193
301
  if (e.key === "Escape") {
194
- e.preventDefault(), w("escape");
302
+ e.preventDefault(), b("escape");
195
303
  return;
196
304
  }
197
- if (A.value) return;
198
- let t = J(), n = ve(t, e);
199
- if (n && (w("option-keydown", {
200
- value: $(n),
305
+ if (w.value) return;
306
+ let t = z.value, n = et(e);
307
+ if (n && (b("option-keydown", {
308
+ value: n.value,
201
309
  event: e
202
310
  }), e.defaultPrevented)) return;
203
311
  if (e.key === "Enter" || e.key === " ") {
204
- if (j.value || !n) return;
205
- e.preventDefault(), n.activate();
312
+ if (T.value || !n) return;
313
+ e.preventDefault(), Qe(n.token);
206
314
  return;
207
315
  }
208
316
  if (e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey) {
209
317
  K += e.key.toLocaleLowerCase(), q && clearTimeout(q), q = setTimeout(() => {
210
318
  K = "", q = void 0;
211
319
  }, 500);
212
- let r = [...K].every((e) => e === K[0]) ? K[0] : K, i = n === void 0 ? -1 : t.indexOf(n), a = (i >= 0 ? [...t.slice(i + 1), ...t.slice(0, i + 1)] : t).find((e) => e.label().toLocaleLowerCase().startsWith(r));
213
- a && (e.preventDefault(), Y(a));
320
+ let r = [...K].every((e) => e === K[0]) ? K[0] : K, i = n === void 0 ? -1 : t.indexOf(n), a = (i >= 0 ? [...t.slice(i + 1), ...t.slice(0, i + 1)] : t).find((e) => e.label.toLocaleLowerCase().startsWith(r));
321
+ a && (e.preventDefault(), Ke(a));
214
322
  return;
215
323
  }
216
324
  if (![
@@ -220,49 +328,102 @@ var b = [
220
328
  "End"
221
329
  ].includes(e.key) || t.length === 0) return;
222
330
  let r = n === void 0 ? -1 : t.indexOf(n), i = t[e.key === "Home" ? 0 : e.key === "End" ? t.length - 1 : e.key === "ArrowDown" ? (Math.max(r, -1) + 1) % t.length : (r <= 0 ? t.length : r) - 1];
223
- i && (e.preventDefault(), Y(i));
331
+ i && (e.preventDefault(), Ke(i));
224
332
  }
225
- function be() {
226
- if (P.value !== "roving") throw Error("SListbox: focusSelectedOrFirst is available only in roving focus mode");
227
- let e = J(), t = e.find((e) => e.selected()) ?? e[0];
228
- t && Y(t);
333
+ function nt() {
334
+ if (D.value !== "roving") throw Error("SListbox: focusSelectedOrFirst is available only in roving focus mode");
335
+ let e = Ge();
336
+ e && Ke(e);
229
337
  }
230
- return ie(() => {
231
- q && clearTimeout(q);
232
- }), x({
233
- focusSelectedOrFirst: be,
234
- initializeActive: ge,
235
- moveActive: Q,
236
- selectActive: _e
237
- }), (e, t) => (_(), h("ul", re(se(de).bindings(), {
238
- id: E.value,
338
+ v(() => y.activeValue, (e) => {
339
+ let t = e == null ? e : re("SListbox", e, "activeValue"), n = j.findIndex((e) => e.kind === "reset" || e.token === "clear-option" ? t === null : e.token === t), r = j[n];
340
+ if (r !== void 0) {
341
+ j.splice(0, n + 1);
342
+ let e = j[j.length - 1], t = e ?? r;
343
+ A.value = t.kind === "reset" ? { kind: "reset" } : {
344
+ kind: e === void 0 ? "acknowledged" : "requested",
345
+ token: t.token
346
+ };
347
+ } else j.length = 0, A.value = { kind: "controlled" };
348
+ }, { flush: "sync" }), v(N, (e) => {
349
+ let t = e == null ? void 0 : R.value.navigationByToken.get(e);
350
+ t && !t.disabled && Z(t), m(Q);
351
+ }, { flush: "post" }), v(() => U.itemKeys.value, (e) => {
352
+ U.prune(e);
353
+ let t = A.value;
354
+ if ((t.kind === "requested" || t.kind === "acknowledged") && !R.value.navigationByToken.has(t.token)) throw Error("SListbox: requested or acknowledged active option does not match any option");
355
+ queueMicrotask(Y), m(Q);
356
+ }, { flush: "sync" });
357
+ function rt() {
358
+ if (H?.disconnect(), H = null, !J && typeof ResizeObserver < "u" && L.value !== void 0) {
359
+ H = new ResizeObserver((e) => {
360
+ let t = D.value === "activedescendant" ? N.value : M.value, n = t == null ? void 0 : R.value.navigationByToken.get(t), r = n !== void 0 && U.offsetForIndex(n.rowIndex) === null, i = e.filter((e) => e.target !== B.value), a = U.measureItems(i);
361
+ X(), r && n && (a || e.some((e) => e.target === B.value)) && Z(n);
362
+ }), B.value && H.observe(B.value);
363
+ for (let e of U.renderedItemsByKey.values()) H.observe(e);
364
+ }
365
+ }
366
+ return v(L, () => {
367
+ rt(), X();
368
+ }, { flush: "post" }), he(() => {
369
+ X(), rt(), Y();
370
+ let e = D.value === "activedescendant" ? N.value : M.value, t = e == null ? void 0 : R.value.navigationByToken.get(e);
371
+ t && Z(t), m(Q);
372
+ }), me(() => {
373
+ J = !0, We += 1, q && clearTimeout(q), H?.disconnect(), U.clear(), P.value !== null && b("active-descendant-change", null);
374
+ }), Ce({
375
+ focusSelectedOrFirst: nt,
376
+ initializeActive: Je,
377
+ moveActive: Ye,
378
+ selectActive: Xe,
379
+ resetActive: Ze,
380
+ activeOptionId: P
381
+ }), (e, t) => (h(), f("ul", fe(_(Ee).bindings(), {
382
+ ref_key: "viewport",
383
+ ref: B,
384
+ id: S.value,
239
385
  class: "s-listbox",
240
- "data-variant": k.value,
241
- "data-invalid": M.value || void 0,
242
- "data-readonly": j.value || void 0,
243
- "data-focus-mode": P.value,
386
+ "data-variant": C.value,
387
+ "data-invalid": Ae.value || void 0,
388
+ "data-readonly": T.value || void 0,
389
+ "data-focus-mode": D.value,
390
+ "data-virtualized": L.value !== void 0 || void 0,
391
+ style: L.value === void 0 ? void 0 : { height: `${L.value.viewportHeight}px` },
244
392
  role: "listbox",
245
- "aria-label": D.value,
246
- "aria-multiselectable": N.value === "multiple" || void 0,
247
- "aria-disabled": A.value || void 0,
248
- "aria-readonly": j.value || void 0,
249
- "aria-invalid": M.value || void 0,
250
- onKeydown: ye
393
+ "aria-label": Oe.value,
394
+ "aria-multiselectable": E.value === "multiple" || void 0,
395
+ "aria-disabled": w.value || void 0,
396
+ "aria-readonly": T.value || void 0,
397
+ "aria-invalid": Ae.value || void 0,
398
+ tabindex: D.value === "activedescendant" ? -1 : w.value && L.value ? 0 : void 0,
399
+ onKeydown: tt,
400
+ onScrollPassive: X
251
401
  }), [
252
- F.value ? (_(), p(u, {
402
+ L.value ? (h(), f("li", {
253
403
  key: 0,
254
- "registration-token": B,
255
- id: H(B),
256
- label: F.value,
257
- title: F.value,
258
- selected: g.modelValue === null,
259
- disabled: A.value,
260
- appearance: z.value,
261
- active: V.value === B,
262
- "focus-on-select": P.value === "roving",
263
- onHover: t[0] ||= (e) => X(B),
264
- onSelect: me
404
+ class: "s-listbox__spacer",
405
+ role: "presentation",
406
+ "aria-hidden": "true",
407
+ style: pe({ height: `${_(U).totalHeight.value}px` })
408
+ }, null, 4)) : d("", !0),
409
+ O.value && Re.value ? (h(), u(ce, {
410
+ key: 1,
411
+ "registration-token": _(s),
412
+ id: ze(_(s)),
413
+ label: O.value,
414
+ title: O.value,
415
+ selected: p.modelValue === null,
416
+ disabled: w.value,
417
+ appearance: Ne.value,
418
+ active: N.value === _(s),
419
+ "focus-on-select": D.value === "roving",
420
+ position: L.value ? 1 : void 0,
421
+ "set-size": L.value ? R.value.setSize : void 0,
422
+ "virtual-offset": L.value ? 0 : void 0,
423
+ onHover: t[0] ||= (e) => $(_("clear-option")),
424
+ onSelect: Ue
265
425
  }, null, 8, [
426
+ "registration-token",
266
427
  "id",
267
428
  "label",
268
429
  "title",
@@ -270,22 +431,28 @@ var b = [
270
431
  "disabled",
271
432
  "appearance",
272
433
  "active",
273
- "focus-on-select"
274
- ])) : m("", !0),
275
- (_(!0), h(d, null, v(L.value.entries, (e) => (_(), h(d, { key: e.token }, [e.kind === "option" ? (_(), p(u, {
434
+ "focus-on-select",
435
+ "position",
436
+ "set-size",
437
+ "virtual-offset"
438
+ ])) : d("", !0),
439
+ (h(!0), f(c, null, _e(Le.value, (e) => (h(), f(c, { key: e.token }, [e.kind === "option" ? (h(), u(ce, {
276
440
  key: 0,
277
441
  "registration-token": e.record.token,
278
- id: H(e.record.token),
442
+ id: ze(e.record.token),
279
443
  label: e.record.option.label,
280
444
  title: e.record.option.title ?? e.record.option.label,
281
- selected: R.value.has(e.record.token),
282
- disabled: A.value || e.record.option.disabled,
445
+ selected: Me.value.has(e.record.token),
446
+ disabled: w.value || e.record.option.disabled,
283
447
  marker: e.record.option.marker,
284
- appearance: z.value,
285
- active: V.value === e.record.token,
286
- "focus-on-select": P.value === "roving",
287
- onHover: (t) => X(e.record.token),
288
- onSelect: (t) => W(e.record.token)
448
+ appearance: Ne.value,
449
+ active: N.value === e.record.token,
450
+ "focus-on-select": D.value === "roving",
451
+ position: L.value ? e.record.position : void 0,
452
+ "set-size": L.value ? R.value.setSize : void 0,
453
+ "virtual-offset": W(e.record.rowIndex),
454
+ onHover: (t) => $(e.record.token),
455
+ onSelect: (t) => He(e.record.token)
289
456
  }, null, 8, [
290
457
  "registration-token",
291
458
  "id",
@@ -297,28 +464,37 @@ var b = [
297
464
  "appearance",
298
465
  "active",
299
466
  "focus-on-select",
467
+ "position",
468
+ "set-size",
469
+ "virtual-offset",
300
470
  "onHover",
301
471
  "onSelect"
302
- ])) : (_(), p(l, {
472
+ ])) : (h(), u(se, {
303
473
  key: 1,
304
474
  label: e.label,
305
- "label-id": pe(e.token),
306
- variant: k.value
475
+ "label-id": Ve(e.token),
476
+ variant: C.value,
477
+ "registration-token": e.token,
478
+ "virtual-offset": W(e.headerIndex),
479
+ "virtual-height": L.value ? _(U).offsets.value[e.endIndex] - _(U).offsets.value[e.headerIndex] : void 0
307
480
  }, {
308
- default: y(() => [(_(!0), h(d, null, v(e.records, (e) => (_(), p(u, {
309
- key: e.token,
310
- "registration-token": e.token,
311
- id: H(e.token),
312
- label: e.option.label,
313
- title: e.option.title ?? e.option.label,
314
- selected: R.value.has(e.token),
315
- disabled: A.value || e.option.disabled,
316
- marker: e.option.marker,
317
- appearance: z.value,
318
- active: V.value === e.token,
319
- "focus-on-select": P.value === "roving",
320
- onHover: (t) => X(e.token),
321
- onSelect: (t) => W(e.token)
481
+ default: be(() => [(h(!0), f(c, null, _e(e.records, (t) => (h(), u(ce, {
482
+ key: t.token,
483
+ "registration-token": t.token,
484
+ id: ze(t.token),
485
+ label: t.option.label,
486
+ title: t.option.title ?? t.option.label,
487
+ selected: Me.value.has(t.token),
488
+ disabled: w.value || t.option.disabled,
489
+ marker: t.option.marker,
490
+ appearance: Ne.value,
491
+ active: N.value === t.token,
492
+ "focus-on-select": D.value === "roving",
493
+ position: L.value ? t.position : void 0,
494
+ "set-size": L.value ? R.value.setSize : void 0,
495
+ "virtual-offset": W(t.rowIndex, e.headerIndex),
496
+ onHover: (e) => $(t.token),
497
+ onSelect: (e) => He(t.token)
322
498
  }, null, 8, [
323
499
  "registration-token",
324
500
  "id",
@@ -330,6 +506,9 @@ var b = [
330
506
  "appearance",
331
507
  "active",
332
508
  "focus-on-select",
509
+ "position",
510
+ "set-size",
511
+ "virtual-offset",
333
512
  "onHover",
334
513
  "onSelect"
335
514
  ]))), 128))]),
@@ -337,11 +516,14 @@ var b = [
337
516
  }, 1032, [
338
517
  "label",
339
518
  "label-id",
340
- "variant"
519
+ "variant",
520
+ "registration-token",
521
+ "virtual-offset",
522
+ "virtual-height"
341
523
  ]))], 64))), 128)),
342
- L.value.options.length === 0 && !F.value ? (_(), h("li", le, oe(O.value), 1)) : m("", !0)
343
- ], 16, b));
524
+ k.value.options.length === 0 && !O.value ? (h(), f("li", Se, ve(ke.value), 1)) : d("", !0)
525
+ ], 16, xe));
344
526
  }
345
527
  });
346
528
  //#endregion
347
- export { x as default };
529
+ export { Ce as default };