@mhmo91/schmancy 0.4.46 → 0.4.48

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 (57) hide show
  1. package/ai/dialog.md +160 -124
  2. package/dist/ai/dialog.md +160 -124
  3. package/dist/{avatar-By_6fdSR.cjs → avatar-CagKP9HD.cjs} +2 -2
  4. package/dist/{avatar-By_6fdSR.cjs.map → avatar-CagKP9HD.cjs.map} +1 -1
  5. package/dist/{avatar-DZ45SZ_3.js → avatar-DBcrNPzz.js} +7 -7
  6. package/dist/{avatar-DZ45SZ_3.js.map → avatar-DBcrNPzz.js.map} +1 -1
  7. package/dist/badge.cjs +1 -1
  8. package/dist/badge.js +1 -1
  9. package/dist/button.cjs +1 -1
  10. package/dist/button.js +1 -1
  11. package/dist/content-drawer.cjs +1 -1
  12. package/dist/content-drawer.js +1 -1
  13. package/dist/{date-range-CVkBXQxc.cjs → date-range-Cf9ldt-N.cjs} +2 -2
  14. package/dist/{date-range-CVkBXQxc.cjs.map → date-range-Cf9ldt-N.cjs.map} +1 -1
  15. package/dist/{date-range-Cnrrl6_Q.js → date-range-DPZXGoEA.js} +2 -2
  16. package/dist/{date-range-Cnrrl6_Q.js.map → date-range-DPZXGoEA.js.map} +1 -1
  17. package/dist/date-range.cjs +1 -1
  18. package/dist/date-range.js +1 -1
  19. package/dist/{dialog-content-MhUhElif.js → dialog-content-CT6Y3ZLb.js} +2 -2
  20. package/dist/{dialog-content-MhUhElif.js.map → dialog-content-CT6Y3ZLb.js.map} +1 -1
  21. package/dist/{dialog-content-Dm9ywkp4.cjs → dialog-content-tiwbeegi.cjs} +2 -2
  22. package/dist/{dialog-content-Dm9ywkp4.cjs.map → dialog-content-tiwbeegi.cjs.map} +1 -1
  23. package/dist/{dialog-service-iRGqMSDe.cjs → dialog-service-DUDhcx9X.cjs} +2 -2
  24. package/dist/{dialog-service-iRGqMSDe.cjs.map → dialog-service-DUDhcx9X.cjs.map} +1 -1
  25. package/dist/{dialog-service-LvOr2E3k.js → dialog-service-Dm7HJGjx.js} +2 -2
  26. package/dist/{dialog-service-LvOr2E3k.js.map → dialog-service-Dm7HJGjx.js.map} +1 -1
  27. package/dist/dialog.cjs +1 -1
  28. package/dist/dialog.js +2 -2
  29. package/dist/{icon-button-BW5ofOL5.js → icon-button-BGvSPuE-.js} +1 -2
  30. package/dist/icon-button-BGvSPuE-.js.map +1 -0
  31. package/dist/{icon-button-9V68mzcL.cjs → icon-button-DbvjV5zJ.cjs} +1 -2
  32. package/dist/icon-button-DbvjV5zJ.cjs.map +1 -0
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.js +7 -7
  35. package/dist/nav-drawer.cjs +1 -1
  36. package/dist/nav-drawer.js +1 -1
  37. package/dist/{sheet-DMP3Pfe5.js → sheet-Cw2qLdzN.js} +4 -4
  38. package/dist/sheet-Cw2qLdzN.js.map +1 -0
  39. package/dist/sheet-eCDoMdHF.cjs +52 -0
  40. package/dist/sheet-eCDoMdHF.cjs.map +1 -0
  41. package/dist/sheet.cjs +1 -1
  42. package/dist/sheet.js +1 -1
  43. package/dist/teleport.cjs +1 -1
  44. package/dist/teleport.js +1 -1
  45. package/dist/theme.cjs +1 -1
  46. package/dist/{theme.component-Bl4uy-_0.js → theme.component-ColRTbY5.js} +122 -122
  47. package/dist/{theme.component-Bl4uy-_0.js.map → theme.component-ColRTbY5.js.map} +1 -1
  48. package/dist/theme.component-RtV3l-Ns.cjs +3 -0
  49. package/dist/{theme.component-Dnf9PdX8.cjs.map → theme.component-RtV3l-Ns.cjs.map} +1 -1
  50. package/dist/theme.js +1 -1
  51. package/package.json +1 -1
  52. package/dist/icon-button-9V68mzcL.cjs.map +0 -1
  53. package/dist/icon-button-BW5ofOL5.js.map +0 -1
  54. package/dist/sheet-DMP3Pfe5.js.map +0 -1
  55. package/dist/sheet-Dsx7bpof.cjs +0 -52
  56. package/dist/sheet-Dsx7bpof.cjs.map +0 -1
  57. package/dist/theme.component-Dnf9PdX8.cjs +0 -3
package/dist/theme.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as a, a as h, T as o, f as r, t as s } from "./theme.component-Bl4uy-_0.js";
1
+ import { S as a, a as h, T as o, f as r, t as s } from "./theme.component-ColRTbY5.js";
2
2
  import { S as T } from "./theme.interface-C5Kj6WjD.js";
