@mono-lit/helper 0.0.0-stage → 0.0.2
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 +35 -3
- 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-source-controller-B_rgHCjw.js +241 -0
- package/dist/data-source-controller-Dbb4fd8I.js +241 -0
- package/dist/data-source-options-CP-X62Pa.js +535 -0
- package/dist/data-source-options-Jqj7LU3Z.js +537 -0
- package/dist/data-source-read-B4DGp6UQ.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-BiGVyxt6.js +2302 -0
- package/dist/export.d.ts +1 -0
- package/dist/export.js +2302 -0
- package/dist/field-icons-DELrSdqJ.js +86 -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-BIqEGehH.js +396 -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-simcTQdW.js +873 -0
- package/dist/mono-button.shadow-B_rKOY9N.js +784 -0
- package/dist/mono-data-chart-CEv29_NS.js +779 -0
- package/dist/mono-data-dropdown-Wnoke6zO.js +357 -0
- package/dist/mono-data-grid-CjkEqxgE.js +3913 -0
- package/dist/mono-data-grid-YjR3n9Ar.js +3915 -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/normalize-error-Gcgmgh5i.js +871 -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-D3EERqgO.js +47 -0
- package/dist/reactive-Di3mTMnV.js +1087 -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 +75 -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 +356 -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 +284 -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 +420 -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 +113 -0
- package/dist/src/composables/element-props.d.ts +46 -0
- package/dist/src/composables/field-icons.d.ts +15 -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 +90 -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-DQqNpqk2.js +795 -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 +524 -0
- package/dist/ui/chart.d.ts +1 -0
- package/dist/ui/chart.js +885 -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 +21989 -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 +996 -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 +2200 -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 +538 -0
- package/dist/ui/shadow/chart.js +1685 -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 +1194 -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 +2167 -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 +2974 -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 +2947 -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,213 @@
|
|
|
1
|
+
//#region src/composables/chip-limits.ts
|
|
2
|
+
var KEBAB = {
|
|
3
|
+
max: "max",
|
|
4
|
+
min: "min",
|
|
5
|
+
maxVisible: "max-visible",
|
|
6
|
+
minVisible: "min-visible"
|
|
7
|
+
};
|
|
8
|
+
/** A non-negative integer, or undefined for anything that is not one (`''`, null, NaN, -1). */
|
|
9
|
+
function limitNumber(value) {
|
|
10
|
+
if (value == null || value === "") return void 0;
|
|
11
|
+
const n = Math.floor(Number(value));
|
|
12
|
+
return Number.isFinite(n) && n >= 0 ? n : void 0;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve one limit: the `chip` object's key (camel, then kebab) pins, the
|
|
16
|
+
* element's own prop is the fallback. Sanitised through {@link limitNumber}.
|
|
17
|
+
*/
|
|
18
|
+
function resolveChipLimit(chip, key, elementValue) {
|
|
19
|
+
return limitNumber(chip ? chip[key] ?? chip[KEBAB[key]] : void 0) ?? limitNumber(elementValue);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* How many chips to draw before the rest collapse into "+N more" — `Infinity`
|
|
23
|
+
* when there is no cap, when the cap is `0` (uncapped, like before), or while
|
|
24
|
+
* the total sits at or under the collapse floor.
|
|
25
|
+
*/
|
|
26
|
+
function visibleChipCap(total, maxVisible, minVisible) {
|
|
27
|
+
if (maxVisible === void 0 || maxVisible <= 0) return Infinity;
|
|
28
|
+
if (minVisible !== void 0 && total <= minVisible) return Infinity;
|
|
29
|
+
return maxVisible;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/composables/chip-strip.ts
|
|
33
|
+
/** Slack (px) absorbing sub-pixel layout noise in the overflow comparisons. */
|
|
34
|
+
var EPSILON = 1;
|
|
35
|
+
var ChipStripController = class {
|
|
36
|
+
constructor(host, opts) {
|
|
37
|
+
this._canScrollStart = false;
|
|
38
|
+
this._canScrollEnd = false;
|
|
39
|
+
this._observer = null;
|
|
40
|
+
this._observed = null;
|
|
41
|
+
this.host = host;
|
|
42
|
+
this.opts = opts;
|
|
43
|
+
host.addController(this);
|
|
44
|
+
}
|
|
45
|
+
/** True once the strip is scrolled away from its start — render `‹`. */
|
|
46
|
+
get canScrollStart() {
|
|
47
|
+
return this._canScrollStart;
|
|
48
|
+
}
|
|
49
|
+
/** True while content remains past the right edge — render `›`. */
|
|
50
|
+
get canScrollEnd() {
|
|
51
|
+
return this._canScrollEnd;
|
|
52
|
+
}
|
|
53
|
+
/** True when either button should show — i.e. the chips overflow the strip. */
|
|
54
|
+
get overflowing() {
|
|
55
|
+
return this._canScrollStart || this._canScrollEnd;
|
|
56
|
+
}
|
|
57
|
+
hostConnected() {
|
|
58
|
+
if (this.opts.enabled()) this._attach();
|
|
59
|
+
}
|
|
60
|
+
hostDisconnected() {
|
|
61
|
+
this._teardown();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Only re-target the observer — deliberately does NOT measure. Measuring here
|
|
65
|
+
* would force a layout on every render of every host, and its `requestUpdate`
|
|
66
|
+
* would schedule an update from inside `updated()`. `invalidate()` and the
|
|
67
|
+
* ResizeObserver cover the cases that can actually change the answer.
|
|
68
|
+
*/
|
|
69
|
+
hostUpdated() {
|
|
70
|
+
if (!this.opts.enabled()) {
|
|
71
|
+
if (this._observed) {
|
|
72
|
+
this._teardown();
|
|
73
|
+
this._publish(false, false);
|
|
74
|
+
}
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this._attach();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Re-measure because the CONTENT changed — a chip added, removed or relabelled.
|
|
81
|
+
* The host calls this from `updated()` when such state actually changed, which
|
|
82
|
+
* is far rarer than "every update".
|
|
83
|
+
*/
|
|
84
|
+
invalidate() {
|
|
85
|
+
this.sync();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Recompute both flags from the live geometry and re-render only when one
|
|
89
|
+
* actually flipped.
|
|
90
|
+
*/
|
|
91
|
+
sync() {
|
|
92
|
+
if (!this.opts.enabled()) return;
|
|
93
|
+
const strip = this.opts.strip();
|
|
94
|
+
let start = false;
|
|
95
|
+
let end = false;
|
|
96
|
+
if (strip) {
|
|
97
|
+
const max = strip.scrollWidth - strip.clientWidth;
|
|
98
|
+
if (max > EPSILON) {
|
|
99
|
+
start = strip.scrollLeft > EPSILON;
|
|
100
|
+
end = strip.scrollLeft < max - EPSILON;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this._publish(start, end);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Scroll one "page" toward `dir`, aligned to a chip boundary so a chip is
|
|
107
|
+
* never left half-cut at the leading edge.
|
|
108
|
+
*
|
|
109
|
+
* Forward: the first chip whose right edge passes the visible right edge
|
|
110
|
+
* becomes the new leftmost chip. Backward: the chip that would end at the
|
|
111
|
+
* current left edge becomes the new leftmost chip. If no chip qualifies
|
|
112
|
+
* (one chip wider than the strip), fall back to a plain viewport-width step
|
|
113
|
+
* so the button is never a no-op.
|
|
114
|
+
*/
|
|
115
|
+
page(dir) {
|
|
116
|
+
const strip = this.opts.strip();
|
|
117
|
+
if (!strip) return;
|
|
118
|
+
const max = strip.scrollWidth - strip.clientWidth;
|
|
119
|
+
if (max <= EPSILON) return;
|
|
120
|
+
const viewLeft = strip.scrollLeft;
|
|
121
|
+
const viewRight = viewLeft + strip.clientWidth;
|
|
122
|
+
const stripLeft = strip.getBoundingClientRect().left;
|
|
123
|
+
const chips = Array.from(strip.children).map((chip) => {
|
|
124
|
+
const rect = chip.getBoundingClientRect();
|
|
125
|
+
const left = rect.left - stripLeft + viewLeft;
|
|
126
|
+
return {
|
|
127
|
+
left,
|
|
128
|
+
right: left + rect.width
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
let target = null;
|
|
132
|
+
if (dir === 1) {
|
|
133
|
+
for (const chip of chips) if (chip.right > viewRight + EPSILON) {
|
|
134
|
+
target = chip.left;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
} else for (let i = chips.length - 1; i >= 0; i--) if (chips[i].left < viewLeft - EPSILON) {
|
|
138
|
+
target = chips[i].right - strip.clientWidth;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
if (target === null) target = viewLeft + dir * strip.clientWidth;
|
|
142
|
+
this._scrollTo(strip, target, max);
|
|
143
|
+
}
|
|
144
|
+
/** Pin the strip to its end — used after a chip is added, to reveal it. */
|
|
145
|
+
scrollToEnd() {
|
|
146
|
+
const strip = this.opts.strip();
|
|
147
|
+
if (!strip) return;
|
|
148
|
+
const max = strip.scrollWidth - strip.clientWidth;
|
|
149
|
+
this._scrollTo(strip, max, max);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Move the strip and republish from the CLAMPED TARGET rather than by reading
|
|
153
|
+
* `scrollLeft` back.
|
|
154
|
+
*
|
|
155
|
+
* Scrolling is instant (no `scroll-behavior: smooth`), so the read would agree
|
|
156
|
+
* — but not reading avoids a second forced layout, and more importantly the
|
|
157
|
+
* strip's scroll events are expensive well beyond this controller: the shared
|
|
158
|
+
* popup controller listens for `scroll` on `window` in the CAPTURE phase, so
|
|
159
|
+
* every scroll event the strip emits repositions any open dropdown, forcing a
|
|
160
|
+
* layout and a `getComputedStyle` ancestor walk. One event per click is the
|
|
161
|
+
* budget; a smooth animation's ~30 was what made the page crawl.
|
|
162
|
+
*/
|
|
163
|
+
_scrollTo(strip, target, max) {
|
|
164
|
+
const clamped = Math.max(0, Math.min(max, target));
|
|
165
|
+
strip.scrollLeft = clamped;
|
|
166
|
+
if (max <= EPSILON) {
|
|
167
|
+
this._publish(false, false);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this._publish(clamped > EPSILON, clamped < max - EPSILON);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Store the flags and re-render only on a real change.
|
|
174
|
+
*
|
|
175
|
+
* The request is deferred a microtask: `invalidate()` / `scrollToEnd()` are
|
|
176
|
+
* called from the host's `updated()` (a chip landed, a preset value arrived),
|
|
177
|
+
* and a synchronous `requestUpdate()` there is Lit's change-in-update warning
|
|
178
|
+
* on every such edge. The flags are already stored, so the deferred render
|
|
179
|
+
* reads the same answer — it just doesn't get scheduled from inside the
|
|
180
|
+
* render that asked for it.
|
|
181
|
+
*/
|
|
182
|
+
_publish(start, end) {
|
|
183
|
+
if (start === this._canScrollStart && end === this._canScrollEnd) return;
|
|
184
|
+
this._canScrollStart = start;
|
|
185
|
+
this._canScrollEnd = end;
|
|
186
|
+
if (typeof queueMicrotask === "function") queueMicrotask(() => this.host.requestUpdate());
|
|
187
|
+
else this.host.requestUpdate();
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Observe the strip so the buttons re-evaluate when the FIELD is resized —
|
|
191
|
+
* a window resize changes `clientWidth` without any render or scroll event.
|
|
192
|
+
*
|
|
193
|
+
* Only the strip is observed, not the chips: a chip add/remove always comes
|
|
194
|
+
* with a host render, and the host calls `invalidate()` for those.
|
|
195
|
+
*/
|
|
196
|
+
_attach() {
|
|
197
|
+
const strip = this.opts.strip();
|
|
198
|
+
if (strip === this._observed) return;
|
|
199
|
+
this._observer?.disconnect();
|
|
200
|
+
this._observed = strip;
|
|
201
|
+
if (!strip) return;
|
|
202
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
203
|
+
this._observer ??= new ResizeObserver(() => this.sync());
|
|
204
|
+
this._observer.observe(strip);
|
|
205
|
+
}
|
|
206
|
+
_teardown() {
|
|
207
|
+
this._observer?.disconnect();
|
|
208
|
+
this._observer = null;
|
|
209
|
+
this._observed = null;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
//#endregion
|
|
213
|
+
export { resolveChipLimit as n, visibleChipCap as r, ChipStripController as t };
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
//#region src/composables/color.ts
|
|
2
|
+
/** The two inks the theme uses on a filled surface (`index.css` `--theme-*-contrast`). */
|
|
3
|
+
var INK_LIGHT = "#ffffff";
|
|
4
|
+
var INK_DARK = "rgba(0, 0, 0, 0.87)";
|
|
5
|
+
var HEX = /^#([0-9a-f]{3,8})$/i;
|
|
6
|
+
var FN = /^(rgba?|hsla?)\(\s*([^)]+?)\s*\)$/i;
|
|
7
|
+
/** Split `rgb(1 2 3 / 0.5)` and `rgb(1, 2, 3, 0.5)` alike. */
|
|
8
|
+
function args(body) {
|
|
9
|
+
return body.replace(/\//g, " ").split(/[\s,]+/).filter(Boolean);
|
|
10
|
+
}
|
|
11
|
+
/** `50%` → 0.5, `0.5` → 0.5. Alpha is given either way. */
|
|
12
|
+
function alpha(token) {
|
|
13
|
+
if (token === void 0) return 1;
|
|
14
|
+
const n = token.endsWith("%") ? Number.parseFloat(token) / 100 : Number.parseFloat(token);
|
|
15
|
+
return Number.isFinite(n) ? Math.min(1, Math.max(0, n)) : 1;
|
|
16
|
+
}
|
|
17
|
+
/** A channel is `0-255` or a percentage of it. */
|
|
18
|
+
function channel(token) {
|
|
19
|
+
const n = token.endsWith("%") ? Number.parseFloat(token) / 100 * 255 : Number.parseFloat(token);
|
|
20
|
+
return Number.isFinite(n) ? Math.min(255, Math.max(0, n)) : NaN;
|
|
21
|
+
}
|
|
22
|
+
function hslToRgb(h, s, l) {
|
|
23
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
24
|
+
const hp = (h % 360 + 360) % 360 / 60;
|
|
25
|
+
const x = c * (1 - Math.abs(hp % 2 - 1));
|
|
26
|
+
const [r, g, b] = hp < 1 ? [
|
|
27
|
+
c,
|
|
28
|
+
x,
|
|
29
|
+
0
|
|
30
|
+
] : hp < 2 ? [
|
|
31
|
+
x,
|
|
32
|
+
c,
|
|
33
|
+
0
|
|
34
|
+
] : hp < 3 ? [
|
|
35
|
+
0,
|
|
36
|
+
c,
|
|
37
|
+
x
|
|
38
|
+
] : hp < 4 ? [
|
|
39
|
+
0,
|
|
40
|
+
x,
|
|
41
|
+
c
|
|
42
|
+
] : hp < 5 ? [
|
|
43
|
+
x,
|
|
44
|
+
0,
|
|
45
|
+
c
|
|
46
|
+
] : [
|
|
47
|
+
c,
|
|
48
|
+
0,
|
|
49
|
+
x
|
|
50
|
+
];
|
|
51
|
+
const m = l - c / 2;
|
|
52
|
+
return [
|
|
53
|
+
(r + m) * 255,
|
|
54
|
+
(g + m) * 255,
|
|
55
|
+
(b + m) * 255
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse a literal CSS colour to sRGB, or null when it isn't one we can read.
|
|
60
|
+
*
|
|
61
|
+
* Handles `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`, `rgb()/rgba()` and `hsl()/hsla()` in
|
|
62
|
+
* both the legacy comma syntax and the modern space syntax. Returns null for anything
|
|
63
|
+
* else — `var(…)`, `color-mix(…)`, a named keyword — which callers treat as "paint it,
|
|
64
|
+
* but fall back for the derived values", since the browser can still render it.
|
|
65
|
+
*/
|
|
66
|
+
function parseCssColor(value) {
|
|
67
|
+
if (!value) return null;
|
|
68
|
+
const input = value.trim();
|
|
69
|
+
const hex = HEX.exec(input);
|
|
70
|
+
if (hex) {
|
|
71
|
+
const h = hex[1];
|
|
72
|
+
const expand = (s) => Number.parseInt(s.length === 1 ? s + s : s, 16);
|
|
73
|
+
if (h.length === 3 || h.length === 4) return {
|
|
74
|
+
r: expand(h[0]),
|
|
75
|
+
g: expand(h[1]),
|
|
76
|
+
b: expand(h[2]),
|
|
77
|
+
a: h.length === 4 ? expand(h[3]) / 255 : 1
|
|
78
|
+
};
|
|
79
|
+
if (h.length === 6 || h.length === 8) return {
|
|
80
|
+
r: Number.parseInt(h.slice(0, 2), 16),
|
|
81
|
+
g: Number.parseInt(h.slice(2, 4), 16),
|
|
82
|
+
b: Number.parseInt(h.slice(4, 6), 16),
|
|
83
|
+
a: h.length === 8 ? Number.parseInt(h.slice(6, 8), 16) / 255 : 1
|
|
84
|
+
};
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
const fn = FN.exec(input);
|
|
88
|
+
if (!fn) return null;
|
|
89
|
+
const parts = args(fn[2]);
|
|
90
|
+
if (parts.length < 3) return null;
|
|
91
|
+
if (fn[1].toLowerCase().startsWith("hsl")) {
|
|
92
|
+
const h = Number.parseFloat(parts[0]);
|
|
93
|
+
const s = Number.parseFloat(parts[1]) / 100;
|
|
94
|
+
const l = Number.parseFloat(parts[2]) / 100;
|
|
95
|
+
if (![
|
|
96
|
+
h,
|
|
97
|
+
s,
|
|
98
|
+
l
|
|
99
|
+
].every(Number.isFinite)) return null;
|
|
100
|
+
const [r, g, b] = hslToRgb(h, Math.min(1, Math.max(0, s)), Math.min(1, Math.max(0, l)));
|
|
101
|
+
return {
|
|
102
|
+
r,
|
|
103
|
+
g,
|
|
104
|
+
b,
|
|
105
|
+
a: alpha(parts[3])
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const [r, g, b] = [
|
|
109
|
+
channel(parts[0]),
|
|
110
|
+
channel(parts[1]),
|
|
111
|
+
channel(parts[2])
|
|
112
|
+
];
|
|
113
|
+
if (![
|
|
114
|
+
r,
|
|
115
|
+
g,
|
|
116
|
+
b
|
|
117
|
+
].every(Number.isFinite)) return null;
|
|
118
|
+
return {
|
|
119
|
+
r,
|
|
120
|
+
g,
|
|
121
|
+
b,
|
|
122
|
+
a: alpha(parts[3])
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/** WCAG relative luminance. */
|
|
126
|
+
function relativeLuminance({ r, g, b }) {
|
|
127
|
+
const f = (v) => {
|
|
128
|
+
const c = v / 255;
|
|
129
|
+
return c <= .03928 ? c / 12.92 : ((c + .055) / 1.055) ** 2.4;
|
|
130
|
+
};
|
|
131
|
+
return .2126 * f(r) + .7152 * f(g) + .0722 * f(b);
|
|
132
|
+
}
|
|
133
|
+
/** WCAG contrast ratio, 1–21. Order of the arguments does not matter. */
|
|
134
|
+
function contrastRatio(a, b) {
|
|
135
|
+
const [hi, lo] = [relativeLuminance(a), relativeLuminance(b)].sort((x, y) => y - x);
|
|
136
|
+
return (hi + .05) / (lo + .05);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The better of the theme's two inks for text sitting ON `value`, or null when the
|
|
140
|
+
* colour can't be parsed (the caller then leaves the ink alone and the CSS default —
|
|
141
|
+
* white, matching every `--theme-*-contrast` but warning's — applies).
|
|
142
|
+
*
|
|
143
|
+
* Compares actual contrast rather than thresholding luminance, so it stays correct for
|
|
144
|
+
* mid-tone colours where a fixed cutoff picks the worse of the two.
|
|
145
|
+
*/
|
|
146
|
+
function readableInk(value) {
|
|
147
|
+
const bg = parseCssColor(value);
|
|
148
|
+
if (!bg) return null;
|
|
149
|
+
return contrastRatio(bg, {
|
|
150
|
+
r: 255,
|
|
151
|
+
g: 255,
|
|
152
|
+
b: 255,
|
|
153
|
+
a: 1
|
|
154
|
+
}) >= contrastRatio(bg, {
|
|
155
|
+
r: bg.r * .13,
|
|
156
|
+
g: bg.g * .13,
|
|
157
|
+
b: bg.b * .13,
|
|
158
|
+
a: 1
|
|
159
|
+
}) ? INK_LIGHT : INK_DARK;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* `"r, g, b"` for the `--*-rgb` half of the colour API, which the stylesheets wrap in
|
|
163
|
+
* `rgba(var(--…-rgb), α)`. Null when unparseable.
|
|
164
|
+
*/
|
|
165
|
+
function toRgbTriple(value) {
|
|
166
|
+
const c = parseCssColor(value);
|
|
167
|
+
if (!c) return null;
|
|
168
|
+
return `${Math.round(c.r)}, ${Math.round(c.g)}, ${Math.round(c.b)}`;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Does this look like a literal colour rather than a token name?
|
|
172
|
+
*
|
|
173
|
+
* Only used AFTER the component's own token list has been checked, so `teal` and
|
|
174
|
+
* `purple` — which are both theme slots and CSS keywords — always mean the theme slot.
|
|
175
|
+
* Bare CSS keywords are deliberately not recognised here: a typo like `primry` should
|
|
176
|
+
* fall through to the validator's warning instead of being silently painted as nothing.
|
|
177
|
+
*/
|
|
178
|
+
function isRawColorValue(value) {
|
|
179
|
+
if (!value) return false;
|
|
180
|
+
const v = value.trim();
|
|
181
|
+
return v.startsWith("#") || /^(rgba?|hsla?|color|color-mix|var|light-dark)\(/i.test(v);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The brand slots `src/data/theme/index.css` defines, in the order they appear there.
|
|
185
|
+
* Every one has a `--theme-<name>`, a `--theme-<name>-rgb` and a `--theme-<name>-contrast`,
|
|
186
|
+
* so a component only has to name the slot for the whole treatment to follow the active
|
|
187
|
+
* colour preset. `surface` is not here — it is each component's "not painted" state, not
|
|
188
|
+
* a palette entry.
|
|
189
|
+
*/
|
|
190
|
+
var THEME_COLOR_TOKENS = [
|
|
191
|
+
"primary",
|
|
192
|
+
"secondary",
|
|
193
|
+
"success",
|
|
194
|
+
"danger",
|
|
195
|
+
"warning",
|
|
196
|
+
"info",
|
|
197
|
+
"teal",
|
|
198
|
+
"purple",
|
|
199
|
+
"neutral",
|
|
200
|
+
"dark"
|
|
201
|
+
];
|
|
202
|
+
/** The class token emitted for a `color` that is a literal rather than a slot name. */
|
|
203
|
+
var CUSTOM_COLOR_CLASS = "custom";
|
|
204
|
+
function isThemeColorToken(value) {
|
|
205
|
+
return !!value && THEME_COLOR_TOKENS.includes(value);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* The class token for a `color` value.
|
|
209
|
+
*
|
|
210
|
+
* A literal MUST NOT reach the class list: the class string is built with `join(' ')`,
|
|
211
|
+
* so `rgb(255, 0, 0)` would split into three garbage tokens (`rgb(255,`, `0,`, `0)`),
|
|
212
|
+
* and `var(--brand)` likewise. Named slots — including `surface` — pass through; every
|
|
213
|
+
* literal collapses to one marker class that the stylesheet keys the painted treatment
|
|
214
|
+
* off, with the actual colour arriving inline (see `customColorStyle`).
|
|
215
|
+
*/
|
|
216
|
+
function colorClassToken(value) {
|
|
217
|
+
if (!value) return "";
|
|
218
|
+
if (isThemeColorToken(value) || value === "surface") return value;
|
|
219
|
+
return CUSTOM_COLOR_CLASS;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* The inline declarations that carry a literal colour, e.g.
|
|
223
|
+
* `customColorStyle('#7c3aed', 'sidebar')`.
|
|
224
|
+
*
|
|
225
|
+
* Written on the component's ROOT element (the one whose stylesheet block declares the
|
|
226
|
+
* resolvers) — an inline declaration beats the class-based `.mono-<c>.<token>` presets,
|
|
227
|
+
* whereas the same property set on the host would only *inherit* and would lose to them.
|
|
228
|
+
*
|
|
229
|
+
* The rgb triple and the ink are emitted only when the value parses. An unparseable but
|
|
230
|
+
* renderable value (`var(--brand)`, `color-mix(…)`) still paints: it just keeps the CSS
|
|
231
|
+
* default ink, and `--mono-<c>-on-accent` stays available to set it by hand.
|
|
232
|
+
*/
|
|
233
|
+
function customColorStyle(value, component) {
|
|
234
|
+
if (!value) return "";
|
|
235
|
+
const out = [`--_mono-${component}-accent-preset:${value};`];
|
|
236
|
+
const triple = toRgbTriple(value);
|
|
237
|
+
if (triple) out.push(`--_mono-${component}-accent-rgb-preset:${triple};`);
|
|
238
|
+
const ink = readableInk(value);
|
|
239
|
+
if (ink) out.push(`--_mono-${component}-on-accent-preset:${ink};`);
|
|
240
|
+
return out.join("");
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Shared validator arm for a `color` prop: a named slot, `surface`, or something that
|
|
244
|
+
* reads as a CSS colour. Returns an error string, or null when the value is fine.
|
|
245
|
+
*/
|
|
246
|
+
function validateColorProp(value) {
|
|
247
|
+
if (value === void 0 || value === null || value === "") return null;
|
|
248
|
+
if (typeof value !== "string") return `Invalid color: ${String(value)}`;
|
|
249
|
+
if (isThemeColorToken(value) || value === "surface" || isRawColorValue(value)) return null;
|
|
250
|
+
return `Invalid color: ${value} — expected one of ${THEME_COLOR_TOKENS.join(", ")}, surface, or a CSS color`;
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
export { validateColorProp as a, isThemeColorToken as i, colorClassToken as n, customColorStyle as r, CUSTOM_COLOR_CLASS as t };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
//#region src/composables/css-class.ts
|
|
2
|
+
/**
|
|
3
|
+
* Append a per-part class override (if present) to a base class string.
|
|
4
|
+
*
|
|
5
|
+
* cssPart({ inner: 'px-4' }, 'mono-nav-inner', 'inner') // 'mono-nav-inner px-4'
|
|
6
|
+
* cssPart(undefined, 'mono-nav-inner', 'inner') // 'mono-nav-inner'
|
|
7
|
+
*/
|
|
8
|
+
function cssPart(cssClass, base, key) {
|
|
9
|
+
const extra = cssClass?.[key];
|
|
10
|
+
return extra ? `${base} ${extra}` : base;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Apply a `css-class` value to an element's `cssClass`/`cssClassName`.
|
|
14
|
+
*
|
|
15
|
+
* - `null`/`undefined`/empty string → reset both
|
|
16
|
+
* - object → `cssClass`
|
|
17
|
+
* - `'{ … }'` JSON string → parsed into `cssClass`
|
|
18
|
+
* - plain string → `cssClassName` (root class fallback)
|
|
19
|
+
*
|
|
20
|
+
* Mutates the element's reactive properties directly (so Lit picks up the
|
|
21
|
+
* change). Used by each component's `_setCssClass`.
|
|
22
|
+
*/
|
|
23
|
+
function applyCssClass(target, value) {
|
|
24
|
+
if (value == null) {
|
|
25
|
+
target.cssClass = {};
|
|
26
|
+
target.cssClassName = "";
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (typeof value === "object") {
|
|
30
|
+
target.cssClass = value;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === "string") {
|
|
34
|
+
const trimmed = value.trim();
|
|
35
|
+
if (!trimmed) {
|
|
36
|
+
target.cssClass = {};
|
|
37
|
+
target.cssClassName = "";
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
|
|
41
|
+
target.cssClass = JSON.parse(trimmed);
|
|
42
|
+
return;
|
|
43
|
+
} catch {}
|
|
44
|
+
target.cssClassName = trimmed;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Define `css-class` and `cssclass` instance aliases (Vue interop) that route to
|
|
49
|
+
* `set`. Lets consumers write `<el :css-class="…">` / `:cssclass` / `:cssClass`.
|
|
50
|
+
*/
|
|
51
|
+
function defineCssClassAliases(target, set) {
|
|
52
|
+
for (const alias of ["css-class", "cssclass"]) Object.defineProperty(target, alias, {
|
|
53
|
+
get: () => target.cssClass,
|
|
54
|
+
set,
|
|
55
|
+
configurable: true,
|
|
56
|
+
enumerable: false
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { cssPart as n, defineCssClassAliases as r, applyCssClass as t };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/composables/css-size.ts
|
|
2
|
+
/**
|
|
3
|
+
* Normalize a sizing prop to a CSS length string.
|
|
4
|
+
* - `number` (or numeric string) → `${n}px`
|
|
5
|
+
* - any other non-empty string → passed through verbatim (`"12rem"`, `"80%"`, …)
|
|
6
|
+
* - `null` / `undefined` / `''` → `undefined` (treated as "not set")
|
|
7
|
+
*/
|
|
8
|
+
function toCssSize(value) {
|
|
9
|
+
if (value === null || value === void 0) return void 0;
|
|
10
|
+
if (typeof value === "number") return Number.isFinite(value) ? `${value}px` : void 0;
|
|
11
|
+
const trimmed = String(value).trim();
|
|
12
|
+
if (trimmed === "") return void 0;
|
|
13
|
+
if (/^-?\d+(\.\d+)?$/.test(trimmed)) return `${trimmed}px`;
|
|
14
|
+
return trimmed;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a Lit `styleMap` object from the six sizing props, normalizing each via
|
|
18
|
+
* `toCssSize` and omitting the ones that aren't set.
|
|
19
|
+
*/
|
|
20
|
+
function buildSizeStyle(src) {
|
|
21
|
+
const style = {};
|
|
22
|
+
const width = toCssSize(src.width);
|
|
23
|
+
const height = toCssSize(src.height);
|
|
24
|
+
const minWidth = toCssSize(src.minWidth);
|
|
25
|
+
const maxWidth = toCssSize(src.maxWidth);
|
|
26
|
+
const minHeight = toCssSize(src.minHeight);
|
|
27
|
+
const maxHeight = toCssSize(src.maxHeight);
|
|
28
|
+
if (width) style.width = width;
|
|
29
|
+
if (height) style.height = height;
|
|
30
|
+
if (minWidth) style["min-width"] = minWidth;
|
|
31
|
+
if (maxWidth) style["max-width"] = maxWidth;
|
|
32
|
+
if (minHeight) style["min-height"] = minHeight;
|
|
33
|
+
if (maxHeight) style["max-height"] = maxHeight;
|
|
34
|
+
return style;
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { toCssSize as n, buildSizeStyle as t };
|