@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,902 @@
|
|
|
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 { t as isIconifyClass } from "../icon-dVhYJUIH.js";
|
|
7
|
+
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
8
|
+
import { property, state } from "lit/decorators.js";
|
|
9
|
+
//#region src/components/breadcrumb/breadcrumb-utils.ts
|
|
10
|
+
/**
|
|
11
|
+
* Coerce any `items` input to a `BreadcrumbItem[]`. Accepts an array (pass-through),
|
|
12
|
+
* a JSON string (`items='[...]'` attribute, or a string assigned to the PROPERTY —
|
|
13
|
+
* which is what nuxt-ssr-lit does when forwarding a Vue `:items="<json>"` binding
|
|
14
|
+
* to the SSR renderer), or anything else (→ `[]`).
|
|
15
|
+
*/
|
|
16
|
+
function coerceItems(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
|
+
function findItem(items, id) {
|
|
30
|
+
for (const item of items) if (item.id === id) return item;
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
function findItemIndex(items, id) {
|
|
34
|
+
for (let i = 0; i < items.length; i++) if (items[i].id === id) return i;
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve which breadcrumb item is the "current" segment.
|
|
39
|
+
* Priority: explicit `modelValue` → first item with `current: true` → last item.
|
|
40
|
+
*/
|
|
41
|
+
function resolveCurrentId(items, modelValue) {
|
|
42
|
+
if (modelValue?.id) return modelValue.id;
|
|
43
|
+
for (const item of items) if (item.current) return item.id;
|
|
44
|
+
if (items.length) return items[items.length - 1].id;
|
|
45
|
+
return "";
|
|
46
|
+
}
|
|
47
|
+
function generateBreadcrumbRootClasses(props) {
|
|
48
|
+
return [
|
|
49
|
+
"mono-breadcrumb",
|
|
50
|
+
props.variant,
|
|
51
|
+
props.size,
|
|
52
|
+
props.color,
|
|
53
|
+
props.truncate ? "truncate" : "",
|
|
54
|
+
props.disabled ? "disabled" : "",
|
|
55
|
+
props.cssClassName ?? "",
|
|
56
|
+
props.rootExtra ?? ""
|
|
57
|
+
].filter(Boolean).join(" ");
|
|
58
|
+
}
|
|
59
|
+
function validateBreadcrumbProps(props) {
|
|
60
|
+
const errors = [];
|
|
61
|
+
if (props.variant && ![
|
|
62
|
+
"default",
|
|
63
|
+
"contained",
|
|
64
|
+
"underlined"
|
|
65
|
+
].includes(props.variant)) errors.push(`Invalid variant: ${String(props.variant)}`);
|
|
66
|
+
if (props.size && ![
|
|
67
|
+
"xs",
|
|
68
|
+
"sm",
|
|
69
|
+
"md",
|
|
70
|
+
"lg",
|
|
71
|
+
"xl",
|
|
72
|
+
"xxl"
|
|
73
|
+
].includes(props.size)) errors.push(`Invalid size: ${String(props.size)}`);
|
|
74
|
+
if (props.color && ![
|
|
75
|
+
"primary",
|
|
76
|
+
"secondary",
|
|
77
|
+
"success",
|
|
78
|
+
"danger",
|
|
79
|
+
"warning",
|
|
80
|
+
"info",
|
|
81
|
+
"surface"
|
|
82
|
+
].includes(props.color)) errors.push(`Invalid color: ${String(props.color)}`);
|
|
83
|
+
return errors;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The Basecoat styling attributes for the breadcrumb ROOT, mirroring the props
|
|
87
|
+
* one for one. A prop at its DEFAULT emits nothing — `:not([mono-size])` is md,
|
|
88
|
+
* `:not([mono-color])` is primary, `:not([mono-variant])` is default — so the
|
|
89
|
+
* rendered DOM is also the shortest hand-written markup that paints the same
|
|
90
|
+
* (see breadcrumb.css). Shared so `<mono-breadcrumb>` and a standalone
|
|
91
|
+
* `<mono-breadcrumb-list>` cannot drift apart.
|
|
92
|
+
*/
|
|
93
|
+
function breadcrumbRootAttrs(props) {
|
|
94
|
+
return {
|
|
95
|
+
size: props.size === "md" ? null : props.size,
|
|
96
|
+
color: props.color === "primary" ? null : props.color,
|
|
97
|
+
variant: props.variant === "default" ? null : props.variant
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/components/breadcrumb/breadcrumb-render.ts
|
|
102
|
+
function clsFor(base, key, cssClass) {
|
|
103
|
+
const extra = cssClass?.[key];
|
|
104
|
+
return extra ? `${base} ${extra}` : base;
|
|
105
|
+
}
|
|
106
|
+
function renderBreadcrumbIcon(item, ctx) {
|
|
107
|
+
const slotNodes = ctx.getSlotIconNodes(item.id);
|
|
108
|
+
const hasSlot = !!(slotNodes && slotNodes.length);
|
|
109
|
+
if (!hasSlot && !item.icon) return nothing;
|
|
110
|
+
if (ctx.iconSlot && (hasSlot || isIconifyClass(item.icon))) return html`
|
|
111
|
+
<span
|
|
112
|
+
class=${clsFor("mono-breadcrumb-icon", "icon", ctx.cssClass)}
|
|
113
|
+
mono-icon
|
|
114
|
+
aria-hidden="true"
|
|
115
|
+
>
|
|
116
|
+
<slot name=${`icon-${item.id}`}></slot>
|
|
117
|
+
</span>
|
|
118
|
+
`;
|
|
119
|
+
if (hasSlot) return html`
|
|
120
|
+
<span
|
|
121
|
+
class=${clsFor("mono-breadcrumb-icon", "icon", ctx.cssClass)}
|
|
122
|
+
mono-icon
|
|
123
|
+
aria-hidden="true"
|
|
124
|
+
>
|
|
125
|
+
<span data-mono-slot=${`icon-${item.id}`}></span>
|
|
126
|
+
</span>
|
|
127
|
+
`;
|
|
128
|
+
if (isIconifyClass(item.icon)) return html`
|
|
129
|
+
<span
|
|
130
|
+
class=${clsFor("mono-breadcrumb-icon", "icon", ctx.cssClass)}
|
|
131
|
+
mono-icon
|
|
132
|
+
aria-hidden="true"
|
|
133
|
+
>
|
|
134
|
+
<span class=${`mono-breadcrumb-iconify ${item.icon}`} mono-glyph></span>
|
|
135
|
+
</span>
|
|
136
|
+
`;
|
|
137
|
+
return html`
|
|
138
|
+
<span
|
|
139
|
+
class=${clsFor("mono-breadcrumb-icon", "icon", ctx.cssClass)}
|
|
140
|
+
mono-icon
|
|
141
|
+
aria-hidden="true"
|
|
142
|
+
>
|
|
143
|
+
${item.icon}
|
|
144
|
+
</span>
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
function renderBreadcrumbBadge(item, ctx) {
|
|
148
|
+
if (item.badge === void 0 || item.badge === null || item.badge === "") return nothing;
|
|
149
|
+
const colorClass = item.badgeColor && item.badgeColor !== "default" ? item.badgeColor : "";
|
|
150
|
+
return html`
|
|
151
|
+
<span
|
|
152
|
+
class=${`${clsFor("mono-breadcrumb-badge", "badge", ctx.cssClass)} ${colorClass}`.trim()}
|
|
153
|
+
mono-badge=${colorClass}
|
|
154
|
+
>
|
|
155
|
+
${item.badge}
|
|
156
|
+
</span>
|
|
157
|
+
`;
|
|
158
|
+
}
|
|
159
|
+
function renderBreadcrumbItemRow(item, index, ctx) {
|
|
160
|
+
const current = ctx.isCurrent(item.id);
|
|
161
|
+
const itemClasses = [
|
|
162
|
+
clsFor("mono-breadcrumb-item", "item", ctx.cssClass),
|
|
163
|
+
current ? "current" : "",
|
|
164
|
+
current && ctx.cssClass?.itemCurrent ? ctx.cssClass.itemCurrent : "",
|
|
165
|
+
item.disabled ? "disabled" : "",
|
|
166
|
+
item.disabled && ctx.cssClass?.itemDisabled ? ctx.cssClass.itemDisabled : ""
|
|
167
|
+
].filter(Boolean).join(" ");
|
|
168
|
+
const itemAttrs = {
|
|
169
|
+
current,
|
|
170
|
+
disabled: !!item.disabled
|
|
171
|
+
};
|
|
172
|
+
const inner = html`
|
|
173
|
+
${renderBreadcrumbIcon(item, ctx)}
|
|
174
|
+
<span class=${clsFor("mono-breadcrumb-content", "content", ctx.cssClass)} mono-content>
|
|
175
|
+
<span class=${clsFor("mono-breadcrumb-title", "title", ctx.cssClass)} mono-title>
|
|
176
|
+
${item.title ?? item.id}
|
|
177
|
+
</span>
|
|
178
|
+
</span>
|
|
179
|
+
${renderBreadcrumbBadge(item, ctx)}
|
|
180
|
+
`;
|
|
181
|
+
if (current) return html`
|
|
182
|
+
<li
|
|
183
|
+
class=${itemClasses}
|
|
184
|
+
mono-item
|
|
185
|
+
?mono-current=${itemAttrs.current}
|
|
186
|
+
?mono-disabled=${itemAttrs.disabled}
|
|
187
|
+
aria-current="page"
|
|
188
|
+
>
|
|
189
|
+
<span
|
|
190
|
+
class=${clsFor("mono-breadcrumb-action", "action", ctx.cssClass)}
|
|
191
|
+
mono-action
|
|
192
|
+
aria-disabled=${item.disabled ? "true" : "false"}
|
|
193
|
+
>
|
|
194
|
+
${inner}
|
|
195
|
+
</span>
|
|
196
|
+
</li>
|
|
197
|
+
`;
|
|
198
|
+
if (item.href) return html`
|
|
199
|
+
<li class=${itemClasses} mono-item ?mono-disabled=${itemAttrs.disabled}>
|
|
200
|
+
<a
|
|
201
|
+
class=${clsFor("mono-breadcrumb-action", "action", ctx.cssClass)}
|
|
202
|
+
mono-action
|
|
203
|
+
href=${item.href}
|
|
204
|
+
aria-disabled=${item.disabled ? "true" : "false"}
|
|
205
|
+
@click=${(e) => ctx.onItemClick(item, index, e)}
|
|
206
|
+
>
|
|
207
|
+
${inner}
|
|
208
|
+
</a>
|
|
209
|
+
</li>
|
|
210
|
+
`;
|
|
211
|
+
return html`
|
|
212
|
+
<li class=${itemClasses} mono-item ?mono-disabled=${itemAttrs.disabled}>
|
|
213
|
+
<button
|
|
214
|
+
type="button"
|
|
215
|
+
class=${clsFor("mono-breadcrumb-action", "action", ctx.cssClass)}
|
|
216
|
+
mono-action
|
|
217
|
+
aria-disabled=${item.disabled ? "true" : "false"}
|
|
218
|
+
?disabled=${item.disabled || ctx.disabled}
|
|
219
|
+
@click=${(e) => ctx.onItemClick(item, index, e)}
|
|
220
|
+
>
|
|
221
|
+
${inner}
|
|
222
|
+
</button>
|
|
223
|
+
</li>
|
|
224
|
+
`;
|
|
225
|
+
}
|
|
226
|
+
function renderBreadcrumbSeparator(ctx, index) {
|
|
227
|
+
if (ctx.hasSeparatorSlot) return html`
|
|
228
|
+
<li
|
|
229
|
+
class=${clsFor("mono-breadcrumb-sep", "separator", ctx.cssClass)}
|
|
230
|
+
mono-separator
|
|
231
|
+
aria-hidden="true"
|
|
232
|
+
>
|
|
233
|
+
<span data-mono-slot=${`separator-${index}`}></span>
|
|
234
|
+
</li>
|
|
235
|
+
`;
|
|
236
|
+
return html`
|
|
237
|
+
<li
|
|
238
|
+
class=${clsFor("mono-breadcrumb-sep", "separator", ctx.cssClass)}
|
|
239
|
+
mono-separator
|
|
240
|
+
aria-hidden="true"
|
|
241
|
+
>
|
|
242
|
+
${ctx.separator}
|
|
243
|
+
</li>
|
|
244
|
+
`;
|
|
245
|
+
}
|
|
246
|
+
function renderBreadcrumbList(items, ctx) {
|
|
247
|
+
const out = [];
|
|
248
|
+
items.forEach((item, index) => {
|
|
249
|
+
if (index > 0) out.push(renderBreadcrumbSeparator(ctx, index));
|
|
250
|
+
out.push(renderBreadcrumbItemRow(item, index, ctx));
|
|
251
|
+
});
|
|
252
|
+
return out;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Render items with a leading separator BEFORE each item — used when the child
|
|
256
|
+
* `<mono-breadcrumb-list>` is composed inside a parent `<mono-breadcrumb>` and
|
|
257
|
+
* we don't know whether this child is the first sibling. The very first
|
|
258
|
+
* separator is hidden via CSS:
|
|
259
|
+
* `.mono-breadcrumb-list > mono-breadcrumb-list:first-child > .mono-breadcrumb-sep:first-child { display: none; }`
|
|
260
|
+
*/
|
|
261
|
+
function renderBreadcrumbItemsLeadingSep(items, ctx, startIndex = 0) {
|
|
262
|
+
const out = [];
|
|
263
|
+
items.forEach((item, i) => {
|
|
264
|
+
const index = startIndex + i;
|
|
265
|
+
out.push(renderBreadcrumbSeparator(ctx, index));
|
|
266
|
+
out.push(renderBreadcrumbItemRow(item, index, ctx));
|
|
267
|
+
});
|
|
268
|
+
return out;
|
|
269
|
+
}
|
|
270
|
+
//#endregion
|
|
271
|
+
//#region src/components/breadcrumb/breadcrumb-core.ts
|
|
272
|
+
/**
|
|
273
|
+
* `MonoBreadcrumbCore` — all render-mode-agnostic logic for `mono-breadcrumb`:
|
|
274
|
+
* reactive props (incl. the SSR `items` string→array coercion), hybrid aliases,
|
|
275
|
+
* camelCase attribute fallbacks, the child-list registry + state propagation,
|
|
276
|
+
* item activation + events, and the `<nav>` chrome `render()`. The light build
|
|
277
|
+
* keeps its `[data-mono-slot]` capture (`slot="body"`/`separator`/`icon-*`) and
|
|
278
|
+
* overrides `_renderBody()`; the shadow build renders the whole list from `items`
|
|
279
|
+
* in one shadow root and overrides `_useIconSlots()` (mirrors `mono-menu`).
|
|
280
|
+
*
|
|
281
|
+
* SSR-safe: no `document`/`window` access except `focus()` (guarded by isServer).
|
|
282
|
+
*/
|
|
283
|
+
var MonoBreadcrumbCore = (superClass) => {
|
|
284
|
+
class MonoBreadcrumbCoreClass extends superClass {
|
|
285
|
+
constructor(...args) {
|
|
286
|
+
super(...args);
|
|
287
|
+
this.items = [];
|
|
288
|
+
this.modelValue = null;
|
|
289
|
+
this.variant = "default";
|
|
290
|
+
this.size = "md";
|
|
291
|
+
this.color = "primary";
|
|
292
|
+
this.separator = "›";
|
|
293
|
+
this.truncate = false;
|
|
294
|
+
this.disabled = false;
|
|
295
|
+
this.ariaLabel = "Breadcrumb";
|
|
296
|
+
this.cssClass = {};
|
|
297
|
+
this.cssClassName = "";
|
|
298
|
+
this._slotIcons = /* @__PURE__ */ new Map();
|
|
299
|
+
this._slotSeparator = [];
|
|
300
|
+
this._listChildren = /* @__PURE__ */ new Set();
|
|
301
|
+
defineHybridPropAliases(this, ["modelValue", "cssClass"]);
|
|
302
|
+
Object.defineProperty(this, "css-class", {
|
|
303
|
+
get: () => this.cssClass,
|
|
304
|
+
set: (value) => this._setCssClass(value),
|
|
305
|
+
configurable: true,
|
|
306
|
+
enumerable: false
|
|
307
|
+
});
|
|
308
|
+
Object.defineProperty(this, "cssclass", {
|
|
309
|
+
get: () => this.cssClass,
|
|
310
|
+
set: (value) => this._setCssClass(value),
|
|
311
|
+
configurable: true,
|
|
312
|
+
enumerable: false
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
static get observedAttributes() {
|
|
316
|
+
return [
|
|
317
|
+
...super.observedAttributes ?? [],
|
|
318
|
+
"modelvalue",
|
|
319
|
+
"model-value",
|
|
320
|
+
"css-class",
|
|
321
|
+
"cssclass"
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
325
|
+
super.attributeChangedCallback(name, oldValue, newValue);
|
|
326
|
+
if (oldValue === newValue) return;
|
|
327
|
+
if (name === "modelvalue" || name === "model-value") {
|
|
328
|
+
this._setModelValueFromAttribute(newValue);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (name === "css-class" || name === "cssclass") this._setCssClass(newValue);
|
|
332
|
+
}
|
|
333
|
+
willUpdate(changed) {
|
|
334
|
+
if (typeof this.items === "string") this.items = coerceItems(this.items);
|
|
335
|
+
if (typeof this.modelValue === "string") this._setModelValueFromAttribute(this.modelValue);
|
|
336
|
+
super.willUpdate(changed);
|
|
337
|
+
}
|
|
338
|
+
_setModelValueFromAttribute(value) {
|
|
339
|
+
if (value == null || value === "") {
|
|
340
|
+
this.modelValue = null;
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
const trimmed = value.trim();
|
|
344
|
+
if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
|
|
345
|
+
this.modelValue = JSON.parse(trimmed);
|
|
346
|
+
return;
|
|
347
|
+
} catch {}
|
|
348
|
+
const found = findItem(this.items, trimmed);
|
|
349
|
+
this.modelValue = found ?? { id: trimmed };
|
|
350
|
+
}
|
|
351
|
+
_setCssClass(value) {
|
|
352
|
+
if (value == null) {
|
|
353
|
+
this.cssClass = {};
|
|
354
|
+
this.cssClassName = "";
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (typeof value === "object") {
|
|
358
|
+
this.cssClass = value;
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
if (typeof value === "string") {
|
|
362
|
+
const trimmed = value.trim();
|
|
363
|
+
if (!trimmed) {
|
|
364
|
+
this.cssClass = {};
|
|
365
|
+
this.cssClassName = "";
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
|
|
369
|
+
this.cssClass = JSON.parse(trimmed);
|
|
370
|
+
return;
|
|
371
|
+
} catch {}
|
|
372
|
+
this.cssClassName = trimmed;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
_cls(base, key) {
|
|
376
|
+
const extra = this.cssClass?.[key];
|
|
377
|
+
return extra ? `${base} ${extra}` : base;
|
|
378
|
+
}
|
|
379
|
+
get _rootClasses() {
|
|
380
|
+
return generateBreadcrumbRootClasses({
|
|
381
|
+
variant: this.variant,
|
|
382
|
+
size: this.size,
|
|
383
|
+
color: this.color,
|
|
384
|
+
truncate: this.truncate,
|
|
385
|
+
disabled: this.disabled,
|
|
386
|
+
cssClassName: this.cssClassName,
|
|
387
|
+
rootExtra: this.cssClass?.root
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
_resolvedCurrentId() {
|
|
391
|
+
return resolveCurrentId(this.items, this.modelValue);
|
|
392
|
+
}
|
|
393
|
+
_isCurrent(id) {
|
|
394
|
+
if (this._listChildren.size && !this.items.length) {
|
|
395
|
+
if (this.modelValue?.id) return this.modelValue.id === id;
|
|
396
|
+
return resolveCurrentId(this._registeredItems(), null) === id;
|
|
397
|
+
}
|
|
398
|
+
return this._resolvedCurrentId() === id;
|
|
399
|
+
}
|
|
400
|
+
/** Every child list's items, in registration (DOM) order. */
|
|
401
|
+
_registeredItems() {
|
|
402
|
+
const out = [];
|
|
403
|
+
for (const child of this._listChildren) out.push(...child.getBreadcrumbItems?.() ?? []);
|
|
404
|
+
return out;
|
|
405
|
+
}
|
|
406
|
+
_findRegisteredItem(id) {
|
|
407
|
+
for (const child of this._listChildren) {
|
|
408
|
+
const found = findItem(child.getBreadcrumbItems?.() ?? [], id);
|
|
409
|
+
if (found) return found;
|
|
410
|
+
}
|
|
411
|
+
return null;
|
|
412
|
+
}
|
|
413
|
+
_findAnyItem(id) {
|
|
414
|
+
return findItem(this.items, id) ?? this._findRegisteredItem(id);
|
|
415
|
+
}
|
|
416
|
+
/** Programmatic select. Updates modelValue and emits `change`. */
|
|
417
|
+
select(id) {
|
|
418
|
+
const item = this._findAnyItem(id);
|
|
419
|
+
if (!item) return;
|
|
420
|
+
this._handleItemActivation(item, findItemIndex(this.items, id));
|
|
421
|
+
}
|
|
422
|
+
focus() {
|
|
423
|
+
if (isServer) return;
|
|
424
|
+
this.renderRoot.querySelector("a.mono-breadcrumb-action, button.mono-breadcrumb-action")?.focus();
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Public hooks consumed by descendant `<mono-breadcrumb-list>` instances
|
|
428
|
+
* rendered inside `slot="body"` (light build).
|
|
429
|
+
*/
|
|
430
|
+
requestItemActivation(item, index, event) {
|
|
431
|
+
this._handleItemActivation(item, index, event);
|
|
432
|
+
}
|
|
433
|
+
isItemCurrent(id) {
|
|
434
|
+
return this._isCurrent(id);
|
|
435
|
+
}
|
|
436
|
+
getSlotIconNodes(id) {
|
|
437
|
+
return this._slotIcons.get(id);
|
|
438
|
+
}
|
|
439
|
+
hasSeparatorSlot() {
|
|
440
|
+
return this._slotSeparator.length > 0;
|
|
441
|
+
}
|
|
442
|
+
getSeparatorString() {
|
|
443
|
+
return this.separator;
|
|
444
|
+
}
|
|
445
|
+
/** @internal called by `<mono-breadcrumb-list>` from its connectedCallback. */
|
|
446
|
+
_registerListChild(child) {
|
|
447
|
+
this._listChildren.add(child);
|
|
448
|
+
}
|
|
449
|
+
/** @internal called by `<mono-breadcrumb-list>` from its disconnectedCallback. */
|
|
450
|
+
_unregisterListChild(child) {
|
|
451
|
+
this._listChildren.delete(child);
|
|
452
|
+
}
|
|
453
|
+
_handleItemActivation(item, index, event) {
|
|
454
|
+
if (item.disabled || this.disabled) return;
|
|
455
|
+
dispatchMonoEvent(this, "click", {
|
|
456
|
+
value: item.id,
|
|
457
|
+
item,
|
|
458
|
+
index,
|
|
459
|
+
sourceEvent: event
|
|
460
|
+
});
|
|
461
|
+
const oldValue = this.modelValue;
|
|
462
|
+
if (oldValue?.id === item.id) return;
|
|
463
|
+
this.modelValue = item;
|
|
464
|
+
const detail = {
|
|
465
|
+
modelValue: item,
|
|
466
|
+
currentValue: item,
|
|
467
|
+
oldValue,
|
|
468
|
+
sourceEvent: event
|
|
469
|
+
};
|
|
470
|
+
dispatchMonoEvent(this, "change", detail);
|
|
471
|
+
}
|
|
472
|
+
_notifyListChildren(changed) {
|
|
473
|
+
if (!this._listChildren.size) return;
|
|
474
|
+
if (![
|
|
475
|
+
"modelValue",
|
|
476
|
+
"variant",
|
|
477
|
+
"size",
|
|
478
|
+
"color",
|
|
479
|
+
"separator",
|
|
480
|
+
"truncate",
|
|
481
|
+
"disabled",
|
|
482
|
+
"cssClass",
|
|
483
|
+
"cssClassName"
|
|
484
|
+
].some((k) => changed.has(k))) return;
|
|
485
|
+
for (const child of this._listChildren) child.requestUpdate();
|
|
486
|
+
}
|
|
487
|
+
/** Build the shared render context. */
|
|
488
|
+
_renderContext() {
|
|
489
|
+
return {
|
|
490
|
+
cssClass: this.cssClass,
|
|
491
|
+
separator: this.separator,
|
|
492
|
+
hasSeparatorSlot: this._slotSeparator.length > 0,
|
|
493
|
+
iconSlot: this._useIconSlots(),
|
|
494
|
+
disabled: this.disabled,
|
|
495
|
+
isCurrent: (id) => this._isCurrent(id),
|
|
496
|
+
getSlotIconNodes: (id) => this._slotIcons.get(id),
|
|
497
|
+
onItemClick: (item, index, e) => this._handleItemActivation(item, index, e)
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Whether per-item icons render through a native `<slot>` (shadow build) vs
|
|
502
|
+
* the light-DOM `data-mono-slot` + inline `i-…` span (light build).
|
|
503
|
+
*/
|
|
504
|
+
_useIconSlots() {
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* The items to render for THIS render pass. Defaults to the full `items`.
|
|
509
|
+
* The shadow build overrides this to slice down to the server-rendered crumb
|
|
510
|
+
* count during the hydration render, so the first client render matches the
|
|
511
|
+
* SSR'd DOM exactly (avoids "shorter than expected iterable" + double render
|
|
512
|
+
* when `items` arrives via `.prop`, which @lit-labs/ssr does not forward).
|
|
513
|
+
*/
|
|
514
|
+
_itemsForRender() {
|
|
515
|
+
return this.items;
|
|
516
|
+
}
|
|
517
|
+
/** The list body. Light build overrides this to support `slot="body"`. */
|
|
518
|
+
_renderBody() {
|
|
519
|
+
return html`
|
|
520
|
+
<ol class=${this._cls("mono-breadcrumb-list", "list")} mono-list>
|
|
521
|
+
${renderBreadcrumbList(this._itemsForRender(), this._renderContext())}
|
|
522
|
+
</ol>
|
|
523
|
+
`;
|
|
524
|
+
}
|
|
525
|
+
render() {
|
|
526
|
+
const attrs = breadcrumbRootAttrs(this);
|
|
527
|
+
return html`
|
|
528
|
+
<nav
|
|
529
|
+
class=${this._rootClasses}
|
|
530
|
+
aria-label=${this.ariaLabel ?? "Breadcrumb"}
|
|
531
|
+
mono-breadcrumb
|
|
532
|
+
mono-size=${attrs.size ?? nothing}
|
|
533
|
+
mono-color=${attrs.color ?? nothing}
|
|
534
|
+
mono-variant=${attrs.variant ?? nothing}
|
|
535
|
+
?mono-truncate=${this.truncate}
|
|
536
|
+
?mono-disabled=${this.disabled}
|
|
537
|
+
>
|
|
538
|
+
${this._renderBody()}
|
|
539
|
+
</nav>
|
|
540
|
+
`;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
__decorate([property({
|
|
544
|
+
attribute: "items",
|
|
545
|
+
converter: {
|
|
546
|
+
fromAttribute: (value) => coerceItems(value),
|
|
547
|
+
toAttribute: () => null
|
|
548
|
+
},
|
|
549
|
+
hasChanged: arrayHasChanged
|
|
550
|
+
})], MonoBreadcrumbCoreClass.prototype, "items", void 0);
|
|
551
|
+
__decorate([property({ attribute: false })], MonoBreadcrumbCoreClass.prototype, "modelValue", void 0);
|
|
552
|
+
__decorate([property({ type: String })], MonoBreadcrumbCoreClass.prototype, "variant", void 0);
|
|
553
|
+
__decorate([property({ type: String })], MonoBreadcrumbCoreClass.prototype, "size", void 0);
|
|
554
|
+
__decorate([property({ type: String })], MonoBreadcrumbCoreClass.prototype, "color", void 0);
|
|
555
|
+
__decorate([property({ type: String })], MonoBreadcrumbCoreClass.prototype, "separator", void 0);
|
|
556
|
+
__decorate([property({
|
|
557
|
+
reflect: true,
|
|
558
|
+
converter: booleanStringConverter
|
|
559
|
+
})], MonoBreadcrumbCoreClass.prototype, "truncate", void 0);
|
|
560
|
+
__decorate([property({
|
|
561
|
+
reflect: true,
|
|
562
|
+
converter: booleanStringConverter
|
|
563
|
+
})], MonoBreadcrumbCoreClass.prototype, "disabled", void 0);
|
|
564
|
+
__decorate([property({ attribute: "aria-label" })], MonoBreadcrumbCoreClass.prototype, "ariaLabel", void 0);
|
|
565
|
+
__decorate([property({ attribute: false })], MonoBreadcrumbCoreClass.prototype, "cssClass", void 0);
|
|
566
|
+
__decorate([property({ attribute: false })], MonoBreadcrumbCoreClass.prototype, "cssClassName", void 0);
|
|
567
|
+
__decorate([state()], MonoBreadcrumbCoreClass.prototype, "_slotIcons", void 0);
|
|
568
|
+
return MonoBreadcrumbCoreClass;
|
|
569
|
+
};
|
|
570
|
+
//#endregion
|
|
571
|
+
//#region src/components/breadcrumb/breadcrumb.css?raw
|
|
572
|
+
var breadcrumb_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-breadcrumb — a port of Basecoat's `.breadcrumb` (basecoat-css@1.0.2,\r\n 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-breadcrumb size=\"lg\" color=\"success\" variant=\"contained\" truncate>\r\n <nav mono-breadcrumb mono-size=\"lg\" mono-color=\"success\"\r\n mono-variant=\"contained\" mono-truncate aria-label=\"Breadcrumb\">\r\n <ol mono-list>\r\n <li mono-item>\r\n <a mono-action href=\"/\">\r\n <span mono-icon>…</span>\r\n <span mono-content><span mono-title>Home</span></span>\r\n <span mono-badge=\"info\">3</span>\r\n </a>\r\n </li>\r\n <li mono-separator aria-hidden=\"true\">›</li>\r\n <li mono-item mono-current aria-current=\"page\">\r\n <span mono-action><span mono-content><span mono-title>Now</span></span></span>\r\n </li>\r\n </ol>\r\n </nav>\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])` = default). The old\r\n classes (`.mono-breadcrumb.md.primary.default`) are still emitted as inert\r\n hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-breadcrumb] ≡ .breadcrumb (the <nav>) — a var scope\r\n [mono-list] ≡ .breadcrumb > ol (m-0 flex list-none flex-wrap\r\n items-center p-0 break-words, text-muted-foreground\r\n gap-1.5 text-sm sm:gap-2.5)\r\n [mono-item] ≡ .breadcrumb li (inline-flex items-center gap-1.5)\r\n [mono-separator] ≡ .breadcrumb li[aria-hidden='true'] (select-none),\r\n its glyph ≡ li[aria-hidden='true'] > svg (size-3.5)\r\n [mono-action] ≡ .breadcrumb a (rounded-sm outline-none\r\n focus-visible:ring-[3px] focus-visible:ring-ring/50,\r\n transition-colors hover:text-foreground)\r\n [mono-current] ≡ .breadcrumb [aria-current='page'] (font-normal\r\n text-foreground, cursor-default)\r\n [mono-icon] ≡ .breadcrumb li > span[aria-hidden='true']\r\n (flex items-center justify-center size-5,\r\n [&>svg]:size-4)\r\n [mono-badge] ≡ .badge — EXTENSION here (upstream's breadcrumb has\r\n none), so it borrows the badge's own shape\r\n [mono-content]/[mono-title] ≡ EXTENSION (upstream puts the label straight\r\n in the <a>; mono wraps it so `truncate` has\r\n something to clamp)\r\n [mono-variant=…] ≡ EXTENSION (upstream ships one breadcrumb)\r\n\r\n THE DEFAULT VARIANT IS NOW BARE TEXT. Upstream's breadcrumb links carry no\r\n padding, no background and no border — `rounded-sm` exists only so the focus\r\n ring has a shape. The pre-port default padded every segment into a 5px-radius\r\n chip. `contained` is where that look lives now; `--mono-breadcrumb-pad-x`/`-y`\r\n are still the knobs, they just start at 0.\r\n\r\n COLOUR IS A DEVIATION. Upstream inks hover and the current segment in\r\n `--foreground`. mono's breadcrumb has a `color` prop, so it inks them in the\r\n ROLE instead — and `color=\"surface\"` resolves the accent back to\r\n `--foreground`, which is upstream exactly.\r\n\r\n NO GRADIENTS. The contained variant's current segment was a two-stop gradient\r\n with a coloured glow; it is now the flat role fill on the role's own\r\n `-foreground`, the way `.btn[data-variant='primary']` is.\r\n\r\n DARK MODE comes free — every colour resolves through a Basecoat token that\r\n already flips. A selector crosses neither the custom-element host nor the\r\n shadow boundary, so no `.dark` rule can live in component CSS.\r\n\r\n FLAVORS set `--mono-breadcrumb-{gap,font,icon-size,sep-*,radius,badge-*}`\r\n (+ the per-size forms); every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \".breadcrumb > ol\"`).\r\n ========================================================================= */\r\n\r\nmono-breadcrumb {\r\n display: block;\r\n}\r\n\r\n/* A composed child list renders its <li>s straight into the parent's <ol>. */\r\nmono-breadcrumb-list {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Root — the var scope\r\n ========================================= */\r\n\r\n[mono-breadcrumb] {\r\n /* ── the roles, each a public knob over a Basecoat token ────────────────── */\r\n --_mono-breadcrumb-primary: var(--mono-breadcrumb-primary, var(--primary));\r\n --_mono-breadcrumb-secondary: var(--mono-breadcrumb-secondary, var(--secondary-foreground));\r\n --_mono-breadcrumb-success: var(--mono-breadcrumb-success, var(--success));\r\n --_mono-breadcrumb-danger: var(--mono-breadcrumb-danger, var(--destructive));\r\n --_mono-breadcrumb-warning: var(--mono-breadcrumb-warning, var(--warning));\r\n --_mono-breadcrumb-info: var(--mono-breadcrumb-info, var(--info));\r\n --_mono-breadcrumb-teal: var(--mono-breadcrumb-teal, var(--teal));\r\n --_mono-breadcrumb-purple: var(--mono-breadcrumb-purple, var(--purple));\r\n --_mono-breadcrumb-neutral: var(--mono-breadcrumb-neutral, var(--neutral));\r\n --_mono-breadcrumb-dark: var(--mono-breadcrumb-dark, var(--dark));\r\n\r\n /* The colour in play. DEVIATION: upstream inks hover and the current segment\r\n in `--foreground`; `color=\"surface\"` is that exactly. */\r\n --_mono-breadcrumb-accent: var(--mono-breadcrumb-accent, var(--_mono-breadcrumb-accent-preset, var(--_mono-breadcrumb-primary)));\r\n --_mono-breadcrumb-on-accent: var(--mono-breadcrumb-on-accent, var(--_mono-breadcrumb-on-accent-preset, var(--primary-foreground)));\r\n\r\n /* ── ink ────────────────────────────────────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .breadcrumb > ol — text-muted-foreground gap-1.5 text-sm sm:gap-2.5\r\n basecoat@1.0.2 styles/vega.css .breadcrumb [aria-current='page'] — font-normal text-foreground */\r\n --_mono-breadcrumb-text: var(--mono-breadcrumb-text, var(--muted-foreground));\r\n --_mono-breadcrumb-text-strong: var(--mono-breadcrumb-text-strong, var(--foreground));\r\n --_mono-breadcrumb-sep-color: var(--mono-breadcrumb-sep-color, var(--_mono-breadcrumb-text));\r\n --_mono-breadcrumb-surface: var(--mono-breadcrumb-surface, var(--background));\r\n --_mono-breadcrumb-border: var(--mono-breadcrumb-border, var(--border));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ──────────────────\r\n `gap-1.5` is the mobile step; `sm:gap-2.5` widens it (see the @media below). */\r\n --_mono-breadcrumb-gap: var(--mono-breadcrumb-gap, var(--_mono-breadcrumb-gap-preset, var(--mono-breadcrumb-gap-md, calc(var(--mono-spacing) * 1.5))));\r\n --_mono-breadcrumb-gap-wide: var(--mono-breadcrumb-gap-wide, var(--_mono-breadcrumb-gap-wide-preset, var(--mono-breadcrumb-gap-wide-md, calc(var(--mono-spacing) * 2.5))));\r\n --_mono-breadcrumb-font: var(--mono-breadcrumb-font, var(--_mono-breadcrumb-font-preset, var(--mono-breadcrumb-font-md, var(--mono-text-sm))));\r\n --_mono-breadcrumb-line-height: var(--mono-breadcrumb-line-height, var(--_mono-breadcrumb-line-height-preset, var(--mono-breadcrumb-line-height-md, var(--mono-text-sm--lh))));\r\n --_mono-breadcrumb-font-weight: var(--mono-breadcrumb-font-weight, var(--mono-font-weight-normal));\r\n /* basecoat@1.0.2 styles/vega.css .breadcrumb [aria-current='page'] — font-normal text-foreground:\r\n upstream does NOT bold the current segment. ONE restores the bold it had. */\r\n --_mono-breadcrumb-current-weight: var(--mono-breadcrumb-current-weight, var(--mono-font-weight-normal));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium focus-visible:ring-2 [&>svg]:size-4 transition-[margin,opacity] duration-200 ease-linear\r\n A breadcrumb's current crumb is the page's own label, and each flavor has a\r\n house style for one — sera sets its chrome headings uppercase +\r\n tracking-wider + semibold, and this is what lets it say so. */\r\n --_mono-breadcrumb-current-transform: var(--mono-breadcrumb-current-transform, none);\r\n --_mono-breadcrumb-current-tracking: var(--mono-breadcrumb-current-tracking, normal);\r\n /* basecoat@1.0.2 styles/vega.css .breadcrumb li > span[aria-hidden='true'] — size-5 [&>svg]:size-4 */\r\n --_mono-breadcrumb-icon-size: var(--mono-breadcrumb-icon-size, var(--_mono-breadcrumb-icon-size-preset, var(--mono-breadcrumb-icon-size-md, calc(var(--mono-spacing) * 4))));\r\n /* basecoat@1.0.2 styles/vega.css .breadcrumb li[aria-hidden='true'] > svg — size-3.5 */\r\n --_mono-breadcrumb-sep-size: var(--mono-breadcrumb-sep-size, var(--_mono-breadcrumb-sep-size-preset, var(--mono-breadcrumb-sep-size-md, calc(var(--mono-spacing) * 3.5))));\r\n --_mono-breadcrumb-sep-font: var(--mono-breadcrumb-sep-font, var(--_mono-breadcrumb-sep-font-preset, var(--mono-breadcrumb-sep-font-md, var(--mono-text-sm))));\r\n\r\n /* ── the action box. Upstream's <a> is BARE — `rounded-sm` is only there to\r\n shape the focus ring — so the padding starts at 0 and `contained` /\r\n `underlined` are what turn it into a chip. ───────────────────────────── */\r\n --_mono-breadcrumb-pad-x: var(--mono-breadcrumb-pad-x, var(--_mono-breadcrumb-pad-x-preset, 0px));\r\n --_mono-breadcrumb-pad-y: var(--mono-breadcrumb-pad-y, var(--_mono-breadcrumb-pad-y-preset, 0px));\r\n --_mono-breadcrumb-radius: var(--mono-breadcrumb-radius, var(--_mono-breadcrumb-radius-preset, var(--mono-breadcrumb-radius-md, var(--mono-radius-sm))));\r\n --_mono-breadcrumb-border-width: var(--mono-breadcrumb-border-width, var(--mono-border-width));\r\n\r\n /* ── the badge — EXTENSION, borrowing `.badge`'s shape ───────────────────\r\n basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n --_mono-breadcrumb-badge-height: var(--mono-breadcrumb-badge-height, calc(var(--mono-spacing) * 5));\r\n --_mono-breadcrumb-badge-pad-x: var(--mono-breadcrumb-badge-pad-x, calc(var(--mono-spacing) * 2));\r\n --_mono-breadcrumb-badge-radius: var(--mono-breadcrumb-badge-radius, var(--mono-radius-4xl));\r\n --_mono-breadcrumb-badge-font: var(--mono-breadcrumb-badge-font, var(--mono-text-xs));\r\n --_mono-breadcrumb-badge-weight: var(--mono-breadcrumb-badge-weight, var(--mono-font-weight-medium));\r\n --_mono-breadcrumb-badge-bg: var(--mono-breadcrumb-badge-bg, var(--secondary));\r\n --_mono-breadcrumb-badge-color: var(--mono-breadcrumb-badge-color, var(--secondary-foreground));\r\n\r\n display: block;\r\n width: 100%;\r\n font-family: inherit;\r\n color: var(--_mono-breadcrumb-text);\r\n}\r\n\r\n[mono-breadcrumb],\r\n:where([mono-breadcrumb]) *,\r\n:where([mono-breadcrumb]) *::before,\r\n:where([mono-breadcrumb]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: upstream ships one breadcrumb\r\n ========================================= */\r\n\r\n[mono-breadcrumb][mono-size=\"xs\"] {\r\n --_mono-breadcrumb-gap-preset: var(--mono-breadcrumb-gap-xs, var(--mono-spacing));\r\n --_mono-breadcrumb-gap-wide-preset: var(--mono-breadcrumb-gap-wide-xs, calc(var(--mono-spacing) * 1.5));\r\n --_mono-breadcrumb-font-preset: var(--mono-breadcrumb-font-xs, var(--mono-text-xs));\r\n --_mono-breadcrumb-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-breadcrumb-icon-size-preset: var(--mono-breadcrumb-icon-size-xs, calc(var(--mono-spacing) * 3));\r\n --_mono-breadcrumb-sep-size-preset: var(--mono-breadcrumb-sep-size-xs, calc(var(--mono-spacing) * 2.5));\r\n --_mono-breadcrumb-sep-font-preset: var(--mono-breadcrumb-sep-font-xs, var(--mono-text-xs));\r\n --_mono-breadcrumb-radius-preset: var(--mono-breadcrumb-radius-xs, var(--mono-radius-sm));\r\n}\r\n\r\n[mono-breadcrumb][mono-size=\"sm\"] {\r\n --_mono-breadcrumb-gap-preset: var(--mono-breadcrumb-gap-sm, var(--mono-spacing));\r\n --_mono-breadcrumb-gap-wide-preset: var(--mono-breadcrumb-gap-wide-sm, calc(var(--mono-spacing) * 2));\r\n --_mono-breadcrumb-font-preset: var(--mono-breadcrumb-font-sm, var(--mono-text-xs));\r\n --_mono-breadcrumb-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-breadcrumb-icon-size-preset: var(--mono-breadcrumb-icon-size-sm, calc(var(--mono-spacing) * 3.5));\r\n --_mono-breadcrumb-sep-size-preset: var(--mono-breadcrumb-sep-size-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-breadcrumb-sep-font-preset: var(--mono-breadcrumb-sep-font-sm, var(--mono-text-xs));\r\n --_mono-breadcrumb-radius-preset: var(--mono-breadcrumb-radius-sm, var(--mono-radius-sm));\r\n}\r\n\r\n[mono-breadcrumb][mono-size=\"lg\"] {\r\n --_mono-breadcrumb-gap-preset: var(--mono-breadcrumb-gap-lg, calc(var(--mono-spacing) * 2));\r\n --_mono-breadcrumb-gap-wide-preset: var(--mono-breadcrumb-gap-wide-lg, calc(var(--mono-spacing) * 3));\r\n --_mono-breadcrumb-font-preset: var(--mono-breadcrumb-font-lg, var(--mono-text-base));\r\n --_mono-breadcrumb-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-breadcrumb-icon-size-preset: var(--mono-breadcrumb-icon-size-lg, calc(var(--mono-spacing) * 4.5));\r\n --_mono-breadcrumb-sep-size-preset: var(--mono-breadcrumb-sep-size-lg, calc(var(--mono-spacing) * 4));\r\n --_mono-breadcrumb-sep-font-preset: var(--mono-breadcrumb-sep-font-lg, var(--mono-text-base));\r\n --_mono-breadcrumb-radius-preset: var(--mono-breadcrumb-radius-lg, var(--mono-radius-md));\r\n}\r\n\r\n[mono-breadcrumb][mono-size=\"xl\"] {\r\n --_mono-breadcrumb-gap-preset: var(--mono-breadcrumb-gap-xl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-breadcrumb-gap-wide-preset: var(--mono-breadcrumb-gap-wide-xl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-breadcrumb-font-preset: var(--mono-breadcrumb-font-xl, var(--mono-text-lg));\r\n --_mono-breadcrumb-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-breadcrumb-icon-size-preset: var(--mono-breadcrumb-icon-size-xl, calc(var(--mono-spacing) * 5));\r\n --_mono-breadcrumb-sep-size-preset: var(--mono-breadcrumb-sep-size-xl, calc(var(--mono-spacing) * 4.5));\r\n --_mono-breadcrumb-sep-font-preset: var(--mono-breadcrumb-sep-font-xl, var(--mono-text-lg));\r\n --_mono-breadcrumb-radius-preset: var(--mono-breadcrumb-radius-xl, var(--mono-radius-md));\r\n}\r\n\r\n[mono-breadcrumb][mono-size=\"xxl\"] {\r\n --_mono-breadcrumb-gap-preset: var(--mono-breadcrumb-gap-xxl, calc(var(--mono-spacing) * 3));\r\n --_mono-breadcrumb-gap-wide-preset: var(--mono-breadcrumb-gap-wide-xxl, calc(var(--mono-spacing) * 4));\r\n --_mono-breadcrumb-font-preset: var(--mono-breadcrumb-font-xxl, var(--mono-text-xl));\r\n --_mono-breadcrumb-line-height-preset: var(--mono-text-xl--lh);\r\n --_mono-breadcrumb-icon-size-preset: var(--mono-breadcrumb-icon-size-xxl, calc(var(--mono-spacing) * 6));\r\n --_mono-breadcrumb-sep-size-preset: var(--mono-breadcrumb-sep-size-xxl, calc(var(--mono-spacing) * 5));\r\n --_mono-breadcrumb-sep-font-preset: var(--mono-breadcrumb-sep-font-xxl, var(--mono-text-xl));\r\n --_mono-breadcrumb-radius-preset: var(--mono-breadcrumb-radius-xxl, var(--mono-radius-lg));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION, and the one deviation from upstream's ink\r\n ========================================= */\r\n\r\n[mono-breadcrumb][mono-color=\"primary\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-primary);\r\n --_mono-breadcrumb-on-accent-preset: var(--primary-foreground);\r\n}\r\n\r\n[mono-breadcrumb][mono-color=\"secondary\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-secondary);\r\n --_mono-breadcrumb-on-accent-preset: var(--secondary);\r\n}\r\n\r\n[mono-breadcrumb][mono-color=\"success\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-success);\r\n --_mono-breadcrumb-on-accent-preset: var(--success-foreground);\r\n}\r\n\r\n[mono-breadcrumb][mono-color=\"danger\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-danger);\r\n --_mono-breadcrumb-on-accent-preset: var(--destructive-foreground);\r\n}\r\n\r\n[mono-breadcrumb][mono-color=\"warning\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-warning);\r\n --_mono-breadcrumb-on-accent-preset: var(--warning-foreground);\r\n}\r\n\r\n[mono-breadcrumb][mono-color=\"info\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-info);\r\n --_mono-breadcrumb-on-accent-preset: var(--info-foreground);\r\n}\r\n[mono-breadcrumb][mono-color=\"teal\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-teal);\r\n --_mono-breadcrumb-on-accent-preset: var(--teal-foreground);\r\n}\r\n[mono-breadcrumb][mono-color=\"purple\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-purple);\r\n --_mono-breadcrumb-on-accent-preset: var(--purple-foreground);\r\n}\r\n[mono-breadcrumb][mono-color=\"neutral\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-neutral);\r\n --_mono-breadcrumb-on-accent-preset: var(--neutral-foreground);\r\n}\r\n[mono-breadcrumb][mono-color=\"dark\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-dark);\r\n --_mono-breadcrumb-on-accent-preset: var(--dark-foreground);\r\n}\r\n\r\n/* `surface` is upstream's own ink: hover and the current segment go to\r\n `--foreground` and nothing is branded. */\r\n[mono-breadcrumb][mono-color=\"surface\"] {\r\n --_mono-breadcrumb-accent-preset: var(--_mono-breadcrumb-text-strong);\r\n --_mono-breadcrumb-on-accent-preset: var(--background);\r\n}\r\n\r\n/* =========================================\r\n The list\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb > ol — m-0 flex list-none flex-wrap items-center p-0 break-words */\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb > ol — text-muted-foreground gap-1.5 text-sm sm:gap-2.5\r\n The selector carries the root on purpose: `.vp-doc ul, .vp-doc ol` is (0,1,1)\r\n and would otherwise inject the left padding that breaks a flush breadcrumb. */\r\n:where([mono-breadcrumb]) [mono-list] {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: var(--_mono-breadcrumb-gap);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n min-width: 0;\r\n overflow-wrap: break-word;\r\n font-size: var(--_mono-breadcrumb-font);\r\n line-height: var(--_mono-breadcrumb-line-height);\r\n}\r\n\r\n/* `sm:gap-2.5` — the row breathes once there is room for it. */\r\n@media (min-width: 640px) {\r\n :where([mono-breadcrumb]) [mono-list] {\r\n gap: var(--_mono-breadcrumb-gap-wide);\r\n }\r\n}\r\n\r\n/* `truncate` CLAMPS, it does not force one line. Forcing `nowrap` meant the\r\n row either overflowed its container or — once the crumbs were allowed to\r\n shrink — squeezed short labels that had room, so `Dashboard` came out as\r\n `Dash…` next to a half-empty row. Wrapping keeps every label at its clamp and\r\n breaks the line instead. */\r\n\r\n/* VitePress puts `margin-top: 8px` on `li + li` and `margin-bottom: .5em` on\r\n every `li`; either one stops the separators centring with the actions. */\r\n:where([mono-breadcrumb]) [mono-list] :is([mono-item], [mono-separator]) {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\r\n\r\n/* A composed child list renders a separator BEFORE each of its items, since it\r\n cannot know whether it is the first sibling. The very first one is dropped. */\r\n[mono-list] > mono-breadcrumb-list:first-child > [mono-separator]:first-child {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Item\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb li — gap-1.5 */\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb li — inline-flex items-center */\r\n:where([mono-breadcrumb]) [mono-item] {\r\n display: inline-flex;\r\n align-items: center;\r\n align-self: center;\r\n gap: var(--_mono-breadcrumb-gap);\r\n min-width: 0;\r\n}\r\n\r\n/* =========================================\r\n Action — the segment itself\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb a — rounded-sm outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 */\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb a — transition-colors hover:text-foreground\r\n DEVIATION: upstream's <a> is bare text. The padding and the border are kept as\r\n knobs at 0 so `contained` / `underlined` — and a consumer — can turn the\r\n segment into a chip without a second rule. */\r\n:where([mono-breadcrumb]) [mono-action] {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: var(--_mono-breadcrumb-gap);\r\n padding: var(--_mono-breadcrumb-pad-y) var(--_mono-breadcrumb-pad-x);\r\n border: var(--_mono-breadcrumb-border-width) solid transparent;\r\n border-radius: var(--_mono-breadcrumb-radius);\r\n background: transparent;\r\n color: inherit;\r\n font: inherit;\r\n font-weight: var(--_mono-breadcrumb-font-weight);\r\n text-align: left;\r\n text-decoration: none;\r\n white-space: nowrap;\r\n user-select: none;\r\n outline: 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}\r\n\r\n:where([mono-breadcrumb]) :is(a, button)[mono-action] {\r\n cursor: pointer;\r\n}\r\n\r\n:where([mono-breadcrumb]) span[mono-action] {\r\n cursor: default;\r\n}\r\n\r\n/* VitePress's `.vp-doc a` (0,1,1) underlines and re-inks every link, and adds an\r\n external-link glyph on `target=\"_blank\"`. The current segment renders as a\r\n <span>, so it is never reached. */\r\n[mono-breadcrumb] a[mono-action] {\r\n text-decoration: none;\r\n color: inherit;\r\n font-weight: var(--_mono-breadcrumb-font-weight);\r\n}\r\n\r\n[mono-breadcrumb] a[mono-action]::after {\r\n display: none !important;\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-breadcrumb] :is(a, button)[mono-action]:hover {\r\n color: var(--_mono-breadcrumb-accent);\r\n }\r\n}\r\n\r\n/* `focus-visible:ring-[3px] focus-visible:ring-ring/50` */\r\n[mono-breadcrumb] [mono-action]:focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width-lg, 3px)\r\n color-mix(in oklab, var(--ring) 50%, transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb [aria-current='page'] — font-normal text-foreground */\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb [aria-current='page'] — cursor-default */\r\n[mono-breadcrumb] [mono-item][mono-current] > [mono-action] {\r\n color: var(--_mono-breadcrumb-accent);\r\n font-weight: var(--_mono-breadcrumb-current-weight);\r\n text-transform: var(--_mono-breadcrumb-current-transform);\r\n letter-spacing: var(--_mono-breadcrumb-current-tracking);\r\n cursor: default;\r\n}\r\n\r\n[mono-breadcrumb] [mono-item][mono-disabled] > [mono-action],\r\n[mono-breadcrumb] [mono-action]:disabled,\r\n[mono-breadcrumb][mono-disabled] [mono-action] {\r\n opacity: var(--mono-disabled-opacity, 0.5);\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n/* =========================================\r\n Variant: contained — EXTENSION, the pre-port chip\r\n ========================================= */\r\n\r\n[mono-breadcrumb][mono-variant=\"contained\"] {\r\n --_mono-breadcrumb-pad-x-preset: var(--mono-breadcrumb-contained-pad-x, calc(var(--mono-spacing) * 2));\r\n --_mono-breadcrumb-pad-y-preset: var(--mono-breadcrumb-contained-pad-y, calc(var(--mono-spacing) * 1));\r\n}\r\n\r\n[mono-breadcrumb][mono-variant=\"contained\"] [mono-action] {\r\n background: var(--_mono-breadcrumb-surface);\r\n border-color: var(--_mono-breadcrumb-border);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-breadcrumb][mono-variant=\"contained\"] :is(a, button)[mono-action]:hover {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-accent) var(--mono-mode-tint), transparent);\r\n border-color: color-mix(in oklab, var(--_mono-breadcrumb-accent) var(--mono-mode-checked-border), transparent);\r\n }\r\n}\r\n\r\n/* The flat role fill, not the old gradient-and-glow. */\r\n[mono-breadcrumb][mono-variant=\"contained\"] [mono-item][mono-current] > [mono-action] {\r\n background: var(--_mono-breadcrumb-accent);\r\n border-color: transparent;\r\n color: var(--_mono-breadcrumb-on-accent);\r\n}\r\n\r\n[mono-breadcrumb][mono-variant=\"contained\"] [mono-item][mono-current] > [mono-action] [mono-badge] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-on-accent) 22%, transparent);\r\n color: var(--_mono-breadcrumb-on-accent);\r\n}\r\n\r\n/* =========================================\r\n Variant: underlined — EXTENSION\r\n ========================================= */\r\n\r\n[mono-breadcrumb][mono-variant=\"underlined\"] [mono-action] {\r\n border-radius: 0;\r\n border-bottom-color: transparent;\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-breadcrumb][mono-variant=\"underlined\"] :is(a, button)[mono-action]:hover {\r\n border-bottom-color: color-mix(in oklab, var(--_mono-breadcrumb-accent) var(--mono-mode-checked-border), transparent);\r\n }\r\n}\r\n\r\n[mono-breadcrumb][mono-variant=\"underlined\"] [mono-item][mono-current] > [mono-action] {\r\n border-bottom-color: var(--_mono-breadcrumb-accent);\r\n}\r\n\r\n/* =========================================\r\n Icon\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb li > span[aria-hidden='true'] — flex items-center justify-center */\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb li > span[aria-hidden='true'] — size-5 [&>svg]:size-4 */\r\n:where([mono-breadcrumb]) [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-breadcrumb-icon-size);\r\n height: var(--_mono-breadcrumb-icon-size);\r\n font-size: var(--_mono-breadcrumb-icon-size);\r\n line-height: 1;\r\n}\r\n\r\n/* Three shapes end up inside the box and all must fill it:\r\n shadow build, user-slotted → <slot> → ::slotted(svg)\r\n light build, user-slotted → <span data-mono-slot=\"icon-<id>\"> → svg\r\n inline `item.icon` markup → a direct child svg\r\n The light placeholder is the subtle one: it parks the captured child, so the\r\n SVG is a GRANDchild and a `> svg` rule misses it entirely. */\r\n[mono-icon] > svg,\r\n[mono-icon] > [data-mono-slot] > svg,\r\n[mono-icon] slot::slotted(svg) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* The placeholder must not become a 0-width flex item between the box and the\r\n SVG — `display: contents` drops it from layout so the SVG sizes against the\r\n box instead of against a zero-width parent. */\r\n[mono-icon] > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* Class + attribute = specificity (0,2,0), deliberately. UnoCSS's `i-…`\r\n utilities set `width`/`height: 1.2em` (presetIcons `scale: 1.2`) at (0,1,0)\r\n and their sheet loads AFTER this one, so a single selector loses and the glyph\r\n overflows its box. Two selectors win regardless of sheet order — and it is the\r\n only thing that works for the SHADOW build, where this span is a LIGHT-DOM\r\n child of the host that no shadow-scoped selector can reach.\r\n Scoped to the breadcrumb: its OWN class (every build sets it on the span — the\r\n shadow build's span is a light-DOM child of the host, outside [mono-breadcrumb])\r\n OR anything inside a [mono-breadcrumb] root (raw CSS markup writes a bare\r\n `<span mono-glyph class=\"i-…\">`). Still (0,2,0): `:is()` weighs its heaviest\r\n argument. A bare `[mono-glyph][mono-glyph]` is global and stretched every other\r\n component's `[mono-glyph]` to 100% — the accordion's icon chip filled its header. */\r\n:is(.mono-breadcrumb-iconify, [mono-breadcrumb] *)[mono-glyph] {\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n color: inherit;\r\n}\r\n\r\n/* =========================================\r\n Content / title\r\n ========================================= */\r\n\r\n:where([mono-breadcrumb]) [mono-content] {\r\n display: inline-flex;\r\n align-items: center;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-breadcrumb]) [mono-title] {\r\n font-size: inherit;\r\n font-weight: inherit;\r\n color: inherit;\r\n line-height: inherit;\r\n}\r\n\r\n/* A flex item's `min-width` is `auto` — its content — so without this the\r\n crumbs could not shrink past their clamp and the row simply overflowed its\r\n container (measured: 543px of crumbs in a 512px box). Letting the chain go to\r\n zero turns the clamp into a CEILING: a crumb takes at most `truncate-width`,\r\n and less when the row is tight. */\r\n[mono-breadcrumb][mono-truncate] :is([mono-item], [mono-action], [mono-content]) {\r\n min-width: 0;\r\n}\r\n\r\n[mono-breadcrumb][mono-truncate] [mono-title] {\r\n display: block;\r\n max-width: var(--mono-breadcrumb-truncate-width, 12ch);\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n[mono-breadcrumb][mono-truncate] [mono-item][mono-current] [mono-title] {\r\n max-width: var(--mono-breadcrumb-truncate-width-current, 18ch);\r\n}\r\n\r\n/* =========================================\r\n Badge — EXTENSION, borrowing `.badge`'s shape\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n:where([mono-breadcrumb]) [mono-badge] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--mono-spacing);\r\n height: var(--_mono-breadcrumb-badge-height);\r\n padding: 0 var(--_mono-breadcrumb-badge-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-breadcrumb-badge-radius);\r\n font-size: var(--_mono-breadcrumb-badge-font);\r\n font-weight: var(--_mono-breadcrumb-badge-weight);\r\n line-height: 1;\r\n background: var(--_mono-breadcrumb-badge-bg);\r\n color: var(--_mono-breadcrumb-badge-color);\r\n}\r\n\r\n/* The roles ink the pill tonally — the same wash the ported chip and menu use. */\r\n[mono-breadcrumb] [mono-badge=\"primary\"] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-primary) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-breadcrumb-primary);\r\n}\r\n\r\n[mono-breadcrumb] [mono-badge=\"success\"] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-success) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-breadcrumb-success);\r\n}\r\n\r\n[mono-breadcrumb] [mono-badge=\"danger\"] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-danger) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-breadcrumb-danger);\r\n}\r\n\r\n[mono-breadcrumb] [mono-badge=\"warning\"] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-warning) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-breadcrumb-warning);\r\n}\r\n\r\n[mono-breadcrumb] [mono-badge=\"info\"] {\r\n background: color-mix(in oklab, var(--_mono-breadcrumb-info) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-breadcrumb-info);\r\n}\r\n\r\n/* =========================================\r\n Separator\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb li[aria-hidden='true'] — select-none */\r\n:where([mono-breadcrumb]) [mono-separator] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n align-self: center;\r\n /* Upstream's separator is an SVG at `size-3.5`, so the slot between two\r\n crumbs is 14px wide whatever is in it. A text glyph like `›` is barely 4px,\r\n which — on a flavor with a tight gap — left the labels all but touching.\r\n Reserving the same box is what keeps the row legible either way. */\r\n min-width: var(--_mono-breadcrumb-sep-size);\r\n font-size: var(--_mono-breadcrumb-sep-font);\r\n line-height: 1;\r\n color: var(--_mono-breadcrumb-sep-color);\r\n user-select: none;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .breadcrumb li[aria-hidden='true'] > svg — size-3.5 */\r\n[mono-separator] > svg,\r\n[mono-separator] > [data-mono-slot] > svg,\r\n[mono-separator] slot::slotted(svg) {\r\n display: block;\r\n width: var(--_mono-breadcrumb-sep-size);\r\n height: var(--_mono-breadcrumb-sep-size);\r\n}\r\n\r\n[mono-separator] > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* basecoat@1.0.2 components/breadcrumb.css .breadcrumb [data-rtl-flip] — rtl:rotate-180 */\r\n[dir=\"rtl\"] [mono-breadcrumb] [mono-separator] > svg {\r\n rotate: 180deg;\r\n}\r\n\r\n/* =========================================\r\n Reduced motion\r\n ========================================= */\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-breadcrumb] [mono-action] {\r\n transition: none;\r\n }\r\n}\r\n";
|
|
573
|
+
//#endregion
|
|
574
|
+
//#region src/components/breadcrumb/mono-breadcrumb.ts
|
|
575
|
+
var MonoBreadcrumb = class MonoBreadcrumb extends MonoBreadcrumbCore(LitElement) {
|
|
576
|
+
constructor(..._args) {
|
|
577
|
+
super(..._args);
|
|
578
|
+
this._slotsCaptured = false;
|
|
579
|
+
this._hasBodySlot = false;
|
|
580
|
+
this._slotBody = [];
|
|
581
|
+
}
|
|
582
|
+
static {
|
|
583
|
+
this.styles = [unsafeCSS(breadcrumb_default)];
|
|
584
|
+
}
|
|
585
|
+
createRenderRoot() {
|
|
586
|
+
return this;
|
|
587
|
+
}
|
|
588
|
+
connectedCallback() {
|
|
589
|
+
super.connectedCallback();
|
|
590
|
+
this._captureSlots();
|
|
591
|
+
if (this.isConnected) this.performUpdate();
|
|
592
|
+
}
|
|
593
|
+
updated(changed) {
|
|
594
|
+
super.updated(changed);
|
|
595
|
+
this._placeIconSlots();
|
|
596
|
+
this._placeBodySlot();
|
|
597
|
+
this._placeSeparatorSlots();
|
|
598
|
+
this._notifyListChildren(changed);
|
|
599
|
+
this._orphanHolder = parkDetachedNodes(this._orphanHolder, [
|
|
600
|
+
...[...this._slotIcons.values()].flat(),
|
|
601
|
+
...this._slotBody,
|
|
602
|
+
...this._slotSeparator
|
|
603
|
+
]);
|
|
604
|
+
}
|
|
605
|
+
_renderBody() {
|
|
606
|
+
if (this._hasBodySlot) return html`<ol
|
|
607
|
+
class=${this._cls("mono-breadcrumb-list", "list")}
|
|
608
|
+
mono-list
|
|
609
|
+
data-mono-slot="body"
|
|
610
|
+
></ol>`;
|
|
611
|
+
return super._renderBody();
|
|
612
|
+
}
|
|
613
|
+
_captureSlots() {
|
|
614
|
+
if (this._slotsCaptured) return;
|
|
615
|
+
this._slotsCaptured = true;
|
|
616
|
+
const captured = monoHostChildNodes(this);
|
|
617
|
+
const toRemove = /* @__PURE__ */ new Set();
|
|
618
|
+
for (const node of captured) {
|
|
619
|
+
if (!(node instanceof Element)) continue;
|
|
620
|
+
const slotName = node.getAttribute("slot");
|
|
621
|
+
if (!slotName) continue;
|
|
622
|
+
if (slotName === "body") {
|
|
623
|
+
node.removeAttribute("slot");
|
|
624
|
+
this._slotBody.push(node);
|
|
625
|
+
toRemove.add(node);
|
|
626
|
+
continue;
|
|
627
|
+
}
|
|
628
|
+
if (slotName === "separator") {
|
|
629
|
+
node.removeAttribute("slot");
|
|
630
|
+
this._slotSeparator.push(node);
|
|
631
|
+
toRemove.add(node);
|
|
632
|
+
continue;
|
|
633
|
+
}
|
|
634
|
+
if (slotName.startsWith("icon-")) {
|
|
635
|
+
const id = slotName.slice(5);
|
|
636
|
+
if (!id) continue;
|
|
637
|
+
node.removeAttribute("slot");
|
|
638
|
+
const list = this._slotIcons.get(id) ?? [];
|
|
639
|
+
list.push(node);
|
|
640
|
+
this._slotIcons.set(id, list);
|
|
641
|
+
toRemove.add(node);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
this._hasBodySlot = this._slotBody.length > 0;
|
|
645
|
+
for (const node of toRemove) if (node.parentNode === this) this.removeChild(node);
|
|
646
|
+
}
|
|
647
|
+
_placeIconSlots() {
|
|
648
|
+
if (!this._slotIcons.size) return;
|
|
649
|
+
for (const [id, nodes] of this._slotIcons) {
|
|
650
|
+
const target = this.querySelector(`[data-mono-slot="icon-${id}"]`);
|
|
651
|
+
if (!target) continue;
|
|
652
|
+
for (const node of nodes) placeSlotNode(target, node);
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
_placeBodySlot() {
|
|
656
|
+
if (!this._slotBody.length) return;
|
|
657
|
+
const target = this.querySelector("[data-mono-slot=\"body\"]");
|
|
658
|
+
if (!target) return;
|
|
659
|
+
for (const node of this._slotBody) placeSlotNode(target, node);
|
|
660
|
+
}
|
|
661
|
+
_placeSeparatorSlots() {
|
|
662
|
+
if (!this._slotSeparator.length) return;
|
|
663
|
+
const targets = this.querySelectorAll("[data-mono-slot^=\"separator-\"]");
|
|
664
|
+
if (!targets.length) return;
|
|
665
|
+
targets.forEach((target, ti) => {
|
|
666
|
+
for (const stale of Array.from(target.querySelectorAll(":scope > [data-mono-sep-clone]"))) stale.remove();
|
|
667
|
+
this._slotSeparator.forEach((node, ni) => {
|
|
668
|
+
if (ti === 0 && ni === 0) placeSlotNode(target, node);
|
|
669
|
+
else {
|
|
670
|
+
const clone = node.cloneNode(true);
|
|
671
|
+
if (clone instanceof Element) clone.setAttribute("data-mono-sep-clone", "");
|
|
672
|
+
target.appendChild(clone);
|
|
673
|
+
}
|
|
674
|
+
});
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
};
|
|
678
|
+
__decorate([state()], MonoBreadcrumb.prototype, "_slotsCaptured", void 0);
|
|
679
|
+
__decorate([state()], MonoBreadcrumb.prototype, "_hasBodySlot", void 0);
|
|
680
|
+
MonoBreadcrumb = __decorate([customElement("mono-breadcrumb")], MonoBreadcrumb);
|
|
681
|
+
//#endregion
|
|
682
|
+
//#region src/components/breadcrumb/breadcrumb-list-core.ts
|
|
683
|
+
var autoBreadcrumbListId = 0;
|
|
684
|
+
/**
|
|
685
|
+
* `MonoBreadcrumbListCore` — render-mode-agnostic logic for the STANDALONE
|
|
686
|
+
* `mono-breadcrumb-list`: reactive props (incl. the SSR `items` string→array
|
|
687
|
+
* coercion), item resolution (`items` array / single `item` / direct single-row
|
|
688
|
+
* props), the self-contained `<nav><ol>` render, and the `_useIconSlots()` /
|
|
689
|
+
* `_itemsForRender()` hooks.
|
|
690
|
+
*
|
|
691
|
+
* The light build (`mono-breadcrumb-list.ts`) extends this and layers the
|
|
692
|
+
* light-only CHILD composition (registering with a parent `<mono-breadcrumb>`
|
|
693
|
+
* via `closest()` and rendering bare items). The shadow build
|
|
694
|
+
* (`mono-breadcrumb-list.shadow.ts`) extends this for `@lit-labs/ssr`, rendering
|
|
695
|
+
* standalone in one shadow root and overriding `_useIconSlots()`. Child mode is
|
|
696
|
+
* a light-only feature (cross-element `closest()` can't work under SSR).
|
|
697
|
+
*
|
|
698
|
+
* SSR-safe: no `document`/`window` access.
|
|
699
|
+
*/
|
|
700
|
+
var MonoBreadcrumbListCore = (superClass) => {
|
|
701
|
+
class MonoBreadcrumbListCoreClass extends superClass {
|
|
702
|
+
constructor(..._args) {
|
|
703
|
+
super(..._args);
|
|
704
|
+
this.items = [];
|
|
705
|
+
this.title = "";
|
|
706
|
+
this.href = "";
|
|
707
|
+
this.icon = "";
|
|
708
|
+
this.current = false;
|
|
709
|
+
this.disabled = false;
|
|
710
|
+
this.variant = "default";
|
|
711
|
+
this.size = "md";
|
|
712
|
+
this.color = "primary";
|
|
713
|
+
this.separator = "›";
|
|
714
|
+
this.truncate = false;
|
|
715
|
+
this._autoId = `mono-breadcrumb-list-item-${++autoBreadcrumbListId}`;
|
|
716
|
+
}
|
|
717
|
+
willUpdate(changed) {
|
|
718
|
+
if (typeof this.items === "string") this.items = coerceItems(this.items);
|
|
719
|
+
super.willUpdate?.(changed);
|
|
720
|
+
}
|
|
721
|
+
getBreadcrumbItems() {
|
|
722
|
+
return this._getEffectiveItems();
|
|
723
|
+
}
|
|
724
|
+
_hasDirectItemProps() {
|
|
725
|
+
return !!(this.id || this.title || this.href || this.icon || this.badge !== void 0 || this.current || this.disabled);
|
|
726
|
+
}
|
|
727
|
+
_normalizeItem(item) {
|
|
728
|
+
const title = item.title ?? "";
|
|
729
|
+
const fallbackId = this.id || item.id || item.href || title.toLowerCase().trim().replace(/\s+/g, "-") || this._autoId;
|
|
730
|
+
const normalized = { id: String(item.id ?? fallbackId) };
|
|
731
|
+
if (item.title !== void 0) normalized.title = item.title;
|
|
732
|
+
if (item.icon !== void 0) normalized.icon = item.icon;
|
|
733
|
+
if (item.badge !== void 0) normalized.badge = item.badge;
|
|
734
|
+
if (item.badgeColor !== void 0) normalized.badgeColor = item.badgeColor;
|
|
735
|
+
if (item.href !== void 0) normalized.href = item.href;
|
|
736
|
+
if (item.current !== void 0) normalized.current = item.current;
|
|
737
|
+
if (item.disabled !== void 0) normalized.disabled = item.disabled;
|
|
738
|
+
return normalized;
|
|
739
|
+
}
|
|
740
|
+
_buildDirectItem() {
|
|
741
|
+
return this._normalizeItem({
|
|
742
|
+
id: this.id || void 0,
|
|
743
|
+
title: this.title || void 0,
|
|
744
|
+
href: this.href || void 0,
|
|
745
|
+
icon: this.icon || void 0,
|
|
746
|
+
badge: this.badge,
|
|
747
|
+
badgeColor: this.badgeColor,
|
|
748
|
+
current: this.current,
|
|
749
|
+
disabled: this.disabled
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
_getEffectiveItems() {
|
|
753
|
+
if (this.item) return [this._normalizeItem(this.item)];
|
|
754
|
+
if (this._hasDirectItemProps()) return [this._buildDirectItem()];
|
|
755
|
+
if (Array.isArray(this.items) && this.items.length) return this.items;
|
|
756
|
+
return [];
|
|
757
|
+
}
|
|
758
|
+
/**
|
|
759
|
+
* The items to render for THIS render pass. Defaults to the effective items.
|
|
760
|
+
* The shadow build overrides this to cap the hydration render at the
|
|
761
|
+
* server-rendered count.
|
|
762
|
+
*/
|
|
763
|
+
_itemsForRender() {
|
|
764
|
+
return this._getEffectiveItems();
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Whether per-item icons render through a native `<slot>` (shadow build) vs
|
|
768
|
+
* the light-DOM inline `i-…` span (light build).
|
|
769
|
+
*/
|
|
770
|
+
_useIconSlots() {
|
|
771
|
+
return false;
|
|
772
|
+
}
|
|
773
|
+
_standaloneContext() {
|
|
774
|
+
return {
|
|
775
|
+
cssClass: {},
|
|
776
|
+
separator: this.separator,
|
|
777
|
+
hasSeparatorSlot: false,
|
|
778
|
+
disabled: this.disabled,
|
|
779
|
+
iconSlot: this._useIconSlots(),
|
|
780
|
+
isCurrent: (id) => {
|
|
781
|
+
const items = this._getEffectiveItems();
|
|
782
|
+
for (const it of items) if (it.current && it.id === id) return true;
|
|
783
|
+
if (items.length && items.every((it) => !it.current)) return items[items.length - 1].id === id;
|
|
784
|
+
return false;
|
|
785
|
+
},
|
|
786
|
+
getSlotIconNodes: () => void 0,
|
|
787
|
+
onItemClick: () => {}
|
|
788
|
+
};
|
|
789
|
+
}
|
|
790
|
+
/** Light build overrides this to return a parent-aware context. */
|
|
791
|
+
_buildContext() {
|
|
792
|
+
return this._standaloneContext();
|
|
793
|
+
}
|
|
794
|
+
_standaloneRootClasses() {
|
|
795
|
+
return generateBreadcrumbRootClasses({
|
|
796
|
+
variant: this.variant,
|
|
797
|
+
size: this.size,
|
|
798
|
+
color: this.color,
|
|
799
|
+
truncate: this.truncate,
|
|
800
|
+
disabled: this.disabled
|
|
801
|
+
});
|
|
802
|
+
}
|
|
803
|
+
render() {
|
|
804
|
+
const ctx = this._buildContext();
|
|
805
|
+
const listClass = ctx.cssClass?.list ? `mono-breadcrumb-list ${ctx.cssClass.list}` : "mono-breadcrumb-list";
|
|
806
|
+
const attrs = breadcrumbRootAttrs(this);
|
|
807
|
+
return html`
|
|
808
|
+
<nav
|
|
809
|
+
class=${this._standaloneRootClasses()}
|
|
810
|
+
aria-label="Breadcrumb"
|
|
811
|
+
mono-breadcrumb
|
|
812
|
+
mono-size=${attrs.size ?? nothing}
|
|
813
|
+
mono-color=${attrs.color ?? nothing}
|
|
814
|
+
mono-variant=${attrs.variant ?? nothing}
|
|
815
|
+
?mono-truncate=${this.truncate}
|
|
816
|
+
?mono-disabled=${this.disabled}
|
|
817
|
+
>
|
|
818
|
+
<ol class=${listClass} mono-list>
|
|
819
|
+
${renderBreadcrumbList(this._itemsForRender(), ctx)}
|
|
820
|
+
</ol>
|
|
821
|
+
</nav>
|
|
822
|
+
`;
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
__decorate([property({
|
|
826
|
+
attribute: "items",
|
|
827
|
+
converter: {
|
|
828
|
+
fromAttribute: (value) => coerceItems(value),
|
|
829
|
+
toAttribute: () => null
|
|
830
|
+
},
|
|
831
|
+
hasChanged: arrayHasChanged
|
|
832
|
+
})], MonoBreadcrumbListCoreClass.prototype, "items", void 0);
|
|
833
|
+
__decorate([property({ attribute: false })], MonoBreadcrumbListCoreClass.prototype, "item", void 0);
|
|
834
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "title", void 0);
|
|
835
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "href", void 0);
|
|
836
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "icon", void 0);
|
|
837
|
+
__decorate([property()], MonoBreadcrumbListCoreClass.prototype, "badge", void 0);
|
|
838
|
+
__decorate([property({ attribute: "badge-color" })], MonoBreadcrumbListCoreClass.prototype, "badgeColor", void 0);
|
|
839
|
+
__decorate([property({
|
|
840
|
+
type: Boolean,
|
|
841
|
+
reflect: true
|
|
842
|
+
})], MonoBreadcrumbListCoreClass.prototype, "current", void 0);
|
|
843
|
+
__decorate([property({
|
|
844
|
+
type: Boolean,
|
|
845
|
+
reflect: true
|
|
846
|
+
})], MonoBreadcrumbListCoreClass.prototype, "disabled", void 0);
|
|
847
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "variant", void 0);
|
|
848
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "size", void 0);
|
|
849
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "color", void 0);
|
|
850
|
+
__decorate([property({ type: String })], MonoBreadcrumbListCoreClass.prototype, "separator", void 0);
|
|
851
|
+
__decorate([property({ type: Boolean })], MonoBreadcrumbListCoreClass.prototype, "truncate", void 0);
|
|
852
|
+
return MonoBreadcrumbListCoreClass;
|
|
853
|
+
};
|
|
854
|
+
//#endregion
|
|
855
|
+
//#region src/components/breadcrumb/mono-breadcrumb-list.ts
|
|
856
|
+
var MonoBreadcrumbList = class MonoBreadcrumbList extends MonoBreadcrumbListCore(LitElement) {
|
|
857
|
+
constructor(..._args) {
|
|
858
|
+
super(..._args);
|
|
859
|
+
this._parent = null;
|
|
860
|
+
}
|
|
861
|
+
static {
|
|
862
|
+
this.styles = [unsafeCSS(breadcrumb_default)];
|
|
863
|
+
}
|
|
864
|
+
createRenderRoot() {
|
|
865
|
+
return this;
|
|
866
|
+
}
|
|
867
|
+
connectedCallback() {
|
|
868
|
+
super.connectedCallback();
|
|
869
|
+
this._parent = this.closest("mono-breadcrumb");
|
|
870
|
+
if (this._parent) this._parent._registerListChild(this);
|
|
871
|
+
}
|
|
872
|
+
disconnectedCallback() {
|
|
873
|
+
super.disconnectedCallback();
|
|
874
|
+
if (this._parent) {
|
|
875
|
+
this._parent._unregisterListChild(this);
|
|
876
|
+
this._parent = null;
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
_buildContext() {
|
|
880
|
+
const parent = this._parent;
|
|
881
|
+
if (parent) return {
|
|
882
|
+
cssClass: parent.cssClass ?? {},
|
|
883
|
+
separator: parent.getSeparatorString(),
|
|
884
|
+
hasSeparatorSlot: parent.hasSeparatorSlot(),
|
|
885
|
+
disabled: parent.disabled,
|
|
886
|
+
isCurrent: (id) => parent.isItemCurrent(id),
|
|
887
|
+
getSlotIconNodes: (id) => parent.getSlotIconNodes(id),
|
|
888
|
+
onItemClick: (item, index, e) => parent.requestItemActivation(item, index, e)
|
|
889
|
+
};
|
|
890
|
+
return super._buildContext();
|
|
891
|
+
}
|
|
892
|
+
render() {
|
|
893
|
+
if (this._parent) {
|
|
894
|
+
const ctx = this._buildContext();
|
|
895
|
+
return html`${renderBreadcrumbItemsLeadingSep(this._getEffectiveItems(), ctx)}`;
|
|
896
|
+
}
|
|
897
|
+
return super.render();
|
|
898
|
+
}
|
|
899
|
+
};
|
|
900
|
+
MonoBreadcrumbList = __decorate([customElement("mono-breadcrumb-list")], MonoBreadcrumbList);
|
|
901
|
+
//#endregion
|
|
902
|
+
export { MonoBreadcrumb, MonoBreadcrumbList, findItemIndex, generateBreadcrumbRootClasses, renderBreadcrumbBadge, renderBreadcrumbIcon, renderBreadcrumbItemRow, renderBreadcrumbItemsLeadingSep, renderBreadcrumbList, renderBreadcrumbSeparator, resolveCurrentId, validateBreadcrumbProps };
|