@m3e/web 2.4.1 → 2.5.0

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 (75) hide show
  1. package/README.md +9 -2
  2. package/dist/all.js +525 -65
  3. package/dist/all.js.map +1 -1
  4. package/dist/all.min.js +45 -45
  5. package/dist/all.min.js.map +1 -1
  6. package/dist/bottom-sheet.js +33 -6
  7. package/dist/bottom-sheet.js.map +1 -1
  8. package/dist/bottom-sheet.min.js +1 -1
  9. package/dist/bottom-sheet.min.js.map +1 -1
  10. package/dist/breadcrumb.js +303 -0
  11. package/dist/breadcrumb.js.map +1 -0
  12. package/dist/breadcrumb.min.js +7 -0
  13. package/dist/breadcrumb.min.js.map +1 -0
  14. package/dist/content-pane.js +69 -0
  15. package/dist/content-pane.js.map +1 -0
  16. package/dist/content-pane.min.js +7 -0
  17. package/dist/content-pane.min.js.map +1 -0
  18. package/dist/core-a11y.js +12 -9
  19. package/dist/core-a11y.js.map +1 -1
  20. package/dist/core-a11y.min.js +2 -2
  21. package/dist/core-a11y.min.js.map +1 -1
  22. package/dist/core.js +48 -4
  23. package/dist/core.js.map +1 -1
  24. package/dist/core.min.js +1 -1
  25. package/dist/core.min.js.map +1 -1
  26. package/dist/css-custom-data.json +293 -173
  27. package/dist/custom-elements.json +2823 -1378
  28. package/dist/html-custom-data.json +195 -88
  29. package/dist/list.js +37 -37
  30. package/dist/list.js.map +1 -1
  31. package/dist/list.min.js +1 -1
  32. package/dist/list.min.js.map +1 -1
  33. package/dist/split-pane.js +56 -15
  34. package/dist/split-pane.js.map +1 -1
  35. package/dist/split-pane.min.js +1 -1
  36. package/dist/split-pane.min.js.map +1 -1
  37. package/dist/src/all.d.ts +2 -0
  38. package/dist/src/all.d.ts.map +1 -1
  39. package/dist/src/bottom-sheet/BottomSheetElement.d.ts +8 -2
  40. package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
  41. package/dist/src/breadcrumb/BreadcrumbElement.d.ts +47 -0
  42. package/dist/src/breadcrumb/BreadcrumbElement.d.ts.map +1 -0
  43. package/dist/src/breadcrumb/BreadcrumbItemButtonElement.d.ts +37 -0
  44. package/dist/src/breadcrumb/BreadcrumbItemButtonElement.d.ts.map +1 -0
  45. package/dist/src/breadcrumb/BreadcrumbItemCurrent.d.ts +3 -0
  46. package/dist/src/breadcrumb/BreadcrumbItemCurrent.d.ts.map +1 -0
  47. package/dist/src/breadcrumb/BreadcrumbItemElement.d.ts +88 -0
  48. package/dist/src/breadcrumb/BreadcrumbItemElement.d.ts.map +1 -0
  49. package/dist/src/breadcrumb/index.d.ts +4 -0
  50. package/dist/src/breadcrumb/index.d.ts.map +1 -0
  51. package/dist/src/breadcrumb/isIconOnly.d.ts +3 -0
  52. package/dist/src/breadcrumb/isIconOnly.d.ts.map +1 -0
  53. package/dist/src/content-pane/ContentPaneElement.d.ts +44 -0
  54. package/dist/src/content-pane/ContentPaneElement.d.ts.map +1 -0
  55. package/dist/src/content-pane/index.d.ts +2 -0
  56. package/dist/src/content-pane/index.d.ts.map +1 -0
  57. package/dist/src/core/a11y/InteractivityChecker.d.ts +4 -2
  58. package/dist/src/core/a11y/InteractivityChecker.d.ts.map +1 -1
  59. package/dist/src/core/shared/mixins/LinkButton.d.ts +2 -1
  60. package/dist/src/core/shared/mixins/LinkButton.d.ts.map +1 -1
  61. package/dist/src/core/shared/utils/getScrollbarWidth.d.ts +7 -0
  62. package/dist/src/core/shared/utils/getScrollbarWidth.d.ts.map +1 -0
  63. package/dist/src/core/shared/utils/index.d.ts +1 -0
  64. package/dist/src/core/shared/utils/index.d.ts.map +1 -1
  65. package/dist/src/list/ListActionElement.d.ts +1 -0
  66. package/dist/src/list/ListActionElement.d.ts.map +1 -1
  67. package/dist/src/list/index.d.ts +0 -1
  68. package/dist/src/list/index.d.ts.map +1 -1
  69. package/dist/src/split-pane/SplitPaneElement.d.ts +6 -0
  70. package/dist/src/split-pane/SplitPaneElement.d.ts.map +1 -1
  71. package/dist/tooltip.js +2 -2
  72. package/dist/tooltip.js.map +1 -1
  73. package/dist/tooltip.min.js +1 -1
  74. package/dist/tooltip.min.js.map +1 -1
  75. package/package.json +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"split-pane.min.js","sources":["../../src/split-pane/SplitPaneElement.ts"],"sourcesContent":["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 Disabled,\r\n FormAssociated,\r\n formValue,\r\n MutationController,\r\n prefersReducedMotion,\r\n PressedController,\r\n ReconnectedCallback,\r\n registerStyleSheet,\r\n setCustomState,\r\n spaceSeparatedStringConverter,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { Breakpoint, M3eBreakpointObserver } from \"@m3e/web/core/layout\";\r\nimport { Direction, M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { SplitPaneOrientation } from \"./SplitPaneOrientation\";\r\n\r\n/**\r\n * A dual-view layout that separates content with a movable drag handle.\r\n * @description\r\n * The `m3e-split-pane` component delivers a Material 3-inspired split view with a\r\n * movable drag handle, enabling responsive layout composition and pane resizing.\r\n * It supports keyboard interaction, adaptive orientation, and optional detent snapping\r\n * for consistent, accessible content distribution.\r\n *\r\n * @example\r\n * The following example illustrates the basic use of the `m3e-split-pane` with start and end content.\r\n * In this example, the start pane occupies 25% of the available width.\r\n * ```html\r\n * <m3e-split-pane value=\"25\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @example\r\n * The next example demonstrates minimum and maximum constraints, where the start pane\r\n * may shrink to 25% but cannot grow beyond 50% of the available space.\r\n * ```html\r\n * <m3e-split-pane value=\"25\" min=\"25\" max=\"50\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @example\r\n * The next example demonstrates percentage‑based detents, allowing the drag handle to snap at\r\n * 0%, 25%, 50%, 75%, and 100% of the available space.\r\n * ```html\r\n * <m3e-split-pane value=\"50\" detents=\"0 25 50 75 100\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @tag m3e-split-pane\r\n *\r\n * @slot start - Renders content at the logical start side of the pane.\r\n * @slot end - Renders content at the logical end side of the pane.\r\n *\r\n * @attr detents - Detents (discrete sizes) the start pane can snap to.\r\n * @attr label - The accessible label given to the moveable drag handle.\r\n * @attr max - A fractional value, between 0 and 100, indicating the maximum size of the start pane.\r\n * @attr min - A fractional value, between 0 and 100, indicating the minimum size of the start pane.\r\n * @attr orientation - The orientation of the split.\r\n * @attr step - A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.\r\n * @attr value - A fractional value, between 0 and 100, indicating the size of the start pane.\r\n * @attr wrap-detents - Whether cycling through detents will wrap.\r\n *\r\n * @fires input - Fired continuously while the user adjusts the drag handle.\r\n * @fires change - Fired when the user finishes adjusting the drag handle.\r\n *\r\n * @cssprop --m3e-split-pane-drag-handle-hover-color - Color used for the drag handle hover state.\r\n * @cssprop --m3e-split-pane-drag-handle-hover-opacity - Opacity used for the drag handle hover state.\r\n * @cssprop --m3e-split-pane-drag-handle-focus-color - Color used for the drag handle focus state.\r\n * @cssprop --m3e-split-pane-drag-handle-focus-opacity - Opacity used for the drag handle focus state.\r\n * @cssprop --m3e-split-pane-drag-handle-color - Background color of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-shape - Corner shape of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-color - Background color of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-shape - Corner shape of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-container-width - Width of the drag handle container.\r\n * @cssprop --m3e-split-pane-drag-handle-width - Thickness of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-height - Length of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-width - Thickness of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-height - Length of the drag handle when pressed.\r\n */\r\n@customElement(\"m3e-split-pane\")\r\nexport class M3eSplitPaneElement extends FormAssociated(Disabled(ReconnectedCallback(AttachInternals(LitElement)))) {\r\n static {\r\n registerStyleSheet(css`\r\n @property --_split-pane-value {\r\n syntax: \"<length-percentage>\";\r\n inherits: true;\r\n initial-value: 50%;\r\n }\r\n `);\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 }\r\n .base {\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n :host(:not(:state(-vertical))) .base {\r\n flex-direction: row;\r\n }\r\n :host(:state(-vertical)) .base {\r\n flex-direction: column;\r\n }\r\n :host(:state(-with-start):state(-with-end)) .base:not(:has(.drag-handle[hidden])) .start {\r\n flex: 0 1 calc(var(--_split-pane-value) - calc(var(--m3e-split-pane-drag-handle-container-width, 1.5rem) / 2));\r\n }\r\n :host(:state(-with-start):state(-with-end)) .base:has(.drag-handle[hidden]) .start {\r\n flex: 0 1 var(--_split-pane-value);\r\n }\r\n :host(:not(:state(-with-end))) .start {\r\n flex: 1 1 auto;\r\n }\r\n :host(:state(-with-end)) .end {\r\n flex: 1 1 auto;\r\n }\r\n :host(:not(:state(-with-end))) .end {\r\n display: none;\r\n }\r\n :host(:not(:state(-animating))) .start[inert],\r\n :host(:not(:state(-animating))) .end[inert] {\r\n visibility: hidden;\r\n }\r\n .drag-handle {\r\n flex: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n outline: none;\r\n touch-action: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n\r\n --m3e-state-layer-hover-color: var(--m3e-split-pane-drag-handle-hover-color, ${DesignToken.color.onSurface});\r\n --m3e-state-layer-hover-opacity: var(--m3e-split-pane-drag-handle-hover-opacity, 8%);\r\n --m3e-state-layer-focus-color: var(--m3e-split-pane-drag-handle-focus-color, ${DesignToken.color.onSurface});\r\n --m3e-state-layer-focus-opacity: var(--m3e-split-pane-drag-handle-focus-opacity, 10%);\r\n }\r\n :host(:is(:not(:state(-with-start)), :not(:state(-with-end)))) .drag-handle,\r\n .drag-handle[hidden] {\r\n display: none;\r\n }\r\n :host(:not(:state(-pressed))) .drag-handle:not([aria-disabled]) {\r\n cursor: grab;\r\n }\r\n :host(:state(-pressed)) .drag-handle:not([aria-disabled]) {\r\n cursor: grabbing;\r\n }\r\n .handle {\r\n position: relative;\r\n transition: ${unsafeCSS(`background-color ${DesignToken.motion.duration.short4} ${DesignToken.motion.easing.standard},\r\n width ${DesignToken.motion.spring.fastEffects}, height ${DesignToken.motion.spring.fastEffects}`)};\r\n }\r\n .touch {\r\n z-index: 1;\r\n position: absolute;\r\n height: 3rem;\r\n width: 3rem;\r\n margin: auto;\r\n touch-action: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n :host(:not(:state(-pressed))) .handle {\r\n background-color: var(--m3e-split-pane-drag-handle-color, ${DesignToken.color.outline});\r\n border-radius: var(--m3e-split-pane-drag-handle-shape, ${DesignToken.shape.corner.full});\r\n }\r\n :host(:state(-pressed)) .handle {\r\n background-color: var(--m3e-split-pane-drag-handle-pressed-color, ${DesignToken.color.onSurface});\r\n border-radius: var(--m3e-split-pane-drag-handle-pressed-shape, ${DesignToken.shape.corner.medium});\r\n }\r\n :host(:not(:state(-vertical))) .drag-handle {\r\n flex-direction: column;\r\n width: var(--m3e-split-pane-drag-handle-container-width, 1.5rem);\r\n }\r\n :host(:not(:state(-vertical)):not(:state(-pressed))) .handle {\r\n width: var(--m3e-split-pane-drag-handle-width, 0.25rem);\r\n height: var(--m3e-split-pane-drag-handle-height, 3rem);\r\n }\r\n :host(:not(:state(-vertical)):state(-pressed)) .handle {\r\n width: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem);\r\n height: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem);\r\n }\r\n :host(:state(-vertical)) .drag-handle {\r\n height: var(--m3e-split-pane-drag-handle-container-width, 1.5rem);\r\n }\r\n :host(:state(-vertical):not(:state(-pressed))) .handle {\r\n width: var(--m3e-split-pane-drag-handle-height, 3rem);\r\n height: var(--m3e-split-pane-drag-handle-width, 0.25rem);\r\n }\r\n :host(:state(-vertical):state(-pressed)) .handle {\r\n width: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem);\r\n height: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem);\r\n }\r\n @media (prefers-reduced-motion) {\r\n .handle {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host(:state(-pressed)) .handle,\r\n :host(:not(:state(-pressed))) .handle {\r\n background-color: ButtonText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @state() _orientation?: Exclude<SplitPaneOrientation, \"auto\">;\r\n /** @private */ #breakpointUnobserve?: () => void;\r\n\r\n /** @private */ @query(\".base\") private _base!: HTMLElement;\r\n /** @private */ @query(\".drag-handle\") private _dragHandle!: HTMLElement;\r\n\r\n /** @private */ #dragPos = 0;\r\n /** @private */ #valueChanged = false;\r\n /** @private */ #cachedSize = 0;\r\n /** @private */ #snapAnimation?: Animation;\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n isPressedKey: (key) => key === \" \",\r\n minPressedDuration: 150,\r\n callback: (pressed) => setCustomState(this, \"-pressed\", pressed && !this.disabled),\r\n });\r\n\r\n /** @private */\r\n readonly #startMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"hidden\"] },\r\n callback: () => this.#updatePaneVisibility(\"start\"),\r\n });\r\n\r\n /** @private */\r\n readonly #endMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"hidden\"] },\r\n callback: () => this.#updatePaneVisibility(\"end\"),\r\n });\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the size of the start pane.\r\n * @default 50\r\n */\r\n @property({ type: Number }) value = 50;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the minimum size of the start pane.\r\n * @default 0\r\n */\r\n @property({ type: Number }) min = 0;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the maximum size of the start pane.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.\r\n * @default 1\r\n */\r\n @property({ type: Number }) step = 1;\r\n\r\n /**\r\n * Detents (discrete sizes) the start pane can snap to.\r\n * @default []\r\n */\r\n @property({ attribute: \"detents\", converter: spaceSeparatedStringConverter }) detents: string[] = [];\r\n\r\n /**\r\n * Whether cycling through detents will wrap.\r\n * @default false\r\n */\r\n @property({ attribute: \"wrap-detents\", type: Boolean }) wrapDetents = false;\r\n\r\n /**\r\n * The orientation of the split.\r\n * @default \"horizontal\"\r\n */\r\n @property() orientation: SplitPaneOrientation = \"horizontal\";\r\n\r\n /**\r\n * The accessible label given to the movable drag handle.\r\n * @default \"Resize panes\"\r\n */\r\n @property() label: string = \"Resize panes\";\r\n\r\n /** A function used to generates human readable text for the accessible value (`aria-valuetext`) of the drag handle. */\r\n @property() valueFormatter?: (\r\n value: number,\r\n orientation: Omit<SplitPaneOrientation, \"auto\">,\r\n dir: Direction,\r\n ) => string | undefined = (value, orientation, dir) => {\r\n value = Math.round(value);\r\n if (value >= 48 && value <= 52) {\r\n return \"Panes equally sized\";\r\n }\r\n\r\n switch (value) {\r\n case 0:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? \"Left pane collapsed\"\r\n : \"Right pane collapsed\"\r\n : \"Top pane collapsed\";\r\n case 100:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? \"Right pane collapsed\"\r\n : \"Left pane collapsed\"\r\n : \"Bottom pane collapsed\";\r\n default:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? `Left pane ${value}%, right pane ${100 - value}%`\r\n : `Left pane ${100 - value}%, right pane ${value}%`\r\n : `Top pane ${value}%, bottom pane ${100 - value}%`;\r\n }\r\n };\r\n\r\n /** The current orientation of the split. */\r\n get currentOrientation(): Exclude<SplitPaneOrientation, \"auto\"> {\r\n return this._orientation ?? (this.orientation !== \"vertical\" ? \"horizontal\" : \"vertical\");\r\n }\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 /**\r\n * Moves the drag handle to the collapsed position. If detents exist, snaps to the collapsed detent.\r\n * If no detents exist, moves to the minimum allowed value.\r\n */\r\n collapse(): void {\r\n this.snapToValue(this.min);\r\n }\r\n\r\n /**\r\n * Moves the drag handle to the expanded position. If detents exist, snaps to the expanded detent.\r\n * If no detents exist, moves to the maximum allowed value.\r\n */\r\n expand(): void {\r\n this.snapToValue(this.max);\r\n }\r\n\r\n /**\r\n * Moves the drag handle to the specified position. If detents exist, snaps to the closest detent.\r\n * If no detents exist, moves to the specified value.\r\n * @param {number} value A fractional value, between 0 and 100, indicating the size of the start pane.\r\n */\r\n snapToValue(value: number): void {\r\n const detent = this.#getClosestDetent(value);\r\n value = detent > -1 ? this.#computeDetent(this.detents[detent])! : value;\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(value);\r\n } else {\r\n this.#changeValue(value);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.#clearOrientation();\r\n this.#pressedController.unobserve(this._dragHandle);\r\n }\r\n\r\n /** @inheritdoc */\r\n override reconnectedCallback(): void {\r\n super.reconnectedCallback();\r\n\r\n this.#initialize();\r\n\r\n if (this.orientation === \"auto\") {\r\n this.#initBreakpointMonitoring();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\r\n super.willUpdate(changedProperties);\r\n\r\n if (changedProperties.has(\"orientation\")) {\r\n this.#breakpointUnobserve?.();\r\n\r\n if (this.orientation === \"auto\") {\r\n this.#initBreakpointMonitoring();\r\n } else {\r\n this._orientation = undefined;\r\n this.#updateOrientation();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues): void {\r\n super.updated(_changedProperties);\r\n if (_changedProperties.has(\"value\")) {\r\n this._base.style.setProperty(\"--_split-pane-value\", `${this.value}%`);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"base\">\r\n <div class=\"start\" id=\"start\" ?inert=\"${this.value <= 0}\">\r\n <slot name=\"start\" @slotchange=\"${this.#handleStartSlotChange}\"></slot>\r\n </div>\r\n ${this.#renderDragHandle()}\r\n <div class=\"end\" ?inert=\"${this.value >= 100}\">\r\n <slot name=\"end\" @slotchange=\"${this.#handleEndSlotChange}\"></slot>\r\n </div>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderDragHandle(): unknown {\r\n return html`<div\r\n id=\"drag-handle\"\r\n class=\"drag-handle\"\r\n role=\"separator\"\r\n ?hidden=\"${this.disabled}\"\r\n tabindex=\"0\"\r\n aria-label=\"${this.label}\"\r\n aria-controls=\"start\"\r\n aria-orientation=\"${this.currentOrientation === \"horizontal\" ? \"vertical\" : \"horizontal\"}\"\r\n aria-valuemin=\"${this.min}\"\r\n aria-valuemax=\"${this.max}\"\r\n aria-valuenow=\"${this.value}\"\r\n aria-valuetext=\"${ifDefined(\r\n this.valueFormatter?.(this.value, this.currentOrientation, M3eDirectionality.current),\r\n )}\"\r\n @pointerdown=\"${this.#handlePointerDown}\"\r\n @pointerup=\"${this.#handlePointerUp}\"\r\n @pointermove=\"${this.#handlePointerMove}\"\r\n @keydown=\"${this.#handleKeyDown}\"\r\n @dblclick=\"${this.#cycleDetent}\"\r\n >\r\n <div class=\"handle\">\r\n <m3e-focus-ring for=\"drag-handle\"></m3e-focus-ring>\r\n <m3e-state-layer for=\"drag-handle\"></m3e-state-layer>\r\n </div>\r\n <div class=\"touch\"></div>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleStartSlotChange(e: Event): void {\r\n this.#handleSlotChange(e.target as HTMLSlotElement, this.#startMutationController, \"-with-start\");\r\n }\r\n\r\n /** @private */\r\n #handleEndSlotChange(e: Event): void {\r\n this.#handleSlotChange(e.target as HTMLSlotElement, this.#endMutationController, \"-with-end\");\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(slot: HTMLSlotElement, mutationController: MutationController, state: string): void {\r\n for (const target of mutationController.targets) {\r\n mutationController.unobserve(target);\r\n }\r\n\r\n const assignedElements = new Array<Element>();\r\n setCustomState(this, state, this.#hasVisibleElements(slot, assignedElements));\r\n\r\n for (const element of assignedElements) {\r\n if (element instanceof HTMLElement) {\r\n mutationController.observe(element);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #updatePaneVisibility(pane: \"start\" | \"end\"): void {\r\n setCustomState(\r\n this,\r\n `-with-${pane}`,\r\n this.#hasVisibleElements(this.shadowRoot?.querySelector<HTMLSlotElement>(`slot[name='${pane}']`)),\r\n );\r\n }\r\n\r\n /** @private */\r\n #hasVisibleElements(slot?: HTMLSlotElement | null, assignedElements?: Element[]): boolean {\r\n assignedElements = assignedElements ?? [];\r\n assignedElements.push(...(slot?.assignedElements({ flatten: true }) ?? []));\r\n return assignedElements.length > 0 && !assignedElements.every((x) => x.hasAttribute(\"hidden\"));\r\n }\r\n\r\n /** @private */\r\n #initialize() {\r\n this.#pressedController.observe(this._dragHandle);\r\n }\r\n\r\n /** @private */\r\n #initBreakpointMonitoring(): void {\r\n this.#breakpointUnobserve = M3eBreakpointObserver.observe([Breakpoint.XSmall], (matches) => {\r\n this._orientation = matches.get(Breakpoint.XSmall) ? \"vertical\" : \"horizontal\";\r\n this.#updateOrientation();\r\n });\r\n }\r\n\r\n /** @private */\r\n #updateOrientation(): void {\r\n setCustomState(this, \"-vertical\", this.currentOrientation === \"vertical\");\r\n }\r\n\r\n /** @private */\r\n #clearOrientation(): void {\r\n deleteCustomState(this, \"-vertical\");\r\n this._orientation = undefined;\r\n this.#breakpointUnobserve?.();\r\n this.#breakpointUnobserve = undefined;\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.disabled) return;\r\n\r\n this._dragHandle.setPointerCapture(e.pointerId);\r\n this.#valueChanged = false;\r\n this.#dragPos = this.currentOrientation === \"vertical\" ? e.clientY : e.clientX;\r\n this.#cachedSize = this.currentOrientation === \"vertical\" ? this.clientHeight : this.clientWidth;\r\n }\r\n\r\n /** @private */\r\n #handlePointerMove(e: PointerEvent): void {\r\n if (!this._dragHandle.hasPointerCapture(e.pointerId)) return;\r\n\r\n const pos = this.currentOrientation === \"vertical\" ? e.clientY : e.clientX;\r\n let delta = this.#cachedSize > 0 ? ((pos - this.#dragPos) / this.#cachedSize) * 100 : 0;\r\n if (M3eDirectionality.current === \"rtl\" && this.currentOrientation !== \"vertical\") {\r\n delta = -delta;\r\n }\r\n if (this.#changeValue(this.value + delta, false)) {\r\n this.#dragPos = pos;\r\n this.#valueChanged = true;\r\n }\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._dragHandle.hasPointerCapture(e.pointerId)) {\r\n this._dragHandle.releasePointerCapture(e.pointerId);\r\n this.#dragPos = 0;\r\n this.#cachedSize = 0;\r\n\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const value = this.#computeDetent(this.detents[detent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value, false);\r\n }\r\n }\r\n\r\n if (this.#valueChanged) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n this.#valueChanged = false;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n const ltr = M3eDirectionality.current === \"ltr\" || this.currentOrientation === \"vertical\";\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n case \"Left\":\r\n case \"ArrowLeft\": {\r\n e.preventDefault();\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = ltr ? this.#getNextLowerDetent(detent) : this.#getNextHigherDetent(detent);\r\n if (nextDetent !== detent && !this.#snapAnimation) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else if (this.step > 1) {\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(this.value + (ltr ? -this.step : this.step));\r\n }\r\n } else {\r\n this.#changeValue(this.value + (ltr ? -this.step : this.step));\r\n }\r\n break;\r\n }\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n case \"Right\":\r\n case \"ArrowRight\": {\r\n e.preventDefault();\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = ltr ? this.#getNextHigherDetent(detent) : this.#getNextLowerDetent(detent);\r\n if (nextDetent !== detent && !this.#snapAnimation) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else if (this.step > 1) {\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(this.value + (ltr ? this.step : -this.step));\r\n }\r\n } else {\r\n this.#changeValue(this.value + (ltr ? this.step : -this.step));\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"Home\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const next = this.#getClosestDetent(this.min);\r\n if (next > -1) {\r\n this.#snapToValue(this.#computeDetent(this.detents[next])!);\r\n } else {\r\n this.#snapToValue(this.min);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"End\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const next = this.#getClosestDetent(this.max);\r\n if (next > -1) {\r\n this.#snapToValue(this.#computeDetent(this.detents[next])!);\r\n } else {\r\n this.#snapToValue(this.max);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"PageUp\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = this.#getNextLowerDetent(detent);\r\n if (nextDetent !== detent) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else {\r\n this.#snapToValue(this.value - Math.max(10, this.step));\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"PageDown\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = this.#getNextHigherDetent(detent);\r\n if (nextDetent !== detent) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else {\r\n this.#snapToValue(this.value + Math.max(10, this.step));\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"Enter\":\r\n if (!this.#snapAnimation) {\r\n this.#cycleDetent();\r\n }\r\n\r\n break;\r\n\r\n case \" \":\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n this.#cycleDetent();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #changeValue(value: number, emitChange = true): boolean {\r\n this.#clearSnapAnimation();\r\n\r\n value = Math.max(this.min, Math.min(this.max, value));\r\n if (value != this.value) {\r\n const prev = this.value;\r\n this.value = value;\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n this._base.style.setProperty(\"--_split-pane-value\", `${this.value}%`);\r\n if (emitChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n }\r\n return true;\r\n } else {\r\n this.value = prev;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #getClosestDetent(value: number): number {\r\n let closestDetent = -1;\r\n let closestDistance = Infinity;\r\n\r\n for (let i = 0; i < this.detents.length; i++) {\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n\r\n const distance = Math.abs(value - detent);\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestDetent = i;\r\n }\r\n }\r\n return closestDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextHigherDetent(detentIndex: number): number {\r\n const currentValue = this.#computeDetent(this.detents[detentIndex]);\r\n if (currentValue === undefined) return detentIndex;\r\n\r\n let value = Infinity;\r\n let nextDetent = detentIndex;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === detentIndex) continue;\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n if (detent > currentValue && detent < value) {\r\n value = detent;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextLowerDetent(detentIndex: number): number {\r\n const currentValue = this.#computeDetent(this.detents[detentIndex]);\r\n if (currentValue === undefined) return detentIndex;\r\n\r\n let value = -Infinity;\r\n let nextDetent = detentIndex;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === detentIndex) continue;\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n if (detent < currentValue && detent > value) {\r\n value = detent;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #computeDetent(detent: string): number | undefined {\r\n const value = detent.endsWith(\"px\") ? this.clientWidth / parseFloat(detent) : parseFloat(detent);\r\n return !isNaN(value) ? value : undefined;\r\n }\r\n\r\n /** @private */\r\n #clearSnapAnimation(): void {\r\n this.#snapAnimation?.cancel();\r\n this.#snapAnimation = undefined;\r\n }\r\n\r\n /** @private */\r\n #snapToValue(value: number, emitChange = true): void {\r\n this.#clearSnapAnimation();\r\n\r\n value = Math.max(this.min, Math.min(this.max, value));\r\n if (value === this.value) return;\r\n\r\n if (!prefersReducedMotion()) {\r\n addCustomState(this, \"-animating\");\r\n\r\n this.#snapAnimation = this._base.animate(\r\n [{ \"--_split-pane-value\": `${this.value}%` }, { \"--_split-pane-value\": `${value}%` }],\r\n {\r\n duration: 250,\r\n easing: \"cubic-bezier(0.2, 0.0, 0, 1.0)\",\r\n },\r\n );\r\n this.#snapAnimation.onfinish = () => {\r\n this.#changeValue(value, emitChange);\r\n this.#snapAnimation = undefined;\r\n deleteCustomState(this, \"-animating\");\r\n };\r\n } else {\r\n this.#changeValue(value, emitChange);\r\n }\r\n }\r\n\r\n /** @private */\r\n #cycleDetent(): void {\r\n if (this.detents.length === 0) return;\r\n\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent === -1) return;\r\n\r\n let next = this.#getNextHigherDetent(detent);\r\n if (next === detent && this.wrapDetents) {\r\n next = this.#getClosestDetent(0);\r\n if (next === -1) return;\r\n }\r\n\r\n const value = this.#computeDetent(this.detents[next]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-split-pane\": M3eSplitPaneElement;\r\n }\r\n}\r\n"],"names":["M3eSplitPaneElement","FormAssociated","Disabled","ReconnectedCallback","AttachInternals","LitElement","constructor","_M3eSplitPaneElement_breakpointUnobserve","set","this","_M3eSplitPaneElement_dragPos","_M3eSplitPaneElement_valueChanged","_M3eSplitPaneElement_cachedSize","_M3eSplitPaneElement_snapAnimation","_M3eSplitPaneElement_pressedController","PressedController","target","isPressedKey","key","minPressedDuration","callback","pressed","setCustomState","disabled","_M3eSplitPaneElement_startMutationController","MutationController","config","attributeFilter","__classPrivateFieldGet","_M3eSplitPaneElement_instances","_M3eSplitPaneElement_updatePaneVisibility","call","_M3eSplitPaneElement_endMutationController","value","min","max","step","detents","wrapDetents","orientation","label","valueFormatter","dir","Math","round","currentOrientation","_orientation","WeakMap","WeakSet","formValue","toString","collapse","snapToValue","expand","detent","_M3eSplitPaneElement_getClosestDetent","_M3eSplitPaneElement_computeDetent","_M3eSplitPaneElement_changeValue","_M3eSplitPaneElement_snapToValue","disconnectedCallback","super","_M3eSplitPaneElement_clearOrientation","unobserve","_dragHandle","reconnectedCallback","_M3eSplitPaneElement_initialize","_M3eSplitPaneElement_initBreakpointMonitoring","willUpdate","changedProperties","has","undefined","_M3eSplitPaneElement_updateOrientation","updated","_changedProperties","_base","style","setProperty","firstUpdated","render","html","_M3eSplitPaneElement_handleStartSlotChange","_M3eSplitPaneElement_renderDragHandle","_M3eSplitPaneElement_handleEndSlotChange","ifDefined","M3eDirectionality","current","_M3eSplitPaneElement_handlePointerDown","_M3eSplitPaneElement_handlePointerUp","_M3eSplitPaneElement_handlePointerMove","_M3eSplitPaneElement_handleKeyDown","_M3eSplitPaneElement_cycleDetent","e","_M3eSplitPaneElement_handleSlotChange","slot","mutationController","state","targets","assignedElements","Array","_M3eSplitPaneElement_hasVisibleElements","element","HTMLElement","observe","pane","shadowRoot","querySelector","push","flatten","length","every","x","hasAttribute","__classPrivateFieldSet","M3eBreakpointObserver","Breakpoint","XSmall","matches","get","deleteCustomState","pointerType","button","setPointerCapture","pointerId","clientY","clientX","clientHeight","clientWidth","hasPointerCapture","pos","delta","releasePointerCapture","dispatchEvent","Event","bubbles","composed","ltr","preventDefault","nextDetent","_M3eSplitPaneElement_getNextLowerDetent","_M3eSplitPaneElement_getNextHigherDetent","next","emitChange","_M3eSplitPaneElement_clearSnapAnimation","prev","cancelable","closestDetent","closestDistance","Infinity","i","distance","abs","detentIndex","currentValue","endsWith","parseFloat","isNaN","cancel","prefersReducedMotion","addCustomState","animate","duration","easing","onfinish","registerStyleSheet","css","styles","DesignToken","color","onSurface","unsafeCSS","motion","short4","standard","spring","fastEffects","outline","shape","corner","full","medium","__decorate","prototype","query","property","type","Number","attribute","converter","spaceSeparatedStringConverter","Boolean","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"split-pane.min.js","sources":["../../src/split-pane/SplitPaneElement.ts"],"sourcesContent":["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 Disabled,\r\n FormAssociated,\r\n formValue,\r\n MutationController,\r\n prefersReducedMotion,\r\n PressedController,\r\n ReconnectedCallback,\r\n registerStyleSheet,\r\n setCustomState,\r\n spaceSeparatedStringConverter,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { Breakpoint, M3eBreakpointObserver } from \"@m3e/web/core/layout\";\r\nimport { Direction, M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { SplitPaneOrientation } from \"./SplitPaneOrientation\";\r\n\r\n/**\r\n * A dual-view layout that separates content with a movable drag handle.\r\n * @description\r\n * The `m3e-split-pane` component delivers a Material 3-inspired split view with a\r\n * movable drag handle, enabling responsive layout composition and pane resizing.\r\n * It supports keyboard interaction, adaptive orientation, and optional detent snapping\r\n * for consistent, accessible content distribution.\r\n *\r\n * @example\r\n * The following example illustrates the basic use of the `m3e-split-pane` with start and end content.\r\n * In this example, the start pane occupies 25% of the available width.\r\n * ```html\r\n * <m3e-split-pane value=\"25\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @example\r\n * The next example demonstrates minimum and maximum constraints, where the start pane\r\n * may shrink to 25% but cannot grow beyond 50% of the available space.\r\n * ```html\r\n * <m3e-split-pane value=\"25\" min=\"25\" max=\"50\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @example\r\n * The next example demonstrates percentage‑based detents, allowing the drag handle to snap at\r\n * 0%, 25%, 50%, 75%, and 100% of the available space.\r\n * ```html\r\n * <m3e-split-pane value=\"50\" detents=\"0 25 50 75 100\">\r\n * <m3e-card slot=\"start\"></m3e-card>\r\n * <m3e-card slot=\"end\"></m3e-card>\r\n * </m3e-split-pane>\r\n * ```\r\n *\r\n * @tag m3e-split-pane\r\n *\r\n * @slot start - Renders content at the logical start side of the pane.\r\n * @slot end - Renders content at the logical end side of the pane.\r\n *\r\n * @attr detents - Detents (discrete sizes) the start pane can snap to.\r\n * @attr label - The accessible label given to the moveable drag handle.\r\n * @attr max - A fractional value, between 0 and 100, indicating the maximum size of the start pane.\r\n * @attr min - A fractional value, between 0 and 100, indicating the minimum size of the start pane.\r\n * @attr orientation - The orientation of the split.\r\n * @attr overshoot-limit - A fractional value, between 0 and 100, indicating the maximum visual overshoot allowed when dragging past the minimum or maximum size.\r\n * @attr step - A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.\r\n * @attr value - A fractional value, between 0 and 100, indicating the size of the start pane.\r\n * @attr wrap-detents - Whether cycling through detents will wrap.\r\n *\r\n * @fires input - Fired continuously while the user adjusts the drag handle.\r\n * @fires change - Fired when the user finishes adjusting the drag handle.\r\n *\r\n * @cssprop --m3e-split-pane-drag-handle-hover-color - Color used for the drag handle hover state.\r\n * @cssprop --m3e-split-pane-drag-handle-hover-opacity - Opacity used for the drag handle hover state.\r\n * @cssprop --m3e-split-pane-drag-handle-focus-color - Color used for the drag handle focus state.\r\n * @cssprop --m3e-split-pane-drag-handle-focus-opacity - Opacity used for the drag handle focus state.\r\n * @cssprop --m3e-split-pane-drag-handle-color - Background color of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-shape - Corner shape of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-color - Background color of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-shape - Corner shape of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-container-width - Width of the drag handle container.\r\n * @cssprop --m3e-split-pane-drag-handle-width - Thickness of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-height - Length of the drag handle when not pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-width - Thickness of the drag handle when pressed.\r\n * @cssprop --m3e-split-pane-drag-handle-pressed-height - Length of the drag handle when pressed.\r\n */\r\n@customElement(\"m3e-split-pane\")\r\nexport class M3eSplitPaneElement extends FormAssociated(Disabled(ReconnectedCallback(AttachInternals(LitElement)))) {\r\n static {\r\n registerStyleSheet(css`\r\n @property --_split-pane-value {\r\n syntax: \"<length-percentage>\";\r\n inherits: true;\r\n initial-value: 50%;\r\n }\r\n `);\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 }\r\n .base {\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n :host(:not(:state(-vertical))) .base {\r\n flex-direction: row;\r\n }\r\n :host(:state(-vertical)) .base {\r\n flex-direction: column;\r\n }\r\n :host(:state(-with-start):state(-with-end)) .base:not(:has(.drag-handle[hidden])) .start {\r\n flex: 0 1 calc(var(--_split-pane-value) - calc(var(--m3e-split-pane-drag-handle-container-width, 1.5rem) / 2));\r\n }\r\n :host(:state(-with-start):state(-with-end)) .base:has(.drag-handle[hidden]) .start {\r\n flex: 0 1 var(--_split-pane-value);\r\n }\r\n :host(:not(:state(-with-end))) .start {\r\n flex: 1 1 auto;\r\n }\r\n :host(:state(-with-end)) .end {\r\n flex: 1 1 auto;\r\n }\r\n :host(:not(:state(-with-end))) .end {\r\n display: none;\r\n }\r\n :host(:not(:state(-animating))) .start[inert],\r\n :host(:not(:state(-animating))) .end[inert] {\r\n visibility: hidden;\r\n }\r\n .drag-handle {\r\n flex: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n outline: none;\r\n touch-action: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n\r\n --m3e-state-layer-hover-color: var(--m3e-split-pane-drag-handle-hover-color, ${DesignToken.color.onSurface});\r\n --m3e-state-layer-hover-opacity: var(--m3e-split-pane-drag-handle-hover-opacity, 8%);\r\n --m3e-state-layer-focus-color: var(--m3e-split-pane-drag-handle-focus-color, ${DesignToken.color.onSurface});\r\n --m3e-state-layer-focus-opacity: var(--m3e-split-pane-drag-handle-focus-opacity, 10%);\r\n }\r\n :host(:is(:not(:state(-with-start)), :not(:state(-with-end)))) .drag-handle,\r\n .drag-handle[hidden] {\r\n display: none;\r\n }\r\n :host(:not(:state(-pressed))) .drag-handle:not([aria-disabled]) {\r\n cursor: grab;\r\n }\r\n :host(:state(-pressed)) .drag-handle:not([aria-disabled]) {\r\n cursor: grabbing;\r\n }\r\n .handle {\r\n position: relative;\r\n transition: ${unsafeCSS(`background-color ${DesignToken.motion.duration.short4} ${DesignToken.motion.easing.standard},\r\n width ${DesignToken.motion.spring.fastEffects}, height ${DesignToken.motion.spring.fastEffects}`)};\r\n }\r\n .touch {\r\n z-index: 1;\r\n position: absolute;\r\n height: 3rem;\r\n width: 3rem;\r\n margin: auto;\r\n touch-action: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n :host(:not(:state(-pressed))) .handle {\r\n background-color: var(--m3e-split-pane-drag-handle-color, ${DesignToken.color.outline});\r\n border-radius: var(--m3e-split-pane-drag-handle-shape, ${DesignToken.shape.corner.full});\r\n }\r\n :host(:state(-pressed)) .handle {\r\n background-color: var(--m3e-split-pane-drag-handle-pressed-color, ${DesignToken.color.onSurface});\r\n border-radius: var(--m3e-split-pane-drag-handle-pressed-shape, ${DesignToken.shape.corner.medium});\r\n }\r\n :host(:not(:state(-vertical))) .drag-handle {\r\n flex-direction: column;\r\n width: var(--m3e-split-pane-drag-handle-container-width, 1.5rem);\r\n }\r\n :host(:not(:state(-vertical)):not(:state(-pressed))) .handle {\r\n width: var(--m3e-split-pane-drag-handle-width, 0.25rem);\r\n height: var(--m3e-split-pane-drag-handle-height, 3rem);\r\n }\r\n :host(:not(:state(-vertical)):state(-pressed)) .handle {\r\n width: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem);\r\n height: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem);\r\n }\r\n :host(:state(-vertical)) .drag-handle {\r\n height: var(--m3e-split-pane-drag-handle-container-width, 1.5rem);\r\n }\r\n :host(:state(-vertical):not(:state(-pressed))) .handle {\r\n width: var(--m3e-split-pane-drag-handle-height, 3rem);\r\n height: var(--m3e-split-pane-drag-handle-width, 0.25rem);\r\n }\r\n :host(:state(-vertical):state(-pressed)) .handle {\r\n width: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem);\r\n height: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem);\r\n }\r\n @media (prefers-reduced-motion) {\r\n .handle {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host(:state(-pressed)) .handle,\r\n :host(:not(:state(-pressed))) .handle {\r\n background-color: ButtonText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @state() _orientation?: Exclude<SplitPaneOrientation, \"auto\">;\r\n /** @private */ #breakpointUnobserve?: () => void;\r\n\r\n /** @private */ @query(\".base\") private _base!: HTMLElement;\r\n /** @private */ @query(\".drag-handle\") private _dragHandle!: HTMLElement;\r\n\r\n /** @private */ #dragState?: { startPos: number; startValue: number; cachedSize: number; min: number; max: number };\r\n /** @private */ #valueChanged = false;\r\n /** @private */ #snapAnimation?: Animation;\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n isPressedKey: (key) => key === \" \",\r\n minPressedDuration: 150,\r\n callback: (pressed) => setCustomState(this, \"-pressed\", pressed && !this.disabled),\r\n });\r\n\r\n /** @private */\r\n readonly #startMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"hidden\"] },\r\n callback: () => this.#updatePaneVisibility(\"start\"),\r\n });\r\n\r\n /** @private */\r\n readonly #endMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"hidden\"] },\r\n callback: () => this.#updatePaneVisibility(\"end\"),\r\n });\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the size of the start pane.\r\n * @default 50\r\n */\r\n @property({ type: Number }) value = 50;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the minimum size of the start pane.\r\n * @default 0\r\n */\r\n @property({ type: Number }) min = 0;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the maximum size of the start pane.\r\n * @default 100\r\n */\r\n @property({ type: Number }) max = 100;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the maximum visual overshoot allowed when dragging past the minimum or maximum size.\r\n * @default 4\r\n */\r\n @property({ attribute: \"overshoot-limit\", type: Number }) overshootLimit = 4;\r\n\r\n /**\r\n * A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.\r\n * @default 1\r\n */\r\n @property({ type: Number }) step = 1;\r\n\r\n /**\r\n * Detents (discrete sizes) the start pane can snap to.\r\n * @default []\r\n */\r\n @property({ attribute: \"detents\", converter: spaceSeparatedStringConverter }) detents: string[] = [];\r\n\r\n /**\r\n * Whether cycling through detents will wrap.\r\n * @default false\r\n */\r\n @property({ attribute: \"wrap-detents\", type: Boolean }) wrapDetents = false;\r\n\r\n /**\r\n * The orientation of the split.\r\n * @default \"horizontal\"\r\n */\r\n @property() orientation: SplitPaneOrientation = \"horizontal\";\r\n\r\n /**\r\n * The accessible label given to the movable drag handle.\r\n * @default \"Resize panes\"\r\n */\r\n @property() label: string = \"Resize panes\";\r\n\r\n /** A function used to generates human readable text for the accessible value (`aria-valuetext`) of the drag handle. */\r\n @property() valueFormatter?: (\r\n value: number,\r\n orientation: Omit<SplitPaneOrientation, \"auto\">,\r\n dir: Direction,\r\n ) => string | undefined = (value, orientation, dir) => {\r\n value = Math.round(value);\r\n if (value >= 48 && value <= 52) {\r\n return \"Panes equally sized\";\r\n }\r\n\r\n switch (value) {\r\n case 0:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? \"Left pane collapsed\"\r\n : \"Right pane collapsed\"\r\n : \"Top pane collapsed\";\r\n case 100:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? \"Right pane collapsed\"\r\n : \"Left pane collapsed\"\r\n : \"Bottom pane collapsed\";\r\n default:\r\n return orientation === \"horizontal\"\r\n ? dir === \"ltr\"\r\n ? `Left pane ${value}%, right pane ${100 - value}%`\r\n : `Left pane ${100 - value}%, right pane ${value}%`\r\n : `Top pane ${value}%, bottom pane ${100 - value}%`;\r\n }\r\n };\r\n\r\n /** The current orientation of the split. */\r\n get currentOrientation(): Exclude<SplitPaneOrientation, \"auto\"> {\r\n return this._orientation ?? (this.orientation !== \"vertical\" ? \"horizontal\" : \"vertical\");\r\n }\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 /**\r\n * Moves the drag handle to the collapsed position. If detents exist, snaps to the collapsed detent.\r\n * If no detents exist, moves to the minimum allowed value.\r\n */\r\n collapse(): void {\r\n this.snapToValue(this.min);\r\n }\r\n\r\n /**\r\n * Moves the drag handle to the expanded position. If detents exist, snaps to the expanded detent.\r\n * If no detents exist, moves to the maximum allowed value.\r\n */\r\n expand(): void {\r\n this.snapToValue(this.max);\r\n }\r\n\r\n /**\r\n * Moves the drag handle to the specified position. If detents exist, snaps to the closest detent.\r\n * If no detents exist, moves to the specified value.\r\n * @param {number} value A fractional value, between 0 and 100, indicating the size of the start pane.\r\n */\r\n snapToValue(value: number): void {\r\n const detent = this.#getClosestDetent(value);\r\n value = detent > -1 ? this.#computeDetent(this.detents[detent])! : value;\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(value);\r\n } else {\r\n this.#changeValue(value);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.#clearOrientation();\r\n this.#pressedController.unobserve(this._dragHandle);\r\n }\r\n\r\n /** @inheritdoc */\r\n override reconnectedCallback(): void {\r\n super.reconnectedCallback();\r\n\r\n this.#initialize();\r\n\r\n if (this.orientation === \"auto\") {\r\n this.#initBreakpointMonitoring();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\r\n super.willUpdate(changedProperties);\r\n\r\n if (changedProperties.has(\"orientation\")) {\r\n this.#breakpointUnobserve?.();\r\n\r\n if (this.orientation === \"auto\") {\r\n this.#initBreakpointMonitoring();\r\n } else {\r\n this._orientation = undefined;\r\n this.#updateOrientation();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues): void {\r\n super.updated(_changedProperties);\r\n if (_changedProperties.has(\"value\")) {\r\n this._base.style.setProperty(\"--_split-pane-value\", `${this.value}%`);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this.#initialize();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"base\">\r\n <div class=\"start\" id=\"start\" ?inert=\"${this.value <= 0}\">\r\n <slot name=\"start\" @slotchange=\"${this.#handleStartSlotChange}\"></slot>\r\n </div>\r\n ${this.#renderDragHandle()}\r\n <div class=\"end\" ?inert=\"${this.value >= 100}\">\r\n <slot name=\"end\" @slotchange=\"${this.#handleEndSlotChange}\"></slot>\r\n </div>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderDragHandle(): unknown {\r\n return html`<div\r\n id=\"drag-handle\"\r\n class=\"drag-handle\"\r\n role=\"separator\"\r\n ?hidden=\"${this.disabled}\"\r\n tabindex=\"0\"\r\n aria-label=\"${this.label}\"\r\n aria-controls=\"start\"\r\n aria-orientation=\"${this.currentOrientation === \"horizontal\" ? \"vertical\" : \"horizontal\"}\"\r\n aria-valuemin=\"${this.min}\"\r\n aria-valuemax=\"${this.max}\"\r\n aria-valuenow=\"${this.value}\"\r\n aria-valuetext=\"${ifDefined(\r\n this.valueFormatter?.(this.value, this.currentOrientation, M3eDirectionality.current),\r\n )}\"\r\n @pointerdown=\"${this.#handlePointerDown}\"\r\n @pointerup=\"${this.#handlePointerUp}\"\r\n @pointermove=\"${this.#handlePointerMove}\"\r\n @keydown=\"${this.#handleKeyDown}\"\r\n @dblclick=\"${this.#cycleDetent}\"\r\n >\r\n <div class=\"handle\">\r\n <m3e-focus-ring for=\"drag-handle\"></m3e-focus-ring>\r\n <m3e-state-layer for=\"drag-handle\"></m3e-state-layer>\r\n </div>\r\n <div class=\"touch\"></div>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #handleStartSlotChange(e: Event): void {\r\n this.#handleSlotChange(e.target as HTMLSlotElement, this.#startMutationController, \"-with-start\");\r\n }\r\n\r\n /** @private */\r\n #handleEndSlotChange(e: Event): void {\r\n this.#handleSlotChange(e.target as HTMLSlotElement, this.#endMutationController, \"-with-end\");\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(slot: HTMLSlotElement, mutationController: MutationController, state: string): void {\r\n for (const target of mutationController.targets) {\r\n mutationController.unobserve(target);\r\n }\r\n\r\n const assignedElements = new Array<Element>();\r\n setCustomState(this, state, this.#hasVisibleElements(slot, assignedElements));\r\n\r\n for (const element of assignedElements) {\r\n if (element instanceof HTMLElement) {\r\n mutationController.observe(element);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #updatePaneVisibility(pane: \"start\" | \"end\"): void {\r\n setCustomState(\r\n this,\r\n `-with-${pane}`,\r\n this.#hasVisibleElements(this.shadowRoot?.querySelector<HTMLSlotElement>(`slot[name='${pane}']`)),\r\n );\r\n }\r\n\r\n /** @private */\r\n #hasVisibleElements(slot?: HTMLSlotElement | null, assignedElements?: Element[]): boolean {\r\n assignedElements = assignedElements ?? [];\r\n assignedElements.push(...(slot?.assignedElements({ flatten: true }) ?? []));\r\n return assignedElements.length > 0 && !assignedElements.every((x) => x.hasAttribute(\"hidden\"));\r\n }\r\n\r\n /** @private */\r\n #initialize() {\r\n this.#pressedController.observe(this._dragHandle);\r\n }\r\n\r\n /** @private */\r\n #initBreakpointMonitoring(): void {\r\n this.#breakpointUnobserve = M3eBreakpointObserver.observe([Breakpoint.XSmall], (matches) => {\r\n this._orientation = matches.get(Breakpoint.XSmall) ? \"vertical\" : \"horizontal\";\r\n this.#updateOrientation();\r\n });\r\n }\r\n\r\n /** @private */\r\n #updateOrientation(): void {\r\n setCustomState(this, \"-vertical\", this.currentOrientation === \"vertical\");\r\n }\r\n\r\n /** @private */\r\n #clearOrientation(): void {\r\n deleteCustomState(this, \"-vertical\");\r\n this._orientation = undefined;\r\n this.#breakpointUnobserve?.();\r\n this.#breakpointUnobserve = undefined;\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.disabled) return;\r\n\r\n this._dragHandle.setPointerCapture(e.pointerId);\r\n this.#valueChanged = false;\r\n\r\n let min = this.min;\r\n if (min === 0 && this.detents.length > 0) {\r\n const detent = this.#getClosestDetent(0);\r\n if (detent > -1) {\r\n min = this.#computeDetent(this.detents[detent]) ?? this.min;\r\n }\r\n }\r\n\r\n let max = this.max;\r\n if (max === 100 && this.detents.length > 0) {\r\n const detent = this.#getClosestDetent(100);\r\n if (detent > -1) {\r\n max = this.#computeDetent(this.detents[detent]) ?? this.max;\r\n }\r\n }\r\n\r\n this.#dragState = {\r\n startPos: this.currentOrientation === \"vertical\" ? e.clientY : e.clientX,\r\n startValue: this.value,\r\n cachedSize: this.currentOrientation === \"vertical\" ? this.clientHeight : this.clientWidth,\r\n min,\r\n max,\r\n };\r\n }\r\n\r\n /** @private */\r\n #handlePointerMove(e: PointerEvent): void {\r\n if (!this._dragHandle.hasPointerCapture(e.pointerId) || !this.#dragState) return;\r\n\r\n const pos = this.currentOrientation === \"vertical\" ? e.clientY : e.clientX;\r\n\r\n let delta =\r\n this.#dragState.cachedSize > 0 ? ((pos - this.#dragState.startPos) / this.#dragState.cachedSize) * 100 : 0;\r\n if (M3eDirectionality.current === \"rtl\" && this.currentOrientation !== \"vertical\") {\r\n delta = -delta;\r\n }\r\n\r\n let value = this.#dragState.startValue + delta;\r\n if (value < this.#dragState.min) {\r\n const overshoot = this.#dragState.min - value;\r\n const compressed = (this.overshootLimit * overshoot) / (overshoot + this.overshootLimit);\r\n value = this.#dragState.min - compressed;\r\n } else if (value > this.#dragState.max) {\r\n const overshoot = value - this.#dragState.max;\r\n const compressed = (this.overshootLimit * overshoot) / (overshoot + this.overshootLimit);\r\n value = this.#dragState.max + compressed;\r\n }\r\n\r\n if (this.#changeValue(value, false, true)) {\r\n this.#valueChanged = true;\r\n }\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._dragHandle.hasPointerCapture(e.pointerId)) {\r\n this._dragHandle.releasePointerCapture(e.pointerId);\r\n this.#dragState = undefined;\r\n\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const value = this.#computeDetent(this.detents[detent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value, false);\r\n }\r\n } else if (this.value < this.min) {\r\n this.#snapToValue(this.min, false);\r\n } else if (this.value > this.max) {\r\n this.#snapToValue(this.max, false);\r\n }\r\n\r\n if (this.#valueChanged) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n this.#valueChanged = false;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n const ltr = M3eDirectionality.current === \"ltr\" || this.currentOrientation === \"vertical\";\r\n switch (e.key) {\r\n case \"Up\":\r\n case \"ArrowUp\":\r\n case \"Left\":\r\n case \"ArrowLeft\": {\r\n e.preventDefault();\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = ltr ? this.#getNextLowerDetent(detent) : this.#getNextHigherDetent(detent);\r\n if (nextDetent !== detent && !this.#snapAnimation) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else if (this.step > 1) {\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(this.value + (ltr ? -this.step : this.step));\r\n }\r\n } else {\r\n this.#changeValue(this.value + (ltr ? -this.step : this.step));\r\n }\r\n break;\r\n }\r\n\r\n case \"Down\":\r\n case \"ArrowDown\":\r\n case \"Right\":\r\n case \"ArrowRight\": {\r\n e.preventDefault();\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = ltr ? this.#getNextHigherDetent(detent) : this.#getNextLowerDetent(detent);\r\n if (nextDetent !== detent && !this.#snapAnimation) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else if (this.step > 1) {\r\n if (!this.#snapAnimation) {\r\n this.#snapToValue(this.value + (ltr ? this.step : -this.step));\r\n }\r\n } else {\r\n this.#changeValue(this.value + (ltr ? this.step : -this.step));\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"Home\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const next = this.#getClosestDetent(this.min);\r\n if (next > -1) {\r\n this.#snapToValue(this.#computeDetent(this.detents[next])!);\r\n } else {\r\n this.#snapToValue(this.min);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"End\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const next = this.#getClosestDetent(this.max);\r\n if (next > -1) {\r\n this.#snapToValue(this.#computeDetent(this.detents[next])!);\r\n } else {\r\n this.#snapToValue(this.max);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"PageUp\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = this.#getNextLowerDetent(detent);\r\n if (nextDetent !== detent) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else {\r\n this.#snapToValue(this.value - Math.max(10, this.step));\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"PageDown\": {\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent >= 0) {\r\n const nextDetent = this.#getNextHigherDetent(detent);\r\n if (nextDetent !== detent) {\r\n const value = this.#computeDetent(this.detents[nextDetent]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n } else {\r\n this.#snapToValue(this.value + Math.max(10, this.step));\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"Enter\":\r\n if (!this.#snapAnimation) {\r\n this.#cycleDetent();\r\n }\r\n\r\n break;\r\n\r\n case \" \":\r\n e.preventDefault();\r\n if (!this.#snapAnimation) {\r\n this.#cycleDetent();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /** @private */\r\n #changeValue(value: number, emitChange = true, allowOvershoot = false): boolean {\r\n this.#clearSnapAnimation();\r\n\r\n if (!allowOvershoot) {\r\n value = Math.max(this.min, Math.min(this.max, value));\r\n }\r\n\r\n if (value != this.value) {\r\n const prev = this.value;\r\n this.value = value;\r\n\r\n if (this.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true, cancelable: true }))) {\r\n this._base.style.setProperty(\"--_split-pane-value\", `${this.value}%`);\r\n if (emitChange) {\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\r\n }\r\n return true;\r\n } else {\r\n this.value = prev;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #getClosestDetent(value: number): number {\r\n let closestDetent = -1;\r\n let closestDistance = Infinity;\r\n\r\n for (let i = 0; i < this.detents.length; i++) {\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n\r\n const distance = Math.abs(value - detent);\r\n if (distance < closestDistance) {\r\n closestDistance = distance;\r\n closestDetent = i;\r\n }\r\n }\r\n return closestDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextHigherDetent(detentIndex: number): number {\r\n const currentValue = this.#computeDetent(this.detents[detentIndex]);\r\n if (currentValue === undefined) return detentIndex;\r\n\r\n let value = Infinity;\r\n let nextDetent = detentIndex;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === detentIndex) continue;\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n if (detent > currentValue && detent < value) {\r\n value = detent;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #getNextLowerDetent(detentIndex: number): number {\r\n const currentValue = this.#computeDetent(this.detents[detentIndex]);\r\n if (currentValue === undefined) return detentIndex;\r\n\r\n let value = -Infinity;\r\n let nextDetent = detentIndex;\r\n for (let i = 0; i < this.detents.length; i++) {\r\n if (i === detentIndex) continue;\r\n const detent = this.#computeDetent(this.detents[i]);\r\n if (detent === undefined) continue;\r\n if (detent < currentValue && detent > value) {\r\n value = detent;\r\n nextDetent = i;\r\n }\r\n }\r\n return nextDetent;\r\n }\r\n\r\n /** @private */\r\n #computeDetent(detent: string): number | undefined {\r\n const value = detent.endsWith(\"px\") ? this.clientWidth / parseFloat(detent) : parseFloat(detent);\r\n return !isNaN(value) ? value : undefined;\r\n }\r\n\r\n /** @private */\r\n #clearSnapAnimation(): void {\r\n this.#snapAnimation?.cancel();\r\n this.#snapAnimation = undefined;\r\n }\r\n\r\n /** @private */\r\n #snapToValue(value: number, emitChange = true): void {\r\n this.#clearSnapAnimation();\r\n\r\n value = Math.max(this.min, Math.min(this.max, value));\r\n if (value === this.value) return;\r\n\r\n if (!prefersReducedMotion()) {\r\n addCustomState(this, \"-animating\");\r\n\r\n this.#snapAnimation = this._base.animate(\r\n [{ \"--_split-pane-value\": `${this.value}%` }, { \"--_split-pane-value\": `${value}%` }],\r\n {\r\n duration: 250,\r\n easing: \"cubic-bezier(0.2, 0.0, 0, 1.0)\",\r\n },\r\n );\r\n this.#snapAnimation.onfinish = () => {\r\n this.#changeValue(value, emitChange);\r\n this.#snapAnimation = undefined;\r\n deleteCustomState(this, \"-animating\");\r\n };\r\n } else {\r\n this.#changeValue(value, emitChange);\r\n }\r\n }\r\n\r\n /** @private */\r\n #cycleDetent(): void {\r\n if (this.detents.length === 0) return;\r\n\r\n const detent = this.#getClosestDetent(this.value);\r\n if (detent === -1) return;\r\n\r\n let next = this.#getNextHigherDetent(detent);\r\n if (next === detent && this.wrapDetents) {\r\n next = this.#getClosestDetent(0);\r\n if (next === -1) return;\r\n }\r\n\r\n const value = this.#computeDetent(this.detents[next]);\r\n if (value !== undefined) {\r\n this.#snapToValue(value);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-split-pane\": M3eSplitPaneElement;\r\n }\r\n}\r\n"],"names":["M3eSplitPaneElement","FormAssociated","Disabled","ReconnectedCallback","AttachInternals","LitElement","constructor","_M3eSplitPaneElement_breakpointUnobserve","set","this","_M3eSplitPaneElement_dragState","_M3eSplitPaneElement_valueChanged","_M3eSplitPaneElement_snapAnimation","_M3eSplitPaneElement_pressedController","PressedController","target","isPressedKey","key","minPressedDuration","callback","pressed","setCustomState","disabled","_M3eSplitPaneElement_startMutationController","MutationController","config","attributeFilter","__classPrivateFieldGet","_M3eSplitPaneElement_instances","_M3eSplitPaneElement_updatePaneVisibility","call","_M3eSplitPaneElement_endMutationController","value","min","max","overshootLimit","step","detents","wrapDetents","orientation","label","valueFormatter","dir","Math","round","currentOrientation","_orientation","WeakMap","WeakSet","formValue","toString","collapse","snapToValue","expand","detent","_M3eSplitPaneElement_getClosestDetent","_M3eSplitPaneElement_computeDetent","_M3eSplitPaneElement_changeValue","_M3eSplitPaneElement_snapToValue","disconnectedCallback","super","_M3eSplitPaneElement_clearOrientation","unobserve","_dragHandle","reconnectedCallback","_M3eSplitPaneElement_initialize","_M3eSplitPaneElement_initBreakpointMonitoring","willUpdate","changedProperties","has","undefined","_M3eSplitPaneElement_updateOrientation","updated","_changedProperties","_base","style","setProperty","firstUpdated","render","html","_M3eSplitPaneElement_handleStartSlotChange","_M3eSplitPaneElement_renderDragHandle","_M3eSplitPaneElement_handleEndSlotChange","ifDefined","M3eDirectionality","current","_M3eSplitPaneElement_handlePointerDown","_M3eSplitPaneElement_handlePointerUp","_M3eSplitPaneElement_handlePointerMove","_M3eSplitPaneElement_handleKeyDown","_M3eSplitPaneElement_cycleDetent","e","_M3eSplitPaneElement_handleSlotChange","slot","mutationController","state","targets","assignedElements","Array","_M3eSplitPaneElement_hasVisibleElements","element","HTMLElement","observe","pane","shadowRoot","querySelector","push","flatten","length","every","x","hasAttribute","__classPrivateFieldSet","M3eBreakpointObserver","Breakpoint","XSmall","matches","get","deleteCustomState","pointerType","button","setPointerCapture","pointerId","startPos","clientY","clientX","startValue","cachedSize","clientHeight","clientWidth","hasPointerCapture","pos","delta","overshoot","compressed","releasePointerCapture","dispatchEvent","Event","bubbles","composed","ltr","preventDefault","nextDetent","_M3eSplitPaneElement_getNextLowerDetent","_M3eSplitPaneElement_getNextHigherDetent","next","emitChange","allowOvershoot","_M3eSplitPaneElement_clearSnapAnimation","prev","cancelable","closestDetent","closestDistance","Infinity","i","distance","abs","detentIndex","currentValue","endsWith","parseFloat","isNaN","cancel","prefersReducedMotion","addCustomState","animate","duration","easing","onfinish","registerStyleSheet","css","styles","DesignToken","color","onSurface","unsafeCSS","motion","short4","standard","spring","fastEffects","outline","shape","corner","full","medium","__decorate","prototype","query","property","type","Number","attribute","converter","spaceSeparatedStringConverter","Boolean","customElement"],"mappings":"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"}
package/dist/src/all.d.ts CHANGED
@@ -3,12 +3,14 @@ export * from "./autocomplete";
3
3
  export * from "./avatar";
4
4
  export * from "./badge";
5
5
  export * from "./bottom-sheet";
6
+ export * from "./breadcrumb";
6
7
  export * from "./button";
7
8
  export * from "./button-group";
8
9
  export * from "./calendar";
9
10
  export * from "./card";
10
11
  export * from "./checkbox";
11
12
  export * from "./chips";
13
+ export * from "./content-pane";
12
14
  export * from "./core";
13
15
  export * from "./datepicker";
14
16
  export * from "./dialog";
@@ -1 +1 @@
1
- {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/all.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/all.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -55,9 +55,10 @@ declare const M3eBottomSheetElement_base: import("../core/shared/mixins/Construc
55
55
  * @attr handle - Whether to display a drag handle and enable the top region of the sheet as a gesture surface for dragging between detents.
56
56
  * @attr handle-label - The accessible label given to the drag handle.
57
57
  * @attr hideable - Whether the bottom sheet can hide when its swiped down.
58
- * @attr hide-friction - The friction coefficient to hide the sheet, or set it to the next closest expanded detent.
58
+ * @attr hide-friction - The friction coefficient to hide the sheet.
59
59
  * @attr modal - Whether the bottom sheet behaves as modal.
60
60
  * @attr open - Whether the bottom sheet is open.
61
+ * @attr overshoot-limit - A fractional value, between 0 and 100, indicating the maximum visual overshoot allowed when dragging past the minimum or maximum size.
61
62
  *
62
63
  * @fires opening - Emitted when the sheet begins to open.
63
64
  * @fires opened - Emitted when the sheet has opened.
@@ -140,10 +141,15 @@ export declare class M3eBottomSheetElement extends M3eBottomSheetElement_base {
140
141
  */
141
142
  hideable: boolean;
142
143
  /**
143
- * The friction coefficient to hide the sheet, or set it to the next closest expanded detent.
144
+ * The friction coefficient to hide the sheet.
144
145
  * @default 0.5
145
146
  */
146
147
  hideFriction: number;
148
+ /**
149
+ * A fractional value, between 0 and 100, indicating the maximum visual overshoot allowed when dragging past the minimum or maximum size.
150
+ * @default 4
151
+ */
152
+ overshootLimit: number;
147
153
  /**
148
154
  * Shows the sheet.
149
155
  * @param {number} detent The zero‑based index of the detent the sheet should open to.
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetElement.d.ts","sourceRoot":"","sources":["../../../src/bottom-sheet/BottomSheetElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAa,MAAM,KAAK,CAAC;AAyBhG,OAAO,oBAAoB,CAAC;;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,qBACa,qBAAsB,SAAQ,0BAO1C;;IAeC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA4MpC;IAEF,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAwB;IAyBnE;;;OAGG;IACyC,KAAK,UAAS;IAE1D;;;OAGG;IACyC,IAAI,UAAS;IAEzD;;;;OAIG;IAC0B,MAAM,UAAS;IAE5C;;;OAGG;IACsC,WAAW,SAAiB;IAErE;;;OAGG;IAC2E,OAAO,EAAE,MAAM,EAAE,CAAM;IAErG;;;OAGG;IACyB,MAAM,SAAK;IAEvC;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACqD,YAAY,SAAO;IAE3E;;;OAGG;IACH,IAAI,CAAC,MAAM,GAAE,MAAoB,GAAG,IAAI;IASxC,uBAAuB;IACvB,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ7B,0CAA0C;IAC1C,KAAK,IAAI,IAAI;IAeb,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAUxE,kBAAkB;IACT,mBAAmB,IAAI,IAAI;IAKpC,kBAAkB;IACT,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAK/D,kBAAkB;cACC,OAAO,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAmFpE,kBAAkB;cACC,MAAM,IAAI,OAAO;CAmarC;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,6BAA6B,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,EACrF,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER,mBAAmB,CAAC,CAAC,SAAS,MAAM,6BAA6B,EAC/D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,EACrF,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;IAER,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;CACT;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"BottomSheetElement.d.ts","sourceRoot":"","sources":["../../../src/bottom-sheet/BottomSheetElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAa,MAAM,KAAK,CAAC;AAyBhG,OAAO,oBAAoB,CAAC;;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AACH,qBACa,qBAAsB,SAAQ,0BAO1C;;IAeC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA4MpC;IAEF,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAwB;IA+BnE;;;OAGG;IACyC,KAAK,UAAS;IAE1D;;;OAGG;IACyC,IAAI,UAAS;IAEzD;;;;OAIG;IAC0B,MAAM,UAAS;IAE5C;;;OAGG;IACsC,WAAW,SAAiB;IAErE;;;OAGG;IAC2E,OAAO,EAAE,MAAM,EAAE,CAAM;IAErG;;;OAGG;IACyB,MAAM,SAAK;IAEvC;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACqD,YAAY,SAAO;IAE3E;;;OAGG;IACuD,cAAc,SAAK;IAE7E;;;OAGG;IACH,IAAI,CAAC,MAAM,GAAE,MAAoB,GAAG,IAAI;IASxC,uBAAuB;IACvB,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ7B,0CAA0C;IAC1C,KAAK,IAAI,IAAI;IAeb,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAUxE,kBAAkB;IACT,mBAAmB,IAAI,IAAI;IAKpC,kBAAkB;IACT,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAK/D,kBAAkB;cACC,OAAO,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAmFpE,kBAAkB;cACC,MAAM,IAAI,OAAO;CAsbrC;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,6BAA6B,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,EACrF,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER,mBAAmB,CAAC,CAAC,SAAS,MAAM,6BAA6B,EAC/D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,EACrF,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;IAER,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;CACT;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -0,0 +1,47 @@
1
+ import { CSSResultGroup, LitElement } from "lit";
2
+ declare const M3eBreadcrumbElement_base: import("../core/shared/mixins/Constructor").Constructor & typeof LitElement;
3
+ /**
4
+ * Displays a hierarchical navigation path and identifies the user's
5
+ * current location within an application.
6
+ *
7
+ * @description
8
+ * The `m3e-breadcrumb` component arranges `m3e-breadcrumb-item` children into
9
+ * a trail of navigation steps. It tracks the last item as the current page and
10
+ * supports a custom separator slot for alternate divider content.
11
+ *
12
+ * @example
13
+ * The following example illustrates a simple breadcrumb with three items.
14
+ * ```html
15
+ * <m3e-breadcrumb>
16
+ * <m3e-breadcrumb-item href="/dashboard">Dashboard</m3e-breadcrumb-item>
17
+ * <m3e-breadcrumb-item href="/dashboard/reports">Reports</m3e-breadcrumb-item>
18
+ * <m3e-breadcrumb-item href="/dashboard/reports/annual">Annual</m3e-breadcrumb-item>
19
+ * </m3e-breadcrumb>
20
+ * ```
21
+ *
22
+ * @tag m3e-breadcrumb
23
+ *
24
+ * @slot - Renders breadcrumb items.
25
+ * @slot separator - Renders a custom separator between breadcrumb items.
26
+ *
27
+ * @attr wrap - Whether breadcrumb items should wrap onto a new line.
28
+ */
29
+ export declare class M3eBreadcrumbElement extends M3eBreadcrumbElement_base {
30
+ #private;
31
+ /** The styles of the element. */
32
+ static styles: CSSResultGroup;
33
+ /**
34
+ * Whether items wrap to a new line.
35
+ * @default false
36
+ */
37
+ wrap: boolean;
38
+ /** @inheritdoc */
39
+ protected render(): unknown;
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ "m3e-breadcrumb": M3eBreadcrumbElement;
44
+ }
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=BreadcrumbElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbElement.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/BreadcrumbElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;;AAO5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,oBAAqB,SAAQ,yBAA8B;;IACtE,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAcpC;IAIF;;;OAGG;IACyC,IAAI,UAAS;IAEzD,kBAAkB;cACC,MAAM,IAAI,OAAO;CAqCrC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;CACF"}
@@ -0,0 +1,37 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues } from "lit";
2
+ import { BreadcrumbItemCurrent } from "./BreadcrumbItemCurrent";
3
+ declare const M3eBreadcrumbItemButtonElement_base: import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").LinkButtonMixin> & import("../core/shared/mixins/Constructor").Constructor & import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").DisabledMixin> & import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").AttachInternalsMixin> & typeof LitElement;
4
+ /**
5
+ * @internal
6
+ * An internal interactive element used to present the content of a breadcrumb item.
7
+ */
8
+ export declare class M3eBreadcrumbItemButtonElement extends M3eBreadcrumbItemButtonElement_base {
9
+ #private;
10
+ /** The styles of the element. */
11
+ static styles: CSSResultGroup;
12
+ /** @private */ private readonly _focusRing?;
13
+ /** @private */ private readonly _stateLayer?;
14
+ /** @private */ private readonly _ripple?;
15
+ /**
16
+ * Indicates the current item in the breadcrumb path.
17
+ * @default undefined
18
+ */
19
+ current?: BreadcrumbItemCurrent;
20
+ /** @inheritdoc */
21
+ connectedCallback(): void;
22
+ /** @inheritdoc */
23
+ disconnectedCallback(): void;
24
+ /** @inheritdoc */
25
+ protected firstUpdated(_changedProperties: PropertyValues<this>): void;
26
+ /** @inheritdoc */
27
+ protected update(changedProperties: PropertyValues<this>): void;
28
+ /** @inheritdoc */
29
+ protected render(): unknown;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ "m3e-breadcrumb-item-button": M3eBreadcrumbItemButtonElement;
34
+ }
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=BreadcrumbItemButtonElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItemButtonElement.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/BreadcrumbItemButtonElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAE,MAAM,KAAK,CAAC;AAoBrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;;AAGhE;;;GAGG;AACH,qBACa,8BAA+B,SAAQ,mCAEnD;;IACC,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CAsHpC;IAEF,eAAe,CAAuB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IACxF,eAAe,CAAwB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAuB;IAC3F,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmB;IAI9E;;;OAGG;IAC0B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAE7D,kBAAkB;IACT,iBAAiB,IAAI,IAAI;IAKlC,kBAAkB;IACT,oBAAoB,IAAI,IAAI;IAKrC,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/E,kBAAkB;cACC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAkBxE,kBAAkB;cACC,MAAM,IAAI,OAAO;CA4BrC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
@@ -0,0 +1,3 @@
1
+ /** Specifies the available values used to indicate the current item in the breadcrumb path. */
2
+ export type BreadcrumbItemCurrent = "page" | "step" | "location" | "date" | "time" | "true";
3
+ //# sourceMappingURL=BreadcrumbItemCurrent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItemCurrent.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/BreadcrumbItemCurrent.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues } from "lit";
2
+ import { BreadcrumbItemCurrent } from "./BreadcrumbItemCurrent";
3
+ import "./BreadcrumbItemButtonElement";
4
+ declare const M3eBreadcrumbItemElement_base: import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").LinkButtonMixin> & import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").AttachInternalsMixin> & import("../core/shared/mixins/Constructor").Constructor & typeof LitElement;
5
+ /**
6
+ * An item in a breadcrumb.
7
+ *
8
+ * @description
9
+ * The `m3e-breadcrumb-item` element represents a single item in a breadcrumb
10
+ * navigation trail. It renders an internal button and supports navigation
11
+ * attributes for link behavior.
12
+ *
13
+ * @tag m3e-breadcrumb-item
14
+ *
15
+ * @slot - Renders the content of the breadcrumb item.
16
+ *
17
+ * @attr item-label - The accessible label used by the internal breadcrumb button.
18
+ * @attr disabled - Whether the breadcrumb item is disabled.
19
+ * @attr current - Marks the breadcrumb item as the current location in the trail.
20
+ * @attr href - The URL to which the internal breadcrumb link button points.
21
+ * @attr target - The target of the internal breadcrumb link button.
22
+ * @attr download - A value indicating whether the internal link target will be downloaded, optionally specifying a file name.
23
+ * @attr rel - The relationship between the internal link target and the document.
24
+ *
25
+ * @fires click - Emitted when the element is clicked.
26
+ *
27
+ * @cssprop --m3e-breadcrumb-item-shape - Shape of the internal breadcrumb item button.
28
+ * @cssprop --m3e-breadcrumb-item-container-height - Height of the internal breadcrumb item button container.
29
+ * @cssprop --m3e-breadcrumb-item-icon-color - Color of breadcrumb item icon-only content.
30
+ * @cssprop --m3e-breadcrumb-item-icon-padding-inline - Horizontal padding for icon-only breadcrumb items.
31
+ * @cssprop --m3e-breadcrumb-item-icon-hover-state-layer-color - Hover state layer color for icon-only breadcrumb items.
32
+ * @cssprop --m3e-breadcrumb-item-icon-focus-state-layer-color - Focus state layer color for icon-only breadcrumb items.
33
+ * @cssprop --m3e-breadcrumb-item-icon-pressed-state-layer-color - Pressed state layer color for icon-only breadcrumb items.
34
+ * @cssprop --m3e-breadcrumb-item-label-color - Color of breadcrumb item label content.
35
+ * @cssprop --m3e-breadcrumb-item-label-font-size - Font size of breadcrumb item label content.
36
+ * @cssprop --m3e-breadcrumb-item-label-font-weight - Font weight of breadcrumb item label content.
37
+ * @cssprop --m3e-breadcrumb-item-label-line-height - Line height of breadcrumb item label content.
38
+ * @cssprop --m3e-breadcrumb-item-label-tracking - Letter spacing of breadcrumb item label content.
39
+ * @cssprop --m3e-breadcrumb-item-label-padding-inline - Horizontal padding for label breadcrumb items.
40
+ * @cssprop --m3e-breadcrumb-item-label-hover-state-layer-color - Hover state layer color for label breadcrumb items.
41
+ * @cssprop --m3e-breadcrumb-item-label-focus-state-layer-color - Focus state layer color for label breadcrumb items.
42
+ * @cssprop --m3e-breadcrumb-item-label-pressed-state-layer-color - Pressed state layer color for label breadcrumb items.
43
+ * @cssprop --m3e-breadcrumb-item-last-color - Color used for the current breadcrumb item.
44
+ * @cssprop --m3e-breadcrumb-item-icon-label-space - Space between icon and label.
45
+ * @cssprop --m3e-breadcrumb-item-icon-size - Size of the icon.
46
+ * @cssprop --m3e-breadcrumb-item-disabled-color - Disabled color used by the breadcrumb item button.
47
+ * @cssprop --m3e-breadcrumb-item-disabled-opacity - Disabled opacity used by the breadcrumb item button.
48
+ */
49
+ export declare class M3eBreadcrumbItemElement extends M3eBreadcrumbItemElement_base {
50
+ #private;
51
+ /** The styles of the element. */
52
+ static styles: CSSResultGroup;
53
+ /** @private */ private readonly _button;
54
+ /**
55
+ * The accessible label given to the item's internal button.
56
+ * @default ""
57
+ */
58
+ itemLabel: string;
59
+ /**
60
+ * Whether the element is disabled.
61
+ * @default false
62
+ */
63
+ disabled: boolean;
64
+ /**
65
+ * Indicates the current item in the breadcrumb path.
66
+ * @default undefined
67
+ */
68
+ current?: BreadcrumbItemCurrent;
69
+ /** @inheritdoc */
70
+ focus(options?: FocusOptions): void;
71
+ /** @inheritdoc */
72
+ blur(): void;
73
+ /** @inheritdoc */
74
+ click(): void;
75
+ /** @inheritdoc */
76
+ protected updated(_changedProperties: PropertyValues<this>): void;
77
+ /** @inheritdoc */
78
+ protected render(): unknown;
79
+ /** @internal */
80
+ _setSeparator(nodes: Array<Node>): void;
81
+ }
82
+ declare global {
83
+ interface HTMLElementTagNameMap {
84
+ "m3e-breadcrumb-item": M3eBreadcrumbItemElement;
85
+ }
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=BreadcrumbItemElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItemElement.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/BreadcrumbItemElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAW,cAAc,EAAE,MAAM,KAAK,CAAC;AAOrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,+BAA+B,CAAC;;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,wBAAyB,SAAQ,6BAA+D;;IAC3G,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA8BpC;IAEF,eAAe,CAAmB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAG5F;;;OAGG;IACoC,SAAS,SAAM;IAEtD;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IAC0B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAE7D,kBAAkB;IACT,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAI5C,kBAAkB;IACT,IAAI,IAAI,IAAI;IAIrB,kBAAkB;IACT,KAAK,IAAI,IAAI;IAItB,kBAAkB;cACC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO1E,kBAAkB;cACC,MAAM,IAAI,OAAO;IA8CpC,gBAAgB;IAChB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;CAcjC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from "./BreadcrumbElement";
2
+ export * from "./BreadcrumbItemCurrent";
3
+ export * from "./BreadcrumbItemElement";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** @internal */
2
+ export declare function isIconOnly(slot: HTMLSlotElement): boolean;
3
+ //# sourceMappingURL=isIconOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isIconOnly.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb/isIconOnly.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAOzD"}
@@ -0,0 +1,44 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues } from "lit";
2
+ declare const M3eContentPaneElement_base: import("../core/shared/mixins/Constructor").Constructor<import("@m3e/web/core").ReconnectedCallbackMixin> & typeof LitElement;
3
+ /**
4
+ * A shaped surface for vertically scrollable content.
5
+ *
6
+ * @description
7
+ * The `m3e-content-pane` component renders a shaped surface with padding and vertical
8
+ * scrolling for document‑like content.
9
+ *
10
+ * @example
11
+ * The following example illustrates basic usage of the content pane.
12
+ * ```html
13
+ * <m3e-content-pane>
14
+ * <p>This is some scrollable content.</p>
15
+ * <p>More content here...</p>
16
+ * </m3e-content-pane>
17
+ * ```
18
+ *
19
+ * @tag m3e-content-pane
20
+ *
21
+ * @slot - Renders the content of the pane.
22
+ *
23
+ * @cssprop --m3e-content-pane-container-shape - Corner radius applied to the pane’s outer surface.
24
+ * @cssprop --m3e-content-pane-container-color - Background color of the pane’s surface.
25
+ * @cssprop --m3e-content-pane-container-padding - Internal padding applied to all sides of the scrollable content.
26
+ */
27
+ export declare class M3eContentPaneElement extends M3eContentPaneElement_base {
28
+ #private;
29
+ /** The styles of the element. */
30
+ static styles: CSSResultGroup;
31
+ /** @inheritdoc */
32
+ reconnectedCallback(): void;
33
+ /** @inheritdoc */
34
+ protected firstUpdated(_changedProperties: PropertyValues): void;
35
+ /** @inheritdoc */
36
+ protected render(): unknown;
37
+ }
38
+ declare global {
39
+ interface HTMLElementTagNameMap {
40
+ "m3e-content-pane": M3eContentPaneElement;
41
+ }
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=ContentPaneElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentPaneElement.d.ts","sourceRoot":"","sources":["../../../src/content-pane/ContentPaneElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;;AAI5E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,qBAAsB,SAAQ,0BAA+B;;IACxE,iCAAiC;IACjC,OAAgB,MAAM,EAAE,cAAc,CA6BpC;IAEF,kBAAkB;IACT,mBAAmB,IAAI,IAAI;IAKpC,kBAAkB;cACC,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAKzE,kBAAkB;cACC,MAAM,IAAI,OAAO;CAmBrC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from "./ContentPaneElement";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-pane/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -5,15 +5,17 @@ export declare class M3eInteractivityChecker {
5
5
  * Determines whether a given element can receive focus.
6
6
  * @param {Element} element The element to test.
7
7
  * @param {readonly Element[]} [parents = undefined] The known parent elements to test. The default value is `undefined`.
8
+ * @param {boolean} [allowVisiblyHidden=false] Whether to allow visibly hidden elements as focusable.
8
9
  * @returns {boolean} Whether `element` can receive focus.
9
10
  */
10
- static isFocusable(element: Element, parents?: readonly Element[]): boolean;
11
+ static isFocusable(element: Element, parents?: readonly Element[], allowVisiblyHidden?: boolean): boolean;
11
12
  /**
12
13
  * Finds interactive elements that descend from the specified element.
13
14
  * @param {HTMLElement} element The `HTMLElement` to search.
15
+ * @param {boolean} [allowVisiblyHidden=false] Whether to allow visibly hidden elements as focusable.
14
16
  * @returns {HTMLElement[]} The interactive elements that descend from `element`.
15
17
  */
16
- static findInteractiveElements(element: HTMLElement): HTMLElement[];
18
+ static findInteractiveElements(element: HTMLElement, allowVisiblyHidden?: boolean): HTMLElement[];
17
19
  }
18
20
  type M3eInteractivityCheckerClass = typeof M3eInteractivityChecker;
19
21
  declare global {