@m3e/web 2.5.4 → 2.5.5

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.
Files changed (188) hide show
  1. package/dist/all.js +382 -313
  2. package/dist/all.js.map +1 -1
  3. package/dist/all.min.js +56 -56
  4. package/dist/all.min.js.map +1 -1
  5. package/dist/autocomplete.js +12 -12
  6. package/dist/autocomplete.js.map +1 -1
  7. package/dist/autocomplete.min.js +1 -1
  8. package/dist/autocomplete.min.js.map +1 -1
  9. package/dist/bottom-sheet.js +10 -13
  10. package/dist/bottom-sheet.js.map +1 -1
  11. package/dist/bottom-sheet.min.js +1 -1
  12. package/dist/bottom-sheet.min.js.map +1 -1
  13. package/dist/breadcrumb.js +4 -4
  14. package/dist/breadcrumb.js.map +1 -1
  15. package/dist/breadcrumb.min.js +1 -1
  16. package/dist/breadcrumb.min.js.map +1 -1
  17. package/dist/button-group.js +5 -5
  18. package/dist/button-group.js.map +1 -1
  19. package/dist/button-group.min.js +1 -1
  20. package/dist/button-group.min.js.map +1 -1
  21. package/dist/button.js +15 -15
  22. package/dist/button.js.map +1 -1
  23. package/dist/button.min.js +1 -1
  24. package/dist/button.min.js.map +1 -1
  25. package/dist/checkbox.js +1 -1
  26. package/dist/checkbox.js.map +1 -1
  27. package/dist/checkbox.min.js +1 -1
  28. package/dist/checkbox.min.js.map +1 -1
  29. package/dist/chips.js +9 -9
  30. package/dist/chips.js.map +1 -1
  31. package/dist/chips.min.js +1 -1
  32. package/dist/chips.min.js.map +1 -1
  33. package/dist/core-a11y.js +5 -3
  34. package/dist/core-a11y.js.map +1 -1
  35. package/dist/core-a11y.min.js +4 -4
  36. package/dist/core-a11y.min.js.map +1 -1
  37. package/dist/core-anchoring.js +4 -4
  38. package/dist/core-anchoring.js.map +1 -1
  39. package/dist/core-anchoring.min.js +1 -1
  40. package/dist/core-anchoring.min.js.map +1 -1
  41. package/dist/core.js +77 -40
  42. package/dist/core.js.map +1 -1
  43. package/dist/core.min.js +1 -1
  44. package/dist/core.min.js.map +1 -1
  45. package/dist/css-custom-data.json +355 -340
  46. package/dist/custom-elements.json +3644 -3481
  47. package/dist/datepicker.js +12 -12
  48. package/dist/datepicker.js.map +1 -1
  49. package/dist/datepicker.min.js +1 -1
  50. package/dist/datepicker.min.js.map +1 -1
  51. package/dist/dialog.js +2 -2
  52. package/dist/dialog.js.map +1 -1
  53. package/dist/dialog.min.js +1 -1
  54. package/dist/dialog.min.js.map +1 -1
  55. package/dist/drawer-container.js +14 -14
  56. package/dist/drawer-container.js.map +1 -1
  57. package/dist/drawer-container.min.js +1 -1
  58. package/dist/drawer-container.min.js.map +1 -1
  59. package/dist/expansion-panel.js +2 -2
  60. package/dist/expansion-panel.js.map +1 -1
  61. package/dist/expansion-panel.min.js +1 -1
  62. package/dist/expansion-panel.min.js.map +1 -1
  63. package/dist/fab-menu.js +4 -4
  64. package/dist/fab-menu.js.map +1 -1
  65. package/dist/fab-menu.min.js +1 -1
  66. package/dist/fab-menu.min.js.map +1 -1
  67. package/dist/fab.js +2 -2
  68. package/dist/fab.js.map +1 -1
  69. package/dist/fab.min.js +1 -1
  70. package/dist/fab.min.js.map +1 -1
  71. package/dist/form-field.js +19 -19
  72. package/dist/form-field.js.map +1 -1
  73. package/dist/form-field.min.js +2 -2
  74. package/dist/form-field.min.js.map +1 -1
  75. package/dist/html-custom-data.json +128 -118
  76. package/dist/icon-button.js +15 -15
  77. package/dist/icon-button.js.map +1 -1
  78. package/dist/icon-button.min.js +1 -1
  79. package/dist/icon-button.min.js.map +1 -1
  80. package/dist/list.js +16 -16
  81. package/dist/list.js.map +1 -1
  82. package/dist/list.min.js +1 -1
  83. package/dist/list.min.js.map +1 -1
  84. package/dist/menu.js +20 -20
  85. package/dist/menu.js.map +1 -1
  86. package/dist/menu.min.js +1 -1
  87. package/dist/menu.min.js.map +1 -1
  88. package/dist/nav-bar.js +40 -10
  89. package/dist/nav-bar.js.map +1 -1
  90. package/dist/nav-bar.min.js +1 -1
  91. package/dist/nav-bar.min.js.map +1 -1
  92. package/dist/nav-menu.js +8 -8
  93. package/dist/nav-menu.js.map +1 -1
  94. package/dist/nav-menu.min.js +1 -1
  95. package/dist/nav-menu.min.js.map +1 -1
  96. package/dist/nav-rail.js +15 -11
  97. package/dist/nav-rail.js.map +1 -1
  98. package/dist/nav-rail.min.js +1 -1
  99. package/dist/nav-rail.min.js.map +1 -1
  100. package/dist/option.js +13 -13
  101. package/dist/option.js.map +1 -1
  102. package/dist/option.min.js +1 -1
  103. package/dist/option.min.js.map +1 -1
  104. package/dist/radio-group.js +2 -2
  105. package/dist/radio-group.js.map +1 -1
  106. package/dist/radio-group.min.js +1 -1
  107. package/dist/radio-group.min.js.map +1 -1
  108. package/dist/search.js +12 -12
  109. package/dist/search.js.map +1 -1
  110. package/dist/search.min.js +1 -1
  111. package/dist/search.min.js.map +1 -1
  112. package/dist/segmented-button.js +7 -7
  113. package/dist/segmented-button.js.map +1 -1
  114. package/dist/segmented-button.min.js +1 -1
  115. package/dist/segmented-button.min.js.map +1 -1
  116. package/dist/select.js +6 -6
  117. package/dist/select.js.map +1 -1
  118. package/dist/select.min.js +1 -1
  119. package/dist/select.min.js.map +1 -1
  120. package/dist/slider.js +5 -5
  121. package/dist/slider.js.map +1 -1
  122. package/dist/slider.min.js +1 -1
  123. package/dist/slider.min.js.map +1 -1
  124. package/dist/split-pane.js +10 -10
  125. package/dist/split-pane.js.map +1 -1
  126. package/dist/split-pane.min.js +1 -1
  127. package/dist/split-pane.min.js.map +1 -1
  128. package/dist/src/bottom-sheet/BottomSheetElement.d.ts +1 -1
  129. package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
  130. package/dist/src/button/styles/ButtonSizeStyle.d.ts.map +1 -1
  131. package/dist/src/button/styles/ButtonStyle.d.ts.map +1 -1
  132. package/dist/src/button/styles/ButtonVariantStyle.d.ts.map +1 -1
  133. package/dist/src/button-group/ButtonGroupElement.d.ts.map +1 -1
  134. package/dist/src/checkbox/CheckboxElement.d.ts.map +1 -1
  135. package/dist/src/core/a11y/InteractivityChecker.d.ts +2 -1
  136. package/dist/src/core/a11y/InteractivityChecker.d.ts.map +1 -1
  137. package/dist/src/core/anchoring/FloatingPanelElement.d.ts +1 -1
  138. package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts +9 -2
  139. package/dist/src/core/shared/mixins/SuppressInitialAnimation.d.ts.map +1 -1
  140. package/dist/src/core/shared/primitives/CollapsibleElement.d.ts +13 -0
  141. package/dist/src/core/shared/primitives/CollapsibleElement.d.ts.map +1 -1
  142. package/dist/src/core/shared/primitives/CollapsibleOrientation.d.ts +3 -0
  143. package/dist/src/core/shared/primitives/CollapsibleOrientation.d.ts.map +1 -0
  144. package/dist/src/core/shared/primitives/index.d.ts +1 -0
  145. package/dist/src/core/shared/primitives/index.d.ts.map +1 -1
  146. package/dist/src/datepicker/DatepickerElement.d.ts +1 -1
  147. package/dist/src/drawer-container/styles/DrawerContainerStyle.d.ts.map +1 -1
  148. package/dist/src/fab/FabElement.d.ts.map +1 -1
  149. package/dist/src/fab/styles/FabStyle.d.ts.map +1 -1
  150. package/dist/src/fab-menu/FabMenuElement.d.ts +1 -1
  151. package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
  152. package/dist/src/icon-button/styles/IconButtonSizeStyle.d.ts.map +1 -1
  153. package/dist/src/icon-button/styles/IconButtonStyle.d.ts.map +1 -1
  154. package/dist/src/icon-button/styles/IconButtonVariantStyle.d.ts.map +1 -1
  155. package/dist/src/menu/MenuElement.d.ts +1 -1
  156. package/dist/src/nav-bar/NavItemElement.d.ts +7 -1
  157. package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
  158. package/dist/src/nav-rail/NavRailElement.d.ts +10 -5
  159. package/dist/src/nav-rail/NavRailElement.d.ts.map +1 -1
  160. package/dist/src/search/styles/SearchBarStyle.d.ts.map +1 -1
  161. package/dist/src/split-pane/SplitPaneElement.d.ts.map +1 -1
  162. package/dist/src/stepper/StepperElement.d.ts.map +1 -1
  163. package/dist/src/toolbar/ToolbarElement.d.ts.map +1 -1
  164. package/dist/stepper.js +6 -6
  165. package/dist/stepper.js.map +1 -1
  166. package/dist/stepper.min.js +1 -1
  167. package/dist/stepper.min.js.map +1 -1
  168. package/dist/tabs.js +5 -5
  169. package/dist/tabs.js.map +1 -1
  170. package/dist/tabs.min.js +1 -1
  171. package/dist/tabs.min.js.map +1 -1
  172. package/dist/toc.js +7 -7
  173. package/dist/toc.js.map +1 -1
  174. package/dist/toc.min.js +1 -1
  175. package/dist/toc.min.js.map +1 -1
  176. package/dist/toolbar.js +2 -1
  177. package/dist/toolbar.js.map +1 -1
  178. package/dist/toolbar.min.js +1 -1
  179. package/dist/toolbar.min.js.map +1 -1
  180. package/dist/tooltip.js +3 -3
  181. package/dist/tooltip.js.map +1 -1
  182. package/dist/tooltip.min.js +1 -1
  183. package/dist/tooltip.min.js.map +1 -1
  184. package/dist/tree.js +7 -7
  185. package/dist/tree.js.map +1 -1
  186. package/dist/tree.min.js +1 -1
  187. package/dist/tree.min.js.map +1 -1
  188. package/package.json +1 -1
