@mhmo91/schmancy 0.4.33 → 0.4.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autocomplete-BQ5Ss2om.js +332 -0
- package/dist/autocomplete-BQ5Ss2om.js.map +1 -0
- package/dist/autocomplete-C8nrKQgY.cjs +74 -0
- package/dist/autocomplete-C8nrKQgY.cjs.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-0h3VHdWs.cjs → avatar-CDZIGEvK.cjs} +2 -2
- package/dist/{avatar-0h3VHdWs.cjs.map → avatar-CDZIGEvK.cjs.map} +1 -1
- package/dist/{avatar-C5iIJlD9.js → avatar-DAs-uNIM.js} +3 -3
- package/dist/{avatar-C5iIJlD9.js.map → avatar-DAs-uNIM.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/checkbox-91xSd_El.js.map +1 -1
- package/dist/checkbox-CcKQi7Hq.cjs.map +1 -1
- package/dist/chips-D26R6u7T.js.map +1 -1
- package/dist/chips-Duj_48dP.cjs.map +1 -1
- package/dist/code-preview-BCUSwkuU.cjs.map +1 -1
- package/dist/code-preview-kNXSixdo.js.map +1 -1
- package/dist/consume-5D1qfVWM.js.map +1 -1
- package/dist/consume-edta5ng5.cjs.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/context-object-CDDP4bTk.js.map +1 -1
- package/dist/context-object-K_1gDFu-.cjs.map +1 -1
- package/dist/date-range-CBrZ7Pm6.cjs.map +1 -1
- package/dist/date-range-gp2cu49l.js.map +1 -1
- package/dist/delay-CUpeZtD8.cjs.map +1 -1
- package/dist/delay-CYxt2x_w.js.map +1 -1
- package/dist/flow-D0e7hGXO.cjs.map +1 -1
- package/dist/flow-DXYqC9OA.js.map +1 -1
- package/dist/index-CuY8m6ta.js.map +1 -1
- package/dist/index-DyJ0oDpR.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/payment-card-form-D45IjHFN.cjs.map +1 -1
- package/dist/payment-card-form-ctWIc4vM.js.map +1 -1
- package/dist/provide-BxZ2kn_p.cjs.map +1 -1
- package/dist/provide-tcktw8xB.js.map +1 -1
- package/dist/redispatch-event-BLom7yp4.js.map +1 -1
- package/dist/redispatch-event-DHcobAl6.cjs.map +1 -1
- package/dist/sheet-C-bFq5IG.cjs +54 -0
- package/dist/sheet-C-bFq5IG.cjs.map +1 -0
- package/dist/sheet-rcWGv1EZ.js +149 -0
- package/dist/sheet-rcWGv1EZ.js.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sheet.service-BKQ7n7nz.js.map +1 -1
- package/dist/sheet.service-ihtgUWRM.cjs.map +1 -1
- package/dist/table-BlwkABmS.cjs.map +1 -1
- package/dist/table-CmwIcTR5.js.map +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/tslib.es6-DgOcxv4s.cjs.map +1 -1
- package/dist/tslib.es6-ujVQHAQ4.js.map +1 -1
- package/dist/typewriter-Cf1Bl0lI.js.map +1 -1
- package/dist/typewriter-D5sC3i_h.cjs.map +1 -1
- package/package.json +2 -2
- package/types/src/index.d.ts +0 -1
- package/types/src/select/index.d.ts +1 -1
- package/types/src/select/select.d.ts +0 -1
- package/types/src/sheet/sheet.d.ts +4 -5
- package/types/src/sheet/sheet.service.d.ts +3 -10
- package/dist/autocomplete-Bx1vWN32.js +0 -315
- package/dist/autocomplete-Bx1vWN32.js.map +0 -1
- package/dist/autocomplete-ClTDM1cy.cjs +0 -73
- package/dist/autocomplete-ClTDM1cy.cjs.map +0 -1
- package/dist/sheet--fG_jGSI.cjs +0 -47
- package/dist/sheet--fG_jGSI.cjs.map +0 -1
- package/dist/sheet-edcIHEMM.js +0 -141
- package/dist/sheet-edcIHEMM.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provide-tcktw8xB.js","sources":["
|
|
1
|
+
{"version":3,"file":"provide-tcktw8xB.js","sources":["../node_modules/@lit/context/lib/context-request-event.js","../node_modules/@lit/context/lib/create-context.js","../node_modules/@lit/context/lib/value-notifier.js","../node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/@lit/context/lib/decorators/provide.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n"],"names":["Event","s","t","e","o","super","bubbles","composed","this","context","contextTarget","callback","subscribe","n","value","setValue","i","Object","is","updateObservers","subscriptions","Map","disposer","has","set","delete","consumerHost","h","get","clear","e$1","initialValue","onContextRequest","composedPath","host","stopPropagation","addCallback","onProviderRequest","Set","add","dispatchEvent","attachListeners","addController","addEventListener","hostConnected","r","WeakMap","call","constructor","addInitializer","getOwnPropertyDescriptor","configurable","enumerable","defineProperty"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redispatch-event-BLom7yp4.js","sources":["../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/internal/controller/attachable-controller.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/focus/internal/focus-ring.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/focus/internal/focus-ring-styles.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/focus/md-focus-ring.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/internal/motion/animation.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/ripple/internal/ripple.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/ripple/internal/ripple-styles.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/ripple/ripple.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/internal/aria/aria.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/internal/aria/delegate.js","../../../../.yarn/berry/cache/@material-web-npm-2.3.0-e634be95cf-10c0.zip/node_modules/@material/web/internal/events/redispatch-event.js"],"sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\n/**\n * A key to retrieve an `Attachable` element's `AttachableController` from a\n * global `MutationObserver`.\n */\nconst ATTACHABLE_CONTROLLER = Symbol('attachableController');\nlet FOR_ATTRIBUTE_OBSERVER;\nif (!isServer) {\n /**\n * A global `MutationObserver` that reacts to `for` attribute changes on\n * `Attachable` elements. If the `for` attribute changes, the controller will\n * re-attach to the new referenced element.\n */\n FOR_ATTRIBUTE_OBSERVER = new MutationObserver((records) => {\n for (const record of records) {\n // When a control's `for` attribute changes, inform its\n // `AttachableController` to update to a new control.\n record.target[ATTACHABLE_CONTROLLER]?.hostConnected();\n }\n });\n}\n/**\n * A controller that provides an implementation for `Attachable` elements.\n *\n * @example\n * ```ts\n * class MyElement extends LitElement implements Attachable {\n * get control() { return this.attachableController.control; }\n *\n * private readonly attachableController = new AttachableController(\n * this,\n * (previousControl, newControl) => {\n * previousControl?.removeEventListener('click', this.handleClick);\n * newControl?.addEventListener('click', this.handleClick);\n * }\n * );\n *\n * // Implement remaining `Attachable` properties/methods that call the\n * // controller's properties/methods.\n * }\n * ```\n */\nexport class AttachableController {\n get htmlFor() {\n return this.host.getAttribute('for');\n }\n set htmlFor(htmlFor) {\n if (htmlFor === null) {\n this.host.removeAttribute('for');\n }\n else {\n this.host.setAttribute('for', htmlFor);\n }\n }\n get control() {\n if (this.host.hasAttribute('for')) {\n if (!this.htmlFor || !this.host.isConnected) {\n return null;\n }\n return this.host.getRootNode().querySelector(`#${this.htmlFor}`);\n }\n return this.currentControl || this.host.parentElement;\n }\n set control(control) {\n if (control) {\n this.attach(control);\n }\n else {\n this.detach();\n }\n }\n /**\n * Creates a new controller for an `Attachable` element.\n *\n * @param host The `Attachable` element.\n * @param onControlChange A callback with two parameters for the previous and\n * next control. An `Attachable` element may perform setup or teardown\n * logic whenever the control changes.\n */\n constructor(host, onControlChange) {\n this.host = host;\n this.onControlChange = onControlChange;\n this.currentControl = null;\n host.addController(this);\n host[ATTACHABLE_CONTROLLER] = this;\n FOR_ATTRIBUTE_OBSERVER?.observe(host, { attributeFilter: ['for'] });\n }\n attach(control) {\n if (control === this.currentControl) {\n return;\n }\n this.setCurrentControl(control);\n // When imperatively attaching, remove the `for` attribute so\n // that the attached control is used instead of a referenced one.\n this.host.removeAttribute('for');\n }\n detach() {\n this.setCurrentControl(null);\n // When imperatively detaching, add an empty `for=\"\"` attribute. This will\n // ensure the control is `null` rather than the `parentElement`.\n this.host.setAttribute('for', '');\n }\n /** @private */\n hostConnected() {\n this.setCurrentControl(this.control);\n }\n /** @private */\n hostDisconnected() {\n this.setCurrentControl(null);\n }\n setCurrentControl(control) {\n this.onControlChange(this.currentControl, control);\n this.currentControl = control;\n }\n}\n//# sourceMappingURL=attachable-controller.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { isServer, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\n/**\n * Events that the focus ring listens to.\n */\nconst EVENTS = ['focusin', 'focusout', 'pointerdown'];\n/**\n * A focus ring component.\n *\n * @fires visibility-changed {Event} Fired whenever `visible` changes.\n */\nexport class FocusRing extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Makes the focus ring visible.\n */\n this.visible = false;\n /**\n * Makes the focus ring animate inwards instead of outwards.\n */\n this.inward = false;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n /** @private */\n handleEvent(event) {\n if (event[HANDLED_BY_FOCUS_RING]) {\n // This ensures the focus ring does not activate when multiple focus rings\n // are used within a single component.\n return;\n }\n switch (event.type) {\n default:\n return;\n case 'focusin':\n this.visible = this.control?.matches(':focus-visible') ?? false;\n break;\n case 'focusout':\n case 'pointerdown':\n this.visible = false;\n break;\n }\n event[HANDLED_BY_FOCUS_RING] = true;\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n update(changed) {\n if (changed.has('visible')) {\n // This logic can be removed once the `:has` selector has been introduced\n // to Firefox. This is necessary to allow correct submenu styles.\n this.dispatchEvent(new Event('visibility-changed'));\n }\n super.update(changed);\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"visible\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"inward\", void 0);\nconst HANDLED_BY_FOCUS_RING = Symbol('handledByFocusRing');\n//# sourceMappingURL=focus-ring.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./focus/internal/focus-ring-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{animation-delay:0s,calc(var(--md-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--md-focus-ring-duration, 600ms)*.25),calc(var(--md-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));inset:calc(-1*var(--md-focus-ring-outward-offset, 2px));outline:var(--md-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border:var(--md-focus-ring-width, 3px) solid currentColor;inset:var(--md-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--md-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}\n`;\n//# sourceMappingURL=focus-ring-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FocusRing } from './internal/focus-ring.js';\nimport { styles } from './internal/focus-ring-styles.js';\n/**\n * TODO(b/267336424): add docs\n *\n * @final\n * @suppress {visibility}\n */\nlet MdFocusRing = class MdFocusRing extends FocusRing {\n};\nMdFocusRing.styles = [styles];\nMdFocusRing = __decorate([\n customElement('md-focus-ring')\n], MdFocusRing);\nexport { MdFocusRing };\n//# sourceMappingURL=md-focus-ring.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Easing functions to use for web animations.\n *\n * **NOTE:** `EASING.EMPHASIZED` is approximated with unknown accuracy.\n *\n * TODO(b/241113345): replace with tokens\n */\nexport const EASING = {\n STANDARD: 'cubic-bezier(0.2, 0, 0, 1)',\n STANDARD_ACCELERATE: 'cubic-bezier(.3,0,1,1)',\n STANDARD_DECELERATE: 'cubic-bezier(0,0,0,1)',\n EMPHASIZED: 'cubic-bezier(.3,0,0,1)',\n EMPHASIZED_ACCELERATE: 'cubic-bezier(.3,0,.8,.15)',\n EMPHASIZED_DECELERATE: 'cubic-bezier(.05,.7,.1,1)',\n};\n/**\n * Creates an `AnimationSignal` that can be used to cancel a previous task.\n *\n * @example\n * class MyClass {\n * private labelAnimationSignal = createAnimationSignal();\n *\n * private async animateLabel() {\n * // Start of the task. Previous tasks will be canceled.\n * const signal = this.labelAnimationSignal.start();\n *\n * // Do async work...\n * if (signal.aborted) {\n * // Use AbortSignal to check if a request was made to abort after some\n * // asynchronous work.\n * return;\n * }\n *\n * const animation = this.animate(...);\n * // Add event listeners to be notified when the task should be canceled.\n * signal.addEventListener('abort', () => {\n * animation.cancel();\n * });\n *\n * animation.addEventListener('finish', () => {\n * // Tell the signal that the current task is finished.\n * this.labelAnimationSignal.finish();\n * });\n * }\n * }\n *\n * @return An `AnimationSignal`.\n */\nexport function createAnimationSignal() {\n // The current animation's AbortController\n let animationAbortController = null;\n return {\n start() {\n // Tell the previous animation to cancel.\n animationAbortController?.abort();\n // Set up a new AbortController for the current animation.\n animationAbortController = new AbortController();\n // Provide the AbortSignal so that the caller can check aborted status\n // and add listeners.\n return animationAbortController.signal;\n },\n finish() {\n animationAbortController = null;\n },\n };\n}\n/**\n * Returns a function which can be used to throttle function calls\n * mapped to a key via a given function that should produce a promise that\n * determines the throttle amount (defaults to requestAnimationFrame).\n */\nexport function createThrottle() {\n const stack = new Set();\n return async (key = '', cb, timeout = async () => {\n await new Promise(requestAnimationFrame);\n }) => {\n if (!stack.has(key)) {\n stack.add(key);\n await timeout();\n if (stack.has(key)) {\n stack.delete(key);\n cb();\n }\n }\n };\n}\n/**\n * Parses an number in milliseconds from a css time value\n */\nexport function msFromTimeCSSValue(value) {\n const match = value.trim().match(/([\\d.]+)(\\s*s$)?/);\n const time = match?.[1];\n const seconds = match?.[2];\n return Number(time ?? 0) * (seconds ? 1000 : 1);\n}\n//# sourceMappingURL=animation.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { html, isServer, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\nimport { EASING } from '../../internal/motion/animation.js';\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nvar State;\n(function (State) {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"INACTIVE\"] = 0] = \"INACTIVE\";\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n State[State[\"TOUCH_DELAY\"] = 1] = \"TOUCH_DELAY\";\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"HOLDING\"] = 2] = \"HOLDING\";\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n State[State[\"WAITING_FOR_CLICK\"] = 3] = \"WAITING_FOR_CLICK\";\n})(State || (State = {}));\n/**\n * Events that the ripple listens to.\n */\nconst EVENTS = [\n 'click',\n 'contextmenu',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerup',\n];\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n/**\n * Used to detect if HCM is active. Events do not process during HCM when the\n * ripple is not displayed.\n */\nconst FORCED_COLORS = isServer\n ? null\n : window.matchMedia('(forced-colors: active)');\n/**\n * A ripple component.\n */\nexport class Ripple extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Disables the ripple.\n */\n this.disabled = false;\n this.hovered = false;\n this.pressed = false;\n this.rippleSize = '';\n this.rippleScale = '';\n this.initialSize = 0;\n this.state = State.INACTIVE;\n this.checkBoundsAfterContextMenu = false;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n render() {\n const classes = {\n 'hovered': this.hovered,\n 'pressed': this.pressed,\n };\n return html `<div class=\"surface ${classMap(classes)}\"></div>`;\n }\n update(changedProps) {\n if (changedProps.has('disabled') && this.disabled) {\n this.hovered = false;\n this.pressed = false;\n }\n super.update(changedProps);\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerenter(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = true;\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerleave(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = false;\n // release a held mouse or pen press that moves outside the element\n if (this.state !== State.INACTIVE) {\n this.endPressAnimation();\n }\n }\n handlePointerup(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n return;\n }\n if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(this.rippleStartEvent);\n return;\n }\n }\n async handlePointerdown(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.rippleStartEvent = event;\n if (!this.isTouch(event)) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(event);\n return;\n }\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this.checkBoundsAfterContextMenu && !this.inBounds(event)) {\n return;\n }\n this.checkBoundsAfterContextMenu = false;\n // Wait for a hold after touch delay\n this.state = State.TOUCH_DELAY;\n await new Promise((resolve) => {\n setTimeout(resolve, TOUCH_DELAY_MS);\n });\n if (this.state !== State.TOUCH_DELAY) {\n return;\n }\n this.state = State.HOLDING;\n this.startPressAnimation(event);\n }\n handleClick() {\n // Click is a MouseEvent in Firefox and Safari, so we cannot use\n // `shouldReactToEvent`\n if (this.disabled) {\n return;\n }\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPressAnimation();\n return;\n }\n if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.startPressAnimation();\n this.endPressAnimation();\n }\n }\n handlePointercancel(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.endPressAnimation();\n }\n handleContextmenu() {\n if (this.disabled) {\n return;\n }\n this.checkBoundsAfterContextMenu = true;\n this.endPressAnimation();\n }\n determineRippleSize() {\n const { height, width } = this.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n this.initialSize = initialSize;\n this.rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n this.rippleSize = `${initialSize}px`;\n }\n getNormalizedPointerEventCoords(pointerEvent) {\n const { scrollX, scrollY } = window;\n const { left, top } = this.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { pageX, pageY } = pointerEvent;\n return { x: pageX - documentX, y: pageY - documentY };\n }\n getTranslationCoordinates(positionEvent) {\n const { height, width } = this.getBoundingClientRect();\n // end in the center\n const endPoint = {\n x: (width - this.initialSize) / 2,\n y: (height - this.initialSize) / 2,\n };\n let startPoint;\n if (positionEvent instanceof PointerEvent) {\n startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n }\n else {\n startPoint = {\n x: width / 2,\n y: height / 2,\n };\n }\n // center around start point\n startPoint = {\n x: startPoint.x - this.initialSize / 2,\n y: startPoint.y - this.initialSize / 2,\n };\n return { startPoint, endPoint };\n }\n startPressAnimation(positionEvent) {\n if (!this.mdRoot) {\n return;\n }\n this.pressed = true;\n this.growAnimation?.cancel();\n this.determineRippleSize();\n const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n this.growAnimation = this.mdRoot.animate({\n top: [0, 0],\n left: [0, 0],\n height: [this.rippleSize, this.rippleSize],\n width: [this.rippleSize, this.rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${this.rippleScale})`,\n ],\n }, {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING.STANDARD,\n fill: ANIMATION_FILL,\n });\n }\n async endPressAnimation() {\n this.rippleStartEvent = undefined;\n this.state = State.INACTIVE;\n const animation = this.growAnimation;\n let pressAnimationPlayState = Infinity;\n if (typeof animation?.currentTime === 'number') {\n pressAnimationPlayState = animation.currentTime;\n }\n else if (animation?.currentTime) {\n pressAnimationPlayState = animation.currentTime.to('ms').value;\n }\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.pressed = false;\n return;\n }\n await new Promise((resolve) => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n if (this.growAnimation !== animation) {\n // A new press animation was started. The old animation was canceled and\n // should not finish the pressed state.\n return;\n }\n this.pressed = false;\n }\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n shouldReactToEvent(event) {\n if (this.disabled || !event.isPrimary) {\n return false;\n }\n if (this.rippleStartEvent &&\n this.rippleStartEvent.pointerId !== event.pointerId) {\n return false;\n }\n if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n return !this.isTouch(event);\n }\n const isPrimaryButton = event.buttons === 1;\n return this.isTouch(event) || isPrimaryButton;\n }\n /**\n * Check if the event is within the bounds of the element.\n *\n * This is only needed for the \"stuck\" contextmenu longpress on Chrome.\n */\n inBounds({ x, y }) {\n const { top, left, bottom, right } = this.getBoundingClientRect();\n return x >= left && x <= right && y >= top && y <= bottom;\n }\n isTouch({ pointerType }) {\n return pointerType === 'touch';\n }\n /** @private */\n async handleEvent(event) {\n if (FORCED_COLORS?.matches) {\n // Skip event logic since the ripple is `display: none`.\n return;\n }\n switch (event.type) {\n case 'click':\n this.handleClick();\n break;\n case 'contextmenu':\n this.handleContextmenu();\n break;\n case 'pointercancel':\n this.handlePointercancel(event);\n break;\n case 'pointerdown':\n await this.handlePointerdown(event);\n break;\n case 'pointerenter':\n this.handlePointerenter(event);\n break;\n case 'pointerleave':\n this.handlePointerleave(event);\n break;\n case 'pointerup':\n this.handlePointerup(event);\n break;\n default:\n break;\n }\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], Ripple.prototype, \"disabled\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"hovered\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"pressed\", void 0);\n__decorate([\n query('.surface')\n], Ripple.prototype, \"mdRoot\", void 0);\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./ripple/internal/ripple-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:flex;margin:auto;pointer-events:none}:host([disabled]){display:none}@media(forced-colors: active){:host{display:none}}:host,.surface{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.surface{-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{content:\"\";opacity:0;position:absolute}.surface::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));inset:0;transition:opacity 15ms linear,background-color 15ms linear}.surface::after{background:radial-gradient(closest-side, var(--md-ripple-pressed-color, var(--md-sys-color-on-surface, #1d1b20)) max(100% - 70px, 65%), transparent 100%);transform-origin:center center;transition:opacity 375ms linear}.hovered::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-ripple-hover-opacity, 0.08)}.pressed::after{opacity:var(--md-ripple-pressed-opacity, 0.12);transition-duration:105ms}\n`;\n//# sourceMappingURL=ripple-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Ripple } from './internal/ripple.js';\nimport { styles } from './internal/ripple-styles.js';\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdRipple = class MdRipple extends Ripple {\n};\nMdRipple.styles = [styles];\nMdRipple = __decorate([\n customElement('md-ripple')\n], MdRipple);\nexport { MdRipple };\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Accessibility Object Model reflective aria properties.\n */\nexport const ARIA_PROPERTIES = [\n 'role',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColSpan',\n 'ariaCurrent',\n 'ariaDisabled',\n 'ariaExpanded',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n];\n/**\n * Accessibility Object Model aria attributes.\n */\nexport const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);\n/**\n * Checks if an attribute is one of the AOM aria attributes.\n *\n * @example\n * isAriaAttribute('aria-label'); // true\n *\n * @param attribute The attribute to check.\n * @return True if the attribute is an aria attribute, or false if not.\n */\nexport function isAriaAttribute(attribute) {\n return ARIA_ATTRIBUTES.includes(attribute);\n}\n/**\n * Converts an AOM aria property into its corresponding attribute.\n *\n * @example\n * ariaPropertyToAttribute('ariaLabel'); // 'aria-label'\n *\n * @param property The aria property.\n * @return The aria attribute.\n */\nexport function ariaPropertyToAttribute(property) {\n return property\n .replace('aria', 'aria-')\n // IDREF attributes also include an \"Element\" or \"Elements\" suffix\n .replace(/Elements?/g, '')\n .toLowerCase();\n}\n//# sourceMappingURL=aria.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { ARIA_PROPERTIES, ariaPropertyToAttribute, isAriaAttribute, } from './aria.js';\n// Private symbols\nconst privateIgnoreAttributeChangesFor = Symbol('privateIgnoreAttributeChangesFor');\n/**\n * Mixes in aria delegation for elements that delegate focus and aria to inner\n * shadow root elements.\n *\n * This mixin fixes invalid aria announcements with shadow roots, caused by\n * duplicate aria attributes on both the host and the inner shadow root element.\n *\n * Note: this mixin **does not yet support** ID reference attributes, such as\n * `aria-labelledby` or `aria-controls`.\n *\n * @example\n * ```ts\n * class MyButton extends mixinDelegatesAria(LitElement) {\n * static shadowRootOptions = {mode: 'open', delegatesFocus: true};\n *\n * render() {\n * return html`\n * <button aria-label=${this.ariaLabel || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * }\n * }\n * ```\n * ```html\n * <my-button aria-label=\"Plus one\">+1</my-button>\n * ```\n *\n * Use `ARIAMixinStrict` for lit analyzer strict types, such as the \"role\"\n * attribute.\n *\n * @example\n * ```ts\n * return html`\n * <button role=${(this as ARIAMixinStrict).role || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * ```\n *\n * In the future, updates to the Accessibility Object Model (AOM) will provide\n * built-in aria delegation features that will replace this mixin.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with aria delegation mixed in.\n */\nexport function mixinDelegatesAria(base) {\n var _a;\n if (isServer) {\n // Don't shift attributes when running with lit-ssr. The SSR renderer\n // implements a subset of DOM APIs, including the methods this mixin\n // overrides, causing errors. We don't need to shift on the server anyway\n // since elements will shift attributes immediately once they hydrate.\n return base;\n }\n class WithDelegatesAriaElement extends base {\n constructor() {\n super(...arguments);\n this[_a] = new Set();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!isAriaAttribute(name)) {\n super.attributeChangedCallback(name, oldValue, newValue);\n return;\n }\n if (this[privateIgnoreAttributeChangesFor].has(name)) {\n return;\n }\n // Don't trigger another `attributeChangedCallback` once we remove the\n // aria attribute from the host. We check the explicit name of the\n // attribute to ignore since `attributeChangedCallback` can be called\n // multiple times out of an expected order when hydrating an element with\n // multiple attributes.\n this[privateIgnoreAttributeChangesFor].add(name);\n this.removeAttribute(name);\n this[privateIgnoreAttributeChangesFor].delete(name);\n const dataProperty = ariaAttributeToDataProperty(name);\n if (newValue === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = newValue;\n }\n this.requestUpdate(ariaAttributeToDataProperty(name), oldValue);\n }\n getAttribute(name) {\n if (isAriaAttribute(name)) {\n return super.getAttribute(ariaAttributeToDataAttribute(name));\n }\n return super.getAttribute(name);\n }\n removeAttribute(name) {\n super.removeAttribute(name);\n if (isAriaAttribute(name)) {\n super.removeAttribute(ariaAttributeToDataAttribute(name));\n // Since `aria-*` attributes are already removed`, we need to request\n // an update because `attributeChangedCallback` will not be called.\n this.requestUpdate();\n }\n }\n }\n _a = privateIgnoreAttributeChangesFor;\n setupDelegatesAriaProperties(WithDelegatesAriaElement);\n return WithDelegatesAriaElement;\n}\n/**\n * Overrides the constructor's native `ARIAMixin` properties to ensure that\n * aria properties reflect the values that were shifted to a data attribute.\n *\n * @param ctor The `ReactiveElement` constructor to patch.\n */\nfunction setupDelegatesAriaProperties(ctor) {\n for (const ariaProperty of ARIA_PROPERTIES) {\n // The casing between ariaProperty and the dataProperty may be different.\n // ex: aria-haspopup -> ariaHasPopup\n const ariaAttribute = ariaPropertyToAttribute(ariaProperty);\n // ex: aria-haspopup -> data-aria-haspopup\n const dataAttribute = ariaAttributeToDataAttribute(ariaAttribute);\n // ex: aria-haspopup -> dataset.ariaHaspopup\n const dataProperty = ariaAttributeToDataProperty(ariaAttribute);\n // Call `ReactiveElement.createProperty()` so that the `aria-*` and `data-*`\n // attributes are added to the `static observedAttributes` array. This\n // triggers `attributeChangedCallback` for the delegates aria mixin to\n // handle.\n ctor.createProperty(ariaProperty, {\n attribute: ariaAttribute,\n noAccessor: true,\n });\n ctor.createProperty(Symbol(dataAttribute), {\n attribute: dataAttribute,\n noAccessor: true,\n });\n // Re-define the `ARIAMixin` properties to handle data attribute shifting.\n // It is safe to use `Object.defineProperty` here because the properties\n // are native and not renamed.\n // tslint:disable-next-line:ban-unsafe-reflection\n Object.defineProperty(ctor.prototype, ariaProperty, {\n configurable: true,\n enumerable: true,\n get() {\n return this.dataset[dataProperty] ?? null;\n },\n set(value) {\n const prevValue = this.dataset[dataProperty] ?? null;\n if (value === prevValue) {\n return;\n }\n if (value === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = value;\n }\n this.requestUpdate(ariaProperty, prevValue);\n },\n });\n }\n}\nfunction ariaAttributeToDataAttribute(ariaAttribute) {\n // aria-haspopup -> data-aria-haspopup\n return `data-${ariaAttribute}`;\n}\nfunction ariaAttributeToDataProperty(ariaAttribute) {\n // aria-haspopup -> dataset.ariaHaspopup\n return ariaAttribute.replace(/-\\w/, (dashLetter) => dashLetter[1].toUpperCase());\n}\n//# sourceMappingURL=delegate.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Re-dispatches an event from the provided element.\n *\n * This function is useful for forwarding non-composed events, such as `change`\n * events.\n *\n * @example\n * class MyInput extends LitElement {\n * render() {\n * return html`<input @change=${this.redispatchEvent}>`;\n * }\n *\n * protected redispatchEvent(event: Event) {\n * redispatchEvent(this, event);\n * }\n * }\n *\n * @param element The element to dispatch the event from.\n * @param event The event to re-dispatch.\n * @return Whether or not the event was dispatched (if cancelable).\n */\nexport function redispatchEvent(element, event) {\n // For bubbling events in SSR light DOM (or composed), stop their propagation\n // and dispatch the copy.\n if (event.bubbles && (!element.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = element.dispatchEvent(copy);\n if (!dispatched) {\n event.preventDefault();\n }\n return dispatched;\n}\n//# sourceMappingURL=redispatch-event.js.map"],"names":["ATTACHABLE_CONTROLLER","Symbol","FOR_ATTRIBUTE_OBSERVER","isServer","MutationObserver","records","record","target","hostConnected","AttachableController","htmlFor","this","host","getAttribute","removeAttribute","setAttribute","hasAttribute","isConnected","getRootNode","querySelector","currentControl","parentElement","control","attach","detach","onControlChange","addController","observe","attributeFilter","setCurrentControl","hostDisconnected","EVENTS","FocusRing","LitElement","constructor","super","arguments","visible","inward","attachableController","bind","connectedCallback","event","HANDLED_BY_FOCUS_RING","type","matches","prev","next","removeEventListener","addEventListener","changed","has","dispatchEvent","Event","update","__decorate","property","Boolean","reflect","prototype","styles","css","MdFocusRing","customElement","EASING","State","FORCED_COLORS","window","matchMedia","Ripple","disabled","hovered","pressed","rippleSize","rippleScale","initialSize","state","INACTIVE","checkBoundsAfterContextMenu","classes","html","classMap","changedProps","shouldReactToEvent","endPressAnimation","HOLDING","TOUCH_DELAY","WAITING_FOR_CLICK","startPressAnimation","rippleStartEvent","isTouch","inBounds","Promise","resolve","setTimeout","handleClick","handleContextmenu","determineRippleSize","height","width","getBoundingClientRect","maxDim","Math","max","softEdgeSize","floor","maxRadius","sqrt","pointerEvent","scrollX","scrollY","left","top","documentX","documentY","pageX","pageY","x","y","positionEvent","endPoint","startPoint","PointerEvent","getNormalizedPointerEventCoords","mdRoot","growAnimation","cancel","getTranslationCoordinates","translateStart","translateEnd","animate","transform","pseudoElement","duration","easing","fill","animation","pressAnimationPlayState","Infinity","currentTime","to","value","isPrimary","pointerId","isPrimaryButton","buttons","bottom","right","pointerType","handlePointercancel","handlePointerdown","handlePointerenter","handlePointerleave","handlePointerup","query","MdRipple","ARIA_PROPERTIES","ARIA_ATTRIBUTES","map","ariaPropertyToAttribute","isAriaAttribute","attribute","includes","replace","toLowerCase","privateIgnoreAttributeChangesFor","mixinDelegatesAria","base","_a","WithDelegatesAriaElement","Set","name","oldValue","newValue","attributeChangedCallback","add","delete","dataProperty","ariaAttributeToDataProperty","dataset","requestUpdate","ariaAttributeToDataAttribute","ctor","ariaProperty","ariaAttribute","dataAttribute","createProperty","noAccessor","Object","defineProperty","configurable","enumerable","get","prevValue","dashLetter","toUpperCase","redispatchEvent","element","bubbles","shadowRoot","composed","stopPropagation","copy","Reflect","construct","dispatched","preventDefault"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
|
|
1
|
+
{"version":3,"file":"redispatch-event-BLom7yp4.js","sources":["../node_modules/@material/web/internal/controller/attachable-controller.js","../node_modules/@material/web/focus/internal/focus-ring.js","../node_modules/@material/web/focus/internal/focus-ring-styles.js","../node_modules/@material/web/focus/md-focus-ring.js","../node_modules/@material/web/internal/motion/animation.js","../node_modules/@material/web/ripple/internal/ripple.js","../node_modules/@material/web/ripple/internal/ripple-styles.js","../node_modules/@material/web/ripple/ripple.js","../node_modules/@material/web/internal/aria/aria.js","../node_modules/@material/web/internal/aria/delegate.js","../node_modules/@material/web/internal/events/redispatch-event.js"],"sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\n/**\n * A key to retrieve an `Attachable` element's `AttachableController` from a\n * global `MutationObserver`.\n */\nconst ATTACHABLE_CONTROLLER = Symbol('attachableController');\nlet FOR_ATTRIBUTE_OBSERVER;\nif (!isServer) {\n /**\n * A global `MutationObserver` that reacts to `for` attribute changes on\n * `Attachable` elements. If the `for` attribute changes, the controller will\n * re-attach to the new referenced element.\n */\n FOR_ATTRIBUTE_OBSERVER = new MutationObserver((records) => {\n for (const record of records) {\n // When a control's `for` attribute changes, inform its\n // `AttachableController` to update to a new control.\n record.target[ATTACHABLE_CONTROLLER]?.hostConnected();\n }\n });\n}\n/**\n * A controller that provides an implementation for `Attachable` elements.\n *\n * @example\n * ```ts\n * class MyElement extends LitElement implements Attachable {\n * get control() { return this.attachableController.control; }\n *\n * private readonly attachableController = new AttachableController(\n * this,\n * (previousControl, newControl) => {\n * previousControl?.removeEventListener('click', this.handleClick);\n * newControl?.addEventListener('click', this.handleClick);\n * }\n * );\n *\n * // Implement remaining `Attachable` properties/methods that call the\n * // controller's properties/methods.\n * }\n * ```\n */\nexport class AttachableController {\n get htmlFor() {\n return this.host.getAttribute('for');\n }\n set htmlFor(htmlFor) {\n if (htmlFor === null) {\n this.host.removeAttribute('for');\n }\n else {\n this.host.setAttribute('for', htmlFor);\n }\n }\n get control() {\n if (this.host.hasAttribute('for')) {\n if (!this.htmlFor || !this.host.isConnected) {\n return null;\n }\n return this.host.getRootNode().querySelector(`#${this.htmlFor}`);\n }\n return this.currentControl || this.host.parentElement;\n }\n set control(control) {\n if (control) {\n this.attach(control);\n }\n else {\n this.detach();\n }\n }\n /**\n * Creates a new controller for an `Attachable` element.\n *\n * @param host The `Attachable` element.\n * @param onControlChange A callback with two parameters for the previous and\n * next control. An `Attachable` element may perform setup or teardown\n * logic whenever the control changes.\n */\n constructor(host, onControlChange) {\n this.host = host;\n this.onControlChange = onControlChange;\n this.currentControl = null;\n host.addController(this);\n host[ATTACHABLE_CONTROLLER] = this;\n FOR_ATTRIBUTE_OBSERVER?.observe(host, { attributeFilter: ['for'] });\n }\n attach(control) {\n if (control === this.currentControl) {\n return;\n }\n this.setCurrentControl(control);\n // When imperatively attaching, remove the `for` attribute so\n // that the attached control is used instead of a referenced one.\n this.host.removeAttribute('for');\n }\n detach() {\n this.setCurrentControl(null);\n // When imperatively detaching, add an empty `for=\"\"` attribute. This will\n // ensure the control is `null` rather than the `parentElement`.\n this.host.setAttribute('for', '');\n }\n /** @private */\n hostConnected() {\n this.setCurrentControl(this.control);\n }\n /** @private */\n hostDisconnected() {\n this.setCurrentControl(null);\n }\n setCurrentControl(control) {\n this.onControlChange(this.currentControl, control);\n this.currentControl = control;\n }\n}\n//# sourceMappingURL=attachable-controller.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { isServer, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\n/**\n * Events that the focus ring listens to.\n */\nconst EVENTS = ['focusin', 'focusout', 'pointerdown'];\n/**\n * A focus ring component.\n *\n * @fires visibility-changed {Event} Fired whenever `visible` changes.\n */\nexport class FocusRing extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Makes the focus ring visible.\n */\n this.visible = false;\n /**\n * Makes the focus ring animate inwards instead of outwards.\n */\n this.inward = false;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n /** @private */\n handleEvent(event) {\n if (event[HANDLED_BY_FOCUS_RING]) {\n // This ensures the focus ring does not activate when multiple focus rings\n // are used within a single component.\n return;\n }\n switch (event.type) {\n default:\n return;\n case 'focusin':\n this.visible = this.control?.matches(':focus-visible') ?? false;\n break;\n case 'focusout':\n case 'pointerdown':\n this.visible = false;\n break;\n }\n event[HANDLED_BY_FOCUS_RING] = true;\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n update(changed) {\n if (changed.has('visible')) {\n // This logic can be removed once the `:has` selector has been introduced\n // to Firefox. This is necessary to allow correct submenu styles.\n this.dispatchEvent(new Event('visibility-changed'));\n }\n super.update(changed);\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"visible\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], FocusRing.prototype, \"inward\", void 0);\nconst HANDLED_BY_FOCUS_RING = Symbol('handledByFocusRing');\n//# sourceMappingURL=focus-ring.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./focus/internal/focus-ring-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{animation-delay:0s,calc(var(--md-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--md-focus-ring-duration, 600ms)*.25),calc(var(--md-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));inset:calc(-1*var(--md-focus-ring-outward-offset, 2px));outline:var(--md-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border:var(--md-focus-ring-width, 3px) solid currentColor;inset:var(--md-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--md-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}\n`;\n//# sourceMappingURL=focus-ring-styles.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { FocusRing } from './internal/focus-ring.js';\nimport { styles } from './internal/focus-ring-styles.js';\n/**\n * TODO(b/267336424): add docs\n *\n * @final\n * @suppress {visibility}\n */\nlet MdFocusRing = class MdFocusRing extends FocusRing {\n};\nMdFocusRing.styles = [styles];\nMdFocusRing = __decorate([\n customElement('md-focus-ring')\n], MdFocusRing);\nexport { MdFocusRing };\n//# sourceMappingURL=md-focus-ring.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Easing functions to use for web animations.\n *\n * **NOTE:** `EASING.EMPHASIZED` is approximated with unknown accuracy.\n *\n * TODO(b/241113345): replace with tokens\n */\nexport const EASING = {\n STANDARD: 'cubic-bezier(0.2, 0, 0, 1)',\n STANDARD_ACCELERATE: 'cubic-bezier(.3,0,1,1)',\n STANDARD_DECELERATE: 'cubic-bezier(0,0,0,1)',\n EMPHASIZED: 'cubic-bezier(.3,0,0,1)',\n EMPHASIZED_ACCELERATE: 'cubic-bezier(.3,0,.8,.15)',\n EMPHASIZED_DECELERATE: 'cubic-bezier(.05,.7,.1,1)',\n};\n/**\n * Creates an `AnimationSignal` that can be used to cancel a previous task.\n *\n * @example\n * class MyClass {\n * private labelAnimationSignal = createAnimationSignal();\n *\n * private async animateLabel() {\n * // Start of the task. Previous tasks will be canceled.\n * const signal = this.labelAnimationSignal.start();\n *\n * // Do async work...\n * if (signal.aborted) {\n * // Use AbortSignal to check if a request was made to abort after some\n * // asynchronous work.\n * return;\n * }\n *\n * const animation = this.animate(...);\n * // Add event listeners to be notified when the task should be canceled.\n * signal.addEventListener('abort', () => {\n * animation.cancel();\n * });\n *\n * animation.addEventListener('finish', () => {\n * // Tell the signal that the current task is finished.\n * this.labelAnimationSignal.finish();\n * });\n * }\n * }\n *\n * @return An `AnimationSignal`.\n */\nexport function createAnimationSignal() {\n // The current animation's AbortController\n let animationAbortController = null;\n return {\n start() {\n // Tell the previous animation to cancel.\n animationAbortController?.abort();\n // Set up a new AbortController for the current animation.\n animationAbortController = new AbortController();\n // Provide the AbortSignal so that the caller can check aborted status\n // and add listeners.\n return animationAbortController.signal;\n },\n finish() {\n animationAbortController = null;\n },\n };\n}\n/**\n * Returns a function which can be used to throttle function calls\n * mapped to a key via a given function that should produce a promise that\n * determines the throttle amount (defaults to requestAnimationFrame).\n */\nexport function createThrottle() {\n const stack = new Set();\n return async (key = '', cb, timeout = async () => {\n await new Promise(requestAnimationFrame);\n }) => {\n if (!stack.has(key)) {\n stack.add(key);\n await timeout();\n if (stack.has(key)) {\n stack.delete(key);\n cb();\n }\n }\n };\n}\n/**\n * Parses an number in milliseconds from a css time value\n */\nexport function msFromTimeCSSValue(value) {\n const match = value.trim().match(/([\\d.]+)(\\s*s$)?/);\n const time = match?.[1];\n const seconds = match?.[2];\n return Number(time ?? 0) * (seconds ? 1000 : 1);\n}\n//# sourceMappingURL=animation.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { html, isServer, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { AttachableController, } from '../../internal/controller/attachable-controller.js';\nimport { EASING } from '../../internal/motion/animation.js';\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nvar State;\n(function (State) {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"INACTIVE\"] = 0] = \"INACTIVE\";\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n State[State[\"TOUCH_DELAY\"] = 1] = \"TOUCH_DELAY\";\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n State[State[\"HOLDING\"] = 2] = \"HOLDING\";\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n State[State[\"WAITING_FOR_CLICK\"] = 3] = \"WAITING_FOR_CLICK\";\n})(State || (State = {}));\n/**\n * Events that the ripple listens to.\n */\nconst EVENTS = [\n 'click',\n 'contextmenu',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerup',\n];\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n/**\n * Used to detect if HCM is active. Events do not process during HCM when the\n * ripple is not displayed.\n */\nconst FORCED_COLORS = isServer\n ? null\n : window.matchMedia('(forced-colors: active)');\n/**\n * A ripple component.\n */\nexport class Ripple extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Disables the ripple.\n */\n this.disabled = false;\n this.hovered = false;\n this.pressed = false;\n this.rippleSize = '';\n this.rippleScale = '';\n this.initialSize = 0;\n this.state = State.INACTIVE;\n this.checkBoundsAfterContextMenu = false;\n this.attachableController = new AttachableController(this, this.onControlChange.bind(this));\n }\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n set htmlFor(htmlFor) {\n this.attachableController.htmlFor = htmlFor;\n }\n get control() {\n return this.attachableController.control;\n }\n set control(control) {\n this.attachableController.control = control;\n }\n attach(control) {\n this.attachableController.attach(control);\n }\n detach() {\n this.attachableController.detach();\n }\n connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n render() {\n const classes = {\n 'hovered': this.hovered,\n 'pressed': this.pressed,\n };\n return html `<div class=\"surface ${classMap(classes)}\"></div>`;\n }\n update(changedProps) {\n if (changedProps.has('disabled') && this.disabled) {\n this.hovered = false;\n this.pressed = false;\n }\n super.update(changedProps);\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerenter(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = true;\n }\n /**\n * TODO(b/269799771): make private\n * @private only public for slider\n */\n handlePointerleave(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.hovered = false;\n // release a held mouse or pen press that moves outside the element\n if (this.state !== State.INACTIVE) {\n this.endPressAnimation();\n }\n }\n handlePointerup(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n return;\n }\n if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(this.rippleStartEvent);\n return;\n }\n }\n async handlePointerdown(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.rippleStartEvent = event;\n if (!this.isTouch(event)) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(event);\n return;\n }\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this.checkBoundsAfterContextMenu && !this.inBounds(event)) {\n return;\n }\n this.checkBoundsAfterContextMenu = false;\n // Wait for a hold after touch delay\n this.state = State.TOUCH_DELAY;\n await new Promise((resolve) => {\n setTimeout(resolve, TOUCH_DELAY_MS);\n });\n if (this.state !== State.TOUCH_DELAY) {\n return;\n }\n this.state = State.HOLDING;\n this.startPressAnimation(event);\n }\n handleClick() {\n // Click is a MouseEvent in Firefox and Safari, so we cannot use\n // `shouldReactToEvent`\n if (this.disabled) {\n return;\n }\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPressAnimation();\n return;\n }\n if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.startPressAnimation();\n this.endPressAnimation();\n }\n }\n handlePointercancel(event) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n this.endPressAnimation();\n }\n handleContextmenu() {\n if (this.disabled) {\n return;\n }\n this.checkBoundsAfterContextMenu = true;\n this.endPressAnimation();\n }\n determineRippleSize() {\n const { height, width } = this.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n this.initialSize = initialSize;\n this.rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n this.rippleSize = `${initialSize}px`;\n }\n getNormalizedPointerEventCoords(pointerEvent) {\n const { scrollX, scrollY } = window;\n const { left, top } = this.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { pageX, pageY } = pointerEvent;\n return { x: pageX - documentX, y: pageY - documentY };\n }\n getTranslationCoordinates(positionEvent) {\n const { height, width } = this.getBoundingClientRect();\n // end in the center\n const endPoint = {\n x: (width - this.initialSize) / 2,\n y: (height - this.initialSize) / 2,\n };\n let startPoint;\n if (positionEvent instanceof PointerEvent) {\n startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n }\n else {\n startPoint = {\n x: width / 2,\n y: height / 2,\n };\n }\n // center around start point\n startPoint = {\n x: startPoint.x - this.initialSize / 2,\n y: startPoint.y - this.initialSize / 2,\n };\n return { startPoint, endPoint };\n }\n startPressAnimation(positionEvent) {\n if (!this.mdRoot) {\n return;\n }\n this.pressed = true;\n this.growAnimation?.cancel();\n this.determineRippleSize();\n const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n this.growAnimation = this.mdRoot.animate({\n top: [0, 0],\n left: [0, 0],\n height: [this.rippleSize, this.rippleSize],\n width: [this.rippleSize, this.rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${this.rippleScale})`,\n ],\n }, {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING.STANDARD,\n fill: ANIMATION_FILL,\n });\n }\n async endPressAnimation() {\n this.rippleStartEvent = undefined;\n this.state = State.INACTIVE;\n const animation = this.growAnimation;\n let pressAnimationPlayState = Infinity;\n if (typeof animation?.currentTime === 'number') {\n pressAnimationPlayState = animation.currentTime;\n }\n else if (animation?.currentTime) {\n pressAnimationPlayState = animation.currentTime.to('ms').value;\n }\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.pressed = false;\n return;\n }\n await new Promise((resolve) => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n if (this.growAnimation !== animation) {\n // A new press animation was started. The old animation was canceled and\n // should not finish the pressed state.\n return;\n }\n this.pressed = false;\n }\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n shouldReactToEvent(event) {\n if (this.disabled || !event.isPrimary) {\n return false;\n }\n if (this.rippleStartEvent &&\n this.rippleStartEvent.pointerId !== event.pointerId) {\n return false;\n }\n if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n return !this.isTouch(event);\n }\n const isPrimaryButton = event.buttons === 1;\n return this.isTouch(event) || isPrimaryButton;\n }\n /**\n * Check if the event is within the bounds of the element.\n *\n * This is only needed for the \"stuck\" contextmenu longpress on Chrome.\n */\n inBounds({ x, y }) {\n const { top, left, bottom, right } = this.getBoundingClientRect();\n return x >= left && x <= right && y >= top && y <= bottom;\n }\n isTouch({ pointerType }) {\n return pointerType === 'touch';\n }\n /** @private */\n async handleEvent(event) {\n if (FORCED_COLORS?.matches) {\n // Skip event logic since the ripple is `display: none`.\n return;\n }\n switch (event.type) {\n case 'click':\n this.handleClick();\n break;\n case 'contextmenu':\n this.handleContextmenu();\n break;\n case 'pointercancel':\n this.handlePointercancel(event);\n break;\n case 'pointerdown':\n await this.handlePointerdown(event);\n break;\n case 'pointerenter':\n this.handlePointerenter(event);\n break;\n case 'pointerleave':\n this.handlePointerleave(event);\n break;\n case 'pointerup':\n this.handlePointerup(event);\n break;\n default:\n break;\n }\n }\n onControlChange(prev, next) {\n if (isServer)\n return;\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this);\n next?.addEventListener(event, this);\n }\n }\n}\n__decorate([\n property({ type: Boolean, reflect: true })\n], Ripple.prototype, \"disabled\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"hovered\", void 0);\n__decorate([\n state()\n], Ripple.prototype, \"pressed\", void 0);\n__decorate([\n query('.surface')\n], Ripple.prototype, \"mdRoot\", void 0);\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./ripple/internal/ripple-styles.css.\nimport { css } from 'lit';\nexport const styles = css `:host{display:flex;margin:auto;pointer-events:none}:host([disabled]){display:none}@media(forced-colors: active){:host{display:none}}:host,.surface{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.surface{-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{content:\"\";opacity:0;position:absolute}.surface::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));inset:0;transition:opacity 15ms linear,background-color 15ms linear}.surface::after{background:radial-gradient(closest-side, var(--md-ripple-pressed-color, var(--md-sys-color-on-surface, #1d1b20)) max(100% - 70px, 65%), transparent 100%);transform-origin:center center;transition:opacity 375ms linear}.hovered::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-ripple-hover-opacity, 0.08)}.pressed::after{opacity:var(--md-ripple-pressed-opacity, 0.12);transition-duration:105ms}\n`;\n//# sourceMappingURL=ripple-styles.js.map","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { __decorate } from \"tslib\";\nimport { customElement } from 'lit/decorators.js';\nimport { Ripple } from './internal/ripple.js';\nimport { styles } from './internal/ripple-styles.js';\n/**\n * @summary Ripples, also known as state layers, are visual indicators used to\n * communicate the status of a component or interactive element.\n *\n * @description A state layer is a semi-transparent covering on an element that\n * indicates its state. State layers provide a systematic approach to\n * visualizing states by using opacity. A layer can be applied to an entire\n * element or in a circular shape and only one state layer can be applied at a\n * given time.\n *\n * @final\n * @suppress {visibility}\n */\nlet MdRipple = class MdRipple extends Ripple {\n};\nMdRipple.styles = [styles];\nMdRipple = __decorate([\n customElement('md-ripple')\n], MdRipple);\nexport { MdRipple };\n//# sourceMappingURL=ripple.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Accessibility Object Model reflective aria properties.\n */\nexport const ARIA_PROPERTIES = [\n 'role',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColSpan',\n 'ariaCurrent',\n 'ariaDisabled',\n 'ariaExpanded',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n];\n/**\n * Accessibility Object Model aria attributes.\n */\nexport const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);\n/**\n * Checks if an attribute is one of the AOM aria attributes.\n *\n * @example\n * isAriaAttribute('aria-label'); // true\n *\n * @param attribute The attribute to check.\n * @return True if the attribute is an aria attribute, or false if not.\n */\nexport function isAriaAttribute(attribute) {\n return ARIA_ATTRIBUTES.includes(attribute);\n}\n/**\n * Converts an AOM aria property into its corresponding attribute.\n *\n * @example\n * ariaPropertyToAttribute('ariaLabel'); // 'aria-label'\n *\n * @param property The aria property.\n * @return The aria attribute.\n */\nexport function ariaPropertyToAttribute(property) {\n return property\n .replace('aria', 'aria-')\n // IDREF attributes also include an \"Element\" or \"Elements\" suffix\n .replace(/Elements?/g, '')\n .toLowerCase();\n}\n//# sourceMappingURL=aria.js.map","/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isServer } from 'lit';\nimport { ARIA_PROPERTIES, ariaPropertyToAttribute, isAriaAttribute, } from './aria.js';\n// Private symbols\nconst privateIgnoreAttributeChangesFor = Symbol('privateIgnoreAttributeChangesFor');\n/**\n * Mixes in aria delegation for elements that delegate focus and aria to inner\n * shadow root elements.\n *\n * This mixin fixes invalid aria announcements with shadow roots, caused by\n * duplicate aria attributes on both the host and the inner shadow root element.\n *\n * Note: this mixin **does not yet support** ID reference attributes, such as\n * `aria-labelledby` or `aria-controls`.\n *\n * @example\n * ```ts\n * class MyButton extends mixinDelegatesAria(LitElement) {\n * static shadowRootOptions = {mode: 'open', delegatesFocus: true};\n *\n * render() {\n * return html`\n * <button aria-label=${this.ariaLabel || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * }\n * }\n * ```\n * ```html\n * <my-button aria-label=\"Plus one\">+1</my-button>\n * ```\n *\n * Use `ARIAMixinStrict` for lit analyzer strict types, such as the \"role\"\n * attribute.\n *\n * @example\n * ```ts\n * return html`\n * <button role=${(this as ARIAMixinStrict).role || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * ```\n *\n * In the future, updates to the Accessibility Object Model (AOM) will provide\n * built-in aria delegation features that will replace this mixin.\n *\n * @param base The class to mix functionality into.\n * @return The provided class with aria delegation mixed in.\n */\nexport function mixinDelegatesAria(base) {\n var _a;\n if (isServer) {\n // Don't shift attributes when running with lit-ssr. The SSR renderer\n // implements a subset of DOM APIs, including the methods this mixin\n // overrides, causing errors. We don't need to shift on the server anyway\n // since elements will shift attributes immediately once they hydrate.\n return base;\n }\n class WithDelegatesAriaElement extends base {\n constructor() {\n super(...arguments);\n this[_a] = new Set();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!isAriaAttribute(name)) {\n super.attributeChangedCallback(name, oldValue, newValue);\n return;\n }\n if (this[privateIgnoreAttributeChangesFor].has(name)) {\n return;\n }\n // Don't trigger another `attributeChangedCallback` once we remove the\n // aria attribute from the host. We check the explicit name of the\n // attribute to ignore since `attributeChangedCallback` can be called\n // multiple times out of an expected order when hydrating an element with\n // multiple attributes.\n this[privateIgnoreAttributeChangesFor].add(name);\n this.removeAttribute(name);\n this[privateIgnoreAttributeChangesFor].delete(name);\n const dataProperty = ariaAttributeToDataProperty(name);\n if (newValue === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = newValue;\n }\n this.requestUpdate(ariaAttributeToDataProperty(name), oldValue);\n }\n getAttribute(name) {\n if (isAriaAttribute(name)) {\n return super.getAttribute(ariaAttributeToDataAttribute(name));\n }\n return super.getAttribute(name);\n }\n removeAttribute(name) {\n super.removeAttribute(name);\n if (isAriaAttribute(name)) {\n super.removeAttribute(ariaAttributeToDataAttribute(name));\n // Since `aria-*` attributes are already removed`, we need to request\n // an update because `attributeChangedCallback` will not be called.\n this.requestUpdate();\n }\n }\n }\n _a = privateIgnoreAttributeChangesFor;\n setupDelegatesAriaProperties(WithDelegatesAriaElement);\n return WithDelegatesAriaElement;\n}\n/**\n * Overrides the constructor's native `ARIAMixin` properties to ensure that\n * aria properties reflect the values that were shifted to a data attribute.\n *\n * @param ctor The `ReactiveElement` constructor to patch.\n */\nfunction setupDelegatesAriaProperties(ctor) {\n for (const ariaProperty of ARIA_PROPERTIES) {\n // The casing between ariaProperty and the dataProperty may be different.\n // ex: aria-haspopup -> ariaHasPopup\n const ariaAttribute = ariaPropertyToAttribute(ariaProperty);\n // ex: aria-haspopup -> data-aria-haspopup\n const dataAttribute = ariaAttributeToDataAttribute(ariaAttribute);\n // ex: aria-haspopup -> dataset.ariaHaspopup\n const dataProperty = ariaAttributeToDataProperty(ariaAttribute);\n // Call `ReactiveElement.createProperty()` so that the `aria-*` and `data-*`\n // attributes are added to the `static observedAttributes` array. This\n // triggers `attributeChangedCallback` for the delegates aria mixin to\n // handle.\n ctor.createProperty(ariaProperty, {\n attribute: ariaAttribute,\n noAccessor: true,\n });\n ctor.createProperty(Symbol(dataAttribute), {\n attribute: dataAttribute,\n noAccessor: true,\n });\n // Re-define the `ARIAMixin` properties to handle data attribute shifting.\n // It is safe to use `Object.defineProperty` here because the properties\n // are native and not renamed.\n // tslint:disable-next-line:ban-unsafe-reflection\n Object.defineProperty(ctor.prototype, ariaProperty, {\n configurable: true,\n enumerable: true,\n get() {\n return this.dataset[dataProperty] ?? null;\n },\n set(value) {\n const prevValue = this.dataset[dataProperty] ?? null;\n if (value === prevValue) {\n return;\n }\n if (value === null) {\n delete this.dataset[dataProperty];\n }\n else {\n this.dataset[dataProperty] = value;\n }\n this.requestUpdate(ariaProperty, prevValue);\n },\n });\n }\n}\nfunction ariaAttributeToDataAttribute(ariaAttribute) {\n // aria-haspopup -> data-aria-haspopup\n return `data-${ariaAttribute}`;\n}\nfunction ariaAttributeToDataProperty(ariaAttribute) {\n // aria-haspopup -> dataset.ariaHaspopup\n return ariaAttribute.replace(/-\\w/, (dashLetter) => dashLetter[1].toUpperCase());\n}\n//# sourceMappingURL=delegate.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Re-dispatches an event from the provided element.\n *\n * This function is useful for forwarding non-composed events, such as `change`\n * events.\n *\n * @example\n * class MyInput extends LitElement {\n * render() {\n * return html`<input @change=${this.redispatchEvent}>`;\n * }\n *\n * protected redispatchEvent(event: Event) {\n * redispatchEvent(this, event);\n * }\n * }\n *\n * @param element The element to dispatch the event from.\n * @param event The event to re-dispatch.\n * @return Whether or not the event was dispatched (if cancelable).\n */\nexport function redispatchEvent(element, event) {\n // For bubbling events in SSR light DOM (or composed), stop their propagation\n // and dispatch the copy.\n if (event.bubbles && (!element.shadowRoot || event.composed)) {\n event.stopPropagation();\n }\n const copy = Reflect.construct(event.constructor, [event.type, event]);\n const dispatched = element.dispatchEvent(copy);\n if (!dispatched) {\n event.preventDefault();\n }\n return dispatched;\n}\n//# sourceMappingURL=redispatch-event.js.map"],"names":["ATTACHABLE_CONTROLLER","Symbol","FOR_ATTRIBUTE_OBSERVER","isServer","MutationObserver","records","record","target","hostConnected","AttachableController","htmlFor","this","host","getAttribute","removeAttribute","setAttribute","hasAttribute","isConnected","getRootNode","querySelector","currentControl","parentElement","control","attach","detach","onControlChange","addController","observe","attributeFilter","setCurrentControl","hostDisconnected","EVENTS","FocusRing","LitElement","constructor","super","arguments","visible","inward","attachableController","bind","connectedCallback","event","HANDLED_BY_FOCUS_RING","type","matches","prev","next","removeEventListener","addEventListener","changed","has","dispatchEvent","Event","update","__decorate","property","Boolean","reflect","prototype","styles","css","MdFocusRing","customElement","EASING","State","FORCED_COLORS","window","matchMedia","Ripple","disabled","hovered","pressed","rippleSize","rippleScale","initialSize","state","INACTIVE","checkBoundsAfterContextMenu","classes","html","classMap","changedProps","shouldReactToEvent","endPressAnimation","HOLDING","TOUCH_DELAY","WAITING_FOR_CLICK","startPressAnimation","rippleStartEvent","isTouch","inBounds","Promise","resolve","setTimeout","handleClick","handleContextmenu","determineRippleSize","height","width","getBoundingClientRect","maxDim","Math","max","softEdgeSize","floor","maxRadius","sqrt","pointerEvent","scrollX","scrollY","left","top","documentX","documentY","pageX","pageY","x","y","positionEvent","endPoint","startPoint","PointerEvent","getNormalizedPointerEventCoords","mdRoot","growAnimation","cancel","getTranslationCoordinates","translateStart","translateEnd","animate","transform","pseudoElement","duration","easing","fill","animation","pressAnimationPlayState","Infinity","currentTime","to","value","isPrimary","pointerId","isPrimaryButton","buttons","bottom","right","pointerType","handlePointercancel","handlePointerdown","handlePointerenter","handlePointerleave","handlePointerup","query","MdRipple","ARIA_PROPERTIES","ARIA_ATTRIBUTES","map","ariaPropertyToAttribute","isAriaAttribute","attribute","includes","replace","toLowerCase","privateIgnoreAttributeChangesFor","mixinDelegatesAria","base","_a","WithDelegatesAriaElement","Set","name","oldValue","newValue","attributeChangedCallback","add","delete","dataProperty","ariaAttributeToDataProperty","dataset","requestUpdate","ariaAttributeToDataAttribute","ctor","ariaProperty","ariaAttribute","dataAttribute","createProperty","noAccessor","Object","defineProperty","configurable","enumerable","get","prevValue","dashLetter","toUpperCase","redispatchEvent","element","bubbles","shadowRoot","composed","stopPropagation","copy","Reflect","construct","dispatched","preventDefault"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
|