3
3
  export {
4
4
  T as SchmancyTheme,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.4.46",
3
+ "version": "0.4.48",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "packageManager": "yarn@4.9.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-9V68mzcL.cjs","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\twidth: fit-content;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-[24px]', 'max-w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","imgClasses","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","render","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","size","_changedProperties"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-BW5ofOL5.js","sources":["../src/button/button.ts","../src/button/icon-button.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\n\nexport interface SchmancyButtonEventMap {\n\tSchmancyFocus: CustomEvent<void>\n\tSchmancyBlur: CustomEvent<void>\n}\n\nexport type ButtonVariant = 'elevated' | 'filled' | 'filled tonal' | 'outlined' | 'text'\n\n/**\n * A button component.\n * @element schmancy-button\n * @slot - The default slot.\n * @slot prefix - The prefix slot.\n * @slot suffix - The suffix slot.\n */\n@customElement('schmancy-button')\nexport class SchmancyButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\twidth: fit-content;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t * @public\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t * @public\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t@queryAssignedElements({\n\t\tslot: 'prefix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate prefixImgs!: HTMLImageElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'suffix',\n\t\tflatten: true,\n\t\tselector: 'img',\n\t})\n\tprivate suffixImgs!: HTMLImageElement[]\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['max-h-[24px]', 'max-w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\t// Add image classes and ensure decorative images have an empty alt.\n\t\tthis.prefixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t\tthis.suffixImgs?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t\tif (!img.hasAttribute('alt')) {\n\t\t\t\timg.setAttribute('alt', '')\n\t\t\t}\n\t\t})\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 py-[8px] px-[16px] transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full tex-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-solid border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'absolute inset-0 hover:opacity-[0.08] z-0 rounded-full': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<slot name=\"prefix\"></slot>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"suffix\"></slot>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-button': SchmancyButton\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html, LitElement, PropertyValueMap } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { when } from 'lit/directives/when.js'\nimport { ButtonVariant } from './button'\n\n/**\n * An icon button component.\n * @element schmancy-icon-button\n * @slot - The default slot.\n */\n@customElement('schmancy-icon-button')\nexport class SchmnacyIconButton extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open',\n\t\tdelegatesFocus: true,\n\t}\n\n\t@query('[part=\"base\"]', true)\n\tprivate nativeElement!: HTMLElement\n\n\tprivate _ariaLabel!: string\n\n\t/**\n\t * The size of the icon.\n\t * @attr\n\t * @default 'md'\n\t */\n\t@property({ type: String })\n\tpublic size: 'sm' | 'md' | 'lg' = 'md'\n\n\t/**\n\t * The variant of the button.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic variant: ButtonVariant = 'text'\n\n\t/**\n\t * The width of the button.\n\t * @attr\n\t * @type {'full' | 'auto'}\n\t * @default 'auto'\n\t */\n\t@property()\n\tpublic width: 'full' | 'auto' = 'auto'\n\n\t/**\n\t * The type of the button.\n\t * Defaults to 'button' (preventing accidental form submissions).\n\t * @attr\n\t */\n\t@property({ reflect: true, type: String })\n\tpublic type: 'button' | 'reset' | 'submit' = 'button'\n\n\t/**\n\t * The URL the button points to.\n\t * If provided, the component will render as an anchor element.\n\t * @attr\n\t */\n\t@property()\n\tpublic href?: string\n\n\t/**\n\t * Determines whether the button is disabled.\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tpublic disabled = false\n\n\t// Manage aria-label manually so that we can always use our internal property.\n\tpublic override set ariaLabel(value: string) {\n\t\tconst oldVal = this._ariaLabel\n\t\tthis._ariaLabel = value\n\n\t\tif (this.hasAttribute('aria-label')) {\n\t\t\tthis.removeAttribute('aria-label')\n\t\t}\n\t\tthis.requestUpdate('ariaLabel', oldVal)\n\t}\n\n\t@property({ attribute: 'aria-label' })\n\tpublic override get ariaLabel() {\n\t\treturn this._ariaLabel\n\t}\n\n\t/** Sets focus in the button. */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.nativeElement.focus(options)\n\t}\n\n\t/** Removes focus from the button. */\n\tpublic override blur() {\n\t\tthis.nativeElement.blur()\n\t}\n\n\tclick(): void {\n\t\tthis.dispatchEvent(new Event('click', { bubbles: true, composed: true }))\n\t}\n\n\t// Prevent default behavior when the component is disabled.\n\tprivate _preventDefault(event: Event) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\t// Add any first-update logic here if needed.\n\t}\n\n\trender() {\n\t\t// Compute classes for the interactive element.\n\t\tconst classes = {\n\t\t\t'z-0 h-full transition-all duration-200 relative rounded-full inline-flex justify-center items-center gap-[8px] outline-secondary-default focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'opacity-[0.38]': this.disabled,\n\t\t\t'cursor-pointer': !this.disabled,\n\t\t\t'hover:shadow-xs':\n\t\t\t\t!this.disabled &&\n\t\t\t\t(this.variant === 'outlined' ||\n\t\t\t\t\tthis.variant === 'text' ||\n\t\t\t\t\tthis.variant === 'filled' ||\n\t\t\t\t\tthis.variant === 'filled tonal'),\n\t\t\t'hover:shadow-sm': !this.disabled && this.variant === 'elevated',\n\t\t\t'w-full text-center': this.width === 'full',\n\t\t\t'bg-surface-low text-primary-default shadow-xs': this.variant === 'elevated',\n\t\t\t'bg-transparent text-primary-default border-1 border-outline': this.variant === 'outlined',\n\t\t\t'bg-primary-default text-primary-on': this.variant === 'filled',\n\t\t\t'bg-secondary-container text-secondary-onContainer': this.variant === 'filled tonal',\n\t\t\t'text-primary-default': this.variant === 'text',\n\t\t\t'px-[6px] py-[6px]': this.size === 'sm',\n\t\t\t'px-[8px] py-[8px]': this.size === 'md',\n\t\t\t'px-[12px] py-[12px]': this.size === 'lg',\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'hover:opacity-[0.08] rounded-full z-0': true,\n\t\t\t'hover:bg-primary-on': this.variant === 'filled',\n\t\t\t'hover:bg-primary-default': this.variant === 'outlined' || this.variant === 'elevated' || this.variant === 'text',\n\t\t\t'hover:bg-secondary-container': this.variant === 'filled tonal',\n\t\t}\n\n\t\t// If href is provided, render an anchor element.\n\t\tif (this.href) {\n\t\t\treturn html`\n\t\t\t\t<a\n\t\t\t\t\tpart=\"base\"\n\t\t\t\t\thref=${ifDefined(this.disabled ? undefined : this.href)}\n\t\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\t\ttabindex=${this.disabled ? '-1' : '0'}\n\t\t\t\t\taria-disabled=${this.disabled}\n\t\t\t\t\t@click=${this.disabled ? this._preventDefault : undefined}\n\t\t\t\t>\n\t\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-icon>\n\t\t\t\t</a>\n\t\t\t`\n\t\t}\n\n\t\t// Otherwise, render a native button element.\n\t\treturn html`\n\t\t\t<button\n\t\t\t\tpart=\"base\"\n\t\t\t\taria-label=${ifDefined(this.ariaLabel)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\t\ttype=${ifDefined(this.type)}\n\t\t\t\ttabindex=${ifDefined(this.disabled ? '-1' : undefined)}\n\t\t\t>\n\t\t\t\t${when(!this.disabled, () => html`<div class=\"absolute inset-0 ${this.classMap(stateLayerClasses)}\"></div>`)}\n\t\t\t\t<schmancy-icon size=${this.size === 'sm' ? '18px' : this.size === 'md' ? '24px' : '32px'}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-icon>\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-icon-button': SchmnacyIconButton\n\t}\n}\n"],"names":["SchmancyButton","$LitElement","css","constructor","super","arguments","this","variant","width","type","disabled","value","oldVal","_ariaLabel","hasAttribute","removeAttribute","requestUpdate","ariaLabel","options","nativeElement","focus","blur","imgClasses","prefixImgs","forEach","img","classList","add","setAttribute","suffixImgs","click","dispatchEvent","Event","bubbles","composed","event","preventDefault","stopPropagation","render","classes","stateLayerClasses","href","html","ifDefined","classMap","_preventDefault","when","shadowRootOptions","LitElement","mode","delegatesFocus","__decorateClass","query","prototype","property","reflect","String","Boolean","attribute","queryAssignedElements","slot","flatten","selector","customElement","SchmnacyIconButton","size","_changedProperties"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-DMP3Pfe5.js","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer\n} from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.component'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n}\n\nexport type SheetConfig = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tlock?: boolean // Controls both ESC and overlay click dismissal\n\thandleHistory?: boolean // Controls browser back button behavior\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n\tonBeforeOpen?: (component: HTMLElement) => void\n\tonAfterOpen?: (component: HTMLElement) => void\n}\n\n// Keep old name for backward compatibility\ntype BottomSheeetTarget = SheetConfig\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet?: SchmancySheet\n\ttheme?: HTMLElement\n}>\nexport const SheetHereMorty = 'yes-here'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\t// Track currently open sheets\n\tprivate activeSheets = new Set<string>()\n\t// Track sheet components for retrieval\n\tprivate sheetComponents = new Map<string, HTMLElement>()\n\t// To track if we've set up the popstate listener\n\tprivate popStateListenerActive = false\n\n\tconstructor() {\n\t\tthis.setupSheetOpeningLogic()\n\t\tthis.setupSheetDismissLogic()\n\t\tthis.setupPopStateListener()\n\t}\n\n\t/**\n\t * Sets up the main sheet opening logic\n\t */\n\tprivate setupSheetOpeningLogic() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First check for existing sheet\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\t// Determine uid - use provided uid or component tagName\n\t\t\t\t\t\t\t\tconst uid = target.uid ?? target.component.tagName\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// First ask for existing sheet\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\n\t\t\t\tmap(([existingSheet, theme, target]) => {\n\t\t\t\t\tlet sheet = existingSheet?.sheet\n\t\t\t\t\tlet targetContainer: HTMLElement\n\t\t\t\t\t\n\t\t\t\t\tif (sheet) {\n\t\t\t\t\t\t// Use existing sheet\n\t\t\t\t\t\tconsole.log('Found existing sheet:', sheet)\n\t\t\t\t\t\ttargetContainer = sheet.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || \n\t\t\t\t\t\t document.querySelector('schmancy-theme') as HTMLElement || \n\t\t\t\t\t\t document.body\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\tconst uid = target.uid ?? target.component.tagName\n\t\t\t\t\t\tconsole.log('Creating new sheet for uid:', uid)\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget.lock && sheet.setAttribute('lock', 'true')\n\n\t\t\t\t\t// Use the dynamic position function here\n\t\t\t\t\tconst position = target.position || getPosition()\n\t\t\t\t\tsheet.setAttribute('position', position)\n\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', String(target.persist))\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\n\t\t\t\t\t// Handle history logic if the property exists\n\t\t\t\t\tif (target.handleHistory !== undefined) {\n\t\t\t\t\t\tsheet.setAttribute('handleHistory', String(target.handleHistory))\n\t\t\t\t\t}\n\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Call onBeforeOpen callback if provided\n\t\t\t\t\tif (target.onBeforeOpen) {\n\t\t\t\t\t\ttarget.onBeforeOpen(target.component)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Handle HTMLElement components\n\t\t\t\t\tconst assignedElements = sheet?.shadowRoot\n\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t?.assignedElements() || []\n\t\t\t\t\t\n\t\t\t\t\tconsole.log('Assigned elements in sheet:', assignedElements.map(e => (e as HTMLElement).tagName))\n\t\t\t\t\t\n\t\t\t\t\tconst existingComponent = assignedElements.find(e => (e as HTMLElement).tagName === target.component.tagName)\n\t\t\t\t\t\n\t\t\t\t\tif (!existingComponent) {\n\t\t\t\t\t\t// Need to append the component\n\t\t\t\t\t\tconsole.log('Component not found, will append:', target.component.tagName)\n\t\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('Component already exists, reusing:', target.component.tagName)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\n\t\t\t\t\t// Add to active sheets tracking\n\t\t\t\t\tconst uid = target.uid ?? \n\t\t\t\t\t\t(target.component instanceof HTMLElement ? target.component.tagName : `sheet-${Date.now()}`)\n\t\t\t\t\tthis.activeSheets.add(uid)\n\t\t\t\t\tthis.sheetComponents.set(uid, target.component)\n\n\t\t\t\t\t// Handle history integration - default to true if not specified\n\t\t\t\t\tconst shouldHandleHistory = target.handleHistory !== false\n\n\t\t\t\t\tif (shouldHandleHistory) {\n\t\t\t\t\t\t// Use history state to track this specific sheet\n\t\t\t\t\t\tconst historyState = {\n\t\t\t\t\t\t\tschmancySheet: true,\n\t\t\t\t\t\t\tuid: uid,\n\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Push a new history state\n\t\t\t\t\t\thistory.pushState(historyState, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Call onAfterOpen callback if provided\n\t\t\t\t\tif (target.onAfterOpen) {\n\t\t\t\t\t\ttarget.onAfterOpen(target.component)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set up close event listener (always, not just for new sheets)\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(_ => {\n\t\t\t\t\t\t\t// Use the sheet reference directly, not e.target\n\t\t\t\t\t\t\tconst sheetElement = sheet as SchmancySheet\n\t\t\t\t\t\t\tconsole.log('Close event fired for sheet:', sheetElement)\n\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tif (sheetElement) {\n\t\t\t\t\t\t\t\tconst uid = sheetElement.getAttribute('uid')\n\t\t\t\t\t\t\t\tif (uid) {\n\t\t\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t\t\t\t\tthis.sheetComponents.delete(uid)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Only keep sheet if persist is explicitly set to a truthy value\n\t\t\t\t\t\t\t\tconst persistAttr = sheetElement.getAttribute('persist')\n\t\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\t\t\t\t\t\t\t\tconsole.log('Sheet close - persist:', persistAttr, 'shouldRemove:', shouldRemove)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\t\tconsole.log('Removing sheet from DOM:', uid)\n\t\t\t\t\t\t\t\t\tsheetElement.remove()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the sheet closing/dismissal logic\n\t */\n\tprivate setupSheetDismissLogic() {\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response, uid]) => {\n\t\t\t\t\tconsole.log('Dismiss called for uid:', uid, 'Found sheet:', !!response?.sheet)\n\t\t\t\t\tif (response?.sheet) {\n\t\t\t\t\t\tresponse.sheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('No sheet found to dismiss for uid:', uid)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the popstate listener to handle browser back button\n\t */\n\tprivate setupPopStateListener() {\n\t\tif (this.popStateListenerActive) return\n\n\t\tfromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {\n\t\t\t// If we have active sheets, close the most recently opened one\n\t\t\tif (this.activeSheets.size > 0) {\n\t\t\t\t// Get the last sheet (Set maintains insertion order)\n\t\t\t\tconst lastSheet = Array.from(this.activeSheets).pop()\n\t\t\t\tif (lastSheet) {\n\t\t\t\t\tthis.dismiss(lastSheet)\n\n\t\t\t\t\t// Prevent default navigation behavior by pushing a new state\n\t\t\t\t\t// This effectively cancels out the back navigation\n\t\t\t\t\tif (event.state && event.state.schmancySheet) {\n\t\t\t\t\t\thistory.pushState({}, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.popStateListenerActive = true\n\t}\n\n\t/**\n\t * Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided\n\t */\n\tdismiss(uid?: string) {\n\t\tif (!uid && this.activeSheets.size > 0) {\n\t\t\t// Get the last sheet opened (Set maintains insertion order)\n\t\t\tconst sheetsArray = Array.from(this.activeSheets)\n\t\t\tuid = sheetsArray[sheetsArray.length - 1]\n\t\t}\n\t\t\n\t\tif (uid) {\n\t\t\tthis.$dismiss.next(uid)\n\t\t}\n\t}\n\n\t/**\n\t * Open a sheet with the given target configuration\n\t */\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n\n\t/**\n\t * Check if a sheet is currently open by uid\n\t */\n\tisOpen(uid: string): boolean {\n\t\treturn this.activeSheets.has(uid)\n\t}\n\n\t/**\n\t * Close all open sheets\n\t */\n\tcloseAll() {\n\t\t// Copy the set to avoid modification during iteration\n\t\tArray.from(this.activeSheets).forEach(uid => {\n\t\t\tthis.dismiss(uid)\n\t\t})\n\t}\n\n\t/**\n\t * Gets the component instance for a given sheet\n\t * @param uid - The unique identifier of the sheet\n\t * @returns The component instance, or undefined if not found\n\t */\n\tgetComponent<T extends HTMLElement = HTMLElement>(uid: string): T | undefined {\n\t\treturn this.sheetComponents.get(uid) as T | undefined\n\t}\n}\nexport const sheet = new BottomSheetService()","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","bottomSheet","Subject","$dismiss","activeSheets","Set","sheetComponents","Map","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","component","tagName","ThemeWhereAreYou","existingSheet","targetContainer","parentElement","document","querySelector","body","createElement","setAttribute","appendChild","lock","position","innerWidth","title","persist","String","header","handleHistory","style","overflow","delay","onBeforeOpen","shadowRoot","assignedElements","find","HTMLElement","Date","now","add","set","historyState","schmancySheet","timestamp","history","pushState","location","href","onAfterOpen","take","subscribe","_","sheetElement","getAttribute","delete","persistAttr","remove","mergeMap","response","closeSheet","event","size","lastSheet","Array","from","pop","dismiss","state","sheetsArray","length","next","has","closeAll","forEach","get","SchmancySheet","$LitElement","super","arguments","open","Side","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","stopPropagation","handleHeaderDismiss","_oldValue","newValue","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","key","rickyComm$","merge","inert","parent","children","child","removeAttribute","isShown","value","getFocusElement","selector","el","matches","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","oldValue","hasUpdated"],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- "use strict";const i=require("rxjs"),b=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const k=require("./tailwind.mixin-DVKI3qb9.cjs"),d=require("lit/decorators.js"),u=require("lit"),A=require("./litElement.mixin-B01R2oT7.cjs"),x=require("lit/directives/cache.js"),g=require("lit/directives/if-defined.js"),w=require("lit/directives/ref.js"),E=require("./theme.component-Dnf9PdX8.cjs");var C=Object.getOwnPropertyDescriptor;let S=class extends k.TailwindElement(u.css``){render(){return u.html`
2
- <sch-flex class="absolute top-0 left-0 md:left-[unset] md:right-0">
3
- <div class="block md:hidden flex-1 justify-start items-start">
4
- <slot name="back">
5
- <schmancy-button
6
- @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
7
- >
8
- <span class="text-[24px]">&#8592; </span>
9
- </schmancy-button>
10
- </slot>
11
- </div>
12
-
13
- <div class="hidden md:block flex-1 justify-end items-end">
14
- <slot name="actions">
15
- <schmancy-icon-button
16
- @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
17
- >
18
- close
19
- </schmancy-icon-button>
20
- </slot>
21
- </div>
22
- </sch-flex>
23
- `}};S=((t,e,s,n)=>{for(var o,r=n>1?void 0:n?C(e,s):e,h=t.length-1;h>=0;h--)(o=t[h])&&(r=o(r)||r);return r})([d.customElement("schmancy-sheet-header")],S);var v=(t=>(t.Side="side",t.Bottom="bottom",t))(v||{});const m="are-you-there-sheet",y="yes-here",p=new class{constructor(){this.bottomSheet=new i.Subject,this.$dismiss=new i.Subject,this.activeSheets=new Set,this.sheetComponents=new Map,this.popStateListenerActive=!1,this.setupSheetOpeningLogic(),this.setupSheetDismissLogic(),this.setupPopStateListener()}setupSheetOpeningLogic(){this.bottomSheet.pipe(i.switchMap(t=>i.forkJoin([i.fromEvent(window,y).pipe(i.takeUntil(i.timer(50)),i.map(e=>e.detail),i.defaultIfEmpty(void 0)),i.fromEvent(window,E.ThemeHereIAm).pipe(i.takeUntil(i.timer(100)),i.map(e=>e.detail.theme),i.defaultIfEmpty(void 0)),i.of(t).pipe(i.tap(()=>{const e=t.uid??t.component.tagName;window.dispatchEvent(new CustomEvent(m,{detail:{uid:e}})),window.dispatchEvent(new CustomEvent(E.ThemeWhereAreYou))}))])),i.map(([t,e,s])=>{let n,o=t?.sheet;if(o)n=o.parentElement;else{n=e||document.querySelector("schmancy-theme")||document.body;const h=s.uid??s.component.tagName;o=document.createElement("schmancy-sheet"),o.setAttribute("uid",h),n.appendChild(o)}s.lock&&o.setAttribute("lock","true");const r=s.position||(window.innerWidth>=768?"side":"bottom");return o.setAttribute("position",r),s.title&&o.setAttribute("title",s.title),s.persist&&o.setAttribute("persist",String(s.persist)),s.header&&o.setAttribute("header",s.header),s.handleHistory!==void 0&&o.setAttribute("handleHistory",String(s.handleHistory)),document.body.style.overflow="hidden",{target:s,sheet:o}}),i.delay(20),i.tap(({target:t,sheet:e})=>{t.onBeforeOpen&&t.onBeforeOpen(t.component),(e?.shadowRoot?.querySelector("slot")?.assignedElements()||[]).find(s=>s.tagName===t.component.tagName)||e?.appendChild(t.component)}),i.delay(1),i.tap(({target:t,sheet:e})=>{e?.setAttribute("open","true");const s=t.uid??(t.component instanceof HTMLElement?t.component.tagName:`sheet-${Date.now()}`);if(this.activeSheets.add(s),this.sheetComponents.set(s,t.component),t.handleHistory!==!1){const n={schmancySheet:!0,uid:s,timestamp:Date.now()};history.pushState(n,"",window.location.href)}t.onAfterOpen&&t.onAfterOpen(t.component),i.fromEvent(e,"close").pipe(i.take(1)).pipe(i.delay(300)).subscribe(n=>{const o=e;if(o){const r=o.getAttribute("uid");r&&(this.activeSheets.delete(r),this.sheetComponents.delete(r));const h=o.getAttribute("persist");(!h||h==="false")&&o.remove()}document.body.style.overflow="auto"})})).subscribe()}setupSheetDismissLogic(){this.$dismiss.pipe(i.mergeMap(t=>i.forkJoin([i.fromEvent(window,y).pipe(i.takeUntil(i.timer(100)),i.map(e=>e.detail),i.defaultIfEmpty(void 0)),i.of(t).pipe(i.tap(()=>{window.dispatchEvent(new CustomEvent(m,{detail:{uid:t}}))}))])),i.tap(([t,e])=>{t?.sheet&&(t.sheet.closeSheet(),this.activeSheets.delete(e))})).subscribe()}setupPopStateListener(){this.popStateListenerActive||(i.fromEvent(window,"popstate").subscribe(t=>{if(this.activeSheets.size>0){const e=Array.from(this.activeSheets).pop();e&&(this.dismiss(e),t.state&&t.state.schmancySheet&&history.pushState({},"",window.location.href))}}),this.popStateListenerActive=!0)}dismiss(t){if(!t&&this.activeSheets.size>0){const e=Array.from(this.activeSheets);t=e[e.length-1]}t&&this.$dismiss.next(t)}open(t){this.bottomSheet.next(t)}isOpen(t){return this.activeSheets.has(t)}closeAll(){Array.from(this.activeSheets).forEach(t=>{this.dismiss(t)})}getComponent(t){return this.sheetComponents.get(t)}};var $=Object.defineProperty,O=Object.getOwnPropertyDescriptor,c=(t,e,s,n)=>{for(var o,r=n>1?void 0:n?O(e,s):e,h=t.length-1;h>=0;h--)(o=t[h])&&(r=(n?o(e,s,r):o(r))||r);return n&&r&&$(e,s,r),r};let a=class extends A.$LitElement(":host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-timing: cubic-bezier(.16, 1, .3, 1);--transition-duration: .25s;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;inset:0;z-index:999;display:flex;visibility:visible;transition:visibility var(--transition-duration) var(--transition-timing)}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;inset:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) var(--transition-timing)}.content{z-index:1;transition:transform var(--transition-duration) var(--transition-timing);overflow:hidden}.content[data-position=side]{height:100vh;height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=side] #body{max-height:100vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:90vh}.content[data-position=bottom] #body{max-height:90vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}"){constructor(){super(...arguments),this.open=!1,this.header="visible",this.position=v.Side,this.persist=!1,this.lock=!1,this.handleHistory=!0,this.title="",this.sheetRef=w.createRef(),this.focusAttribute="autofocus",this.lastFocusedElement=null,this.handleOverlayClick=t=>{t.stopPropagation(),this.lock||p.dismiss(this.uid)},this.handleHeaderDismiss=t=>{t.stopPropagation(),p.dismiss(this.uid)}}onOpenChange(t,e){e?(this.lastFocusedElement=document.activeElement,this.setBackgroundInert(!0),this.focus()):(this.setBackgroundInert(!1),this.lastFocusedElement?.focus(),this.lastFocusedElement=null)}connectedCallback(){super.connectedCallback(),this.setupEventListeners()}disconnectedCallback(){super.disconnectedCallback(),this.disconnecting.next(!0)}setupEventListeners(){const t=this.handleHistory?i.fromEvent(window,"popstate").pipe(i.tap(n=>{n.preventDefault(),this.closeSheet()})):i.of(null).pipe(i.take(0)),e=i.fromEvent(this,"keydown").pipe(i.tap(n=>{n.key==="Escape"&&!this.lock&&this.open&&(n.preventDefault(),n.stopPropagation(),p.dismiss(this.uid))})),s=i.fromEvent(window,m).pipe(i.tap(n=>{n.detail.uid===this.uid&&this.dispatchEvent(new CustomEvent(y,{detail:{sheet:this},bubbles:!0,composed:!0}))}));i.merge(t,e,s).pipe(i.takeUntil(this.disconnecting)).subscribe()}setBackgroundInert(t){const e=this.parentElement;e&&Array.from(e.children).forEach(s=>{s!==this&&s instanceof HTMLElement&&(t?s.setAttribute("inert",""):s.removeAttribute("inert"))}),this.parentElement===document.body&&Array.from(document.body.children).forEach(s=>{s!==this&&s!==e&&s instanceof HTMLElement&&(t?s.setAttribute("inert",""):s.removeAttribute("inert"))})}setIsSheetShown(t){this.sheetRef.value?.setAttribute("aria-hidden",String(!t)),this.sheetRef.value?.setAttribute("aria-modal",String(t))}closeSheet(){this.open=!1,this.dispatchEvent(new CustomEvent("close"))}getFocusElement(){const t=`[${this.focusAttribute}]`;return this.assignedElements.find(e=>e.matches(t)||e.querySelector(t))??null}focus(){const t=this.querySelector("[autofocus]");t?t.focus():this.getFocusElement()?.focus()}render(){const t={sheet:!0,"sheet--open":this.open,"sheet--locked":this.lock},e={overlay:!0,"overlay--interactive":!this.lock};return u.html`
24
- <div
25
- class=${b.classMap(t)}
26
- role="dialog"
27
- aria-labelledby=${g.ifDefined(this.header!=="hidden"?"sheet-title":void 0)}
28
- aria-hidden=${!this.open}
29
- aria-modal=${this.open}
30
- tabindex="0"
31
- ${w.ref(this.sheetRef)}
32
- >
33
- <div class=${b.classMap(e)} @click=${this.lock?void 0:this.handleOverlayClick}></div>
34
- <schmancy-grid
35
- rows=${this.header==="hidden"?"1fr":"auto 1fr"}
36
- class="content w-full"
37
- data-position=${this.position}
38
- >
39
- ${x.cache(this.header!=="hidden"?u.html`<schmancy-sheet-header
40
- class="sticky top-0 z-50 w-full"
41
- @dismiss=${this.handleHeaderDismiss}
42
- id="sheet-title"
43
- title=${g.ifDefined(this.title||void 0)}
44
- ></schmancy-sheet-header>`:"")}
45
-
46
- <schmancy-surface rounded="left" fill="all" id="body" class="overflow-auto" type="surface">
47
- <schmancy-scroll> <slot></slot></schmancy-scroll>
48
- </schmancy-surface>
49
- </schmancy-grid>
50
- </div>
51
- `}};var l,f;c([d.property({type:String,reflect:!0})],a.prototype,"uid",2),c([d.property({type:Boolean,reflect:!0})],a.prototype,"open",2),c([d.property({type:String,reflect:!0})],a.prototype,"header",2),c([d.property({type:String,reflect:!0})],a.prototype,"position",2),c([d.property({type:Boolean,reflect:!0})],a.prototype,"persist",2),c([d.property({type:Boolean,reflect:!0})],a.prototype,"lock",2),c([d.property({type:Boolean,reflect:!0})],a.prototype,"handleHistory",2),c([d.property({type:String,reflect:!0})],a.prototype,"title",2),c([d.queryAssignedElements({flatten:!0})],a.prototype,"assignedElements",2),c([d.property()],a.prototype,"focusAttribute",2),c([(l="open",(t,e)=>{const{willUpdate:s}=t;f=Object.assign({waitUntilFirstUpdate:!1},f),t.willUpdate=function(n){if(s.call(this,n),n.has(l)){const o=n.get(l),r=this[l];o!==r&&(f?.waitUntilFirstUpdate&&!this.hasUpdated||this[e].call(this,o,r))}}})],a.prototype,"onOpenChange",1),a=c([d.customElement("schmancy-sheet")],a),exports.SchmancySheetPosition=v,exports.SheetHereMorty=y,exports.SheetWhereAreYouRicky=m,exports.sheet=p;
52
- //# sourceMappingURL=sheet-Dsx7bpof.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-Dsx7bpof.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer\n} from 'rxjs'\nimport { ThemeHereIAm, ThemeHereIAmEvent, ThemeWhereAreYou } from '../theme/theme.component'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n}\n\nexport type SheetConfig = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tlock?: boolean // Controls both ESC and overlay click dismissal\n\thandleHistory?: boolean // Controls browser back button behavior\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n\tonBeforeOpen?: (component: HTMLElement) => void\n\tonAfterOpen?: (component: HTMLElement) => void\n}\n\n// Keep old name for backward compatibility\ntype BottomSheeetTarget = SheetConfig\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet?: SchmancySheet\n\ttheme?: HTMLElement\n}>\nexport const SheetHereMorty = 'yes-here'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\t// Track currently open sheets\n\tprivate activeSheets = new Set<string>()\n\t// Track sheet components for retrieval\n\tprivate sheetComponents = new Map<string, HTMLElement>()\n\t// To track if we've set up the popstate listener\n\tprivate popStateListenerActive = false\n\n\tconstructor() {\n\t\tthis.setupSheetOpeningLogic()\n\t\tthis.setupSheetDismissLogic()\n\t\tthis.setupPopStateListener()\n\t}\n\n\t/**\n\t * Sets up the main sheet opening logic\n\t */\n\tprivate setupSheetOpeningLogic() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\t// First check for existing sheet\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(50)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// Then find theme container\n\t\t\t\t\t\tfromEvent<ThemeHereIAmEvent>(window, ThemeHereIAm).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail.theme),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\t// Determine uid - use provided uid or component tagName\n\t\t\t\t\t\t\t\tconst uid = target.uid ?? target.component.tagName\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// First ask for existing sheet\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t// Then ask for theme container\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(ThemeWhereAreYou),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\n\t\t\t\tmap(([existingSheet, theme, target]) => {\n\t\t\t\t\tlet sheet = existingSheet?.sheet\n\t\t\t\t\tlet targetContainer: HTMLElement\n\t\t\t\t\t\n\t\t\t\t\tif (sheet) {\n\t\t\t\t\t\t// Use existing sheet\n\t\t\t\t\t\tconsole.log('Found existing sheet:', sheet)\n\t\t\t\t\t\ttargetContainer = sheet.parentElement as HTMLElement\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Determine container - use theme from discovery or fallback\n\t\t\t\t\t\ttargetContainer = theme || \n\t\t\t\t\t\t document.querySelector('schmancy-theme') as HTMLElement || \n\t\t\t\t\t\t document.body\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Create new sheet\n\t\t\t\t\t\tconst uid = target.uid ?? target.component.tagName\n\t\t\t\t\t\tconsole.log('Creating new sheet for uid:', uid)\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tsheet.setAttribute('uid', uid)\n\t\t\t\t\t\ttargetContainer.appendChild(sheet)\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget.lock && sheet.setAttribute('lock', 'true')\n\n\t\t\t\t\t// Use the dynamic position function here\n\t\t\t\t\tconst position = target.position || getPosition()\n\t\t\t\t\tsheet.setAttribute('position', position)\n\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', String(target.persist))\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\n\t\t\t\t\t// Handle history logic if the property exists\n\t\t\t\t\tif (target.handleHistory !== undefined) {\n\t\t\t\t\t\tsheet.setAttribute('handleHistory', String(target.handleHistory))\n\t\t\t\t\t}\n\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet: sheet as SchmancySheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\t// Call onBeforeOpen callback if provided\n\t\t\t\t\tif (target.onBeforeOpen) {\n\t\t\t\t\t\ttarget.onBeforeOpen(target.component)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Handle HTMLElement components\n\t\t\t\t\tconst assignedElements = sheet?.shadowRoot\n\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t?.assignedElements() || []\n\t\t\t\t\t\n\t\t\t\t\tconsole.log('Assigned elements in sheet:', assignedElements.map(e => (e as HTMLElement).tagName))\n\t\t\t\t\t\n\t\t\t\t\tconst existingComponent = assignedElements.find(e => (e as HTMLElement).tagName === target.component.tagName)\n\t\t\t\t\t\n\t\t\t\t\tif (!existingComponent) {\n\t\t\t\t\t\t// Need to append the component\n\t\t\t\t\t\tconsole.log('Component not found, will append:', target.component.tagName)\n\t\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('Component already exists, reusing:', target.component.tagName)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\n\t\t\t\t\t// Add to active sheets tracking\n\t\t\t\t\tconst uid = target.uid ?? \n\t\t\t\t\t\t(target.component instanceof HTMLElement ? target.component.tagName : `sheet-${Date.now()}`)\n\t\t\t\t\tthis.activeSheets.add(uid)\n\t\t\t\t\tthis.sheetComponents.set(uid, target.component)\n\n\t\t\t\t\t// Handle history integration - default to true if not specified\n\t\t\t\t\tconst shouldHandleHistory = target.handleHistory !== false\n\n\t\t\t\t\tif (shouldHandleHistory) {\n\t\t\t\t\t\t// Use history state to track this specific sheet\n\t\t\t\t\t\tconst historyState = {\n\t\t\t\t\t\t\tschmancySheet: true,\n\t\t\t\t\t\t\tuid: uid,\n\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Push a new history state\n\t\t\t\t\t\thistory.pushState(historyState, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Call onAfterOpen callback if provided\n\t\t\t\t\tif (target.onAfterOpen) {\n\t\t\t\t\t\ttarget.onAfterOpen(target.component)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set up close event listener (always, not just for new sheets)\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(_ => {\n\t\t\t\t\t\t\t// Use the sheet reference directly, not e.target\n\t\t\t\t\t\t\tconst sheetElement = sheet as SchmancySheet\n\t\t\t\t\t\t\tconsole.log('Close event fired for sheet:', sheetElement)\n\n\t\t\t\t\t\t\t// Remove from active sheets tracking\n\t\t\t\t\t\t\tif (sheetElement) {\n\t\t\t\t\t\t\t\tconst uid = sheetElement.getAttribute('uid')\n\t\t\t\t\t\t\t\tif (uid) {\n\t\t\t\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t\t\t\t\tthis.sheetComponents.delete(uid)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Only keep sheet if persist is explicitly set to a truthy value\n\t\t\t\t\t\t\t\tconst persistAttr = sheetElement.getAttribute('persist')\n\t\t\t\t\t\t\t\tconst shouldRemove = !persistAttr || persistAttr === 'false'\n\t\t\t\t\t\t\t\tconsole.log('Sheet close - persist:', persistAttr, 'shouldRemove:', shouldRemove)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (shouldRemove) {\n\t\t\t\t\t\t\t\t\tconsole.log('Removing sheet from DOM:', uid)\n\t\t\t\t\t\t\t\t\tsheetElement.remove()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the sheet closing/dismissal logic\n\t */\n\tprivate setupSheetDismissLogic() {\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)),\n\t\t\t\t\t\t\tmap(e => e.detail),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([response, uid]) => {\n\t\t\t\t\tconsole.log('Dismiss called for uid:', uid, 'Found sheet:', !!response?.sheet)\n\t\t\t\t\tif (response?.sheet) {\n\t\t\t\t\t\tresponse.sheet.closeSheet()\n\t\t\t\t\t\tthis.activeSheets.delete(uid)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('No sheet found to dismiss for uid:', uid)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the popstate listener to handle browser back button\n\t */\n\tprivate setupPopStateListener() {\n\t\tif (this.popStateListenerActive) return\n\n\t\tfromEvent<PopStateEvent>(window, 'popstate').subscribe(event => {\n\t\t\t// If we have active sheets, close the most recently opened one\n\t\t\tif (this.activeSheets.size > 0) {\n\t\t\t\t// Get the last sheet (Set maintains insertion order)\n\t\t\t\tconst lastSheet = Array.from(this.activeSheets).pop()\n\t\t\t\tif (lastSheet) {\n\t\t\t\t\tthis.dismiss(lastSheet)\n\n\t\t\t\t\t// Prevent default navigation behavior by pushing a new state\n\t\t\t\t\t// This effectively cancels out the back navigation\n\t\t\t\t\tif (event.state && event.state.schmancySheet) {\n\t\t\t\t\t\thistory.pushState({}, '', window.location.href)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.popStateListenerActive = true\n\t}\n\n\t/**\n\t * Dismiss a sheet by uid, or dismiss the most recently opened sheet if no uid provided\n\t */\n\tdismiss(uid?: string) {\n\t\tif (!uid && this.activeSheets.size > 0) {\n\t\t\t// Get the last sheet opened (Set maintains insertion order)\n\t\t\tconst sheetsArray = Array.from(this.activeSheets)\n\t\t\tuid = sheetsArray[sheetsArray.length - 1]\n\t\t}\n\t\t\n\t\tif (uid) {\n\t\t\tthis.$dismiss.next(uid)\n\t\t}\n\t}\n\n\t/**\n\t * Open a sheet with the given target configuration\n\t */\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n\n\t/**\n\t * Check if a sheet is currently open by uid\n\t */\n\tisOpen(uid: string): boolean {\n\t\treturn this.activeSheets.has(uid)\n\t}\n\n\t/**\n\t * Close all open sheets\n\t */\n\tcloseAll() {\n\t\t// Copy the set to avoid modification during iteration\n\t\tArray.from(this.activeSheets).forEach(uid => {\n\t\t\tthis.dismiss(uid)\n\t\t})\n\t}\n\n\t/**\n\t * Gets the component instance for a given sheet\n\t * @param uid - The unique identifier of the sheet\n\t * @returns The component instance, or undefined if not found\n\t */\n\tgetComponent<T extends HTMLElement = HTMLElement>(uid: string): T | undefined {\n\t\treturn this.sheetComponents.get(uid) as T | undefined\n\t}\n}\nexport const sheet = new BottomSheetService()","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","bottomSheet","Subject","$dismiss","activeSheets","Set","sheetComponents","Map","popStateListenerActive","setupSheetOpeningLogic","setupSheetDismissLogic","setupPopStateListener","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","ThemeHereIAm","theme","of","target","tap","uid","component","tagName","ThemeWhereAreYou","existingSheet","targetContainer","parentElement","document","querySelector","body","createElement","setAttribute","appendChild","lock","position","innerWidth","title","persist","String","header","handleHistory","style","overflow","delay","onBeforeOpen","shadowRoot","assignedElements","find","HTMLElement","Date","now","add","set","historyState","schmancySheet","timestamp","history","pushState","location","href","onAfterOpen","take","subscribe","_","sheetElement","getAttribute","delete","persistAttr","remove","mergeMap","response","closeSheet","event","size","lastSheet","Array","from","pop","dismiss","state","sheetsArray","length","next","has","closeAll","forEach","get","SchmancySheet","$LitElement","super","arguments","open","Side","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","stopPropagation","handleHeaderDismiss","_oldValue","newValue","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","key","rickyComm$","merge","inert","parent","children","child","removeAttribute","isShown","value","getFocusElement","selector","el","matches","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","oldValue","hasUpdated"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";const Pr=require("./provide-BxZ2kn_p.cjs"),Fr=require("./tailwind.mixin-DVKI3qb9.cjs"),Mr=require("lit"),Q=require("lit/decorators.js"),rr=require("rxjs");function H(r){return r<0?-1:r===0?0:1}function er(r,e,o){return(1-o)*r+o*e}function sr(r,e,o){return o<r?r:o>e?e:o}function lr(r){return(r%=360)<0&&(r+=360),r}function hr(r,e){return[r[0]*e[0][0]+r[1]*e[0][1]+r[2]*e[0][2],r[0]*e[1][0]+r[1]*e[1][1]+r[2]*e[1][2],r[0]*e[2][0]+r[1]*e[2][1]+r[2]*e[2][2]]}const Lr=[[.41233895,.35762064,.18051042],[.2126,.7152,.0722],[.01932141,.11916382,.95034478]],Or=[[3.2413774792388685,-1.5376652402851851,-.49885366846268053],[-.9691452513005321,1.8758853451067872,.04156585616912061],[.05562093689691305,-.20395524564742123,1.0571799111220335]],Vr=[95.047,100,108.883];function dr(r,e,o){return(255<<24|(255&r)<<16|(255&e)<<8|255&o)>>>0}function kr(r){return dr(J(r[0]),J(r[1]),J(r[2]))}function ur(r){const e=function(o){const t=$(function(s){return s>>16&255}(o)),a=$(function(s){return s>>8&255}(o)),n=$(function(s){return 255&s}(o));return hr([t,a,n],Lr)}(r)[1];return 116*Dr(e/100)-16}function G(r){return 100*function(e){const o=903.2962962962963,t=e*e*e;return t>216/24389?t:(116*e-16)/o}((r+16)/116)}function mr(r){return 116*Dr(r/100)-16}function $(r){const e=r/255;return e<=.040449936?e/12.92*100:100*Math.pow((e+.055)/1.055,2.4)}function J(r){const e=r/100;let o=0;return o=e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,t=0,a=255,(n=Math.round(255*o))<t?t:n>a?a:n;var t,a,n}function Dr(r){return r>216/24389?Math.pow(r,1/3):(903.2962962962963*r+16)/116}class U{static make(e=function(){return Vr}(),o=200/Math.PI*G(50)/100,t=50,a=2,n=!1){const s=e,l=.401288*s[0]+.650173*s[1]+-.051461*s[2],h=-.250268*s[0]+1.204414*s[1]+.045854*s[2],i=-.002079*s[0]+.048952*s[1]+.953127*s[2],m=.8+a/10,f=m>=.9?er(.59,.69,10*(m-.9)):er(.525,.59,10*(m-.8));let g=n?1:m*(1-1/3.6*Math.exp((-o-42)/92));g=g>1?1:g<0?0:g;const C=m,p=[g*(100/l)+1-g,g*(100/h)+1-g,g*(100/i)+1-g],w=1/(5*o+1),v=w*w*w*w,D=1-v,k=v*o+.1*D*D*Math.cbrt(5*o),V=G(t)/e[1],x=1.48+Math.sqrt(V),b=.725/Math.pow(V,.2),F=b,P=[Math.pow(k*p[0]*l/100,.42),Math.pow(k*p[1]*h/100,.42),Math.pow(k*p[2]*i/100,.42)],I=[400*P[0]/(P[0]+27.13),400*P[1]/(P[1]+27.13),400*P[2]/(P[2]+27.13)];return new U(V,(2*I[0]+I[1]+.05*I[2])*b,b,F,f,C,p,k,Math.pow(k,.25),x)}constructor(e,o,t,a,n,s,l,h,i,m){this.n=e,this.aw=o,this.nbb=t,this.ncb=a,this.c=n,this.nc=s,this.rgbD=l,this.fl=h,this.fLRoot=i,this.z=m}}U.DEFAULT=U.make();class O{constructor(e,o,t,a,n,s,l,h,i){this.hue=e,this.chroma=o,this.j=t,this.q=a,this.m=n,this.s=s,this.jstar=l,this.astar=h,this.bstar=i}distance(e){const o=this.jstar-e.jstar,t=this.astar-e.astar,a=this.bstar-e.bstar,n=Math.sqrt(o*o+t*t+a*a);return 1.41*Math.pow(n,.63)}static fromInt(e){return O.fromIntInViewingConditions(e,U.DEFAULT)}static fromIntInViewingConditions(e,o){const t=(65280&e)>>8,a=255&e,n=$((16711680&e)>>16),s=$(t),l=$(a),h=.41233895*n+.35762064*s+.18051042*l,i=.2126*n+.7152*s+.0722*l,m=.01932141*n+.11916382*s+.95034478*l,f=.401288*h+.650173*i-.051461*m,g=-.250268*h+1.204414*i+.045854*m,C=-.002079*h+.048952*i+.953127*m,p=o.rgbD[0]*f,w=o.rgbD[1]*g,v=o.rgbD[2]*C,D=Math.pow(o.fl*Math.abs(p)/100,.42),k=Math.pow(o.fl*Math.abs(w)/100,.42),V=Math.pow(o.fl*Math.abs(v)/100,.42),x=400*H(p)*D/(D+27.13),b=400*H(w)*k/(k+27.13),F=400*H(v)*V/(V+27.13),P=(11*x+-12*b+F)/11,I=(x+b-2*F)/9,S=(20*x+20*b+21*F)/20,or=(40*x+20*b+F)/20,z=180*Math.atan2(I,P)/Math.PI,N=z<0?z+360:z>=360?z-360:z,_=N*Math.PI/180,E=or*o.nbb,q=100*Math.pow(E/o.aw,o.c*o.z),X=4/o.c*Math.sqrt(q/100)*(o.aw+4)*o.fLRoot,W=N<20.14?N+360:N,ar=5e4/13*(.25*(Math.cos(W*Math.PI/180+2)+3.8))*o.nc*o.ncb*Math.sqrt(P*P+I*I)/(S+.305),nr=Math.pow(ar,.9)*Math.pow(1.64-Math.pow(.29,o.n),.73),cr=nr*Math.sqrt(q/100),fr=cr*o.fLRoot,Sr=50*Math.sqrt(nr*o.c/(o.aw+4)),Tr=(1+100*.007)*q/(1+.007*q),gr=1/.0228*Math.log(1+.0228*fr),Ir=gr*Math.cos(_),Br=gr*Math.sin(_);return new O(N,cr,q,X,fr,Sr,Tr,Ir,Br)}static fromJch(e,o,t){return O.fromJchInViewingConditions(e,o,t,U.DEFAULT)}static fromJchInViewingConditions(e,o,t,a){const n=4/a.c*Math.sqrt(e/100)*(a.aw+4)*a.fLRoot,s=o*a.fLRoot,l=o/Math.sqrt(e/100),h=50*Math.sqrt(l*a.c/(a.aw+4)),i=t*Math.PI/180,m=(1+100*.007)*e/(1+.007*e),f=1/.0228*Math.log(1+.0228*s),g=f*Math.cos(i),C=f*Math.sin(i);return new O(t,o,e,n,s,h,m,g,C)}static fromUcs(e,o,t){return O.fromUcsInViewingConditions(e,o,t,U.DEFAULT)}static fromUcsInViewingConditions(e,o,t,a){const n=o,s=t,l=Math.sqrt(n*n+s*s),h=(Math.exp(.0228*l)-1)/.0228/a.fLRoot;let i=Math.atan2(s,n)*(180/Math.PI);i<0&&(i+=360);const m=e/(1-.007*(e-100));return O.fromJchInViewingConditions(m,h,i,a)}toInt(){return this.viewed(U.DEFAULT)}viewed(e){const o=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),t=Math.pow(o/Math.pow(1.64-Math.pow(.29,e.n),.73),1/.9),a=this.hue*Math.PI/180,n=.25*(Math.cos(a+2)+3.8),s=e.aw*Math.pow(this.j/100,1/e.c/e.z),l=n*(5e4/13)*e.nc*e.ncb,h=s/e.nbb,i=Math.sin(a),m=Math.cos(a),f=23*(h+.305)*t/(23*l+11*t*m+108*t*i),g=f*m,C=f*i,p=(460*h+451*g+288*C)/1403,w=(460*h-891*g-261*C)/1403,v=(460*h-220*g-6300*C)/1403,D=Math.max(0,27.13*Math.abs(p)/(400-Math.abs(p))),k=H(p)*(100/e.fl)*Math.pow(D,1/.42),V=Math.max(0,27.13*Math.abs(w)/(400-Math.abs(w))),x=H(w)*(100/e.fl)*Math.pow(V,1/.42),b=Math.max(0,27.13*Math.abs(v)/(400-Math.abs(v))),F=H(v)*(100/e.fl)*Math.pow(b,1/.42),P=k/e.rgbD[0],I=x/e.rgbD[1],S=F/e.rgbD[2];return function(z,N,_){const E=Or,q=E[0][0]*z+E[0][1]*N+E[0][2]*_,X=E[1][0]*z+E[1][1]*N+E[1][2]*_,W=E[2][0]*z+E[2][1]*N+E[2][2]*_;return dr(J(q),J(X),J(W))}(1.86206786*P-1.01125463*I+.14918677*S,.38752654*P+.62144744*I-.00897398*S,-.0158415*P-.03412294*I+1.04996444*S)}static fromXyzInViewingConditions(e,o,t,a){const n=.401288*e+.650173*o-.051461*t,s=-.250268*e+1.204414*o+.045854*t,l=-.002079*e+.048952*o+.953127*t,h=a.rgbD[0]*n,i=a.rgbD[1]*s,m=a.rgbD[2]*l,f=Math.pow(a.fl*Math.abs(h)/100,.42),g=Math.pow(a.fl*Math.abs(i)/100,.42),C=Math.pow(a.fl*Math.abs(m)/100,.42),p=400*H(h)*f/(f+27.13),w=400*H(i)*g/(g+27.13),v=400*H(m)*C/(C+27.13),D=(11*p+-12*w+v)/11,k=(p+w-2*v)/9,V=(20*p+20*w+21*v)/20,x=(40*p+20*w+v)/20,b=180*Math.atan2(k,D)/Math.PI,F=b<0?b+360:b>=360?b-360:b,P=F*Math.PI/180,I=x*a.nbb,S=100*Math.pow(I/a.aw,a.c*a.z),or=4/a.c*Math.sqrt(S/100)*(a.aw+4)*a.fLRoot,z=F<20.14?F+360:F,N=5e4/13*(1/4*(Math.cos(z*Math.PI/180+2)+3.8))*a.nc*a.ncb*Math.sqrt(D*D+k*k)/(V+.305),_=Math.pow(N,.9)*Math.pow(1.64-Math.pow(.29,a.n),.73),E=_*Math.sqrt(S/100),q=E*a.fLRoot,X=50*Math.sqrt(_*a.c/(a.aw+4)),W=(1+100*.007)*S/(1+.007*S),ar=Math.log(1+.0228*q)/.0228,nr=ar*Math.cos(P),cr=ar*Math.sin(P);return new O(F,E,S,or,q,X,W,nr,cr)}xyzInViewingConditions(e){const o=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),t=Math.pow(o/Math.pow(1.64-Math.pow(.29,e.n),.73),1/.9),a=this.hue*Math.PI/180,n=.25*(Math.cos(a+2)+3.8),s=e.aw*Math.pow(this.j/100,1/e.c/e.z),l=n*(5e4/13)*e.nc*e.ncb,h=s/e.nbb,i=Math.sin(a),m=Math.cos(a),f=23*(h+.305)*t/(23*l+11*t*m+108*t*i),g=f*m,C=f*i,p=(460*h+451*g+288*C)/1403,w=(460*h-891*g-261*C)/1403,v=(460*h-220*g-6300*C)/1403,D=Math.max(0,27.13*Math.abs(p)/(400-Math.abs(p))),k=H(p)*(100/e.fl)*Math.pow(D,1/.42),V=Math.max(0,27.13*Math.abs(w)/(400-Math.abs(w))),x=H(w)*(100/e.fl)*Math.pow(V,1/.42),b=Math.max(0,27.13*Math.abs(v)/(400-Math.abs(v))),F=H(v)*(100/e.fl)*Math.pow(b,1/.42),P=k/e.rgbD[0],I=x/e.rgbD[1],S=F/e.rgbD[2];return[1.86206786*P-1.01125463*I+.14918677*S,.38752654*P+.62144744*I-.00897398*S,-.0158415*P-.03412294*I+1.04996444*S]}}class d{static sanitizeRadians(e){return(e+8*Math.PI)%(2*Math.PI)}static trueDelinearized(e){const o=e/100;let t=0;return t=o<=.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055,255*t}static chromaticAdaptation(e){const o=Math.pow(Math.abs(e),.42);return 400*H(e)*o/(o+27.13)}static hueOf(e){const o=hr(e,d.SCALED_DISCOUNT_FROM_LINRGB),t=d.chromaticAdaptation(o[0]),a=d.chromaticAdaptation(o[1]),n=d.chromaticAdaptation(o[2]),s=(11*t+-12*a+n)/11,l=(t+a-2*n)/9;return Math.atan2(l,s)}static areInCyclicOrder(e,o,t){return d.sanitizeRadians(o-e)<d.sanitizeRadians(t-e)}static intercept(e,o,t){return(o-e)/(t-e)}static lerpPoint(e,o,t){return[e[0]+(t[0]-e[0])*o,e[1]+(t[1]-e[1])*o,e[2]+(t[2]-e[2])*o]}static setCoordinate(e,o,t,a){const n=d.intercept(e[a],o,t[a]);return d.lerpPoint(e,n,t)}static isBounded(e){return 0<=e&&e<=100}static nthVertex(e,o){const t=d.Y_FROM_LINRGB[0],a=d.Y_FROM_LINRGB[1],n=d.Y_FROM_LINRGB[2],s=o%4<=1?0:100,l=o%2==0?0:100;if(o<4){const h=s,i=l,m=(e-h*a-i*n)/t;return d.isBounded(m)?[m,h,i]:[-1,-1,-1]}if(o<8){const h=s,i=l,m=(e-i*t-h*n)/a;return d.isBounded(m)?[i,m,h]:[-1,-1,-1]}{const h=s,i=l,m=(e-h*t-i*a)/n;return d.isBounded(m)?[h,i,m]:[-1,-1,-1]}}static bisectToSegment(e,o){let t=[-1,-1,-1],a=t,n=0,s=0,l=!1,h=!0;for(let i=0;i<12;i++){const m=d.nthVertex(e,i);if(m[0]<0)continue;const f=d.hueOf(m);l?(h||d.areInCyclicOrder(n,f,s))&&(h=!1,d.areInCyclicOrder(n,o,f)?(a=m,s=f):(t=m,n=f)):(t=m,a=m,n=f,s=f,l=!0)}return[t,a]}static midpoint(e,o){return[(e[0]+o[0])/2,(e[1]+o[1])/2,(e[2]+o[2])/2]}static criticalPlaneBelow(e){return Math.floor(e-.5)}static criticalPlaneAbove(e){return Math.ceil(e-.5)}static bisectToLimit(e,o){const t=d.bisectToSegment(e,o);let a=t[0],n=d.hueOf(a),s=t[1];for(let l=0;l<3;l++)if(a[l]!==s[l]){let h=-1,i=255;a[l]<s[l]?(h=d.criticalPlaneBelow(d.trueDelinearized(a[l])),i=d.criticalPlaneAbove(d.trueDelinearized(s[l]))):(h=d.criticalPlaneAbove(d.trueDelinearized(a[l])),i=d.criticalPlaneBelow(d.trueDelinearized(s[l])));for(let m=0;m<8&&!(Math.abs(i-h)<=1);m++){const f=Math.floor((h+i)/2),g=d.CRITICAL_PLANES[f],C=d.setCoordinate(a,g,s,l),p=d.hueOf(C);d.areInCyclicOrder(n,o,p)?(s=C,i=f):(a=C,n=p,h=f)}}return d.midpoint(a,s)}static inverseChromaticAdaptation(e){const o=Math.abs(e),t=Math.max(0,27.13*o/(400-o));return H(e)*Math.pow(t,1/.42)}static findResultByJ(e,o,t){let a=11*Math.sqrt(t);const n=U.DEFAULT,s=1/Math.pow(1.64-Math.pow(.29,n.n),.73),l=.25*(Math.cos(e+2)+3.8)*(5e4/13)*n.nc*n.ncb,h=Math.sin(e),i=Math.cos(e);for(let m=0;m<5;m++){const f=a/100,g=o===0||a===0?0:o/Math.sqrt(f),C=Math.pow(g*s,1/.9),p=n.aw*Math.pow(f,1/n.c/n.z)/n.nbb,w=23*(p+.305)*C/(23*l+11*C*i+108*C*h),v=w*i,D=w*h,k=(460*p+451*v+288*D)/1403,V=(460*p-891*v-261*D)/1403,x=(460*p-220*v-6300*D)/1403,b=hr([d.inverseChromaticAdaptation(k),d.inverseChromaticAdaptation(V),d.inverseChromaticAdaptation(x)],d.LINRGB_FROM_SCALED_DISCOUNT);if(b[0]<0||b[1]<0||b[2]<0)return 0;const F=d.Y_FROM_LINRGB[0],P=d.Y_FROM_LINRGB[1],I=d.Y_FROM_LINRGB[2],S=F*b[0]+P*b[1]+I*b[2];if(S<=0)return 0;if(m===4||Math.abs(S-t)<.002)return b[0]>100.01||b[1]>100.01||b[2]>100.01?0:kr(b);a-=(S-t)*a/(2*S)}return 0}static solveToInt(e,o,t){if(o<1e-4||t<1e-4||t>99.9999)return function(l){const h=J(G(l));return dr(h,h,h)}(t);const a=(e=lr(e))/180*Math.PI,n=G(t),s=d.findResultByJ(a,o,n);return s!==0?s:kr(d.bisectToLimit(n,a))}static solveToCam(e,o,t){return O.fromInt(d.solveToInt(e,o,t))}}d.SCALED_DISCOUNT_FROM_LINRGB=[[.001200833568784504,.002389694492170889,.0002795742885861124],[.0005891086651375999,.0029785502573438758,.0003270666104008398],[.00010146692491640572,.0005364214359186694,.0032979401770712076]],d.LINRGB_FROM_SCALED_DISCOUNT=[[1373.2198709594231,-1100.4251190754821,-7.278681089101213],[-271.815969077903,559.6580465940733,-32.46047482791194],[1.9622899599665666,-57.173814538844006,308.7233197812385]],d.Y_FROM_LINRGB=[.2126,.7152,.0722],d.CRITICAL_PLANES=[.015176349177441876,.045529047532325624,.07588174588720938,.10623444424209313,.13658714259697685,.16693984095186062,.19729253930674434,.2276452376616281,.2579979360165119,.28835063437139563,.3188300904430532,.350925934958123,.3848314933096426,.42057480301049466,.458183274052838,.4976837250274023,.5391024159806381,.5824650784040898,.6277969426914107,.6751227633498623,.7244668422128921,.775853049866786,.829304845476233,.8848452951698498,.942497089126609,1.0022825574869039,1.0642236851973577,1.1283421258858297,1.1946592148522128,1.2631959812511864,1.3339731595349034,1.407011200216447,1.4823302800086415,1.5599503113873272,1.6398909516233677,1.7221716113234105,1.8068114625156377,1.8938294463134073,1.9832442801866852,2.075074464868551,2.1693382909216234,2.2660538449872063,2.36523901573795,2.4669114995532007,2.5710888059345764,2.6777882626779785,2.7870270208169257,2.898822059350997,3.0131901897720907,3.1301480604002863,3.2497121605402226,3.3718988244681087,3.4967242352587946,3.624204428461639,3.754355295633311,3.887192587735158,4.022731918402185,4.160988767090289,4.301978482107941,4.445716283538092,4.592217266055746,4.741496401646282,4.893568542229298,5.048448422192488,5.20615066083972,5.3666897647573375,5.5300801301023865,5.696336044816294,5.865471690767354,6.037501145825082,6.212438385869475,6.390297286737924,6.571091626112461,6.7548350853498045,6.941541251256611,7.131223617812143,7.323895587840543,7.5195704746346665,7.7182615035334345,7.919981813454504,8.124744458384042,8.332562408825165,8.543448553206703,8.757415699253682,8.974476575321063,9.194643831691977,9.417930041841839,9.644347703669503,9.873909240696694,10.106627003236781,10.342513269534024,10.58158024687427,10.8238400726681,11.069304815507364,11.317986476196008,11.569896988756009,11.825048221409341,12.083451977536606,12.345119996613247,12.610063955123938,12.878295467455942,13.149826086772048,13.42466730586372,13.702830557985108,13.984327217668513,14.269168601521828,14.55736596900856,14.848930523210871,15.143873411576273,15.44220572664832,15.743938506781891,16.04908273684337,16.35764934889634,16.66964922287304,16.985093187232053,17.30399201960269,17.62635644741625,17.95219714852476,18.281524751807332,18.614349837764564,18.95068293910138,19.290534541298456,19.633915083172692,19.98083495742689,20.331304511189067,20.685334046541502,21.042933821039977,21.404114048223256,21.76888489811322,22.137256497705877,22.50923893145328,22.884842241736916,23.264076429332462,23.6469514538663,24.033477234264016,24.42366364919083,24.817520537484558,25.21505769858089,25.61628489293138,26.021211842414342,26.429848230738664,26.842203703840827,27.258287870275353,27.678110301598522,28.10168053274597,28.529008062403893,28.96010235337422,29.39497283293396,29.83362889318845,30.276079891419332,30.722335150426627,31.172403958865512,31.62629557157785,32.08401920991837,32.54558406207592,33.010999283389665,33.4802739966603,33.953417292456834,34.430438229418264,34.911345834551085,35.39614910352207,35.88485700094671,36.37747846067349,36.87402238606382,37.37449765026789,37.87891309649659,38.38727753828926,38.89959975977785,39.41588851594697,39.93615253289054,40.460400508064545,40.98864111053629,41.520882981230194,42.05713473317016,42.597404951718396,43.141702194811224,43.6900349931913,44.24241185063697,44.798841244188324,45.35933162437017,45.92389141541209,46.49252901546552,47.065252796817916,47.64207110610409,48.22299226451468,48.808024568002054,49.3971762874833,49.9904556690408,50.587870934119984,51.189430279724725,51.79514187861014,52.40501387947288,53.0190544071392,53.637271562750364,54.259673423945976,54.88626804504493,55.517063457223934,56.15206766869424,56.79128866487574,57.43473440856916,58.08241284012621,58.734331877617365,59.39049941699807,60.05092333227251,60.715611475655585,61.38457167773311,62.057811747619894,62.7353394731159,63.417162620860914,64.10328893648692,64.79372614476921,65.48848194977529,66.18756403501224,66.89098006357258,67.59873767827808,68.31084450182222,69.02730813691093,69.74813616640164,70.47333615344107,71.20291564160104,71.93688215501312,72.67524319850172,73.41800625771542,74.16517879925733,74.9167682708136,75.67278210128072,76.43322770089146,77.1981124613393,77.96744375590167,78.74122893956174,79.51947534912904,80.30219030335869,81.08938110306934,81.88105503125999,82.67721935322541,83.4778813166706,84.28304815182372,85.09272707154808,85.90692527145302,86.72564993000343,87.54890820862819,88.3767072518277,89.2090541872801,90.04595612594655,90.88742016217518,91.73345337380438,92.58406282226491,93.43925555268066,94.29903859396902,95.16341895893969,96.03240364439274,96.9059996312159,97.78421388448044,98.6670533535366,99.55452497210776];class T{static from(e,o,t){return new T(d.solveToInt(e,o,t))}static fromInt(e){return new T(e)}toInt(){return this.argb}get hue(){return this.internalHue}set hue(e){this.setInternalState(d.solveToInt(e,this.internalChroma,this.internalTone))}get chroma(){return this.internalChroma}set chroma(e){this.setInternalState(d.solveToInt(this.internalHue,e,this.internalTone))}get tone(){return this.internalTone}set tone(e){this.setInternalState(d.solveToInt(this.internalHue,this.internalChroma,e))}constructor(e){this.argb=e;const o=O.fromInt(e);this.internalHue=o.hue,this.internalChroma=o.chroma,this.internalTone=ur(e),this.argb=e}setInternalState(e){const o=O.fromInt(e);this.internalHue=o.hue,this.internalChroma=o.chroma,this.internalTone=ur(e),this.argb=e}inViewingConditions(e){const o=O.fromInt(this.toInt()).xyzInViewingConditions(e),t=O.fromXyzInViewingConditions(o[0],o[1],o[2],U.make());return T.from(t.hue,t.chroma,mr(o[1]))}}class yr{static harmonize(e,o){const t=T.fromInt(e),a=T.fromInt(o),n=(s=t.hue,l=a.hue,180-Math.abs(Math.abs(s-l)-180));var s,l;const h=Math.min(.5*n,15),i=lr(t.hue+h*(m=t.hue,lr(a.hue-m)<=180?1:-1));var m;return T.from(i,t.chroma,t.tone).toInt()}static hctHue(e,o,t){const a=yr.cam16Ucs(e,o,t),n=O.fromInt(a),s=O.fromInt(e);return T.from(n.hue,s.chroma,ur(e)).toInt()}static cam16Ucs(e,o,t){const a=O.fromInt(e),n=O.fromInt(o),s=a.jstar,l=a.astar,h=a.bstar,i=s+(n.jstar-s)*t,m=l+(n.astar-l)*t,f=h+(n.bstar-h)*t;return O.fromUcs(i,m,f).toInt()}}class L{static ratioOfTones(e,o){return e=sr(0,100,e),o=sr(0,100,o),L.ratioOfYs(G(e),G(o))}static ratioOfYs(e,o){const t=e>o?e:o;return(t+5)/((t===o?e:o)+5)}static lighter(e,o){if(e<0||e>100)return-1;const t=G(e),a=o*(t+5)-5,n=L.ratioOfYs(a,t),s=Math.abs(n-o);if(n<o&&s>.04)return-1;const l=mr(a)+.4;return l<0||l>100?-1:l}static darker(e,o){if(e<0||e>100)return-1;const t=G(e),a=(t+5)/o-5,n=L.ratioOfYs(t,a),s=Math.abs(n-o);if(n<o&&s>.04)return-1;const l=mr(a)-.4;return l<0||l>100?-1:l}static lighterUnsafe(e,o){const t=L.lighter(e,o);return t<0?100:t}static darkerUnsafe(e,o){const t=L.darker(e,o);return t<0?0:t}}class pr{static isDisliked(e){const o=Math.round(e.hue)>=90&&Math.round(e.hue)<=111,t=Math.round(e.chroma)>16,a=Math.round(e.tone)<65;return o&&t&&a}static fixIfDisliked(e){return pr.isDisliked(e)?T.from(e.hue,e.chroma,70):e}}class u{static fromPalette(e){return new u(e.name??"",e.palette,e.tone,e.isBackground??!1,e.background,e.secondBackground,e.contrastCurve,e.toneDeltaPair)}constructor(e,o,t,a,n,s,l,h){if(this.name=e,this.palette=o,this.tone=t,this.isBackground=a,this.background=n,this.secondBackground=s,this.contrastCurve=l,this.toneDeltaPair=h,this.hctCache=new Map,!n&&s)throw new Error(`Color ${e} has secondBackgrounddefined, but background is not defined.`);if(!n&&l)throw new Error(`Color ${e} has contrastCurvedefined, but background is not defined.`);if(n&&!l)throw new Error(`Color ${e} has backgrounddefined, but contrastCurve is not defined.`)}getArgb(e){return this.getHct(e).toInt()}getHct(e){const o=this.hctCache.get(e);if(o!=null)return o;const t=this.getTone(e),a=this.palette(e).getHct(t);return this.hctCache.size>4&&this.hctCache.clear(),this.hctCache.set(e,a),a}getTone(e){const o=e.contrastLevel<0;if(this.toneDeltaPair){const t=this.toneDeltaPair(e),a=t.roleA,n=t.roleB,s=t.delta,l=t.polarity,h=t.stayTogether,i=this.background(e).getTone(e),m=l==="nearer"||l==="lighter"&&!e.isDark||l==="darker"&&e.isDark,f=m?a:n,g=m?n:a,C=this.name===f.name,p=e.isDark?1:-1,w=f.contrastCurve.get(e.contrastLevel),v=g.contrastCurve.get(e.contrastLevel),D=f.tone(e);let k=L.ratioOfTones(i,D)>=w?D:u.foregroundTone(i,w);const V=g.tone(e);let x=L.ratioOfTones(i,V)>=v?V:u.foregroundTone(i,v);return o&&(k=u.foregroundTone(i,w),x=u.foregroundTone(i,v)),(x-k)*p>=s||(x=sr(0,100,k+s*p),(x-k)*p>=s||(k=sr(0,100,x-s*p))),50<=k&&k<60?p>0?(k=60,x=Math.max(x,k+s*p)):(k=49,x=Math.min(x,k+s*p)):50<=x&&x<60&&(h?p>0?(k=60,x=Math.max(x,k+s*p)):(k=49,x=Math.min(x,k+s*p)):x=p>0?60:49),C?k:x}{let t=this.tone(e);if(this.background==null)return t;const a=this.background(e).getTone(e),n=this.contrastCurve.get(e.contrastLevel);if(L.ratioOfTones(a,t)>=n||(t=u.foregroundTone(a,n)),o&&(t=u.foregroundTone(a,n)),this.isBackground&&50<=t&&t<60&&(t=L.ratioOfTones(49,a)>=n?49:60),this.secondBackground){const[s,l]=[this.background,this.secondBackground],[h,i]=[s(e).getTone(e),l(e).getTone(e)],[m,f]=[Math.max(h,i),Math.min(h,i)];if(L.ratioOfTones(m,t)>=n&&L.ratioOfTones(f,t)>=n)return t;const g=L.lighter(m,n),C=L.darker(f,n),p=[];return g!==-1&&p.push(g),C!==-1&&p.push(C),u.tonePrefersLightForeground(h)||u.tonePrefersLightForeground(i)?g<0?100:g:p.length===1?p[0]:C<0?0:C}return t}}static foregroundTone(e,o){const t=L.lighterUnsafe(e,o),a=L.darkerUnsafe(e,o),n=L.ratioOfTones(t,e),s=L.ratioOfTones(a,e);if(u.tonePrefersLightForeground(e)){const l=Math.abs(n-s)<.1&&n<o&&s<o;return n>=o||n>=s||l?t:a}return s>=o||s>=n?a:t}static tonePrefersLightForeground(e){return Math.round(e)<60}static toneAllowsLightForeground(e){return Math.round(e)<=49}static enableLightForeground(e){return u.tonePrefersLightForeground(e)&&!u.toneAllowsLightForeground(e)?49:e}}class B{static fromInt(e){const o=T.fromInt(e);return B.fromHct(o)}static fromHct(e){return new B(e.hue,e.chroma,e)}static fromHueAndChroma(e,o){const t=new Ar(e,o).create();return new B(e,o,t)}constructor(e,o,t){this.hue=e,this.chroma=o,this.keyColor=t,this.cache=new Map}tone(e){let o=this.cache.get(e);return o===void 0&&(o=T.from(this.hue,this.chroma,e).toInt(),this.cache.set(e,o)),o}getHct(e){return T.fromInt(this.tone(e))}}class Ar{constructor(e,o){this.hue=e,this.requestedChroma=o,this.chromaCache=new Map,this.maxChromaValue=200}create(){let e=0,o=100;for(;e<o;){const t=Math.floor((e+o)/2),a=this.maxChroma(t)<this.maxChroma(t+1);if(this.maxChroma(t)>=this.requestedChroma-.01)if(Math.abs(e-50)<Math.abs(o-50))o=t;else{if(e===t)return T.from(this.hue,this.requestedChroma,e);e=t}else a?e=t+1:o=t}return T.from(this.hue,this.requestedChroma,e)}maxChroma(e){if(this.chromaCache.has(e))return this.chromaCache.get(e);const o=T.from(this.hue,this.maxChromaValue,e).chroma;return this.chromaCache.set(e,o),o}}class y{constructor(e,o,t,a){this.low=e,this.normal=o,this.medium=t,this.high=a}get(e){return e<=-1?this.low:e<0?er(this.low,this.normal,(e- -1)/1):e<.5?er(this.normal,this.medium,(e-0)/.5):e<1?er(this.medium,this.high,(e-.5)/.5):this.high}}class R{constructor(e,o,t,a,n){this.roleA=e,this.roleB=o,this.delta=t,this.polarity=a,this.stayTogether=n}}var tr;function K(r){return r.variant===tr.FIDELITY||r.variant===tr.CONTENT}function M(r){return r.variant===tr.MONOCHROME}(function(r){r[r.MONOCHROME=0]="MONOCHROME",r[r.NEUTRAL=1]="NEUTRAL",r[r.TONAL_SPOT=2]="TONAL_SPOT",r[r.VIBRANT=3]="VIBRANT",r[r.EXPRESSIVE=4]="EXPRESSIVE",r[r.FIDELITY=5]="FIDELITY",r[r.CONTENT=6]="CONTENT",r[r.RAINBOW=7]="RAINBOW",r[r.FRUIT_SALAD=8]="FRUIT_SALAD"})(tr||(tr={}));class c{static highestSurface(e){return e.isDark?c.surfaceBright:c.surfaceDim}}c.contentAccentToneDelta=15,c.primaryPaletteKeyColor=u.fromPalette({name:"primary_palette_key_color",palette:r=>r.primaryPalette,tone:r=>r.primaryPalette.keyColor.tone}),c.secondaryPaletteKeyColor=u.fromPalette({name:"secondary_palette_key_color",palette:r=>r.secondaryPalette,tone:r=>r.secondaryPalette.keyColor.tone}),c.tertiaryPaletteKeyColor=u.fromPalette({name:"tertiary_palette_key_color",palette:r=>r.tertiaryPalette,tone:r=>r.tertiaryPalette.keyColor.tone}),c.neutralPaletteKeyColor=u.fromPalette({name:"neutral_palette_key_color",palette:r=>r.neutralPalette,tone:r=>r.neutralPalette.keyColor.tone}),c.neutralVariantPaletteKeyColor=u.fromPalette({name:"neutral_variant_palette_key_color",palette:r=>r.neutralVariantPalette,tone:r=>r.neutralVariantPalette.keyColor.tone}),c.background=u.fromPalette({name:"background",palette:r=>r.neutralPalette,tone:r=>r.isDark?6:98,isBackground:!0}),c.onBackground=u.fromPalette({name:"on_background",palette:r=>r.neutralPalette,tone:r=>r.isDark?90:10,background:r=>c.background,contrastCurve:new y(3,3,4.5,7)}),c.surface=u.fromPalette({name:"surface",palette:r=>r.neutralPalette,tone:r=>r.isDark?6:98,isBackground:!0}),c.surfaceDim=u.fromPalette({name:"surface_dim",palette:r=>r.neutralPalette,tone:r=>r.isDark?6:new y(87,87,80,75).get(r.contrastLevel),isBackground:!0}),c.surfaceBright=u.fromPalette({name:"surface_bright",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(24,24,29,34).get(r.contrastLevel):98,isBackground:!0}),c.surfaceContainerLowest=u.fromPalette({name:"surface_container_lowest",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(4,4,2,0).get(r.contrastLevel):100,isBackground:!0}),c.surfaceContainerLow=u.fromPalette({name:"surface_container_low",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(10,10,11,12).get(r.contrastLevel):new y(96,96,96,95).get(r.contrastLevel),isBackground:!0}),c.surfaceContainer=u.fromPalette({name:"surface_container",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(12,12,16,20).get(r.contrastLevel):new y(94,94,92,90).get(r.contrastLevel),isBackground:!0}),c.surfaceContainerHigh=u.fromPalette({name:"surface_container_high",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(17,17,21,25).get(r.contrastLevel):new y(92,92,88,85).get(r.contrastLevel),isBackground:!0}),c.surfaceContainerHighest=u.fromPalette({name:"surface_container_highest",palette:r=>r.neutralPalette,tone:r=>r.isDark?new y(22,22,26,30).get(r.contrastLevel):new y(90,90,84,80).get(r.contrastLevel),isBackground:!0}),c.onSurface=u.fromPalette({name:"on_surface",palette:r=>r.neutralPalette,tone:r=>r.isDark?90:10,background:r=>c.highestSurface(r),contrastCurve:new y(4.5,7,11,21)}),c.surfaceVariant=u.fromPalette({name:"surface_variant",palette:r=>r.neutralVariantPalette,tone:r=>r.isDark?30:90,isBackground:!0}),c.onSurfaceVariant=u.fromPalette({name:"on_surface_variant",palette:r=>r.neutralVariantPalette,tone:r=>r.isDark?80:30,background:r=>c.highestSurface(r),contrastCurve:new y(3,4.5,7,11)}),c.inverseSurface=u.fromPalette({name:"inverse_surface",palette:r=>r.neutralPalette,tone:r=>r.isDark?90:20}),c.inverseOnSurface=u.fromPalette({name:"inverse_on_surface",palette:r=>r.neutralPalette,tone:r=>r.isDark?20:95,background:r=>c.inverseSurface,contrastCurve:new y(4.5,7,11,21)}),c.outline=u.fromPalette({name:"outline",palette:r=>r.neutralVariantPalette,tone:r=>r.isDark?60:50,background:r=>c.highestSurface(r),contrastCurve:new y(1.5,3,4.5,7)}),c.outlineVariant=u.fromPalette({name:"outline_variant",palette:r=>r.neutralVariantPalette,tone:r=>r.isDark?30:80,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5)}),c.shadow=u.fromPalette({name:"shadow",palette:r=>r.neutralPalette,tone:r=>0}),c.scrim=u.fromPalette({name:"scrim",palette:r=>r.neutralPalette,tone:r=>0}),c.surfaceTint=u.fromPalette({name:"surface_tint",palette:r=>r.primaryPalette,tone:r=>r.isDark?80:40,isBackground:!0}),c.primary=u.fromPalette({name:"primary",palette:r=>r.primaryPalette,tone:r=>M(r)?r.isDark?100:0:r.isDark?80:40,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(3,4.5,7,7),toneDeltaPair:r=>new R(c.primaryContainer,c.primary,10,"nearer",!1)}),c.onPrimary=u.fromPalette({name:"on_primary",palette:r=>r.primaryPalette,tone:r=>M(r)?r.isDark?10:90:r.isDark?20:100,background:r=>c.primary,contrastCurve:new y(4.5,7,11,21)}),c.primaryContainer=u.fromPalette({name:"primary_container",palette:r=>r.primaryPalette,tone:r=>K(r)?r.sourceColorHct.tone:M(r)?r.isDark?85:25:r.isDark?30:90,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.primaryContainer,c.primary,10,"nearer",!1)}),c.onPrimaryContainer=u.fromPalette({name:"on_primary_container",palette:r=>r.primaryPalette,tone:r=>K(r)?u.foregroundTone(c.primaryContainer.tone(r),4.5):M(r)?r.isDark?0:100:r.isDark?90:30,background:r=>c.primaryContainer,contrastCurve:new y(3,4.5,7,11)}),c.inversePrimary=u.fromPalette({name:"inverse_primary",palette:r=>r.primaryPalette,tone:r=>r.isDark?40:80,background:r=>c.inverseSurface,contrastCurve:new y(3,4.5,7,7)}),c.secondary=u.fromPalette({name:"secondary",palette:r=>r.secondaryPalette,tone:r=>r.isDark?80:40,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(3,4.5,7,7),toneDeltaPair:r=>new R(c.secondaryContainer,c.secondary,10,"nearer",!1)}),c.onSecondary=u.fromPalette({name:"on_secondary",palette:r=>r.secondaryPalette,tone:r=>M(r)?r.isDark?10:100:r.isDark?20:100,background:r=>c.secondary,contrastCurve:new y(4.5,7,11,21)}),c.secondaryContainer=u.fromPalette({name:"secondary_container",palette:r=>r.secondaryPalette,tone:r=>{const e=r.isDark?30:90;return M(r)?r.isDark?30:85:K(r)?function(o,t,a,n){let s=a,l=T.from(o,t,a);if(l.chroma<t){let h=l.chroma;for(;l.chroma<t;){s+=n?-1:1;const i=T.from(o,t,s);if(h>i.chroma||Math.abs(i.chroma-t)<.4)break;Math.abs(i.chroma-t)<Math.abs(l.chroma-t)&&(l=i),h=Math.max(h,i.chroma)}}return s}(r.secondaryPalette.hue,r.secondaryPalette.chroma,e,!r.isDark):e},isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.secondaryContainer,c.secondary,10,"nearer",!1)}),c.onSecondaryContainer=u.fromPalette({name:"on_secondary_container",palette:r=>r.secondaryPalette,tone:r=>M(r)?r.isDark?90:10:K(r)?u.foregroundTone(c.secondaryContainer.tone(r),4.5):r.isDark?90:30,background:r=>c.secondaryContainer,contrastCurve:new y(3,4.5,7,11)}),c.tertiary=u.fromPalette({name:"tertiary",palette:r=>r.tertiaryPalette,tone:r=>M(r)?r.isDark?90:25:r.isDark?80:40,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(3,4.5,7,7),toneDeltaPair:r=>new R(c.tertiaryContainer,c.tertiary,10,"nearer",!1)}),c.onTertiary=u.fromPalette({name:"on_tertiary",palette:r=>r.tertiaryPalette,tone:r=>M(r)?r.isDark?10:90:r.isDark?20:100,background:r=>c.tertiary,contrastCurve:new y(4.5,7,11,21)}),c.tertiaryContainer=u.fromPalette({name:"tertiary_container",palette:r=>r.tertiaryPalette,tone:r=>{if(M(r))return r.isDark?60:49;if(!K(r))return r.isDark?30:90;const e=r.tertiaryPalette.getHct(r.sourceColorHct.tone);return pr.fixIfDisliked(e).tone},isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.tertiaryContainer,c.tertiary,10,"nearer",!1)}),c.onTertiaryContainer=u.fromPalette({name:"on_tertiary_container",palette:r=>r.tertiaryPalette,tone:r=>M(r)?r.isDark?0:100:K(r)?u.foregroundTone(c.tertiaryContainer.tone(r),4.5):r.isDark?90:30,background:r=>c.tertiaryContainer,contrastCurve:new y(3,4.5,7,11)}),c.error=u.fromPalette({name:"error",palette:r=>r.errorPalette,tone:r=>r.isDark?80:40,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(3,4.5,7,7),toneDeltaPair:r=>new R(c.errorContainer,c.error,10,"nearer",!1)}),c.onError=u.fromPalette({name:"on_error",palette:r=>r.errorPalette,tone:r=>r.isDark?20:100,background:r=>c.error,contrastCurve:new y(4.5,7,11,21)}),c.errorContainer=u.fromPalette({name:"error_container",palette:r=>r.errorPalette,tone:r=>r.isDark?30:90,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.errorContainer,c.error,10,"nearer",!1)}),c.onErrorContainer=u.fromPalette({name:"on_error_container",palette:r=>r.errorPalette,tone:r=>M(r)?r.isDark?90:10:r.isDark?90:30,background:r=>c.errorContainer,contrastCurve:new y(3,4.5,7,11)}),c.primaryFixed=u.fromPalette({name:"primary_fixed",palette:r=>r.primaryPalette,tone:r=>M(r)?40:90,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.primaryFixed,c.primaryFixedDim,10,"lighter",!0)}),c.primaryFixedDim=u.fromPalette({name:"primary_fixed_dim",palette:r=>r.primaryPalette,tone:r=>M(r)?30:80,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.primaryFixed,c.primaryFixedDim,10,"lighter",!0)}),c.onPrimaryFixed=u.fromPalette({name:"on_primary_fixed",palette:r=>r.primaryPalette,tone:r=>M(r)?100:10,background:r=>c.primaryFixedDim,secondBackground:r=>c.primaryFixed,contrastCurve:new y(4.5,7,11,21)}),c.onPrimaryFixedVariant=u.fromPalette({name:"on_primary_fixed_variant",palette:r=>r.primaryPalette,tone:r=>M(r)?90:30,background:r=>c.primaryFixedDim,secondBackground:r=>c.primaryFixed,contrastCurve:new y(3,4.5,7,11)}),c.secondaryFixed=u.fromPalette({name:"secondary_fixed",palette:r=>r.secondaryPalette,tone:r=>M(r)?80:90,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.secondaryFixed,c.secondaryFixedDim,10,"lighter",!0)}),c.secondaryFixedDim=u.fromPalette({name:"secondary_fixed_dim",palette:r=>r.secondaryPalette,tone:r=>M(r)?70:80,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.secondaryFixed,c.secondaryFixedDim,10,"lighter",!0)}),c.onSecondaryFixed=u.fromPalette({name:"on_secondary_fixed",palette:r=>r.secondaryPalette,tone:r=>10,background:r=>c.secondaryFixedDim,secondBackground:r=>c.secondaryFixed,contrastCurve:new y(4.5,7,11,21)}),c.onSecondaryFixedVariant=u.fromPalette({name:"on_secondary_fixed_variant",palette:r=>r.secondaryPalette,tone:r=>M(r)?25:30,background:r=>c.secondaryFixedDim,secondBackground:r=>c.secondaryFixed,contrastCurve:new y(3,4.5,7,11)}),c.tertiaryFixed=u.fromPalette({name:"tertiary_fixed",palette:r=>r.tertiaryPalette,tone:r=>M(r)?40:90,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.tertiaryFixed,c.tertiaryFixedDim,10,"lighter",!0)}),c.tertiaryFixedDim=u.fromPalette({name:"tertiary_fixed_dim",palette:r=>r.tertiaryPalette,tone:r=>M(r)?30:80,isBackground:!0,background:r=>c.highestSurface(r),contrastCurve:new y(1,1,3,4.5),toneDeltaPair:r=>new R(c.tertiaryFixed,c.tertiaryFixedDim,10,"lighter",!0)}),c.onTertiaryFixed=u.fromPalette({name:"on_tertiary_fixed",palette:r=>r.tertiaryPalette,tone:r=>M(r)?100:10,background:r=>c.tertiaryFixedDim,secondBackground:r=>c.tertiaryFixed,contrastCurve:new y(4.5,7,11,21)}),c.onTertiaryFixedVariant=u.fromPalette({name:"on_tertiary_fixed_variant",palette:r=>r.tertiaryPalette,tone:r=>M(r)?90:30,background:r=>c.tertiaryFixedDim,secondBackground:r=>c.tertiaryFixed,contrastCurve:new y(3,4.5,7,11)});class A{static of(e){return new A(e,!1)}static contentOf(e){return new A(e,!0)}static fromColors(e){return A.createPaletteFromColors(!1,e)}static contentFromColors(e){return A.createPaletteFromColors(!0,e)}static createPaletteFromColors(e,o){const t=new A(o.primary,e);if(o.secondary){const a=new A(o.secondary,e);t.a2=a.a1}if(o.tertiary){const a=new A(o.tertiary,e);t.a3=a.a1}if(o.error){const a=new A(o.error,e);t.error=a.a1}if(o.neutral){const a=new A(o.neutral,e);t.n1=a.n1}if(o.neutralVariant){const a=new A(o.neutralVariant,e);t.n2=a.n2}return t}constructor(e,o){const t=T.fromInt(e),a=t.hue,n=t.chroma;o?(this.a1=B.fromHueAndChroma(a,n),this.a2=B.fromHueAndChroma(a,n/3),this.a3=B.fromHueAndChroma(a+60,n/2),this.n1=B.fromHueAndChroma(a,Math.min(n/12,4)),this.n2=B.fromHueAndChroma(a,Math.min(n/6,8))):(this.a1=B.fromHueAndChroma(a,Math.max(48,n)),this.a2=B.fromHueAndChroma(a,16),this.a3=B.fromHueAndChroma(a+60,24),this.n1=B.fromHueAndChroma(a,4),this.n2=B.fromHueAndChroma(a,8)),this.error=B.fromHueAndChroma(25,84)}}class Y{get primary(){return this.props.primary}get onPrimary(){return this.props.onPrimary}get primaryContainer(){return this.props.primaryContainer}get onPrimaryContainer(){return this.props.onPrimaryContainer}get secondary(){return this.props.secondary}get onSecondary(){return this.props.onSecondary}get secondaryContainer(){return this.props.secondaryContainer}get onSecondaryContainer(){return this.props.onSecondaryContainer}get tertiary(){return this.props.tertiary}get onTertiary(){return this.props.onTertiary}get tertiaryContainer(){return this.props.tertiaryContainer}get onTertiaryContainer(){return this.props.onTertiaryContainer}get error(){return this.props.error}get onError(){return this.props.onError}get errorContainer(){return this.props.errorContainer}get onErrorContainer(){return this.props.onErrorContainer}get background(){return this.props.background}get onBackground(){return this.props.onBackground}get surface(){return this.props.surface}get onSurface(){return this.props.onSurface}get surfaceVariant(){return this.props.surfaceVariant}get onSurfaceVariant(){return this.props.onSurfaceVariant}get outline(){return this.props.outline}get outlineVariant(){return this.props.outlineVariant}get shadow(){return this.props.shadow}get scrim(){return this.props.scrim}get inverseSurface(){return this.props.inverseSurface}get inverseOnSurface(){return this.props.inverseOnSurface}get inversePrimary(){return this.props.inversePrimary}static light(e){return Y.lightFromCorePalette(A.of(e))}static dark(e){return Y.darkFromCorePalette(A.of(e))}static lightContent(e){return Y.lightFromCorePalette(A.contentOf(e))}static darkContent(e){return Y.darkFromCorePalette(A.contentOf(e))}static lightFromCorePalette(e){return new Y({primary:e.a1.tone(40),onPrimary:e.a1.tone(100),primaryContainer:e.a1.tone(90),onPrimaryContainer:e.a1.tone(10),secondary:e.a2.tone(40),onSecondary:e.a2.tone(100),secondaryContainer:e.a2.tone(90),onSecondaryContainer:e.a2.tone(10),tertiary:e.a3.tone(40),onTertiary:e.a3.tone(100),tertiaryContainer:e.a3.tone(90),onTertiaryContainer:e.a3.tone(10),error:e.error.tone(40),onError:e.error.tone(100),errorContainer:e.error.tone(90),onErrorContainer:e.error.tone(10),background:e.n1.tone(99),onBackground:e.n1.tone(10),surface:e.n1.tone(99),onSurface:e.n1.tone(10),surfaceVariant:e.n2.tone(90),onSurfaceVariant:e.n2.tone(30),outline:e.n2.tone(50),outlineVariant:e.n2.tone(80),shadow:e.n1.tone(0),scrim:e.n1.tone(0),inverseSurface:e.n1.tone(20),inverseOnSurface:e.n1.tone(95),inversePrimary:e.a1.tone(80)})}static darkFromCorePalette(e){return new Y({primary:e.a1.tone(80),onPrimary:e.a1.tone(20),primaryContainer:e.a1.tone(30),onPrimaryContainer:e.a1.tone(90),secondary:e.a2.tone(80),onSecondary:e.a2.tone(20),secondaryContainer:e.a2.tone(30),onSecondaryContainer:e.a2.tone(90),tertiary:e.a3.tone(80),onTertiary:e.a3.tone(20),tertiaryContainer:e.a3.tone(30),onTertiaryContainer:e.a3.tone(90),error:e.error.tone(80),onError:e.error.tone(20),errorContainer:e.error.tone(30),onErrorContainer:e.error.tone(80),background:e.n1.tone(10),onBackground:e.n1.tone(90),surface:e.n1.tone(10),onSurface:e.n1.tone(90),surfaceVariant:e.n2.tone(30),onSurfaceVariant:e.n2.tone(80),outline:e.n2.tone(60),outlineVariant:e.n2.tone(30),shadow:e.n1.tone(0),scrim:e.n1.tone(0),inverseSurface:e.n1.tone(90),inverseOnSurface:e.n1.tone(20),inversePrimary:e.a1.tone(40)})}constructor(e){this.props=e}toJSON(){return{...this.props}}}function xr(r){const e=(r=r.replace("#","")).length===3,o=r.length===6,t=r.length===8;if(!e&&!o&&!t)throw new Error("unexpected hex "+r);let a=0,n=0,s=0;return e?(a=j(r.slice(0,1).repeat(2)),n=j(r.slice(1,2).repeat(2)),s=j(r.slice(2,3).repeat(2))):o?(a=j(r.slice(0,2)),n=j(r.slice(2,4)),s=j(r.slice(4,6))):t&&(a=j(r.slice(2,4)),n=j(r.slice(4,6)),s=j(r.slice(6,8))),(255<<24|(255&a)<<16|(255&n)<<8|255&s)>>>0}function j(r){return parseInt(r,16)}function Er(r,e=[]){const o=A.of(r);return{source:r,schemes:{light:Y.light(r),dark:Y.dark(r)},palettes:{primary:o.a1,secondary:o.a2,tertiary:o.a3,neutral:o.n1,neutralVariant:o.n2,error:o.error},customColors:e.map(t=>function(a,n){let s=n.value;const l=s,h=a;n.blend&&(s=yr.harmonize(l,h));const i=A.of(s),m=i.a1;return{color:n,value:s,light:{color:m.tone(40),onColor:m.tone(100),colorContainer:m.tone(90),onColorContainer:m.tone(10)},dark:{color:m.tone(80),onColor:m.tone(20),colorContainer:m.tone(30),onColorContainer:m.tone(90)}}}(r,t))}}const Rr=Pr.n("theme-context");function Cr(r,e=!1,o){function t(a){return"#"+a.toString(16).padStart(8,"0").slice(2)}if(e){const a=r.schemes.dark,n=function(l,h){const i=B.fromHueAndChroma(l,h);return{cLowest:i.tone(0),cLow:i.tone(10),c:i.tone(12),cHigh:i.tone(17),cHighest:i.tone(22),sDim:i.tone(0),s:i.tone(6),sBright:i.tone(24)}}(r.palettes.neutral.hue,r.palettes.neutral.chroma),s=function(l){const h=T.fromInt(l),i=B.fromHueAndChroma(h.hue,h.chroma);return{default:i.tone(80),on:i.tone(20),container:i.tone(30),onContainer:i.tone(90)}}(o);return{sys:{color:{scrim:t(a.scrim),outlineVariant:t(a.outlineVariant),outline:t(a.outline),surface:{default:t(a.surface),dim:t(n.sDim),bright:t(n.sBright),on:t(a.onSurface),onVariant:t(a.onSurfaceVariant),highest:t(n.cHighest),high:t(n.cHigh),container:t(n.c),low:t(n.cLow),lowest:t(n.cLowest)},primary:{default:t(a.primary),on:t(a.onPrimary),container:t(a.primaryContainer),onContainer:t(a.onPrimaryContainer)},secondary:{default:t(a.secondary),on:t(a.onSecondary),container:t(a.secondaryContainer),onContainer:t(a.onSecondaryContainer)},tertiary:{default:t(a.tertiary),on:t(a.onTertiary),container:t(a.tertiaryContainer),onContainer:t(a.onTertiaryContainer)},error:{default:t(a.error),on:t(a.onError),container:t(a.errorContainer),onContainer:t(a.onErrorContainer)},success:{default:t(s.default),on:t(s.on),container:t(s.container),onContainer:t(s.onContainer)}},elevation:{0:"0 0 0 0 rgba(0, 0, 0, 0)",1:"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px",2:"rgba(0, 0, 0, 0.2) 0px 3px 3px -2px, rgba(0, 0, 0, 0.14) 0px 3px 4px 0px, rgba(0, 0, 0, 0.12) 0px 1px 8px 0px",3:"rgba(0, 0, 0, 0.2) 0px 3px 5px -1px, rgba(0, 0, 0, 0.14) 0px 6px 10px 0px, rgba(0, 0, 0, 0.12) 0px 1px 18px 0px",4:"rgba(0, 0, 0, 0.2) 0px 5px 5px -3px, rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px",5:"rgba(0, 0, 0, 0.2) 0px 7px 8px -4px, rgba(0, 0, 0, 0.14) 0px 12px 17px 2px, rgba(0, 0, 0, 0.12) 0px 5px 22px 4px"},outline:{1:"1px"}}}}{const a=r.schemes.light,n=function(l,h){const i=B.fromHueAndChroma(l,h);return{cLowest:i.tone(100),cLow:i.tone(96),c:i.tone(94),cHigh:i.tone(92),cHighest:i.tone(90),sDim:i.tone(87),s:i.tone(98),sBright:i.tone(100)}}(r.palettes.neutral.hue,r.palettes.neutral.chroma),s=function(l){const h=T.fromInt(l),i=B.fromHueAndChroma(h.hue,h.chroma);return{default:i.tone(40),on:i.tone(100),container:i.tone(90),onContainer:i.tone(10)}}(o);return{sys:{color:{scrim:t(a.scrim),outlineVariant:t(a.outlineVariant),outline:t(a.outline),surface:{default:t(a.surface),dim:t(n.sDim),bright:t(n.sBright),on:t(a.onSurface),onVariant:t(a.onSurfaceVariant),highest:t(n.cHighest),high:t(n.cHigh),container:t(n.c),low:t(n.cLow),lowest:t(n.cLowest)},primary:{default:t(a.primary),on:t(a.onPrimary),container:t(a.primaryContainer),onContainer:t(a.onPrimaryContainer)},secondary:{default:t(a.secondary),on:t(a.onSecondary),container:t(a.secondaryContainer),onContainer:t(a.onSecondaryContainer)},tertiary:{default:t(a.tertiary),on:t(a.onTertiary),container:t(a.tertiaryContainer),onContainer:t(a.onTertiaryContainer)},error:{default:t(a.error),on:t(a.onError),container:t(a.errorContainer),onContainer:t(a.onErrorContainer)},success:{default:t(s.default),on:t(s.on),container:t(s.container),onContainer:t(s.onContainer)}},elevation:{0:"0 0 0 0 rgba(0, 0, 0, 0)",1:"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px",2:"rgba(0, 0, 0, 0.2) 0px 3px 3px -2px, rgba(0, 0, 0, 0.14) 0px 3px 4px 0px, rgba(0, 0, 0, 0.12) 0px 1px 8px 0px",3:"rgba(0, 0, 0, 0.2) 0px 3px 5px -1px, rgba(0, 0, 0, 0.14) 0px 6px 10px 0px, rgba(0, 0, 0, 0.12) 0px 1px 18px 0px",4:"rgba(0, 0, 0, 0.2) 0px 5px 5px -3px, rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px",5:"rgba(0, 0, 0, 0.2) 0px 7px 8px -4px, rgba(0, 0, 0, 0.14) 0px 12px 17px 2px, rgba(0, 0, 0, 0.12) 0px 5px 22px 4px"},outline:{1:"1px"}}}}}var Hr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,Z=(r,e,o,t)=>{for(var a,n=t>1?void 0:t?zr(e,o):e,s=r.length-1;s>=0;s--)(a=r[s])&&(n=(t?a(e,o,n):a(n))||n);return t&&n&&Hr(e,o,n),n};const br="theme-where-are-you",wr="theme-here-i-am",vr=Mr.unsafeCSS(':host,:root{--md-ref-typeface-brand: "Josefin Sans", sans-serif;--md-ref-typeface-plain: "Josefin Sans", sans-serif;--md-sys-color-primary: var(--schmancy-sys-color-primary-default);--md-sys-color-secondary: var(--schmancy-sys-color-secondary-default);--default-font-family: var(--schmancy-font-family);--border-style: solid;--spacing: 4px;--color-scrim: var(--schmancy-sys-color-scrim);--color-outline: var(--schmancy-sys-color-outline);--color-outlineVariant: var(--schmancy-sys-color-outlineVariant);--color-surface-default: var(--schmancy-sys-color-surface-default);--color-surface-dim: var(--schmancy-sys-color-surface-dim);--color-surface-bright: var(--schmancy-sys-color-surface-bright);--color-surface-container: var(--schmancy-sys-color-surface-container);--color-surface-low: var(--schmancy-sys-color-surface-low);--color-surface-high: var(--schmancy-sys-color-surface-high);--color-surface-highest: var(--schmancy-sys-color-surface-highest);--color-surface-lowest: var(--schmancy-sys-color-surface-lowest);--color-surface-on: var(--schmancy-sys-color-surface-on);--color-surface-onVariant: var(--schmancy-sys-color-surface-onVariant);--color-primary-default: var(--schmancy-sys-color-primary-default);--color-primary-on: var(--schmancy-sys-color-primary-on);--color-primary-container: var(--schmancy-sys-color-primary-container);--color-primary-onContainer: var(--schmancy-sys-color-primary-onContainer);--color-secondary-default: var(--schmancy-sys-color-secondary-default);--color-secondary-on: var(--schmancy-sys-color-secondary-on);--color-secondary-container: var(--schmancy-sys-color-secondary-container);--color-secondary-onContainer: var(--schmancy-sys-color-secondary-onContainer);--color-tertiary-default: var(--schmancy-sys-color-tertiary-default);--color-tertiary-on: var(--schmancy-sys-color-tertiary-on);--color-tertiary-container: var(--schmancy-sys-color-tertiary-container);--color-tertiary-onContainer: var(--schmancy-sys-color-tertiary-onContainer);--color-error-default: var(--schmancy-sys-color-error-default);--color-error-on: var(--schmancy-sys-color-error-on);--color-error-container: var(--schmancy-sys-color-error-container);--color-error-onContainer: var(--schmancy-sys-color-error-onContainer);--color-success-default: var(--schmancy-sys-color-success-default);--color-success-on: var(--schmancy-sys-color-success-on);--color-success-container: var(--schmancy-sys-color-success-container);--color-success-onContainer: var(--schmancy-sys-color-success-onContainer);--shadow-xs: var(--schmancy-sys-elevation-0);--shadow-sm: var(--schmancy-sys-elevation-1);--shadow-md: var(--schmancy-sys-elevation-2);--shadow-lg: var(--schmancy-sys-elevation-3);--shadow-xl: var(--schmancy-sys-elevation-4);--shadow-2xl: var(--schmancy-sys-elevation-5);--outline-1: var(--schmancy-sys-outline-1);--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50: oklch(.971 .013 17.38);--color-red-100: oklch(.936 .032 17.717);--color-red-200: oklch(.885 .062 18.334);--color-red-300: oklch(.808 .114 19.571);--color-red-400: oklch(.704 .191 22.216);--color-red-500: oklch(.637 .237 25.331);--color-red-600: oklch(.577 .245 27.325);--color-red-700: oklch(.505 .213 27.518);--color-red-800: oklch(.444 .177 26.899);--color-red-900: oklch(.396 .141 25.723);--color-red-950: oklch(.258 .092 26.042);--color-orange-50: oklch(.98 .016 73.684);--color-orange-100: oklch(.954 .038 75.164);--color-orange-200: oklch(.901 .076 70.697);--color-orange-300: oklch(.837 .128 66.29);--color-orange-400: oklch(.75 .183 55.934);--color-orange-500: oklch(.705 .213 47.604);--color-orange-600: oklch(.646 .222 41.116);--color-orange-700: oklch(.553 .195 38.402);--color-orange-800: oklch(.47 .157 37.304);--color-orange-900: oklch(.408 .123 38.172);--color-orange-950: oklch(.266 .079 36.259);--color-amber-50: oklch(.987 .022 95.277);--color-amber-100: oklch(.962 .059 95.617);--color-amber-200: oklch(.924 .12 95.746);--color-amber-300: oklch(.879 .169 91.605);--color-amber-400: oklch(.828 .189 84.429);--color-amber-500: oklch(.769 .188 70.08);--color-amber-600: oklch(.666 .179 58.318);--color-amber-700: oklch(.555 .163 48.998);--color-amber-800: oklch(.473 .137 46.201);--color-amber-900: oklch(.414 .112 45.904);--color-amber-950: oklch(.279 .077 45.635);--color-yellow-50: oklch(.987 .026 102.212);--color-yellow-100: oklch(.973 .071 103.193);--color-yellow-200: oklch(.945 .129 101.54);--color-yellow-300: oklch(.905 .182 98.111);--color-yellow-400: oklch(.852 .199 91.936);--color-yellow-500: oklch(.795 .184 86.047);--color-yellow-600: oklch(.681 .162 75.834);--color-yellow-700: oklch(.554 .135 66.442);--color-yellow-800: oklch(.476 .114 61.907);--color-yellow-900: oklch(.421 .095 57.708);--color-yellow-950: oklch(.286 .066 53.813);--color-lime-50: oklch(.986 .031 120.757);--color-lime-100: oklch(.967 .067 122.328);--color-lime-200: oklch(.938 .127 124.321);--color-lime-300: oklch(.897 .196 126.665);--color-lime-400: oklch(.841 .238 128.85);--color-lime-500: oklch(.768 .233 130.85);--color-lime-600: oklch(.648 .2 131.684);--color-lime-700: oklch(.532 .157 131.589);--color-lime-800: oklch(.453 .124 130.933);--color-lime-900: oklch(.405 .101 131.063);--color-lime-950: oklch(.274 .072 132.109);--color-green-50: oklch(.982 .018 155.826);--color-green-100: oklch(.962 .044 156.743);--color-green-200: oklch(.925 .084 155.995);--color-green-300: oklch(.871 .15 154.449);--color-green-400: oklch(.792 .209 151.711);--color-green-500: oklch(.723 .219 149.579);--color-green-600: oklch(.627 .194 149.214);--color-green-700: oklch(.527 .154 150.069);--color-green-800: oklch(.448 .119 151.328);--color-green-900: oklch(.393 .095 152.535);--color-green-950: oklch(.266 .065 152.934);--color-emerald-50: oklch(.979 .021 166.113);--color-emerald-100: oklch(.95 .052 163.051);--color-emerald-200: oklch(.905 .093 164.15);--color-emerald-300: oklch(.845 .143 164.978);--color-emerald-400: oklch(.765 .177 163.223);--color-emerald-500: oklch(.696 .17 162.48);--color-emerald-600: oklch(.596 .145 163.225);--color-emerald-700: oklch(.508 .118 165.612);--color-emerald-800: oklch(.432 .095 166.913);--color-emerald-900: oklch(.378 .077 168.94);--color-emerald-950: oklch(.262 .051 172.552);--color-teal-50: oklch(.984 .014 180.72);--color-teal-100: oklch(.953 .051 180.801);--color-teal-200: oklch(.91 .096 180.426);--color-teal-300: oklch(.855 .138 181.071);--color-teal-400: oklch(.777 .152 181.912);--color-teal-500: oklch(.704 .14 182.503);--color-teal-600: oklch(.6 .118 184.704);--color-teal-700: oklch(.511 .096 186.391);--color-teal-800: oklch(.437 .078 188.216);--color-teal-900: oklch(.386 .063 188.416);--color-teal-950: oklch(.277 .046 192.524);--color-cyan-50: oklch(.984 .019 200.873);--color-cyan-100: oklch(.956 .045 203.388);--color-cyan-200: oklch(.917 .08 205.041);--color-cyan-300: oklch(.865 .127 207.078);--color-cyan-400: oklch(.789 .154 211.53);--color-cyan-500: oklch(.715 .143 215.221);--color-cyan-600: oklch(.609 .126 221.723);--color-cyan-700: oklch(.52 .105 223.128);--color-cyan-800: oklch(.45 .085 224.283);--color-cyan-900: oklch(.398 .07 227.392);--color-cyan-950: oklch(.302 .056 229.695);--color-sky-50: oklch(.977 .013 236.62);--color-sky-100: oklch(.951 .026 236.824);--color-sky-200: oklch(.901 .058 230.902);--color-sky-300: oklch(.828 .111 230.318);--color-sky-400: oklch(.746 .16 232.661);--color-sky-500: oklch(.685 .169 237.323);--color-sky-600: oklch(.588 .158 241.966);--color-sky-700: oklch(.5 .134 242.749);--color-sky-800: oklch(.443 .11 240.79);--color-sky-900: oklch(.391 .09 240.876);--color-sky-950: oklch(.293 .066 243.157);--color-blue-50: oklch(.97 .014 254.604);--color-blue-100: oklch(.932 .032 255.585);--color-blue-200: oklch(.882 .059 254.128);--color-blue-300: oklch(.809 .105 251.813);--color-blue-400: oklch(.707 .165 254.624);--color-blue-500: oklch(.623 .214 259.815);--color-blue-600: oklch(.546 .245 262.881);--color-blue-700: oklch(.488 .243 264.376);--color-blue-800: oklch(.424 .199 265.638);--color-blue-900: oklch(.379 .146 265.522);--color-blue-950: oklch(.282 .091 267.935);--color-indigo-50: oklch(.962 .018 272.314);--color-indigo-100: oklch(.93 .034 272.788);--color-indigo-200: oklch(.87 .065 274.039);--color-indigo-300: oklch(.785 .115 274.713);--color-indigo-400: oklch(.673 .182 276.935);--color-indigo-500: oklch(.585 .233 277.117);--color-indigo-600: oklch(.511 .262 276.966);--color-indigo-700: oklch(.457 .24 277.023);--color-indigo-800: oklch(.398 .195 277.366);--color-indigo-900: oklch(.359 .144 278.697);--color-indigo-950: oklch(.257 .09 281.288);--color-violet-50: oklch(.969 .016 293.756);--color-violet-100: oklch(.943 .029 294.588);--color-violet-200: oklch(.894 .057 293.283);--color-violet-300: oklch(.811 .111 293.571);--color-violet-400: oklch(.702 .183 293.541);--color-violet-500: oklch(.606 .25 292.717);--color-violet-600: oklch(.541 .281 293.009);--color-violet-700: oklch(.491 .27 292.581);--color-violet-800: oklch(.432 .232 292.759);--color-violet-900: oklch(.38 .189 293.745);--color-violet-950: oklch(.283 .141 291.089);--color-purple-50: oklch(.977 .014 308.299);--color-purple-100: oklch(.946 .033 307.174);--color-purple-200: oklch(.902 .063 306.703);--color-purple-300: oklch(.827 .119 306.383);--color-purple-400: oklch(.714 .203 305.504);--color-purple-500: oklch(.627 .265 303.9);--color-purple-600: oklch(.558 .288 302.321);--color-purple-700: oklch(.496 .265 301.924);--color-purple-800: oklch(.438 .218 303.724);--color-purple-900: oklch(.381 .176 304.987);--color-purple-950: oklch(.291 .149 302.717);--color-fuchsia-50: oklch(.977 .017 320.058);--color-fuchsia-100: oklch(.952 .037 318.852);--color-fuchsia-200: oklch(.903 .076 319.62);--color-fuchsia-300: oklch(.833 .145 321.434);--color-fuchsia-400: oklch(.74 .238 322.16);--color-fuchsia-500: oklch(.667 .295 322.15);--color-fuchsia-600: oklch(.591 .293 322.896);--color-fuchsia-700: oklch(.518 .253 323.949);--color-fuchsia-800: oklch(.452 .211 324.591);--color-fuchsia-900: oklch(.401 .17 325.612);--color-fuchsia-950: oklch(.293 .136 325.661);--color-pink-50: oklch(.971 .014 343.198);--color-pink-100: oklch(.948 .028 342.258);--color-pink-200: oklch(.899 .061 343.231);--color-pink-300: oklch(.823 .12 346.018);--color-pink-400: oklch(.718 .202 349.761);--color-pink-500: oklch(.656 .241 354.308);--color-pink-600: oklch(.592 .249 .584);--color-pink-700: oklch(.525 .223 3.958);--color-pink-800: oklch(.459 .187 3.815);--color-pink-900: oklch(.408 .153 2.432);--color-pink-950: oklch(.284 .109 3.907);--color-rose-50: oklch(.969 .015 12.422);--color-rose-100: oklch(.941 .03 12.58);--color-rose-200: oklch(.892 .058 10.001);--color-rose-300: oklch(.81 .117 11.638);--color-rose-400: oklch(.712 .194 13.428);--color-rose-500: oklch(.645 .246 16.439);--color-rose-600: oklch(.586 .253 17.585);--color-rose-700: oklch(.514 .222 16.935);--color-rose-800: oklch(.455 .188 13.697);--color-rose-900: oklch(.41 .159 10.272);--color-rose-950: oklch(.271 .105 12.094);--color-slate-50: oklch(.984 .003 247.858);--color-slate-100: oklch(.968 .007 247.896);--color-slate-200: oklch(.929 .013 255.508);--color-slate-300: oklch(.869 .022 252.894);--color-slate-400: oklch(.704 .04 256.788);--color-slate-500: oklch(.554 .046 257.417);--color-slate-600: oklch(.446 .043 257.281);--color-slate-700: oklch(.372 .044 257.287);--color-slate-800: oklch(.279 .041 260.031);--color-slate-900: oklch(.208 .042 265.755);--color-slate-950: oklch(.129 .042 264.695);--color-gray-50: oklch(.985 .002 247.839);--color-gray-100: oklch(.967 .003 264.542);--color-gray-200: oklch(.928 .006 264.531);--color-gray-300: oklch(.872 .01 258.338);--color-gray-400: oklch(.707 .022 261.325);--color-gray-500: oklch(.551 .027 264.364);--color-gray-600: oklch(.446 .03 256.802);--color-gray-700: oklch(.373 .034 259.733);--color-gray-800: oklch(.278 .033 256.848);--color-gray-900: oklch(.21 .034 264.665);--color-gray-950: oklch(.13 .028 261.692);--color-zinc-50: oklch(.985 0 0);--color-zinc-100: oklch(.967 .001 286.375);--color-zinc-200: oklch(.92 .004 286.32);--color-zinc-300: oklch(.871 .006 286.286);--color-zinc-400: oklch(.705 .015 286.067);--color-zinc-500: oklch(.552 .016 285.938);--color-zinc-600: oklch(.442 .017 285.786);--color-zinc-700: oklch(.37 .013 285.805);--color-zinc-800: oklch(.274 .006 286.033);--color-zinc-900: oklch(.21 .006 285.885);--color-zinc-950: oklch(.141 .005 285.823);--color-neutral-50: oklch(.985 0 0);--color-neutral-100: oklch(.97 0 0);--color-neutral-200: oklch(.922 0 0);--color-neutral-300: oklch(.87 0 0);--color-neutral-400: oklch(.708 0 0);--color-neutral-500: oklch(.556 0 0);--color-neutral-600: oklch(.439 0 0);--color-neutral-700: oklch(.371 0 0);--color-neutral-800: oklch(.269 0 0);--color-neutral-900: oklch(.205 0 0);--color-neutral-950: oklch(.145 0 0);--color-stone-50: oklch(.985 .001 106.423);--color-stone-100: oklch(.97 .001 106.424);--color-stone-200: oklch(.923 .003 48.717);--color-stone-300: oklch(.869 .005 56.366);--color-stone-400: oklch(.709 .01 56.259);--color-stone-500: oklch(.553 .013 58.071);--color-stone-600: oklch(.444 .011 73.639);--color-stone-700: oklch(.374 .01 67.558);--color-stone-800: oklch(.268 .007 34.298);--color-stone-900: oklch(.216 .006 56.043);--color-stone-950: oklch(.147 .004 49.25);--color-black: #000;--color-white: #fff;--spacing: .25rem;--breakpoint-sm: 40rem;--breakpoint-md: 48rem;--breakpoint-lg: 64rem;--breakpoint-xl: 80rem;--breakpoint-2xl: 96rem;--container-3xs: 16rem;--container-2xs: 18rem;--container-xs: 20rem;--container-sm: 24rem;--container-md: 28rem;--container-lg: 32rem;--container-xl: 36rem;--container-2xl: 42rem;--container-3xl: 48rem;--container-4xl: 56rem;--container-5xl: 64rem;--container-6xl: 72rem;--container-7xl: 80rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--text-3xl: 1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--text-5xl: 3rem;--text-5xl--line-height: 1;--text-6xl: 3.75rem;--text-6xl--line-height: 1;--text-7xl: 4.5rem;--text-7xl--line-height: 1;--text-8xl: 6rem;--text-8xl--line-height: 1;--text-9xl: 8rem;--text-9xl--line-height: 1;--font-weight-thin: 100;--font-weight-extralight: 200;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0em;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-4xl: 2rem;--shadow-smxs: 0 1px rgb(0 0 0 / .05);--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-smxl: 0 25px 50px -12px rgb(0 0 0 / .25);--inset-shadow-smxs: inset 0 1px rgb(0 0 0 / .05);--inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / .05);--inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / .05);--drop-shadow-xs: 0 1px 1px rgb(0 0 0 / .05);--drop-shadow-sm: 0 1px 2px rgb(0 0 0 / .15);--drop-shadow-md: 0 3px 3px rgb(0 0 0 / .12);--drop-shadow-lg: 0 4px 4px rgb(0 0 0 / .15);--drop-shadow-xl: 0 9px 7px rgb(0 0 0 / .1);--drop-shadow-smxl: 0 25px 25px rgb(0 0 0 / .15);--blur-xs: 4px;--blur-sm: 8px;--blur-md: 12px;--blur-lg: 16px;--blur-xl: 24px;--blur-2xl: 40px;--blur-3xl: 64px;--perspective-dramatic: 100px;--perspective-near: 300px;--perspective-normal: 500px;--perspective-midrange: 800px;--perspective-distant: 1200px;--aspect-video: 16 / 9;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--animate-spin: spin 1s linear infinite;--animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce: bounce 1s infinite;@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}--md-sys-color-scrim: var(--schmancy-sys-color-scrim);--md-sys-color-outline: var(--schmancy-sys-color-outline);--md-sys-color-outlineVariant: var(--schmancy-sys-color-outlineVariant);--md-sys-color-surface-default: var(--schmancy-sys-color-surface-default);--md-sys-color-surface-dim: var(--schmancy-sys-color-surface-dim);--md-sys-color-surface-bright: var(--schmancy-sys-color-surface-bright);--md-sys-color-surface-container: var(--schmancy-sys-color-surface-container);--md-sys-color-surface-low: var(--schmancy-sys-color-surface-low);--md-sys-color-surface-high: var(--schmancy-sys-color-surface-high);--md-sys-color-surface-highest: var(--schmancy-sys-color-surface-highest);--md-sys-color-surface-lowest: var(--schmancy-sys-color-surface-lowest);--md-sys-color-surface-on: var(--schmancy-sys-color-surface-on);--md-sys-color-on-surface-variant: var(--schmancy-sys-color-surface-onVariant);--md-sys-color-on-secondary-container: var(--schmancy-sys-color-secondary-onContainer);--md-sys-color-primary-default: var(--schmancy-sys-color-primary-default);--md-sys-color-primary-on: var(--schmancy-sys-color-primary-on);--md-sys-color-primary-container: var(--schmancy-sys-color-primary-container);--md-sys-color-primary-onContainer: var(--schmancy-sys-color-primary-onContainer);--md-sys-color-secondary-default: var(--schmancy-sys-color-secondary-default);--md-sys-color-secondary-on: var(--schmancy-sys-color-secondary-on);--md-sys-color-secondary-container: var(--schmancy-sys-color-secondary-container);--md-sys-color-secondary-onContainer: var(--schmancy-sys-color-secondary-onContainer);--md-sys-color-tertiary-default: var(--schmancy-sys-color-tertiary-default);--md-sys-color-tertiary-on: var(--schmancy-sys-color-tertiary-on);--md-sys-color-tertiary-container: var(--schmancy-sys-color-tertiary-container);--md-sys-color-tertiary-onContainer: var(--schmancy-sys-color-tertiary-onContainer);--md-sys-color-error-default: var(--schmancy-sys-color-error-default);--md-sys-color-error-on: var(--schmancy-sys-color-error-on);--md-sys-color-error-container: var(--schmancy-sys-color-error-container);--md-sys-color-error-onContainer: var(--schmancy-sys-color-error-onContainer);--md-sys-color-success-default: var(--schmancy-sys-color-success-default);--md-sys-color-success-on: var(--schmancy-sys-color-success-on);--md-sys-color-success-container: var(--schmancy-sys-color-success-container);--md-sys-color-success-onContainer: var(--schmancy-sys-color-success-onContainer);--md-sys-elevation-0: var(--schmancy-sys-elevation-0);--md-sys-elevation-1: var(--schmancy-sys-elevation-1);--md-sys-elevation-2: var(--schmancy-sys-elevation-2);--md-sys-elevation-3: var(--schmancy-sys-elevation-3);--md-sys-elevation-4: var(--schmancy-sys-elevation-4);--md-sys-elevation-5: var(--schmancy-sys-elevation-5);--md-sys-outline-1: var(--schmancy-sys-outline-1);--md-filter-chip-label-text-color: var(--schmancy-sys-color-surface-on)}'),ir=window.matchMedia("(prefers-color-scheme: dark)"),Nr=new rr.Observable(r=>{const e=t=>{const a=t.matches?"dark":"light";r.next(a)};ir.addEventListener("change",e);const o=ir.matches?"dark":"light";return r.next(o),()=>ir.removeEventListener("change",e)});exports.SchmancyThemeComponent=class extends Fr.TailwindElement(vr){constructor(){super(...arguments),this.scheme="auto",this.root=!1,this.theme={}}connectedCallback(){super.connectedCallback(),this.color||(this.color=this.generateRandomColor()),rr.of(this.scheme).pipe(rr.switchMap(r=>r==="auto"?Nr:rr.of(r))).subscribe(r=>{this.scheme=r,this.registerTheme()}),rr.fromEvent(window,br).subscribe(()=>{window.dispatchEvent(new CustomEvent(wr,{detail:{theme:this},bubbles:!0,composed:!0}))})}registerTheme(){let r=Cr(Er(xr(this.color)),this.scheme==="dark",xr("#34B334"));r={...r,...this.theme},this.registerThemeValues("schmancy","",r),(this.root?document.body:this.shadowRoot.host).style.colorScheme=this.scheme==="dark"?"dark":"light"}registerThemeValues(r="schmancy",e,o){return typeof o=="object"?Object.keys(o).map(t=>this.registerThemeValues(r,e+(e?"-":"")+t,o[t])).join(`
2
- `):void(this.root?document.body:this.shadowRoot.host).style.setProperty(`--${r}-${e}`,o)}generateRandomColor(){return"#"+Math.floor(16777215*Math.random()).toString(16).padStart(6,"0")}render(){return Mr.html`<slot></slot>`}},Z([Q.property({type:String,reflect:!0})],exports.SchmancyThemeComponent.prototype,"color",2),Z([Q.property({type:String})],exports.SchmancyThemeComponent.prototype,"scheme",2),Z([Q.property({type:Boolean})],exports.SchmancyThemeComponent.prototype,"root",2),Z([Pr.e({context:Rr}),Q.property({type:Object})],exports.SchmancyThemeComponent.prototype,"theme",2),exports.SchmancyThemeComponent=Z([Q.customElement("schmancy-theme")],exports.SchmancyThemeComponent),exports.ThemeHereIAm=wr,exports.ThemeWhereAreYou=br,exports.formateTheme=Cr,exports.tailwindStyles=vr;
3
- //# sourceMappingURL=theme.component-Dnf9PdX8.cjs.map