@@ -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 * @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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"}
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(:is(:state(--animating), :--animating)) .track-active,\r\n :host(:is(:state(--animating), :--animating)) .track-inactive.start,\r\n :host(:is(:state(--animating), :--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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"}
@@ -3,5 +3,5 @@
3
3
  * Copyright (c) 2025–2026 matraic
4
4
  * See LICENSE file in the project root for full license text.
5
5
  */
6
- import{__classPrivateFieldGet as e,__decorate as t,__classPrivateFieldSet as i}from"tslib";import{LitElement as a,html as s,unsafeCSS as r,css as l}from"lit";import{query as h,property as n,state as c}from"lit/decorators.js";import{ifDefined as o}from"lit/directives/if-defined.js";import{Dirty as d,Touched as m,FormAssociated as p,Focusable as v,Disabled as u,AttachInternals as b,Role as f,formValue as k,DesignToken as g,customElement as x,ResizeController as y,safeStyleMap as $,hasCustomState as _,deleteCustomState as w,prefersReducedMotion as T,addCustomState as z}from"@m3e/web/core";import{M3eDirectionality as E}from"@m3e/web/core/bidi";var M,S;let P=class extends(d(m(p(v(u(b(f(a,"slider")))))))){constructor(){super(...arguments),M.add(this),this.value=null}get[(M=new WeakSet,k)](){return this.value?.toString()??null}focus(e){this._focusRing&&(this._focusRing.disabled=!0),super.focus(e),this._focusRing&&(this._focusRing.disabled=this.disabled)}firstUpdated(e){super.firstUpdated(e),this._focusRing?.attach(this)}update(e){super.update(e),e.has("value")&&this.dispatchEvent(new Event("value-change",{bubbles:!0}))}render(){return s`<div class="label" aria-hidden="true">${e(this,M,"a",S)}</div><div class="base"><m3e-focus-ring class="focus-ring" ?disabled="${this.disabled}"></m3e-focus-ring><div class="touch" aria-hidden="true"></div><div class="wrapper"><div class="handle"></div></div></div>`}};var C,L,W,D,R,A,j,U,H,N,B,G,I,V,O,X,q,F,J,K,Q;S=function(){return this.closest("m3e-slider")?.displayWith?.(this.value)??this.value?.toString()??""},P.styles=l`:host { display: block; box-sizing: border-box; position: absolute; outline: none; top: 0; bottom: 0; border-radius: var(--m3e-slider-thumb-shape, ${g.shape.corner.full}); user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .base { box-sizing: border-box; vertical-align: middle; display: inline-flex; align-items: center; justify-content: center; position: relative; width: 100%; height: 100%; border-radius: inherit; } .touch { position: absolute; height: 3rem; left: 0; right: 0; touch-action: none; } .wrapper { display: inline-flex; justify-content: center; height: 100%; border-radius: inherit; width: calc(var(--m3e-slider-thumb-width, 0.25rem) + calc(var(--m3e-slider-thumb-padding, 0.375em) * 2)); } .focus-ring { top: calc(0px - var(--m3e-focus-ring-thickness, 3px)); bottom: calc(0px - var(--m3e-focus-ring-thickness, 3px)); left: var(--m3e-focus-ring-thickness, 3px); right: var(--m3e-focus-ring-thickness, 3px); } .label { user-select: none; position: absolute; display: flex; align-items: center; justify-content: center; visibility: var(--_slider-label-visibility, hidden); opacity: var(--_slider-label-opacity, 0); transform: var(--_slider-label-transform, scale(0)); transition: ${r(`opacity ${g.motion.duration.short3} ${g.motion.easing.standard}, \n transform ${g.motion.duration.short3} ${g.motion.easing.standard},\n visibility ${g.motion.duration.short3} ${g.motion.easing.standard} allow-discrete`)}; width: var(--m3e-slider-label-width, 3rem); height: var(--_m3e-slider-label-height, 2.75rem); top: calc(0px - var(--_m3e-slider-label-height, 2.75rem) - var(--_m3e-slider-label-margin, 0.25rem)); inset-inline-start: calc(0px - 100%); border-radius: var(--m3e-slider-label-shape, ${g.shape.corner.full}); background-color: var(--m3e-slider-label-container-color, ${g.color.inverseSurface}); color: var(--m3e-slider-label-color, ${g.color.inverseOnSurface}); font-size: var(--m3e-slider-label-font-size, ${g.typescale.standard.label.medium.fontSize}); font-weight: var(--m3e-slider-label-font-weight, ${g.typescale.standard.label.medium.fontWeight}); line-height: var(--m3e-slider-label-line-height, ${g.typescale.standard.label.medium.lineHeight}); letter-spacing: var(--m3e-slider-label-tracking, ${g.typescale.standard.label.medium.tracking}); } @starting-style { .label { opacity: 0; transform: scale(0); } } .handle { height: 100%; width: var(--m3e-slider-thumb-width, 0.25rem); border-radius: inherit; transition: ${r(`width ${g.motion.duration.short2} ${g.motion.easing.standard}`)}; } :host(:active:not([aria-disabled="true"])) .handle { width: var(--m3e-slider-thumb-pressed-width, 2px); } :host(:not([aria-disabled="true"])) .handle { background-color: var(--m3e-slider-thumb-color, ${g.color.primary}); } :host([aria-disabled="true"]) .handle { opacity: var(--m3e-slider-thumb-disabled-opacity, 38%); background-color: var(--m3e-slider-thumb-disabled-color, ${g.color.onSurface}); } @media (prefers-reduced-motion) { .label { transition: none; } } @media (forced-colors: active) { .label { forced-color-adjust: none; background-color: CanvasText; color: Canvas; } :host(:not([aria-disabled="true"])) .handle { background-color: CanvasText; } :host([aria-disabled="true"]) .handle { opacity: unset; background-color: GrayText; } }`,t([h(".focus-ring")],P.prototype,"_focusRing",void 0),t([n({type:Number,reflect:!0})],P.prototype,"value",void 0),P=t([x("m3e-slider-thumb")],P);let Y=class extends(b(a)){constructor(){super(),C.add(this),L.set(this,void 0),this._ticks=new Array,W.set(this,new Array),D.set(this,void 0),R.set(this,0),A.set(this,0),j.set(this,0),this.size="extra-small",this.disabled=!1,this.discrete=!1,this.min=0,this.max=100,this.step=1,this.labelled=!1,this.displayWith=null,new y(this,{callback:()=>e(this,C,"m",V).call(this,!0)})}get thumbs(){return e(this,W,"f")}get isRange(){return e(this,W,"f").length>1}get thumb(){return e(this,W,"f")[0]??null}get lowerThumb(){return this.thumb}get upperThumb(){return e(this,W,"f")[1]??null}connectedCallback(){super.connectedCallback(),i(this,L,E.observe(()=>{e(this,C,"m",V).call(this,!0),this.requestUpdate()}),"f")}disconnectedCallback(){super.disconnectedCallback(),e(this,L,"f")?.call(this)}updated(t){super.updated(t),t.has("disabled")&&e(this,W,"f").forEach(e=>e.disabled=this.disabled)}render(){return s`<div class="base" tabindex="${o(this.disabled?void 0:"-1")}" @pointerdown="${e(this,C,"m",X)}" @pointermove="${e(this,C,"m",q)}" @pointerup="${e(this,C,"m",F)}" @keydown="${e(this,C,"m",J)}" @value-change="${e(this,C,"m",K)}"><div class="track" aria-hidden="true"><div class="track-inactive start"></div><div class="track-active"></div><div class="track-inactive end"></div></div><div class="ticks" aria-hidden="true">${this._ticks.map(t=>e(this,C,"m",U).call(this,t))}</div><slot @slotchange="${e(this,C,"m",H)}"></slot></div>`}};L=new WeakMap,W=new WeakMap,D=new WeakMap,R=new WeakMap,A=new WeakMap,j=new WeakMap,C=new WeakSet,U=function(t){return s`<div class="tick ${t.active?"active":"inactive"}" style="${$({transform:`translate(${"rtl"===E.current?-e(this,C,"m",B).call(this,t.value):e(this,C,"m",B).call(this,t.value)}px, 0)`})}"></div>`},H=function(t){i(this,W,t.target.assignedElements({flatten:!0}).filter(e=>e instanceof P),"f"),e(this,W,"f").length>2&&(e(this,W,"f").length=2),this.isRange?this._base?.style.setProperty("--_slider-active-track-middle-shape","0"):this._base?.style.removeProperty("--_slider-active-track-middle-shape"),e(this,C,"m",N).call(this)},N=function(){e(this,W,"f").forEach((t,i)=>{this.disabled&&(t.disabled=!0),t.ariaValueMin=`${e(this,W,"f")[i-1]?.value??this.min}`,t.ariaValueMax=`${e(this,W,"f")[i+1]?.value??this.max}`,t.ariaValueNow=`${t.value??e(this,W,"f")[i-1]?.value??this.min}`})},B=function(t){return(e(this,R,"f")-e(this,A,"f"))*((t-this.min)/(this.max-this.min))},G=function(t){const i="rtl"===E.current?e(this,j,"f")+e(this,R,"f")-t.clientX:t.clientX-e(this,j,"f"),a=0===this.step?1:this.step,s=Math.floor((this.max-this.min)/a),r=i/e(this,R,"f"),l=Math.round(r*s)/s*(this.max-this.min)+this.min;return Math.round(l/a)*a},I=function(t=!1){this.lowerThumb&&(i(this,R,!t&&e(this,R,"f")>0?e(this,R,"f"):this.clientWidth,"f"),i(this,A,!t&&e(this,A,"f")>0?e(this,A,"f"):this.lowerThumb.clientWidth,"f"),i(this,j,!t&&e(this,j,"f")>0?e(this,j,"f"):this.getBoundingClientRect().left,"f"))},V=function(t=!1){if(e(this,C,"m",I).call(this,t),!this.lowerThumb)return;const i=this.lowerThumb.value??this.min,a=e(this,C,"m",B).call(this,i);if(this.lowerThumb.style.transform=`translate(${"rtl"===E.current?-a:a}px, 0)`,this.upperThumb){const t=this.upperThumb.value??i,s=e(this,C,"m",B).call(this,t);this.upperThumb.style.transform=`translate(${"rtl"===E.current?-s:s}px, 0)`,this._base?.classList.toggle("range",!0),this._base?.style.setProperty("--_slider-inactive-track-before-size",`${a}px`),this._base?.style.setProperty("--_slider-active-track-offset",`${a+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-active-track-size",s-a-e(this,A,"f")+"px"),this._base?.style.setProperty("--_slider-inactive-track-after-offset",`${s+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-inactive-track-after-size",e(this,R,"f")-e(this,A,"f")-s+"px"),e(this,C,"m",O).call(this,e=>e>i&&e<t)}else this._base?.classList.toggle("range",!1),this._base?.style.setProperty("--_slider-active-track-size",`${a}px`),this._base?.style.setProperty("--_slider-inactive-track-after-offset",`${a+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-inactive-track-after-size",e(this,R,"f")-a-e(this,A,"f")+"px"),e(this,C,"m",O).call(this,e=>e<i)},O=function(e){if(this._ticks=[],this.discrete&&this.step>1)for(let t=this.min;t<=this.max;t+=this.step)this._ticks.push({value:t,active:e(t)});else this._ticks.push({value:this.min,active:e(this.min)}),this.min<0&&this.max>0&&this._ticks.push({value:0,active:e(0)}),this._ticks.push({value:this.max,active:e(this.max)})},X=function(t){if("mouse"===t.pointerType&&t.button>1)return;if(!this.lowerThumb||this.disabled)return;if(t.target instanceof HTMLElement&&t.target.setPointerCapture(t.pointerId),i(this,D,t.composedPath().find(e=>e instanceof P),"f"),e(this,D,"f"))return;const a=e(this,C,"m",G).call(this,t);if(this.upperThumb){const t=this.lowerThumb.value??this.min,s=this.upperThumb.value??t;if(a<t)this.lowerThumb.disabled||(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f"));else if(a>s)this.upperThumb.disabled||(e(this,C,"m",Q).call(this,this.upperThumb,a,!0),i(this,D,this.upperThumb,"f"));else{a<(t+s)/2&&!this.lowerThumb.disabled?(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f")):this.upperThumb.disabled||(e(this,C,"m",Q).call(this,this.upperThumb,a,!0),i(this,D,this.upperThumb,"f"))}}else this.lowerThumb.disabled||(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f"))},q=function(t){if(!(t.target instanceof HTMLElement)||!t.target.hasPointerCapture(t.pointerId)||!e(this,D,"f")||e(this,D,"f").disabled)return;const i=e(this,C,"m",G).call(this,t);let a=this.min,s=this.max;e(this,D,"f")===this.upperThumb?a=Math.max(a,this.lowerThumb?.value??0):this.upperThumb&&(s=Math.min(s,this.upperThumb.value??this.max)),_(this,"-animating")&&(w(this,"-animating"),e(this,D,"f").style.transition=""),e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(s,Math.max(a,i)))},F=function(t){"mouse"===t.pointerType&&t.button>1||this.lowerThumb&&!this.disabled&&(t.target instanceof HTMLElement&&t.target.releasePointerCapture(t.pointerId),e(this,D,"f")&&!e(this,D,"f").disabled&&e(this,D,"f").focus())},J=function(t){if(i(this,D,t.composedPath().find(e=>e instanceof P),"f"),!e(this,D,"f"))return;const a=e(this,D,"f").value??0;let s=this.min,r=this.max;switch(e(this,D,"f")===this.upperThumb?s=Math.max(s,this.lowerThumb?.value??0):this.upperThumb&&(r=Math.max(r,this.upperThumb.value??this.max)),t.key){case"Home":e(this,C,"m",Q).call(this,e(this,D,"f"),s),t.preventDefault();break;case"End":e(this,C,"m",Q).call(this,e(this,D,"f"),r),t.preventDefault();break;case"PageUp":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+(this.step>1?this.step:10))):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-(this.step>1?this.step:10))),t.preventDefault();break;case"PageDown":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-(this.step>1?this.step:10))):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+(this.step>1?this.step:10))),t.preventDefault();break;case"Down":case"ArrowDown":case"Left":case"ArrowLeft":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-this.step)):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+this.step)),t.preventDefault();break;case"Up":case"ArrowUp":case"Right":case"ArrowRight":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+this.step)):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-this.step)),t.preventDefault();break;case" ":t.preventDefault()}},K=function(t){t.stopPropagation(),e(this,C,"m",N).call(this),e(this,C,"m",V).call(this)},Q=function(e,t,i=!1){if(e.value===t)return;const a=e.value;i&&!T()&&(z(this,"-animating"),e.addEventListener("transitionend",()=>{e.style.transition="",w(this,"-animating")},{once:!0}),e.style.transition=`transform ${g.motion.spring.fastEffects}`),e.value=t,e.markAsDirty(),e.markAsTouched(),e.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?e.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})):e.value=a},Y.styles=l`:host { display: inline-block; vertical-align: middle; min-inline-size: var(--m3e-slider-min-width, 12.5rem); user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :host(:not([disabled])) { cursor: pointer; } :host([size="extra-small"]), :host([size="small"]) { height: var(--m3e-slider-small-height, 2.75rem); } :host(:not(:dir(rtl))[size="extra-small"]) .base, :host(:not(:dir(rtl))[size="small"]) .base { --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${g.shape.corner.smallStart}); --_slider-inactive-track-start-shape: var( --m3e-slider-small-inactive-active-track-start-shape, ${g.shape.corner.smallStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-small-inactive-track-end-shape, ${g.shape.corner.smallEnd} ); } :host(:dir(rtl)[size="extra-small"]) .base, :host(:dir(rtl)[size="small"]) .base { --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${g.shape.corner.smallEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-small-inactive-active-track-start-shape, ${g.shape.corner.smallEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-small-inactive-track-end-shape, ${g.shape.corner.smallStart} ); } :host([size="extra-small"]) .track { height: calc(var(--m3e-slider-extra-small-track-height, 1rem)); } :host([size="small"]) .track { height: calc(var(--m3e-slider-small-track-height, 1.5rem)); } :host([size="medium"]) { height: var(--m3e-slider-medium-height, 3.25rem); } :host(:not(:dir(rtl))[size="medium"]) .base { --_slider-active-track-shape: var( --m3e-slider-medium-active-track-shape, ${g.shape.corner.mediumStart} ); --_slider-inactive-track-start-shape: var( --m3e-slider-medium-inactive-active-track-start-shape, ${g.shape.corner.mediumStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-medium-inactive-track-end-shape, ${g.shape.corner.mediumEnd} ); } :host(:dir(rtl)[size="medium"]) .base { --_slider-active-track-shape: var(--m3e-slider-medium-active-track-shape, ${g.shape.corner.mediumEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-medium-inactive-active-track-start-shape, ${g.shape.corner.mediumEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-medium-inactive-track-end-shape, ${g.shape.corner.mediumStart} ); } :host([size="medium"]) .track { height: var(--m3e-slider-medium-track-height, 2.5rem); } :host([size="large"]) { height: var(--m3e-slider-large-height, 4.25rem); } :host(:not(:dir(rtl))[size="large"]) .base { --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${g.shape.corner.largeStart}); --_slider-inactive-track-start-shape: var( --m3e-slider-large-inactive-active-track-start-shape, ${g.shape.corner.largeStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-large-inactive-track-end-shape, ${g.shape.corner.largeEnd} ); } :host(:dir(rtl)[size="large"]) .base { --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${g.shape.corner.largeEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-large-inactive-active-track-start-shape, ${g.shape.corner.largeEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-large-inactive-track-end-shape, ${g.shape.corner.largeStart} ); } :host([size="large"]) .track { height: var(--m3e-slider-large-track-height, 3.5rem); } :host([size="extra-large"]) { height: var(--m3e-slider-extra-large-height, 6.75rem); } :host(:not(:dir(rtl))[size="extra-large"]) .base { --_slider-active-track-shape: var( --m3e-slider-extra-large-active-track-shape, ${g.shape.corner.extraLargeStart} ); --_slider-inactive-track-start-shape: var( --m3e-slider-extra-large-inactive-active-track-start-shape, ${g.shape.corner.extraLargeStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-extra-large-inactive-track-end-shape, ${g.shape.corner.extraLargeEnd} ); } :host(:dir(rtl)[size="extra-large"]) .base { --_slider-active-track-shape: var( --m3e-slider-extra-large-active-track-shape, ${g.shape.corner.extraLargeEnd} ); --_slider-inactive-track-start-shape: var( --m3e-slider-extra-large-inactive-active-track-start-shape, ${g.shape.corner.extraLargeEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-extra-large-inactive-track-end-shape, ${g.shape.corner.extraLargeStart} ); } :host([size="extra-large"]) .track { height: var(--m3e-slider-extra-large-track-height, 6rem); } :host(:state(-animating)) .track-active, :host(:state(-animating)) .track-inactive.start, :host(:state(-animating)) .track-inactive.end { transition: ${r(`margin-inline-start ${g.motion.spring.fastEffects},\n width ${g.motion.spring.fastEffects}`)}; } .base { display: inline-flex; align-items: center; position: relative; width: 100%; height: 100%; border-radius: inherit; outline: none; touch-action: none; } .track { position: relative; flex: 1 1 auto; touch-action: none; } .track-inactive, .track-active { position: absolute; height: 100%; touch-action: none; } .track-active { margin-inline-start: var(--_slider-active-track-offset, 0px); width: var(--_slider-active-track-size, 0px); border-radius: var(--_slider-active-track-middle-shape, var(--_slider-active-track-shape)); } .track-inactive.start { width: var(--_slider-inactive-track-before-size, 0px); border-radius: var(--_slider-inactive-track-start-shape); } .track-inactive.end { margin-inline-start: var(--_slider-inactive-track-after-offset, 0px); width: var(--_slider-inactive-track-after-size, 0px); border-radius: var(--_slider-inactive-track-end-shape); } .ticks { position: absolute; width: 100%; height: var(--m3e-slider-tick-size, 0.25rem); overflow: visible; touch-action: none; } .tick { position: absolute; top: 0; touch-action: none; inset-inline-start: calc(var(--m3e-slider-tick-size, 0.25rem) + calc(var(--m3e-slider-tick-size, 0.25rem) / 2)); width: var(--m3e-slider-tick-size, 0.25rem); height: var(--m3e-slider-tick-size, 0.25rem); border-radius: var(--m3e-slider-tick-shape, ${g.shape.corner.full}); } :host(:not([disabled])) .track-inactive { background-color: var(--m3e-slider-inactive-track-color, ${g.color.secondaryContainer}); } :host([disabled]) .track-inactive { background-color: color-mix( in srgb, var(--m3e-slider-disabled-inactive-track-color, ${g.color.onSurface}) var(--m3e-slider-disabled-inactive-track-opacity, 12%), transparent ); } :host(:not([disabled])) .track-active { background-color: var(--m3e-slider-active-track-color, ${g.color.primary}); } :host([disabled]) .track-active { background-color: color-mix( in srgb, var(--m3e-slider-disabled-active-track-color, ${g.color.onSurface}) var(--m3e-slider-disabled-active-track-opacity, 38%), transparent ); } :host(:not([disabled])) .tick.active { background-color: var(--m3e-slider-tick-active-color, ${g.color.onPrimary}); } :host([disabled]) .tick.active { background-color: var(--m3e-slider-disabled-tick-active-color, ${g.color.inverseOnSurface}); } :host(:not([disabled])) .tick.inactive { background-color: var(--m3e-slider-tick-inactive-color, ${g.color.onSecondaryContainer}); } :host([disabled]) .tick.inactive { background-color: var(--m3e-slider-disabled-tick-inactive-color, ${g.color.onSurface}); } :host(:not([discrete])) .tick.active { display: none; } :host(:hover[labelled]) .base, :host(:focus-within[labelled]) .base { --_slider-label-visibility: visible; --_slider-label-opacity: 1; --_slider-label-transform: scale(1); } @media (forced-colors: active) { :host(:not([disabled])) .track-inactive { background-color: unset; } :host(:not([disabled])) .base.range .track-inactive.start, :host(:not([disabled])) .track-inactive.end { border: 1px solid CanvasText; box-sizing: border-box; } :host(:not([disabled])) .tick.inactive { background-color: CanvasText; } :host(:not([disabled])) .tick.active { background-color: Canvas; } :host(:not([disabled])) .track-active { background-color: CanvasText; } :host([disabled]) .base.range .track-inactive.start, :host([disabled]) .track-inactive.end { border: 1px solid GrayText; box-sizing: border-box; } :host([disabled]) .track-active { background-color: GrayText; } :host([disabled]) .tick.inactive { background-color: GrayText; } :host([disabled]) .tick.active { background-color: Canvas; } }`,t([h(".base")],Y.prototype,"_base",void 0),t([c()],Y.prototype,"_ticks",void 0),t([n({reflect:!0})],Y.prototype,"size",void 0),t([n({type:Boolean,reflect:!0})],Y.prototype,"disabled",void 0),t([n({type:Boolean,reflect:!0})],Y.prototype,"discrete",void 0),t([n({type:Number})],Y.prototype,"min",void 0),t([n({type:Number})],Y.prototype,"max",void 0),t([n({type:Number})],Y.prototype,"step",void 0),t([n({type:Boolean})],Y.prototype,"labelled",void 0),t([n({attribute:!1})],Y.prototype,"displayWith",void 0),Y=t([x("m3e-slider")],Y);export{Y as M3eSliderElement,P as M3eSliderThumbElement};
6
+ import{__classPrivateFieldGet as e,__decorate as t,__classPrivateFieldSet as i}from"tslib";import{LitElement as a,html as s,unsafeCSS as r,css as l}from"lit";import{query as h,property as n,state as c}from"lit/decorators.js";import{ifDefined as o}from"lit/directives/if-defined.js";import{Dirty as d,Touched as m,FormAssociated as p,Focusable as v,Disabled as u,AttachInternals as b,Role as f,formValue as g,DesignToken as k,customElement as x,ResizeController as y,safeStyleMap as $,hasCustomState as _,deleteCustomState as w,prefersReducedMotion as T,addCustomState as z}from"@m3e/web/core";import{M3eDirectionality as E}from"@m3e/web/core/bidi";var M,S;let P=class extends(d(m(p(v(u(b(f(a,"slider")))))))){constructor(){super(...arguments),M.add(this),this.value=null}get[(M=new WeakSet,g)](){return this.value?.toString()??null}focus(e){this._focusRing&&(this._focusRing.disabled=!0),super.focus(e),this._focusRing&&(this._focusRing.disabled=this.disabled)}firstUpdated(e){super.firstUpdated(e),this._focusRing?.attach(this)}update(e){super.update(e),e.has("value")&&this.dispatchEvent(new Event("value-change",{bubbles:!0}))}render(){return s`<div class="label" aria-hidden="true">${e(this,M,"a",S)}</div><div class="base"><m3e-focus-ring class="focus-ring" ?disabled="${this.disabled}"></m3e-focus-ring><div class="touch" aria-hidden="true"></div><div class="wrapper"><div class="handle"></div></div></div>`}};var C,L,W,D,R,A,j,U,H,N,B,G,I,V,O,X,q,F,J,K,Q;S=function(){return this.closest("m3e-slider")?.displayWith?.(this.value)??this.value?.toString()??""},P.styles=l`:host { display: block; box-sizing: border-box; position: absolute; outline: none; top: 0; bottom: 0; border-radius: var(--m3e-slider-thumb-shape, ${k.shape.corner.full}); user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .base { box-sizing: border-box; vertical-align: middle; display: inline-flex; align-items: center; justify-content: center; position: relative; width: 100%; height: 100%; border-radius: inherit; } .touch { position: absolute; height: 3rem; left: 0; right: 0; touch-action: none; } .wrapper { display: inline-flex; justify-content: center; height: 100%; border-radius: inherit; width: calc(var(--m3e-slider-thumb-width, 0.25rem) + calc(var(--m3e-slider-thumb-padding, 0.375em) * 2)); } .focus-ring { top: calc(0px - var(--m3e-focus-ring-thickness, 3px)); bottom: calc(0px - var(--m3e-focus-ring-thickness, 3px)); left: var(--m3e-focus-ring-thickness, 3px); right: var(--m3e-focus-ring-thickness, 3px); } .label { user-select: none; position: absolute; display: flex; align-items: center; justify-content: center; visibility: var(--_slider-label-visibility, hidden); opacity: var(--_slider-label-opacity, 0); transform: var(--_slider-label-transform, scale(0)); transition: ${r(`opacity ${k.motion.duration.short3} ${k.motion.easing.standard}, \n transform ${k.motion.duration.short3} ${k.motion.easing.standard},\n visibility ${k.motion.duration.short3} ${k.motion.easing.standard} allow-discrete`)}; width: var(--m3e-slider-label-width, 3rem); height: var(--_m3e-slider-label-height, 2.75rem); top: calc(0px - var(--_m3e-slider-label-height, 2.75rem) - var(--_m3e-slider-label-margin, 0.25rem)); inset-inline-start: calc(0px - 100%); border-radius: var(--m3e-slider-label-shape, ${k.shape.corner.full}); background-color: var(--m3e-slider-label-container-color, ${k.color.inverseSurface}); color: var(--m3e-slider-label-color, ${k.color.inverseOnSurface}); font-size: var(--m3e-slider-label-font-size, ${k.typescale.standard.label.medium.fontSize}); font-weight: var(--m3e-slider-label-font-weight, ${k.typescale.standard.label.medium.fontWeight}); line-height: var(--m3e-slider-label-line-height, ${k.typescale.standard.label.medium.lineHeight}); letter-spacing: var(--m3e-slider-label-tracking, ${k.typescale.standard.label.medium.tracking}); } @starting-style { .label { opacity: 0; transform: scale(0); } } .handle { height: 100%; width: var(--m3e-slider-thumb-width, 0.25rem); border-radius: inherit; transition: ${r(`width ${k.motion.duration.short2} ${k.motion.easing.standard}`)}; } :host(:active:not([aria-disabled="true"])) .handle { width: var(--m3e-slider-thumb-pressed-width, 2px); } :host(:not([aria-disabled="true"])) .handle { background-color: var(--m3e-slider-thumb-color, ${k.color.primary}); } :host([aria-disabled="true"]) .handle { opacity: var(--m3e-slider-thumb-disabled-opacity, 38%); background-color: var(--m3e-slider-thumb-disabled-color, ${k.color.onSurface}); } @media (prefers-reduced-motion) { .label { transition: none; } } @media (forced-colors: active) { .label { forced-color-adjust: none; background-color: CanvasText; color: Canvas; } :host(:not([aria-disabled="true"])) .handle { background-color: CanvasText; } :host([aria-disabled="true"]) .handle { opacity: unset; background-color: GrayText; } }`,t([h(".focus-ring")],P.prototype,"_focusRing",void 0),t([n({type:Number,reflect:!0})],P.prototype,"value",void 0),P=t([x("m3e-slider-thumb")],P);let Y=class extends(b(a)){constructor(){super(),C.add(this),L.set(this,void 0),this._ticks=new Array,W.set(this,new Array),D.set(this,void 0),R.set(this,0),A.set(this,0),j.set(this,0),this.size="extra-small",this.disabled=!1,this.discrete=!1,this.min=0,this.max=100,this.step=1,this.labelled=!1,this.displayWith=null,new y(this,{callback:()=>e(this,C,"m",V).call(this,!0)})}get thumbs(){return e(this,W,"f")}get isRange(){return e(this,W,"f").length>1}get thumb(){return e(this,W,"f")[0]??null}get lowerThumb(){return this.thumb}get upperThumb(){return e(this,W,"f")[1]??null}connectedCallback(){super.connectedCallback(),i(this,L,E.observe(()=>{e(this,C,"m",V).call(this,!0),this.requestUpdate()}),"f")}disconnectedCallback(){super.disconnectedCallback(),e(this,L,"f")?.call(this)}updated(t){super.updated(t),t.has("disabled")&&e(this,W,"f").forEach(e=>e.disabled=this.disabled)}render(){return s`<div class="base" tabindex="${o(this.disabled?void 0:"-1")}" @pointerdown="${e(this,C,"m",X)}" @pointermove="${e(this,C,"m",q)}" @pointerup="${e(this,C,"m",F)}" @keydown="${e(this,C,"m",J)}" @value-change="${e(this,C,"m",K)}"><div class="track" aria-hidden="true"><div class="track-inactive start"></div><div class="track-active"></div><div class="track-inactive end"></div></div><div class="ticks" aria-hidden="true">${this._ticks.map(t=>e(this,C,"m",U).call(this,t))}</div><slot @slotchange="${e(this,C,"m",H)}"></slot></div>`}};L=new WeakMap,W=new WeakMap,D=new WeakMap,R=new WeakMap,A=new WeakMap,j=new WeakMap,C=new WeakSet,U=function(t){return s`<div class="tick ${t.active?"active":"inactive"}" style="${$({transform:`translate(${"rtl"===E.current?-e(this,C,"m",B).call(this,t.value):e(this,C,"m",B).call(this,t.value)}px, 0)`})}"></div>`},H=function(t){i(this,W,t.target.assignedElements({flatten:!0}).filter(e=>e instanceof P),"f"),e(this,W,"f").length>2&&(e(this,W,"f").length=2),this.isRange?this._base?.style.setProperty("--_slider-active-track-middle-shape","0"):this._base?.style.removeProperty("--_slider-active-track-middle-shape"),e(this,C,"m",N).call(this)},N=function(){e(this,W,"f").forEach((t,i)=>{this.disabled&&(t.disabled=!0),t.ariaValueMin=`${e(this,W,"f")[i-1]?.value??this.min}`,t.ariaValueMax=`${e(this,W,"f")[i+1]?.value??this.max}`,t.ariaValueNow=`${t.value??e(this,W,"f")[i-1]?.value??this.min}`})},B=function(t){return(e(this,R,"f")-e(this,A,"f"))*((t-this.min)/(this.max-this.min))},G=function(t){const i="rtl"===E.current?e(this,j,"f")+e(this,R,"f")-t.clientX:t.clientX-e(this,j,"f"),a=0===this.step?1:this.step,s=Math.floor((this.max-this.min)/a),r=i/e(this,R,"f"),l=Math.round(r*s)/s*(this.max-this.min)+this.min;return Math.round(l/a)*a},I=function(t=!1){this.lowerThumb&&(i(this,R,!t&&e(this,R,"f")>0?e(this,R,"f"):this.clientWidth,"f"),i(this,A,!t&&e(this,A,"f")>0?e(this,A,"f"):this.lowerThumb.clientWidth,"f"),i(this,j,!t&&e(this,j,"f")>0?e(this,j,"f"):this.getBoundingClientRect().left,"f"))},V=function(t=!1){if(e(this,C,"m",I).call(this,t),!this.lowerThumb)return;const i=this.lowerThumb.value??this.min,a=e(this,C,"m",B).call(this,i);if(this.lowerThumb.style.transform=`translate(${"rtl"===E.current?-a:a}px, 0)`,this.upperThumb){const t=this.upperThumb.value??i,s=e(this,C,"m",B).call(this,t);this.upperThumb.style.transform=`translate(${"rtl"===E.current?-s:s}px, 0)`,this._base?.classList.toggle("range",!0),this._base?.style.setProperty("--_slider-inactive-track-before-size",`${a}px`),this._base?.style.setProperty("--_slider-active-track-offset",`${a+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-active-track-size",s-a-e(this,A,"f")+"px"),this._base?.style.setProperty("--_slider-inactive-track-after-offset",`${s+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-inactive-track-after-size",e(this,R,"f")-e(this,A,"f")-s+"px"),e(this,C,"m",O).call(this,e=>e>i&&e<t)}else this._base?.classList.toggle("range",!1),this._base?.style.setProperty("--_slider-active-track-size",`${a}px`),this._base?.style.setProperty("--_slider-inactive-track-after-offset",`${a+e(this,A,"f")}px`),this._base?.style.setProperty("--_slider-inactive-track-after-size",e(this,R,"f")-a-e(this,A,"f")+"px"),e(this,C,"m",O).call(this,e=>e<i)},O=function(e){if(this._ticks=[],this.discrete&&this.step>1)for(let t=this.min;t<=this.max;t+=this.step)this._ticks.push({value:t,active:e(t)});else this._ticks.push({value:this.min,active:e(this.min)}),this.min<0&&this.max>0&&this._ticks.push({value:0,active:e(0)}),this._ticks.push({value:this.max,active:e(this.max)})},X=function(t){if("mouse"===t.pointerType&&t.button>1)return;if(!this.lowerThumb||this.disabled)return;if(t.target instanceof HTMLElement&&t.target.setPointerCapture(t.pointerId),i(this,D,t.composedPath().find(e=>e instanceof P),"f"),e(this,D,"f"))return;const a=e(this,C,"m",G).call(this,t);if(this.upperThumb){const t=this.lowerThumb.value??this.min,s=this.upperThumb.value??t;if(a<t)this.lowerThumb.disabled||(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f"));else if(a>s)this.upperThumb.disabled||(e(this,C,"m",Q).call(this,this.upperThumb,a,!0),i(this,D,this.upperThumb,"f"));else{a<(t+s)/2&&!this.lowerThumb.disabled?(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f")):this.upperThumb.disabled||(e(this,C,"m",Q).call(this,this.upperThumb,a,!0),i(this,D,this.upperThumb,"f"))}}else this.lowerThumb.disabled||(e(this,C,"m",Q).call(this,this.lowerThumb,a,!0),i(this,D,this.lowerThumb,"f"))},q=function(t){if(!(t.target instanceof HTMLElement)||!t.target.hasPointerCapture(t.pointerId)||!e(this,D,"f")||e(this,D,"f").disabled)return;const i=e(this,C,"m",G).call(this,t);let a=this.min,s=this.max;e(this,D,"f")===this.upperThumb?a=Math.max(a,this.lowerThumb?.value??0):this.upperThumb&&(s=Math.min(s,this.upperThumb.value??this.max)),_(this,"--animating")&&(w(this,"--animating"),e(this,D,"f").style.transition=""),e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(s,Math.max(a,i)))},F=function(t){"mouse"===t.pointerType&&t.button>1||this.lowerThumb&&!this.disabled&&(t.target instanceof HTMLElement&&t.target.releasePointerCapture(t.pointerId),e(this,D,"f")&&!e(this,D,"f").disabled&&e(this,D,"f").focus())},J=function(t){if(i(this,D,t.composedPath().find(e=>e instanceof P),"f"),!e(this,D,"f"))return;const a=e(this,D,"f").value??0;let s=this.min,r=this.max;switch(e(this,D,"f")===this.upperThumb?s=Math.max(s,this.lowerThumb?.value??0):this.upperThumb&&(r=Math.max(r,this.upperThumb.value??this.max)),t.key){case"Home":e(this,C,"m",Q).call(this,e(this,D,"f"),s),t.preventDefault();break;case"End":e(this,C,"m",Q).call(this,e(this,D,"f"),r),t.preventDefault();break;case"PageUp":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+(this.step>1?this.step:10))):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-(this.step>1?this.step:10))),t.preventDefault();break;case"PageDown":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-(this.step>1?this.step:10))):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+(this.step>1?this.step:10))),t.preventDefault();break;case"Down":case"ArrowDown":case"Left":case"ArrowLeft":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-this.step)):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+this.step)),t.preventDefault();break;case"Up":case"ArrowUp":case"Right":case"ArrowRight":"ltr"===E.current?e(this,C,"m",Q).call(this,e(this,D,"f"),Math.min(r,a+this.step)):e(this,C,"m",Q).call(this,e(this,D,"f"),Math.max(s,a-this.step)),t.preventDefault();break;case" ":t.preventDefault()}},K=function(t){t.stopPropagation(),e(this,C,"m",N).call(this),e(this,C,"m",V).call(this)},Q=function(e,t,i=!1){if(e.value===t)return;const a=e.value;i&&!T()&&(z(this,"--animating"),e.addEventListener("transitionend",()=>{e.style.transition="",w(this,"--animating")},{once:!0}),e.style.transition=`transform ${k.motion.spring.fastEffects}`),e.value=t,e.markAsDirty(),e.markAsTouched(),e.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?e.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})):e.value=a},Y.styles=l`:host { display: inline-block; vertical-align: middle; min-inline-size: var(--m3e-slider-min-width, 12.5rem); user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :host(:not([disabled])) { cursor: pointer; } :host([size="extra-small"]), :host([size="small"]) { height: var(--m3e-slider-small-height, 2.75rem); } :host(:not(:dir(rtl))[size="extra-small"]) .base, :host(:not(:dir(rtl))[size="small"]) .base { --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${k.shape.corner.smallStart}); --_slider-inactive-track-start-shape: var( --m3e-slider-small-inactive-active-track-start-shape, ${k.shape.corner.smallStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-small-inactive-track-end-shape, ${k.shape.corner.smallEnd} ); } :host(:dir(rtl)[size="extra-small"]) .base, :host(:dir(rtl)[size="small"]) .base { --_slider-active-track-shape: var(--m3e-slider-small-active-track-shape, ${k.shape.corner.smallEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-small-inactive-active-track-start-shape, ${k.shape.corner.smallEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-small-inactive-track-end-shape, ${k.shape.corner.smallStart} ); } :host([size="extra-small"]) .track { height: calc(var(--m3e-slider-extra-small-track-height, 1rem)); } :host([size="small"]) .track { height: calc(var(--m3e-slider-small-track-height, 1.5rem)); } :host([size="medium"]) { height: var(--m3e-slider-medium-height, 3.25rem); } :host(:not(:dir(rtl))[size="medium"]) .base { --_slider-active-track-shape: var( --m3e-slider-medium-active-track-shape, ${k.shape.corner.mediumStart} ); --_slider-inactive-track-start-shape: var( --m3e-slider-medium-inactive-active-track-start-shape, ${k.shape.corner.mediumStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-medium-inactive-track-end-shape, ${k.shape.corner.mediumEnd} ); } :host(:dir(rtl)[size="medium"]) .base { --_slider-active-track-shape: var(--m3e-slider-medium-active-track-shape, ${k.shape.corner.mediumEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-medium-inactive-active-track-start-shape, ${k.shape.corner.mediumEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-medium-inactive-track-end-shape, ${k.shape.corner.mediumStart} ); } :host([size="medium"]) .track { height: var(--m3e-slider-medium-track-height, 2.5rem); } :host([size="large"]) { height: var(--m3e-slider-large-height, 4.25rem); } :host(:not(:dir(rtl))[size="large"]) .base { --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${k.shape.corner.largeStart}); --_slider-inactive-track-start-shape: var( --m3e-slider-large-inactive-active-track-start-shape, ${k.shape.corner.largeStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-large-inactive-track-end-shape, ${k.shape.corner.largeEnd} ); } :host(:dir(rtl)[size="large"]) .base { --_slider-active-track-shape: var(--m3e-slider-large-active-track-shape, ${k.shape.corner.largeEnd}); --_slider-inactive-track-start-shape: var( --m3e-slider-large-inactive-active-track-start-shape, ${k.shape.corner.largeEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-large-inactive-track-end-shape, ${k.shape.corner.largeStart} ); } :host([size="large"]) .track { height: var(--m3e-slider-large-track-height, 3.5rem); } :host([size="extra-large"]) { height: var(--m3e-slider-extra-large-height, 6.75rem); } :host(:not(:dir(rtl))[size="extra-large"]) .base { --_slider-active-track-shape: var( --m3e-slider-extra-large-active-track-shape, ${k.shape.corner.extraLargeStart} ); --_slider-inactive-track-start-shape: var( --m3e-slider-extra-large-inactive-active-track-start-shape, ${k.shape.corner.extraLargeStart} ); --_slider-inactive-track-end-shape: var( --m3e-slider-extra-large-inactive-track-end-shape, ${k.shape.corner.extraLargeEnd} ); } :host(:dir(rtl)[size="extra-large"]) .base { --_slider-active-track-shape: var( --m3e-slider-extra-large-active-track-shape, ${k.shape.corner.extraLargeEnd} ); --_slider-inactive-track-start-shape: var( --m3e-slider-extra-large-inactive-active-track-start-shape, ${k.shape.corner.extraLargeEnd} ); --_slider-inactive-track-end-shape: var( --m3e-slider-extra-large-inactive-track-end-shape, ${k.shape.corner.extraLargeStart} ); } :host([size="extra-large"]) .track { height: var(--m3e-slider-extra-large-track-height, 6rem); } :host(:is(:state(--animating), :--animating)) .track-active, :host(:is(:state(--animating), :--animating)) .track-inactive.start, :host(:is(:state(--animating), :--animating)) .track-inactive.end { transition: ${r(`margin-inline-start ${k.motion.spring.fastEffects},\n width ${k.motion.spring.fastEffects}`)}; } .base { display: inline-flex; align-items: center; position: relative; width: 100%; height: 100%; border-radius: inherit; outline: none; touch-action: none; } .track { position: relative; flex: 1 1 auto; touch-action: none; } .track-inactive, .track-active { position: absolute; height: 100%; touch-action: none; } .track-active { margin-inline-start: var(--_slider-active-track-offset, 0px); width: var(--_slider-active-track-size, 0px); border-radius: var(--_slider-active-track-middle-shape, var(--_slider-active-track-shape)); } .track-inactive.start { width: var(--_slider-inactive-track-before-size, 0px); border-radius: var(--_slider-inactive-track-start-shape); } .track-inactive.end { margin-inline-start: var(--_slider-inactive-track-after-offset, 0px); width: var(--_slider-inactive-track-after-size, 0px); border-radius: var(--_slider-inactive-track-end-shape); } .ticks { position: absolute; width: 100%; height: var(--m3e-slider-tick-size, 0.25rem); overflow: visible; touch-action: none; } .tick { position: absolute; top: 0; touch-action: none; inset-inline-start: calc(var(--m3e-slider-tick-size, 0.25rem) + calc(var(--m3e-slider-tick-size, 0.25rem) / 2)); width: var(--m3e-slider-tick-size, 0.25rem); height: var(--m3e-slider-tick-size, 0.25rem); border-radius: var(--m3e-slider-tick-shape, ${k.shape.corner.full}); } :host(:not([disabled])) .track-inactive { background-color: var(--m3e-slider-inactive-track-color, ${k.color.secondaryContainer}); } :host([disabled]) .track-inactive { background-color: color-mix( in srgb, var(--m3e-slider-disabled-inactive-track-color, ${k.color.onSurface}) var(--m3e-slider-disabled-inactive-track-opacity, 12%), transparent ); } :host(:not([disabled])) .track-active { background-color: var(--m3e-slider-active-track-color, ${k.color.primary}); } :host([disabled]) .track-active { background-color: color-mix( in srgb, var(--m3e-slider-disabled-active-track-color, ${k.color.onSurface}) var(--m3e-slider-disabled-active-track-opacity, 38%), transparent ); } :host(:not([disabled])) .tick.active { background-color: var(--m3e-slider-tick-active-color, ${k.color.onPrimary}); } :host([disabled]) .tick.active { background-color: var(--m3e-slider-disabled-tick-active-color, ${k.color.inverseOnSurface}); } :host(:not([disabled])) .tick.inactive { background-color: var(--m3e-slider-tick-inactive-color, ${k.color.onSecondaryContainer}); } :host([disabled]) .tick.inactive { background-color: var(--m3e-slider-disabled-tick-inactive-color, ${k.color.onSurface}); } :host(:not([discrete])) .tick.active { display: none; } :host(:hover[labelled]) .base, :host(:focus-within[labelled]) .base { --_slider-label-visibility: visible; --_slider-label-opacity: 1; --_slider-label-transform: scale(1); } @media (forced-colors: active) { :host(:not([disabled])) .track-inactive { background-color: unset; } :host(:not([disabled])) .base.range .track-inactive.start, :host(:not([disabled])) .track-inactive.end { border: 1px solid CanvasText; box-sizing: border-box; } :host(:not([disabled])) .tick.inactive { background-color: CanvasText; } :host(:not([disabled])) .tick.active { background-color: Canvas; } :host(:not([disabled])) .track-active { background-color: CanvasText; } :host([disabled]) .base.range .track-inactive.start, :host([disabled]) .track-inactive.end { border: 1px solid GrayText; box-sizing: border-box; } :host([disabled]) .track-active { background-color: GrayText; } :host([disabled]) .tick.inactive { background-color: GrayText; } :host([disabled]) .tick.active { background-color: Canvas; } }`,t([h(".base")],Y.prototype,"_base",void 0),t([c()],Y.prototype,"_ticks",void 0),t([n({reflect:!0})],Y.prototype,"size",void 0),t([n({type:Boolean,reflect:!0})],Y.prototype,"disabled",void 0),t([n({type:Boolean,reflect:!0})],Y.prototype,"discrete",void 0),t([n({type:Number})],Y.prototype,"min",void 0),t([n({type:Number})],Y.prototype,"max",void 0),t([n({type:Number})],Y.prototype,"step",void 0),t([n({type:Boolean})],Y.prototype,"labelled",void 0),t([n({attribute:!1})],Y.prototype,"displayWith",void 0),Y=t([x("m3e-slider")],Y);export{Y as M3eSliderElement,P as M3eSliderThumbElement};
7
7
  //# sourceMappingURL=slider.min.js.map