@pgcorp/ui-kit 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +725 -19
- package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_a1f403e2_lang.css +1 -0
- package/dist/assets/src/components/layout/{SResizeHandle.vue_vue_type_style_index_0_scoped_90cc655e_lang.css → SResizeHandle.vue_vue_type_style_index_0_scoped_13b9b27a_lang.css} +1 -1
- 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
- package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_0e58afdc_scoped_0e58afdc_lang.css +2 -0
- 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
- package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css +1 -0
- package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_61cf20dd_scoped_61cf20dd_lang.css +2 -0
- package/dist/assets/src/components/shared/containers/{SModal.css_vue_type_style_index_0_src_0dc51b74_scoped_0dc51b74_lang.css → SModal.css_vue_type_style_index_0_src_42e1bd5f_scoped_42e1bd5f_lang.css} +1 -1
- package/dist/assets/src/components/shared/containers/SOverlayHost.css_vue_type_style_index_0_src_8f9be94e_scoped_8f9be94e_lang.css +2 -0
- package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_4091d007_scoped_4091d007_lang.css +2 -0
- 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
- package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_21f71ae8_scoped_21f71ae8_lang.css +2 -0
- package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +2 -0
- package/dist/assets/src/components/shared/controls/{SCheckbox.css_vue_type_style_index_0_src_b20b27dd_scoped_b20b27dd_lang.css → SCheckbox.css_vue_type_style_index_0_src_55d4826e_scoped_55d4826e_lang.css} +1 -1
- package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_537f5744_scoped_537f5744_lang.css +2 -0
- package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_03921269_scoped_03921269_lang.css +1 -0
- package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_1ccb9efc_scoped_1ccb9efc_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_857e2649_scoped_857e2649_lang.css} +1 -1
- package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_2d353c26_scoped_2d353c26_lang.css +2 -0
- 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
- 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
- package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_50063f9f_scoped_50063f9f_lang.css +2 -0
- 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
- package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_84109ad9_scoped_84109ad9_lang.css +2 -0
- package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_df3d6688_scoped_df3d6688_lang.css +2 -0
- package/dist/assets/src/components/shared/controls/STextarea.css_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_cad721dd_scoped_cad721dd_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_8db085d5_scoped_8db085d5_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +1 -1
- package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_b23b3d71_scoped_b23b3d71_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_9fe3ade0_scoped_9fe3ade0_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_eaae882d_scoped_eaae882d_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_1f0ffc97_scoped_1f0ffc97_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/_internal/SRichImage.css_vue_type_style_index_0_src_2f1c39a9_scoped_2f1c39a9_lang.css +2 -0
- 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
- package/dist/assets/src/components/shared/data-display/_internal/STableCell.css_vue_type_style_index_0_src_b829cbc6_scoped_b829cbc6_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_52b5825e_scoped_52b5825e_lang.css +2 -0
- package/dist/assets/src/components/shared/data-display/_internal/STableRow.css_vue_type_style_index_0_src_1661f8b8_scoped_1661f8b8_lang.css +2 -0
- package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_8a291af7_scoped_8a291af7_lang.css +2 -0
- package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_b3963080_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_24be0f2b_lang.css} +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -3
- package/dist/reference.css +4 -0
- package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +15 -0
- package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +4 -4
- package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +46 -1
- package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +260 -230
- package/dist/src/components/icons/sputnigUiIcons.d.ts +1 -1
- package/dist/src/components/icons/sputnigUiIcons.js +233 -218
- package/dist/src/components/layout/SAppShell.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/src/components/layout/SDockRegion.vue.d.ts +18 -5
- package/dist/src/components/layout/SDockRegion.vue.js +2 -2
- package/dist/src/components/layout/SDockRegion.vue_vue_type_script_setup_true_lang.js +112 -64
- package/dist/src/components/layout/SResizeHandle.vue.d.ts +6 -3
- package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
- package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +125 -87
- package/dist/src/components/layout/SStack.vue.d.ts +1 -1
- package/dist/src/components/layout/SWorkbenchPanelShell.vue.d.ts +4 -4
- package/dist/src/components/layout/SWorkbenchPanelShell.vue.js +2 -2
- package/dist/src/components/layout/SWorkbenchPanelShell.vue_vue_type_script_setup_true_lang.js +62 -58
- package/dist/src/components/layout/types.d.ts +20 -0
- package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
- package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +64 -41
- package/dist/src/components/shared/_internal/SHeaderSurface.vue.d.ts +1 -1
- package/dist/src/components/shared/_internal/SListboxGroup.vue.d.ts +5 -0
- package/dist/src/components/shared/_internal/SListboxGroup.vue.js +2 -2
- package/dist/src/components/shared/_internal/SListboxGroup.vue_vue_type_script_setup_true_lang.js +33 -15
- package/dist/src/components/shared/_internal/SMenuLayer.vue.d.ts +5 -1
- package/dist/src/components/shared/_internal/SMenuLayer.vue.js +2 -2
- package/dist/src/components/shared/_internal/SMenuLayer.vue_vue_type_script_setup_true_lang.js +64 -20
- package/dist/src/components/shared/_internal/dialogSurface.d.ts +15 -2
- package/dist/src/components/shared/_internal/dialogSurface.js +39 -23
- package/dist/src/components/shared/_internal/listboxContext.d.ts +1 -0
- package/dist/src/components/shared/_internal/listboxInventory.d.ts +51 -0
- package/dist/src/components/shared/_internal/listboxInventory.js +85 -0
- package/dist/src/components/shared/_internal/menuContext.d.ts +8 -0
- package/dist/src/components/shared/_internal/menuContext.js +2 -2
- package/dist/src/components/shared/_internal/sidebarGroupContext.d.ts +1 -0
- package/dist/src/components/shared/_internal/useVirtualCollection.d.ts +45 -0
- package/dist/src/components/shared/_internal/useVirtualCollection.js +123 -0
- package/dist/src/components/shared/complex/SKanbanLane.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/src/components/shared/containers/SCloudChrome.vue.d.ts +1 -1
- package/dist/src/components/shared/containers/SCloudChromeRow.vue.d.ts +1 -1
- package/dist/src/components/shared/containers/SDrawer.vue.d.ts +12 -1
- package/dist/src/components/shared/containers/SDrawer.vue.js +2 -2
- package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +151 -53
- package/dist/src/components/shared/containers/SModal.vue.js +2 -2
- package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +78 -54
- package/dist/src/components/shared/containers/SOverlayHost.vue.d.ts +16 -0
- package/dist/src/components/shared/containers/SOverlayHost.vue.js +8 -0
- package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/src/components/shared/containers/SPageHeader.vue.d.ts +1 -1
- package/dist/src/components/shared/containers/SPanel.vue.d.ts +1 -1
- package/dist/src/components/shared/containers/SPanel.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
- package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +214 -145
- package/dist/src/components/shared/containers/SSidebarGroup.vue.js +2 -2
- package/dist/src/components/shared/containers/SSidebarGroup.vue_vue_type_script_setup_true_lang.js +30 -8
- package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
- package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +58 -45
- package/dist/src/components/shared/controls/SButton.vue.d.ts +7 -0
- package/dist/src/components/shared/controls/SButton.vue.js +2 -2
- package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +11 -5
- package/dist/src/components/shared/controls/SCheckbox.vue.d.ts +3 -0
- package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
- package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +45 -41
- package/dist/src/components/shared/controls/SCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/controls/SColorSelect.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
- package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +147 -132
- package/dist/src/components/shared/controls/SComboboxTrigger.vue.d.ts +2 -2
- package/dist/src/components/shared/controls/SContextMenu.vue.d.ts +11 -0
- package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
- package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +144 -59
- package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/src/components/shared/controls/SDropdownMenu.vue.js +2 -2
- package/dist/src/components/shared/controls/SDropdownMenu.vue_vue_type_script_setup_true_lang.js +82 -75
- package/dist/src/components/shared/controls/SField.vue.d.ts +9 -6
- package/dist/src/components/shared/controls/SField.vue.js +2 -2
- package/dist/src/components/shared/controls/SField.vue_vue_type_script_setup_true_lang.js +69 -52
- package/dist/src/components/shared/controls/SFieldGroup.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/src/components/shared/controls/SInlineTokenEditor.vue_vue_type_script_setup_true_lang.js +26 -26
- package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/src/components/shared/controls/SInteractiveSurface.vue.js +2 -2
- package/dist/src/components/shared/controls/SInteractiveSurface.vue_vue_type_script_setup_true_lang.js +99 -74
- package/dist/src/components/shared/controls/SLink.d.ts +11 -1
- package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
- package/dist/src/components/shared/controls/SLink.vue.js +2 -2
- package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +157 -62
- package/dist/src/components/shared/controls/SListbox.vue.d.ts +10 -1
- package/dist/src/components/shared/controls/SListbox.vue.js +2 -2
- package/dist/src/components/shared/controls/SListbox.vue_vue_type_script_setup_true_lang.js +371 -189
- package/dist/src/components/shared/controls/SListboxOption.vue.d.ts +6 -0
- package/dist/src/components/shared/controls/SListboxOption.vue.js +2 -2
- package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +47 -34
- package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
- package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
- package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +147 -121
- package/dist/src/components/shared/controls/SRange.vue_vue_type_script_setup_true_lang.js +12 -12
- package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
- package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +126 -116
- package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
- package/dist/src/components/shared/controls/STextarea.vue.d.ts +28 -2
- package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +348 -209
- package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +36 -36
- package/dist/src/components/shared/data-display/SActionList.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +4 -4
- package/dist/src/components/shared/data-display/SActionListItem.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/src/components/shared/data-display/SBadge.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SChart.vue_vue_type_script_setup_true_lang.js +89 -89
- package/dist/src/components/shared/data-display/SChip.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +37 -37
- package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +12 -12
- package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/SDiffViewer.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +12 -12
- package/dist/src/components/shared/data-display/SEmptyState.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SEmptyState.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/src/components/shared/data-display/SKeyValueGrid.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/src/components/shared/data-display/SLinkedSystemsList.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/src/components/shared/data-display/SMessage.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/src/components/shared/data-display/SMetricCard.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SProgressBar.vue.d.ts +22 -3
- package/dist/src/components/shared/data-display/SProgressBar.vue.js +2 -2
- package/dist/src/components/shared/data-display/SProgressBar.vue_vue_type_script_setup_true_lang.js +133 -47
- package/dist/src/components/shared/data-display/SProgressIndicator.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/SRichDocument.vue.js +2 -2
- package/dist/src/components/shared/data-display/SRichDocument.vue_vue_type_script_setup_true_lang.js +46 -23
- package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/src/components/shared/data-display/SSectionHeader.vue.d.ts +1 -1
- package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/STable.vue.js +2 -2
- package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +343 -322
- package/dist/src/components/shared/data-display/STooltip.vue.d.ts +2 -2
- package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +181 -154
- package/dist/src/components/shared/data-display/STooltipAnchor.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/src/components/shared/data-display/STooltipTarget.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
- package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +196 -246
- package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
- package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +242 -220
- package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.d.ts +13 -2
- package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.js +2 -2
- package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue_vue_type_script_setup_true_lang.js +67 -11
- package/dist/src/components/shared/data-display/_internal/SRichImage.vue.d.ts +11 -0
- package/dist/src/components/shared/data-display/_internal/SRichImage.vue.js +8 -0
- package/dist/src/components/shared/data-display/_internal/SRichImage.vue_vue_type_script_setup_true_lang.js +89 -0
- package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.d.ts +3 -2
- package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.js +2 -2
- package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue_vue_type_script_setup_true_lang.js +179 -125
- package/dist/src/components/shared/data-display/_internal/SRichMath.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.d.ts +21 -0
- package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.js +5 -0
- package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue_vue_type_script_setup_true_lang.js +150 -0
- package/dist/src/components/shared/data-display/_internal/STableCell.vue.d.ts +52 -0
- package/dist/src/components/shared/data-display/_internal/STableCell.vue.js +8 -0
- package/dist/src/components/shared/data-display/_internal/STableCell.vue_vue_type_script_setup_true_lang.js +148 -0
- package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +42 -0
- package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +8 -0
- package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/src/components/shared/data-display/_internal/STableRow.vue.d.ts +43 -0
- package/dist/src/components/shared/data-display/_internal/STableRow.vue.js +8 -0
- package/dist/src/components/shared/data-display/_internal/STableRow.vue_vue_type_script_setup_true_lang.js +115 -0
- package/dist/src/components/shared/data-display/_internal/STableSection.vue.d.ts +28 -0
- package/dist/src/components/shared/data-display/_internal/STableSection.vue.js +5 -0
- package/dist/src/components/shared/data-display/_internal/STableSection.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentMedia.d.ts +6 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentMedia.js +136 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.d.ts +21 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.js +39 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.d.ts +30 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.js +88 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.d.ts +9 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.js +240 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.d.ts +15 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.js +61 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentTypes.d.ts +466 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentValidation.d.ts +65 -0
- package/dist/src/components/shared/data-display/_internal/richDocumentValidation.js +192 -0
- package/dist/src/components/shared/data-display/_internal/tableFoundation.d.ts +27 -0
- package/dist/src/components/shared/data-display/_internal/tableFoundation.js +16 -0
- package/dist/src/components/shared/data-display/richDocument.d.ts +3 -220
- package/dist/src/components/shared/data-display/richDocument.js +607 -399
- package/dist/src/components/shared/database/SDataGrid.vue_vue_type_script_setup_true_lang.js +36 -36
- package/dist/src/components/shared/database/SSqlEditor.vue.d.ts +2 -2
- package/dist/src/components/shared/database/SSqlEditor.vue_vue_type_script_setup_true_lang.js +36 -36
- package/dist/src/components/shared/feedback/SAsyncState.vue.js +2 -2
- package/dist/src/components/shared/feedback/SAsyncState.vue_vue_type_script_setup_true_lang.js +70 -63
- package/dist/src/components/shared/navigation/SBottomNav.vue.d.ts +2 -2
- package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
- package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +138 -129
- package/dist/src/components/shared/navigation/SBreadcrumbs.vue.d.ts +2 -2
- package/dist/src/components/shared/navigation/STabPanel.vue.d.ts +2 -2
- package/dist/src/components/shared/navigation/SWizardSteps.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/src/components/shared/persona/SPersonaProjectPicker.vue.d.ts +2 -2
- package/dist/src/composables/useDialogOverlay.d.ts +11 -2
- package/dist/src/composables/useDialogOverlay.js +202 -44
- package/dist/src/composables/useFloatingPosition.d.ts +20 -0
- package/dist/src/composables/useFloatingPosition.js +129 -52
- package/dist/src/internal/fieldSurface.d.ts +3 -0
- package/dist/src/internal/fieldSurface.js +3 -2
- package/dist/src/internal/focusNavigation.d.ts +2 -0
- package/dist/src/internal/focusNavigation.js +9 -9
- package/dist/src/internal/layerStack.d.ts +12 -0
- package/dist/src/internal/layerStack.js +138 -62
- package/dist/src/internal/linkTarget.d.ts +7 -1
- package/dist/src/internal/linkTarget.js +11 -7
- package/dist/src/internal/overlayHost.d.ts +18 -0
- package/dist/src/internal/overlayHost.js +18 -0
- package/dist/src/internal/ownedAttrs.d.ts +13 -3
- package/dist/src/internal/ownedAttrs.js +8 -1
- package/dist/src/internal/runtimeContract.d.ts +2 -0
- package/dist/src/internal/runtimeContract.js +10 -5
- package/dist/src/internal/useMenuLayer.d.ts +7 -4
- package/dist/src/internal/useMenuLayer.js +72 -49
- package/dist/tailwind.css +3 -0
- package/dist/typography.LICENSE.txt +94 -0
- package/dist/typography.js +5150 -0
- package/docs/getting-started.md +39 -0
- package/docs/link-download.md +114 -0
- package/docs/listbox.md +129 -0
- package/docs/public-api.md +196 -4
- package/docs/resize.md +129 -0
- package/docs/rich-document.md +442 -25
- package/package.json +12 -4
- package/src/components/shared/_internal/SDialogSurface.css +39 -7
- package/src/components/shared/_internal/SMenuLayer.css +4 -0
- package/src/components/shared/containers/SDrawer.css +20 -2
- package/src/components/shared/containers/SOverlayHost.css +14 -0
- package/src/components/shared/containers/SPopover.css +8 -2
- package/src/components/shared/controls/SButton.css +4 -0
- package/src/components/shared/controls/SField.css +6 -0
- package/src/components/shared/controls/SListbox.css +17 -0
- package/src/components/shared/controls/SMenuSurface.css +18 -4
- package/src/components/shared/controls/STextarea.css +42 -3
- package/src/components/shared/data-display/SProgressBar.css +79 -0
- package/src/components/shared/data-display/SRichDocument.css +1 -0
- package/src/components/shared/data-display/SStatus.css +8 -25
- package/src/components/shared/data-display/STable.css +0 -113
- package/src/components/shared/data-display/STooltip.css +4 -1
- package/src/components/shared/data-display/_internal/SRichBlockNode.css +11 -7
- package/src/components/shared/data-display/_internal/SRichDisclosure.css +16 -0
- package/src/components/shared/data-display/_internal/SRichImage.css +37 -0
- package/src/components/shared/data-display/_internal/STableCell.css +55 -0
- package/src/components/shared/data-display/_internal/STableFrame.css +41 -0
- package/src/components/shared/data-display/_internal/STableRow.css +12 -0
- package/src/components/shared/feedback/SAsyncState.css +0 -4
- package/src/styles/style.css +9 -5
- package/src/styles/tokens.css +30 -0
- package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_2932631d_lang.css +0 -1
- package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css +0 -2
- package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css +0 -1
- package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +0 -2
- package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_deded766_scoped_deded766_lang.css +0 -2
- package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_96f51ac6_scoped_96f51ac6_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_e3b4f580_scoped_e3b4f580_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_00c91d39_scoped_00c91d39_lang.css +0 -1
- package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_60628f96_scoped_60628f96_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_24db4abb_scoped_24db4abb_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_ddcc5fbb_scoped_ddcc5fbb_lang.css +0 -2
- package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_441648c9_scoped_441648c9_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_9308293a_scoped_9308293a_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_d1afafc5_scoped_d1afafc5_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_9955d482_scoped_9955d482_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +0 -2
- package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_fa94e2ff_scoped_fa94e2ff_lang.css +0 -2
- package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_bfc28903_scoped_bfc28903_lang.css +0 -2
|
@@ -1,52 +1,210 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { createAggregateError as e } from "../internal/es2020.js";
|
|
2
|
+
import { trapFocusInsidePanel as t } from "../components/shared/_internal/focusTrap.js";
|
|
3
|
+
import { registerLayer as n } from "../internal/layerStack.js";
|
|
4
|
+
import { useOverlayAdmission as r } from "../internal/overlayHost.js";
|
|
5
|
+
import { validateBoolean as i, validateExactString as a } from "../internal/runtimeContract.js";
|
|
6
|
+
import { inject as o, nextTick as s, onBeforeUnmount as c, onMounted as l, provide as u, readonly as d, ref as f, shallowRef as p, watch as m } from "vue";
|
|
4
7
|
//#region src/composables/useDialogOverlay.ts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
var h = Symbol("ui-kit-dialog-parent-lease");
|
|
9
|
+
function g(g) {
|
|
10
|
+
let _ = () => a("useDialogOverlay", "scope", g.scope?.value ?? "viewport", ["viewport", "contained"]), v = () => i("useDialogOverlay", "open", g.open.value), y = () => i("useDialogOverlay", "closable", g.closable.value), b = () => {
|
|
11
|
+
if (!g.host) throw TypeError("useDialogOverlay: scope=\"contained\" requires a parent SOverlayHost");
|
|
12
|
+
return g.host;
|
|
13
|
+
}, x = _(), S = v();
|
|
14
|
+
y(), x === "contained" && b(), g.validate?.();
|
|
15
|
+
let C = r(), w = f(null), T = o(h, null), E = p(null);
|
|
16
|
+
u(h, {
|
|
17
|
+
registration: E,
|
|
18
|
+
panel: w
|
|
19
|
+
});
|
|
20
|
+
let D = f(C.value && x === "viewport" && S), O = f(!1), k = f({}), A = f({}), j = null, M = !1, N = !1, P = !1, F = x, I = () => {
|
|
21
|
+
let e = b(), t = [
|
|
22
|
+
e.root.value,
|
|
23
|
+
e.content.value,
|
|
24
|
+
e.portal.value
|
|
25
|
+
];
|
|
26
|
+
for (let e of t) if (e !== null && !(e instanceof HTMLElement)) throw TypeError("useDialogOverlay: SOverlayHost refs must resolve to native HTMLElement or null");
|
|
27
|
+
let n = e.root.value, r = e.content.value, i = e.portal.value;
|
|
28
|
+
if (!n || !r || !i || !n.isConnected || !r.isConnected || !i.isConnected) return null;
|
|
29
|
+
if (n.ownerDocument !== document || r.ownerDocument !== document || i.ownerDocument !== document || r.parentElement !== n || i.parentElement !== n || r === i) throw TypeError("useDialogOverlay: SOverlayHost requires connected same-document sibling content/portal owners");
|
|
30
|
+
return e;
|
|
31
|
+
}, L = () => {
|
|
32
|
+
!P && v() && (P = !0, g.requestClose());
|
|
33
|
+
}, R = (t) => {
|
|
34
|
+
let n = j;
|
|
35
|
+
j = null, D.value = !1, k.value = {}, A.value = {};
|
|
36
|
+
let r = [];
|
|
37
|
+
try {
|
|
38
|
+
n?.registration?.unregister({
|
|
39
|
+
restoreFocus: t,
|
|
40
|
+
retireDescendants: !0
|
|
41
|
+
});
|
|
42
|
+
} catch (e) {
|
|
43
|
+
r.push(e);
|
|
44
|
+
}
|
|
45
|
+
E.value = null;
|
|
46
|
+
try {
|
|
47
|
+
n?.releaseHost?.();
|
|
48
|
+
} catch (e) {
|
|
49
|
+
r.push(e);
|
|
50
|
+
}
|
|
51
|
+
if (r.length === 1) throw r[0];
|
|
52
|
+
if (r.length > 1) throw e(r, "useDialogOverlay: layer and host retirement failed");
|
|
53
|
+
}, z = (t, n) => {
|
|
54
|
+
let r = [];
|
|
55
|
+
try {
|
|
56
|
+
R(t);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
r.push(e);
|
|
59
|
+
}
|
|
60
|
+
if (n) try {
|
|
61
|
+
L();
|
|
62
|
+
} catch (e) {
|
|
63
|
+
r.push(e);
|
|
10
64
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
65
|
+
if (r.length === 1) throw r[0];
|
|
66
|
+
if (r.length > 1) throw e(r, "useDialogOverlay: retirement and close intent failed");
|
|
67
|
+
}, B = (e = !0) => {
|
|
68
|
+
M = !0, z(e, !0);
|
|
69
|
+
}, V = (e) => j === e && O.value && !N && !M && C.value && v() && D.value, H = () => {
|
|
70
|
+
try {
|
|
71
|
+
let e = _(), t = v();
|
|
72
|
+
if (y(), e !== F && t) throw TypeError("useDialogOverlay: scope can change only while open=false");
|
|
73
|
+
e === "contained" && b(), g.validate?.();
|
|
74
|
+
} catch (t) {
|
|
75
|
+
M = !0;
|
|
76
|
+
try {
|
|
77
|
+
R(!1);
|
|
78
|
+
} catch (n) {
|
|
79
|
+
throw e([t, n], "useDialogOverlay: validation and resource retirement failed");
|
|
80
|
+
}
|
|
81
|
+
throw t;
|
|
82
|
+
}
|
|
83
|
+
}, U = async () => {
|
|
84
|
+
let e = j, r = w.value;
|
|
85
|
+
if (!e || !V(e) || !r?.isConnected || e.focusing) return;
|
|
86
|
+
let i = T?.registration.value ?? null;
|
|
87
|
+
if (T && (!i || !T.panel.value?.isConnected)) return;
|
|
88
|
+
if (e.scope === "contained" && e.portal?.contains(r) !== !0) throw TypeError("useDialogOverlay: contained dialog surface must mount inside its SOverlayHost portal");
|
|
89
|
+
H(), e.focusing = !0;
|
|
90
|
+
let a = e.scope === "contained";
|
|
91
|
+
if (a) {
|
|
92
|
+
let t = I();
|
|
93
|
+
if (!t || t.root.value !== e.root || t.content.value !== e.content || t.portal.value !== e.portal) {
|
|
94
|
+
B();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (e.releaseHost = t.acquire(B), !V(e)) {
|
|
98
|
+
e.releaseHost();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
let o = T?.panel.value ?? null, c = o && !o.contains(e.restoreTarget) ? o : e.restoreTarget;
|
|
103
|
+
if (e.registration = n({
|
|
16
104
|
kind: "dialog",
|
|
17
|
-
root: () =>
|
|
18
|
-
modal: !
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
105
|
+
root: () => w.value,
|
|
106
|
+
modal: !a,
|
|
107
|
+
parent: i,
|
|
108
|
+
eventBoundary: a ? () => e.root : void 0,
|
|
109
|
+
restoreTarget: c,
|
|
110
|
+
dismissOnEscape: y,
|
|
111
|
+
dismissOnOutsidePointer: y,
|
|
112
|
+
blocksParentFocusTrap: !a,
|
|
113
|
+
...a ? {} : { trapFocus: (e) => t(e, w, !0) },
|
|
114
|
+
requestDismiss: () => g.requestClose(),
|
|
115
|
+
onRetire: B
|
|
116
|
+
}), E.value = e.registration, k.value = { zIndex: e.registration.zIndex }, A.value = { zIndex: `calc(${e.registration.zIndex} + var(--s-layer-overlay-surface-offset))` }, await s(), !V(e) || w.value !== r || !r.isConnected || !e.registration.isTopmost()) return;
|
|
117
|
+
let l = document.activeElement, u = l === document.body && e.restoreTarget !== null && e.content?.contains(e.restoreTarget) && e.content.hasAttribute("inert");
|
|
118
|
+
(l === e.restoreTarget || u) && (r.focus({ preventScroll: a }), V(e) && document.activeElement === r && g.opened?.());
|
|
119
|
+
}, W = () => {
|
|
120
|
+
let e;
|
|
121
|
+
try {
|
|
122
|
+
let t = _(), n = v();
|
|
123
|
+
if (y(), t !== F && n) throw TypeError("useDialogOverlay: scope can change only while open=false");
|
|
124
|
+
t === "contained" && b(), g.validate?.(), e = {
|
|
125
|
+
valid: !0,
|
|
126
|
+
open: n,
|
|
127
|
+
scope: t,
|
|
128
|
+
host: O.value && t === "contained" ? I() : null,
|
|
129
|
+
parent: T?.registration.value ?? null,
|
|
130
|
+
admitted: C.value
|
|
131
|
+
};
|
|
132
|
+
} catch (t) {
|
|
133
|
+
e = {
|
|
134
|
+
valid: !1,
|
|
135
|
+
error: t
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return e;
|
|
139
|
+
}, G = (t) => {
|
|
140
|
+
if (!t.valid) {
|
|
141
|
+
M = !0;
|
|
142
|
+
try {
|
|
143
|
+
R(!1);
|
|
144
|
+
} catch (n) {
|
|
145
|
+
throw e([t.error, n], "useDialogOverlay: validation and resource retirement failed");
|
|
146
|
+
}
|
|
147
|
+
throw t.error;
|
|
148
|
+
}
|
|
149
|
+
let { open: n, scope: r, host: i, admitted: a } = t;
|
|
150
|
+
if (r !== F) {
|
|
151
|
+
if (n) throw TypeError("useDialogOverlay: scope can change only while open=false");
|
|
152
|
+
F = r, r === "contained" && b();
|
|
153
|
+
}
|
|
154
|
+
if (!n) {
|
|
155
|
+
M = !1, P = !1, R(a);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (!a) {
|
|
159
|
+
B(!1);
|
|
38
160
|
return;
|
|
39
161
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
162
|
+
if (!O.value || N || M) return;
|
|
163
|
+
if (j) {
|
|
164
|
+
(r === "contained" && (i === null || j.root !== i.root.value || j.content !== i.content.value || j.portal !== i.portal.value) || j.registration && T && !t.parent) && B();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (r === "contained" && !i) return;
|
|
168
|
+
let o = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
169
|
+
j = {
|
|
170
|
+
scope: r,
|
|
171
|
+
root: i?.root.value ?? null,
|
|
172
|
+
content: i?.content.value ?? null,
|
|
173
|
+
portal: i?.portal.value ?? null,
|
|
174
|
+
restoreTarget: o,
|
|
175
|
+
releaseHost: null,
|
|
176
|
+
registration: null,
|
|
177
|
+
focusing: !1
|
|
178
|
+
}, D.value = !0;
|
|
179
|
+
}, K = (e) => {
|
|
180
|
+
if (e !== null && !(e instanceof HTMLElement)) throw TypeError("Dialog overlay panel ref обязан указывать на HTMLElement");
|
|
181
|
+
w.value = e;
|
|
182
|
+
};
|
|
183
|
+
m(W, G, {
|
|
184
|
+
flush: "sync",
|
|
185
|
+
immediate: !0
|
|
186
|
+
}), m([
|
|
187
|
+
O,
|
|
188
|
+
w,
|
|
189
|
+
D,
|
|
190
|
+
() => T?.registration.value
|
|
191
|
+
], U, { flush: "post" }), l(() => {
|
|
192
|
+
O.value = !0;
|
|
193
|
+
});
|
|
194
|
+
let q = () => {
|
|
195
|
+
if (N) return;
|
|
196
|
+
N = !0;
|
|
197
|
+
let e = F === "contained" && v();
|
|
198
|
+
z(!1, e);
|
|
199
|
+
};
|
|
200
|
+
return c(q), {
|
|
201
|
+
panelRef: w,
|
|
202
|
+
renderOpen: d(D),
|
|
203
|
+
setPanelElement: K,
|
|
204
|
+
backdropStyle: k,
|
|
205
|
+
surfaceStyle: A,
|
|
206
|
+
dispose: q
|
|
49
207
|
};
|
|
50
208
|
}
|
|
51
209
|
//#endregion
|
|
52
|
-
export {
|
|
210
|
+
export { g as useDialogOverlay };
|
|
@@ -3,6 +3,16 @@ export type FloatingSide = 'top' | 'bottom' | 'left' | 'right';
|
|
|
3
3
|
export type FloatingAlignment = 'start' | 'center' | 'end';
|
|
4
4
|
export type FloatingPlacement = `${FloatingSide}-${FloatingAlignment}`;
|
|
5
5
|
export type FloatingWidthMatch = 'none' | 'min' | 'exact';
|
|
6
|
+
/** Доступные размеры border-box floating viewport. / Available floating viewport border-box dimensions. */
|
|
7
|
+
export interface FloatingAvailableSize {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
}
|
|
11
|
+
/** Native scroll/chrome owner и его естественный, не прокручиваемый контент. / Native scroll/chrome owner and its natural non-scrolling content. */
|
|
12
|
+
export interface FloatingSizingElements {
|
|
13
|
+
surface: HTMLElement;
|
|
14
|
+
content: HTMLElement;
|
|
15
|
+
}
|
|
6
16
|
export interface FloatingPositionOptions {
|
|
7
17
|
active: Readonly<Ref<boolean>>;
|
|
8
18
|
placement: () => FloatingPlacement;
|
|
@@ -14,6 +24,10 @@ export interface FloatingPositionOptions {
|
|
|
14
24
|
flip?: () => boolean;
|
|
15
25
|
shift?: () => boolean;
|
|
16
26
|
constrainMainAxis?: () => boolean;
|
|
27
|
+
/** Ограничивает viewport по natural content без clipped measurements. / Bounds the viewport using natural content, not clipped measurements. */
|
|
28
|
+
viewportSizing?: () => boolean;
|
|
29
|
+
/** Явные native владельцы размера; обязательны для viewportSizing. / Explicit native size owners, required for viewportSizing. */
|
|
30
|
+
sizingElements?: () => FloatingSizingElements | null;
|
|
17
31
|
widthMatch?: () => FloatingWidthMatch;
|
|
18
32
|
zIndex?: () => string;
|
|
19
33
|
scrollStrategy?: 'reposition' | 'close';
|
|
@@ -26,6 +40,7 @@ export interface FloatingPositionController {
|
|
|
26
40
|
arrowStyle: Ref<Record<string, string>>;
|
|
27
41
|
resolvedPlacement: Ref<FloatingPlacement>;
|
|
28
42
|
coordinates: Ref<FloatingCoordinates>;
|
|
43
|
+
availableSize: Ref<FloatingAvailableSize | null>;
|
|
29
44
|
updatePosition: () => void;
|
|
30
45
|
}
|
|
31
46
|
/** Координаты floating-поверхности во viewport. / Floating-surface viewport coordinates. */
|
|
@@ -36,5 +51,10 @@ export interface FloatingCoordinates {
|
|
|
36
51
|
/**
|
|
37
52
|
* Единый владелец geometry/collision/observer-контракта floating surfaces.
|
|
38
53
|
* Canonical owner of floating-surface geometry, collision and observers.
|
|
54
|
+
* Panel dimensions use the untransformed used CSS border box, preserving
|
|
55
|
+
* fractional pixels and content-box padding/borders. Non-resolved CSS sizes
|
|
56
|
+
* use native unscaled offset dimensions; visual anchor rectangles retain transforms.
|
|
57
|
+
* CSSOM: https://www.w3.org/TR/cssom-1/#resolved-values
|
|
58
|
+
* CSSOM View: https://www.w3.org/TR/cssom-view-1/#dom-htmlelement-offsetwidth
|
|
39
59
|
*/
|
|
40
60
|
export declare function useFloatingPosition(options: FloatingPositionOptions): FloatingPositionController;
|
|
@@ -28,97 +28,174 @@ function u(e, t) {
|
|
|
28
28
|
let n = Math.min(10, t / 2);
|
|
29
29
|
return Math.max(n, Math.min(e, t - n));
|
|
30
30
|
}
|
|
31
|
-
function d(
|
|
32
|
-
|
|
31
|
+
function d(e) {
|
|
32
|
+
if (!/^(?:\d+|\d*\.\d+)px$/u.test(e)) return null;
|
|
33
|
+
let t = Number(e.slice(0, -2));
|
|
34
|
+
return Number.isFinite(t) ? t : null;
|
|
35
|
+
}
|
|
36
|
+
function f(e, t, n) {
|
|
37
|
+
let r = d(e);
|
|
38
|
+
if (r === null) return null;
|
|
39
|
+
if (t === "border-box") return r;
|
|
40
|
+
let i = r;
|
|
41
|
+
for (let e of n) {
|
|
42
|
+
let t = d(e);
|
|
43
|
+
if (t === null) return null;
|
|
44
|
+
i += t;
|
|
45
|
+
}
|
|
46
|
+
return i;
|
|
47
|
+
}
|
|
48
|
+
function p(e) {
|
|
49
|
+
let t = window.getComputedStyle(e);
|
|
50
|
+
return {
|
|
51
|
+
width: f(t.width, t.boxSizing, [
|
|
52
|
+
t.paddingLeft,
|
|
53
|
+
t.paddingRight,
|
|
54
|
+
t.borderLeftWidth,
|
|
55
|
+
t.borderRightWidth
|
|
56
|
+
]) ?? e.offsetWidth,
|
|
57
|
+
height: f(t.height, t.boxSizing, [
|
|
58
|
+
t.paddingTop,
|
|
59
|
+
t.paddingBottom,
|
|
60
|
+
t.borderTopWidth,
|
|
61
|
+
t.borderBottomWidth
|
|
62
|
+
]) ?? e.offsetHeight
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function m(e) {
|
|
66
|
+
let { surface: t, content: n } = e;
|
|
67
|
+
if (!t.contains(n)) throw Error("useFloatingPosition: natural content must belong to its native sizing surface");
|
|
68
|
+
let r = p(t), i = p(n);
|
|
69
|
+
if (r.width === 0 && r.height === 0 && i.width === 0 && i.height === 0) return r;
|
|
70
|
+
let a = window.getComputedStyle(t), o = i.height;
|
|
71
|
+
for (let e of [
|
|
72
|
+
a.paddingTop,
|
|
73
|
+
a.paddingBottom,
|
|
74
|
+
a.borderTopWidth,
|
|
75
|
+
a.borderBottomWidth
|
|
76
|
+
]) {
|
|
77
|
+
let t = d(e);
|
|
78
|
+
if (t === null) throw Error("useFloatingPosition: sizing surface block edges must resolve to pixel lengths");
|
|
79
|
+
o += t;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
width: r.width,
|
|
83
|
+
height: o
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function h(s) {
|
|
87
|
+
let d = r(null), f = s.panelRef ?? r(null), h = r({}), g = r({}), _ = r(s.placement()), v = r({
|
|
33
88
|
left: -1e4,
|
|
34
89
|
top: -1e4
|
|
35
|
-
}),
|
|
36
|
-
if (!s.active.value || typeof window > "u") return;
|
|
90
|
+
}), y = r(null), b = null, x = !1, S = !1, C = !1, w = 0, T = () => {
|
|
91
|
+
if (C || !s.active.value || typeof window > "u") return;
|
|
37
92
|
let e = s.anchorElement?.() ?? d.value, t = f.value, n = s.anchorRect?.() ?? e?.getBoundingClientRect() ?? null;
|
|
38
93
|
if (!n || !t) return;
|
|
39
|
-
let r =
|
|
94
|
+
let r = s.viewportSizing?.() ?? !1, i = r ? s.sizingElements?.() : null;
|
|
95
|
+
if (r && !i) return;
|
|
96
|
+
let { width: b, height: x } = i ? m(i) : p(t), S = s.offset?.() ?? 6, w = s.boundaryPadding?.() ?? 8, T = window.innerWidth, E = window.innerHeight, [D, O] = o(s.placement()), k = D, A = c(k, O, n, b, x, S);
|
|
40
97
|
if (s.flip?.() ?? !0) {
|
|
41
|
-
let e = a[
|
|
42
|
-
|
|
98
|
+
let e = a[k], t = c(e, O, n, b, x, S), i = l(k, A, b, x, T, E, w), o = l(e, t, b, x, T, E, w);
|
|
99
|
+
if (o < i && (k = e, A = t), r && (D === "left" || D === "right") && i > 0 && o > 0) {
|
|
100
|
+
let e = c("bottom", O, n, b, x, S), t = c("top", O, n, b, x, S), r = l("bottom", e, b, x, T, E, w);
|
|
101
|
+
k = l("top", t, b, x, T, E, w) < r ? "top" : "bottom", A = k === "top" ? t : e;
|
|
102
|
+
}
|
|
43
103
|
}
|
|
44
|
-
let
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
104
|
+
let j = b, M = x, N = {};
|
|
105
|
+
if (r) {
|
|
106
|
+
let e = Math.max(0, T - 2 * w), t = Math.max(0, Math.min(E - 2 * w, k === "top" ? n.top - S - w : k === "bottom" ? E - w - n.bottom - S : E - 2 * w)), r = y.value;
|
|
107
|
+
(!r || r.width !== e || r.height !== t) && (y.value = {
|
|
108
|
+
width: e,
|
|
109
|
+
height: t
|
|
110
|
+
}), j = Math.min(b, e), M = Math.min(x, t), A = c(k, O, n, j, M, S);
|
|
111
|
+
} else if (s.constrainMainAxis?.() ?? !1) {
|
|
112
|
+
if (k === "top" || k === "bottom") {
|
|
113
|
+
let e = k === "top" ? n.top - S - w : E - w - n.bottom - S;
|
|
114
|
+
M = Math.min(x, Math.max(0, Math.floor(e))), N.maxHeight = `${M}px`, N.overflowY = "auto";
|
|
49
115
|
} else {
|
|
50
|
-
let e =
|
|
51
|
-
|
|
116
|
+
let e = k === "left" ? n.left - S - w : T - w - n.right - S;
|
|
117
|
+
j = Math.min(b, Math.max(0, Math.floor(e))), N.maxWidth = `${j}px`, N.overflowX = "auto";
|
|
52
118
|
}
|
|
53
|
-
|
|
119
|
+
A = c(k, O, n, j, M, S);
|
|
54
120
|
}
|
|
55
|
-
(s.shift?.() ?? !0) && (
|
|
56
|
-
let
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
121
|
+
(s.shift?.() ?? !0) && (A.left = Math.max(w, Math.min(A.left, T - j - w)), A.top = Math.max(w, Math.min(A.top, E - M - w)));
|
|
122
|
+
let P = `${k}-${O}`;
|
|
123
|
+
_.value = P;
|
|
124
|
+
let F = Math.round(A.left), I = Math.round(A.top);
|
|
125
|
+
v.value = r && (s.shift?.() ?? !0) ? {
|
|
126
|
+
left: Math.max(w, Math.min(F, T - j - w)),
|
|
127
|
+
top: Math.max(w, Math.min(I, E - M - w))
|
|
128
|
+
} : {
|
|
129
|
+
left: F,
|
|
130
|
+
top: I
|
|
60
131
|
};
|
|
61
|
-
let
|
|
62
|
-
if (
|
|
132
|
+
let L = s.widthMatch?.() ?? "none";
|
|
133
|
+
if (h.value = {
|
|
63
134
|
position: "fixed",
|
|
64
|
-
left: `${
|
|
65
|
-
top: `${
|
|
135
|
+
left: `${v.value.left}px`,
|
|
136
|
+
top: `${v.value.top}px`,
|
|
66
137
|
zIndex: s.zIndex?.() ?? "var(--s-layer-root-floating)",
|
|
67
|
-
...
|
|
68
|
-
...
|
|
69
|
-
...
|
|
70
|
-
},
|
|
71
|
-
let e = n.left + n.width / 2 -
|
|
72
|
-
|
|
138
|
+
...N,
|
|
139
|
+
...L === "min" ? { minWidth: `${Math.round(n.width)}px` } : {},
|
|
140
|
+
...L === "exact" ? { width: `${Math.round(n.width)}px` } : {}
|
|
141
|
+
}, k === "top" || k === "bottom") {
|
|
142
|
+
let e = n.left + n.width / 2 - A.left;
|
|
143
|
+
g.value = { left: `${Math.round(u(e, b))}px` };
|
|
73
144
|
} else {
|
|
74
|
-
let e = n.top + n.height / 2 -
|
|
75
|
-
|
|
145
|
+
let e = n.top + n.height / 2 - A.top;
|
|
146
|
+
g.value = { top: `${Math.round(u(e, x))}px` };
|
|
76
147
|
}
|
|
77
|
-
},
|
|
148
|
+
}, E = () => {
|
|
78
149
|
if (s.active.value) {
|
|
79
150
|
if (s.scrollStrategy === "close") {
|
|
80
151
|
s.requestClose?.();
|
|
81
152
|
return;
|
|
82
153
|
}
|
|
83
|
-
|
|
154
|
+
T();
|
|
84
155
|
}
|
|
85
|
-
},
|
|
86
|
-
if (!
|
|
156
|
+
}, D = () => {
|
|
157
|
+
if (S && !C && s.active.value && !x && typeof window < "u" && (x = !0, window.addEventListener("resize", T, { passive: !0 }), window.addEventListener("scroll", E, {
|
|
87
158
|
passive: !0,
|
|
88
159
|
capture: !0
|
|
89
160
|
}), typeof ResizeObserver < "u")) {
|
|
90
|
-
|
|
161
|
+
b = new ResizeObserver(T);
|
|
91
162
|
let e = s.anchorElement?.() ?? d.value;
|
|
92
|
-
e &&
|
|
163
|
+
e && b.observe(e), f.value && b.observe(f.value);
|
|
164
|
+
let t = s.viewportSizing?.() ? s.sizingElements?.() : null;
|
|
165
|
+
t && (t.surface !== f.value && b.observe(t.surface), b.observe(t.content));
|
|
93
166
|
}
|
|
94
|
-
},
|
|
95
|
-
|
|
167
|
+
}, O = () => {
|
|
168
|
+
x && typeof window < "u" && (x = !1, window.removeEventListener("resize", T), window.removeEventListener("scroll", E, !0), b?.disconnect(), b = null);
|
|
96
169
|
};
|
|
97
170
|
return i(s.active, async (t) => {
|
|
171
|
+
let n = ++w;
|
|
98
172
|
if (!t) {
|
|
99
|
-
|
|
173
|
+
O(), h.value = {}, g.value = {}, v.value = {
|
|
100
174
|
left: -1e4,
|
|
101
175
|
top: -1e4
|
|
102
|
-
};
|
|
176
|
+
}, y.value = null;
|
|
103
177
|
return;
|
|
104
178
|
}
|
|
105
|
-
|
|
179
|
+
h.value = {
|
|
106
180
|
position: "fixed",
|
|
107
181
|
left: "-10000px",
|
|
108
182
|
top: "-10000px",
|
|
109
183
|
zIndex: s.zIndex?.() ?? "var(--s-layer-root-floating)"
|
|
110
|
-
}, await e(),
|
|
184
|
+
}, await e(), S && !C && s.active.value && n === w && (D(), T());
|
|
111
185
|
}, { immediate: !0 }), n(() => {
|
|
112
|
-
s.active.value && (
|
|
113
|
-
}), t(
|
|
186
|
+
S = !0, s.active.value && (D(), T());
|
|
187
|
+
}), t(() => {
|
|
188
|
+
C = !0, S = !1, w += 1, O();
|
|
189
|
+
}), {
|
|
114
190
|
anchorRef: d,
|
|
115
191
|
panelRef: f,
|
|
116
|
-
floatingStyle:
|
|
117
|
-
arrowStyle:
|
|
118
|
-
resolvedPlacement:
|
|
119
|
-
coordinates:
|
|
120
|
-
|
|
192
|
+
floatingStyle: h,
|
|
193
|
+
arrowStyle: g,
|
|
194
|
+
resolvedPlacement: _,
|
|
195
|
+
coordinates: v,
|
|
196
|
+
availableSize: y,
|
|
197
|
+
updatePosition: T
|
|
121
198
|
};
|
|
122
199
|
}
|
|
123
200
|
//#endregion
|
|
124
|
-
export {
|
|
201
|
+
export { h as useFloatingPosition };
|
|
@@ -10,6 +10,8 @@ export interface FieldSurfaceContract {
|
|
|
10
10
|
invalid: boolean;
|
|
11
11
|
disabled: boolean;
|
|
12
12
|
readonly: boolean;
|
|
13
|
+
/** A field surface enclosing its native editor and in-flow supporting content. */
|
|
14
|
+
composite?: boolean;
|
|
13
15
|
}
|
|
14
16
|
export interface FieldSurfaceBindings {
|
|
15
17
|
'data-s-field-surface': FieldSurfaceKind;
|
|
@@ -17,6 +19,7 @@ export interface FieldSurfaceBindings {
|
|
|
17
19
|
'data-s-field-invalid'?: 'true';
|
|
18
20
|
'data-s-field-disabled'?: 'true';
|
|
19
21
|
'data-s-field-readonly'?: 'true';
|
|
22
|
+
'data-s-field-composite'?: 'true';
|
|
20
23
|
}
|
|
21
24
|
/**
|
|
22
25
|
* Создаёт exact DOM bindings единого field-surface foundation без truthy coercion.
|
|
@@ -12,13 +12,14 @@ var r = [
|
|
|
12
12
|
];
|
|
13
13
|
function a(a, o) {
|
|
14
14
|
n("fieldSurface", "owner", a);
|
|
15
|
-
let s = t(a, "field surface kind", o.kind, r), c = t(a, "field surface appearance", o.appearance, i), l = e(a, "field surface invalid", o.invalid), u = e(a, "field surface disabled", o.disabled), d = e(a, "field surface readonly", o.readonly);
|
|
15
|
+
let s = t(a, "field surface kind", o.kind, r), c = t(a, "field surface appearance", o.appearance, i), l = e(a, "field surface invalid", o.invalid), u = e(a, "field surface disabled", o.disabled), d = e(a, "field surface readonly", o.readonly), f = o.composite !== void 0 && e(a, "field surface composite", o.composite);
|
|
16
16
|
return {
|
|
17
17
|
"data-s-field-surface": s,
|
|
18
18
|
"data-s-field-appearance": c,
|
|
19
19
|
...l ? { "data-s-field-invalid": "true" } : {},
|
|
20
20
|
...u ? { "data-s-field-disabled": "true" } : {},
|
|
21
|
-
...d ? { "data-s-field-readonly": "true" } : {}
|
|
21
|
+
...d ? { "data-s-field-readonly": "true" } : {},
|
|
22
|
+
...f ? { "data-s-field-composite": "true" } : {}
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
//#endregion
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Проверяет native focus capability независимо от временной видимости ancestor scope. */
|
|
2
|
+
export declare const hasFocusableSemantics: (element: HTMLElement) => boolean;
|
|
1
3
|
/** Проверяет programmatic/browser focus owner без layout-эвристик. / Checks a programmatic/browser focus owner without layout heuristics. */
|
|
2
4
|
export declare const isFocusableElement: (element: HTMLElement) => boolean;
|
|
3
5
|
/**
|
|
@@ -11,16 +11,16 @@ var e = [
|
|
|
11
11
|
if (e.hidden || e.closest("[inert]") || e.closest("[aria-hidden=\"true\"]")) return !1;
|
|
12
12
|
let t = window.getComputedStyle(e);
|
|
13
13
|
return t.display !== "none" && t.visibility !== "hidden";
|
|
14
|
-
}, n = (
|
|
14
|
+
}, n = (t) => t.matches(e), r = (e) => n(e) && t(e), i = (t, n) => {
|
|
15
15
|
let i = (t instanceof Element ? t : t instanceof Node ? t.parentElement : null)?.closest(e) ?? null;
|
|
16
|
-
return !i || !
|
|
17
|
-
},
|
|
18
|
-
let
|
|
19
|
-
if (
|
|
20
|
-
let o =
|
|
21
|
-
if (o >= 0) return
|
|
22
|
-
let s = r ? [...
|
|
16
|
+
return !i || !r(i) || n instanceof Node && !n.contains(i) ? null : i;
|
|
17
|
+
}, a = (t, n = {}) => [...t.querySelectorAll(e)].filter((e) => r(e) ? !n.requireLayout || e.offsetParent !== null || e.getClientRects().length > 0 : !1), o = (e, t, n, r) => {
|
|
18
|
+
let i = a(t).filter((e) => !n?.contains(e));
|
|
19
|
+
if (i.length === 0) return null;
|
|
20
|
+
let o = i.indexOf(e);
|
|
21
|
+
if (o >= 0) return i[(o + (r ? -1 : 1) + i.length) % i.length] ?? null;
|
|
22
|
+
let s = r ? [...i].reverse() : i, c = r ? Node.DOCUMENT_POSITION_PRECEDING : Node.DOCUMENT_POSITION_FOLLOWING;
|
|
23
23
|
return s.find((t) => !!(e.compareDocumentPosition(t) & c)) ?? s[0] ?? null;
|
|
24
24
|
};
|
|
25
25
|
//#endregion
|
|
26
|
-
export {
|
|
26
|
+
export { i as findFocusableOwner, o as findRelativeTabTarget, a as getFocusableElements, n as hasFocusableSemantics, r as isFocusableElement };
|
|
@@ -5,20 +5,32 @@ export interface LayerRegistrationOptions {
|
|
|
5
5
|
root: () => HTMLElement | null;
|
|
6
6
|
anchor?: () => HTMLElement | null;
|
|
7
7
|
branches?: () => readonly HTMLElement[];
|
|
8
|
+
/** Explicit composition owner; null keeps independent root dialogs outside focus-derived ancestry. */
|
|
9
|
+
parent?: LayerRegistration | null;
|
|
8
10
|
modal?: boolean;
|
|
11
|
+
/** Native event scope for a contained layer; global modal children do not inherit it. */
|
|
12
|
+
eventBoundary?: () => HTMLElement | null;
|
|
9
13
|
restoreTarget?: HTMLElement | null;
|
|
10
14
|
dismissOnEscape?: () => boolean;
|
|
11
15
|
dismissOnOutsidePointer?: () => boolean;
|
|
12
16
|
blocksParentFocusTrap?: boolean;
|
|
13
17
|
trapFocus?: (event: KeyboardEvent) => void;
|
|
14
18
|
requestDismiss: (reason: LayerDismissReason, event: Event) => void;
|
|
19
|
+
/** Releases owner UI/subscriptions when its ancestor retires, without a synthetic dismiss event. */
|
|
20
|
+
onRetire?: () => void;
|
|
15
21
|
}
|
|
16
22
|
export interface LayerRegistration {
|
|
17
23
|
readonly id: symbol;
|
|
18
24
|
readonly zIndex: string;
|
|
19
25
|
readonly focusScope: () => ParentNode;
|
|
26
|
+
/** Whether this registration still owns the global topmost focus request. */
|
|
27
|
+
readonly isTopmost: () => boolean;
|
|
28
|
+
/** Requests one Tab target, committed by this registration's normal close only. */
|
|
29
|
+
readonly handoffFocus: (target: HTMLElement) => () => void;
|
|
20
30
|
unregister: (options?: {
|
|
21
31
|
restoreFocus?: boolean;
|
|
32
|
+
retireDescendants?: boolean;
|
|
33
|
+
commitFocusHandoff?: boolean;
|
|
22
34
|
}) => void;
|
|
23
35
|
}
|
|
24
36
|
/**
|