@mono-lit/helper 0.0.5 → 0.0.7
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/dist/{control-tooltip-C3rA_nSH.js → control-tooltip-CoPD37_h.js} +20 -11
- package/dist/{data-source-options-Cz9fVLK8.js → data-source-options-CS0w0wlO.js} +26 -9
- package/dist/{data-source-options-QjuI73g8.js → data-source-options-lDR-g9Eb.js} +26 -9
- package/dist/{data-source-read-FxqzQkk2.js → data-source-read-Cp_h7NIf.js} +5 -2
- package/dist/{data-source-read-i6CYSUEl.js → data-source-read-DTJ_Mnez.js} +5 -2
- package/dist/{excel-BPdDt06G.js → excel-DtRpxmxs.js} +1 -1
- package/dist/{export-DgomqI_3.js → export-D27RJa1w.js} +1 -1
- package/dist/export.js +3 -3
- package/dist/{field-tooltip-FyMi9vNM.js → field-tooltip-Csk4s2ve.js} +2 -3
- package/dist/field-tooltip-addon-B32dizW_.js +22 -0
- package/dist/{control-tooltip-7vegYmq3.js → field-tooltip-addon-CWCp19mJ.js} +36 -12
- package/dist/{field-tooltip.css_raw-DEctHXKm.js → field-tooltip.css_raw-U5UeTa2d.js} +3 -4
- package/dist/{field-validation-CHHQi1zl.js → field-validation-CFmUmuDx.js} +1 -1
- package/dist/field-validation.css_raw-Cx6SGrfP.js +178 -0
- package/dist/{form-control-core-CIdMLXMo.js → form-control-core-BbiACMtL.js} +1 -1
- package/dist/{hydration-flush-DHrl4_KK.js → hydration-flush-BaE9gN3C.js} +450 -3
- package/dist/index.js +11 -11
- package/dist/{index.node-DzCuvHLg.js → index.node-Mg0Snp0t.js} +5 -5
- package/dist/index.node.js +11 -11
- package/dist/input.css_raw-Br-T8RWv.js +5 -0
- package/dist/{light-slots-DdDdZ6zs.js → light-slots-B5Ck0t_E.js} +1 -1
- package/dist/{light-slots-4ZCjOcBg.js → light-slots-_no0r2Z-.js} +1 -1
- package/dist/mono-button-CLkHg3WW.js +871 -0
- package/dist/{mono-button.shadow-D9NdMsmH.js → mono-button.shadow-DqZMpcqY.js} +1 -2
- package/dist/{mono-data-chart-ChkelNT7.js → mono-data-chart-BAH9Zb3p.js} +2 -2
- package/dist/{mono-data-dropdown-DxpUUk2y.js → mono-data-dropdown-BsY5IuIo.js} +72 -6
- package/dist/{mono-data-grid-KDpu4d4_.js → mono-data-grid-CZFjpnOD.js} +125 -18
- package/dist/{mono-data-grid-8jmeIXUU.js → mono-data-grid-kV4jYu2g.js} +124 -17
- package/dist/{mono-element-C7vCschg.js → mono-element-CKcT0rwv.js} +1 -1
- package/dist/{mono-form-controller-BkMR8g14.js → mono-form-controller-BrA10erm.js} +12 -1
- package/dist/mono-ui-kvLVIf1V.js +786 -0
- package/dist/{popup-portal-C8ttHDRX.js → popup-portal-CINuVjNY.js} +53 -6
- package/dist/src/components/accordion/mono-accordion.d.ts +0 -1
- package/dist/src/components/alert/mono-alert.d.ts +0 -1
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +0 -1
- package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +0 -1
- package/dist/src/components/button/mono-button-dropdown.d.ts +0 -1
- package/dist/src/components/button/mono-button.d.ts +0 -1
- package/dist/src/components/card/mono-card.d.ts +0 -1
- package/dist/src/components/chart/mono-chart-presets.d.ts +0 -4
- package/dist/src/components/chart/mono-chart.d.ts +0 -1
- package/dist/src/components/checkbox/mono-checkbox.d.ts +0 -1
- package/dist/src/components/chip/mono-chip.d.ts +0 -1
- package/dist/src/components/date/mono-date.d.ts +0 -1
- package/dist/src/components/drawer/mono-drawer.d.ts +0 -1
- package/dist/src/components/dropdown/mono-dropdown.d.ts +0 -1
- package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +0 -1
- package/dist/src/components/file-upload/mono-file-upload.d.ts +0 -1
- package/dist/src/components/filter/mono-filter-builder.d.ts +0 -1
- package/dist/src/components/input/mono-input.d.ts +0 -1
- package/dist/src/components/menu/mono-menu.d.ts +0 -1
- package/dist/src/components/modal/mono-modal.d.ts +0 -1
- package/dist/src/components/nav/mono-nav.d.ts +0 -1
- package/dist/src/components/otp/mono-otp.d.ts +0 -1
- package/dist/src/components/radio/mono-radio.d.ts +0 -1
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +0 -1
- package/dist/src/components/select/mono-select.d.ts +0 -1
- package/dist/src/components/sidebar/mono-sidebar.d.ts +0 -1
- package/dist/src/components/slider/mono-slider.d.ts +0 -1
- package/dist/src/components/switch/mono-switch.d.ts +0 -1
- package/dist/src/components/table/column-autosize.d.ts +96 -0
- package/dist/src/components/table/mono-data-grid.d.ts +16 -0
- package/dist/src/components/table/mono-table-checkbox.d.ts +0 -1
- package/dist/src/components/table/mono-table-detail.d.ts +0 -1
- package/dist/src/components/table/mono-table-empty.d.ts +0 -1
- package/dist/src/components/table/mono-table-error.d.ts +0 -1
- package/dist/src/components/table/mono-table-info.d.ts +0 -1
- package/dist/src/components/table/mono-table-loading.d.ts +0 -1
- package/dist/src/components/table/mono-table-page-size.d.ts +0 -1
- package/dist/src/components/table/mono-table-paging-group.d.ts +0 -1
- package/dist/src/components/table/mono-table-paging.d.ts +0 -1
- package/dist/src/components/table/mono-table-search.d.ts +0 -1
- package/dist/src/components/table/mono-table-sort.d.ts +0 -1
- package/dist/src/components/table/mono-table-summary.d.ts +0 -1
- package/dist/src/components/table/mono-table-th-core.d.ts +3 -0
- package/dist/src/components/table/mono-table-th.d.ts +0 -1
- package/dist/src/components/table/table-controller-core.d.ts +2 -0
- package/dist/src/components/table/table-types.d.ts +8 -1
- package/dist/src/components/tabs/mono-tabs.d.ts +0 -1
- package/dist/src/components/tag-input/mono-tag-input.d.ts +12 -1
- package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +9 -1
- package/dist/src/components/tag-input/tag-input-core.d.ts +9 -1
- package/dist/src/components/tag-input/tag-input-types.d.ts +2 -0
- package/dist/src/components/textarea/mono-textarea.d.ts +0 -1
- package/dist/src/components/tooltip/field-tooltip-addon.d.ts +5 -0
- package/dist/src/composables/mono-size-attrs.d.ts +10 -0
- package/dist/src/composables/popup-portal.d.ts +24 -1
- package/dist/src/entries/index.d.ts +2 -1
- package/dist/src/entries/index.node.d.ts +2 -1
- package/dist/{styles-BODNpZV1.js → styles-D-ergrfR.js} +1 -1
- package/dist/{tooltip-Drekihf5.js → tooltip-Cu5IrDS9.js} +1 -2
- package/dist/tooltip.js +2 -3
- package/dist/ui/accordion.js +4 -11
- package/dist/ui/alert.js +3 -10
- package/dist/ui/breadcrumb.js +4 -14
- package/dist/ui/button-dropdown.js +22 -15
- package/dist/ui/button.js +1 -1
- package/dist/ui/card.js +4 -11
- package/dist/ui/chart.js +4 -24
- package/dist/ui/checkbox.js +4 -11
- package/dist/ui/chip.js +6 -9
- package/dist/ui/date.js +5 -12
- package/dist/ui/drawer.js +5 -12
- package/dist/ui/dropdown-table.js +89 -38
- package/dist/ui/dropdown.js +34 -21
- package/dist/ui/file-upload.js +4 -11
- package/dist/ui/filter.js +3 -10
- package/dist/ui/form.js +1 -1
- package/dist/ui/index.css +5414 -8564
- package/dist/ui/input.js +6 -14
- package/dist/ui/menu.js +4 -11
- package/dist/ui/modal.js +6 -13
- package/dist/ui/nav.js +4 -11
- package/dist/ui/otp.js +6 -14
- package/dist/ui/radio.js +4 -11
- package/dist/ui/rich-text-editor.js +4 -12
- package/dist/ui/select.js +12 -15
- package/dist/ui/shadow/accordion.js +1 -1
- package/dist/ui/shadow/alert.js +1 -1
- package/dist/ui/shadow/breadcrumb.js +1 -1
- package/dist/ui/shadow/button-dropdown.js +21 -7
- package/dist/ui/shadow/button.js +1 -1
- package/dist/ui/shadow/card.js +1 -2
- package/dist/ui/shadow/chart.js +3 -4
- package/dist/ui/shadow/checkbox.js +2 -2
- package/dist/ui/shadow/chip.js +1 -1
- package/dist/ui/shadow/date.js +4 -5
- package/dist/ui/shadow/drawer.js +2 -2
- package/dist/ui/shadow/dropdown-table.js +159 -35
- package/dist/ui/shadow/dropdown.js +31 -11
- package/dist/ui/shadow/file-upload.js +2 -2
- package/dist/ui/shadow/filter.js +1 -2
- package/dist/ui/shadow/input.js +5 -6
- package/dist/ui/shadow/menu.js +1 -1
- package/dist/ui/shadow/modal.js +3 -3
- package/dist/ui/shadow/nav.js +1 -1
- package/dist/ui/shadow/otp.js +5 -6
- package/dist/ui/shadow/radio.js +2 -2
- package/dist/ui/shadow/rich-text-editor.js +2 -3
- package/dist/ui/shadow/select.js +11 -7
- package/dist/ui/shadow/sidebar.js +2 -2
- package/dist/ui/shadow/slider.js +4 -5
- package/dist/ui/shadow/switch.js +2 -2
- package/dist/ui/shadow/table.js +113 -20
- package/dist/ui/shadow/tabs.js +1 -1
- package/dist/ui/shadow/tag-input.js +203 -27
- package/dist/ui/shadow/textarea.js +4 -5
- package/dist/ui/sidebar.js +4 -11
- package/dist/ui/slider.js +5 -13
- package/dist/ui/switch.js +4 -11
- package/dist/ui/table.js +114 -64
- package/dist/ui/tabs.js +4 -11
- package/dist/ui/tag-input.js +215 -30
- package/dist/ui/textarea.js +6 -14
- package/dist/ui/theme/luma.css +495 -495
- package/dist/ui/theme/lyra.css +495 -495
- package/dist/ui/theme/maia.css +495 -495
- package/dist/ui/theme/mira.css +495 -495
- package/dist/ui/theme/nova.css +495 -495
- package/dist/ui/theme/one.css +742 -742
- package/dist/ui/theme/rhea.css +495 -495
- package/dist/ui/theme/sera.css +495 -495
- package/dist/ui/theme/vega.css +495 -495
- package/package.json +2 -2
- package/dist/css-size-DWAPgQdT.js +0 -38
- package/dist/field-validation.css_raw-B3Iu33rS.js +0 -178
- package/dist/input.css_raw-CQu2fAsU.js +0 -5
- package/dist/mono-button-CeDB9khW.js +0 -878
- package/dist/mono-ui-BwUc0L6B.js +0 -360
- package/dist/tooltip-loader-3U9FTOXj.js +0 -20
- package/dist/tooltip-loader-Dcp9AUZn.js +0 -23
package/dist/ui/shadow/slider.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-
|
|
1
|
+
import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration, v as toCssSize } from "../../hydration-flush-BaE9gN3C.js";
|
|
2
2
|
import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
|
|
3
3
|
import { n as cssPart } from "../../css-class-B6Tc_MAx.js";
|
|
4
4
|
import { a as parseFormat, t as applyFormat } from "../../input-format-GrRCJBqV.js";
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import { n as FieldTooltipController, t as field_tooltip_css_raw_default } from "../../field-tooltip.css_raw-DEctHXKm.js";
|
|
5
|
+
import { t as MonoFormControlCore } from "../../form-control-core-BbiACMtL.js";
|
|
6
|
+
import { n as FieldTooltipController, t as field_tooltip_css_raw_default } from "../../field-tooltip.css_raw-U5UeTa2d.js";
|
|
8
7
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
9
8
|
import { property, state } from "lit/decorators.js";
|
|
10
9
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
@@ -1012,7 +1011,7 @@ const MonoSliderCore = (superClass) => {
|
|
|
1012
1011
|
|
|
1013
1012
|
//#endregion
|
|
1014
1013
|
//#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\slider\slider.css?raw.js
|
|
1015
|
-
var slider_css_raw_default = "/* =========================================================================\n mono-slider — a multi-thumb slider drawn in the look of Basecoat's range\n (basecoat-css@1.0.2 components/range.css + each style's `input[type='range']`),\n the same look `<mono-input type=\"range\">` has.\n\n Styled by ATTRIBUTE, like mono-input:\n\n <div mono-slider mono-size mono-color mono-type=\"vertical\"\n mono-validation-state mono-value-tooltip=\"always|never\"\n mono-track-gap mono-marks-labelled mono-disabled mono-readonly mono-dragging>\n <div mono-label-row><label mono-label>…</label><span mono-slider-value>20 – 80</span></div>\n <div mono-slider-field>\n <div mono-slider-control> the pointer target\n <div mono-slider-track> the rail; it holds the pieces\n <span mono-slider-piece mono-filled? mono-cut-start? mono-cut-end? style=\"--a;--b\">\n <div mono-slider-marks><span mono-slider-mark mono-active? style=\"--p\">\n <span mono-slider-mark-label>\n <div mono-slider-thumb role=\"slider\" mono-active? mono-dragging? style=\"--p\">\n <span mono-slider-tooltip>\n <div mono-message-wrap><div mono-message=\"helper|valid|invalid|warning\">\n\n GEOMETRY. `--p` / `--a` / `--b` are 0–1 positions (unitless). A thumb's CENTRE travels\n from half a thumb in to half a thumb short of the end — exactly where a native range\n thumb sits — so the slider lines up with `<mono-input type=\"range\">` under every flavor.\n The track is cut into pieces at every thumb: that is what lets a piece be filled or not\n (`fill`), and what lets `track-gap` cut the track back around each thumb (M3 style).\n\n KNOBS. Every look value resolves `--mono-slider-x` → `--mono-input-range-x` → vega,\n so the eight Basecoat styles and ONE (which write the input-range knobs in\n flavors/*.css) restyle the slider with no slider entries of their own — the\n \"flavor via public knobs\" pattern (filter.css). Slider-only knobs: --mono-slider-\n {length, track-gap, accent, mark-size, mark-color, mark-active-color, mark-label-*,\n tooltip-bg, tooltip-color, tooltip-radius, tooltip-font-*}.\n\n The track/thumb rules cite Basecoat; marks, tooltips, track gaps, multiple\n thumbs and the vertical type are EXTENSIONs.\n ========================================================================= */\n\nmono-slider {\n display: block;\n}\n\n[mono-slider] {\n /* ── palette ─────────────────────────────────────────────────────────── */\n --_mono-slider-text: var(--mono-slider-color, var(--foreground));\n --_mono-slider-muted: var(--mono-slider-muted, var(--muted-foreground));\n /* the fill + thumb colour: the `color` prop, a validation state outranks it */\n --_mono-slider-accent: var(--mono-slider-accent, var(--_mono-slider-accent-preset, var(--primary)));\n /* the hover / focus halo: Basecoat's ring-ring/50 (the role colour for a non-primary `color`) */\n --_mono-slider-ring-color: var(--mono-slider-ring-color, var(--_mono-slider-ring-preset, var(--ring)));\n --_mono-slider-ring-c: color-mix(in oklab, var(--_mono-slider-ring-color) var(--mono-slider-ring-alpha, var(--mono-ring-alpha, 50%)), transparent);\n\n /* ── geometry: md here, `size` multiplies ────────────────────────────── */\n --_mono-slider-scale: 1;\n --_mono-slider-track-h: round(nearest, calc(var(--mono-slider-track-height, var(--mono-input-range-track-height, 0.375rem)) * var(--_mono-slider-scale)), 1px);\n /* along = the thumb's size in the direction of travel, across = the other one */\n --_mono-slider-across: round(nearest, calc(var(--mono-slider-thumb-size, var(--mono-input-range-thumb-size, 1rem)) * var(--_mono-slider-scale)), 1px);\n --_mono-slider-along: round(nearest, calc(var(--mono-slider-thumb-width, var(--mono-input-range-thumb-width, var(--mono-slider-thumb-size, var(--mono-input-range-thumb-size, 1rem)))) * var(--_mono-slider-scale)), 1px);\n --_mono-slider-box: max(round(nearest, calc(var(--mono-slider-height, var(--mono-input-range-height, 1.25rem)) * var(--_mono-slider-scale)), 1px), var(--_mono-slider-across));\n --_mono-slider-track-radius: var(--mono-slider-track-radius, var(--mono-input-range-track-radius, 9999px));\n --_mono-slider-track-bg: var(--mono-slider-track-bg, var(--mono-input-range-track-bg, var(--muted)));\n --_mono-slider-fill: var(--mono-slider-fill, var(--mono-input-range-fill, currentColor));\n --_mono-slider-cut: calc(var(--_mono-slider-track-gap, 0px) + var(--_mono-slider-along) / 2);\n\n /* basecoat@1.0.2 styles/vega.css .field — flex w-full flex-col gap-3 (the input range's gap) */\n display: flex;\n flex-direction: column;\n gap: var(--mono-slider-gap, var(--mono-input-range-gap, var(--mono-input-gap, calc(var(--mono-spacing) * 3))));\n width: 100%;\n font-family: inherit;\n color: var(--_mono-slider-text);\n}\n\n[mono-slider],\n:where([mono-slider]) *,\n:where([mono-slider]) *::before,\n:where([mono-slider]) *::after {\n box-sizing: border-box;\n}\n\n/* the shadow build renders every region and marks an empty one */\n[mono-slider] [mono-empty] {\n display: none;\n}\n\n[mono-slider][mono-size=\"xs\"] { --_mono-slider-scale: 0.75; }\n[mono-slider][mono-size=\"sm\"] { --_mono-slider-scale: 0.875; }\n[mono-slider][mono-size=\"lg\"] { --_mono-slider-scale: 1.125; }\n[mono-slider][mono-size=\"xl\"] { --_mono-slider-scale: 1.25; }\n[mono-slider][mono-size=\"xxl\"] { --_mono-slider-scale: 1.375; }\n\n/* ── colours: the accent + halo per role (primary is Basecoat's --primary / --ring) ── */\n[mono-slider][mono-color=\"secondary\"] { --_mono-slider-accent-preset: var(--muted-foreground); --_mono-slider-ring-preset: var(--muted-foreground); }\n[mono-slider][mono-color=\"success\"] { --_mono-slider-accent-preset: var(--success); --_mono-slider-ring-preset: var(--success); }\n[mono-slider][mono-color=\"danger\"] { --_mono-slider-accent-preset: var(--destructive); --_mono-slider-ring-preset: var(--destructive); }\n[mono-slider][mono-color=\"warning\"] { --_mono-slider-accent-preset: var(--warning); --_mono-slider-ring-preset: var(--warning); }\n[mono-slider][mono-color=\"info\"] { --_mono-slider-accent-preset: var(--info); --_mono-slider-ring-preset: var(--info); }\n[mono-slider][mono-color=\"teal\"] { --_mono-slider-accent-preset: var(--teal); --_mono-slider-ring-preset: var(--teal); }\n[mono-slider][mono-color=\"purple\"] { --_mono-slider-accent-preset: var(--purple); --_mono-slider-ring-preset: var(--purple); }\n[mono-slider][mono-color=\"neutral\"] { --_mono-slider-accent-preset: var(--neutral); --_mono-slider-ring-preset: var(--neutral); }\n[mono-slider][mono-color=\"dark\"] { --_mono-slider-accent-preset: var(--dark); --_mono-slider-ring-preset: var(--dark); }\n\n/* a validation state recolours the fill + thumb (after the colours, so it wins) */\n[mono-slider][mono-validation-state=\"invalid\"] { --_mono-slider-accent-preset: var(--destructive); --_mono-slider-ring-preset: var(--destructive); }\n[mono-slider][mono-validation-state=\"valid\"] { --_mono-slider-accent-preset: var(--success); --_mono-slider-ring-preset: var(--success); }\n[mono-slider][mono-validation-state=\"warning\"] { --_mono-slider-accent-preset: var(--warning); --_mono-slider-ring-preset: var(--warning); }\n\n/* =========================================\n Label row — the label, and the value at its end (EJI ONE `.eji-range__row`)\n ========================================= */\n\n/* basecoat@1.0.2 styles/vega.css .field > label, .label — flex items-center gap-2 text-sm\n leading-none font-medium select-none; the row spans so the value can end it */\n:where([mono-slider]) > [mono-label-row] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--mono-spacing) * 4);\n min-width: 0;\n}\n\n:where([mono-slider]) [mono-label] {\n display: flex;\n align-items: center;\n min-width: 0;\n gap: var(--mono-input-label-gap, calc(var(--mono-spacing) * 2));\n font-size: var(--mono-slider-label-font-size, var(--mono-input-range-label-font-size, var(--mono-input-label-font-size, var(--mono-text-sm))));\n line-height: var(--mono-slider-label-line-height, var(--mono-input-range-label-line-height, var(--mono-input-label-line-height, 1)));\n font-weight: var(--mono-slider-label-font-weight, var(--mono-input-range-label-font-weight, var(--mono-input-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)))));\n color: var(--mono-slider-label-color, var(--mono-input-range-label-color, var(--_mono-slider-text)));\n user-select: none;\n}\n\n:where([mono-slider]) [mono-required-mark] {\n color: var(--destructive);\n}\n\n/* the label ⓘ (`tooltip` prop) — same as mono-input's */\n:where([mono-slider]) [mono-label] > [mono-label-tooltip] {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n font-size: var(--mono-input-label-tooltip-size, 1.1em);\n color: var(--mono-input-label-tooltip-color, currentColor);\n opacity: var(--mono-input-label-tooltip-opacity, 0.6);\n border-radius: 9999px;\n cursor: help;\n pointer-events: auto;\n outline: none;\n transition: opacity 150ms ease;\n\n &:is(:hover, :focus-visible) {\n opacity: 1;\n }\n &:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n }\n & > [mono-icon] {\n width: 1em;\n height: 1em;\n }\n}\n\n/* EXTENSION — the value readout (EJI ONE `.eji-range__val`); tabular so it does not shimmer */\n:where([mono-slider]) [mono-slider-value] {\n flex: none;\n font-family: var(--mono-slider-value-font-family, var(--mono-input-range-value-font-family, inherit));\n font-size: var(--mono-slider-value-font-size, var(--mono-input-range-value-font-size, var(--mono-slider-label-font-size, var(--mono-input-range-label-font-size, var(--mono-input-label-font-size, var(--mono-text-sm))))));\n font-weight: var(--mono-slider-value-font-weight, var(--mono-input-range-value-font-weight, var(--mono-font-weight-medium)));\n line-height: var(--mono-slider-label-line-height, var(--mono-input-range-label-line-height, var(--mono-input-label-line-height, 1)));\n font-variant-numeric: tabular-nums;\n color: var(--mono-slider-value-color, var(--mono-input-range-value-color, var(--_mono-slider-muted)));\n white-space: nowrap;\n user-select: none;\n}\n\n/* no label: the readout follows the control, in reserved room */\n:where([mono-slider]) > [mono-slider-field] > [mono-slider-value] {\n min-width: var(--mono-slider-value-min-width, var(--mono-input-range-value-min-width, 3ch));\n text-align: end;\n}\n\n/* =========================================\n Field + control\n ========================================= */\n\n:where([mono-slider]) > [mono-slider-field] {\n display: flex;\n align-items: center;\n gap: calc(var(--mono-spacing) * 3);\n min-width: 0;\n}\n\n/* basecoat@1.0.2 components/range.css .field > input[type='range'], .input[type='range'] — flex appearance-none\n items-center p-0 outline-none disabled:pointer-events-none disabled:opacity-50 */\n/* basecoat@1.0.2 styles/vega.css .field > input[type='range'], .input[type='range'] — h-5 (the box), --slider-track-height,\n --slider-thumb-size; mono: the box also grows to fit a taller thumb */\n:where([mono-slider]) [mono-slider-control] {\n position: relative;\n flex: 1 1 auto;\n min-width: 0;\n height: var(--_mono-slider-box);\n color: var(--_mono-slider-accent);\n cursor: pointer;\n touch-action: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n/* room for mark labels under the track */\n[mono-slider][mono-marks-labelled] [mono-slider-control] {\n margin-block-end: calc(var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 1.5)) + var(--mono-slider-mark-label-line-height, 1rem));\n}\n\n/* =========================================\n Track — the rail, cut into pieces at every thumb\n ========================================= */\n\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='range'], .input[type='range'])::-webkit-slider-runnable-track — bg-muted h-1.5\n rounded-full (+ components/range.css: the --primary / --muted gradient stop, here one piece each) */\n:where([mono-slider]) [mono-slider-track] {\n position: absolute;\n inset-inline: 0;\n top: 50%;\n height: var(--_mono-slider-track-h);\n margin-top: calc(var(--_mono-slider-track-h) / -2);\n}\n\n:where([mono-slider]) [mono-slider-piece] {\n /* piece ends: a thumb centre, or the very end of the rail */\n --_x0: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--a));\n --_x1: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--b));\n --_cs: 0px;\n --_ce: 0px;\n position: absolute;\n inset-block: 0;\n inset-inline-start: calc(var(--_x0) + var(--_cs));\n inline-size: max(0px, calc(var(--_x1) - var(--_x0) - var(--_cs) - var(--_ce)));\n border-radius: var(--_mono-slider-track-radius);\n background: var(--_mono-slider-track-bg);\n}\n:where([mono-slider]) [mono-slider-piece]:not([mono-cut-start]) { --_x0: 0%; }\n:where([mono-slider]) [mono-slider-piece]:not([mono-cut-end]) { --_x1: 100%; }\n:where([mono-slider]) [mono-slider-piece][mono-filled] {\n background: var(--_mono-slider-fill);\n}\n\n/* joins at a thumb are square unless `track-gap` opens them (then each piece is a\n whole rounded bar, Material 3's look) */\n[mono-slider]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start] {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n}\n[mono-slider]:not([mono-track-gap]) [mono-slider-piece][mono-cut-end] {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n}\n[mono-slider][mono-track-gap] [mono-slider-piece][mono-cut-start] { --_cs: var(--_mono-slider-cut); }\n[mono-slider][mono-track-gap] [mono-slider-piece][mono-cut-end] { --_ce: var(--_mono-slider-cut); }\n\n/* =========================================\n Thumb\n ========================================= */\n\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='range'], .input[type='range'])::-webkit-slider-thumb — border-primary ring-ring/50\n size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4;\n mono: the three box-shadow slots of mono-input's range — a resting ring, the halo, the shadow */\n:where([mono-slider]) [mono-slider-thumb] {\n --_halo: 0 0 #0000;\n position: absolute;\n z-index: 1;\n top: 50%;\n inset-inline-start: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\n width: var(--_mono-slider-along);\n height: var(--_mono-slider-across);\n margin-top: calc(var(--_mono-slider-across) / -2);\n margin-inline-start: calc(var(--_mono-slider-along) / -2);\n border: var(--mono-slider-thumb-border-width, var(--mono-input-range-thumb-border-width, 1px)) solid\n var(--mono-slider-thumb-border-color, var(--mono-input-range-thumb-border-color, currentColor));\n border-radius: var(--mono-slider-thumb-radius, var(--mono-input-range-thumb-radius, 9999px));\n background: var(--mono-slider-thumb-bg, var(--mono-input-range-thumb-bg, #fff));\n box-shadow:\n 0 0 0 var(--mono-slider-thumb-ring-width, var(--mono-input-range-thumb-ring-width, 0px))\n var(--mono-slider-thumb-ring-color, var(--mono-input-range-thumb-ring-color, transparent)),\n var(--_halo),\n var(--mono-slider-thumb-shadow, var(--mono-input-range-thumb-shadow, var(--mono-shadow-sm)));\n outline: none;\n transition-property: color, box-shadow, background-color, border-color;\n transition-timing-function: var(--mono-ease);\n transition-duration: var(--mono-duration);\n}\n\n/* the last-touched thumb rides on top, so a stack lifts the one being moved */\n:where([mono-slider]) [mono-slider-thumb][mono-active] {\n z-index: 2;\n}\n\n/* focus-visible:ring-4 focus-visible:outline-hidden; a drag keeps the halo on */\n:where([mono-slider]) [mono-slider-thumb]:is(:focus-visible, [mono-dragging]) {\n --_halo: 0 0 0 var(--mono-slider-ring-width, var(--mono-input-range-ring-width, 4px)) var(--_mono-slider-ring-c);\n}\n\n/* hover:ring-4 */\n@media (hover: hover) {\n [mono-slider]:not([mono-disabled], [mono-readonly]) [mono-slider-thumb]:hover:not(:focus-visible, [mono-dragging]) {\n --_halo: 0 0 0 var(--mono-slider-hover-ring-width, var(--mono-input-range-hover-ring-width, var(--mono-slider-ring-width, var(--mono-input-range-ring-width, 4px)))) var(--_mono-slider-ring-c);\n }\n}\n\n/* =========================================\n EXTENSION — marks\n ========================================= */\n\n:where([mono-slider]) [mono-slider-marks] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n\n:where([mono-slider]) [mono-slider-mark] {\n --_size: var(--mono-slider-mark-size, max(4px, calc(var(--_mono-slider-track-h) * 0.5)));\n position: absolute;\n top: 50%;\n inset-inline-start: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\n width: var(--_size);\n height: var(--_size);\n margin-top: calc(var(--_size) / -2);\n margin-inline-start: calc(var(--_size) / -2);\n border-radius: 9999px;\n background: var(--mono-slider-mark-color, color-mix(in oklab, var(--_mono-slider-muted) 55%, transparent));\n}\n\n:where([mono-slider]) [mono-slider-mark][mono-active] {\n background: var(--mono-slider-mark-active-color, color-mix(in oklab, var(--primary-foreground) 85%, transparent));\n}\n\n:where([mono-slider]) [mono-slider-mark-label] {\n position: absolute;\n top: calc(var(--_mono-slider-box) / 2 + var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 1.5)));\n left: 50%;\n translate: -50% 0;\n font-size: var(--mono-slider-mark-label-font-size, var(--mono-text-xs));\n line-height: var(--mono-slider-mark-label-line-height, 1rem);\n font-weight: var(--mono-slider-mark-label-font-weight, var(--mono-font-weight-normal));\n color: var(--mono-slider-mark-label-color, var(--_mono-slider-muted));\n white-space: nowrap;\n}\n\n/* =========================================\n EXTENSION — the value bubble on each thumb (shadcn's tooltip: bg-foreground text-background)\n ========================================= */\n\n:where([mono-slider]) [mono-slider-tooltip] {\n position: absolute;\n left: 50%;\n bottom: calc(100% + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)));\n translate: -50% 0;\n padding: calc(var(--mono-spacing) * 0.5) calc(var(--mono-spacing) * 2);\n border-radius: var(--mono-slider-tooltip-radius, var(--mono-radius-md));\n background: var(--mono-slider-tooltip-bg, var(--foreground));\n color: var(--mono-slider-tooltip-color, var(--background));\n font-family: var(--mono-slider-tooltip-font-family, inherit);\n font-size: var(--mono-slider-tooltip-font-size, var(--mono-text-xs));\n line-height: var(--mono-slider-tooltip-line-height, 1rem);\n font-weight: var(--mono-slider-tooltip-font-weight, var(--mono-font-weight-medium));\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition: opacity var(--mono-duration) var(--mono-ease), visibility var(--mono-duration);\n\n /* the arrow */\n &::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n width: 0.5rem;\n height: 0.25rem;\n translate: -50% 0;\n background: inherit;\n clip-path: polygon(0 0, 100% 0, 50% 100%);\n }\n}\n\n/* `value-tooltip=\"always\"`: the bubbles are permanent, so the label row must not sit under them */\n[mono-slider][mono-value-tooltip=\"always\"]:not([mono-type=\"vertical\"]) [mono-slider-control] {\n margin-block-start: max(0px, calc(var(--mono-slider-tooltip-line-height, 1rem) + var(--mono-spacing) * 3 + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)) - (var(--_mono-slider-box) - var(--_mono-slider-across)) / 2));\n}\n\n/* `value-tooltip=\"auto\"`: on focus, while dragging, and on hover */\n:where([mono-slider]) [mono-slider-thumb]:is(:focus-visible, [mono-dragging]) > [mono-slider-tooltip],\n[mono-slider][mono-value-tooltip=\"always\"] [mono-slider-tooltip] {\n opacity: 1;\n visibility: visible;\n}\n@media (hover: hover) {\n [mono-slider]:not([mono-disabled]) [mono-slider-thumb]:hover > [mono-slider-tooltip] {\n opacity: 1;\n visibility: visible;\n }\n}\n\n/* =========================================\n EXTENSION — type=\"vertical\": the same parts with the axes swapped, min at the bottom\n ========================================= */\n\n[mono-slider][mono-type=\"vertical\"] {\n width: auto;\n}\n\n[mono-slider][mono-type=\"vertical\"] > [mono-slider-field] {\n flex-direction: column;\n align-items: flex-start;\n}\n\n[mono-slider][mono-type=\"vertical\"] [mono-slider-control] {\n flex: none;\n width: var(--_mono-slider-box);\n height: var(--_mono-slider-length, var(--mono-slider-length, 200px));\n}\n\n[mono-slider][mono-type=\"vertical\"][mono-marks-labelled] [mono-slider-control] {\n margin-block-end: 0;\n}\n\n[mono-slider][mono-type=\"vertical\"] [mono-slider-track] {\n inset-inline: auto;\n inset-block: 0;\n left: 50%;\n top: 0;\n width: var(--_mono-slider-track-h);\n height: auto;\n margin-top: 0;\n margin-left: calc(var(--_mono-slider-track-h) / -2);\n}\n\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece] {\n --_x0: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--a));\n --_x1: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--b));\n inset-block: auto;\n inset-inline: 0;\n bottom: calc(var(--_x0) + var(--_cs));\n inline-size: auto;\n block-size: max(0px, calc(var(--_x1) - var(--_x0) - var(--_cs) - var(--_ce)));\n}\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece]:not([mono-cut-start]) { --_x0: 0%; }\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece]:not([mono-cut-end]) { --_x1: 100%; }\n/* vertical joins: the piece's START is its bottom, its END its top */\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start] {\n border-radius: var(--_mono-slider-track-radius);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-end] {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start][mono-cut-end] {\n border-radius: 0;\n}\n\n[mono-slider][mono-type=\"vertical\"] [mono-slider-thumb],\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark] {\n /* the logical reset goes FIRST: written after `left` it would reset it too */\n inset-inline-start: auto;\n top: auto;\n left: 50%;\n bottom: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\n margin: 0;\n}\n[mono-slider][mono-type=\"vertical\"] [mono-slider-thumb] {\n width: var(--_mono-slider-across);\n height: var(--_mono-slider-along);\n margin-left: calc(var(--_mono-slider-across) / -2);\n margin-bottom: calc(var(--_mono-slider-along) / -2);\n}\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark] {\n margin-left: calc(var(--_size) / -2);\n margin-bottom: calc(var(--_size) / -2);\n}\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark-label] {\n top: 50%;\n left: calc(var(--_mono-slider-box) / 2 + var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 2)));\n translate: 0 -50%;\n}\n[mono-slider][mono-type=\"vertical\"] [mono-slider-tooltip] {\n left: auto;\n right: calc(100% + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)));\n bottom: 50%;\n translate: 0 50%;\n\n &::after {\n top: 50%;\n left: 100%;\n width: 0.25rem;\n height: 0.5rem;\n translate: 0 -50%;\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n }\n}\n\n/* =========================================\n States\n ========================================= */\n\n/* in-data-[disabled=true]:opacity-50 */\n[mono-slider][mono-disabled] > :is([mono-label-row], [mono-slider-field]) {\n opacity: 0.5;\n}\n[mono-slider][mono-disabled] [mono-slider-control] {\n pointer-events: none;\n cursor: not-allowed;\n}\n\n[mono-slider][mono-readonly] [mono-slider-control] {\n cursor: default;\n}\n\n[mono-slider][mono-dragging] [mono-slider-control] {\n cursor: grabbing;\n}\n\n/* =========================================\n Message — helper / validation text (mono-input's)\n ========================================= */\n\n:where([mono-slider]) > [mono-message-wrap]:not(:has([mono-message]:not([mono-empty]))) {\n display: none;\n}\n\n:where([mono-slider]) [mono-message] {\n font-size: var(--mono-input-message-font-size, var(--mono-text-sm));\n line-height: var(--mono-input-message-line-height, var(--mono-leading-normal));\n color: var(--_mono-slider-muted);\n}\n:where([mono-slider]) [mono-message=\"invalid\"] { color: var(--destructive); }\n:where([mono-slider]) [mono-message=\"valid\"] { color: var(--success); }\n:where([mono-slider]) [mono-message=\"warning\"] { color: var(--warning); }\n\n[mono-slider][mono-validation-state=\"invalid\"] [mono-label] {\n color: var(--destructive);\n}\n\n@media (prefers-reduced-motion: reduce) {\n :where([mono-slider]) :is([mono-slider-thumb], [mono-slider-tooltip]) {\n transition: none;\n }\n}\n";
|
|
1014
|
+
var slider_css_raw_default = "/* =========================================================================\r\n mono-slider — a multi-thumb slider drawn in the look of Basecoat's range\r\n (basecoat-css@1.0.2 components/range.css + each style's `input[type='range']`),\r\n the same look `<mono-input type=\"range\">` has.\r\n\r\n Styled by ATTRIBUTE, like mono-input:\r\n\r\n <div mono-slider mono-size mono-color mono-type=\"vertical\"\r\n mono-validation-state mono-value-tooltip=\"always|never\"\r\n mono-track-gap mono-marks-labelled mono-disabled mono-readonly mono-dragging>\r\n <div mono-label-row><label mono-label>…</label><span mono-slider-value>20 – 80</span></div>\r\n <div mono-slider-field>\r\n <div mono-slider-control> the pointer target\r\n <div mono-slider-track> the rail; it holds the pieces\r\n <span mono-slider-piece mono-filled? mono-cut-start? mono-cut-end? style=\"--a;--b\">\r\n <div mono-slider-marks><span mono-slider-mark mono-active? style=\"--p\">\r\n <span mono-slider-mark-label>\r\n <div mono-slider-thumb role=\"slider\" mono-active? mono-dragging? style=\"--p\">\r\n <span mono-slider-tooltip>\r\n <div mono-message-wrap><div mono-message=\"helper|valid|invalid|warning\">\r\n\r\n GEOMETRY. `--p` / `--a` / `--b` are 0–1 positions (unitless). A thumb's CENTRE travels\r\n from half a thumb in to half a thumb short of the end — exactly where a native range\r\n thumb sits — so the slider lines up with `<mono-input type=\"range\">` under every flavor.\r\n The track is cut into pieces at every thumb: that is what lets a piece be filled or not\r\n (`fill`), and what lets `track-gap` cut the track back around each thumb (M3 style).\r\n\r\n KNOBS. Every look value resolves `--mono-slider-x` → `--mono-input-range-x` → vega,\r\n so the eight Basecoat styles and ONE (which write the input-range knobs in\r\n flavors/*.css) restyle the slider with no slider entries of their own — the\r\n \"flavor via public knobs\" pattern (filter.css). Slider-only knobs: --mono-slider-\r\n {length, track-gap, accent, mark-size, mark-color, mark-active-color, mark-label-*,\r\n tooltip-bg, tooltip-color, tooltip-radius, tooltip-font-*}.\r\n\r\n The track/thumb rules cite Basecoat; marks, tooltips, track gaps, multiple\r\n thumbs and the vertical type are EXTENSIONs.\r\n ========================================================================= */\r\n\r\nmono-slider {\r\n display: block;\r\n}\r\n\r\n[mono-slider] {\r\n /* ── palette ─────────────────────────────────────────────────────────── */\r\n --_mono-slider-text: var(--mono-slider-color, var(--foreground));\r\n --_mono-slider-muted: var(--mono-slider-muted, var(--muted-foreground));\r\n /* the fill + thumb colour: the `color` prop, a validation state outranks it */\r\n --_mono-slider-accent: var(--mono-slider-accent, var(--_mono-slider-accent-preset, var(--primary)));\r\n /* the hover / focus halo: Basecoat's ring-ring/50 (the role colour for a non-primary `color`) */\r\n --_mono-slider-ring-color: var(--mono-slider-ring-color, var(--_mono-slider-ring-preset, var(--ring)));\r\n --_mono-slider-ring-c: color-mix(in oklab, var(--_mono-slider-ring-color) var(--mono-slider-ring-alpha, var(--mono-ring-alpha, 50%)), transparent);\r\n\r\n /* ── geometry: md here, `size` multiplies ────────────────────────────── */\r\n --_mono-slider-scale: 1;\r\n --_mono-slider-track-h: round(nearest, calc(var(--mono-slider-track-height, var(--mono-input-range-track-height, 0.375rem)) * var(--_mono-slider-scale)), 1px);\r\n /* along = the thumb's size in the direction of travel, across = the other one */\r\n --_mono-slider-across: round(nearest, calc(var(--mono-slider-thumb-size, var(--mono-input-range-thumb-size, 1rem)) * var(--_mono-slider-scale)), 1px);\r\n --_mono-slider-along: round(nearest, calc(var(--mono-slider-thumb-width, var(--mono-input-range-thumb-width, var(--mono-slider-thumb-size, var(--mono-input-range-thumb-size, 1rem)))) * var(--_mono-slider-scale)), 1px);\r\n --_mono-slider-box: max(round(nearest, calc(var(--mono-slider-height, var(--mono-input-range-height, 1.25rem)) * var(--_mono-slider-scale)), 1px), var(--_mono-slider-across));\r\n --_mono-slider-track-radius: var(--mono-slider-track-radius, var(--mono-input-range-track-radius, 9999px));\r\n --_mono-slider-track-bg: var(--mono-slider-track-bg, var(--mono-input-range-track-bg, var(--muted)));\r\n --_mono-slider-fill: var(--mono-slider-fill, var(--mono-input-range-fill, currentColor));\r\n --_mono-slider-cut: calc(var(--_mono-slider-track-gap, 0px) + var(--_mono-slider-along) / 2);\r\n\r\n /* basecoat@1.0.2 styles/vega.css .field — flex w-full flex-col gap-3 (the input range's gap) */\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-slider-gap, var(--mono-input-range-gap, var(--mono-input-gap, calc(var(--mono-spacing) * 3))));\r\n width: 100%;\r\n font-family: inherit;\r\n color: var(--_mono-slider-text);\r\n}\r\n\r\n[mono-slider],\r\n:where([mono-slider]) *,\r\n:where([mono-slider]) *::before,\r\n:where([mono-slider]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* the shadow build renders every region and marks an empty one */\r\n[mono-slider] [mono-empty] {\r\n display: none;\r\n}\r\n\r\n[mono-slider][mono-size=\"xs\"] { --_mono-slider-scale: 0.75; }\r\n[mono-slider][mono-size=\"sm\"] { --_mono-slider-scale: 0.875; }\r\n[mono-slider][mono-size=\"lg\"] { --_mono-slider-scale: 1.125; }\r\n[mono-slider][mono-size=\"xl\"] { --_mono-slider-scale: 1.25; }\r\n[mono-slider][mono-size=\"xxl\"] { --_mono-slider-scale: 1.375; }\r\n\r\n/* ── colours: the accent + halo per role (primary is Basecoat's --primary / --ring) ── */\r\n[mono-slider][mono-color=\"secondary\"] { --_mono-slider-accent-preset: var(--muted-foreground); --_mono-slider-ring-preset: var(--muted-foreground); }\r\n[mono-slider][mono-color=\"success\"] { --_mono-slider-accent-preset: var(--success); --_mono-slider-ring-preset: var(--success); }\r\n[mono-slider][mono-color=\"danger\"] { --_mono-slider-accent-preset: var(--destructive); --_mono-slider-ring-preset: var(--destructive); }\r\n[mono-slider][mono-color=\"warning\"] { --_mono-slider-accent-preset: var(--warning); --_mono-slider-ring-preset: var(--warning); }\r\n[mono-slider][mono-color=\"info\"] { --_mono-slider-accent-preset: var(--info); --_mono-slider-ring-preset: var(--info); }\r\n[mono-slider][mono-color=\"teal\"] { --_mono-slider-accent-preset: var(--teal); --_mono-slider-ring-preset: var(--teal); }\r\n[mono-slider][mono-color=\"purple\"] { --_mono-slider-accent-preset: var(--purple); --_mono-slider-ring-preset: var(--purple); }\r\n[mono-slider][mono-color=\"neutral\"] { --_mono-slider-accent-preset: var(--neutral); --_mono-slider-ring-preset: var(--neutral); }\r\n[mono-slider][mono-color=\"dark\"] { --_mono-slider-accent-preset: var(--dark); --_mono-slider-ring-preset: var(--dark); }\r\n\r\n/* a validation state recolours the fill + thumb (after the colours, so it wins) */\r\n[mono-slider][mono-validation-state=\"invalid\"] { --_mono-slider-accent-preset: var(--destructive); --_mono-slider-ring-preset: var(--destructive); }\r\n[mono-slider][mono-validation-state=\"valid\"] { --_mono-slider-accent-preset: var(--success); --_mono-slider-ring-preset: var(--success); }\r\n[mono-slider][mono-validation-state=\"warning\"] { --_mono-slider-accent-preset: var(--warning); --_mono-slider-ring-preset: var(--warning); }\r\n\r\n/* =========================================\r\n Label row — the label, and the value at its end (EJI ONE `.eji-range__row`)\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label — flex items-center gap-2 text-sm\r\n leading-none font-medium select-none; the row spans so the value can end it */\r\n:where([mono-slider]) > [mono-label-row] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: calc(var(--mono-spacing) * 4);\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-slider]) [mono-label] {\r\n display: flex;\r\n align-items: center;\r\n min-width: 0;\r\n gap: var(--mono-input-label-gap, calc(var(--mono-spacing) * 2));\r\n font-size: var(--mono-slider-label-font-size, var(--mono-input-range-label-font-size, var(--mono-input-label-font-size, var(--mono-text-sm))));\r\n line-height: var(--mono-slider-label-line-height, var(--mono-input-range-label-line-height, var(--mono-input-label-line-height, 1)));\r\n font-weight: var(--mono-slider-label-font-weight, var(--mono-input-range-label-font-weight, var(--mono-input-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)))));\r\n color: var(--mono-slider-label-color, var(--mono-input-range-label-color, var(--_mono-slider-text)));\r\n user-select: none;\r\n}\r\n\r\n:where([mono-slider]) [mono-required-mark] {\r\n color: var(--destructive);\r\n}\r\n\r\n/* the label ⓘ (`tooltip` prop) — same as mono-input's */\r\n:where([mono-slider]) [mono-label] > [mono-label-tooltip] {\r\n display: inline-flex;\r\n flex: none;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: var(--mono-input-label-tooltip-size, 1.1em);\r\n color: var(--mono-input-label-tooltip-color, currentColor);\r\n opacity: var(--mono-input-label-tooltip-opacity, 0.6);\r\n border-radius: 9999px;\r\n cursor: help;\r\n pointer-events: auto;\r\n outline: none;\r\n transition: opacity 150ms ease;\r\n\r\n &:is(:hover, :focus-visible) {\r\n opacity: 1;\r\n }\r\n &:focus-visible {\r\n outline: 2px solid currentColor;\r\n outline-offset: 2px;\r\n }\r\n & > [mono-icon] {\r\n width: 1em;\r\n height: 1em;\r\n }\r\n}\r\n\r\n/* EXTENSION — the value readout (EJI ONE `.eji-range__val`); tabular so it does not shimmer */\r\n:where([mono-slider]) [mono-slider-value] {\r\n flex: none;\r\n font-family: var(--mono-slider-value-font-family, var(--mono-input-range-value-font-family, inherit));\r\n font-size: var(--mono-slider-value-font-size, var(--mono-input-range-value-font-size, var(--mono-slider-label-font-size, var(--mono-input-range-label-font-size, var(--mono-input-label-font-size, var(--mono-text-sm))))));\r\n font-weight: var(--mono-slider-value-font-weight, var(--mono-input-range-value-font-weight, var(--mono-font-weight-medium)));\r\n line-height: var(--mono-slider-label-line-height, var(--mono-input-range-label-line-height, var(--mono-input-label-line-height, 1)));\r\n font-variant-numeric: tabular-nums;\r\n color: var(--mono-slider-value-color, var(--mono-input-range-value-color, var(--_mono-slider-muted)));\r\n white-space: nowrap;\r\n user-select: none;\r\n}\r\n\r\n/* no label: the readout follows the control, in reserved room */\r\n:where([mono-slider]) > [mono-slider-field] > [mono-slider-value] {\r\n min-width: var(--mono-slider-value-min-width, var(--mono-input-range-value-min-width, 3ch));\r\n text-align: end;\r\n}\r\n\r\n/* =========================================\r\n Field + control\r\n ========================================= */\r\n\r\n:where([mono-slider]) > [mono-slider-field] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 3);\r\n min-width: 0;\r\n}\r\n\r\n/* basecoat@1.0.2 components/range.css .field > input[type='range'], .input[type='range'] — flex appearance-none\r\n items-center p-0 outline-none disabled:pointer-events-none disabled:opacity-50 */\r\n/* basecoat@1.0.2 styles/vega.css .field > input[type='range'], .input[type='range'] — h-5 (the box), --slider-track-height,\r\n --slider-thumb-size; mono: the box also grows to fit a taller thumb */\r\n:where([mono-slider]) [mono-slider-control] {\r\n position: relative;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n height: var(--_mono-slider-box);\r\n color: var(--_mono-slider-accent);\r\n cursor: pointer;\r\n touch-action: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n/* room for mark labels under the track */\r\n[mono-slider][mono-marks-labelled] [mono-slider-control] {\r\n margin-block-end: calc(var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 1.5)) + var(--mono-slider-mark-label-line-height, 1rem));\r\n}\r\n\r\n/* =========================================\r\n Track — the rail, cut into pieces at every thumb\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='range'], .input[type='range'])::-webkit-slider-runnable-track — bg-muted h-1.5\r\n rounded-full (+ components/range.css: the --primary / --muted gradient stop, here one piece each) */\r\n:where([mono-slider]) [mono-slider-track] {\r\n position: absolute;\r\n inset-inline: 0;\r\n top: 50%;\r\n height: var(--_mono-slider-track-h);\r\n margin-top: calc(var(--_mono-slider-track-h) / -2);\r\n}\r\n\r\n:where([mono-slider]) [mono-slider-piece] {\r\n /* piece ends: a thumb centre, or the very end of the rail */\r\n --_x0: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--a));\r\n --_x1: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--b));\r\n --_cs: 0px;\r\n --_ce: 0px;\r\n position: absolute;\r\n inset-block: 0;\r\n inset-inline-start: calc(var(--_x0) + var(--_cs));\r\n inline-size: max(0px, calc(var(--_x1) - var(--_x0) - var(--_cs) - var(--_ce)));\r\n border-radius: var(--_mono-slider-track-radius);\r\n background: var(--_mono-slider-track-bg);\r\n}\r\n:where([mono-slider]) [mono-slider-piece]:not([mono-cut-start]) { --_x0: 0%; }\r\n:where([mono-slider]) [mono-slider-piece]:not([mono-cut-end]) { --_x1: 100%; }\r\n:where([mono-slider]) [mono-slider-piece][mono-filled] {\r\n background: var(--_mono-slider-fill);\r\n}\r\n\r\n/* joins at a thumb are square unless `track-gap` opens them (then each piece is a\r\n whole rounded bar, Material 3's look) */\r\n[mono-slider]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start] {\r\n border-start-start-radius: 0;\r\n border-end-start-radius: 0;\r\n}\r\n[mono-slider]:not([mono-track-gap]) [mono-slider-piece][mono-cut-end] {\r\n border-start-end-radius: 0;\r\n border-end-end-radius: 0;\r\n}\r\n[mono-slider][mono-track-gap] [mono-slider-piece][mono-cut-start] { --_cs: var(--_mono-slider-cut); }\r\n[mono-slider][mono-track-gap] [mono-slider-piece][mono-cut-end] { --_ce: var(--_mono-slider-cut); }\r\n\r\n/* =========================================\r\n Thumb\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='range'], .input[type='range'])::-webkit-slider-thumb — border-primary ring-ring/50\r\n size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4;\r\n mono: the three box-shadow slots of mono-input's range — a resting ring, the halo, the shadow */\r\n:where([mono-slider]) [mono-slider-thumb] {\r\n --_halo: 0 0 #0000;\r\n position: absolute;\r\n z-index: 1;\r\n top: 50%;\r\n inset-inline-start: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\r\n width: var(--_mono-slider-along);\r\n height: var(--_mono-slider-across);\r\n margin-top: calc(var(--_mono-slider-across) / -2);\r\n margin-inline-start: calc(var(--_mono-slider-along) / -2);\r\n border: var(--mono-slider-thumb-border-width, var(--mono-input-range-thumb-border-width, 1px)) solid\r\n var(--mono-slider-thumb-border-color, var(--mono-input-range-thumb-border-color, currentColor));\r\n border-radius: var(--mono-slider-thumb-radius, var(--mono-input-range-thumb-radius, 9999px));\r\n background: var(--mono-slider-thumb-bg, var(--mono-input-range-thumb-bg, #fff));\r\n box-shadow:\r\n 0 0 0 var(--mono-slider-thumb-ring-width, var(--mono-input-range-thumb-ring-width, 0px))\r\n var(--mono-slider-thumb-ring-color, var(--mono-input-range-thumb-ring-color, transparent)),\r\n var(--_halo),\r\n var(--mono-slider-thumb-shadow, var(--mono-input-range-thumb-shadow, var(--mono-shadow-sm)));\r\n outline: none;\r\n transition-property: color, box-shadow, background-color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* the last-touched thumb rides on top, so a stack lifts the one being moved */\r\n:where([mono-slider]) [mono-slider-thumb][mono-active] {\r\n z-index: 2;\r\n}\r\n\r\n/* focus-visible:ring-4 focus-visible:outline-hidden; a drag keeps the halo on */\r\n:where([mono-slider]) [mono-slider-thumb]:is(:focus-visible, [mono-dragging]) {\r\n --_halo: 0 0 0 var(--mono-slider-ring-width, var(--mono-input-range-ring-width, 4px)) var(--_mono-slider-ring-c);\r\n}\r\n\r\n/* hover:ring-4 */\r\n@media (hover: hover) {\r\n [mono-slider]:not([mono-disabled], [mono-readonly]) [mono-slider-thumb]:hover:not(:focus-visible, [mono-dragging]) {\r\n --_halo: 0 0 0 var(--mono-slider-hover-ring-width, var(--mono-input-range-hover-ring-width, var(--mono-slider-ring-width, var(--mono-input-range-ring-width, 4px)))) var(--_mono-slider-ring-c);\r\n }\r\n}\r\n\r\n/* =========================================\r\n EXTENSION — marks\r\n ========================================= */\r\n\r\n:where([mono-slider]) [mono-slider-marks] {\r\n position: absolute;\r\n inset: 0;\r\n pointer-events: none;\r\n}\r\n\r\n:where([mono-slider]) [mono-slider-mark] {\r\n --_size: var(--mono-slider-mark-size, max(4px, calc(var(--_mono-slider-track-h) * 0.5)));\r\n position: absolute;\r\n top: 50%;\r\n inset-inline-start: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\r\n width: var(--_size);\r\n height: var(--_size);\r\n margin-top: calc(var(--_size) / -2);\r\n margin-inline-start: calc(var(--_size) / -2);\r\n border-radius: 9999px;\r\n background: var(--mono-slider-mark-color, color-mix(in oklab, var(--_mono-slider-muted) 55%, transparent));\r\n}\r\n\r\n:where([mono-slider]) [mono-slider-mark][mono-active] {\r\n background: var(--mono-slider-mark-active-color, color-mix(in oklab, var(--primary-foreground) 85%, transparent));\r\n}\r\n\r\n:where([mono-slider]) [mono-slider-mark-label] {\r\n position: absolute;\r\n top: calc(var(--_mono-slider-box) / 2 + var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 1.5)));\r\n left: 50%;\r\n translate: -50% 0;\r\n font-size: var(--mono-slider-mark-label-font-size, var(--mono-text-xs));\r\n line-height: var(--mono-slider-mark-label-line-height, 1rem);\r\n font-weight: var(--mono-slider-mark-label-font-weight, var(--mono-font-weight-normal));\r\n color: var(--mono-slider-mark-label-color, var(--_mono-slider-muted));\r\n white-space: nowrap;\r\n}\r\n\r\n/* =========================================\r\n EXTENSION — the value bubble on each thumb (shadcn's tooltip: bg-foreground text-background)\r\n ========================================= */\r\n\r\n:where([mono-slider]) [mono-slider-tooltip] {\r\n position: absolute;\r\n left: 50%;\r\n bottom: calc(100% + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)));\r\n translate: -50% 0;\r\n padding: calc(var(--mono-spacing) * 0.5) calc(var(--mono-spacing) * 2);\r\n border-radius: var(--mono-slider-tooltip-radius, var(--mono-radius-md));\r\n background: var(--mono-slider-tooltip-bg, var(--foreground));\r\n color: var(--mono-slider-tooltip-color, var(--background));\r\n font-family: var(--mono-slider-tooltip-font-family, inherit);\r\n font-size: var(--mono-slider-tooltip-font-size, var(--mono-text-xs));\r\n line-height: var(--mono-slider-tooltip-line-height, 1rem);\r\n font-weight: var(--mono-slider-tooltip-font-weight, var(--mono-font-weight-medium));\r\n font-variant-numeric: tabular-nums;\r\n white-space: nowrap;\r\n pointer-events: none;\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: opacity var(--mono-duration) var(--mono-ease), visibility var(--mono-duration);\r\n\r\n /* the arrow */\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n width: 0.5rem;\r\n height: 0.25rem;\r\n translate: -50% 0;\r\n background: inherit;\r\n clip-path: polygon(0 0, 100% 0, 50% 100%);\r\n }\r\n}\r\n\r\n/* `value-tooltip=\"always\"`: the bubbles are permanent, so the label row must not sit under them */\r\n[mono-slider][mono-value-tooltip=\"always\"]:not([mono-type=\"vertical\"]) [mono-slider-control] {\r\n margin-block-start: max(0px, calc(var(--mono-slider-tooltip-line-height, 1rem) + var(--mono-spacing) * 3 + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)) - (var(--_mono-slider-box) - var(--_mono-slider-across)) / 2));\r\n}\r\n\r\n/* `value-tooltip=\"auto\"`: on focus, while dragging, and on hover */\r\n:where([mono-slider]) [mono-slider-thumb]:is(:focus-visible, [mono-dragging]) > [mono-slider-tooltip],\r\n[mono-slider][mono-value-tooltip=\"always\"] [mono-slider-tooltip] {\r\n opacity: 1;\r\n visibility: visible;\r\n}\r\n@media (hover: hover) {\r\n [mono-slider]:not([mono-disabled]) [mono-slider-thumb]:hover > [mono-slider-tooltip] {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n}\r\n\r\n/* =========================================\r\n EXTENSION — type=\"vertical\": the same parts with the axes swapped, min at the bottom\r\n ========================================= */\r\n\r\n[mono-slider][mono-type=\"vertical\"] {\r\n width: auto;\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"] > [mono-slider-field] {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-control] {\r\n flex: none;\r\n width: var(--_mono-slider-box);\r\n height: var(--_mono-slider-length, var(--mono-slider-length, 200px));\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"][mono-marks-labelled] [mono-slider-control] {\r\n margin-block-end: 0;\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-track] {\r\n inset-inline: auto;\r\n inset-block: 0;\r\n left: 50%;\r\n top: 0;\r\n width: var(--_mono-slider-track-h);\r\n height: auto;\r\n margin-top: 0;\r\n margin-left: calc(var(--_mono-slider-track-h) / -2);\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece] {\r\n --_x0: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--a));\r\n --_x1: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--b));\r\n inset-block: auto;\r\n inset-inline: 0;\r\n bottom: calc(var(--_x0) + var(--_cs));\r\n inline-size: auto;\r\n block-size: max(0px, calc(var(--_x1) - var(--_x0) - var(--_cs) - var(--_ce)));\r\n}\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece]:not([mono-cut-start]) { --_x0: 0%; }\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-piece]:not([mono-cut-end]) { --_x1: 100%; }\r\n/* vertical joins: the piece's START is its bottom, its END its top */\r\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start] {\r\n border-radius: var(--_mono-slider-track-radius);\r\n border-bottom-left-radius: 0;\r\n border-bottom-right-radius: 0;\r\n}\r\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-end] {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n}\r\n[mono-slider][mono-type=\"vertical\"]:not([mono-track-gap]) [mono-slider-piece][mono-cut-start][mono-cut-end] {\r\n border-radius: 0;\r\n}\r\n\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-thumb],\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark] {\r\n /* the logical reset goes FIRST: written after `left` it would reset it too */\r\n inset-inline-start: auto;\r\n top: auto;\r\n left: 50%;\r\n bottom: calc(var(--_mono-slider-along) / 2 + (100% - var(--_mono-slider-along)) * var(--p));\r\n margin: 0;\r\n}\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-thumb] {\r\n width: var(--_mono-slider-across);\r\n height: var(--_mono-slider-along);\r\n margin-left: calc(var(--_mono-slider-across) / -2);\r\n margin-bottom: calc(var(--_mono-slider-along) / -2);\r\n}\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark] {\r\n margin-left: calc(var(--_size) / -2);\r\n margin-bottom: calc(var(--_size) / -2);\r\n}\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-mark-label] {\r\n top: 50%;\r\n left: calc(var(--_mono-slider-box) / 2 + var(--mono-slider-mark-label-gap, calc(var(--mono-spacing) * 2)));\r\n translate: 0 -50%;\r\n}\r\n[mono-slider][mono-type=\"vertical\"] [mono-slider-tooltip] {\r\n left: auto;\r\n right: calc(100% + var(--mono-slider-tooltip-offset, calc(var(--mono-spacing) * 2)));\r\n bottom: 50%;\r\n translate: 0 50%;\r\n\r\n &::after {\r\n top: 50%;\r\n left: 100%;\r\n width: 0.25rem;\r\n height: 0.5rem;\r\n translate: 0 -50%;\r\n clip-path: polygon(0 0, 100% 50%, 0 100%);\r\n }\r\n}\r\n\r\n/* =========================================\r\n States\r\n ========================================= */\r\n\r\n/* in-data-[disabled=true]:opacity-50 */\r\n[mono-slider][mono-disabled] > :is([mono-label-row], [mono-slider-field]) {\r\n opacity: 0.5;\r\n}\r\n[mono-slider][mono-disabled] [mono-slider-control] {\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n[mono-slider][mono-readonly] [mono-slider-control] {\r\n cursor: default;\r\n}\r\n\r\n[mono-slider][mono-dragging] [mono-slider-control] {\r\n cursor: grabbing;\r\n}\r\n\r\n/* =========================================\r\n Message — helper / validation text (mono-input's)\r\n ========================================= */\r\n\r\n:where([mono-slider]) > [mono-message-wrap]:not(:has([mono-message]:not([mono-empty]))) {\r\n display: none;\r\n}\r\n\r\n:where([mono-slider]) [mono-message] {\r\n font-size: var(--mono-input-message-font-size, var(--mono-text-sm));\r\n line-height: var(--mono-input-message-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-slider-muted);\r\n}\r\n:where([mono-slider]) [mono-message=\"invalid\"] { color: var(--destructive); }\r\n:where([mono-slider]) [mono-message=\"valid\"] { color: var(--success); }\r\n:where([mono-slider]) [mono-message=\"warning\"] { color: var(--warning); }\r\n\r\n[mono-slider][mono-validation-state=\"invalid\"] [mono-label] {\r\n color: var(--destructive);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-slider]) :is([mono-slider-thumb], [mono-slider-tooltip]) {\r\n transition: none;\r\n }\r\n}\r\n";
|
|
1016
1015
|
|
|
1017
1016
|
//#endregion
|
|
1018
1017
|
//#region src/components/slider/mono-slider.shadow.ts
|
package/dist/ui/shadow/switch.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-
|
|
1
|
+
import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-BaE9gN3C.js";
|
|
2
2
|
import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
|
|
3
|
-
import { t as MonoFormControlCore } from "../../form-control-core-
|
|
3
|
+
import { t as MonoFormControlCore } from "../../form-control-core-BbiACMtL.js";
|
|
4
4
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
5
5
|
import { property, state } from "lit/decorators.js";
|
|
6
6
|
import { ifDefined } from "lit/directives/if-defined.js";
|
package/dist/ui/shadow/table.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as monoPendingGrace, S as monoPendingActive, _ as buildSizeStyle, a as __decorate, c as defineHybridPropAlias, f as customElement, g as cssLengthToPx, h as ColumnAutoSize, l as defineHybridPropAliases, m as startMonoSizeAttributes, n as adoptIconStyles, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration, u as numberStringConverter, w as monoPhantomOptions, y as monoApplyPhantomOptions } from "../../hydration-flush-BaE9gN3C.js";
|
|
2
2
|
import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
|
|
3
3
|
import { t as isIconifyClass } from "../../icon-BM9N-jOt.js";
|
|
4
4
|
import { n as cssPart } from "../../css-class-B6Tc_MAx.js";
|
|
5
|
-
import { t as buildSizeStyle } from "../../css-size-DWAPgQdT.js";
|
|
6
5
|
import { n as detachEventHandlers, t as applyProps } from "../../element-props-xvw0EB7H.js";
|
|
7
|
-
import { t as input_css_raw_default } from "../../input.css_raw-
|
|
8
|
-
import { t as PopupPortalController } from "../../popup-portal-
|
|
6
|
+
import { t as input_css_raw_default } from "../../input.css_raw-Br-T8RWv.js";
|
|
7
|
+
import { t as PopupPortalController } from "../../popup-portal-CINuVjNY.js";
|
|
9
8
|
import { C as resolveSearchEntries, S as plainSearchColumns, _ as expandWildcard, b as isWildcardPattern, c as resolveErrorMessages, f as mergeSearchFields, l as setErrorMessages, n as describeError, r as errorStatus, s as normalizeError, t as DEFAULT_ERROR_MESSAGES, x as normalizeSearchExpr } from "../../normalize-error-BmLbgANw.js";
|
|
10
|
-
import { a as seedFromRanges, i as minimize, n as buildDateTree, o as setAllChecked, r as checkState, s as setChecked, t as monoDataGrid } from "../../mono-data-grid-
|
|
11
|
-
import { n as captureLightSlots, r as placeLightSlots } from "../../light-slots-
|
|
9
|
+
import { a as seedFromRanges, i as minimize, n as buildDateTree, o as setAllChecked, r as checkState, s as setChecked, t as monoDataGrid } from "../../mono-data-grid-CZFjpnOD.js";
|
|
10
|
+
import { n as captureLightSlots, r as placeLightSlots } from "../../light-slots-_no0r2Z-.js";
|
|
12
11
|
import { t as checkbox_css_raw_default } from "../../checkbox.css_raw-AYtSbUtY.js";
|
|
13
|
-
import { a as buildGroups, c as isGroupNode, o as collectGroupPaths, s as flattenLeaves } from "../../data-source-read-
|
|
14
|
-
import { h as monoArraySource } from "../../data-source-options-
|
|
12
|
+
import { a as buildGroups, c as isGroupNode, o as collectGroupPaths, s as flattenLeaves } from "../../data-source-read-DTJ_Mnez.js";
|
|
13
|
+
import { h as monoArraySource } from "../../data-source-options-CS0w0wlO.js";
|
|
15
14
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
16
15
|
import { property, query, state } from "lit/decorators.js";
|
|
17
16
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
@@ -71,13 +70,32 @@ const MonoTableControllerCore = (superClass) => {
|
|
|
71
70
|
_subscribe() {
|
|
72
71
|
this._off?.();
|
|
73
72
|
detachEventHandlers(this);
|
|
73
|
+
this._lastStateKey = void 0;
|
|
74
74
|
this._off = this.dataGrid?.subscribe(() => {
|
|
75
|
+
if (this._stateUnchanged()) return;
|
|
75
76
|
this._scheduleApplyProps();
|
|
76
77
|
this.requestUpdate();
|
|
77
78
|
});
|
|
78
79
|
this._scheduleApplyProps();
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
82
|
+
* What this element renders from the CONTROLLER, as a flat list — or `undefined` (the
|
|
83
|
+
* default) for "re-render on every notify", which is what every element did.
|
|
84
|
+
*
|
|
85
|
+
* An element that defines it skips a notify whose key equals the last one. Worth it for the
|
|
86
|
+
* per-row elements: every `<mono-table-checkbox>` re-rendered on every notify (a load flag, a
|
|
87
|
+
* summary, another row's tick), N updates for a change that moves one box. Its own props are
|
|
88
|
+
* unaffected — a Lit property change still updates it the normal way.
|
|
89
|
+
*/
|
|
90
|
+
_stateKey() {}
|
|
91
|
+
_stateUnchanged() {
|
|
92
|
+
const key = this._stateKey();
|
|
93
|
+
if (!key) return false;
|
|
94
|
+
const last = this._lastStateKey;
|
|
95
|
+
this._lastStateKey = key;
|
|
96
|
+
return !!last && last.length === key.length && key.every((v, i) => Object.is(v, last[i]));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
81
99
|
* Drive the apply from `update()` as well as `_subscribe()`.
|
|
82
100
|
*
|
|
83
101
|
* `mono-table-paging` and `mono-table-loading` REPLACE `_subscribe` without
|
|
@@ -1708,7 +1726,7 @@ const MonoTablePagingCore = (superClass) => {
|
|
|
1708
1726
|
this._off?.();
|
|
1709
1727
|
this._off = this.dataGrid?.subscribe(() => {
|
|
1710
1728
|
this.requestUpdate();
|
|
1711
|
-
if (this.type === "virtual-scroll") this.
|
|
1729
|
+
if (this.type === "virtual-scroll") this._scheduleScroll();
|
|
1712
1730
|
});
|
|
1713
1731
|
}
|
|
1714
1732
|
_scrollActive() {
|
|
@@ -1806,8 +1824,11 @@ const MonoTablePagingCore = (superClass) => {
|
|
|
1806
1824
|
const rh = Math.max(1, Number(this.rowHeight) || 44);
|
|
1807
1825
|
const over = Math.max(0, Math.floor(Number(this.overscan) || 0));
|
|
1808
1826
|
const loaded = grid.loadedCount;
|
|
1809
|
-
|
|
1810
|
-
|
|
1827
|
+
const first = Math.floor(el.scrollTop / rh);
|
|
1828
|
+
const last = Math.ceil((el.scrollTop + el.clientHeight) / rh);
|
|
1829
|
+
const stride = Math.max(1, over);
|
|
1830
|
+
let start = Math.floor(first / stride) * stride - over;
|
|
1831
|
+
let end = Math.ceil(last / stride) * stride + over;
|
|
1811
1832
|
start = Math.max(0, start);
|
|
1812
1833
|
end = Math.min(loaded, Math.max(start, end));
|
|
1813
1834
|
const padTop = start * rh;
|
|
@@ -2247,6 +2268,8 @@ const MonoTableThCore = (superClass) => {
|
|
|
2247
2268
|
this._tree = [];
|
|
2248
2269
|
this._expanded = /* @__PURE__ */ new Set();
|
|
2249
2270
|
this._exclusiveWarned = false;
|
|
2271
|
+
this._lastLoaded = 0;
|
|
2272
|
+
this._sizeSig = [];
|
|
2250
2273
|
this._seededSort = false;
|
|
2251
2274
|
this._filterOpen = false;
|
|
2252
2275
|
this._values = [];
|
|
@@ -2255,7 +2278,11 @@ const MonoTableThCore = (superClass) => {
|
|
|
2255
2278
|
this._valuesError = false;
|
|
2256
2279
|
this._search = "";
|
|
2257
2280
|
this._fromIcon = false;
|
|
2258
|
-
defineHybridPropAliases(this, [
|
|
2281
|
+
defineHybridPropAliases(this, [
|
|
2282
|
+
"editableTrigger",
|
|
2283
|
+
"minWidth",
|
|
2284
|
+
"maxWidth"
|
|
2285
|
+
]);
|
|
2259
2286
|
}
|
|
2260
2287
|
/** The sort config as an object: `true` → `{}`, `false` → `undefined`. */
|
|
2261
2288
|
get _sortObj() {
|
|
@@ -2267,9 +2294,12 @@ const MonoTableThCore = (superClass) => {
|
|
|
2267
2294
|
connectedCallback() {
|
|
2268
2295
|
super.connectedCallback();
|
|
2269
2296
|
this._register();
|
|
2297
|
+
if (!isServer) startMonoSizeAttributes();
|
|
2270
2298
|
}
|
|
2271
2299
|
disconnectedCallback() {
|
|
2272
2300
|
this.dataGrid?.unregisterColumn(this);
|
|
2301
|
+
this._autoSize?.stop();
|
|
2302
|
+
this._sizeSig = [];
|
|
2273
2303
|
super.disconnectedCallback();
|
|
2274
2304
|
}
|
|
2275
2305
|
willUpdate(changed) {
|
|
@@ -2281,6 +2311,47 @@ const MonoTableThCore = (superClass) => {
|
|
|
2281
2311
|
this.dataGrid.registerColumn(this);
|
|
2282
2312
|
this._seedSort();
|
|
2283
2313
|
}
|
|
2314
|
+
/**
|
|
2315
|
+
* `width="auto"` → hand the column to the auto-sizer (re-run on every update: each controller
|
|
2316
|
+
* notify lands here). A fixed width → written as before, and an auto-sizer left over from an
|
|
2317
|
+
* earlier `'auto'` is stopped with its px cleared. The bounds go onto the cell either way —
|
|
2318
|
+
* the auto-sizer clamps with them, an auto-layout table honours them.
|
|
2319
|
+
*/
|
|
2320
|
+
_syncWidth(cell) {
|
|
2321
|
+
if (String(this.width ?? "").trim().toLowerCase() === "auto") {
|
|
2322
|
+
const fresh = !this._autoSize;
|
|
2323
|
+
const sizer = this._autoSize ??= new ColumnAutoSize(this);
|
|
2324
|
+
const grid = this.dataGrid;
|
|
2325
|
+
const loaded = grid?.loadedCount ?? 0;
|
|
2326
|
+
if (loaded < this._lastLoaded) sizer.resetFloor();
|
|
2327
|
+
this._lastLoaded = loaded;
|
|
2328
|
+
const sig = [
|
|
2329
|
+
this.minWidth,
|
|
2330
|
+
this.maxWidth,
|
|
2331
|
+
grid?.scrollMode,
|
|
2332
|
+
loaded,
|
|
2333
|
+
this.caption,
|
|
2334
|
+
cell.closest("table")
|
|
2335
|
+
];
|
|
2336
|
+
const moved = sig.length !== this._sizeSig.length || sig.some((v, i) => !Object.is(v, this._sizeSig[i]));
|
|
2337
|
+
if (fresh || moved) {
|
|
2338
|
+
this._sizeSig = sig;
|
|
2339
|
+
sizer.min = cssLengthToPx(this.minWidth ?? null, cell);
|
|
2340
|
+
sizer.max = cssLengthToPx(this.maxWidth ?? null, cell);
|
|
2341
|
+
sizer.growOnly = grid?.scrollMode === "virtual";
|
|
2342
|
+
sizer.schedule();
|
|
2343
|
+
}
|
|
2344
|
+
} else {
|
|
2345
|
+
if (this._autoSize) {
|
|
2346
|
+
this._autoSize.stop(true);
|
|
2347
|
+
this._autoSize = void 0;
|
|
2348
|
+
this._sizeSig = [];
|
|
2349
|
+
}
|
|
2350
|
+
if (this.width != null && this.width !== "") cell.style.width = toCssSize(this.width);
|
|
2351
|
+
}
|
|
2352
|
+
cell.style.minWidth = this.minWidth != null && this.minWidth !== "" ? toCssSize(this.minWidth) : "";
|
|
2353
|
+
cell.style.maxWidth = this.maxWidth != null && this.maxWidth !== "" ? toCssSize(this.maxWidth) : "";
|
|
2354
|
+
}
|
|
2284
2355
|
/** Apply `sort.order` once, unless THIS column is already sorted (don't fight a user sort). */
|
|
2285
2356
|
_seedSort() {
|
|
2286
2357
|
if (this._seededSort) return;
|
|
@@ -2297,7 +2368,7 @@ const MonoTableThCore = (superClass) => {
|
|
|
2297
2368
|
const cell = this.closest("th, td");
|
|
2298
2369
|
if (cell) {
|
|
2299
2370
|
cell.setAttribute("aria-sort", ariaSort(this._current));
|
|
2300
|
-
|
|
2371
|
+
this._syncWidth(cell);
|
|
2301
2372
|
if (this.height != null && this.height !== "") cell.style.height = toCssSize(this.height);
|
|
2302
2373
|
cell.style.textAlign = this.align ?? "";
|
|
2303
2374
|
}
|
|
@@ -2686,8 +2757,7 @@ const MonoTableThCore = (superClass) => {
|
|
|
2686
2757
|
* the table body — the checkbox still carries the RAW value, so
|
|
2687
2758
|
* `setColumnFilter` keeps matching the real data.
|
|
2688
2759
|
*/
|
|
2689
|
-
_display(value) {
|
|
2690
|
-
const map = this.dataGrid?.columnMap?.(this.field);
|
|
2760
|
+
_display(value, map = this.dataGrid?.columnMap?.(this.field)) {
|
|
2691
2761
|
if (map) try {
|
|
2692
2762
|
const mapped = map(value, { [this.field]: value }, 0);
|
|
2693
2763
|
if (mapped != null && mapped !== "") return String(mapped);
|
|
@@ -2707,7 +2777,8 @@ const MonoTableThCore = (superClass) => {
|
|
|
2707
2777
|
_filteredValues() {
|
|
2708
2778
|
const q = this._search.trim().toLowerCase();
|
|
2709
2779
|
if (!q) return this._values;
|
|
2710
|
-
|
|
2780
|
+
const map = this.dataGrid?.columnMap?.(this.field);
|
|
2781
|
+
return this._values.filter((v) => this._display(v.value, map).toLowerCase().includes(q));
|
|
2711
2782
|
}
|
|
2712
2783
|
_toggleValue(key, on) {
|
|
2713
2784
|
const next = new Set(this._checked);
|
|
@@ -2826,10 +2897,12 @@ const MonoTableThCore = (superClass) => {
|
|
|
2826
2897
|
`;
|
|
2827
2898
|
}
|
|
2828
2899
|
_renderFilterPanel() {
|
|
2829
|
-
const
|
|
2900
|
+
const open = this._filterOpen;
|
|
2901
|
+
const list = open ? this._filteredValues() : [];
|
|
2902
|
+
const map = open ? this.dataGrid?.columnMap?.(this.field) : void 0;
|
|
2830
2903
|
const allChecked = list.length > 0 && list.every((v) => this._checked.has(String(v.value)));
|
|
2831
2904
|
const multi = this._filterMulti;
|
|
2832
|
-
const filteredColumns = this.dataGrid?.filteredColumns?.() ?? [];
|
|
2905
|
+
const filteredColumns = open ? this.dataGrid?.filteredColumns?.() ?? [] : [];
|
|
2833
2906
|
const otherFiltered = filteredColumns.filter((f) => f !== this.field).length;
|
|
2834
2907
|
const clearAllCount = otherFiltered + (filteredColumns.includes(this.field) ? 1 : 0);
|
|
2835
2908
|
return html`
|
|
@@ -2853,7 +2926,7 @@ const MonoTableThCore = (superClass) => {
|
|
|
2853
2926
|
</div>
|
|
2854
2927
|
`}
|
|
2855
2928
|
<div class="mono-th-filter-list" mono-th-filter-list>
|
|
2856
|
-
${this._valuesLoading ? html`<div class="mono-th-filter-msg" mono-th-filter-msg><span class="mono-th-filter-spin" mono-th-filter-spin></span>Loading…</div>` : this._valuesError ? this._renderMessage("Failed to load values.") : this._hf.date ? this._tree.length === 0 ? this._renderMessage("No values.") : this._renderDateTree() : list.length === 0 ? this._renderMessage("No values.") : html`
|
|
2929
|
+
${!open ? nothing : this._valuesLoading ? html`<div class="mono-th-filter-msg" mono-th-filter-msg><span class="mono-th-filter-spin" mono-th-filter-spin></span>Loading…</div>` : this._valuesError ? this._renderMessage("Failed to load values.") : this._hf.date ? this._tree.length === 0 ? this._renderMessage("No values.") : this._renderDateTree() : list.length === 0 ? this._renderMessage("No values.") : html`
|
|
2857
2930
|
<label class="mono-th-check mono-th-check-all" mono-th-check mono-th-check-all>
|
|
2858
2931
|
<input
|
|
2859
2932
|
type="checkbox"
|
|
@@ -2874,7 +2947,7 @@ const MonoTableThCore = (superClass) => {
|
|
|
2874
2947
|
@change=${(e) => this._toggleValue(key, e.target.checked)}
|
|
2875
2948
|
/>
|
|
2876
2949
|
<span class="mono-th-check-box" mono-th-check-box></span>
|
|
2877
|
-
<span class="mono-th-check-label" mono-th-check-label>${this._display(v.value)}</span>
|
|
2950
|
+
<span class="mono-th-check-label" mono-th-check-label>${this._display(v.value, map)}</span>
|
|
2878
2951
|
<span class="mono-th-check-count" mono-th-check-count>${v.count}</span>
|
|
2879
2952
|
</label>
|
|
2880
2953
|
`;
|
|
@@ -2937,6 +3010,8 @@ const MonoTableThCore = (superClass) => {
|
|
|
2937
3010
|
__decorate([state()], MonoTableThCoreClass.prototype, "_tree", void 0);
|
|
2938
3011
|
__decorate([state()], MonoTableThCoreClass.prototype, "_expanded", void 0);
|
|
2939
3012
|
__decorate([property()], MonoTableThCoreClass.prototype, "width", void 0);
|
|
3013
|
+
__decorate([property({ attribute: "min-width" })], MonoTableThCoreClass.prototype, "minWidth", void 0);
|
|
3014
|
+
__decorate([property({ attribute: "max-width" })], MonoTableThCoreClass.prototype, "maxWidth", void 0);
|
|
2940
3015
|
__decorate([property({ reflect: true })], MonoTableThCoreClass.prototype, "align", void 0);
|
|
2941
3016
|
__decorate([property()], MonoTableThCoreClass.prototype, "height", void 0);
|
|
2942
3017
|
__decorate([state()], MonoTableThCoreClass.prototype, "_filterOpen", void 0);
|
|
@@ -4600,6 +4675,24 @@ const MonoTableCheckboxCore = (superClass) => {
|
|
|
4600
4675
|
if (this._checked) row?.setAttribute("mono-selected", "");
|
|
4601
4676
|
else row?.removeAttribute("mono-selected");
|
|
4602
4677
|
}
|
|
4678
|
+
/**
|
|
4679
|
+
* All this box draws from the controller: ticked, mixed (select-all), and the drain's
|
|
4680
|
+
* `pending`. A notify that moves none of them — another row's tick, a load flag, a summary —
|
|
4681
|
+
* no longer re-renders every row's checkbox (see the base's `_stateKey`).
|
|
4682
|
+
*/
|
|
4683
|
+
_stateKey() {
|
|
4684
|
+
return this.type === "all" ? [
|
|
4685
|
+
this.type,
|
|
4686
|
+
this._checked,
|
|
4687
|
+
this._indeterminate,
|
|
4688
|
+
this._pending
|
|
4689
|
+
] : [
|
|
4690
|
+
this.type,
|
|
4691
|
+
this._checked,
|
|
4692
|
+
this._pending,
|
|
4693
|
+
this.item
|
|
4694
|
+
];
|
|
4695
|
+
}
|
|
4603
4696
|
/** Whether this box is ticked right now. */
|
|
4604
4697
|
get _checked() {
|
|
4605
4698
|
const check = this.dataGrid?.check?.();
|
package/dist/ui/shadow/tabs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as __decorate, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, o as arrayHasChanged, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-
|
|
1
|
+
import { a as __decorate, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, o as arrayHasChanged, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-BaE9gN3C.js";
|
|
2
2
|
import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
|
|
3
3
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
4
4
|
import { ref } from "lit/directives/ref.js";
|