@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 @@
|
|
|
1
|
+
export {}
|
package/dist/ui/tabs.js
ADDED
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import { l as monoHostChildNodes } from "../mono-ui-CPV7rrdo.js";
|
|
2
|
+
import { t as customElement } from "../mono-element-B0kP_96P.js";
|
|
3
|
+
import { a as defineHybridPropAliases, n as arrayHasChanged, r as booleanStringConverter, t as __decorate } from "../decorate-DEXtNagw.js";
|
|
4
|
+
import { t as dispatchMonoEvent } from "../mono-event-Bi1qP9uN.js";
|
|
5
|
+
import { a as parkDetachedNodes, s as placeSlotNode } from "../light-slots-DW1WgfgT.js";
|
|
6
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
7
|
+
import { ref } from "lit/directives/ref.js";
|
|
8
|
+
import { property, state } from "lit/decorators.js";
|
|
9
|
+
//#region src/components/tabs/tabs-core.ts
|
|
10
|
+
/**
|
|
11
|
+
* Coerce any `items` input to a `TabItem[]`. Accepts an array (pass-through), a
|
|
12
|
+
* JSON string (`items='[...]'` attribute, OR a string assigned to the PROPERTY —
|
|
13
|
+
* which is what nuxt-ssr-lit does forwarding a Vue `:items="<json>"` binding to
|
|
14
|
+
* the SSR renderer), or anything else (→ `[]`).
|
|
15
|
+
*/
|
|
16
|
+
function coerceTabItems(value) {
|
|
17
|
+
if (Array.isArray(value)) return value;
|
|
18
|
+
if (typeof value === "string") {
|
|
19
|
+
if (!value) return [];
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(value);
|
|
22
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
23
|
+
} catch {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `MonoTabsCore` — all render-mode-agnostic logic for `mono-tabs`: reactive props
|
|
31
|
+
* (incl. the SSR `items` string→array coercion and `disabled` string→bool
|
|
32
|
+
* coercion), hybrid aliases, camelCase attribute fallbacks, the `modelValue`↔
|
|
33
|
+
* `value` sync, class computation, tab selection + `mno-click` events, keyboard
|
|
34
|
+
* navigation, and the `role="tablist"` `render()`. Per-tab icons render through a
|
|
35
|
+
* `_renderIcon()` hook: the light build uses `data-mono-slot` placeholders, the
|
|
36
|
+
* shadow build native `<slot name="icon-<id>">` (mirrors `mono-breadcrumb`).
|
|
37
|
+
*
|
|
38
|
+
* SSR-safe: no `document`/`window` access; `focus`/`blur` query `this.renderRoot`
|
|
39
|
+
* (the host in light, the shadow root in shadow) and only matter client-side.
|
|
40
|
+
*/
|
|
41
|
+
var MonoTabsCore = (superClass) => {
|
|
42
|
+
class MonoTabsCoreClass extends superClass {
|
|
43
|
+
constructor(...args) {
|
|
44
|
+
super(...args);
|
|
45
|
+
this.items = [];
|
|
46
|
+
this.modelValue = "";
|
|
47
|
+
this.value = "";
|
|
48
|
+
this.size = "md";
|
|
49
|
+
this.color = "primary";
|
|
50
|
+
this.variant = "underline";
|
|
51
|
+
this.orientation = "horizontal";
|
|
52
|
+
this.disabled = false;
|
|
53
|
+
this.cssClass = {};
|
|
54
|
+
this.cssClassName = "";
|
|
55
|
+
this._rootEl = null;
|
|
56
|
+
this.bindRoot = (el) => {
|
|
57
|
+
this._rootEl = el ?? null;
|
|
58
|
+
this._applyRootAttrs(this._rootEl);
|
|
59
|
+
};
|
|
60
|
+
defineHybridPropAliases(this, ["modelValue", "cssClass"]);
|
|
61
|
+
Object.defineProperty(this, "css-class", {
|
|
62
|
+
get: () => this.cssClass,
|
|
63
|
+
set: (value) => this._setCssClass(value),
|
|
64
|
+
configurable: true,
|
|
65
|
+
enumerable: false
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(this, "cssclass", {
|
|
68
|
+
get: () => this.cssClass,
|
|
69
|
+
set: (value) => this._setCssClass(value),
|
|
70
|
+
configurable: true,
|
|
71
|
+
enumerable: false
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
static get observedAttributes() {
|
|
75
|
+
return [
|
|
76
|
+
...super.observedAttributes ?? [],
|
|
77
|
+
"modelvalue",
|
|
78
|
+
"css-class",
|
|
79
|
+
"cssclass"
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
83
|
+
super.attributeChangedCallback(name, oldValue, newValue);
|
|
84
|
+
if (oldValue === newValue) return;
|
|
85
|
+
if (name === "modelvalue") {
|
|
86
|
+
this.modelValue = newValue ?? "";
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (name === "css-class" || name === "cssclass") this._setCssClass(newValue);
|
|
90
|
+
}
|
|
91
|
+
willUpdate(changed) {
|
|
92
|
+
if (typeof this.items === "string") this.items = coerceTabItems(this.items);
|
|
93
|
+
if (typeof this.disabled === "string") {
|
|
94
|
+
const normalized = this.disabled.toLowerCase().trim();
|
|
95
|
+
this.disabled = normalized === "" || normalized === "true";
|
|
96
|
+
}
|
|
97
|
+
if (changed.has("modelValue") && this.value !== this.modelValue) this.value = this.modelValue;
|
|
98
|
+
if (changed.has("value") && this.modelValue !== this.value) this.modelValue = this.value;
|
|
99
|
+
super.willUpdate?.(changed);
|
|
100
|
+
}
|
|
101
|
+
_setCssClass(value) {
|
|
102
|
+
if (value == null) {
|
|
103
|
+
this.cssClass = {};
|
|
104
|
+
this.cssClassName = "";
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (typeof value === "object") {
|
|
108
|
+
this.cssClass = value;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (typeof value === "string") {
|
|
112
|
+
const trimmed = value.trim();
|
|
113
|
+
if (!trimmed) {
|
|
114
|
+
this.cssClass = {};
|
|
115
|
+
this.cssClassName = "";
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
|
|
119
|
+
this.cssClass = JSON.parse(trimmed);
|
|
120
|
+
return;
|
|
121
|
+
} catch {}
|
|
122
|
+
this.cssClassName = trimmed;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
_cls(base, key) {
|
|
126
|
+
const extra = this.cssClass?.[key];
|
|
127
|
+
return extra ? `${base} ${extra}` : base;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The prop mirrors, each omitted at its default so `:not([mono-size])` means
|
|
131
|
+
* "md" for hand-written markup exactly as it does for the element.
|
|
132
|
+
*
|
|
133
|
+
* `aria-orientation` is ALWAYS written, and is not a `mono-` attribute:
|
|
134
|
+
* upstream styles the vertical strip from the ARIA state, and a tablist is
|
|
135
|
+
* supposed to carry it either way.
|
|
136
|
+
*/
|
|
137
|
+
_computeRootAttrs() {
|
|
138
|
+
return {
|
|
139
|
+
"mono-size": this.size === "md" ? null : this.size,
|
|
140
|
+
"mono-color": this.color === "primary" ? null : this.color,
|
|
141
|
+
"mono-variant": this.variant === "underline" ? null : this.variant,
|
|
142
|
+
"mono-disabled": this.disabled ? "" : null,
|
|
143
|
+
"aria-orientation": this.orientation === "vertical" ? "vertical" : "horizontal"
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
_applyRootAttrs(root) {
|
|
147
|
+
if (!root) return;
|
|
148
|
+
if (!root.hasAttribute("mono-tabs")) root.setAttribute("mono-tabs", "");
|
|
149
|
+
for (const [name, value] of Object.entries(this._computeRootAttrs())) if (value === null) root.removeAttribute(name);
|
|
150
|
+
else if (root.getAttribute(name) !== value) root.setAttribute(name, value);
|
|
151
|
+
}
|
|
152
|
+
updated(changed) {
|
|
153
|
+
super.updated?.(changed);
|
|
154
|
+
this._applyRootAttrs(this._rootEl);
|
|
155
|
+
}
|
|
156
|
+
get _wrapperClasses() {
|
|
157
|
+
return [
|
|
158
|
+
"mono-tabs",
|
|
159
|
+
this.size,
|
|
160
|
+
this.color,
|
|
161
|
+
`variant-${this.variant}`,
|
|
162
|
+
this.disabled ? "disabled" : "",
|
|
163
|
+
this.cssClassName,
|
|
164
|
+
this.cssClass?.root
|
|
165
|
+
].filter(Boolean).join(" ");
|
|
166
|
+
}
|
|
167
|
+
_isActive(item) {
|
|
168
|
+
return item.id === this.modelValue;
|
|
169
|
+
}
|
|
170
|
+
_tabClasses(item) {
|
|
171
|
+
const active = this._isActive(item);
|
|
172
|
+
return [
|
|
173
|
+
this._cls("mono-tabs-tab", "tab"),
|
|
174
|
+
active ? "on" : "",
|
|
175
|
+
active && this.cssClass?.tabActive ? this.cssClass.tabActive : "",
|
|
176
|
+
item.disabled ? "disabled" : "",
|
|
177
|
+
item.disabled && this.cssClass?.tabDisabled ? this.cssClass.tabDisabled : ""
|
|
178
|
+
].filter(Boolean).join(" ");
|
|
179
|
+
}
|
|
180
|
+
_emitClick(detail) {
|
|
181
|
+
dispatchMonoEvent(this, "click", detail, { alias: "change" });
|
|
182
|
+
}
|
|
183
|
+
_selectItem(item, sourceEvent) {
|
|
184
|
+
if (this.disabled || item.disabled) return;
|
|
185
|
+
if (this.modelValue === item.id) return;
|
|
186
|
+
const oldValue = this.modelValue;
|
|
187
|
+
this.modelValue = item.id;
|
|
188
|
+
this.value = item.id;
|
|
189
|
+
this._emitClick({
|
|
190
|
+
modelValue: item.id,
|
|
191
|
+
currentValue: item.id,
|
|
192
|
+
oldValue,
|
|
193
|
+
value: item.id,
|
|
194
|
+
item,
|
|
195
|
+
sourceEvent
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
_handleClick(item, event) {
|
|
199
|
+
this._selectItem(item, event);
|
|
200
|
+
}
|
|
201
|
+
select(id) {
|
|
202
|
+
const item = this.items.find((entry) => entry.id === id);
|
|
203
|
+
if (item) this._selectItem(item);
|
|
204
|
+
}
|
|
205
|
+
next() {
|
|
206
|
+
this._step(1);
|
|
207
|
+
}
|
|
208
|
+
previous() {
|
|
209
|
+
this._step(-1);
|
|
210
|
+
}
|
|
211
|
+
_step(delta) {
|
|
212
|
+
if (this.disabled || !this.items.length) return;
|
|
213
|
+
const enabled = this.items.filter((item) => !item.disabled);
|
|
214
|
+
if (!enabled.length) return;
|
|
215
|
+
const currentIndex = enabled.findIndex((item) => item.id === this.modelValue);
|
|
216
|
+
const nextIndex = currentIndex < 0 ? 0 : (currentIndex + delta + enabled.length) % enabled.length;
|
|
217
|
+
this._selectItem(enabled[nextIndex]);
|
|
218
|
+
}
|
|
219
|
+
focus() {
|
|
220
|
+
const root = this.renderRoot;
|
|
221
|
+
const tab = root.querySelector(".mono-tabs-tab.on");
|
|
222
|
+
const fallback = root.querySelector(".mono-tabs-tab");
|
|
223
|
+
(tab ?? fallback)?.focus();
|
|
224
|
+
}
|
|
225
|
+
blur() {
|
|
226
|
+
this.renderRoot.querySelector(".mono-tabs-tab:focus")?.blur();
|
|
227
|
+
}
|
|
228
|
+
/** The items to render for THIS pass. Shadow overrides for the hydration gate. */
|
|
229
|
+
_itemsForRender() {
|
|
230
|
+
return this.items;
|
|
231
|
+
}
|
|
232
|
+
/** Whether per-tab icons render through a native `<slot>` (shadow) vs `data-mono-slot` (light). */
|
|
233
|
+
_useIconSlots() {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
/** Whether tab `id` has a slotted icon. Light reads its capture map; shadow its scanned set. */
|
|
237
|
+
_iconHasContent(_id) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
_renderIcon(item) {
|
|
241
|
+
if (this._useIconSlots()) return html`
|
|
242
|
+
<span
|
|
243
|
+
class=${this._cls("mono-tabs-tab-icon", "icon")}
|
|
244
|
+
mono-icon
|
|
245
|
+
aria-hidden="true"
|
|
246
|
+
?mono-empty=${!this._iconHasContent(item.id)}
|
|
247
|
+
>
|
|
248
|
+
<slot name=${`icon-${item.id}`}></slot>
|
|
249
|
+
</span>
|
|
250
|
+
`;
|
|
251
|
+
if (!this._iconHasContent(item.id)) return nothing;
|
|
252
|
+
return html`
|
|
253
|
+
<span class=${this._cls("mono-tabs-tab-icon", "icon")} mono-icon aria-hidden="true">
|
|
254
|
+
<span data-mono-slot=${`icon-${item.id}`}></span>
|
|
255
|
+
</span>
|
|
256
|
+
`;
|
|
257
|
+
}
|
|
258
|
+
_renderBadge(item) {
|
|
259
|
+
if (item.badge === void 0 || item.badge === null || item.badge === "") return nothing;
|
|
260
|
+
return html`
|
|
261
|
+
<span class=${this._cls("mono-tabs-tab-badge", "badge")} mono-badge>
|
|
262
|
+
${item.badge}
|
|
263
|
+
</span>
|
|
264
|
+
`;
|
|
265
|
+
}
|
|
266
|
+
render() {
|
|
267
|
+
return html`
|
|
268
|
+
<div class=${this._wrapperClasses} mono-tabs role="tablist" ${ref(this.bindRoot)}>
|
|
269
|
+
${this._itemsForRender().map((item) => html`
|
|
270
|
+
<button
|
|
271
|
+
type="button"
|
|
272
|
+
class=${this._tabClasses(item)}
|
|
273
|
+
mono-tab
|
|
274
|
+
role="tab"
|
|
275
|
+
aria-selected=${this._isActive(item) ? "true" : "false"}
|
|
276
|
+
?disabled=${this.disabled || item.disabled}
|
|
277
|
+
data-tab-id=${item.id}
|
|
278
|
+
@click=${(event) => this._handleClick(item, event)}
|
|
279
|
+
>
|
|
280
|
+
${this._renderIcon(item)}
|
|
281
|
+
<span class=${this._cls("mono-tabs-tab-label", "label")} mono-label>
|
|
282
|
+
${item.label}
|
|
283
|
+
</span>
|
|
284
|
+
${this._renderBadge(item)}
|
|
285
|
+
</button>
|
|
286
|
+
`)}
|
|
287
|
+
</div>
|
|
288
|
+
`;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
__decorate([property({
|
|
292
|
+
attribute: "items",
|
|
293
|
+
converter: {
|
|
294
|
+
fromAttribute: (value) => coerceTabItems(value),
|
|
295
|
+
toAttribute: () => null
|
|
296
|
+
},
|
|
297
|
+
hasChanged: arrayHasChanged
|
|
298
|
+
})], MonoTabsCoreClass.prototype, "items", void 0);
|
|
299
|
+
__decorate([property({
|
|
300
|
+
type: String,
|
|
301
|
+
attribute: "model-value",
|
|
302
|
+
reflect: true
|
|
303
|
+
})], MonoTabsCoreClass.prototype, "modelValue", void 0);
|
|
304
|
+
__decorate([property({ type: String })], MonoTabsCoreClass.prototype, "value", void 0);
|
|
305
|
+
__decorate([property({ type: String })], MonoTabsCoreClass.prototype, "size", void 0);
|
|
306
|
+
__decorate([property({ type: String })], MonoTabsCoreClass.prototype, "color", void 0);
|
|
307
|
+
__decorate([property({ type: String })], MonoTabsCoreClass.prototype, "variant", void 0);
|
|
308
|
+
__decorate([property({ type: String })], MonoTabsCoreClass.prototype, "orientation", void 0);
|
|
309
|
+
__decorate([property({
|
|
310
|
+
reflect: true,
|
|
311
|
+
converter: booleanStringConverter
|
|
312
|
+
})], MonoTabsCoreClass.prototype, "disabled", void 0);
|
|
313
|
+
__decorate([property({ attribute: false })], MonoTabsCoreClass.prototype, "cssClass", void 0);
|
|
314
|
+
__decorate([property({ attribute: false })], MonoTabsCoreClass.prototype, "cssClassName", void 0);
|
|
315
|
+
return MonoTabsCoreClass;
|
|
316
|
+
};
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region src/components/tabs/tabs.css?raw
|
|
319
|
+
var tabs_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-tabs — a port of Basecoat's `.tabs` (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-tabs size=\"lg\" color=\"success\" variant=\"pill\" model-value=\"a\">\r\n <div mono-tabs mono-size=\"lg\" mono-color=\"success\" mono-variant=\"pill\"\r\n role=\"tablist\" aria-orientation=\"horizontal\">\r\n <button mono-tab type=\"button\" role=\"tab\" aria-selected=\"true\">\r\n <span mono-icon>…</span>\r\n <span mono-label>Overview</span>\r\n <span mono-badge>3</span>\r\n </button>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-variant])` = underline). The\r\n element writes them on its root — the host in the light build, an inner root\r\n in the shadow one — plus `mono-disabled`. The old classes\r\n (`.mono-tabs.md.primary.variant-pill`, `.mono-tabs-tab.on`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-tabs] ≡ .tabs > [role='tablist'] (inline-flex w-fit\r\n items-center justify-center rounded-lg\r\n p-[3px] h-9, bg-muted unless line)\r\n — DEVIATION: this element renders the STRIP\r\n only, never the panels, so there is no\r\n `.tabs` wrapper. Its job — the flex\r\n direction and the `gap-2` to the panel —\r\n belongs to the consumer's own layout.\r\n [mono-variant=\"pill\"] ≡ the DEFAULT tablist (upstream has no name\r\n for it; ours is `pill`)\r\n [mono-variant=\"underline\"] ≡ [data-variant='line'] (gap-1 rounded-none\r\n bg-transparent, selected via the ::after bar)\r\n [mono-variant=\"ghost\"] ≡ EXTENSION\r\n [aria-orientation=\"vertical\"] ≡ [aria-orientation='vertical'] (h-fit\r\n flex-col; tabs w-full justify-start)\r\n [mono-tab] ≡ > [role='tab'] (relative inline-flex flex-1\r\n items-center justify-center whitespace-nowrap\r\n gap-1.5 rounded-md border border-transparent\r\n px-2 py-1 text-sm font-medium, ink\r\n foreground/60 → foreground on hover)\r\n [mono-tab][aria-selected=true] ≡ [role='tab'][aria-selected='true'] — the\r\n pill fill (bg-background shadow-sm, dark\r\n border-input bg-input/30) or the line bar\r\n [mono-tab]::after ≡ the `after:` bar the line variant reveals\r\n (inset-x-0 bottom-[-5px] h-0.5 bg-foreground)\r\n [mono-icon] ≡ [&_svg:not([class*='size-'])]:size-4, plus\r\n upstream's ps-1.5 / pe-1.5 when a tab leads\r\n or trails with one\r\n [mono-label] ≡ the tab's own text\r\n [mono-badge] ≡ EXTENSION\r\n [mono-size]/[mono-color] ≡ EXTENSION (upstream ships one size, no colour)\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-icon]`, `[mono-label]` and `[mono-badge]`\r\n are also button's, input's and card's part names, so every rule here is\r\n written as a child path from the root — `:where([mono-tabs] > [mono-tab]) >\r\n [mono-label]`. The `:where()` keeps that at (0,1,0), the weight a\r\n one-attribute rule would have, so a `cssClass` utility still wins by source\r\n order.\r\n\r\n STATE IS ARIA, not a class. `aria-selected` and `disabled` are what the\r\n element already renders and what upstream keys on, so the port needs no\r\n `mono-selected` of its own — and hand-written markup that is accessible is\r\n styled correctly by construction.\r\n\r\n FLAVORS set `--mono-tabs-{radius,padding,height,gap,tab-radius,tab-pad-x,\r\n tab-pad-y,tab-font,tab-gap,tab-font-weight,tab-text-transform,\r\n tab-letter-spacing,icon-size}`; every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"tabs\"` prints the matrix).\r\n ========================================================================= */\r\n\r\nmono-tabs {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the tablist\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/tabs.css .tabs >> > [role='tablist'] — text-muted-foreground\r\n inline-flex w-fit items-center justify-center */\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] — rounded-lg p-[3px] h-9 */\r\n[mono-tabs] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-tabs-primary: var(--mono-tabs-primary, var(--primary));\r\n --_mono-tabs-secondary: var(--mono-tabs-secondary, var(--secondary-foreground));\r\n --_mono-tabs-success: var(--mono-tabs-success, var(--success));\r\n --_mono-tabs-danger: var(--mono-tabs-danger, var(--destructive));\r\n --_mono-tabs-warning: var(--mono-tabs-warning, var(--warning));\r\n --_mono-tabs-info: var(--mono-tabs-info, var(--info));\r\n --_mono-tabs-teal: var(--mono-tabs-teal, var(--teal));\r\n --_mono-tabs-purple: var(--mono-tabs-purple, var(--purple));\r\n --_mono-tabs-neutral: var(--mono-tabs-neutral, var(--neutral));\r\n --_mono-tabs-dark: var(--mono-tabs-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-tabs-accent: var(--mono-tabs-accent, var(--_mono-tabs-accent-preset, var(--_mono-tabs-primary)));\r\n\r\n /* ── inks. `text-foreground/60 → text-foreground`, and the dark-mode pair\r\n `text-muted-foreground → text-foreground`, ride one mode token. ────── */\r\n --_mono-tabs-text: var(--mono-tabs-text, var(--foreground));\r\n --_mono-tabs-muted: var(--mono-tabs-muted, var(--mono-mode-tab-inactive-fg));\r\n /* `-background` is the pre-port name for the strip's own fill, honoured\r\n until 2.0; `-surface` named the SELECTED tab's fill and is read there. */\r\n --_mono-tabs-bg: var(--mono-tabs-bg, var(--mono-tabs-background, var(--muted)));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────── */\r\n --_mono-tabs-height: var(--mono-tabs-height, var(--_mono-tabs-height-preset, var(--mono-tabs-height-md, var(--mono-control-height-md))));\r\n --_mono-tabs-radius: var(--mono-tabs-radius, var(--_mono-tabs-radius-preset, var(--mono-tabs-radius-md, var(--mono-radius-lg))));\r\n --_mono-tabs-padding: var(--mono-tabs-padding, var(--_mono-tabs-padding-preset, var(--mono-tabs-padding-md, 3px)));\r\n /* `--mono-tabs-gap` named the gap INSIDE a tab before the port and still\r\n does; the STRIP's own gap — upstream's `gap-1` on the line variant — is a\r\n new thing and gets a new name. */\r\n --_mono-tabs-gap: var(--mono-tabs-strip-gap, var(--_mono-tabs-gap-preset, 0px));\r\n\r\n --_mono-tabs-tab-radius: var(--mono-tabs-tab-radius, var(--_mono-tabs-tab-radius-preset, var(--mono-tabs-tab-radius-md, var(--mono-radius-md))));\r\n /* `-pad-x` / `-pad-y` / `-gap` without the `tab-` are the pre-port names for\r\n these three, honoured until 2.0. */\r\n --_mono-tabs-tab-pad-x: var(--mono-tabs-tab-pad-x, var(--mono-tabs-pad-x, var(--_mono-tabs-tab-pad-x-preset, var(--mono-tabs-tab-pad-x-md, calc(var(--mono-spacing) * 2)))));\r\n --_mono-tabs-tab-pad-y: var(--mono-tabs-tab-pad-y, var(--mono-tabs-pad-y, var(--_mono-tabs-tab-pad-y-preset, var(--mono-tabs-tab-pad-y-md, var(--mono-spacing)))));\r\n --_mono-tabs-tab-gap: var(--mono-tabs-tab-gap, var(--mono-tabs-gap, var(--_mono-tabs-tab-gap-preset, var(--mono-tabs-tab-gap-md, calc(var(--mono-spacing) * 1.5)))));\r\n --_mono-tabs-font: var(--mono-tabs-font, var(--_mono-tabs-font-preset, var(--mono-tabs-tab-font-md, var(--mono-text-sm))));\r\n --_mono-tabs-line-height: var(--mono-tabs-line-height, var(--_mono-tabs-line-height-preset, var(--mono-text-sm--lh)));\r\n --_mono-tabs-font-weight: var(--mono-tabs-font-weight, var(--mono-tabs-tab-font-weight, var(--mono-font-weight-medium)));\r\n --_mono-tabs-text-transform: var(--mono-tabs-text-transform, var(--mono-tabs-tab-text-transform, none));\r\n --_mono-tabs-letter-spacing: var(--mono-tabs-letter-spacing, var(--mono-tabs-tab-letter-spacing, normal));\r\n --_mono-tabs-icon-size: var(--mono-tabs-icon-size, var(--_mono-tabs-icon-size-preset, var(--mono-tabs-icon-size-md, calc(var(--mono-spacing) * 4))));\r\n\r\n /* ── the selected PILL — `bg-background shadow-sm`, dark `border-input\r\n bg-input/30`, both carried by mode tokens ─────────────────────────── */\r\n --_mono-tabs-active-bg: var(--mono-tabs-active-bg, var(--mono-tabs-surface, var(--mono-mode-tab-active-bg)));\r\n --_mono-tabs-active-border: var(--mono-tabs-active-border, var(--mono-mode-tab-active-border));\r\n --_mono-tabs-active-shadow: var(--mono-tabs-active-shadow, var(--mono-shadow-sm));\r\n /* EXTENSION: upstream's selected tab is `text-foreground`; ours takes the role,\r\n which IS the foreground under the Basecoat palette. */\r\n --_mono-tabs-active-color: var(--mono-tabs-active-color, var(--_mono-tabs-accent));\r\n\r\n /* ── the LINE bar — `after:bg-foreground h-0.5 bottom-[-5px]` ──────────── */\r\n --_mono-tabs-line-color: var(--mono-tabs-line-color, var(--_mono-tabs-accent));\r\n --_mono-tabs-line-size: var(--mono-tabs-line-size, 2px);\r\n --_mono-tabs-line-offset: var(--mono-tabs-line-offset, -5px);\r\n /* EXTENSION, off by default: upstream's line variant has no baseline rule\r\n under the strip, only the bar under the selected tab. A flavor or consumer\r\n that wants the old full-width rule sets this. */\r\n --_mono-tabs-line-track-color: var(--mono-tabs-line-track-color, transparent);\r\n --_mono-tabs-line-track-size: var(--mono-tabs-line-track-size, var(--_mono-tabs-line-size));\r\n\r\n /* ── focus — `focus-visible:border-ring ring-ring/50 ring-[3px]` ───────── */\r\n --_mono-tabs-ring-color: var(--mono-tabs-ring-color, var(--ring));\r\n --_mono-tabs-ring-width: var(--mono-tabs-ring-width, var(--mono-ring-width));\r\n\r\n display: inline-flex;\r\n width: fit-content;\r\n max-width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--_mono-tabs-gap);\r\n box-sizing: border-box;\r\n height: var(--_mono-tabs-height);\r\n padding: var(--_mono-tabs-padding);\r\n border-radius: var(--_mono-tabs-radius);\r\n color: var(--muted-foreground);\r\n font-family: inherit;\r\n}\r\n\r\n[mono-tabs],\r\n:where([mono-tabs]) *,\r\n:where([mono-tabs]) *::before,\r\n:where([mono-tabs]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* basecoat@1.0.2 components/tabs.css .tabs >> > [role='tablist'] >> &[aria-orientation='vertical']\r\n — h-fit flex-col */\r\n[mono-tabs][aria-orientation=\"vertical\"] {\r\n height: fit-content;\r\n flex-direction: column;\r\n}\r\n\r\n/* =========================================\r\n Variants — upstream's default tablist and its `[data-variant='line']`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist']:not([data-variant='line']) — bg-muted */\r\n[mono-tabs][mono-variant=\"pill\"] {\r\n background: var(--_mono-tabs-bg);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'][data-variant='line']\r\n — gap-1 rounded-none bg-transparent */\r\n[mono-tabs]:is(:not([mono-variant]), [mono-variant=\"underline\"]) {\r\n --_mono-tabs-gap: var(--mono-tabs-strip-gap, var(--mono-spacing));\r\n border-radius: 0;\r\n background: transparent;\r\n /* EXTENSION — the baseline rule, off unless a flavor or consumer turns it on. */\r\n box-shadow: inset 0 calc(-1 * var(--_mono-tabs-line-track-size)) 0 0 var(--_mono-tabs-line-track-color);\r\n}\r\n\r\n/* EXTENSION — a bare strip whose tabs wash on hover and hold a tint when selected. */\r\n[mono-tabs][mono-variant=\"ghost\"] {\r\n --_mono-tabs-gap: var(--mono-tabs-strip-gap, var(--mono-spacing));\r\n background: transparent;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: Basecoat ships ONE tab size; md is its `[role='tablist']`\r\n ========================================= */\r\n\r\n[mono-tabs][mono-size=\"xs\"] {\r\n --_mono-tabs-height-preset: var(--mono-control-height-xs);\r\n --_mono-tabs-radius-preset: var(--mono-tabs-radius-xs, var(--mono-radius-md));\r\n --_mono-tabs-padding-preset: var(--mono-tabs-padding-xs, 2px);\r\n --_mono-tabs-tab-radius-preset: var(--mono-tabs-tab-radius-xs, var(--mono-radius-sm));\r\n --_mono-tabs-tab-pad-x-preset: var(--mono-tabs-tab-pad-x-xs, calc(var(--mono-spacing) * 1.5));\r\n --_mono-tabs-tab-pad-y-preset: var(--mono-tabs-tab-pad-y-xs, calc(var(--mono-spacing) * 0.25));\r\n --_mono-tabs-tab-gap-preset: calc(var(--mono-spacing) * 1);\r\n --_mono-tabs-font-preset: var(--mono-tabs-tab-font-xs, var(--mono-text-xs));\r\n --_mono-tabs-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-tabs-icon-size-preset: var(--mono-tabs-icon-size-xs, calc(var(--mono-spacing) * 3));\r\n}\r\n\r\n[mono-tabs][mono-size=\"sm\"] {\r\n --_mono-tabs-height-preset: var(--mono-control-height-sm);\r\n --_mono-tabs-radius-preset: var(--mono-tabs-radius-sm, var(--mono-radius-md));\r\n --_mono-tabs-padding-preset: var(--mono-tabs-padding-sm, 2px);\r\n --_mono-tabs-tab-radius-preset: var(--mono-tabs-tab-radius-sm, var(--mono-radius-sm));\r\n --_mono-tabs-tab-pad-x-preset: var(--mono-tabs-tab-pad-x-sm, calc(var(--mono-spacing) * 1.5));\r\n --_mono-tabs-tab-pad-y-preset: var(--mono-tabs-tab-pad-y-sm, calc(var(--mono-spacing) * 0.5));\r\n --_mono-tabs-tab-gap-preset: calc(var(--mono-spacing) * 1.25);\r\n --_mono-tabs-font-preset: var(--mono-tabs-tab-font-sm, var(--mono-text-xs));\r\n --_mono-tabs-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-tabs-icon-size-preset: var(--mono-tabs-icon-size-sm, calc(var(--mono-spacing) * 3.5));\r\n}\r\n\r\n[mono-tabs][mono-size=\"lg\"] {\r\n --_mono-tabs-height-preset: var(--mono-control-height-lg);\r\n --_mono-tabs-radius-preset: var(--mono-tabs-radius-lg, var(--mono-radius-lg));\r\n --_mono-tabs-padding-preset: var(--mono-tabs-padding-lg, 4px);\r\n --_mono-tabs-tab-radius-preset: var(--mono-tabs-tab-radius-lg, var(--mono-radius-md));\r\n --_mono-tabs-tab-pad-x-preset: var(--mono-tabs-tab-pad-x-lg, calc(var(--mono-spacing) * 3));\r\n --_mono-tabs-tab-pad-y-preset: var(--mono-tabs-tab-pad-y-lg, calc(var(--mono-spacing) * 1.5));\r\n --_mono-tabs-tab-gap-preset: calc(var(--mono-spacing) * 2);\r\n --_mono-tabs-font-preset: var(--mono-tabs-tab-font-lg, var(--mono-text-sm));\r\n --_mono-tabs-icon-size-preset: var(--mono-tabs-icon-size-lg, calc(var(--mono-spacing) * 4.5));\r\n}\r\n\r\n[mono-tabs][mono-size=\"xl\"] {\r\n --_mono-tabs-height-preset: var(--mono-control-height-xl);\r\n --_mono-tabs-radius-preset: var(--mono-tabs-radius-xl, var(--mono-radius-xl));\r\n --_mono-tabs-padding-preset: var(--mono-tabs-padding-xl, 5px);\r\n --_mono-tabs-tab-radius-preset: var(--mono-tabs-tab-radius-xl, var(--mono-radius-lg));\r\n --_mono-tabs-tab-pad-x-preset: var(--mono-tabs-tab-pad-x-xl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-tabs-tab-pad-y-preset: var(--mono-tabs-tab-pad-y-xl, calc(var(--mono-spacing) * 2));\r\n --_mono-tabs-tab-gap-preset: calc(var(--mono-spacing) * 2.25);\r\n --_mono-tabs-font-preset: var(--mono-tabs-tab-font-xl, var(--mono-text-base));\r\n --_mono-tabs-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-tabs-icon-size-preset: var(--mono-tabs-icon-size-xl, calc(var(--mono-spacing) * 5));\r\n}\r\n\r\n[mono-tabs][mono-size=\"xxl\"] {\r\n --_mono-tabs-height-preset: var(--mono-control-height-xxl);\r\n --_mono-tabs-radius-preset: var(--mono-tabs-radius-xxl, var(--mono-radius-xl));\r\n --_mono-tabs-padding-preset: var(--mono-tabs-padding-xxl, 6px);\r\n --_mono-tabs-tab-radius-preset: var(--mono-tabs-tab-radius-xxl, var(--mono-radius-lg));\r\n --_mono-tabs-tab-pad-x-preset: var(--mono-tabs-tab-pad-x-xxl, calc(var(--mono-spacing) * 4));\r\n --_mono-tabs-tab-pad-y-preset: var(--mono-tabs-tab-pad-y-xxl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-tabs-tab-gap-preset: calc(var(--mono-spacing) * 2.5);\r\n --_mono-tabs-font-preset: var(--mono-tabs-tab-font-xxl, var(--mono-text-lg));\r\n --_mono-tabs-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-tabs-icon-size-preset: var(--mono-tabs-icon-size-xxl, calc(var(--mono-spacing) * 5.5));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role inks the selected tab and the line bar\r\n ========================================= */\r\n\r\n[mono-tabs][mono-color=\"primary\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-primary); }\r\n[mono-tabs][mono-color=\"secondary\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-secondary); }\r\n[mono-tabs][mono-color=\"success\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-success); }\r\n[mono-tabs][mono-color=\"danger\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-danger); }\r\n[mono-tabs][mono-color=\"warning\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-warning); }\r\n[mono-tabs][mono-color=\"info\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-info); }\r\n[mono-tabs][mono-color=\"teal\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-teal); }\r\n[mono-tabs][mono-color=\"purple\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-purple); }\r\n[mono-tabs][mono-color=\"neutral\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-neutral); }\r\n[mono-tabs][mono-color=\"dark\"] { --_mono-tabs-accent-preset: var(--_mono-tabs-dark); }\r\n\r\n/* =========================================\r\n Tab — `> [role='tab']`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/tabs.css .tabs >> > [role='tablist'] >> > [role='tab']\r\n — relative inline-flex flex-1 items-center justify-center whitespace-nowrap\r\n transition-all outline-none, disabled:pointer-events-none disabled:opacity-50 */\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] > [role='tab']\r\n — gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium,\r\n text-foreground/60 hover:text-foreground (dark: muted-foreground → foreground),\r\n focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] */\r\n:where([mono-tabs]) > [mono-tab] {\r\n position: relative;\r\n display: inline-flex;\r\n flex: 1 1 auto;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--_mono-tabs-tab-gap);\r\n padding: var(--_mono-tabs-tab-pad-y) var(--_mono-tabs-tab-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-tabs-tab-radius);\r\n background: transparent;\r\n color: var(--_mono-tabs-muted);\r\n font-family: inherit;\r\n font-size: var(--_mono-tabs-font);\r\n line-height: var(--_mono-tabs-line-height);\r\n font-weight: var(--_mono-tabs-font-weight);\r\n text-transform: var(--_mono-tabs-text-transform);\r\n letter-spacing: var(--_mono-tabs-letter-spacing);\r\n white-space: nowrap;\r\n text-decoration: none;\r\n cursor: pointer;\r\n user-select: none;\r\n outline: none;\r\n appearance: none;\r\n transition:\r\n color var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-tabs] > [mono-tab]:hover:not(:disabled):not([aria-disabled=\"true\"]) {\r\n color: var(--_mono-tabs-text);\r\n }\r\n}\r\n\r\n[mono-tabs] > [mono-tab]:focus-visible {\r\n border-color: var(--_mono-tabs-ring-color);\r\n box-shadow: 0 0 0 var(--_mono-tabs-ring-width)\r\n color-mix(in oklab, var(--_mono-tabs-ring-color) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 components/tabs.css .tabs >> > [role='tablist'] >> > [role='tab']\r\n — disabled:pointer-events-none disabled:opacity-50. DEVIATION: 0.45, this\r\n component's pre-port value. */\r\n[mono-tabs] > [mono-tab]:disabled,\r\n[mono-tabs] > [mono-tab][aria-disabled=\"true\"],\r\n[mono-tabs][mono-disabled] > [mono-tab] {\r\n opacity: 0.45;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'][aria-orientation='vertical'] > [role='tab']\r\n — w-full justify-start */\r\n[mono-tabs][aria-orientation=\"vertical\"] > [mono-tab] {\r\n width: 100%;\r\n justify-content: flex-start;\r\n}\r\n\r\n/* Upstream suppresses the host page's generic anchor decoration the same way a\r\n button would; tabs render as <button> today, but the rule is kept for a future\r\n anchor tab (an `href` / RouterLink integration) — and for VitePress, whose\r\n `.vp-doc a` would otherwise underline one. */\r\n[mono-tabs] a[mono-tab],\r\n[mono-tabs] a[mono-tab]:hover,\r\n[mono-tabs] a[mono-tab]:focus {\r\n text-decoration: none;\r\n}\r\n\r\n[mono-tabs] a[mono-tab]::after {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Selected — `[aria-selected='true']`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist']:not([data-variant='line']) > [role='tab'][aria-selected='true']\r\n — bg-background text-foreground shadow-sm, dark border-input bg-input/30 */\r\n[mono-tabs][mono-variant=\"pill\"] > [mono-tab][aria-selected=\"true\"] {\r\n background: var(--_mono-tabs-active-bg);\r\n border-color: var(--_mono-tabs-active-border);\r\n box-shadow: var(--_mono-tabs-active-shadow);\r\n color: var(--_mono-tabs-active-color);\r\n}\r\n\r\n/* EXTENSION — ghost holds a tint instead of a raised pill. */\r\n[mono-tabs][mono-variant=\"ghost\"] > [mono-tab][aria-selected=\"true\"] {\r\n background: var(--mono-tabs-ghost-active-bg,\r\n color-mix(in oklab, var(--_mono-tabs-accent) var(--mono-mode-tint), transparent));\r\n color: var(--_mono-tabs-active-color);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-tabs][mono-variant=\"ghost\"] > [mono-tab]:hover:not(:disabled):not([aria-selected=\"true\"]) {\r\n background: var(--mono-tabs-ghost-hover-bg, var(--mono-mode-ghost-hover));\r\n }\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'][data-variant='line'] > [role='tab'][aria-selected='true']\r\n — bg-transparent text-foreground shadow-none after:opacity-100 */\r\n[mono-tabs]:is(:not([mono-variant]), [mono-variant=\"underline\"]) > [mono-tab][aria-selected=\"true\"] {\r\n background: transparent;\r\n box-shadow: none;\r\n color: var(--_mono-tabs-active-color);\r\n}\r\n\r\n/* =========================================\r\n The line bar — the `::after` upstream reveals\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] > [role='tab']\r\n — after:absolute after:bg-foreground after:opacity-0 after:transition-opacity */\r\n:where([mono-tabs]) > [mono-tab]::after {\r\n content: '';\r\n position: absolute;\r\n background: var(--_mono-tabs-line-color);\r\n opacity: 0;\r\n pointer-events: none;\r\n transition: opacity var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'][data-variant='line'][aria-orientation='horizontal'] > [role='tab']\r\n — after:inset-x-0 after:bottom-[-5px] after:h-0.5 */\r\n[mono-tabs]:is(:not([mono-variant]), [mono-variant=\"underline\"]):not([aria-orientation=\"vertical\"]) > [mono-tab]::after {\r\n inset-inline: 0;\r\n bottom: var(--_mono-tabs-line-offset);\r\n height: var(--_mono-tabs-line-size);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'][data-variant='line'][aria-orientation='vertical'] > [role='tab']\r\n — after:inset-y-0 after:end-[-4px] after:w-0.5 */\r\n[mono-tabs]:is(:not([mono-variant]), [mono-variant=\"underline\"])[aria-orientation=\"vertical\"] > [mono-tab]::after {\r\n inset-block: 0;\r\n inset-inline-end: calc(var(--_mono-tabs-line-offset) + 1px);\r\n width: var(--_mono-tabs-line-size);\r\n}\r\n\r\n[mono-tabs]:is(:not([mono-variant]), [mono-variant=\"underline\"]) > [mono-tab][aria-selected=\"true\"]::after {\r\n opacity: 1;\r\n}\r\n\r\n/* =========================================\r\n Icon — `[&_svg:not([class*='size-'])]:size-4`\r\n ========================================= */\r\n\r\n:where([mono-tabs] > [mono-tab]) > [mono-icon] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-tabs-icon-size);\r\n height: var(--_mono-tabs-icon-size);\r\n color: inherit;\r\n line-height: 1;\r\n pointer-events: none;\r\n}\r\n\r\n/* Light: the `[data-mono-slot]` placeholder the svg is moved into. Shadow: the\r\n projected svg. Either way it fills the box upstream sizes. */\r\n[mono-tabs] > [mono-tab] > [mono-icon] > :is(svg, span, [data-mono-slot]),\r\n[mono-tabs] > [mono-tab] > [mono-icon] > [data-mono-slot] > svg,\r\n[mono-tabs] > [mono-tab] > [mono-icon] slot::slotted(svg) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] > [role='tab']:has(> svg:first-child)\r\n — ps-1.5. A tab that LEADS with a glyph tucks in on that side.\r\n\r\n `:not([mono-empty])` is what keeps the two builds equal: the shadow one\r\n renders an icon box for every tab (DSD has to have something to project into)\r\n and marks the empty ones, so a bare `:has()` tucked in EVERY shadow tab. */\r\n[mono-tabs] > [mono-tab]:has(> [mono-icon]:first-child:not([mono-empty])) {\r\n padding-inline-start: var(--mono-tabs-tab-icon-pad, calc(var(--mono-spacing) * 1.5));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] > [role='tab']:has(> svg:last-child)\r\n — pe-1.5 */\r\n[mono-tabs] > [mono-tab]:has(> [mono-icon]:last-child:not([mono-empty])) {\r\n padding-inline-end: var(--mono-tabs-tab-icon-pad, calc(var(--mono-spacing) * 1.5));\r\n}\r\n\r\n/* The shadow build renders the icon box for every tab (DSD projects into it) and\r\n marks the empty ones; the light build renders only what it captured. */\r\n[mono-tabs] > [mono-tab] > [mono-icon][mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Label + badge\r\n ========================================= */\r\n\r\n:where([mono-tabs] > [mono-tab]) > [mono-label] {\r\n display: inline-block;\r\n line-height: inherit;\r\n text-decoration: none;\r\n}\r\n\r\n/* EXTENSION — a count beside the label. Upstream has no badge. */\r\n:where([mono-tabs] > [mono-tab]) > [mono-badge] {\r\n --_mono-tabs-badge-size: var(--mono-tabs-badge-size, calc(var(--mono-spacing) * 4.5));\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: var(--_mono-tabs-badge-size);\r\n height: var(--_mono-tabs-badge-size);\r\n padding-inline: calc(var(--mono-spacing) * 1.25);\r\n border-radius: var(--mono-radius-full);\r\n background: var(--mono-tabs-badge-bg, color-mix(in oklab, var(--foreground) 10%, transparent));\r\n color: var(--mono-tabs-badge-color, var(--_mono-tabs-muted));\r\n font-size: var(--mono-tabs-badge-font, var(--mono-text-xs));\r\n font-weight: var(--mono-font-weight-semibold);\r\n font-variant-numeric: tabular-nums;\r\n line-height: 1;\r\n}\r\n\r\n[mono-tabs] > [mono-tab][aria-selected=\"true\"] > [mono-badge] {\r\n background: var(--mono-tabs-badge-active-bg, var(--_mono-tabs-accent));\r\n color: var(--mono-tabs-badge-active-color, var(--primary-foreground));\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-tabs] > [mono-tab],\r\n [mono-tabs] > [mono-tab]::after {\r\n transition: none;\r\n }\r\n}\r\n";
|
|
320
|
+
//#endregion
|
|
321
|
+
//#region src/components/tabs/mono-tabs.ts
|
|
322
|
+
var MonoTabs = class MonoTabs extends MonoTabsCore(LitElement) {
|
|
323
|
+
constructor(..._args) {
|
|
324
|
+
super(..._args);
|
|
325
|
+
this._slotsCaptured = false;
|
|
326
|
+
this._slotIcons = /* @__PURE__ */ new Map();
|
|
327
|
+
}
|
|
328
|
+
static {
|
|
329
|
+
this.styles = [unsafeCSS(tabs_default)];
|
|
330
|
+
}
|
|
331
|
+
createRenderRoot() {
|
|
332
|
+
return this;
|
|
333
|
+
}
|
|
334
|
+
/** Light-DOM: a tab has an icon when a `slot="icon-<id>"` child was captured. */
|
|
335
|
+
_iconHasContent(id) {
|
|
336
|
+
return this._slotIcons.has(id);
|
|
337
|
+
}
|
|
338
|
+
connectedCallback() {
|
|
339
|
+
super.connectedCallback();
|
|
340
|
+
this._captureSlots();
|
|
341
|
+
if (this.isConnected) this.performUpdate();
|
|
342
|
+
}
|
|
343
|
+
updated(changed) {
|
|
344
|
+
super.updated(changed);
|
|
345
|
+
this._placeIconSlots();
|
|
346
|
+
this._orphanHolder = parkDetachedNodes(this._orphanHolder, [...this._slotIcons.values()].flat());
|
|
347
|
+
}
|
|
348
|
+
_captureSlots() {
|
|
349
|
+
if (this._slotsCaptured) return;
|
|
350
|
+
this._slotsCaptured = true;
|
|
351
|
+
const captured = monoHostChildNodes(this);
|
|
352
|
+
const capturedSlotNodes = /* @__PURE__ */ new Set();
|
|
353
|
+
for (const node of captured) {
|
|
354
|
+
if (!(node instanceof Element)) continue;
|
|
355
|
+
const slotName = node.getAttribute("slot");
|
|
356
|
+
if (!slotName || !slotName.startsWith("icon-")) continue;
|
|
357
|
+
const id = slotName.slice(5);
|
|
358
|
+
if (!id) continue;
|
|
359
|
+
node.removeAttribute("slot");
|
|
360
|
+
const list = this._slotIcons.get(id) ?? [];
|
|
361
|
+
list.push(node);
|
|
362
|
+
this._slotIcons.set(id, list);
|
|
363
|
+
capturedSlotNodes.add(node);
|
|
364
|
+
}
|
|
365
|
+
for (const node of capturedSlotNodes) if (node.parentNode === this) this.removeChild(node);
|
|
366
|
+
}
|
|
367
|
+
_placeIconSlots() {
|
|
368
|
+
if (!this._slotIcons.size) return;
|
|
369
|
+
for (const [id, nodes] of this._slotIcons) {
|
|
370
|
+
const target = this.querySelector(`[data-mono-slot="icon-${id}"]`);
|
|
371
|
+
if (!target) continue;
|
|
372
|
+
for (const node of nodes) placeSlotNode(target, node);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
__decorate([state()], MonoTabs.prototype, "_slotsCaptured", void 0);
|
|
377
|
+
MonoTabs = __decorate([customElement("mono-tabs")], MonoTabs);
|
|
378
|
+
//#endregion
|
|
379
|
+
export { MonoTabs };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|