@mono-lit/helper 0.0.0-stage → 0.0.1
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/LICENSE.md +55 -0
- package/README.md +34 -2
- package/dist/breakpoints-CAbhDUht.js +84 -0
- package/dist/checkbox-Cqpie9Ap.js +4 -0
- package/dist/chip-DBUUa2eB.js +4 -0
- package/dist/chip-limits-BMoO31JM.js +213 -0
- package/dist/chip-strip-Cw3gyz0q.js +213 -0
- package/dist/color-DHYrfXsX.js +253 -0
- package/dist/css-class-BRKRzHx-.js +60 -0
- package/dist/css-size-DhHSVZJK.js +37 -0
- package/dist/data/theme/presets.json.d.ts +140 -0
- package/dist/data-search-Bwo5bg8K.js +573 -0
- package/dist/data-source-controller-C50Qyfzh.js +178 -0
- package/dist/data-source-options-BTpfrOZ_.js +535 -0
- package/dist/data-source-options-CQSTZHPE.js +537 -0
- package/dist/data-source-read-CUX-lgrQ.js +216 -0
- package/dist/data-source-read-DL88aH8t.js +217 -0
- package/dist/decorate-DEXtNagw.js +141 -0
- package/dist/element-props-CLB6yvbm.js +114 -0
- package/dist/esm-Ptok4SQZ.js +2026 -0
- package/dist/excel-CY6zGkcx.js +608 -0
- package/dist/excel-DopRbEMK.js +608 -0
- package/dist/export-BvlBx_GZ.js +2302 -0
- package/dist/export.d.ts +1 -0
- package/dist/export.js +2302 -0
- package/dist/field-icons-BoOG6KrL.js +51 -0
- package/dist/field-path-C92eGLg3.js +251 -0
- package/dist/filter-builder-Bke3qOgJ.js +205 -0
- package/dist/filter-builder-CE4zE0V5.js +205 -0
- package/dist/filter-eval-DIfU2EAn.js +173 -0
- package/dist/filter-odata-C1vSGZaY.js +591 -0
- package/dist/form-control-core-B8d7k6vk.js +223 -0
- package/dist/form-control-core-eeRr0zLU.js +223 -0
- package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
- package/dist/icon-CJkTlmTb.js +55 -0
- package/dist/icon-dVhYJUIH.js +17 -0
- package/dist/import-BgJdkwBI.js +606 -0
- package/dist/import.d.ts +1 -0
- package/dist/import.js +606 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +16 -0
- package/dist/index.node-DjvYOL-J.js +395 -0
- package/dist/index.node.d.ts +1 -0
- package/dist/index.node.js +16 -0
- package/dist/input-zGOULADt.js +4 -0
- package/dist/layout-var-CZnzMC0s.js +73 -0
- package/dist/light-slots-BVJwyg_2.js +244 -0
- package/dist/light-slots-DW1WgfgT.js +254 -0
- package/dist/markdown-DfqrfOJN.js +20146 -0
- package/dist/mono-button-CoVnBLav.js +873 -0
- package/dist/mono-button.shadow-FfP_hMH4.js +784 -0
- package/dist/mono-data-chart-ChU4Ii3p.js +738 -0
- package/dist/mono-data-dropdown-BAUl58kW.js +357 -0
- package/dist/mono-data-grid-CLBK8clE.js +4140 -0
- package/dist/mono-data-grid-Db80FzdZ.js +4142 -0
- package/dist/mono-element-B0kP_96P.js +232 -0
- package/dist/mono-event-Bi1qP9uN.js +129 -0
- package/dist/mono-form-controller-5PfsU4qa.js +409 -0
- package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
- package/dist/mono-ui-CPV7rrdo.js +358 -0
- package/dist/notifier-CE4yxMUQ.js +88 -0
- package/dist/nuxt.d.ts +1 -0
- package/dist/nuxt.js +130 -0
- package/dist/popup-portal-BziRX1yG.js +465 -0
- package/dist/popup-stack-CEEMib__.js +189 -0
- package/dist/rate-limit-BBa2PO79.js +521 -0
- package/dist/reactive-BHsqVjRh.js +789 -0
- package/dist/reactive-D3EERqgO.js +47 -0
- package/dist/search.d.ts +1 -0
- package/dist/search.js +97 -0
- package/dist/src/components/accordion/accordion-core.d.ts +62 -0
- package/dist/src/components/accordion/accordion-types.d.ts +62 -0
- package/dist/src/components/accordion/index.d.ts +3 -0
- package/dist/src/components/accordion/index.shadow.d.ts +5 -0
- package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
- package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
- package/dist/src/components/alert/alert-core.d.ts +46 -0
- package/dist/src/components/alert/alert-types.d.ts +44 -0
- package/dist/src/components/alert/index.d.ts +3 -0
- package/dist/src/components/alert/index.shadow.d.ts +5 -0
- package/dist/src/components/alert/mono-alert.d.ts +44 -0
- package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
- package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
- package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
- package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
- package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
- package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
- package/dist/src/components/breadcrumb/index.d.ts +6 -0
- package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
- package/dist/src/components/button/button-core.d.ts +90 -0
- package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
- package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
- package/dist/src/components/button/button-types.d.ts +219 -0
- package/dist/src/components/button/button-utils.d.ts +18 -0
- package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
- package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
- package/dist/src/components/button/index.d.ts +8 -0
- package/dist/src/components/button/index.shadow.d.ts +5 -0
- package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
- package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
- package/dist/src/components/button/mono-button.d.ts +123 -0
- package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
- package/dist/src/components/card/card-core.d.ts +74 -0
- package/dist/src/components/card/card-types.d.ts +137 -0
- package/dist/src/components/card/card-utils.d.ts +23 -0
- package/dist/src/components/card/index.d.ts +4 -0
- package/dist/src/components/card/index.shadow.d.ts +6 -0
- package/dist/src/components/card/mono-card.d.ts +56 -0
- package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
- package/dist/src/components/chart/chart-core.d.ts +43 -0
- package/dist/src/components/chart/chart-odata.d.ts +52 -0
- package/dist/src/components/chart/chart-types.d.ts +337 -0
- package/dist/src/components/chart/index.d.ts +8 -0
- package/dist/src/components/chart/index.shadow.d.ts +7 -0
- package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
- package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
- package/dist/src/components/chart/mono-chart.d.ts +30 -0
- package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
- package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
- package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
- package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
- package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
- package/dist/src/components/checkbox/index.d.ts +4 -0
- package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
- package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
- package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
- package/dist/src/components/chip/chip-core.d.ts +58 -0
- package/dist/src/components/chip/chip-types.d.ts +142 -0
- package/dist/src/components/chip/chip-utils.d.ts +24 -0
- package/dist/src/components/chip/index.d.ts +8 -0
- package/dist/src/components/chip/index.shadow.d.ts +6 -0
- package/dist/src/components/chip/mono-chip.d.ts +48 -0
- package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
- package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
- package/dist/src/components/date/date-core.d.ts +80 -0
- package/dist/src/components/date/date-types.d.ts +163 -0
- package/dist/src/components/date/index.d.ts +3 -0
- package/dist/src/components/date/index.shadow.d.ts +4 -0
- package/dist/src/components/date/mono-date.d.ts +22 -0
- package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
- package/dist/src/components/drawer/drawer-core.d.ts +99 -0
- package/dist/src/components/drawer/drawer-types.d.ts +153 -0
- package/dist/src/components/drawer/index.d.ts +3 -0
- package/dist/src/components/drawer/index.shadow.d.ts +4 -0
- package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
- package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
- package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
- package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
- package/dist/src/components/dropdown/index.d.ts +3 -0
- package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
- package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
- package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
- package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
- package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
- package/dist/src/components/dropdown-table/index.d.ts +5 -0
- package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
- package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
- package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
- package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
- package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
- package/dist/src/components/file-upload/index.d.ts +4 -0
- package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
- package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
- package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
- package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
- package/dist/src/components/filter/filter-builder.d.ts +23 -0
- package/dist/src/components/filter/filter-odata.d.ts +27 -0
- package/dist/src/components/filter/filter-operators.d.ts +13 -0
- package/dist/src/components/filter/filter-types.d.ts +253 -0
- package/dist/src/components/filter/index.d.ts +6 -0
- package/dist/src/components/filter/index.shadow.d.ts +7 -0
- package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
- package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
- package/dist/src/components/form/form-control-core.d.ts +37 -0
- package/dist/src/components/form/form-rules.d.ts +25 -0
- package/dist/src/components/form/form-types.d.ts +307 -0
- package/dist/src/components/form/index.d.ts +6 -0
- package/dist/src/components/form/mono-form-controller.d.ts +16 -0
- package/dist/src/components/input/index.d.ts +6 -0
- package/dist/src/components/input/index.shadow.d.ts +8 -0
- package/dist/src/components/input/input-core.d.ts +91 -0
- package/dist/src/components/input/input-format.d.ts +118 -0
- package/dist/src/components/input/input-types.d.ts +179 -0
- package/dist/src/components/input/input-utils.d.ts +10 -0
- package/dist/src/components/input/mono-input.d.ts +46 -0
- package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
- package/dist/src/components/menu/index.d.ts +6 -0
- package/dist/src/components/menu/index.shadow.d.ts +7 -0
- package/dist/src/components/menu/menu-core.d.ts +65 -0
- package/dist/src/components/menu/menu-render.d.ts +55 -0
- package/dist/src/components/menu/menu-types.d.ts +195 -0
- package/dist/src/components/menu/menu-utils.d.ts +53 -0
- package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
- package/dist/src/components/menu/mono-menu.d.ts +39 -0
- package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
- package/dist/src/components/modal/index.d.ts +4 -0
- package/dist/src/components/modal/index.shadow.d.ts +5 -0
- package/dist/src/components/modal/modal-core.d.ts +110 -0
- package/dist/src/components/modal/modal-types.d.ts +304 -0
- package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
- package/dist/src/components/modal/mono-modal.d.ts +45 -0
- package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
- package/dist/src/components/nav/index.d.ts +4 -0
- package/dist/src/components/nav/index.shadow.d.ts +6 -0
- package/dist/src/components/nav/mono-nav.d.ts +41 -0
- package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
- package/dist/src/components/nav/nav-core.d.ts +34 -0
- package/dist/src/components/nav/nav-types.d.ts +48 -0
- package/dist/src/components/nav/nav-utils.d.ts +12 -0
- package/dist/src/components/radio/index.d.ts +4 -0
- package/dist/src/components/radio/index.shadow.d.ts +5 -0
- package/dist/src/components/radio/mono-radio.d.ts +31 -0
- package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
- package/dist/src/components/radio/radio-core.d.ts +45 -0
- package/dist/src/components/radio/radio-types.d.ts +58 -0
- package/dist/src/components/radio/radio-utils.d.ts +12 -0
- package/dist/src/components/rich-text-editor/index.d.ts +5 -0
- package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
- package/dist/src/components/select/index.d.ts +4 -0
- package/dist/src/components/select/index.shadow.d.ts +5 -0
- package/dist/src/components/select/mono-select.d.ts +69 -0
- package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
- package/dist/src/components/select/select-core.d.ts +98 -0
- package/dist/src/components/select/select-types.d.ts +258 -0
- package/dist/src/components/select/select-utils.d.ts +7 -0
- package/dist/src/components/sidebar/index.d.ts +4 -0
- package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
- package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
- package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
- package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
- package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
- package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
- package/dist/src/components/switch/index.d.ts +4 -0
- package/dist/src/components/switch/index.shadow.d.ts +5 -0
- package/dist/src/components/switch/mono-switch.d.ts +31 -0
- package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
- package/dist/src/components/switch/switch-core.d.ts +49 -0
- package/dist/src/components/switch/switch-types.d.ts +64 -0
- package/dist/src/components/switch/switch-utils.d.ts +12 -0
- package/dist/src/components/table/array-source.d.ts +44 -0
- package/dist/src/components/table/date-filter-tree.d.ts +93 -0
- package/dist/src/components/table/grouping.d.ts +55 -0
- package/dist/src/components/table/index.d.ts +33 -0
- package/dist/src/components/table/index.shadow.d.ts +47 -0
- package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
- package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
- package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
- package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
- package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
- package/dist/src/components/table/mono-table-detail.d.ts +32 -0
- package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
- package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
- package/dist/src/components/table/mono-table-empty.d.ts +35 -0
- package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
- package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
- package/dist/src/components/table/mono-table-error.d.ts +28 -0
- package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
- package/dist/src/components/table/mono-table-info.d.ts +19 -0
- package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
- package/dist/src/components/table/mono-table-loading.d.ts +50 -0
- package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
- package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
- package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
- package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
- package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
- package/dist/src/components/table/mono-table-paging.d.ts +16 -0
- package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
- package/dist/src/components/table/mono-table-search.d.ts +34 -0
- package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
- package/dist/src/components/table/mono-table-sort.d.ts +38 -0
- package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
- package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
- package/dist/src/components/table/mono-table-summary.d.ts +24 -0
- package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
- package/dist/src/components/table/mono-table-th.d.ts +41 -0
- package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
- package/dist/src/components/table/store-group-source.d.ts +24 -0
- package/dist/src/components/table/table-controller-core.d.ts +40 -0
- package/dist/src/components/table/table-filter-icons.d.ts +3 -0
- package/dist/src/components/table/table-menu-core.d.ts +65 -0
- package/dist/src/components/table/table-overlay.d.ts +165 -0
- package/dist/src/components/table/table-sort-icons.d.ts +4 -0
- package/dist/src/components/table/table-sort-utils.d.ts +20 -0
- package/dist/src/components/table/table-types.d.ts +475 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.shadow.d.ts +4 -0
- package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
- package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
- package/dist/src/components/tabs/tabs-core.d.ts +57 -0
- package/dist/src/components/tabs/tabs-types.d.ts +65 -0
- package/dist/src/components/tag-input/index.d.ts +4 -0
- package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
- package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
- package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
- package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
- package/dist/src/components/tag-input/tag-input-types.d.ts +394 -0
- package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
- package/dist/src/components/textarea/index.d.ts +4 -0
- package/dist/src/components/textarea/index.shadow.d.ts +5 -0
- package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
- package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
- package/dist/src/components/textarea/textarea-core.d.ts +60 -0
- package/dist/src/components/textarea/textarea-types.d.ts +131 -0
- package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
- package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
- package/dist/src/components/tooltip/index.d.ts +6 -0
- package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
- package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
- package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
- package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
- package/dist/src/composables/breakpoints.d.ts +59 -0
- package/dist/src/composables/chip-limits.d.ts +48 -0
- package/dist/src/composables/chip-strip.d.ts +93 -0
- package/dist/src/composables/color.d.ts +103 -0
- package/dist/src/composables/css-class.d.ts +27 -0
- package/dist/src/composables/css-size.d.ts +40 -0
- package/dist/src/composables/data-source-controller.d.ts +84 -0
- package/dist/src/composables/element-props.d.ts +46 -0
- package/dist/src/composables/field-icons.d.ts +7 -0
- package/dist/src/composables/hybird-prop.d.ts +79 -0
- package/dist/src/composables/hydration-flush.d.ts +34 -0
- package/dist/src/composables/icon.d.ts +17 -0
- package/dist/src/composables/layout-var.d.ts +34 -0
- package/dist/src/composables/light-slots.d.ts +133 -0
- package/dist/src/composables/mdi-glyphs.d.ts +4 -0
- package/dist/src/composables/mono-element.d.ts +9 -0
- package/dist/src/composables/mono-event.d.ts +55 -0
- package/dist/src/composables/mono-pending.d.ts +8 -0
- package/dist/src/composables/mono-skeleton.d.ts +193 -0
- package/dist/src/composables/mono-ui.d.ts +58 -0
- package/dist/src/composables/notifier.d.ts +46 -0
- package/dist/src/composables/popup-portal.d.ts +226 -0
- package/dist/src/composables/popup-stack.d.ts +70 -0
- package/dist/src/composables/rate-limit.d.ts +108 -0
- package/dist/src/composables/reactive.d.ts +53 -0
- package/dist/src/composables/shadow-css.d.ts +42 -0
- package/dist/src/composables/visibility.d.ts +36 -0
- package/dist/src/data/theme/index.d.ts +30 -0
- package/dist/src/data/theme/presets.d.ts +94 -0
- package/dist/src/entries/index.d.ts +2 -0
- package/dist/src/entries/index.node.d.ts +42 -0
- package/dist/src/entries/search.d.ts +3 -0
- package/dist/src/export/detail.d.ts +29 -0
- package/dist/src/export/download.d.ts +9 -0
- package/dist/src/export/excel/index.d.ts +27 -0
- package/dist/src/export/excel/nodes.d.ts +123 -0
- package/dist/src/export/expression.d.ts +36 -0
- package/dist/src/export/helpers.d.ts +6 -0
- package/dist/src/export/index.d.ts +13 -0
- package/dist/src/export/markdown.d.ts +52 -0
- package/dist/src/export/resolve-data.d.ts +31 -0
- package/dist/src/export/sentinel.d.ts +97 -0
- package/dist/src/export/sheet-name.d.ts +45 -0
- package/dist/src/export/styles.d.ts +33 -0
- package/dist/src/export/template.d.ts +10 -0
- package/dist/src/export/types.d.ts +259 -0
- package/dist/src/import/coerce.d.ts +38 -0
- package/dist/src/import/index.d.ts +16 -0
- package/dist/src/import/match.d.ts +54 -0
- package/dist/src/import/parse.d.ts +15 -0
- package/dist/src/import/types.d.ts +153 -0
- package/dist/src/nuxt/index.d.ts +94 -0
- package/dist/src/search/data-search.d.ts +207 -0
- package/dist/src/search/field-path.d.ts +107 -0
- package/dist/src/search/filter-eval.d.ts +30 -0
- package/dist/src/search/index.d.ts +22 -0
- package/dist/src/search/odata-search.d.ts +18 -0
- package/dist/src/search/search-expr.d.ts +160 -0
- package/dist/src/utils/data-source-apply.d.ts +97 -0
- package/dist/src/utils/data-source-options.d.ts +116 -0
- package/dist/src/utils/data-source-read.d.ts +85 -0
- package/dist/src/utils/data-source-summary.d.ts +55 -0
- package/dist/src/utils/normalize-error.d.ts +60 -0
- package/dist/src/vite/index.d.ts +48 -0
- package/dist/src/vite/mono-client-only.d.ts +35 -0
- package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
- package/dist/src/vite/shadow-manifest.d.ts +8 -0
- package/dist/styles-BIJ31TM4.js +20146 -0
- package/dist/tooltip-CysgRgBi.js +760 -0
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.js +2 -0
- package/dist/ui/accordion.d.ts +1 -0
- package/dist/ui/accordion.js +466 -0
- package/dist/ui/alert.d.ts +1 -0
- package/dist/ui/alert.js +221 -0
- package/dist/ui/breadcrumb.d.ts +1 -0
- package/dist/ui/breadcrumb.js +902 -0
- package/dist/ui/button-dropdown.d.ts +1 -0
- package/dist/ui/button-dropdown.js +679 -0
- package/dist/ui/button.d.ts +1 -0
- package/dist/ui/button.js +63 -0
- package/dist/ui/card.d.ts +1 -0
- package/dist/ui/card.js +511 -0
- package/dist/ui/chart.d.ts +1 -0
- package/dist/ui/chart.js +808 -0
- package/dist/ui/checkbox.d.ts +1 -0
- package/dist/ui/checkbox.js +413 -0
- package/dist/ui/chip.d.ts +1 -0
- package/dist/ui/chip.js +558 -0
- package/dist/ui/date.d.ts +1 -0
- package/dist/ui/date.js +686 -0
- package/dist/ui/drawer.d.ts +1 -0
- package/dist/ui/drawer.js +901 -0
- package/dist/ui/dropdown-table.d.ts +1 -0
- package/dist/ui/dropdown-table.js +1291 -0
- package/dist/ui/dropdown.d.ts +1 -0
- package/dist/ui/dropdown.js +586 -0
- package/dist/ui/file-upload.d.ts +1 -0
- package/dist/ui/file-upload.js +688 -0
- package/dist/ui/filter.d.ts +1 -0
- package/dist/ui/filter.js +400 -0
- package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
- package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
- package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
- package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
- package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
- package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
- package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
- package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
- package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
- package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
- package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
- package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
- package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
- package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
- package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
- package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
- package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
- package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
- package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
- package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
- package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
- package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
- package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
- package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
- package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
- package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
- package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
- package/dist/ui/font/geist-mono.css +104 -0
- package/dist/ui/font/geist.css +168 -0
- package/dist/ui/font/inter.css +232 -0
- package/dist/ui/font/poppins.css +104 -0
- package/dist/ui/form.d.ts +1 -0
- package/dist/ui/form.js +3 -0
- package/dist/ui/index.css +21826 -0
- package/dist/ui/input.d.ts +1 -0
- package/dist/ui/input.js +1176 -0
- package/dist/ui/menu.d.ts +1 -0
- package/dist/ui/menu.js +1289 -0
- package/dist/ui/modal.d.ts +1 -0
- package/dist/ui/modal.js +995 -0
- package/dist/ui/nav.d.ts +1 -0
- package/dist/ui/nav.js +295 -0
- package/dist/ui/radio.d.ts +1 -0
- package/dist/ui/radio.js +379 -0
- package/dist/ui/rich-text-editor.d.ts +1 -0
- package/dist/ui/rich-text-editor.js +1338 -0
- package/dist/ui/select.d.ts +1 -0
- package/dist/ui/select.js +2066 -0
- package/dist/ui/shadow/accordion.js +442 -0
- package/dist/ui/shadow/alert.js +218 -0
- package/dist/ui/shadow/breadcrumb.js +919 -0
- package/dist/ui/shadow/button-dropdown.js +696 -0
- package/dist/ui/shadow/button.js +63 -0
- package/dist/ui/shadow/card.js +524 -0
- package/dist/ui/shadow/chart.js +1569 -0
- package/dist/ui/shadow/checkbox.js +457 -0
- package/dist/ui/shadow/chip.js +559 -0
- package/dist/ui/shadow/date.js +712 -0
- package/dist/ui/shadow/drawer.js +869 -0
- package/dist/ui/shadow/dropdown-table.js +1620 -0
- package/dist/ui/shadow/dropdown.js +547 -0
- package/dist/ui/shadow/file-upload.js +731 -0
- package/dist/ui/shadow/filter.js +402 -0
- package/dist/ui/shadow/input.js +1150 -0
- package/dist/ui/shadow/menu.js +899 -0
- package/dist/ui/shadow/modal.js +1193 -0
- package/dist/ui/shadow/nav.js +240 -0
- package/dist/ui/shadow/radio.js +408 -0
- package/dist/ui/shadow/rich-text-editor.js +1344 -0
- package/dist/ui/shadow/select.js +2033 -0
- package/dist/ui/shadow/sidebar.js +606 -0
- package/dist/ui/shadow/switch.js +428 -0
- package/dist/ui/shadow/table.js +4755 -0
- package/dist/ui/shadow/tabs.js +372 -0
- package/dist/ui/shadow/tag-input.js +2846 -0
- package/dist/ui/shadow/textarea.js +816 -0
- package/dist/ui/sidebar.d.ts +1 -0
- package/dist/ui/sidebar.js +659 -0
- package/dist/ui/switch.d.ts +1 -0
- package/dist/ui/switch.js +398 -0
- package/dist/ui/table.d.ts +1 -0
- package/dist/ui/table.js +4654 -0
- package/dist/ui/tabs.d.ts +1 -0
- package/dist/ui/tabs.js +379 -0
- package/dist/ui/tag-input.d.ts +1 -0
- package/dist/ui/tag-input.js +2819 -0
- package/dist/ui/textarea.d.ts +1 -0
- package/dist/ui/textarea.js +819 -0
- package/dist/ui/theme/legacy.css +293 -0
- package/dist/ui/theme/luma.css +743 -0
- package/dist/ui/theme/lyra.css +754 -0
- package/dist/ui/theme/maia.css +673 -0
- package/dist/ui/theme/mira.css +802 -0
- package/dist/ui/theme/nova.css +662 -0
- package/dist/ui/theme/one.css +699 -0
- package/dist/ui/theme/rhea.css +742 -0
- package/dist/ui/theme/sera.css +845 -0
- package/dist/ui/theme/tokens.css +261 -0
- package/dist/ui/theme/vega.css +467 -0
- package/dist/vite-C5iUK7so.js +329 -0
- package/dist/vite.d.ts +1 -0
- package/dist/vite.js +2 -0
- package/dist/vue.d.ts +282 -0
- package/package.json +411 -3
|
@@ -0,0 +1,760 @@
|
|
|
1
|
+
import { n as unwrapReactive, t as resolveMaybeReactive } from "./reactive-D3EERqgO.js";
|
|
2
|
+
import { a as unregisterPopupLayer, r as registerPopupLayer } from "./popup-stack-CEEMib__.js";
|
|
3
|
+
//#region src/components/tooltip/tooltip-config.ts
|
|
4
|
+
var DEFAULT_TOOLTIP_OPTIONS = {
|
|
5
|
+
allowHTML: false,
|
|
6
|
+
placement: "top",
|
|
7
|
+
offset: 6,
|
|
8
|
+
padding: 8,
|
|
9
|
+
flip: true,
|
|
10
|
+
shift: true,
|
|
11
|
+
arrow: true,
|
|
12
|
+
trigger: ["hover", "focus"],
|
|
13
|
+
delay: [100, 0],
|
|
14
|
+
interactive: false,
|
|
15
|
+
variant: "inverted",
|
|
16
|
+
size: "md",
|
|
17
|
+
disabled: false,
|
|
18
|
+
hideOnClick: true
|
|
19
|
+
};
|
|
20
|
+
var globalOptions = null;
|
|
21
|
+
/** @internal — written by `createMonoTooltip` / `resetMonoTooltip`. */
|
|
22
|
+
function setMonoTooltipGlobal(options) {
|
|
23
|
+
globalOptions = options ? { ...options } : null;
|
|
24
|
+
}
|
|
25
|
+
/** The current global options, or `null` when none were set. */
|
|
26
|
+
function getMonoTooltipGlobal() {
|
|
27
|
+
return globalOptions;
|
|
28
|
+
}
|
|
29
|
+
/** Keys of the global object that configure the addon, not a tooltip. */
|
|
30
|
+
var NOT_TOOLTIP_OPTIONS = new Set(["attributes"]);
|
|
31
|
+
/**
|
|
32
|
+
* `DEFAULTS ← local ← global ← anchor`, key by key; `undefined` never
|
|
33
|
+
* overwrites. `anchor` is the options read off the element's own attributes.
|
|
34
|
+
*/
|
|
35
|
+
function resolveTooltipOptions(local, anchor) {
|
|
36
|
+
const out = { ...DEFAULT_TOOLTIP_OPTIONS };
|
|
37
|
+
for (const layer of [
|
|
38
|
+
local,
|
|
39
|
+
globalOptions,
|
|
40
|
+
anchor
|
|
41
|
+
]) {
|
|
42
|
+
if (!layer) continue;
|
|
43
|
+
for (const [key, value] of Object.entries(layer)) if (value !== void 0 && !NOT_TOOLTIP_OPTIONS.has(key)) out[key] = value;
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/components/tooltip/tooltip-loader.ts
|
|
49
|
+
/**
|
|
50
|
+
* Cached loader for the OPTIONAL `@floating-ui/dom` peer (which itself depends on
|
|
51
|
+
* `@floating-ui/core` — both are the consumer's to install).
|
|
52
|
+
*
|
|
53
|
+
* Loaded on the FIRST show, never at import: registering a tooltip in
|
|
54
|
+
* `<script setup>` costs nothing until somebody actually hovers. Externalized in
|
|
55
|
+
* both vite configs, so the consumer's bundler resolves and splits it.
|
|
56
|
+
*/
|
|
57
|
+
var _floatingPromise = null;
|
|
58
|
+
function loadFloatingUi() {
|
|
59
|
+
_floatingPromise ??= import("@floating-ui/dom").catch((err) => {
|
|
60
|
+
_floatingPromise = null;
|
|
61
|
+
throw new Error("[mono-tooltip] needs the optional peer dependencies \"@floating-ui/dom\" and \"@floating-ui/core\". Install them in your app: pnpm add @floating-ui/dom @floating-ui/core" + (err?.message ? ` (original error: ${err.message})` : ""));
|
|
62
|
+
});
|
|
63
|
+
return _floatingPromise;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/components/tooltip/control-tooltip.ts
|
|
67
|
+
/** Grace period so an INTERACTIVE tooltip can be reached across the offset gap. */
|
|
68
|
+
var INTERACTIVE_HIDE_GRACE = 120;
|
|
69
|
+
/** Longest the exit transition may take before the element is removed anyway. */
|
|
70
|
+
var EXIT_FALLBACK_MS = 200;
|
|
71
|
+
var nextId = 0;
|
|
72
|
+
var live = /* @__PURE__ */ new Set();
|
|
73
|
+
var bound = false;
|
|
74
|
+
function each(fn) {
|
|
75
|
+
for (const inst of Array.from(live)) fn(inst);
|
|
76
|
+
}
|
|
77
|
+
var onPointerOver = (e) => {
|
|
78
|
+
const path = e.composedPath();
|
|
79
|
+
each((i) => i._pointerOver(path, e));
|
|
80
|
+
};
|
|
81
|
+
var onPointerOut = (e) => {
|
|
82
|
+
if (!e.relatedTarget) each((i) => i._pointerOver([], e));
|
|
83
|
+
};
|
|
84
|
+
var onFocusIn = (e) => {
|
|
85
|
+
const path = e.composedPath();
|
|
86
|
+
each((i) => i._focusIn(path));
|
|
87
|
+
};
|
|
88
|
+
var onFocusOut = (e) => {
|
|
89
|
+
if (!e.relatedTarget) each((i) => i._focusIn([]));
|
|
90
|
+
};
|
|
91
|
+
var onClick = (e) => {
|
|
92
|
+
const path = e.composedPath();
|
|
93
|
+
each((i) => i._click(path));
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* A REAL document. `typeof document` is not enough on the server: Lit's SSR DOM shim (loaded by
|
|
97
|
+
* VitePress / Nuxt SSR through @mono-lit/helper's server entries) defines a global `document` stub with no
|
|
98
|
+
* `addEventListener`, so a `typeof` guard passed and `createMonoTooltip()` in an app's setup threw
|
|
99
|
+
* "document.addEventListener is not a function" during server render.
|
|
100
|
+
*/
|
|
101
|
+
function hasLiveDocument() {
|
|
102
|
+
return typeof document !== "undefined" && typeof document.addEventListener === "function";
|
|
103
|
+
}
|
|
104
|
+
function bindDocument() {
|
|
105
|
+
if (bound || !hasLiveDocument()) return;
|
|
106
|
+
document.addEventListener("pointerover", onPointerOver, true);
|
|
107
|
+
document.addEventListener("pointerout", onPointerOut, true);
|
|
108
|
+
document.addEventListener("focusin", onFocusIn, true);
|
|
109
|
+
document.addEventListener("focusout", onFocusOut, true);
|
|
110
|
+
document.addEventListener("click", onClick, true);
|
|
111
|
+
bound = true;
|
|
112
|
+
}
|
|
113
|
+
function unbindDocument() {
|
|
114
|
+
if (!bound || live.size > 0 || !hasLiveDocument()) return;
|
|
115
|
+
document.removeEventListener("pointerover", onPointerOver, true);
|
|
116
|
+
document.removeEventListener("pointerout", onPointerOut, true);
|
|
117
|
+
document.removeEventListener("focusin", onFocusIn, true);
|
|
118
|
+
document.removeEventListener("focusout", onFocusOut, true);
|
|
119
|
+
document.removeEventListener("click", onClick, true);
|
|
120
|
+
bound = false;
|
|
121
|
+
}
|
|
122
|
+
var warnedSelectors = /* @__PURE__ */ new Set();
|
|
123
|
+
function safeMatches(el, selector) {
|
|
124
|
+
try {
|
|
125
|
+
return el.matches(selector);
|
|
126
|
+
} catch {
|
|
127
|
+
if (!warnedSelectors.has(selector)) {
|
|
128
|
+
warnedSelectors.add(selector);
|
|
129
|
+
console.warn(`[mono-tooltip] invalid selector: ${JSON.stringify(selector)}`);
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/** Every element a non-selector target names (refs / proxies unwrapped). */
|
|
135
|
+
function toElements(value) {
|
|
136
|
+
if (!value || typeof value === "string") return [];
|
|
137
|
+
if (value instanceof Element) return [value];
|
|
138
|
+
const out = [];
|
|
139
|
+
const list = typeof value[Symbol.iterator] === "function" ? Array.from(value) : Array.from(value);
|
|
140
|
+
for (const item of list) {
|
|
141
|
+
const raw = unwrapReactive(item);
|
|
142
|
+
const el = raw instanceof Element ? raw : raw?.$el;
|
|
143
|
+
if (el instanceof Element) out.push(el);
|
|
144
|
+
}
|
|
145
|
+
return out;
|
|
146
|
+
}
|
|
147
|
+
function unwrapTarget(target) {
|
|
148
|
+
const value = resolveMaybeReactive(target);
|
|
149
|
+
if (value && !(value instanceof Element) && typeof value === "object" && value.$el instanceof Element) return value.$el;
|
|
150
|
+
return value;
|
|
151
|
+
}
|
|
152
|
+
/** Composed-tree parent — crosses shadow boundaries (cf. `popup-portal.ts`). */
|
|
153
|
+
function flatTreeParent(node) {
|
|
154
|
+
const slot = node.assignedSlot;
|
|
155
|
+
if (slot) return slot;
|
|
156
|
+
const parent = node.parentNode;
|
|
157
|
+
if (parent instanceof ShadowRoot) return parent.host;
|
|
158
|
+
return parent;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* The theme classes of the NEAREST scoped theme wrapper above the anchor.
|
|
162
|
+
*
|
|
163
|
+
* The tooltip lives on `<body>`, so it already inherits the page-level theme
|
|
164
|
+
* (`applyTheme` writes to body). A section themed on its own — `<div class="mono-theme
|
|
165
|
+
* dark theme-color-rose">` — is not in its inheritance chain any more; copying that
|
|
166
|
+
* wrapper's theme classes onto the tooltip re-resolves the same tokens there.
|
|
167
|
+
*/
|
|
168
|
+
function scopedThemeClasses(anchor) {
|
|
169
|
+
const stop = new Set([
|
|
170
|
+
document.body,
|
|
171
|
+
document.documentElement,
|
|
172
|
+
null
|
|
173
|
+
]);
|
|
174
|
+
for (let n = anchor; !stop.has(n); n = flatTreeParent(n)) {
|
|
175
|
+
if (!(n instanceof Element)) continue;
|
|
176
|
+
const found = Array.from(n.classList).filter((c) => c === "mono-theme" || c === "dark" || c === "light" || c.startsWith("theme-"));
|
|
177
|
+
if (found.length) return found;
|
|
178
|
+
}
|
|
179
|
+
return [];
|
|
180
|
+
}
|
|
181
|
+
function isFocusVisible(el) {
|
|
182
|
+
if (!(el instanceof Element)) return false;
|
|
183
|
+
try {
|
|
184
|
+
return el.matches(":focus-visible");
|
|
185
|
+
} catch {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* How far the arrow must stay from the bubble's corners: past the rounding, on the
|
|
191
|
+
* straight part of the edge. A fixed 4px let a `-start` / `-end` arrow land on the
|
|
192
|
+
* curve of a well-rounded flavor (a pill, in the extreme), where the edge has
|
|
193
|
+
* already pulled away and the diamond hung off the corner.
|
|
194
|
+
*
|
|
195
|
+
* Read from the PAINTED radius, so every flavor and radius preset is covered.
|
|
196
|
+
* CSS scales radii that overflow the box down to fit it (a `9999px` pill paints
|
|
197
|
+
* half its height), hence the clamp to half the smaller side. The diamond is the
|
|
198
|
+
* arrow box rotated 45°: where it meets the edge it is `size·√2` wide, so it
|
|
199
|
+
* overhangs its own box by `size·(√2−1)/2` on each side. Floating UI caps the
|
|
200
|
+
* padding itself when the bubble is too short for it — the arrow then centres on
|
|
201
|
+
* the edge and the bubble shifts so it still points at the trigger.
|
|
202
|
+
*/
|
|
203
|
+
function arrowPadding(bubble, arrowEl) {
|
|
204
|
+
const cs = getComputedStyle(bubble);
|
|
205
|
+
const half = Math.min(bubble.offsetWidth, bubble.offsetHeight) / 2;
|
|
206
|
+
const radius = Math.max(...[
|
|
207
|
+
cs.borderTopLeftRadius,
|
|
208
|
+
cs.borderTopRightRadius,
|
|
209
|
+
cs.borderBottomRightRadius,
|
|
210
|
+
cs.borderBottomLeftRadius
|
|
211
|
+
].map((v) => {
|
|
212
|
+
const n = parseFloat(v) || 0;
|
|
213
|
+
return v.trim().endsWith("%") ? n / 100 * half * 2 : n;
|
|
214
|
+
}));
|
|
215
|
+
const overhang = arrowEl.offsetWidth * (Math.SQRT2 - 1) / 2;
|
|
216
|
+
return Math.max(4, Math.ceil(Math.min(radius, half) + overhang) + 1);
|
|
217
|
+
}
|
|
218
|
+
function toDelays(delay) {
|
|
219
|
+
if (Array.isArray(delay)) return [Number(delay[0]) || 0, Number(delay[1]) || 0];
|
|
220
|
+
const d = Number(delay) || 0;
|
|
221
|
+
return [d, d];
|
|
222
|
+
}
|
|
223
|
+
function toTriggers(trigger) {
|
|
224
|
+
return new Set(Array.isArray(trigger) ? trigger : [trigger]);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* The anchor's own text, when no `content` option is given: the declarative
|
|
228
|
+
* `mono-tooltip-content` / `mono-tooltip-message`, then a native `title` (moved to
|
|
229
|
+
* `data-mono-title` while open), then `aria-label`.
|
|
230
|
+
*/
|
|
231
|
+
function anchorText(anchor) {
|
|
232
|
+
const attr = (name) => anchor.getAttribute(name)?.trim() || null;
|
|
233
|
+
return attr("mono-tooltip-content") ?? attr("mono-tooltip-message") ?? attr("data-mono-title") ?? attr("title") ?? attr("aria-label");
|
|
234
|
+
}
|
|
235
|
+
function resolveContent(content, anchor) {
|
|
236
|
+
const value = typeof content === "function" ? content(anchor) : content;
|
|
237
|
+
if (value instanceof Node) return value;
|
|
238
|
+
if (value !== void 0 && value !== null && String(value).trim() !== "") return String(value);
|
|
239
|
+
if (content !== void 0) return null;
|
|
240
|
+
return anchorText(anchor);
|
|
241
|
+
}
|
|
242
|
+
var TooltipInstance = class {
|
|
243
|
+
constructor(_target, options, _anchorOptions) {
|
|
244
|
+
this._target = _target;
|
|
245
|
+
this._anchorOptions = _anchorOptions;
|
|
246
|
+
this._open = null;
|
|
247
|
+
this._reasons = /* @__PURE__ */ new Set();
|
|
248
|
+
this._token = 0;
|
|
249
|
+
this._pending = null;
|
|
250
|
+
this._suppressed = null;
|
|
251
|
+
this._lastPath = [];
|
|
252
|
+
this._destroyed = false;
|
|
253
|
+
this._id = `mono-tooltip-${++nextId}`;
|
|
254
|
+
this._options = { ...options };
|
|
255
|
+
if (!hasLiveDocument()) {
|
|
256
|
+
this._destroyed = true;
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
live.add(this);
|
|
260
|
+
bindDocument();
|
|
261
|
+
}
|
|
262
|
+
get isOpen() {
|
|
263
|
+
return !!this._open;
|
|
264
|
+
}
|
|
265
|
+
get anchor() {
|
|
266
|
+
return this._open?.anchor ?? null;
|
|
267
|
+
}
|
|
268
|
+
get tooltip() {
|
|
269
|
+
return this._open?.el ?? null;
|
|
270
|
+
}
|
|
271
|
+
async show(anchor) {
|
|
272
|
+
const el = anchor ?? this._firstTarget();
|
|
273
|
+
if (!el) return;
|
|
274
|
+
this._lastPath = [];
|
|
275
|
+
await this._openOn(el, "manual", 0);
|
|
276
|
+
}
|
|
277
|
+
hide() {
|
|
278
|
+
this._close(false);
|
|
279
|
+
}
|
|
280
|
+
async toggle(anchor) {
|
|
281
|
+
if (this._open && (!anchor || anchor === this._open.anchor)) this.hide();
|
|
282
|
+
else await this.show(anchor);
|
|
283
|
+
}
|
|
284
|
+
update(options) {
|
|
285
|
+
this._options = {
|
|
286
|
+
...this._options,
|
|
287
|
+
...options
|
|
288
|
+
};
|
|
289
|
+
this._refresh();
|
|
290
|
+
}
|
|
291
|
+
/** Re-apply the resolved options to an open tooltip (or close it when now disabled). */
|
|
292
|
+
_refresh() {
|
|
293
|
+
const o = this._resolved(this._open?.anchor);
|
|
294
|
+
if (o.disabled) return this._close(true);
|
|
295
|
+
if (this._open) {
|
|
296
|
+
this._applyAppearance(this._open.el, o);
|
|
297
|
+
this._renderBody(this._open, o);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
setContent(content) {
|
|
301
|
+
this.update({ content });
|
|
302
|
+
}
|
|
303
|
+
enable() {
|
|
304
|
+
this.update({ disabled: false });
|
|
305
|
+
}
|
|
306
|
+
disable() {
|
|
307
|
+
this.update({ disabled: true });
|
|
308
|
+
}
|
|
309
|
+
destroy() {
|
|
310
|
+
if (this._destroyed) return;
|
|
311
|
+
this._close(true);
|
|
312
|
+
this._destroyed = true;
|
|
313
|
+
live.delete(this);
|
|
314
|
+
unbindDocument();
|
|
315
|
+
}
|
|
316
|
+
/** @internal — pointer entered something (or `[]`: left the window). */
|
|
317
|
+
_pointerOver(path, e) {
|
|
318
|
+
if (e.pointerType === "touch") return;
|
|
319
|
+
const candidate = this._findAnchor(path);
|
|
320
|
+
const o = this._resolved(candidate ?? this._open?.anchor);
|
|
321
|
+
const anchor = candidate && toTriggers(o.trigger).has("hover") ? candidate : null;
|
|
322
|
+
if (this._suppressed && anchor !== this._suppressed) this._suppressed = null;
|
|
323
|
+
if (anchor) {
|
|
324
|
+
if (anchor === this._suppressed || o.disabled) return;
|
|
325
|
+
this._lastPath = path;
|
|
326
|
+
if (this._open?.anchor === anchor) {
|
|
327
|
+
this._cancelHide();
|
|
328
|
+
this._reasons.add("hover");
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (this._pending === anchor) return;
|
|
332
|
+
this._openOn(anchor, "hover", toDelays(o.delay)[0]);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (o.interactive && this._open && path.includes(this._open.el)) {
|
|
336
|
+
this._cancelHide();
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
this._dropReason("hover");
|
|
340
|
+
}
|
|
341
|
+
/** @internal — focus landed somewhere (or `[]`: focus left the document). */
|
|
342
|
+
_focusIn(path) {
|
|
343
|
+
const candidate = this._findAnchor(path);
|
|
344
|
+
const o = this._resolved(candidate);
|
|
345
|
+
const anchor = candidate && toTriggers(o.trigger).has("focus") ? candidate : null;
|
|
346
|
+
if (anchor && !o.disabled && isFocusVisible(path[0])) {
|
|
347
|
+
this._lastPath = path;
|
|
348
|
+
if (this._open?.anchor === anchor) {
|
|
349
|
+
this._cancelHide();
|
|
350
|
+
this._reasons.add("focus");
|
|
351
|
+
} else this._openOn(anchor, "focus", toDelays(o.delay)[0]);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
if (this._open && path.includes(this._open.el)) return;
|
|
355
|
+
this._dropReason("focus");
|
|
356
|
+
}
|
|
357
|
+
/** @internal */
|
|
358
|
+
_click(path) {
|
|
359
|
+
const anchor = this._findAnchor(path);
|
|
360
|
+
const o = this._resolved(anchor ?? this._open?.anchor);
|
|
361
|
+
const triggers = toTriggers(o.trigger);
|
|
362
|
+
const inTooltip = !!this._open && path.includes(this._open.el);
|
|
363
|
+
if (triggers.has("click") && !o.disabled) {
|
|
364
|
+
if (anchor) {
|
|
365
|
+
if (this._open?.anchor === anchor && this._reasons.has("click")) this._close(false);
|
|
366
|
+
else {
|
|
367
|
+
this._lastPath = path;
|
|
368
|
+
this._openOn(anchor, "click", 0);
|
|
369
|
+
}
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
if (!inTooltip && this._reasons.has("click")) this._close(false);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
if (anchor && o.hideOnClick) {
|
|
376
|
+
this._suppressed = anchor;
|
|
377
|
+
if (this._pending === anchor) this._cancelShow();
|
|
378
|
+
if (this._open?.anchor === anchor && !this._reasons.has("manual")) this._close(false);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
_resolved(anchor) {
|
|
382
|
+
const own = anchor && this._anchorOptions ? this._anchorOptions(anchor) : null;
|
|
383
|
+
return resolveTooltipOptions(this._options, own);
|
|
384
|
+
}
|
|
385
|
+
/** The innermost element on the path this controller's target names. */
|
|
386
|
+
_findAnchor(path) {
|
|
387
|
+
if (!path.length) return null;
|
|
388
|
+
const value = unwrapTarget(this._target);
|
|
389
|
+
if (!value) return null;
|
|
390
|
+
if (typeof value === "string") {
|
|
391
|
+
for (const node of path) if (node instanceof Element && safeMatches(node, value)) return node;
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
const set = new Set(toElements(value));
|
|
395
|
+
if (!set.size) return null;
|
|
396
|
+
for (const node of path) if (set.has(node)) return node;
|
|
397
|
+
return null;
|
|
398
|
+
}
|
|
399
|
+
_firstTarget() {
|
|
400
|
+
const value = unwrapTarget(this._target);
|
|
401
|
+
if (typeof value === "string") try {
|
|
402
|
+
return document.querySelector(value);
|
|
403
|
+
} catch {
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
return toElements(value)[0] ?? null;
|
|
407
|
+
}
|
|
408
|
+
_cancelShow() {
|
|
409
|
+
clearTimeout(this._showTimer);
|
|
410
|
+
this._showTimer = void 0;
|
|
411
|
+
this._pending = null;
|
|
412
|
+
}
|
|
413
|
+
_cancelHide() {
|
|
414
|
+
clearTimeout(this._hideTimer);
|
|
415
|
+
this._hideTimer = void 0;
|
|
416
|
+
}
|
|
417
|
+
/** One reason to stay open went away — close once none is left. */
|
|
418
|
+
_dropReason(reason) {
|
|
419
|
+
if (this._pending && !this._open) {
|
|
420
|
+
this._cancelShow();
|
|
421
|
+
this._token++;
|
|
422
|
+
}
|
|
423
|
+
if (!this._open || !this._reasons.has(reason)) return;
|
|
424
|
+
this._reasons.delete(reason);
|
|
425
|
+
if (this._reasons.size) return;
|
|
426
|
+
const o = this._resolved(this._open.anchor);
|
|
427
|
+
let delay = toDelays(o.delay)[1];
|
|
428
|
+
if (o.interactive) delay = Math.max(delay, INTERACTIVE_HIDE_GRACE);
|
|
429
|
+
this._cancelHide();
|
|
430
|
+
if (delay > 0) this._hideTimer = setTimeout(() => this._close(false), delay);
|
|
431
|
+
else this._close(false);
|
|
432
|
+
}
|
|
433
|
+
async _openOn(anchor, reason, delay) {
|
|
434
|
+
if (this._destroyed) return;
|
|
435
|
+
this._cancelHide();
|
|
436
|
+
this._cancelShow();
|
|
437
|
+
if (this._open?.anchor === anchor) {
|
|
438
|
+
this._reasons.add(reason);
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
const token = ++this._token;
|
|
442
|
+
if (delay > 0) {
|
|
443
|
+
this._pending = anchor;
|
|
444
|
+
await new Promise((resolve) => {
|
|
445
|
+
this._showTimer = setTimeout(resolve, delay);
|
|
446
|
+
});
|
|
447
|
+
if (token !== this._token) return;
|
|
448
|
+
}
|
|
449
|
+
this._pending = null;
|
|
450
|
+
await this._mount(anchor, reason, token);
|
|
451
|
+
}
|
|
452
|
+
async _mount(anchor, reason, token) {
|
|
453
|
+
const o = this._resolved(anchor);
|
|
454
|
+
if (o.disabled || !anchor.isConnected) return;
|
|
455
|
+
const content = resolveContent(o.content, anchor);
|
|
456
|
+
if (content === null) return;
|
|
457
|
+
let floating;
|
|
458
|
+
try {
|
|
459
|
+
floating = await loadFloatingUi();
|
|
460
|
+
} catch (err) {
|
|
461
|
+
console.error(err);
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
if (token !== this._token || this._destroyed || !anchor.isConnected) return;
|
|
465
|
+
if (this._open) this._teardown(this._open);
|
|
466
|
+
const el = document.createElement("div");
|
|
467
|
+
el.id = this._id;
|
|
468
|
+
el.setAttribute("role", "tooltip");
|
|
469
|
+
el.setAttribute("mono-tooltip", "");
|
|
470
|
+
const body = document.createElement("div");
|
|
471
|
+
body.setAttribute("mono-tooltip-body", "");
|
|
472
|
+
const arrow = document.createElement("div");
|
|
473
|
+
arrow.setAttribute("mono-tooltip-arrow", "");
|
|
474
|
+
el.append(body, arrow);
|
|
475
|
+
this._applyAppearance(el, o, anchor);
|
|
476
|
+
if (o.onShow?.(anchor, el) === false) return;
|
|
477
|
+
const state = {
|
|
478
|
+
anchor,
|
|
479
|
+
el,
|
|
480
|
+
body,
|
|
481
|
+
arrow,
|
|
482
|
+
stopAutoUpdate: () => {},
|
|
483
|
+
layer: {
|
|
484
|
+
setStackZ: (z) => el.style.setProperty("--mono-popup-z", String(z)),
|
|
485
|
+
onStackEscape: () => this._close(false)
|
|
486
|
+
},
|
|
487
|
+
stashed: [],
|
|
488
|
+
describedBy: anchor.getAttribute("aria-describedby"),
|
|
489
|
+
observer: null
|
|
490
|
+
};
|
|
491
|
+
if (this._anchorOptions && typeof MutationObserver !== "undefined") {
|
|
492
|
+
state.observer = new MutationObserver((records) => {
|
|
493
|
+
if (this._open !== state) return;
|
|
494
|
+
if (records.some((r) => r.attributeName?.startsWith("mono-tooltip-"))) this._refresh();
|
|
495
|
+
});
|
|
496
|
+
state.observer.observe(anchor, { attributes: true });
|
|
497
|
+
}
|
|
498
|
+
this._open = state;
|
|
499
|
+
this._reasons = new Set([reason]);
|
|
500
|
+
this._renderContent(body, content, o.allowHTML);
|
|
501
|
+
((typeof o.appendTo === "function" ? o.appendTo() : o.appendTo) ?? document.body).appendChild(el);
|
|
502
|
+
this._stashTitles(state);
|
|
503
|
+
const ids = (state.describedBy ?? "").split(/\s+/).filter(Boolean);
|
|
504
|
+
if (!ids.includes(this._id)) anchor.setAttribute("aria-describedby", [...ids, this._id].join(" "));
|
|
505
|
+
registerPopupLayer(state.layer);
|
|
506
|
+
const reposition = () => void this._position(floating, state);
|
|
507
|
+
state.stopAutoUpdate = floating.autoUpdate(anchor, el, reposition);
|
|
508
|
+
await this._position(floating, state);
|
|
509
|
+
if (this._open === state) requestAnimationFrame(() => {
|
|
510
|
+
if (this._open === state) el.setAttribute("data-open", "");
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
async _position(floating, state) {
|
|
514
|
+
if (this._open !== state) return;
|
|
515
|
+
if (!state.anchor.isConnected) {
|
|
516
|
+
this._close(true);
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
const o = this._resolved(state.anchor);
|
|
520
|
+
const { computePosition, offset, flip, shift, arrow, hide } = floating;
|
|
521
|
+
const middleware = [offset(o.offset)];
|
|
522
|
+
if (o.flip) middleware.push(flip({ padding: o.padding }));
|
|
523
|
+
if (o.shift) middleware.push(shift({ padding: o.padding }));
|
|
524
|
+
if (o.arrow) middleware.push(arrow({
|
|
525
|
+
element: state.arrow,
|
|
526
|
+
padding: arrowPadding(state.el, state.arrow)
|
|
527
|
+
}));
|
|
528
|
+
middleware.push(hide());
|
|
529
|
+
const { x, y, placement, middlewareData } = await computePosition(state.anchor, state.el, {
|
|
530
|
+
placement: o.placement,
|
|
531
|
+
strategy: "fixed",
|
|
532
|
+
middleware
|
|
533
|
+
});
|
|
534
|
+
if (this._open !== state) return;
|
|
535
|
+
state.el.style.left = `${x}px`;
|
|
536
|
+
state.el.style.top = `${y}px`;
|
|
537
|
+
const [side, align] = placement.split("-");
|
|
538
|
+
state.el.setAttribute("data-side", side);
|
|
539
|
+
if (align) state.el.setAttribute("data-align", align);
|
|
540
|
+
else state.el.removeAttribute("data-align");
|
|
541
|
+
const a = middlewareData.arrow;
|
|
542
|
+
state.arrow.style.left = a?.x != null ? `${a.x}px` : "";
|
|
543
|
+
state.arrow.style.top = a?.y != null ? `${a.y}px` : "";
|
|
544
|
+
state.el.style.visibility = middlewareData.hide?.referenceHidden ? "hidden" : "";
|
|
545
|
+
}
|
|
546
|
+
/** Attributes + classes the CSS keys on. Re-run by `update()` on an open tooltip. */
|
|
547
|
+
_applyAppearance(el, o, anchor) {
|
|
548
|
+
el.className = [
|
|
549
|
+
"mono-tooltip",
|
|
550
|
+
...scopedThemeClasses(anchor ?? this._open?.anchor ?? el),
|
|
551
|
+
...o.class ? o.class.split(/\s+/) : []
|
|
552
|
+
].filter(Boolean).join(" ");
|
|
553
|
+
const attr = (name, value) => value === null ? el.removeAttribute(name) : el.setAttribute(name, value);
|
|
554
|
+
attr("mono-variant", o.variant && o.variant !== "inverted" ? o.variant : null);
|
|
555
|
+
attr("mono-color", o.color ?? null);
|
|
556
|
+
attr("mono-size", o.size && o.size !== "md" ? o.size : null);
|
|
557
|
+
attr("mono-interactive", o.interactive ? "" : null);
|
|
558
|
+
attr("mono-arrow", o.arrow ? "" : null);
|
|
559
|
+
if (o.maxWidth) el.style.setProperty("--mono-tooltip-max-width", o.maxWidth);
|
|
560
|
+
else el.style.removeProperty("--mono-tooltip-max-width");
|
|
561
|
+
}
|
|
562
|
+
_renderBody(state, o) {
|
|
563
|
+
const content = resolveContent(o.content, state.anchor);
|
|
564
|
+
if (content === null) return this._close(true);
|
|
565
|
+
this._renderContent(state.body, content, o.allowHTML);
|
|
566
|
+
}
|
|
567
|
+
_renderContent(body, content, allowHTML) {
|
|
568
|
+
if (content instanceof Node) body.replaceChildren(content);
|
|
569
|
+
else if (allowHTML) body.innerHTML = content;
|
|
570
|
+
else body.textContent = content;
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Move `title`s aside while open — the anchor's, and any between the pointer
|
|
574
|
+
* and the anchor (a component may render one on an inner element) — or the
|
|
575
|
+
* browser shows its own tooltip on top of ours.
|
|
576
|
+
*/
|
|
577
|
+
_stashTitles(state) {
|
|
578
|
+
const chain = [];
|
|
579
|
+
for (const node of this._lastPath) {
|
|
580
|
+
if (node instanceof Element) chain.push(node);
|
|
581
|
+
if (node === state.anchor) break;
|
|
582
|
+
}
|
|
583
|
+
if (!chain.includes(state.anchor)) chain.push(state.anchor);
|
|
584
|
+
for (const el of chain) {
|
|
585
|
+
const title = el.getAttribute("title");
|
|
586
|
+
if (title === null) continue;
|
|
587
|
+
state.stashed.push([el, title]);
|
|
588
|
+
el.setAttribute("data-mono-title", title);
|
|
589
|
+
el.removeAttribute("title");
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
_close(force) {
|
|
593
|
+
this._cancelShow();
|
|
594
|
+
this._cancelHide();
|
|
595
|
+
this._token++;
|
|
596
|
+
const state = this._open;
|
|
597
|
+
if (!state) return;
|
|
598
|
+
if (!force && this._resolved(state.anchor).onHide?.(state.anchor, state.el) === false) return;
|
|
599
|
+
this._teardown(state);
|
|
600
|
+
}
|
|
601
|
+
_teardown(state) {
|
|
602
|
+
state.stopAutoUpdate();
|
|
603
|
+
state.observer?.disconnect();
|
|
604
|
+
unregisterPopupLayer(state.layer);
|
|
605
|
+
for (const [el, title] of state.stashed) {
|
|
606
|
+
if (el.getAttribute("title") === null) el.setAttribute("title", title);
|
|
607
|
+
el.removeAttribute("data-mono-title");
|
|
608
|
+
}
|
|
609
|
+
const ids = (state.anchor.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((id) => id && id !== this._id);
|
|
610
|
+
if (ids.length) state.anchor.setAttribute("aria-describedby", ids.join(" "));
|
|
611
|
+
else if (state.describedBy === null) state.anchor.removeAttribute("aria-describedby");
|
|
612
|
+
else state.anchor.setAttribute("aria-describedby", state.describedBy);
|
|
613
|
+
if (this._open === state) {
|
|
614
|
+
this._open = null;
|
|
615
|
+
this._reasons.clear();
|
|
616
|
+
}
|
|
617
|
+
const el = state.el;
|
|
618
|
+
el.removeAttribute("data-open");
|
|
619
|
+
el.removeAttribute("id");
|
|
620
|
+
let done = false;
|
|
621
|
+
const remove = () => {
|
|
622
|
+
if (done) return;
|
|
623
|
+
done = true;
|
|
624
|
+
el.remove();
|
|
625
|
+
};
|
|
626
|
+
el.addEventListener("transitionend", remove, { once: true });
|
|
627
|
+
setTimeout(remove, EXIT_FALLBACK_MS);
|
|
628
|
+
}
|
|
629
|
+
};
|
|
630
|
+
/**
|
|
631
|
+
* Attach a tooltip to every element `target` names — now or later.
|
|
632
|
+
*
|
|
633
|
+
* ```ts
|
|
634
|
+
* // <script setup> — the elements need not exist yet
|
|
635
|
+
* const tip = controlMonoTooltip('.save-btn', { content: 'Save changes', placement: 'bottom' })
|
|
636
|
+
* onBeforeUnmount(() => tip.destroy())
|
|
637
|
+
* ```
|
|
638
|
+
*
|
|
639
|
+
* `target` is a CSS selector, an element, a list of elements, or a Vue ref /
|
|
640
|
+
* getter of any of those. Light `<mono-*>` elements, shadow `<mono-shadow-*>`
|
|
641
|
+
* hosts and elements inside open shadow roots all match.
|
|
642
|
+
*
|
|
643
|
+
* Needs the optional peers `@floating-ui/dom` + `@floating-ui/core`, loaded on
|
|
644
|
+
* the first show. Options set with `createMonoTooltip` override these.
|
|
645
|
+
*/
|
|
646
|
+
function controlMonoTooltip(target, options = {}) {
|
|
647
|
+
return new TooltipInstance(target, options);
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* @internal — a controller with a per-anchor options layer. Used by the
|
|
651
|
+
* declarative `mono-tooltip-*` attributes (`tooltip-declarative.ts`).
|
|
652
|
+
*/
|
|
653
|
+
function createTooltipController(target, options, anchorOptions) {
|
|
654
|
+
return new TooltipInstance(target, options, anchorOptions);
|
|
655
|
+
}
|
|
656
|
+
/** Alias, matching the `monoX` / `controlMonoX` pairs of the other controllers. */
|
|
657
|
+
var monoTooltip = controlMonoTooltip;
|
|
658
|
+
/** @internal — close and forget every live controller. Public as `destroyAllMonoTooltips`. */
|
|
659
|
+
function destroyAllTooltipControllers() {
|
|
660
|
+
each((i) => i.destroy());
|
|
661
|
+
}
|
|
662
|
+
//#endregion
|
|
663
|
+
//#region src/components/tooltip/tooltip-declarative.ts
|
|
664
|
+
/** The two text attributes — `message` is an alias of `content`. */
|
|
665
|
+
var TOOLTIP_ATTRIBUTE_SELECTOR = "[mono-tooltip-content], [mono-tooltip-message]";
|
|
666
|
+
var declarative = null;
|
|
667
|
+
/**
|
|
668
|
+
* Per-element options, from `mono-tooltip-<option>` attributes:
|
|
669
|
+
*
|
|
670
|
+
* | attribute | option |
|
|
671
|
+
* | --- | --- |
|
|
672
|
+
* | `mono-tooltip-content` / `-message` | `content` (text) |
|
|
673
|
+
* | `mono-tooltip-placement` / `-variant` / `-color` / `-size` | same name |
|
|
674
|
+
* | `mono-tooltip-trigger` | `"hover focus"`, `"click"`, … |
|
|
675
|
+
* | `mono-tooltip-delay` | `"300"` or `"300 100"` |
|
|
676
|
+
* | `mono-tooltip-offset` / `-padding` | numbers |
|
|
677
|
+
* | `mono-tooltip-max-width` / `-class` | strings |
|
|
678
|
+
* | `mono-tooltip-arrow` / `-flip` / `-shift` / `-interactive` / `-html` / `-disabled` / `-hide-on-click` | booleans — present = on, `"false"` = off |
|
|
679
|
+
*/
|
|
680
|
+
function readTooltipAttributes(el) {
|
|
681
|
+
const get = (name) => el.getAttribute(`mono-tooltip-${name}`);
|
|
682
|
+
const str = (name) => get(name)?.trim() || void 0;
|
|
683
|
+
const bool = (name) => {
|
|
684
|
+
const v = get(name);
|
|
685
|
+
return v === null ? void 0 : v.trim() !== "false";
|
|
686
|
+
};
|
|
687
|
+
const num = (name) => {
|
|
688
|
+
const v = str(name);
|
|
689
|
+
const n = v === void 0 ? NaN : Number(v);
|
|
690
|
+
return Number.isFinite(n) ? n : void 0;
|
|
691
|
+
};
|
|
692
|
+
const list = (name) => str(name)?.split(/[\s,]+/).filter(Boolean);
|
|
693
|
+
const content = get("content") ?? get("message") ?? void 0;
|
|
694
|
+
const delay = list("delay")?.map(Number).filter(Number.isFinite);
|
|
695
|
+
return {
|
|
696
|
+
content,
|
|
697
|
+
placement: str("placement"),
|
|
698
|
+
variant: str("variant"),
|
|
699
|
+
color: str("color"),
|
|
700
|
+
size: str("size"),
|
|
701
|
+
trigger: list("trigger"),
|
|
702
|
+
delay: delay?.length ? delay.length > 1 ? [delay[0], delay[1]] : delay[0] : void 0,
|
|
703
|
+
offset: num("offset"),
|
|
704
|
+
padding: num("padding"),
|
|
705
|
+
maxWidth: str("max-width"),
|
|
706
|
+
class: str("class"),
|
|
707
|
+
arrow: bool("arrow"),
|
|
708
|
+
flip: bool("flip"),
|
|
709
|
+
shift: bool("shift"),
|
|
710
|
+
interactive: bool("interactive"),
|
|
711
|
+
allowHTML: bool("html"),
|
|
712
|
+
disabled: bool("disabled"),
|
|
713
|
+
hideOnClick: bool("hide-on-click")
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Set the app-wide tooltip options AND switch on the `mono-tooltip-*` attributes.
|
|
718
|
+
* Call once — usually in `main.ts`:
|
|
719
|
+
*
|
|
720
|
+
* ```ts
|
|
721
|
+
* app.use(createMonoTooltip({ delay: [300, 0] }))
|
|
722
|
+
* // or simply
|
|
723
|
+
* createMonoTooltip()
|
|
724
|
+
* ```
|
|
725
|
+
*
|
|
726
|
+
* The options WIN over the ones passed to `controlMonoTooltip`; an element's own
|
|
727
|
+
* `mono-tooltip-*` attributes win over them. A later call replaces the previous
|
|
728
|
+
* global options wholesale. `attributes: false` keeps the options but turns the
|
|
729
|
+
* declarative attributes off.
|
|
730
|
+
*/
|
|
731
|
+
function createMonoTooltip(options = {}) {
|
|
732
|
+
setMonoTooltipGlobal(options);
|
|
733
|
+
const wantAttributes = options.attributes !== false;
|
|
734
|
+
if (wantAttributes && !declarative && hasLiveDocument()) declarative = createTooltipController(TOOLTIP_ATTRIBUTE_SELECTOR, {}, readTooltipAttributes);
|
|
735
|
+
else if (!wantAttributes && declarative) {
|
|
736
|
+
declarative.destroy();
|
|
737
|
+
declarative = null;
|
|
738
|
+
}
|
|
739
|
+
return {
|
|
740
|
+
options: { ...options },
|
|
741
|
+
install() {}
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Close and forget every live tooltip controller — the attribute one included
|
|
746
|
+
* (a later `createMonoTooltip()` turns the attributes back on). For tests and a
|
|
747
|
+
* full app teardown; the global options are kept.
|
|
748
|
+
*/
|
|
749
|
+
function destroyAllMonoTooltips() {
|
|
750
|
+
destroyAllTooltipControllers();
|
|
751
|
+
declarative = null;
|
|
752
|
+
}
|
|
753
|
+
/** Drop the global options and turn the attributes off (tests, runtime reconfiguration). */
|
|
754
|
+
function resetMonoTooltip() {
|
|
755
|
+
setMonoTooltipGlobal(null);
|
|
756
|
+
declarative?.destroy();
|
|
757
|
+
declarative = null;
|
|
758
|
+
}
|
|
759
|
+
//#endregion
|
|
760
|
+
export { resetMonoTooltip as a, loadFloatingUi as c, resolveTooltipOptions as d, readTooltipAttributes as i, DEFAULT_TOOLTIP_OPTIONS as l, createMonoTooltip as n, controlMonoTooltip as o, destroyAllMonoTooltips as r, monoTooltip as s, TOOLTIP_ATTRIBUTE_SELECTOR as t, getMonoTooltipGlobal as u };
|