@m3e/web 2.5.1 → 2.5.3
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/all.js +1046 -10
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +156 -43
- package/dist/all.min.js.map +1 -1
- package/dist/breadcrumb.js +1 -0
- package/dist/breadcrumb.js.map +1 -1
- package/dist/breadcrumb.min.js.map +1 -1
- package/dist/calendar.js +18 -2
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.min.js +5 -5
- package/dist/calendar.min.js.map +1 -1
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +333 -333
- package/dist/custom-elements.json +3863 -3780
- package/dist/datepicker.js +6 -0
- package/dist/datepicker.js.map +1 -1
- package/dist/datepicker.min.js +1 -1
- package/dist/datepicker.min.js.map +1 -1
- package/dist/html-custom-data.json +139 -139
- package/dist/list.js +1 -1
- package/dist/list.js.map +1 -1
- package/dist/list.min.js +1 -1
- package/dist/list.min.js.map +1 -1
- package/dist/nav-bar.js +7 -4
- package/dist/nav-bar.js.map +1 -1
- package/dist/nav-bar.min.js +1 -1
- package/dist/nav-bar.min.js.map +1 -1
- package/dist/search.js +2 -2
- package/dist/search.js.map +1 -1
- package/dist/search.min.js +1 -1
- package/dist/search.min.js.map +1 -1
- package/dist/slider.js +2 -0
- package/dist/slider.js.map +1 -1
- package/dist/slider.min.js.map +1 -1
- package/dist/src/breadcrumb/BreadcrumbItemElement.d.ts +1 -0
- package/dist/src/breadcrumb/BreadcrumbItemElement.d.ts.map +1 -1
- package/dist/src/calendar/CalendarElement.d.ts.map +1 -1
- package/dist/src/calendar/MonthViewElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/SlideElement.d.ts +2 -0
- package/dist/src/core/shared/primitives/SlideElement.d.ts.map +1 -1
- package/dist/src/datepicker/DatepickerElement.d.ts.map +1 -1
- package/dist/src/list/ListItemButtonElement.d.ts +0 -5
- package/dist/src/list/ListItemButtonElement.d.ts.map +1 -1
- package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
- package/dist/src/slider/SliderElement.d.ts +2 -0
- package/dist/src/slider/SliderElement.d.ts.map +1 -1
- package/dist/src/theme/ThemeElement.d.ts +2 -0
- package/dist/src/theme/ThemeElement.d.ts.map +1 -1
- package/dist/src/theme/getColorFromImage.d.ts +12 -0
- package/dist/src/theme/getColorFromImage.d.ts.map +1 -0
- package/dist/src/theme/index.d.ts +1 -0
- package/dist/src/theme/index.d.ts.map +1 -1
- package/dist/theme.js +1007 -1
- package/dist/theme.js.map +1 -1
- package/dist/theme.min.js +133 -20
- package/dist/theme.min.js.map +1 -1
- package/dist/toc.js +1 -1
- package/dist/toc.js.map +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toc.min.js.map +1 -1
- package/package.json +1 -1
package/dist/slider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sources":["../../src/slider/SliderThumbElement.ts","../../src/slider/SliderElement.ts"],"sourcesContent":["import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n customElement,\r\n DesignToken,\r\n Dirty,\r\n Disabled,\r\n Focusable,\r\n FormAssociated,\r\n formValue,\r\n M3eFocusRingElement,\r\n Role,\r\n Touched,\r\n} from \"@m3e/web/core\";\r\n\r\n/**\r\n * A thumb used to select a value in a slider.\r\n *\r\n * @description\r\n * The `m3e-slider-thumb` component is used within a `m3e-slider` to represent and select a specific value.\r\n * This component supports continuous and discrete input, form association, and accessibility semantics.\r\n * It emits `input` and `change` events to reflect value updates.\r\n *\r\n * @example\r\n * The following example illustrates a labelled slider with thumb used to select a single numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"50\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @example\r\n * The next example illustrates a labelled range slider with two thumbs used to select a minimum and maximum numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"25\"></m3e-slider-thumb>\r\n * <m3e-slider-thumb value=\"75\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @tag m3e-slider-thumb\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr value - The value of the thumb.\r\n *\r\n * @fires input - Emitted when the value changes.\r\n * @fires change - Emitted when the value changes.\r\n * @fires click - Emitted when the element is clicked.\r\n *\r\n * @cssprop --m3e-slider-thumb-width - Width of the slider thumb.\r\n * @cssprop --m3e-slider-thumb-padding - Horizontal padding around the thumb.\r\n * @cssprop --m3e-slider-thumb-color - Active color of the slider thumb when enabled.\r\n * @cssprop --m3e-slider-thumb-pressed-width - Width of the thumb when pressed.\r\n * @cssprop --m3e-slider-thumb-disabled-color - Color of the thumb when disabled.\r\n * @cssprop --m3e-slider-thumb-disabled-opacity - Opacity of the thumb when disabled.\r\n * @cssprop --m3e-slider-label-width - Width of the floating label above the thumb.\r\n * @cssprop --m3e-slider-label-container-color - Background color of the label container.\r\n * @cssprop --m3e-slider-label-color - Text color of the label.\r\n * @cssprop --m3e-slider-label-font-size - Font size of the label text.\r\n * @cssprop --m3e-slider-label-font-weight - Font weight of the label text.\r\n * @cssprop --m3e-slider-label-line-height - Line height of the label text.\r\n * @cssprop --m3e-slider-label-tracking - Letter spacing of the label text.\r\n */\r\n@customElement(\"m3e-slider-thumb\")\r\nexport class M3eSliderThumbElement extends Dirty(\r\n Touched(FormAssociated(Focusable(Disabled(AttachInternals(Role(LitElement, \"slider\")))))),\r\n) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n box-sizing: border-box;\r\n position: absolute;\r\n outline: none;\r\n top: 0;\r\n bottom: 0;\r\n border-radius: var(--m3e-slider-thumb-shape, ${DesignToken.shape.corner.full});\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n .base {\r\n box-sizing: border-box;\r\n vertical-align: middle;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: inherit;\r\n }\r\n .touch {\r\n position: absolute;\r\n height: 3rem;\r\n left: 0;\r\n right: 0;\r\n touch-action: none;\r\n }\r\n .wrapper {\r\n display: inline-flex;\r\n justify-content: center;\r\n height: 100%;\r\n border-radius: inherit;\r\n width: calc(var(--m3e-slider-thumb-width, 0.25rem) + calc(var(--m3e-slider-thumb-padding, 0.375em) * 2));\r\n }\r\n .focus-ring {\r\n top: calc(0px - var(--m3e-focus-ring-thickness, 3px));\r\n bottom: calc(0px - var(--m3e-focus-ring-thickness, 3px));\r\n left: var(--m3e-focus-ring-thickness, 3px);\r\n right: var(--m3e-focus-ring-thickness, 3px);\r\n }\r\n .label {\r\n user-select: none;\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n visibility: var(--_slider-label-visibility, hidden);\r\n opacity: var(--_slider-label-opacity, 0);\r\n transform: var(--_slider-label-transform, scale(0));\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard}, \r\n transform ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n width: var(--m3e-slider-label-width, 3rem);\r\n height: var(--_m3e-slider-label-height, 2.75rem);\r\n top: calc(0px - var(--_m3e-slider-label-height, 2.75rem) - var(--_m3e-slider-label-margin, 0.25rem));\r\n inset-inline-start: calc(0px - 100%);\r\n border-radius: var(--m3e-slider-label-shape, ${DesignToken.shape.corner.full});\r\n background-color: var(--m3e-slider-label-container-color, ${DesignToken.color.inverseSurface});\r\n color: var(--m3e-slider-label-color, ${DesignToken.color.inverseOnSurface});\r\n font-size: var(--m3e-slider-label-font-size, ${DesignToken.typescale.standard.label.medium.fontSize});\r\n font-weight: var(--m3e-slider-label-font-weight, ${DesignToken.typescale.standard.label.medium.fontWeight});\r\n line-height: var(--m3e-slider-label-line-height, ${DesignToken.typescale.standard.label.medium.lineHeight});\r\n letter-spacing: var(--m3e-slider-label-tracking, ${DesignToken.typescale.standard.label.medium.tracking});\r\n }\r\n @starting-style {\r\n .label {\r\n opacity: 0;\r\n transform: scale(0);\r\n }\r\n }\r\n .handle {\r\n height: 100%;\r\n width: var(--m3e-slider-thumb-width, 0.25rem);\r\n border-radius: inherit;\r\n transition: ${unsafeCSS(`width ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard}`)};\r\n }\r\n :host(:active:not([aria-disabled=\"true\"])) .handle {\r\n width: var(--m3e-slider-thumb-pressed-width, 2px);\r\n }\r\n :host(:not([aria-disabled=\"true\"])) .handle {\r\n background-color: var(--m3e-slider-thumb-color, ${DesignToken.color.primary});\r\n }\r\n :host([aria-disabled=\"true\"]) .handle {\r\n opacity: var(--m3e-slider-thumb-disabled-opacity, 38%);\r\n background-color: var(--m3e-slider-thumb-disabled-color, ${DesignToken.color.onSurface});\r\n }\r\n @media (prefers-reduced-motion) {\r\n .label {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .label {\r\n forced-color-adjust: none;\r\n background-color: CanvasText;\r\n color: Canvas;\r\n }\r\n :host(:not([aria-disabled=\"true\"])) .handle {\r\n background-color: CanvasText;\r\n }\r\n :host([aria-disabled=\"true\"]) .handle {\r\n opacity: unset;\r\n background-color: GrayText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @query(\".focus-ring\")\r\n private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n /**\r\n * The value of the thumb.\r\n * @default null\r\n */\r\n @property({ type: Number, reflect: true }) value: number | null = null;\r\n\r\n /** @inheritdoc */\r\n override get [formValue](): string | File | FormData | null {\r\n return this.value?.toString() ?? null;\r\n }\r\n\r\n /** @internal */\r\n get #labelText(): string {\r\n return this.closest(\"m3e-slider\")?.displayWith?.(this.value) ?? this.value?.toString() ?? \"\";\r\n }\r\n\r\n /** @inheritdoc */\r\n override focus(options?: FocusOptions): void {\r\n if (this._focusRing) {\r\n this._focusRing.disabled = true;\r\n }\r\n\r\n super.focus(options);\r\n\r\n if (this._focusRing) {\r\n this._focusRing.disabled = this.disabled;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n this._focusRing?.attach(this);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"value\")) {\r\n this.dispatchEvent(new Event(\"value-change\", { bubbles: true }));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"label\" aria-hidden=\"true\">${this.#labelText}</div>\r\n <div class=\"base\">\r\n <m3e-focus-ring class=\"focus-ring\" ?disabled=\"${this.disabled}\"></m3e-focus-ring>\r\n <div class=\"touch\" aria-hidden=\"true\"></div>\r\n <div class=\"wrapper\">\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slider-thumb\": M3eSliderThumbElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property, query, state } from \"lit/decorators.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport {\r\n addCustomState,\r\n AttachInternals,\r\n customElement,\r\n deleteCustomState,\r\n DesignToken,\r\n hasCustomState,\r\n prefersReducedMotion,\r\n ResizeController,\r\n safeStyleMap,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { M3eSliderThumbElement } from \"./SliderThumbElement\";\r\nimport { SliderSize } from \"./SliderSize\";\r\n\r\n/**\r\n * Allows for the selection of numeric values from a range.\r\n *\r\n * @description\r\n * The `m3e-slider` component enables users to select a numeric value from a continuous or discrete range.\r\n * Designed according to Material 3 principles, it supports labeled value indicators, tick marks, and\r\n * snapping behavior.\r\n *\r\n * @example\r\n * The following example illustrates a labelled slider with thumb used to select a single numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"50\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @example\r\n * The next example illustrates a labelled range slider with two thumbs used to select a minimum and maximum numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"25\"></m3e-slider-thumb>\r\n * <m3e-slider-thumb value=\"75\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @tag m3e-slider\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr discrete - Whether to show tick marks.\r\n * @attr labelled - Whether to show value labels when activated.\r\n * @attr max - The maximum allowable value.\r\n * @attr min - The minimum allowable value.\r\n * @attr step - The value at which the thumb will snap.\r\n * @attr size - The size of the slider.\r\n *\r\n * @cssprop --m3e-slider-min-width - Minimum inline size of the slider host.\r\n * @cssprop --m3e-slider-small-height - Height of the slider when size is small or extra-small.\r\n * @cssprop --m3e-slider-medium-height - Height of the slider when size is medium.\r\n * @cssprop --m3e-slider-large-height - Height of the slider when size is large.\r\n * @cssprop --m3e-slider-extra-large-height - Height of the slider when size is extra-large.\r\n * @cssprop --m3e-slider-small-active-track-shape - Corner shape of the active track for small sliders.\r\n * @cssprop --m3e-slider-small-inactive-active-track-start-shape - Corner shape of the inactive track start for small sliders.\r\n * @cssprop --m3e-slider-small-inactive-track-end-shape - Corner shape of the inactive track end for small sliders.\r\n * @cssprop --m3e-slider-medium-active-track-shape - Corner shape of the active track for medium sliders.\r\n * @cssprop --m3e-slider-medium-inactive-active-track-start-shape - Corner shape of the inactive track start for medium sliders.\r\n * @cssprop --m3e-slider-medium-inactive-track-end-shape - Corner shape of the inactive track end for medium sliders.\r\n * @cssprop --m3e-slider-large-active-track-shape - Corner shape of the active track for large sliders.\r\n * @cssprop --m3e-slider-large-inactive-active-track-start-shape - Corner shape of the inactive track start for large sliders.\r\n * @cssprop --m3e-slider-large-inactive-track-end-shape - Corner shape of the inactive track end for large sliders.\r\n * @cssprop --m3e-slider-extra-large-active-track-shape - Corner shape of the active track for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-large-inactive-active-track-start-shape - Corner shape of the inactive track start for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-large-inactive-track-end-shape - Corner shape of the inactive track end for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-small-track-height - Height of the track for extra-small sliders.\r\n * @cssprop --m3e-slider-small-track-height - Height of the track for small sliders.\r\n * @cssprop --m3e-slider-medium-track-height - Height of the track for medium sliders.\r\n * @cssprop --m3e-slider-large-track-height - Height of the track for large sliders.\r\n * @cssprop --m3e-slider-extra-large-track-height - Height of the track for extra-large sliders.\r\n * @cssprop --m3e-slider-tick-size - Size of each tick mark.\r\n * @cssprop --m3e-slider-tick-shape - Corner shape of each tick mark.\r\n * @cssprop --m3e-slider-inactive-track-color - Background color of the inactive track when enabled.\r\n * @cssprop --m3e-slider-disabled-inactive-track-color - Base color of the inactive track when disabled.\r\n * @cssprop --m3e-slider-disabled-inactive-track-opacity - Opacity of the inactive track when disabled.\r\n * @cssprop --m3e-slider-active-track-color - Background color of the active track when enabled.\r\n * @cssprop --m3e-slider-disabled-active-track-color - Base color of the active track when disabled.\r\n * @cssprop --m3e-slider-disabled-active-track-opacity - Opacity of the active track when disabled.\r\n * @cssprop --m3e-slider-tick-active-color - Color of active ticks when enabled.\r\n * @cssprop --m3e-slider-disabled-tick-active-color - Color of active ticks when disabled.\r\n * @cssprop --m3e-slider-tick-inactive-color - Color of inactive ticks when enabled.\r\n * @cssprop --m3e-slider-disabled-tick-inactive-color - Color of inactive ticks when disabled.\r\n */\r\n@customElement(\"m3e-slider\")\r\nexport class M3eSliderElement extends AttachInternals(LitElement) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-block;\r\n vertical-align: middle;\r\n min-inline-size: var(--m3e-slider-min-width, 12.5rem);\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n :host(:not([disabled])) {\r\n cursor: pointer;\r\n }\r\n :host([size=\"extra-small\"]),\r\n :host([size=\"small\"]) {\r\n height: var(--m3e-slider-small-height, 2.75rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"extra-small\"]) .base,\r\n :host(:not(:dir(rtl))[size=\"small\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${DesignToken.shape.corner.smallStart});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-small-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.smallStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-small-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.smallEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"extra-small\"]) .base,\r\n :host(:dir(rtl)[size=\"small\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${DesignToken.shape.corner.smallEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-small-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.smallEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-small-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.smallStart}\r\n );\r\n }\r\n :host([size=\"extra-small\"]) .track {\r\n height: calc(var(--m3e-slider-extra-small-track-height, 1rem));\r\n }\r\n :host([size=\"small\"]) .track {\r\n height: calc(var(--m3e-slider-small-track-height, 1.5rem));\r\n }\r\n :host([size=\"medium\"]) {\r\n height: var(--m3e-slider-medium-height, 3.25rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"medium\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-medium-active-track-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-medium-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-medium-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.mediumEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"medium\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-medium-active-track-shape, ${DesignToken.shape.corner.mediumEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-medium-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.mediumEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-medium-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n }\r\n :host([size=\"medium\"]) .track {\r\n height: var(--m3e-slider-medium-track-height, 2.5rem);\r\n }\r\n :host([size=\"large\"]) {\r\n height: var(--m3e-slider-large-height, 4.25rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"large\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${DesignToken.shape.corner.largeStart});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.largeStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.largeEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"large\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${DesignToken.shape.corner.largeEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.largeEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.largeStart}\r\n );\r\n }\r\n :host([size=\"large\"]) .track {\r\n height: var(--m3e-slider-large-track-height, 3.5rem);\r\n }\r\n :host([size=\"extra-large\"]) {\r\n height: var(--m3e-slider-extra-large-height, 6.75rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"extra-large\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-extra-large-active-track-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-extra-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-extra-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"extra-large\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-extra-large-active-track-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-extra-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-extra-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n }\r\n :host([size=\"extra-large\"]) .track {\r\n height: var(--m3e-slider-extra-large-track-height, 6rem);\r\n }\r\n :host(:state(-animating)) .track-active,\r\n :host(:state(-animating)) .track-inactive.start,\r\n :host(:state(-animating)) .track-inactive.end {\r\n transition: ${unsafeCSS(`margin-inline-start ${DesignToken.motion.spring.fastEffects},\r\n width ${DesignToken.motion.spring.fastEffects}`)};\r\n }\r\n .base {\r\n display: inline-flex;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: inherit;\r\n outline: none;\r\n touch-action: none;\r\n }\r\n .track {\r\n position: relative;\r\n flex: 1 1 auto;\r\n touch-action: none;\r\n }\r\n .track-inactive,\r\n .track-active {\r\n position: absolute;\r\n height: 100%;\r\n touch-action: none;\r\n }\r\n .track-active {\r\n margin-inline-start: var(--_slider-active-track-offset, 0px);\r\n width: var(--_slider-active-track-size, 0px);\r\n border-radius: var(--_slider-active-track-middle-shape, var(--_slider-active-track-shape));\r\n }\r\n .track-inactive.start {\r\n width: var(--_slider-inactive-track-before-size, 0px);\r\n border-radius: var(--_slider-inactive-track-start-shape);\r\n }\r\n .track-inactive.end {\r\n margin-inline-start: var(--_slider-inactive-track-after-offset, 0px);\r\n width: var(--_slider-inactive-track-after-size, 0px);\r\n border-radius: var(--_slider-inactive-track-end-shape);\r\n }\r\n .ticks {\r\n position: absolute;\r\n width: 100%;\r\n height: var(--m3e-slider-tick-size, 0.25rem);\r\n overflow: visible;\r\n touch-action: none;\r\n }\r\n .tick {\r\n position: absolute;\r\n top: 0;\r\n touch-action: none;\r\n inset-inline-start: calc(var(--m3e-slider-tick-size, 0.25rem) + calc(var(--m3e-slider-tick-size, 0.25rem) / 2));\r\n width: var(--m3e-slider-tick-size, 0.25rem);\r\n height: var(--m3e-slider-tick-size, 0.25rem);\r\n border-radius: var(--m3e-slider-tick-shape, ${DesignToken.shape.corner.full});\r\n }\r\n :host(:not([disabled])) .track-inactive {\r\n background-color: var(--m3e-slider-inactive-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([disabled]) .track-inactive {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-slider-disabled-inactive-track-color, ${DesignToken.color.onSurface})\r\n var(--m3e-slider-disabled-inactive-track-opacity, 12%),\r\n transparent\r\n );\r\n }\r\n :host(:not([disabled])) .track-active {\r\n background-color: var(--m3e-slider-active-track-color, ${DesignToken.color.primary});\r\n }\r\n :host([disabled]) .track-active {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-slider-disabled-active-track-color, ${DesignToken.color.onSurface})\r\n var(--m3e-slider-disabled-active-track-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host(:not([disabled])) .tick.active {\r\n background-color: var(--m3e-slider-tick-active-color, ${DesignToken.color.onPrimary});\r\n }\r\n :host([disabled]) .tick.active {\r\n background-color: var(--m3e-slider-disabled-tick-active-color, ${DesignToken.color.inverseOnSurface});\r\n }\r\n :host(:not([disabled])) .tick.inactive {\r\n background-color: var(--m3e-slider-tick-inactive-color, ${DesignToken.color.onSecondaryContainer});\r\n }\r\n :host([disabled]) .tick.inactive {\r\n background-color: var(--m3e-slider-disabled-tick-inactive-color, ${DesignToken.color.onSurface});\r\n }\r\n :host(:not([discrete])) .tick.active {\r\n display: none;\r\n }\r\n :host(:hover[labelled]) .base,\r\n :host(:focus-within[labelled]) .base {\r\n --_slider-label-visibility: visible;\r\n --_slider-label-opacity: 1;\r\n --_slider-label-transform: scale(1);\r\n }\r\n @media (forced-colors: active) {\r\n :host(:not([disabled])) .track-inactive {\r\n background-color: unset;\r\n }\r\n :host(:not([disabled])) .base.range .track-inactive.start,\r\n :host(:not([disabled])) .track-inactive.end {\r\n border: 1px solid CanvasText;\r\n box-sizing: border-box;\r\n }\r\n :host(:not([disabled])) .tick.inactive {\r\n background-color: CanvasText;\r\n }\r\n :host(:not([disabled])) .tick.active {\r\n background-color: Canvas;\r\n }\r\n :host(:not([disabled])) .track-active {\r\n background-color: CanvasText;\r\n }\r\n :host([disabled]) .base.range .track-inactive.start,\r\n :host([disabled]) .track-inactive.end {\r\n border: 1px solid GrayText;\r\n box-sizing: border-box;\r\n }\r\n :host([disabled]) .track-active {\r\n background-color: GrayText;\r\n }\r\n :host([disabled]) .tick.inactive {\r\n background-color: GrayText;\r\n }\r\n :host([disabled]) .tick.active {\r\n background-color: Canvas;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #directionalitySubscription?: () => void;\r\n\r\n /** @private */\r\n @query(\".base\") private readonly _base?: HTMLElement;\r\n\r\n /** @private */\r\n @state() private _ticks = new Array<{ value: number; active: boolean }>();\r\n\r\n /** @private */ #thumbs = new Array<M3eSliderThumbElement>();\r\n /** @private */ #activeThumb?: M3eSliderThumbElement;\r\n /** @private */ #cachedWidth = 0;\r\n /** @private */ #cachedThumbWidth = 0;\r\n /** @private */ #cachedLeft = 0;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, { callback: () => this.#updateDimensions(true) });\r\n }\r\n\r\n /**\r\n * The size of the slider.\r\n * @default \"extra-small\"\r\n */\r\n @property({ reflect: true }) size: SliderSize = \"extra-small\";\r\n\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Whether to show tick marks.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) discrete = false;\r\n\r\n /**\r\n * The minimum allowable value.\r\n * @default 0\r\n */\r\n @property({ type: Number }) min = 0;\r\n\r\n /**\r\n * The maximum allowable value.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * The value at which the thumb will snap.\r\n * @default 1\r\n */\r\n @property({ type: Number }) step = 1;\r\n\r\n /**\r\n * Whether to show value labels when activated.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) labelled = false;\r\n\r\n /** The function used to format display values. */\r\n @property({ attribute: false }) displayWith: ((value: number | null) => string) | null = null;\r\n\r\n /** The thumbs used to select values. */\r\n get thumbs(): readonly M3eSliderThumbElement[] {\r\n return this.#thumbs;\r\n }\r\n\r\n /** Whether the slider is a range slider. */\r\n get isRange(): boolean {\r\n return this.#thumbs.length > 1;\r\n }\r\n\r\n /** The thumb used to select a value. */\r\n get thumb(): M3eSliderThumbElement | null {\r\n return this.#thumbs[0] ?? null;\r\n }\r\n\r\n /** The thumb used to select the lower value of a range slider. */\r\n get lowerThumb(): M3eSliderThumbElement | null {\r\n return this.thumb;\r\n }\r\n\r\n /** The thumb used to select the upper value of a range slider. */\r\n get upperThumb(): M3eSliderThumbElement | null {\r\n return this.#thumbs[1] ?? null;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.#directionalitySubscription = M3eDirectionality.observe(() => {\r\n this.#updateDimensions(true);\r\n this.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#directionalitySubscription?.();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"disabled\")) {\r\n this.#thumbs.forEach((x) => (x.disabled = this.disabled));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div\r\n class=\"base\"\r\n tabindex=\"${ifDefined(!this.disabled ? \"-1\" : undefined)}\"\r\n @pointerdown=\"${this.#handlePointerDown}\"\r\n @pointermove=\"${this.#handlePointerMove}\"\r\n @pointerup=\"${this.#handlePointerUp}\"\r\n @keydown=\"${this.#handleKeyDown}\"\r\n @value-change=\"${this.#handleThumbChange}\"\r\n >\r\n <div class=\"track\" aria-hidden=\"true\">\r\n <div class=\"track-inactive start\"></div>\r\n <div class=\"track-active\"></div>\r\n <div class=\"track-inactive end\"></div>\r\n </div>\r\n <div class=\"ticks\" aria-hidden=\"true\">${this._ticks.map((x) => this.#renderTick(x))}</div>\r\n <slot @slotchange=\"${this.#handleSlotChange}\"></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderTick(tick: { value: number; active: boolean }) {\r\n return html`<div\r\n class=\"tick ${tick.active ? \"active\" : \"inactive\"}\"\r\n style=\"${safeStyleMap({\r\n transform: `translate(${M3eDirectionality.current === \"rtl\" ? -this.#pointFromValue(tick.value) : this.#pointFromValue(tick.value)}px, 0)`,\r\n })}\"\r\n ></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(e: Event): void {\r\n this.#thumbs = (<HTMLSlotElement>e.target)\r\n .assignedElements({ flatten: true })\r\n .filter((x) => x instanceof M3eSliderThumbElement);\r\n\r\n if (this.#thumbs.length > 2) {\r\n this.#thumbs.length = 2;\r\n }\r\n if (this.isRange) {\r\n this._base?.style.setProperty(\"--_slider-active-track-middle-shape\", `0`);\r\n } else {\r\n this._base?.style.removeProperty(\"--_slider-active-track-middle-shape\");\r\n }\r\n\r\n this.#updateThumbs();\r\n }\r\n\r\n /** @private */\r\n #updateThumbs(): void {\r\n this.#thumbs.forEach((thumb, i) => {\r\n if (this.disabled) {\r\n thumb.disabled = true;\r\n }\r\n thumb.ariaValueMin = `${this.#thumbs[i - 1]?.value ?? this.min}`;\r\n thumb.ariaValueMax = `${this.#thumbs[i + 1]?.value ?? this.max}`;\r\n thumb.ariaValueNow = `${thumb.value ?? this.#thumbs[i - 1]?.value ?? this.min}`;\r\n });\r\n }\r\n\r\n /** @private */\r\n #pointFromValue(value: number): number {\r\n return (this.#cachedWidth - this.#cachedThumbWidth) * ((value - this.min) / (this.max - this.min));\r\n }\r\n\r\n /** @private */\r\n #valueFromPoint(e: PointerEvent): number {\r\n const pos =\r\n M3eDirectionality.current === \"rtl\"\r\n ? this.#cachedLeft + this.#cachedWidth - e.clientX\r\n : e.clientX - this.#cachedLeft;\r\n const step = this.step === 0 ? 1 : this.step;\r\n const numSteps = Math.floor((this.max - this.min) / step);\r\n const percentage = pos / this.#cachedWidth;\r\n const fixedPercentage = Math.round(percentage * numSteps) / numSteps;\r\n const impreciseValue = fixedPercentage * (this.max - this.min) + this.min;\r\n return Math.round(impreciseValue / step) * step;\r\n }\r\n\r\n /** @private */\r\n #updateCachedDimensions(force = false): void {\r\n if (!this.lowerThumb) return;\r\n this.#cachedWidth = !force && this.#cachedWidth > 0 ? this.#cachedWidth : this.clientWidth;\r\n this.#cachedThumbWidth =\r\n !force && this.#cachedThumbWidth > 0 ? this.#cachedThumbWidth : this.lowerThumb.clientWidth;\r\n this.#cachedLeft = !force && this.#cachedLeft > 0 ? this.#cachedLeft : this.getBoundingClientRect().left;\r\n }\r\n\r\n /** @private */\r\n #updateDimensions(force = false): void {\r\n this.#updateCachedDimensions(force);\r\n if (!this.lowerThumb) return;\r\n\r\n const lowerValue = this.lowerThumb.value ?? this.min;\r\n const lowerPos = this.#pointFromValue(lowerValue);\r\n this.lowerThumb.style.transform = `translate(${M3eDirectionality.current === \"rtl\" ? -lowerPos : lowerPos}px, 0)`;\r\n\r\n if (!this.upperThumb) {\r\n this._base?.classList.toggle(\"range\", false);\r\n this._base?.style.setProperty(\"--_slider-active-track-size\", `${lowerPos}px`);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-after-offset\", `${lowerPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\r\n \"--_slider-inactive-track-after-size\",\r\n `${this.#cachedWidth - lowerPos - this.#cachedThumbWidth}px`,\r\n );\r\n\r\n this.#updateTicks((i) => i < lowerValue);\r\n } else {\r\n const upperValue = this.upperThumb.value ?? lowerValue;\r\n const upperPos = this.#pointFromValue(upperValue);\r\n this.upperThumb.style.transform = `translate(${M3eDirectionality.current === \"rtl\" ? -upperPos : upperPos}px, 0)`;\r\n\r\n this._base?.classList.toggle(\"range\", true);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-before-size\", `${lowerPos}px`);\r\n this._base?.style.setProperty(\"--_slider-active-track-offset\", `${lowerPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\"--_slider-active-track-size\", `${upperPos - lowerPos - this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-after-offset\", `${upperPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\r\n \"--_slider-inactive-track-after-size\",\r\n `${this.#cachedWidth - this.#cachedThumbWidth - upperPos}px`,\r\n );\r\n\r\n this.#updateTicks((i) => i > lowerValue && i < upperValue);\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateTicks(active: (value: number) => boolean): void {\r\n this._ticks = [];\r\n if (this.discrete && this.step > 1) {\r\n for (let i = this.min; i <= this.max; i += this.step) {\r\n this._ticks.push({ value: i, active: active(i) });\r\n }\r\n } else {\r\n this._ticks.push({ value: this.min, active: active(this.min) });\r\n if (this.min < 0 && this.max > 0) {\r\n this._ticks.push({ value: 0, active: active(0) });\r\n }\r\n this._ticks.push({ value: this.max, active: active(this.max) });\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerDown(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n if (!this.lowerThumb || this.disabled) return;\r\n\r\n if (e.target instanceof HTMLElement) {\r\n e.target.setPointerCapture(e.pointerId);\r\n }\r\n\r\n this.#activeThumb = e.composedPath().find((x) => x instanceof M3eSliderThumbElement) as\r\n | M3eSliderThumbElement\r\n | undefined;\r\n\r\n if (this.#activeThumb) {\r\n return;\r\n }\r\n\r\n const value = this.#valueFromPoint(e);\r\n\r\n if (!this.upperThumb) {\r\n if (!this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n }\r\n } else {\r\n const lowerValue = this.lowerThumb.value ?? this.min;\r\n const upperValue = this.upperThumb.value ?? lowerValue;\r\n\r\n if (value < lowerValue) {\r\n if (!this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n }\r\n } else if (value > upperValue) {\r\n if (!this.upperThumb.disabled) {\r\n this.#changeThumb(this.upperThumb, value, true);\r\n this.#activeThumb = this.upperThumb;\r\n }\r\n } else {\r\n const mid = (lowerValue + upperValue) / 2;\r\n if (value < mid && !this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n } else if (!this.upperThumb.disabled) {\r\n this.#changeThumb(this.upperThumb, value, true);\r\n this.#activeThumb = this.upperThumb;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerMove(e: PointerEvent): void {\r\n if (\r\n !(e.target instanceof HTMLElement) ||\r\n !e.target.hasPointerCapture(e.pointerId) ||\r\n !this.#activeThumb ||\r\n this.#activeThumb.disabled\r\n ) {\r\n return;\r\n }\r\n\r\n const value = this.#valueFromPoint(e);\r\n let min = this.min;\r\n let max = this.max;\r\n\r\n if (this.#activeThumb === this.upperThumb) {\r\n min = Math.max(min, this.lowerThumb?.value ?? 0);\r\n } else if (this.upperThumb) {\r\n max = Math.min(max, this.upperThumb.value ?? this.max);\r\n }\r\n\r\n if (hasCustomState(this, \"-animating\")) {\r\n deleteCustomState(this, \"-animating\");\r\n this.#activeThumb.style.transition = \"\";\r\n }\r\n\r\n this.#changeThumb(this.#activeThumb, Math.min(max, Math.max(min, value)));\r\n }\r\n\r\n /** @private */\r\n #handlePointerUp(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n if (!this.lowerThumb || this.disabled) return;\r\n\r\n if (e.target instanceof HTMLElement) {\r\n e.target.releasePointerCapture(e.pointerId);\r\n }\r\n\r\n if (this.#activeThumb && !this.#activeThumb.disabled) {\r\n this.#activeThumb.focus();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n this.#activeThumb = e.composedPath().find((x) => x instanceof M3eSliderThumbElement) as\r\n | M3eSliderThumbElement\r\n | undefined;\r\n\r\n if (!this.#activeThumb) return;\r\n\r\n const value = this.#activeThumb.value ?? 0;\r\n\r\n let min = this.min;\r\n let max = this.max;\r\n\r\n if (this.#activeThumb === this.upperThumb) {\r\n min = Math.max(min, this.lowerThumb?.value ?? 0);\r\n } else if (this.upperThumb) {\r\n max = Math.max(max, this.upperThumb.value ?? this.max);\r\n }\r\n\r\n switch (e.key) {\r\n case \"Home\":\r\n this.#changeThumb(this.#activeThumb, min);\r\n e.preventDefault();\r\n break;\r\n\r\n case \"End\":\r\n this.#changeThumb(this.#activeThumb, max);\r\n e.preventDefault();\r\n break;\r\n\r\n case \"PageUp\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + (this.step > 1 ? this.step : 10)));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - (this.step > 1 ? this.step : 10)));\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n\r\n case \"PageDown\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - (this.step > 1 ? this.step : 10)));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + (this.step > 1 ? this.step : 10)));\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - this.step));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + this.step));\r\n }\r\n\r\n e.preventDefault();\r\n\r\n break;\r\n\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + this.step));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - this.step));\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n\r\n case \" \":\r\n e.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleThumbChange(e: Event): void {\r\n e.stopPropagation();\r\n this.#updateThumbs();\r\n this.#updateDimensions();\r\n }\r\n\r\n /** @private */\r\n #changeThumb(thumb: M3eSliderThumbElement, value: number, animate = false): void {\r\n if (thumb.value === value) return;\r\n const prev = thumb.value;\r\n if (animate && !prefersReducedMotion()) {\r\n addCustomState(this, \"-animating\");\r\n thumb.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n thumb.style.transition = \"\";\r\n deleteCustomState(this, \"-animating\");\r\n },\r\n { once: true },\r\n );\r\n thumb.style.transition = `transform ${DesignToken.motion.spring.fastEffects}`;\r\n }\r\n thumb.value = value;\r\n thumb.markAsDirty();\r\n thumb.markAsTouched();\r\n if (thumb.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n thumb.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n } else {\r\n thumb.value = prev;\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slider\": M3eSliderElement;\r\n }\r\n}\r\n"],"names":["M3eSliderThumbElement","Dirty","Touched","FormAssociated","Focusable","Disabled","AttachInternals","Role","LitElement","constructor","value","_M3eSliderThumbElement_instances","WeakSet","formValue","toString","focus","options","_focusRing","disabled","firstUpdated","_changedProperties","attach","update","changedProperties","has","dispatchEvent","Event","bubbles","render","html","__classPrivateFieldGet","_M3eSliderThumbElement_labelText_get","closest","displayWith","styles","css","DesignToken","shape","corner","full","unsafeCSS","motion","duration","short3","easing","standard","color","inverseSurface","inverseOnSurface","typescale","label","medium","fontSize","fontWeight","lineHeight","tracking","short2","primary","onSurface","__decorate","query","prototype","property","type","Number","reflect","customElement","M3eSliderElement","_M3eSliderElement_directionalitySubscription","set","_ticks","Array","_M3eSliderElement_thumbs","_M3eSliderElement_activeThumb","_M3eSliderElement_cachedWidth","_M3eSliderElement_cachedThumbWidth","_M3eSliderElement_cachedLeft","size","discrete","min","max","step","labelled","ResizeController","callback","_M3eSliderElement_instances","_M3eSliderElement_updateDimensions","thumbs","isRange","length","thumb","lowerThumb","upperThumb","connectedCallback","__classPrivateFieldSet","M3eDirectionality","observe","call","requestUpdate","disconnectedCallback","updated","forEach","x","ifDefined","undefined","_M3eSliderElement_handlePointerDown","_M3eSliderElement_handlePointerMove","_M3eSliderElement_handlePointerUp","_M3eSliderElement_handleKeyDown","_M3eSliderElement_handleThumbChange","map","_M3eSliderElement_renderTick","_M3eSliderElement_handleSlotChange","tick","active","safeStyleMap","transform","current","_M3eSliderElement_pointFromValue","e","target","assignedElements","flatten","filter","_base","style","setProperty","removeProperty","_M3eSliderElement_updateThumbs","i","ariaValueMin","ariaValueMax","ariaValueNow","pos","clientX","numSteps","Math","floor","percentage","fixedPercentage","round","impreciseValue","_M3eSliderElement_updateCachedDimensions","force","clientWidth","getBoundingClientRect","left","lowerValue","lowerPos","classList","toggle","_M3eSliderElement_updateTicks","upperValue","upperPos","push","pointerType","button","HTMLElement","setPointerCapture","pointerId","composedPath","find","_M3eSliderElement_valueFromPoint","_M3eSliderElement_changeThumb","mid","hasPointerCapture","hasCustomState","deleteCustomState","transition","releasePointerCapture","key","preventDefault","stopPropagation","animate","prev","prefersReducedMotion","addCustomState","addEventListener","once","spring","fastEffects","markAsDirty","markAsTouched","composed","cancelable","smallStart","smallEnd","mediumStart","mediumEnd","largeStart","largeEnd","extraLargeStart","extraLargeEnd","secondaryContainer","onPrimary","onSecondaryContainer","state","Boolean","attribute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slider.js","sources":["../../src/slider/SliderThumbElement.ts","../../src/slider/SliderElement.ts"],"sourcesContent":["import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n customElement,\r\n DesignToken,\r\n Dirty,\r\n Disabled,\r\n Focusable,\r\n FormAssociated,\r\n formValue,\r\n M3eFocusRingElement,\r\n Role,\r\n Touched,\r\n} from \"@m3e/web/core\";\r\n\r\n/**\r\n * A thumb used to select a value in a slider.\r\n *\r\n * @description\r\n * The `m3e-slider-thumb` component is used within a `m3e-slider` to represent and select a specific value.\r\n * This component supports continuous and discrete input, form association, and accessibility semantics.\r\n * It emits `input` and `change` events to reflect value updates.\r\n *\r\n * @example\r\n * The following example illustrates a labelled slider with thumb used to select a single numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"50\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @example\r\n * The next example illustrates a labelled range slider with two thumbs used to select a minimum and maximum numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"25\"></m3e-slider-thumb>\r\n * <m3e-slider-thumb value=\"75\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @tag m3e-slider-thumb\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr name - The name that identifies the element when submitting the associated form.\r\n * @attr value - The value of the thumb.\r\n *\r\n * @fires input - Emitted when the value changes.\r\n * @fires change - Emitted when the value changes.\r\n * @fires click - Emitted when the element is clicked.\r\n *\r\n * @cssprop --m3e-slider-thumb-width - Width of the slider thumb.\r\n * @cssprop --m3e-slider-thumb-padding - Horizontal padding around the thumb.\r\n * @cssprop --m3e-slider-thumb-color - Active color of the slider thumb when enabled.\r\n * @cssprop --m3e-slider-thumb-pressed-width - Width of the thumb when pressed.\r\n * @cssprop --m3e-slider-thumb-disabled-color - Color of the thumb when disabled.\r\n * @cssprop --m3e-slider-thumb-disabled-opacity - Opacity of the thumb when disabled.\r\n * @cssprop --m3e-slider-label-width - Width of the floating label above the thumb.\r\n * @cssprop --m3e-slider-label-container-color - Background color of the label container.\r\n * @cssprop --m3e-slider-label-color - Text color of the label.\r\n * @cssprop --m3e-slider-label-font-size - Font size of the label text.\r\n * @cssprop --m3e-slider-label-font-weight - Font weight of the label text.\r\n * @cssprop --m3e-slider-label-line-height - Line height of the label text.\r\n * @cssprop --m3e-slider-label-tracking - Letter spacing of the label text.\r\n */\r\n@customElement(\"m3e-slider-thumb\")\r\nexport class M3eSliderThumbElement extends Dirty(\r\n Touched(FormAssociated(Focusable(Disabled(AttachInternals(Role(LitElement, \"slider\")))))),\r\n) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n box-sizing: border-box;\r\n position: absolute;\r\n outline: none;\r\n top: 0;\r\n bottom: 0;\r\n border-radius: var(--m3e-slider-thumb-shape, ${DesignToken.shape.corner.full});\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n .base {\r\n box-sizing: border-box;\r\n vertical-align: middle;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: inherit;\r\n }\r\n .touch {\r\n position: absolute;\r\n height: 3rem;\r\n left: 0;\r\n right: 0;\r\n touch-action: none;\r\n }\r\n .wrapper {\r\n display: inline-flex;\r\n justify-content: center;\r\n height: 100%;\r\n border-radius: inherit;\r\n width: calc(var(--m3e-slider-thumb-width, 0.25rem) + calc(var(--m3e-slider-thumb-padding, 0.375em) * 2));\r\n }\r\n .focus-ring {\r\n top: calc(0px - var(--m3e-focus-ring-thickness, 3px));\r\n bottom: calc(0px - var(--m3e-focus-ring-thickness, 3px));\r\n left: var(--m3e-focus-ring-thickness, 3px);\r\n right: var(--m3e-focus-ring-thickness, 3px);\r\n }\r\n .label {\r\n user-select: none;\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n visibility: var(--_slider-label-visibility, hidden);\r\n opacity: var(--_slider-label-opacity, 0);\r\n transform: var(--_slider-label-transform, scale(0));\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard}, \r\n transform ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard},\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n width: var(--m3e-slider-label-width, 3rem);\r\n height: var(--_m3e-slider-label-height, 2.75rem);\r\n top: calc(0px - var(--_m3e-slider-label-height, 2.75rem) - var(--_m3e-slider-label-margin, 0.25rem));\r\n inset-inline-start: calc(0px - 100%);\r\n border-radius: var(--m3e-slider-label-shape, ${DesignToken.shape.corner.full});\r\n background-color: var(--m3e-slider-label-container-color, ${DesignToken.color.inverseSurface});\r\n color: var(--m3e-slider-label-color, ${DesignToken.color.inverseOnSurface});\r\n font-size: var(--m3e-slider-label-font-size, ${DesignToken.typescale.standard.label.medium.fontSize});\r\n font-weight: var(--m3e-slider-label-font-weight, ${DesignToken.typescale.standard.label.medium.fontWeight});\r\n line-height: var(--m3e-slider-label-line-height, ${DesignToken.typescale.standard.label.medium.lineHeight});\r\n letter-spacing: var(--m3e-slider-label-tracking, ${DesignToken.typescale.standard.label.medium.tracking});\r\n }\r\n @starting-style {\r\n .label {\r\n opacity: 0;\r\n transform: scale(0);\r\n }\r\n }\r\n .handle {\r\n height: 100%;\r\n width: var(--m3e-slider-thumb-width, 0.25rem);\r\n border-radius: inherit;\r\n transition: ${unsafeCSS(`width ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard}`)};\r\n }\r\n :host(:active:not([aria-disabled=\"true\"])) .handle {\r\n width: var(--m3e-slider-thumb-pressed-width, 2px);\r\n }\r\n :host(:not([aria-disabled=\"true\"])) .handle {\r\n background-color: var(--m3e-slider-thumb-color, ${DesignToken.color.primary});\r\n }\r\n :host([aria-disabled=\"true\"]) .handle {\r\n opacity: var(--m3e-slider-thumb-disabled-opacity, 38%);\r\n background-color: var(--m3e-slider-thumb-disabled-color, ${DesignToken.color.onSurface});\r\n }\r\n @media (prefers-reduced-motion) {\r\n .label {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .label {\r\n forced-color-adjust: none;\r\n background-color: CanvasText;\r\n color: Canvas;\r\n }\r\n :host(:not([aria-disabled=\"true\"])) .handle {\r\n background-color: CanvasText;\r\n }\r\n :host([aria-disabled=\"true\"]) .handle {\r\n opacity: unset;\r\n background-color: GrayText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @query(\".focus-ring\")\r\n private readonly _focusRing?: M3eFocusRingElement;\r\n\r\n /**\r\n * The value of the thumb.\r\n * @default null\r\n */\r\n @property({ type: Number, reflect: true }) value: number | null = null;\r\n\r\n /** @inheritdoc */\r\n override get [formValue](): string | File | FormData | null {\r\n return this.value?.toString() ?? null;\r\n }\r\n\r\n /** @internal */\r\n get #labelText(): string {\r\n return this.closest(\"m3e-slider\")?.displayWith?.(this.value) ?? this.value?.toString() ?? \"\";\r\n }\r\n\r\n /** @inheritdoc */\r\n override focus(options?: FocusOptions): void {\r\n if (this._focusRing) {\r\n this._focusRing.disabled = true;\r\n }\r\n\r\n super.focus(options);\r\n\r\n if (this._focusRing) {\r\n this._focusRing.disabled = this.disabled;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n this._focusRing?.attach(this);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"value\")) {\r\n this.dispatchEvent(new Event(\"value-change\", { bubbles: true }));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"label\" aria-hidden=\"true\">${this.#labelText}</div>\r\n <div class=\"base\">\r\n <m3e-focus-ring class=\"focus-ring\" ?disabled=\"${this.disabled}\"></m3e-focus-ring>\r\n <div class=\"touch\" aria-hidden=\"true\"></div>\r\n <div class=\"wrapper\">\r\n <div class=\"handle\"></div>\r\n </div>\r\n </div>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slider-thumb\": M3eSliderThumbElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property, query, state } from \"lit/decorators.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport {\r\n addCustomState,\r\n AttachInternals,\r\n customElement,\r\n deleteCustomState,\r\n DesignToken,\r\n hasCustomState,\r\n prefersReducedMotion,\r\n ResizeController,\r\n safeStyleMap,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { M3eSliderThumbElement } from \"./SliderThumbElement\";\r\nimport { SliderSize } from \"./SliderSize\";\r\n\r\n/**\r\n * Allows for the selection of numeric values from a range.\r\n *\r\n * @description\r\n * The `m3e-slider` component enables users to select a numeric value from a continuous or discrete range.\r\n * Designed according to Material 3 principles, it supports labeled value indicators, tick marks, and\r\n * snapping behavior.\r\n *\r\n * @example\r\n * The following example illustrates a labelled slider with thumb used to select a single numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"50\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @example\r\n * The next example illustrates a labelled range slider with two thumbs used to select a minimum and maximum numeric value.\r\n * ```html\r\n * <m3e-slider labelled>\r\n * <m3e-slider-thumb value=\"25\"></m3e-slider-thumb>\r\n * <m3e-slider-thumb value=\"75\"></m3e-slider-thumb>\r\n * </m3e-slider>\r\n * ```\r\n *\r\n * @tag m3e-slider\r\n *\r\n * @slot - Renders the thumbs of the slider.\r\n *\r\n * @attr disabled - Whether the element is disabled.\r\n * @attr discrete - Whether to show tick marks.\r\n * @attr labelled - Whether to show value labels when activated.\r\n * @attr max - The maximum allowable value.\r\n * @attr min - The minimum allowable value.\r\n * @attr step - The value at which the thumb will snap.\r\n * @attr size - The size of the slider.\r\n *\r\n * @cssprop --m3e-slider-min-width - Minimum inline size of the slider host.\r\n * @cssprop --m3e-slider-small-height - Height of the slider when size is small or extra-small.\r\n * @cssprop --m3e-slider-medium-height - Height of the slider when size is medium.\r\n * @cssprop --m3e-slider-large-height - Height of the slider when size is large.\r\n * @cssprop --m3e-slider-extra-large-height - Height of the slider when size is extra-large.\r\n * @cssprop --m3e-slider-small-active-track-shape - Corner shape of the active track for small sliders.\r\n * @cssprop --m3e-slider-small-inactive-active-track-start-shape - Corner shape of the inactive track start for small sliders.\r\n * @cssprop --m3e-slider-small-inactive-track-end-shape - Corner shape of the inactive track end for small sliders.\r\n * @cssprop --m3e-slider-medium-active-track-shape - Corner shape of the active track for medium sliders.\r\n * @cssprop --m3e-slider-medium-inactive-active-track-start-shape - Corner shape of the inactive track start for medium sliders.\r\n * @cssprop --m3e-slider-medium-inactive-track-end-shape - Corner shape of the inactive track end for medium sliders.\r\n * @cssprop --m3e-slider-large-active-track-shape - Corner shape of the active track for large sliders.\r\n * @cssprop --m3e-slider-large-inactive-active-track-start-shape - Corner shape of the inactive track start for large sliders.\r\n * @cssprop --m3e-slider-large-inactive-track-end-shape - Corner shape of the inactive track end for large sliders.\r\n * @cssprop --m3e-slider-extra-large-active-track-shape - Corner shape of the active track for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-large-inactive-active-track-start-shape - Corner shape of the inactive track start for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-large-inactive-track-end-shape - Corner shape of the inactive track end for extra-large sliders.\r\n * @cssprop --m3e-slider-extra-small-track-height - Height of the track for extra-small sliders.\r\n * @cssprop --m3e-slider-small-track-height - Height of the track for small sliders.\r\n * @cssprop --m3e-slider-medium-track-height - Height of the track for medium sliders.\r\n * @cssprop --m3e-slider-large-track-height - Height of the track for large sliders.\r\n * @cssprop --m3e-slider-extra-large-track-height - Height of the track for extra-large sliders.\r\n * @cssprop --m3e-slider-tick-size - Size of each tick mark.\r\n * @cssprop --m3e-slider-tick-shape - Corner shape of each tick mark.\r\n * @cssprop --m3e-slider-inactive-track-color - Background color of the inactive track when enabled.\r\n * @cssprop --m3e-slider-disabled-inactive-track-color - Base color of the inactive track when disabled.\r\n * @cssprop --m3e-slider-disabled-inactive-track-opacity - Opacity of the inactive track when disabled.\r\n * @cssprop --m3e-slider-active-track-color - Background color of the active track when enabled.\r\n * @cssprop --m3e-slider-disabled-active-track-color - Base color of the active track when disabled.\r\n * @cssprop --m3e-slider-disabled-active-track-opacity - Opacity of the active track when disabled.\r\n * @cssprop --m3e-slider-tick-active-color - Color of active ticks when enabled.\r\n * @cssprop --m3e-slider-disabled-tick-active-color - Color of active ticks when disabled.\r\n * @cssprop --m3e-slider-tick-inactive-color - Color of inactive ticks when enabled.\r\n * @cssprop --m3e-slider-disabled-tick-inactive-color - Color of inactive ticks when disabled.\r\n */\r\n@customElement(\"m3e-slider\")\r\nexport class M3eSliderElement extends AttachInternals(LitElement) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-block;\r\n vertical-align: middle;\r\n min-inline-size: var(--m3e-slider-min-width, 12.5rem);\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n :host(:not([disabled])) {\r\n cursor: pointer;\r\n }\r\n :host([size=\"extra-small\"]),\r\n :host([size=\"small\"]) {\r\n height: var(--m3e-slider-small-height, 2.75rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"extra-small\"]) .base,\r\n :host(:not(:dir(rtl))[size=\"small\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${DesignToken.shape.corner.smallStart});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-small-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.smallStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-small-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.smallEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"extra-small\"]) .base,\r\n :host(:dir(rtl)[size=\"small\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${DesignToken.shape.corner.smallEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-small-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.smallEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-small-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.smallStart}\r\n );\r\n }\r\n :host([size=\"extra-small\"]) .track {\r\n height: calc(var(--m3e-slider-extra-small-track-height, 1rem));\r\n }\r\n :host([size=\"small\"]) .track {\r\n height: calc(var(--m3e-slider-small-track-height, 1.5rem));\r\n }\r\n :host([size=\"medium\"]) {\r\n height: var(--m3e-slider-medium-height, 3.25rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"medium\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-medium-active-track-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-medium-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-medium-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.mediumEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"medium\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-medium-active-track-shape, ${DesignToken.shape.corner.mediumEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-medium-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.mediumEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-medium-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.mediumStart}\r\n );\r\n }\r\n :host([size=\"medium\"]) .track {\r\n height: var(--m3e-slider-medium-track-height, 2.5rem);\r\n }\r\n :host([size=\"large\"]) {\r\n height: var(--m3e-slider-large-height, 4.25rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"large\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${DesignToken.shape.corner.largeStart});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.largeStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.largeEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"large\"]) .base {\r\n --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${DesignToken.shape.corner.largeEnd});\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.largeEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.largeStart}\r\n );\r\n }\r\n :host([size=\"large\"]) .track {\r\n height: var(--m3e-slider-large-track-height, 3.5rem);\r\n }\r\n :host([size=\"extra-large\"]) {\r\n height: var(--m3e-slider-extra-large-height, 6.75rem);\r\n }\r\n :host(:not(:dir(rtl))[size=\"extra-large\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-extra-large-active-track-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-extra-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-extra-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n }\r\n :host(:dir(rtl)[size=\"extra-large\"]) .base {\r\n --_slider-active-track-shape: var(\r\n --m3e-slider-extra-large-active-track-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n --_slider-inactive-track-start-shape: var(\r\n --m3e-slider-extra-large-inactive-active-track-start-shape,\r\n ${DesignToken.shape.corner.extraLargeEnd}\r\n );\r\n --_slider-inactive-track-end-shape: var(\r\n --m3e-slider-extra-large-inactive-track-end-shape,\r\n ${DesignToken.shape.corner.extraLargeStart}\r\n );\r\n }\r\n :host([size=\"extra-large\"]) .track {\r\n height: var(--m3e-slider-extra-large-track-height, 6rem);\r\n }\r\n :host(:state(-animating)) .track-active,\r\n :host(:state(-animating)) .track-inactive.start,\r\n :host(:state(-animating)) .track-inactive.end {\r\n transition: ${unsafeCSS(`margin-inline-start ${DesignToken.motion.spring.fastEffects},\r\n width ${DesignToken.motion.spring.fastEffects}`)};\r\n }\r\n .base {\r\n display: inline-flex;\r\n align-items: center;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: inherit;\r\n outline: none;\r\n touch-action: none;\r\n }\r\n .track {\r\n position: relative;\r\n flex: 1 1 auto;\r\n touch-action: none;\r\n }\r\n .track-inactive,\r\n .track-active {\r\n position: absolute;\r\n height: 100%;\r\n touch-action: none;\r\n }\r\n .track-active {\r\n margin-inline-start: var(--_slider-active-track-offset, 0px);\r\n width: var(--_slider-active-track-size, 0px);\r\n border-radius: var(--_slider-active-track-middle-shape, var(--_slider-active-track-shape));\r\n }\r\n .track-inactive.start {\r\n width: var(--_slider-inactive-track-before-size, 0px);\r\n border-radius: var(--_slider-inactive-track-start-shape);\r\n }\r\n .track-inactive.end {\r\n margin-inline-start: var(--_slider-inactive-track-after-offset, 0px);\r\n width: var(--_slider-inactive-track-after-size, 0px);\r\n border-radius: var(--_slider-inactive-track-end-shape);\r\n }\r\n .ticks {\r\n position: absolute;\r\n width: 100%;\r\n height: var(--m3e-slider-tick-size, 0.25rem);\r\n overflow: visible;\r\n touch-action: none;\r\n }\r\n .tick {\r\n position: absolute;\r\n top: 0;\r\n touch-action: none;\r\n inset-inline-start: calc(var(--m3e-slider-tick-size, 0.25rem) + calc(var(--m3e-slider-tick-size, 0.25rem) / 2));\r\n width: var(--m3e-slider-tick-size, 0.25rem);\r\n height: var(--m3e-slider-tick-size, 0.25rem);\r\n border-radius: var(--m3e-slider-tick-shape, ${DesignToken.shape.corner.full});\r\n }\r\n :host(:not([disabled])) .track-inactive {\r\n background-color: var(--m3e-slider-inactive-track-color, ${DesignToken.color.secondaryContainer});\r\n }\r\n :host([disabled]) .track-inactive {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-slider-disabled-inactive-track-color, ${DesignToken.color.onSurface})\r\n var(--m3e-slider-disabled-inactive-track-opacity, 12%),\r\n transparent\r\n );\r\n }\r\n :host(:not([disabled])) .track-active {\r\n background-color: var(--m3e-slider-active-track-color, ${DesignToken.color.primary});\r\n }\r\n :host([disabled]) .track-active {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-slider-disabled-active-track-color, ${DesignToken.color.onSurface})\r\n var(--m3e-slider-disabled-active-track-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host(:not([disabled])) .tick.active {\r\n background-color: var(--m3e-slider-tick-active-color, ${DesignToken.color.onPrimary});\r\n }\r\n :host([disabled]) .tick.active {\r\n background-color: var(--m3e-slider-disabled-tick-active-color, ${DesignToken.color.inverseOnSurface});\r\n }\r\n :host(:not([disabled])) .tick.inactive {\r\n background-color: var(--m3e-slider-tick-inactive-color, ${DesignToken.color.onSecondaryContainer});\r\n }\r\n :host([disabled]) .tick.inactive {\r\n background-color: var(--m3e-slider-disabled-tick-inactive-color, ${DesignToken.color.onSurface});\r\n }\r\n :host(:not([discrete])) .tick.active {\r\n display: none;\r\n }\r\n :host(:hover[labelled]) .base,\r\n :host(:focus-within[labelled]) .base {\r\n --_slider-label-visibility: visible;\r\n --_slider-label-opacity: 1;\r\n --_slider-label-transform: scale(1);\r\n }\r\n @media (forced-colors: active) {\r\n :host(:not([disabled])) .track-inactive {\r\n background-color: unset;\r\n }\r\n :host(:not([disabled])) .base.range .track-inactive.start,\r\n :host(:not([disabled])) .track-inactive.end {\r\n border: 1px solid CanvasText;\r\n box-sizing: border-box;\r\n }\r\n :host(:not([disabled])) .tick.inactive {\r\n background-color: CanvasText;\r\n }\r\n :host(:not([disabled])) .tick.active {\r\n background-color: Canvas;\r\n }\r\n :host(:not([disabled])) .track-active {\r\n background-color: CanvasText;\r\n }\r\n :host([disabled]) .base.range .track-inactive.start,\r\n :host([disabled]) .track-inactive.end {\r\n border: 1px solid GrayText;\r\n box-sizing: border-box;\r\n }\r\n :host([disabled]) .track-active {\r\n background-color: GrayText;\r\n }\r\n :host([disabled]) .tick.inactive {\r\n background-color: GrayText;\r\n }\r\n :host([disabled]) .tick.active {\r\n background-color: Canvas;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #directionalitySubscription?: () => void;\r\n\r\n /** @private */\r\n @query(\".base\") private readonly _base?: HTMLElement;\r\n\r\n /** @private */\r\n @state() private _ticks = new Array<{ value: number; active: boolean }>();\r\n\r\n /** @private */ #thumbs = new Array<M3eSliderThumbElement>();\r\n /** @private */ #activeThumb?: M3eSliderThumbElement;\r\n /** @private */ #cachedWidth = 0;\r\n /** @private */ #cachedThumbWidth = 0;\r\n /** @private */ #cachedLeft = 0;\r\n\r\n constructor() {\r\n super();\r\n new ResizeController(this, { callback: () => this.#updateDimensions(true) });\r\n }\r\n\r\n /**\r\n * The size of the slider.\r\n * @default \"extra-small\"\r\n */\r\n @property({ reflect: true }) size: SliderSize = \"extra-small\";\r\n\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Whether to show tick marks.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) discrete = false;\r\n\r\n /**\r\n * The minimum allowable value.\r\n * @default 0\r\n */\r\n @property({ type: Number }) min = 0;\r\n\r\n /**\r\n * The maximum allowable value.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * The value at which the thumb will snap.\r\n * @default 1\r\n */\r\n @property({ type: Number }) step = 1;\r\n\r\n /**\r\n * Whether to show value labels when activated.\r\n * @default false\r\n */\r\n @property({ type: Boolean }) labelled = false;\r\n\r\n /** The function used to format display values. */\r\n @property({ attribute: false }) displayWith: ((value: number | null) => string) | null = null;\r\n\r\n /** The thumbs used to select values. */\r\n get thumbs(): readonly M3eSliderThumbElement[] {\r\n return this.#thumbs;\r\n }\r\n\r\n /** Whether the slider is a range slider. */\r\n get isRange(): boolean {\r\n return this.#thumbs.length > 1;\r\n }\r\n\r\n /** The thumb used to select a value. */\r\n get thumb(): M3eSliderThumbElement | null {\r\n return this.#thumbs[0] ?? null;\r\n }\r\n\r\n /** The thumb used to select the lower value of a range slider. */\r\n get lowerThumb(): M3eSliderThumbElement | null {\r\n return this.thumb;\r\n }\r\n\r\n /** The thumb used to select the upper value of a range slider. */\r\n get upperThumb(): M3eSliderThumbElement | null {\r\n return this.#thumbs[1] ?? null;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.#directionalitySubscription = M3eDirectionality.observe(() => {\r\n this.#updateDimensions(true);\r\n this.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#directionalitySubscription?.();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"disabled\")) {\r\n this.#thumbs.forEach((x) => (x.disabled = this.disabled));\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div\r\n class=\"base\"\r\n tabindex=\"${ifDefined(!this.disabled ? \"-1\" : undefined)}\"\r\n @pointerdown=\"${this.#handlePointerDown}\"\r\n @pointermove=\"${this.#handlePointerMove}\"\r\n @pointerup=\"${this.#handlePointerUp}\"\r\n @keydown=\"${this.#handleKeyDown}\"\r\n @value-change=\"${this.#handleThumbChange}\"\r\n >\r\n <div class=\"track\" aria-hidden=\"true\">\r\n <div class=\"track-inactive start\"></div>\r\n <div class=\"track-active\"></div>\r\n <div class=\"track-inactive end\"></div>\r\n </div>\r\n <div class=\"ticks\" aria-hidden=\"true\">${this._ticks.map((x) => this.#renderTick(x))}</div>\r\n <slot @slotchange=\"${this.#handleSlotChange}\"></slot>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderTick(tick: { value: number; active: boolean }) {\r\n return html`<div\r\n class=\"tick ${tick.active ? \"active\" : \"inactive\"}\"\r\n style=\"${safeStyleMap({\r\n transform: `translate(${M3eDirectionality.current === \"rtl\" ? -this.#pointFromValue(tick.value) : this.#pointFromValue(tick.value)}px, 0)`,\r\n })}\"\r\n ></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(e: Event): void {\r\n this.#thumbs = (<HTMLSlotElement>e.target)\r\n .assignedElements({ flatten: true })\r\n .filter((x) => x instanceof M3eSliderThumbElement);\r\n\r\n if (this.#thumbs.length > 2) {\r\n this.#thumbs.length = 2;\r\n }\r\n if (this.isRange) {\r\n this._base?.style.setProperty(\"--_slider-active-track-middle-shape\", `0`);\r\n } else {\r\n this._base?.style.removeProperty(\"--_slider-active-track-middle-shape\");\r\n }\r\n\r\n this.#updateThumbs();\r\n }\r\n\r\n /** @private */\r\n #updateThumbs(): void {\r\n this.#thumbs.forEach((thumb, i) => {\r\n if (this.disabled) {\r\n thumb.disabled = true;\r\n }\r\n thumb.ariaValueMin = `${this.#thumbs[i - 1]?.value ?? this.min}`;\r\n thumb.ariaValueMax = `${this.#thumbs[i + 1]?.value ?? this.max}`;\r\n thumb.ariaValueNow = `${thumb.value ?? this.#thumbs[i - 1]?.value ?? this.min}`;\r\n });\r\n }\r\n\r\n /** @private */\r\n #pointFromValue(value: number): number {\r\n return (this.#cachedWidth - this.#cachedThumbWidth) * ((value - this.min) / (this.max - this.min));\r\n }\r\n\r\n /** @private */\r\n #valueFromPoint(e: PointerEvent): number {\r\n const pos =\r\n M3eDirectionality.current === \"rtl\"\r\n ? this.#cachedLeft + this.#cachedWidth - e.clientX\r\n : e.clientX - this.#cachedLeft;\r\n const step = this.step === 0 ? 1 : this.step;\r\n const numSteps = Math.floor((this.max - this.min) / step);\r\n const percentage = pos / this.#cachedWidth;\r\n const fixedPercentage = Math.round(percentage * numSteps) / numSteps;\r\n const impreciseValue = fixedPercentage * (this.max - this.min) + this.min;\r\n return Math.round(impreciseValue / step) * step;\r\n }\r\n\r\n /** @private */\r\n #updateCachedDimensions(force = false): void {\r\n if (!this.lowerThumb) return;\r\n this.#cachedWidth = !force && this.#cachedWidth > 0 ? this.#cachedWidth : this.clientWidth;\r\n this.#cachedThumbWidth =\r\n !force && this.#cachedThumbWidth > 0 ? this.#cachedThumbWidth : this.lowerThumb.clientWidth;\r\n this.#cachedLeft = !force && this.#cachedLeft > 0 ? this.#cachedLeft : this.getBoundingClientRect().left;\r\n }\r\n\r\n /** @private */\r\n #updateDimensions(force = false): void {\r\n this.#updateCachedDimensions(force);\r\n if (!this.lowerThumb) return;\r\n\r\n const lowerValue = this.lowerThumb.value ?? this.min;\r\n const lowerPos = this.#pointFromValue(lowerValue);\r\n this.lowerThumb.style.transform = `translate(${M3eDirectionality.current === \"rtl\" ? -lowerPos : lowerPos}px, 0)`;\r\n\r\n if (!this.upperThumb) {\r\n this._base?.classList.toggle(\"range\", false);\r\n this._base?.style.setProperty(\"--_slider-active-track-size\", `${lowerPos}px`);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-after-offset\", `${lowerPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\r\n \"--_slider-inactive-track-after-size\",\r\n `${this.#cachedWidth - lowerPos - this.#cachedThumbWidth}px`,\r\n );\r\n\r\n this.#updateTicks((i) => i < lowerValue);\r\n } else {\r\n const upperValue = this.upperThumb.value ?? lowerValue;\r\n const upperPos = this.#pointFromValue(upperValue);\r\n this.upperThumb.style.transform = `translate(${M3eDirectionality.current === \"rtl\" ? -upperPos : upperPos}px, 0)`;\r\n\r\n this._base?.classList.toggle(\"range\", true);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-before-size\", `${lowerPos}px`);\r\n this._base?.style.setProperty(\"--_slider-active-track-offset\", `${lowerPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\"--_slider-active-track-size\", `${upperPos - lowerPos - this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\"--_slider-inactive-track-after-offset\", `${upperPos + this.#cachedThumbWidth}px`);\r\n this._base?.style.setProperty(\r\n \"--_slider-inactive-track-after-size\",\r\n `${this.#cachedWidth - this.#cachedThumbWidth - upperPos}px`,\r\n );\r\n\r\n this.#updateTicks((i) => i > lowerValue && i < upperValue);\r\n }\r\n }\r\n\r\n /** @private */\r\n #updateTicks(active: (value: number) => boolean): void {\r\n this._ticks = [];\r\n if (this.discrete && this.step > 1) {\r\n for (let i = this.min; i <= this.max; i += this.step) {\r\n this._ticks.push({ value: i, active: active(i) });\r\n }\r\n } else {\r\n this._ticks.push({ value: this.min, active: active(this.min) });\r\n if (this.min < 0 && this.max > 0) {\r\n this._ticks.push({ value: 0, active: active(0) });\r\n }\r\n this._ticks.push({ value: this.max, active: active(this.max) });\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerDown(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n if (!this.lowerThumb || this.disabled) return;\r\n\r\n if (e.target instanceof HTMLElement) {\r\n e.target.setPointerCapture(e.pointerId);\r\n }\r\n\r\n this.#activeThumb = e.composedPath().find((x) => x instanceof M3eSliderThumbElement) as\r\n | M3eSliderThumbElement\r\n | undefined;\r\n\r\n if (this.#activeThumb) {\r\n return;\r\n }\r\n\r\n const value = this.#valueFromPoint(e);\r\n\r\n if (!this.upperThumb) {\r\n if (!this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n }\r\n } else {\r\n const lowerValue = this.lowerThumb.value ?? this.min;\r\n const upperValue = this.upperThumb.value ?? lowerValue;\r\n\r\n if (value < lowerValue) {\r\n if (!this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n }\r\n } else if (value > upperValue) {\r\n if (!this.upperThumb.disabled) {\r\n this.#changeThumb(this.upperThumb, value, true);\r\n this.#activeThumb = this.upperThumb;\r\n }\r\n } else {\r\n const mid = (lowerValue + upperValue) / 2;\r\n if (value < mid && !this.lowerThumb.disabled) {\r\n this.#changeThumb(this.lowerThumb, value, true);\r\n this.#activeThumb = this.lowerThumb;\r\n } else if (!this.upperThumb.disabled) {\r\n this.#changeThumb(this.upperThumb, value, true);\r\n this.#activeThumb = this.upperThumb;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerMove(e: PointerEvent): void {\r\n if (\r\n !(e.target instanceof HTMLElement) ||\r\n !e.target.hasPointerCapture(e.pointerId) ||\r\n !this.#activeThumb ||\r\n this.#activeThumb.disabled\r\n ) {\r\n return;\r\n }\r\n\r\n const value = this.#valueFromPoint(e);\r\n let min = this.min;\r\n let max = this.max;\r\n\r\n if (this.#activeThumb === this.upperThumb) {\r\n min = Math.max(min, this.lowerThumb?.value ?? 0);\r\n } else if (this.upperThumb) {\r\n max = Math.min(max, this.upperThumb.value ?? this.max);\r\n }\r\n\r\n if (hasCustomState(this, \"-animating\")) {\r\n deleteCustomState(this, \"-animating\");\r\n this.#activeThumb.style.transition = \"\";\r\n }\r\n\r\n this.#changeThumb(this.#activeThumb, Math.min(max, Math.max(min, value)));\r\n }\r\n\r\n /** @private */\r\n #handlePointerUp(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n if (!this.lowerThumb || this.disabled) return;\r\n\r\n if (e.target instanceof HTMLElement) {\r\n e.target.releasePointerCapture(e.pointerId);\r\n }\r\n\r\n if (this.#activeThumb && !this.#activeThumb.disabled) {\r\n this.#activeThumb.focus();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n this.#activeThumb = e.composedPath().find((x) => x instanceof M3eSliderThumbElement) as\r\n | M3eSliderThumbElement\r\n | undefined;\r\n\r\n if (!this.#activeThumb) return;\r\n\r\n const value = this.#activeThumb.value ?? 0;\r\n\r\n let min = this.min;\r\n let max = this.max;\r\n\r\n if (this.#activeThumb === this.upperThumb) {\r\n min = Math.max(min, this.lowerThumb?.value ?? 0);\r\n } else if (this.upperThumb) {\r\n max = Math.max(max, this.upperThumb.value ?? this.max);\r\n }\r\n\r\n switch (e.key) {\r\n case \"Home\":\r\n this.#changeThumb(this.#activeThumb, min);\r\n e.preventDefault();\r\n break;\r\n\r\n case \"End\":\r\n this.#changeThumb(this.#activeThumb, max);\r\n e.preventDefault();\r\n break;\r\n\r\n case \"PageUp\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + (this.step > 1 ? this.step : 10)));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - (this.step > 1 ? this.step : 10)));\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n\r\n case \"PageDown\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - (this.step > 1 ? this.step : 10)));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + (this.step > 1 ? this.step : 10)));\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n case \"Left\":\r\n case \"ArrowLeft\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - this.step));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + this.step));\r\n }\r\n\r\n e.preventDefault();\r\n\r\n break;\r\n\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n case \"Right\":\r\n case \"ArrowRight\":\r\n if (M3eDirectionality.current === \"ltr\") {\r\n this.#changeThumb(this.#activeThumb, Math.min(max, value + this.step));\r\n } else {\r\n this.#changeThumb(this.#activeThumb, Math.max(min, value - this.step));\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n\r\n case \" \":\r\n e.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleThumbChange(e: Event): void {\r\n e.stopPropagation();\r\n this.#updateThumbs();\r\n this.#updateDimensions();\r\n }\r\n\r\n /** @private */\r\n #changeThumb(thumb: M3eSliderThumbElement, value: number, animate = false): void {\r\n if (thumb.value === value) return;\r\n const prev = thumb.value;\r\n if (animate && !prefersReducedMotion()) {\r\n addCustomState(this, \"-animating\");\r\n thumb.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n thumb.style.transition = \"\";\r\n deleteCustomState(this, \"-animating\");\r\n },\r\n { once: true },\r\n );\r\n thumb.style.transition = `transform ${DesignToken.motion.spring.fastEffects}`;\r\n }\r\n thumb.value = value;\r\n thumb.markAsDirty();\r\n thumb.markAsTouched();\r\n if (thumb.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n thumb.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n } else {\r\n thumb.value = prev;\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slider\": M3eSliderElement;\r\n }\r\n}\r\n"],"names":["M3eSliderThumbElement","Dirty","Touched","FormAssociated","Focusable","Disabled","AttachInternals","Role","LitElement","constructor","value","_M3eSliderThumbElement_instances","WeakSet","formValue","toString","focus","options","_focusRing","disabled","firstUpdated","_changedProperties","attach","update","changedProperties","has","dispatchEvent","Event","bubbles","render","html","__classPrivateFieldGet","_M3eSliderThumbElement_labelText_get","closest","displayWith","styles","css","DesignToken","shape","corner","full","unsafeCSS","motion","duration","short3","easing","standard","color","inverseSurface","inverseOnSurface","typescale","label","medium","fontSize","fontWeight","lineHeight","tracking","short2","primary","onSurface","__decorate","query","prototype","property","type","Number","reflect","customElement","M3eSliderElement","_M3eSliderElement_directionalitySubscription","set","_ticks","Array","_M3eSliderElement_thumbs","_M3eSliderElement_activeThumb","_M3eSliderElement_cachedWidth","_M3eSliderElement_cachedThumbWidth","_M3eSliderElement_cachedLeft","size","discrete","min","max","step","labelled","ResizeController","callback","_M3eSliderElement_instances","_M3eSliderElement_updateDimensions","thumbs","isRange","length","thumb","lowerThumb","upperThumb","connectedCallback","__classPrivateFieldSet","M3eDirectionality","observe","call","requestUpdate","disconnectedCallback","updated","forEach","x","ifDefined","undefined","_M3eSliderElement_handlePointerDown","_M3eSliderElement_handlePointerMove","_M3eSliderElement_handlePointerUp","_M3eSliderElement_handleKeyDown","_M3eSliderElement_handleThumbChange","map","_M3eSliderElement_renderTick","_M3eSliderElement_handleSlotChange","tick","active","safeStyleMap","transform","current","_M3eSliderElement_pointFromValue","e","target","assignedElements","flatten","filter","_base","style","setProperty","removeProperty","_M3eSliderElement_updateThumbs","i","ariaValueMin","ariaValueMax","ariaValueNow","pos","clientX","numSteps","Math","floor","percentage","fixedPercentage","round","impreciseValue","_M3eSliderElement_updateCachedDimensions","force","clientWidth","getBoundingClientRect","left","lowerValue","lowerPos","classList","toggle","_M3eSliderElement_updateTicks","upperValue","upperPos","push","pointerType","button","HTMLElement","setPointerCapture","pointerId","composedPath","find","_M3eSliderElement_valueFromPoint","_M3eSliderElement_changeThumb","mid","hasPointerCapture","hasCustomState","deleteCustomState","transition","releasePointerCapture","key","preventDefault","stopPropagation","animate","prev","prefersReducedMotion","addCustomState","addEventListener","once","spring","fastEffects","markAsDirty","markAsTouched","composed","cancelable","smallStart","smallEnd","mediumStart","mediumEnd","largeStart","largeEnd","extraLargeStart","extraLargeEnd","secondaryContainer","onPrimary","onSecondaryContainer","state","Boolean","attribute"],"mappings":"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"}
|