@mhmo91/schmancy 0.2.72 → 0.2.75

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 (44) hide show
  1. package/dist/card.cjs +1 -1
  2. package/dist/card.js +1 -1
  3. package/dist/content-drawer.cjs +1 -1
  4. package/dist/content-drawer.js +1 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +4 -4
  7. package/dist/{list-CwampsMO.cjs → list-CL31MEpb.cjs} +7 -7
  8. package/dist/list-CL31MEpb.cjs.map +1 -0
  9. package/dist/{list-CGCKKnfk.js → list-R_GzuzkY.js} +21 -18
  10. package/dist/list-R_GzuzkY.js.map +1 -0
  11. package/dist/list.cjs +1 -1
  12. package/dist/list.js +1 -1
  13. package/dist/nav-drawer.cjs +1 -1
  14. package/dist/nav-drawer.js +1 -1
  15. package/dist/select-Ba3A3DS4.js +181 -0
  16. package/dist/select-Ba3A3DS4.js.map +1 -0
  17. package/dist/select-DtJckUTa.cjs +54 -0
  18. package/dist/select-DtJckUTa.cjs.map +1 -0
  19. package/dist/select.cjs +1 -1
  20. package/dist/select.js +1 -1
  21. package/dist/{surface-CfAH2c9U.cjs → surface-BA2_6-th.cjs} +18 -18
  22. package/dist/surface-BA2_6-th.cjs.map +1 -0
  23. package/dist/{surface-Ci1xR_sr.js → surface-TFjCUP_C.js} +18 -18
  24. package/dist/surface-TFjCUP_C.js.map +1 -0
  25. package/dist/surface.cjs +1 -1
  26. package/dist/surface.js +1 -1
  27. package/dist/teleport.cjs +1 -1
  28. package/dist/{teleport.component-D2o6a-Yh.js → teleport.component-5h9nuQcu.js} +4 -4
  29. package/dist/{teleport.component-D2o6a-Yh.js.map → teleport.component-5h9nuQcu.js.map} +1 -1
  30. package/dist/{teleport.component-14_ksDPx.cjs → teleport.component-T4UtckWn.cjs} +2 -2
  31. package/dist/{teleport.component-14_ksDPx.cjs.map → teleport.component-T4UtckWn.cjs.map} +1 -1
  32. package/dist/teleport.js +1 -1
  33. package/package.json +1 -1
  34. package/types/src/list/list.d.ts +2 -0
  35. package/types/src/select/select.d.ts +1 -8
  36. package/types/src/surface/surface.d.ts +2 -1
  37. package/dist/list-CGCKKnfk.js.map +0 -1
  38. package/dist/list-CwampsMO.cjs.map +0 -1
  39. package/dist/select-BTSVFloo.cjs +0 -55
  40. package/dist/select-BTSVFloo.cjs.map +0 -1
  41. package/dist/select-Iem1gGwb.js +0 -176
  42. package/dist/select-Iem1gGwb.js.map +0 -1
  43. package/dist/surface-CfAH2c9U.cjs.map +0 -1
  44. package/dist/surface-Ci1xR_sr.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-DtJckUTa.cjs","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\n\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown(e: KeyboardEvent) {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tthis.isValid = this.multi ? Array.isArray(this.value) && this.value.length > 0 : Boolean(this.value)\n\t\tthis.validationMessage = this.isValid ? '' : 'Please select an option.'\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tif (this.required) {\n\t\t\tthis.checkValidity()\n\t\t\tthis.inputRef.required = true\n\t\t\tif (!this.isValid) {\n\t\t\t\tthis.openDropdown()\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t}\n\n\trender(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","arguments","this","required","placeholder","value","multi","label","isOpen","valueLabel","isValid","validationMessage","connectedCallback","id","Math","random","toString","substr","addEventListener","handleKeyDown","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","selectedValues","Array","isArray","options","forEach","o","selected","includes","length","filter","map","join","selectedOption","find","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","e","key","preventDefault","openDropdown","current","findIndex","matches","closeDropdown","focusOption","min","max","handleOptionSelect","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Boolean","checkValidity","inputRef","message","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","__decorateClass","property","type","prototype","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
package/dist/select.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-BTSVFloo.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-DtJckUTa.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
2
2
  //# sourceMappingURL=select.cjs.map
package/dist/select.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S } from "./select-Iem1gGwb.js";
1
+ import { S } from "./select-Ba3A3DS4.js";
2
2
  export {
3
3
  S as SchmancySelect
4
4
  };
@@ -1,20 +1,20 @@
1
1
  "use strict";const l=require("./provide-DSU87U5x.cjs"),u=require("./tailwind.mixin-B7_ZpVpC.cjs"),a=require("lit"),t=require("lit/decorators.js"),p=require("lit/directives/class-map.js"),d=require("./context-CHWQnKZ-.cjs");var f=Object.defineProperty,y=Object.getOwnPropertyDescriptor,r=(i,s,n,o)=>{for(var h,e=o>1?void 0:o?y(s,n):s,c=i.length-1;c>=0;c--)(h=i[c])&&(e=(o?h(s,n,e):h(e))||e);return o&&e&&f(s,n,e),e};exports.SchmancySurface=class extends u.TailwindElement(a.css`
2
- :host([fill='all']) {
3
- height: 100%;
4
- width: 100%;
5
- }
6
- :host([fill='width']) {
7
- width: 100%;
8
- }
9
- :host([fill='height']) {
10
- height: 100%;
11
- }
12
- :host {
13
- display: block;
14
- }
2
+ :host([fill='all']) {
3
+ height: 100%;
4
+ width: 100%;
5
+ }
6
+ :host([fill='width']) {
7
+ width: 100%;
8
+ }
9
+ :host([fill='height']) {
10
+ height: 100%;
11
+ }
12
+ :host {
13
+ display: block;
14
+ }
15
15
  `){constructor(){super(...arguments),this.fill="auto",this.rounded="none",this.type="surface",this.elevation=0}render(){const i={relative:!0,"inset-0":!0,block:!0,"box-border":!0,"rounded-none":this.rounded==="none","rounded-t-[8px]":this.rounded==="top","rounded-l-[8px]":this.rounded==="left","rounded-r-[8px]":this.rounded==="right","rounded-b-[8px]":this.rounded==="bottom","rounded-[8px]":this.rounded==="all","w-full":this.fill==="width"||this.fill==="all","h-full":this.fill==="height"||this.fill==="all","shadow-xs":this.elevation===1,"shadow-sm":this.elevation===2,"shadow-md":this.elevation===3,"shadow-lg":this.elevation===4,"text-surface-on":this.type==="surface"||this.type==="surfaceDim"||this.type==="surfaceBright"||this.type==="containerLowest"||this.type==="containerLow"||this.type==="container"||this.type==="containerHigh"||this.type==="containerHighest","bg-surface-default":this.type==="surface","bg-surface-dim":this.type==="surfaceDim","bg-surface-bright":this.type==="surfaceBright","bg-surface-lowest":this.type==="containerLowest","bg-surface-low":this.type==="containerLow","bg-surface-container":this.type==="container","bg-surface-high":this.type==="containerHigh","bg-surface-highest":this.type==="containerHighest"};return a.html`
16
- <section class=${p.classMap(i)}>
17
- <slot></slot>
18
- </section>
19
- `}},r([t.property({type:String,reflect:!0})],exports.SchmancySurface.prototype,"fill",2),r([t.property()],exports.SchmancySurface.prototype,"rounded",2),r([l.e({context:d.SchmancySurfaceTypeContext}),t.property()],exports.SchmancySurface.prototype,"type",2),r([t.property({type:Number})],exports.SchmancySurface.prototype,"elevation",2),exports.SchmancySurface=r([t.customElement("schmancy-surface")],exports.SchmancySurface);
20
- //# sourceMappingURL=surface-CfAH2c9U.cjs.map
16
+ <section class=${p.classMap(i)}>
17
+ <slot></slot>
18
+ </section>
19
+ `}},r([t.property({type:String,reflect:!0})],exports.SchmancySurface.prototype,"fill",2),r([t.property()],exports.SchmancySurface.prototype,"rounded",2),r([l.e({context:d.SchmancySurfaceTypeContext}),t.property()],exports.SchmancySurface.prototype,"type",2),r([t.property({type:Number})],exports.SchmancySurface.prototype,"elevation",2),exports.SchmancySurface=r([t.customElement("schmancy-surface")],exports.SchmancySurface);
20
+ //# sourceMappingURL=surface-BA2_6-th.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-BA2_6-th.cjs","sources":["../src/surface/surface.ts"],"sourcesContent":["import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // Import classMap\nimport { SchmancySurfaceTypeContext } from './context'\n\nexport type SchmancySurfaceFill = 'all' | 'width' | 'height' | 'auto'\n/**\n * @element schmancy-surface\n * @slot - default content\n */\n@customElement('schmancy-surface')\nexport class SchmancySurface extends TailwindElement(css`\n\t:host([fill='all']) {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\t:host([fill='width']) {\n\t\twidth: 100%;\n\t}\n\t:host([fill='height']) {\n\t\theight: 100%;\n\t}\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t/**\n\t * Fill the width and/or height of the parent container.\n\t * @default 'auto'\n\t *\n\t */\n\t@property({ type: String, reflect: true }) fill: SchmancySurfaceFill = 'auto'\n\t@property() rounded: 'none' | 'top' | 'left' | 'right' | 'bottom' | 'all' = 'none'\n\n\t@provide({ context: SchmancySurfaceTypeContext })\n\t@property()\n\ttype:\n\t\t| 'surface'\n\t\t| 'surfaceDim'\n\t\t| 'surfaceBright'\n\t\t| 'containerLowest'\n\t\t| 'containerLow'\n\t\t| 'container'\n\t\t| 'containerHigh'\n\t\t| 'containerHighest' = 'surface'\n\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\trelative: true,\n\t\t\t'inset-0': true,\n\t\t\tblock: true,\n\t\t\t'box-border': true,\n\t\t\t'rounded-none': this.rounded === 'none',\n\t\t\t'rounded-t-[8px]': this.rounded === 'top',\n\t\t\t'rounded-l-[8px]': this.rounded === 'left',\n\t\t\t'rounded-r-[8px]': this.rounded === 'right',\n\t\t\t'rounded-b-[8px]': this.rounded === 'bottom',\n\t\t\t'rounded-[8px]': this.rounded === 'all',\n\n\t\t\t'w-full': this.fill === 'width' || this.fill === 'all',\n\t\t\t'h-full': this.fill === 'height' || this.fill === 'all',\n\t\t\t'shadow-xs': this.elevation === 1,\n\t\t\t'shadow-sm': this.elevation === 2,\n\t\t\t'shadow-md': this.elevation === 3,\n\t\t\t'shadow-lg': this.elevation === 4,\n\t\t\t'text-surface-on':\n\t\t\t\tthis.type === 'surface' ||\n\t\t\t\tthis.type === 'surfaceDim' ||\n\t\t\t\tthis.type === 'surfaceBright' ||\n\t\t\t\tthis.type === 'containerLowest' ||\n\t\t\t\tthis.type === 'containerLow' ||\n\t\t\t\tthis.type === 'container' ||\n\t\t\t\tthis.type === 'containerHigh' ||\n\t\t\t\tthis.type === 'containerHighest',\n\t\t\t'bg-surface-default': this.type === 'surface',\n\t\t\t'bg-surface-dim': this.type === 'surfaceDim',\n\t\t\t'bg-surface-bright': this.type === 'surfaceBright',\n\t\t\t'bg-surface-lowest': this.type === 'containerLowest',\n\t\t\t'bg-surface-low': this.type === 'containerLow',\n\t\t\t'bg-surface-container': this.type === 'container',\n\t\t\t'bg-surface-high': this.type === 'containerHigh',\n\t\t\t'bg-surface-highest': this.type === 'containerHighest',\n\t\t}\n\n\t\treturn html`\n\t\t\t<section class=${classMap(classes)}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-surface': SchmancySurface\n\t}\n}\n"],"names":["SchmancySurface","TailwindElement","css","super","arguments","this","fill","rounded","type","elevation","render","classes","relative","block","html","classMap","__decorateClass","property","String","reflect","prototype","provide","context","SchmancySurfaceTypeContext","Number","customElement"],"mappings":"+ZAaaA,QAAAA,gBAAN,cAA8BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA9C,CAAA,CAAA,aAAAC,CAAAA,MAAAA,GAAAC,SAoBiEC,EAAAA,KAAAC,KAAA,OACKD,KAAAE,QAAA,OAYpDF,KAAAG,KAAA,UAEuCH,KAAAI,UAAA,CAAA,CAErD,QAAAC,CACT,MAAMC,EAAU,CACfC,SAAAA,GACA,UAAW,GACXC,MAAO,GACP,aAAc,GACd,eAAgBR,KAAKE,UAAY,OACjC,kBAAmBF,KAAKE,UAAY,MACpC,kBAAmBF,KAAKE,UAAY,OACpC,kBAAmBF,KAAKE,UAAY,QACpC,kBAAmBF,KAAKE,UAAY,SACpC,gBAAiBF,KAAKE,UAAY,MAElC,SAAUF,KAAKC,OAAS,SAAWD,KAAKC,OAAS,MACjD,SAAUD,KAAKC,OAAS,UAAYD,KAAKC,OAAS,MAClD,YAAaD,KAAKI,YAAc,EAChC,YAAaJ,KAAKI,YAAc,EAChC,YAAaJ,KAAKI,YAAc,EAChC,YAAaJ,KAAKI,YAAc,EAChC,kBACCJ,KAAKG,OAAS,WACdH,KAAKG,OAAS,cACdH,KAAKG,OAAS,iBACdH,KAAKG,OAAS,mBACdH,KAAKG,OAAS,gBACdH,KAAKG,OAAS,aACdH,KAAKG,OAAS,iBACdH,KAAKG,OAAS,mBACf,qBAAsBH,KAAKG,OAAS,UACpC,iBAAkBH,KAAKG,OAAS,aAChC,oBAAqBH,KAAKG,OAAS,gBACnC,oBAAqBH,KAAKG,OAAS,kBACnC,iBAAkBH,KAAKG,OAAS,eAChC,uBAAwBH,KAAKG,OAAS,YACtC,kBAAmBH,KAAKG,OAAS,gBACjC,qBAAsBH,KAAKG,OAAS,kBAG9B,EAAA,OAAAM,EAAAA;AAAAA,oBACWC,EAAAA,SAASJ,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA,GAAQ,CAxDOK,EAAAA,EAAA,CAA1CC,EAAAA,SAAS,CAAET,KAAMU,OAAQC,QAAS,EAAA,CAAA,CAAA,EApBvBnB,wBAoB+BoB,UAAA,OAAA,GAC/BJ,EAAA,CAAXC,EAASA,SAAAA,CAAAA,EArBEjB,wBAqBAoB,UAAA,UAAA,CAIZJ,EAAAA,EAAA,CAFCK,IAAQ,CAAEC,QAASC,EAAAA,0BAAAA,CAAAA,EACnBN,EAASA,SAAAA,CAAAA,EAxBEjB,wBAyBZoB,UAAA,OAAA,CAU4BJ,EAAAA,EAAA,CAA3BC,WAAS,CAAET,KAAMgB,MAAAA,CAAAA,CAAAA,EAnCNxB,wBAmCgBoB,UAAA,YAAA,CAnChBpB,EAAAA,QAANA,gBAAAgB,EAAA,CADNS,EAAAA,cAAc,kBAAA,CAAA,EACFzB"}
@@ -9,19 +9,19 @@ var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, s = (i, r, n
9
9
  return o && t && m(r, n, t), t;
10
10
  };
11
11
  let e = class extends c(d`
12
- :host([fill='all']) {
13
- height: 100%;
14
- width: 100%;
15
- }
16
- :host([fill='width']) {
17
- width: 100%;
18
- }
19
- :host([fill='height']) {
20
- height: 100%;
21
- }
22
- :host {
23
- display: block;
24
- }
12
+ :host([fill='all']) {
13
+ height: 100%;
14
+ width: 100%;
15
+ }
16
+ :host([fill='width']) {
17
+ width: 100%;
18
+ }
19
+ :host([fill='height']) {
20
+ height: 100%;
21
+ }
22
+ :host {
23
+ display: block;
24
+ }
25
25
  `) {
26
26
  constructor() {
27
27
  super(...arguments), this.fill = "auto", this.rounded = "none", this.type = "surface", this.elevation = 0;
@@ -29,14 +29,14 @@ let e = class extends c(d`
29
29
  render() {
30
30
  const i = { relative: !0, "inset-0": !0, block: !0, "box-border": !0, "rounded-none": this.rounded === "none", "rounded-t-[8px]": this.rounded === "top", "rounded-l-[8px]": this.rounded === "left", "rounded-r-[8px]": this.rounded === "right", "rounded-b-[8px]": this.rounded === "bottom", "rounded-[8px]": this.rounded === "all", "w-full": this.fill === "width" || this.fill === "all", "h-full": this.fill === "height" || this.fill === "all", "shadow-xs": this.elevation === 1, "shadow-sm": this.elevation === 2, "shadow-md": this.elevation === 3, "shadow-lg": this.elevation === 4, "text-surface-on": this.type === "surface" || this.type === "surfaceDim" || this.type === "surfaceBright" || this.type === "containerLowest" || this.type === "containerLow" || this.type === "container" || this.type === "containerHigh" || this.type === "containerHighest", "bg-surface-default": this.type === "surface", "bg-surface-dim": this.type === "surfaceDim", "bg-surface-bright": this.type === "surfaceBright", "bg-surface-lowest": this.type === "containerLowest", "bg-surface-low": this.type === "containerLow", "bg-surface-container": this.type === "container", "bg-surface-high": this.type === "containerHigh", "bg-surface-highest": this.type === "containerHighest" };
31
31
  return u`
32
- <section class=${y(i)}>
33
- <slot></slot>
34
- </section>
35
- `;
32
+ <section class=${y(i)}>
33
+ <slot></slot>
34
+ </section>
35
+ `;
36
36
  }
37
37
  };
38
38
  s([h({ type: String, reflect: !0 })], e.prototype, "fill", 2), s([h()], e.prototype, "rounded", 2), s([p({ context: g }), h()], e.prototype, "type", 2), s([h({ type: Number })], e.prototype, "elevation", 2), e = s([f("schmancy-surface")], e);
39
39
  export {
40
40
  e as S
41
41
  };
42
- //# sourceMappingURL=surface-Ci1xR_sr.js.map
42
+ //# sourceMappingURL=surface-TFjCUP_C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-TFjCUP_C.js","sources":["../src/surface/surface.ts"],"sourcesContent":["import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // Import classMap\nimport { SchmancySurfaceTypeContext } from './context'\n\nexport type SchmancySurfaceFill = 'all' | 'width' | 'height' | 'auto'\n/**\n * @element schmancy-surface\n * @slot - default content\n */\n@customElement('schmancy-surface')\nexport class SchmancySurface extends TailwindElement(css`\n\t:host([fill='all']) {\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\t:host([fill='width']) {\n\t\twidth: 100%;\n\t}\n\t:host([fill='height']) {\n\t\theight: 100%;\n\t}\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t/**\n\t * Fill the width and/or height of the parent container.\n\t * @default 'auto'\n\t *\n\t */\n\t@property({ type: String, reflect: true }) fill: SchmancySurfaceFill = 'auto'\n\t@property() rounded: 'none' | 'top' | 'left' | 'right' | 'bottom' | 'all' = 'none'\n\n\t@provide({ context: SchmancySurfaceTypeContext })\n\t@property()\n\ttype:\n\t\t| 'surface'\n\t\t| 'surfaceDim'\n\t\t| 'surfaceBright'\n\t\t| 'containerLowest'\n\t\t| 'containerLow'\n\t\t| 'container'\n\t\t| 'containerHigh'\n\t\t| 'containerHighest' = 'surface'\n\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\trelative: true,\n\t\t\t'inset-0': true,\n\t\t\tblock: true,\n\t\t\t'box-border': true,\n\t\t\t'rounded-none': this.rounded === 'none',\n\t\t\t'rounded-t-[8px]': this.rounded === 'top',\n\t\t\t'rounded-l-[8px]': this.rounded === 'left',\n\t\t\t'rounded-r-[8px]': this.rounded === 'right',\n\t\t\t'rounded-b-[8px]': this.rounded === 'bottom',\n\t\t\t'rounded-[8px]': this.rounded === 'all',\n\n\t\t\t'w-full': this.fill === 'width' || this.fill === 'all',\n\t\t\t'h-full': this.fill === 'height' || this.fill === 'all',\n\t\t\t'shadow-xs': this.elevation === 1,\n\t\t\t'shadow-sm': this.elevation === 2,\n\t\t\t'shadow-md': this.elevation === 3,\n\t\t\t'shadow-lg': this.elevation === 4,\n\t\t\t'text-surface-on':\n\t\t\t\tthis.type === 'surface' ||\n\t\t\t\tthis.type === 'surfaceDim' ||\n\t\t\t\tthis.type === 'surfaceBright' ||\n\t\t\t\tthis.type === 'containerLowest' ||\n\t\t\t\tthis.type === 'containerLow' ||\n\t\t\t\tthis.type === 'container' ||\n\t\t\t\tthis.type === 'containerHigh' ||\n\t\t\t\tthis.type === 'containerHighest',\n\t\t\t'bg-surface-default': this.type === 'surface',\n\t\t\t'bg-surface-dim': this.type === 'surfaceDim',\n\t\t\t'bg-surface-bright': this.type === 'surfaceBright',\n\t\t\t'bg-surface-lowest': this.type === 'containerLowest',\n\t\t\t'bg-surface-low': this.type === 'containerLow',\n\t\t\t'bg-surface-container': this.type === 'container',\n\t\t\t'bg-surface-high': this.type === 'containerHigh',\n\t\t\t'bg-surface-highest': this.type === 'containerHighest',\n\t\t}\n\n\t\treturn html`\n\t\t\t<section class=${classMap(classes)}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-surface': SchmancySurface\n\t}\n}\n"],"names":["SchmancySurface","TailwindElement","css","super","arguments","this","fill","rounded","type","elevation","render","classes","relative","block","html","classMap","__decorateClass","property","String","reflect","prototype","provide","context","SchmancySurfaceTypeContext","Number","customElement"],"mappings":";;;;;;;;;;AAaa,IAAAA,IAAN,cAA8BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA9C,EAAA;AAAA,EAAA,cAAAC;AAAAA,UAAAA,GAAAC,SAoBiEC,GAAAA,KAAAC,OAAA,QACKD,KAAAE,UAAA,QAYpDF,KAAAG,OAAA,WAEuCH,KAAAI,YAAA;AAAA,EAAA;AAAA,EAErD,SAAAC;AACT,UAAMC,IAAU,EACfC,UAAAA,IACA,WAAW,IACXC,OAAO,IACP,cAAc,IACd,gBAAgBR,KAAKE,YAAY,QACjC,mBAAmBF,KAAKE,YAAY,OACpC,mBAAmBF,KAAKE,YAAY,QACpC,mBAAmBF,KAAKE,YAAY,SACpC,mBAAmBF,KAAKE,YAAY,UACpC,iBAAiBF,KAAKE,YAAY,OAElC,UAAUF,KAAKC,SAAS,WAAWD,KAAKC,SAAS,OACjD,UAAUD,KAAKC,SAAS,YAAYD,KAAKC,SAAS,OAClD,aAAaD,KAAKI,cAAc,GAChC,aAAaJ,KAAKI,cAAc,GAChC,aAAaJ,KAAKI,cAAc,GAChC,aAAaJ,KAAKI,cAAc,GAChC,mBACCJ,KAAKG,SAAS,aACdH,KAAKG,SAAS,gBACdH,KAAKG,SAAS,mBACdH,KAAKG,SAAS,qBACdH,KAAKG,SAAS,kBACdH,KAAKG,SAAS,eACdH,KAAKG,SAAS,mBACdH,KAAKG,SAAS,oBACf,sBAAsBH,KAAKG,SAAS,WACpC,kBAAkBH,KAAKG,SAAS,cAChC,qBAAqBH,KAAKG,SAAS,iBACnC,qBAAqBH,KAAKG,SAAS,mBACnC,kBAAkBH,KAAKG,SAAS,gBAChC,wBAAwBH,KAAKG,SAAS,aACtC,mBAAmBH,KAAKG,SAAS,iBACjC,sBAAsBH,KAAKG,SAAS,mBAATA;AAGrB,WAAAM;AAAAA,oBACWC,EAASJ,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAQ;AAxDOK;AAAAA,EAAA,CAA1CC,EAAS,EAAET,MAAMU,QAAQC,SAAAA,QApBdnB,EAoB+BoB,WAAA,QAAA,CAC/BJ,GAAAA,EAAA,CAAXC,EArBWjB,CAAAA,GAAAA,EAqBAoB,WAAA,WAAA,CAAA,GAIZJ,EAAA,CAFCK,EAAQ,EAAEC,SAASC,EAAAA,CAAAA,GACnBN,MAxBWjB,EAyBZoB,WAAA,QAAA,CAU4BJ,GAAAA,EAAA,CAA3BC,EAAS,EAAET,MAAMgB,OAnCNxB,CAAAA,CAAAA,GAAAA,EAmCgBoB,WAAA,aAAA,CAAA,GAnChBpB,IAANgB,EAAA,CADNS,EAAc,kBAAA,CAAA,GACFzB;"}
package/dist/surface.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./surface-CfAH2c9U.cjs");Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>e.SchmancySurface});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./surface-BA2_6-th.cjs");Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>e.SchmancySurface});
2
2
  //# sourceMappingURL=surface.cjs.map
package/dist/surface.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as r } from "./surface-Ci1xR_sr.js";
1
+ import { S as r } from "./surface-TFjCUP_C.js";
2
2
  export {
3
3
  r as SchmancySurface
4
4
  };
package/dist/teleport.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-14_ksDPx.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-T4UtckWn.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
2
2
  //# sourceMappingURL=teleport.cjs.map
@@ -25,17 +25,17 @@ import "./form-BfV5JUNV.js";
25
25
  import "./icon-CS7L7dYv.js";
26
26
  import "./input-BOity9fs.js";
27
27
  import "./flex-CLZyrhZ_.js";
28
- import "./list-CGCKKnfk.js";
28
+ import "./list-R_GzuzkY.js";
29
29
  import "./menu-BW3qO2A1.js";
30
30
  import { when as Y } from "lit/directives/when.js";
31
31
  import "./outlet-jd-bRdrF.js";
32
32
  import "./option-DCA4GidB.js";
33
33
  import "./radio-group-C98aizGb.js";
34
34
  import "./index-CuY8m6ta.js";
35
- import "./select-Iem1gGwb.js";
35
+ import "./select-Ba3A3DS4.js";
36
36
  import { s as G } from "./sheet-WsaFx6-i.js";
37
37
  import "./slider-BOXmzToY.js";
38
- import "./surface-Ci1xR_sr.js";
38
+ import "./surface-TFjCUP_C.js";
39
39
  import "./table-iRPRoThv.js";
40
40
  import "./tabs-group-BYuZ4dIc.js";
41
41
  import "./textarea-C5i4amtn.js";
@@ -527,4 +527,4 @@ export {
527
527
  Ve as s,
528
528
  H as t
529
529
  };
530
- //# sourceMappingURL=teleport.component-D2o6a-Yh.js.map
530
+ //# sourceMappingURL=teleport.component-5h9nuQcu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teleport.component-D2o6a-Yh.js","sources":["../src/card/actions.ts","../src/card/card.ts","../src/card/content.ts","../src/card/media.ts","../src/content-drawer/$sheet.ts","../src/content-drawer/context.ts","../src/content-drawer/drawer.ts","../src/content-drawer/main.ts","../src/content-drawer/sheet.ts","../src/nav-drawer/$navbar.ts","../src/nav-drawer/context.ts","../src/nav-drawer/appbar.ts","../src/nav-drawer/content.ts","../src/nav-drawer/drawer.ts","../src/nav-drawer/navbar.ts","../src/teleport/teleport.service.ts","../src/teleport/watcher.ts","../src/teleport/teleport.component.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-action\n * @slot - The content of the action\n */\n@customElement('schmancy-card-action')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html` <section class=\"pb-4 px-4\"><slot> </slot></section> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-action': SchmancyCardMedia\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-card')\nexport default class SchmancyCard extends TailwindElement() {\n\t@property() type: 'elevated' | 'filled' | 'outlined' = 'elevated'\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'rounded-md': true,\n\t\t\t'shadow-xs': this.elevation === 1,\n\t\t\t'shadow-sm': this.elevation === 2,\n\t\t\t'shadow-md': this.elevation === 3,\n\t\t\t'shadow-lg': this.elevation === 4,\n\t\t\t'shadow-5': this.elevation === 5,\n\t\t\t'hover:shadow-xs': ['outlined', 'filled'].includes(this.type),\n\t\t\t'bg-surface-low shadow-xs hover:shadow-sm': this.type === 'elevated',\n\t\t\t'bg-surface-highest': this.type === 'filled',\n\t\t\t'bg-surface-default border border-solid border-1 border-outlineVariant': this.type === 'outlined',\n\t\t}\n\t\treturn html`<div class=\"${this.classMap(classes)}\">\n\t\t\t<slot> </slot>\n\t\t</div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card': SchmancyCard\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { color } from '..'\n\n/**\n * @element schmancy-card-content\n * @slot headline\n * @slot subhead\n * @slot default - The content of the card\n */\n@customElement('schmancy-card-content')\nexport default class SchmancyCardContent extends TailwindElement() {\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'px-[16px] py-[24px]': true,\n\t\t}\n\t\tconst onSurface = SchmancyTheme.sys.color.surface.on\n\t\tconst onSurfaceVariant = SchmancyTheme.sys.color.surface.onVariant\n\t\treturn html`<schmancy-grid gap=\"md\" class=\"${this.classMap(classes)}\">\n\t\t\t<schmancy-grid gap=\"xs\">\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurface,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\ttoken=\"lg\"\n\t\t\t\t\t><slot name=\"headline\"> </slot\n\t\t\t\t></schmancy-typography>\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t><slot name=\"subhead\"></slot>\n\t\t\t\t</schmancy-typography>\n\t\t\t</schmancy-grid>\n\t\t\t<schmancy-typography\n\t\t\t\ttype=\"body\"\n\t\t\t\t${color({\n\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-typography>\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-content': SchmancyCardContent\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-media\n */\n@customElement('schmancy-card-media')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tsrc: string = ''\n\n\t@property({ type: String })\n\tfit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain'\n\n\tprotected render(): unknown {\n\t\tconst styles = {\n\t\t\theight: '200px',\n\t\t}\n\t\tconst classes = {\n\t\t\t'object-center': true,\n\t\t\t'object-contain': this.fit === 'contain',\n\t\t\t'object-cover w-full': this.fit === 'cover',\n\t\t\t'object-fill': this.fit === 'fill',\n\t\t\t'object-none': this.fit === 'none',\n\t\t\t'object-scale-down': this.fit === 'scale-down',\n\t\t}\n\t\treturn html`<schmancy-grid align=\"stretch\" justify=\"stretch\" gap=\"md\">\n\t\t\t<img src=\"${this.src}\" style=${this.styleMap(styles)} class=\"${this.classMap(classes)}\" />\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-media': SchmancyCardMedia\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { Subject } from 'rxjs'\n\ntype DrawerAction = 'dismiss' | 'render'\ntype TRef = Element | Window\ntype TRenderRequest = HTMLElement\nexport type TRenderCustomEvent = CustomEvent<{\n\tcomponent: TRenderRequest\n\ttitle?: string\n}>\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tref: TRef\n\t\taction: DrawerAction\n\t\tcomponent?: TRenderRequest\n\t\ttitle?: string\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe().subscribe(data => {\n\t\t\tif (data.action === 'dismiss') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else if (data.action === 'render') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-content-drawer-render', {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tcomponent: data.component,\n\t\t\t\t\t\t\ttitle: data.title,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\n\tdimiss(ref: TRef) {\n\t\tthis.$drawer.next({\n\t\t\taction: 'dismiss',\n\t\t\tref: ref,\n\t\t})\n\t}\n\n\trender(ref: TRef, component: TRenderRequest, title?: string) {\n\t\tref.dispatchEvent(new CustomEvent('custom-event'))\n\t\tthis.$drawer.next({\n\t\t\taction: 'render',\n\t\t\tref: ref,\n\t\t\tcomponent: component,\n\t\t\ttitle,\n\t\t})\n\t}\n}\n\nexport const schmancyContentDrawer = new Drawer()\n","import { createContext } from '@lit/context'\nexport type TSchmancyContentDrawerSheetMode = 'push' | 'overlay'\nexport const SchmancyContentDrawerSheetMode = createContext<TSchmancyContentDrawerSheetMode>('push')\n\nexport type TSchmancyContentDrawerSheetState = 'open' | 'close'\nexport const SchmancyContentDrawerSheetState = createContext<TSchmancyContentDrawerSheetState>('close')\n\nexport const SchmancyContentDrawerID = createContext<string>(Math.floor(Math.random() * Date.now()).toString())\nexport const SchmancyContentDrawerMaxHeight = createContext<string>('100%')\nexport const SchmancyContentDrawerMinWidth = createContext<{\n\tmain: number\n\tsheet: number\n}>({})\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, merge, startWith, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, TRenderCustomEvent, area, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n/**\n * @element schmancy-content-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-content-drawer')\nexport class SchmancyContentDrawer extends $LitElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tinset: 0;\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t/**\n\t * The minimum width of the sheet\n\t * @attr\tminWidth\n\t * @type {number}\n\t * @memberof SchmancyContentDrawer\n\t */\n\n\t@provide({ context: SchmancyContentDrawerMinWidth })\n\tminWidth: typeof SchmancyContentDrawerMinWidth.__context__ = {\n\t\tmain: 360,\n\t\tsheet: 576,\n\t}\n\n\t/**\n\t * The state of the sheet\n\t * @attr open\n\t * @type {TSchmancyContentDrawerSheetState}\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetState })\n\t@property()\n\topen: TSchmancyContentDrawerSheetState\n\n\t/**\n\t * The mode of the sheet\n\t * @type {TSchmancyContentDrawerSheetMode}\n\t * @memberof SchmancyContentDrawer\n\t * @protected\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetMode })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@provide({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID = Math.floor(Math.random() * Date.now()).toString()\n\n\t@provide({ context: SchmancyContentDrawerMaxHeight })\n\tmaxHeight = '100%'\n\n\t@queryAssignedElements({ flatten: true })\n\tassignedElements!: HTMLElement[]\n\tfirstUpdated(): void {\n\t\tmerge(fromEvent<CustomEvent>(window, 'resize'), fromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerResize))\n\t\t\t.pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\ttap(() => console.log(this.minWidth)),\n\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\tmap(width => width >= this.minWidth.main + this.minWidth.sheet),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.maxHeight = `${window.innerHeight - this.getOffsetTop(this) - 32}px`\n\t\t\t\t\tthis.style.setProperty('max-height', this.maxHeight)\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(lgScreen => {\n\t\t\t\tif (lgScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t/*\n\t\t * Listen to the toggle event\n\t\t */\n\t\tfromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerToggle)\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail.state),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tthis.open = state\n\t\t\t})\n\n\t\tfromEvent<TRenderCustomEvent>(window, 'schmancy-content-drawer-render')\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(({ component, title }) => {\n\t\t\t\tif (this.mode === 'push') {\n\t\t\t\t\t// TODO: Fix the router to render if constructor has different arguments\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: 'empty',\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: component,\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t} else if ((this.mode = 'overlay')) {\n\t\t\t\t\tsheet.open({ component: component, uid: this.schmancyContentDrawerID, title })\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tgetOffsetTop(element) {\n\t\tlet offsetTop = 0\n\t\twhile (element) {\n\t\t\toffsetTop += element.offsetTop\n\t\t\telement = element.offsetParent\n\t\t}\n\t\treturn offsetTop\n\t}\n\n\tprotected render() {\n\t\tif (!this.mode || !this.open) return nothing\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.mode === 'overlay' ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer': SchmancyContentDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { PropertyValueMap, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyEvents } from '..'\nimport {\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetMode,\n} from './context'\nimport { when } from 'lit/directives/when.js'\n\n@customElement('schmancy-content-drawer-main')\nexport class SchmancyContentDrawerMain extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) this.drawerMinWidth.main = this.minWidth\n\t\telse this.minWidth = this.drawerMinWidth.main\n\t}\n\n\tprotected update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\tsuper.update(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\tthis.drawerMinWidth.main = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t}\n\t}\n\n\trender() {\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"relative inset-0 h-full\">\n\t\t\t\t<schmancy-grid\n\t\t\t\t\tclass=\"h-full relative overflow-scroll\"\n\t\t\t\t\tcols=\"${this.mode === 'push' ? 'auto 1fr' : '1fr'}\"\n\t\t\t\t\trows=\"1fr\"\n\t\t\t\t\tflow=\"col\"\n\t\t\t\t\talign=\"stretch\"\n\t\t\t\t\tjustify=\"stretch\"\n\t\t\t\t>\n\t\t\t\t\t<section style=${this.styleMap(styles)}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</section>\n\t\t\t\t</schmancy-grid>\n\t\t\t\t${when(\n\t\t\t\t\tthis.mode === 'push',\n\t\t\t\t\t() => html` <schmancy-divider class=\"absolute right-0 top-0\" orientation=\"vertical\"></schmancy-divider>`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-main': SchmancyContentDrawerMain\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, merge, Observable, of, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n// --- 1) Removed the custom animate import\n// import { animate } from '@packages/anime-beta-master'\n\n@customElement('schmancy-content-drawer-sheet')\nexport class SchmancyContentDrawerSheet extends $LitElement(css`\n\t:host {\n\t\toverflow: scroll;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerSheetState, subscribe: true })\n\t@state()\n\tstate: TSchmancyContentDrawerSheetState\n\n\t@consume({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID\n\n\t@query('#sheet') sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true, slot: undefined }) defaultSlot!: HTMLElement[]\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) {\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t} else {\n\t\t\tthis.minWidth = this.drawerMinWidth.sheet\n\t\t}\n\t}\n\n\tupdated(changedProperties: Map<string, any>) {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\t// If the 'minWidth' property changed\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t} else if (changedProperties.has('state') || changedProperties.has('mode')) {\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\t// Overlay open logic if needed\n\t\t\t\t\t// this.open()\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tsheet.dismiss(this.schmancyContentDrawerID)\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\tthis.open()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Open the sheet by sliding it into view.\n\t */\n\topen() {\n\t\t// \"onBegin\" logic from the old `animate(...)`\n\t\tif (this.mode === 'overlay') {\n\t\t\tthis.sheet.style.position = 'fixed'\n\t\t} else {\n\t\t\tthis.sheet.style.position = 'relative'\n\t\t}\n\t\tthis.sheet.style.display = 'block'\n\n\t\t// --- 2) Use native Web Animations API ---\n\t\tthis.sheet.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'translateX(100%)' },\n\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 500,\n\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t},\n\t\t)\n\t\t// No return is needed if you don't rely on the result\n\t}\n\n\t/**\n\t * Close everything (modal sheet + the sheet itself).\n\t */\n\tcloseAll() {\n\t\t// Merge them into a single subscription,\n\t\t// so that everything closes in parallel.\n\t\tmerge(from(this.closeModalSheet()), from(this.closeSheet())).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\t/**\n\t * Dismiss the \"modal sheet.\"\n\t * This just returns an Observable that completes immediately.\n\t */\n\tcloseModalSheet() {\n\t\treturn of(true).pipe(tap(() => sheet.dismiss(this.schmancyContentDrawerID)))\n\t}\n\n\t/**\n\t * Slide the sheet out of view + hide it.\n\t * Return an Observable so we can merge it with other close operations.\n\t */\n\tcloseSheet() {\n\t\t// --- 2) Use native Web Animations API and wrap in an Observable ---\n\t\treturn new Observable<void>(observer => {\n\t\t\tconst animation = this.sheet.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(100%)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 500,\n\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tanimation.onfinish = () => {\n\t\t\t\t// \"onComplete\" logic\n\t\t\t\tthis.sheet.style.display = 'none'\n\t\t\t\tobserver.next()\n\t\t\t\tobserver.complete()\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected render() {\n\t\tconst sheetClasses = {\n\t\t\tblock: this.mode === 'push',\n\t\t\t'absolute z-50': this.mode === 'overlay',\n\t\t\t'opacity-1': this.mode === 'overlay' && this.state === 'open',\n\t\t}\n\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"sheet\" class=\"${this.classMap(sheetClasses)}\" style=${this.styleMap(styles)}>\n\t\t\t\t<schmancy-area name=\"${this.schmancyContentDrawerID}\">\n\t\t\t\t\t<slot name=\"placeholder\"></slot>\n\t\t\t\t</schmancy-area>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-sheet': SchmancyContentDrawerSheet\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { debounceTime, Subject } from 'rxjs'\n\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tself: HTMLElement\n\t\tstate: boolean\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe(debounceTime(10)).subscribe(data => {\n\t\t\tif (data.state) {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\topen(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: true,\n\t\t})\n\t}\n\tclose(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: false,\n\t\t})\n\t}\n}\n\nexport const schmancyNavDrawer = new Drawer()\nconst $drawer = schmancyNavDrawer\n\nexport { $drawer }\n","import { createContext } from '@lit/context'\nexport type TSchmancyDrawerNavbarMode = 'push' | 'overlay' | undefined\nexport const SchmancyDrawerNavbarMode = createContext<TSchmancyDrawerNavbarMode>('push')\n\nexport type TSchmancyDrawerNavbarState = 'open' | 'close' | undefined\nexport const SchmancyDrawerNavbarState = createContext<TSchmancyDrawerNavbarState>('close')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n} from '@schmancy/nav-drawer/context'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { SchmancyEvents } from '..'\n\n/**\n * @element schmancy-nav-drawer-appbar\n * @slot toggler - The toggler slot\n * @slot - The default slot\n */\n@customElement('schmancy-nav-drawer-appbar')\nexport class SchmancyDrawerAppbar extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tsidebarMode: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tsidebarOpen\n\n\t@property({ type: Boolean }) toggler = true\n\n\trender() {\n\t\tconst appbarClasses = {\n\t\t\t'block z-50': true,\n\t\t}\n\t\tconst sidebarToggler = {\n\t\t\t'block left-3 z-50': this.sidebarMode === 'overlay',\n\t\t\thidden: this.sidebarMode === 'push',\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.sidebarMode === 'overlay' && this.toggler ? 'auto 1fr' : '1fr'}\n\t\t\t\tflow=\"col\"\n\t\t\t\tclass=${this.classMap(appbarClasses)}\n\t\t\t\tgap=\"sm\"\n\t\t\t\talign=\"center\"\n\t\t\t>\n\t\t\t\t${when(\n\t\t\t\t\tthis.sidebarMode === 'overlay' && this.toggler,\n\t\t\t\t\t() =>\n\t\t\t\t\t\thtml`<slot name=\"toggler\">\n\t\t\t\t\t\t\t<div class=\"${this.classMap(sidebarToggler)}\">\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\t\t\t\t\t\t\tdetail: { state: this.sidebarOpen === 'open' ? 'close' : 'open' },\n\t\t\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t)\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\t${when(\n\t\t\t\t\t\t\t\t\t\tthis.sidebarOpen === 'close',\n\t\t\t\t\t\t\t\t\t\t() => html`menu`,\n\t\t\t\t\t\t\t\t\t\t() => html`menu_open`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>`,\n\t\t\t\t)}\n\n\t\t\t\t<slot> </slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-appbar': SchmancyDrawerAppbar\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-nav-drawer-content')\nexport class SchmancyNavigationDrawerContent extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tinset: 0;\n\t\toverflow-y: auto;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'scroll')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\tthis.parentElement.dispatchEvent(new CustomEvent('scroll', { detail: e, bubbles: true, composed: true }))\n\t\t\t})\n\t}\n\trender() {\n\t\treturn html` <slot></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-content': SchmancyNavigationDrawerContent\n\t}\n}\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents } from '..'\nimport { fullHeight } from './../directives/height'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n/**\n * @element schmancy-nav-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-nav-drawer')\nexport class SchmancyNavigationDrawer extends $LitElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\t/* Initially hide the component until it’s ready */\n\t\tvisibility: hidden;\n\t}\n\t/* Once the component is ready, remove the hidden style */\n\t:host([data-ready]) {\n\t\tvisibility: visible;\n\t}\n`) {\n\t// fullscreen property\n\t@property({ type: Boolean })\n\tfullscreen: boolean = false\n\n\t/**\n\t * The breakpoint for the sidebar based on Tailwind CSS breakpoints.\n\t * Accepts: \"sm\", \"md\", \"lg\", or \"xl\".\n\t *\n\t * The following default values are used:\n\t * - sm: 640px\n\t * - md: 768px (default)\n\t * - lg: 1024px\n\t * - xl: 1280px\n\t *\n\t * @attr breakpoint\n\t * @type {\"sm\" | \"md\" | \"lg\" | \"xl\"}\n\t */\n\t@property({ type: String, attribute: 'breakpoint' })\n\tbreakpoint: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * Mapping of Tailwind breakpoint tokens to their numeric pixel values.\n\t */\n\tprivate static BREAKPOINTS: Record<'sm' | 'md' | 'lg' | 'xl', number> = {\n\t\tsm: 640,\n\t\tmd: 768,\n\t\tlg: 1024,\n\t\txl: 1280,\n\t}\n\n\t/**\n\t * The mode of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarMode })\n\t@state()\n\tmode: TSchmancyDrawerNavbarMode\n\n\t/**\n\t * The open/close state of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarState })\n\t@property()\n\topen: TSchmancyDrawerNavbarState\n\n\t/**\n\t * A flag indicating that the initial state has been set.\n\t */\n\t@state()\n\tprivate _initialized = false\n\n\t/**\n\t * In firstUpdated, we can safely read attribute-set properties.\n\t * We also initialize our state and subscribe to events.\n\t */\n\tfirstUpdated() {\n\t\t// Set the initial state based on the current window width.\n\t\tthis.updateState(window.innerWidth)\n\t\t// Mark the component as ready\n\t\tthis._initialized = true\n\t\tthis.setAttribute('data-ready', '')\n\n\t\t// Subscribe to window resize events.\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\t// Extract the inner width.\n\t\t\t\tmap(event => (event.target as Window).innerWidth),\n\t\t\t\t// Determine if we're above the breakpoint.\n\t\t\t\tmap(width => width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(isLargeScreen => {\n\t\t\t\tif (isLargeScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t// Listen to the custom toggle event.\n\t\tfromEvent(window, SchmancyEvents.NavDrawer_toggle)\n\t\t\t.pipe(\n\t\t\t\ttap((event: CustomEvent) => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap((event: CustomEvent) => event.detail.state),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdebounceTime(10),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tconsole.log('Received toggle event:', state)\n\t\t\t\t// When in push mode, ignore a request to close the sidebar.\n\t\t\t\tif (this.mode === 'push' && state === 'close') return\n\t\t\t\tthis.open = state\n\t\t\t})\n\t}\n\n\t/**\n\t * Helper method to update state based on a given width.\n\t */\n\tprivate updateState(width: number) {\n\t\tconst isLargeScreen = width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]\n\t\tthis.mode = isLargeScreen ? 'push' : 'overlay'\n\t\tthis.open = isLargeScreen ? 'open' : 'close'\n\t}\n\n\tprotected render() {\n\t\t// Optionally, you can check _initialized here,\n\t\t// but the CSS will already hide the component until it's ready.\n\t\tif (!this._initialized) return nothing\n\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.fullscreen ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t\t${fullHeight()}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer': SchmancyNavigationDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { SchmancyEvents, SchmancyTheme, color } from '..'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n// Animation configuration constants.\nconst ANIMATION_EASING = 'cubic-bezier(0.5, 0.01, 0.25, 1)'\nconst OVERLAY_ANIM_DURATION_OPEN = 200\nconst OVERLAY_ANIM_DURATION_CLOSE = 150\nconst NAV_ANIM_DURATION = 200\n\n@customElement('schmancy-nav-drawer-navbar')\nexport class SchmancyNavigationDrawerSidebar extends $LitElement() {\n\t// Consume context values. Renamed from \"state\" to \"drawerState\" to avoid confusion.\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tmode!: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tdrawerState!: TSchmancyDrawerNavbarState\n\n\t@query('#overlay') overlay!: HTMLElement\n\t@query('nav') nav!: HTMLElement\n\n\t@property({ type: String }) width = '320px'\n\t@state() private _initialized = false\n\n\t/**\n\t * firstUpdated()\n\t * Set initial styles based on the current mode and consumed state.\n\t */\n\tfirstUpdated() {\n\t\tif (this.mode === 'overlay') {\n\t\t\tif (this.drawerState === 'close') {\n\t\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t\t\tthis.overlay.style.display = 'none'\n\t\t\t} else if (this.drawerState === 'open') {\n\t\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\t\tthis.overlay.style.display = 'block'\n\t\t\t\tthis.overlay.style.opacity = '0.4'\n\t\t\t}\n\t\t} else if (this.mode === 'push') {\n\t\t\t// In push mode, the nav is always visible and the overlay hidden.\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t\tthis._initialized = true\n\t}\n\n\t/**\n\t * updated()\n\t * Trigger animations when either the consumed mode or state changes.\n\t */\n\tupdated(changedProperties: Map<string, any>) {\n\t\tconsole.log(this._initialized, changedProperties)\n\t\tif (!this._initialized) return\n\n\t\tif (changedProperties.has('drawerState') || changedProperties.has('mode')) {\n\t\t\tconsole.log('State updated:', this.drawerState, this.mode)\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.drawerState === 'open') {\n\t\t\t\t\t// Animate only if the nav isn’t already open.\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\t\tthis.openOverlay()\n\t\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t\t}\n\t\t\t\t} else if (this.drawerState === 'close') {\n\t\t\t\t\tconsole.log(this.nav.style.transform)\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(-100%)') {\n\t\t\t\t\t\tthis.hideNavDrawer()\n\t\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t}\n\t\t\t\tif (this.overlay.style.display !== 'none') {\n\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Animate the overlay to fade in.\n\t */\n\topenOverlay() {\n\t\tthis.overlay.style.display = 'block'\n\t\tthis.overlay.animate([{ opacity: 0 }, { opacity: 0.4 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_OPEN,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t}\n\n\t/**\n\t * Animate the overlay to fade out, then hide it.\n\t */\n\tcloseOverlay() {\n\t\tconst animation = this.overlay.animate([{ opacity: 0.4 }, { opacity: 0 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_CLOSE,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t}\n\tshowNavDrawer() {\n\t\t// Use computed style if needed, but here we directly update inline style after animation.\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(-100%)' }, { transform: 'translateX(0)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t}\n\t}\n\n\thideNavDrawer() {\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(0)' }, { transform: 'translateX(-100%)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t}\n\t}\n\n\t/**\n\t * Handle overlay click events by dispatching a custom event\n\t * to close the navigation drawer.\n\t */\n\tprivate handleOverlayClick() {\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\tdetail: { state: 'close' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected render() {\n\t\tconst sidebarClasses = {\n\t\t\t'p-[16px] max-w-[360px] w-fit h-full overflow-auto': true,\n\t\t\tblock: this.mode === 'push',\n\t\t\t'fixed inset-0 z-50': this.mode === 'overlay',\n\t\t}\n\t\tconst overlayClass = {\n\t\t\t'fixed inset-0 z-49 hidden': true,\n\t\t}\n\t\tconst styleMap = {\n\t\t\twidth: this.width,\n\t\t}\n\n\t\treturn html`\n\t\t\t<nav\n\t\t\t\tstyle=${this.styleMap(styleMap)}\n\t\t\t\tclass=\"${this.classMap({ ...sidebarClasses })}\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.container,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</nav>\n\t\t\t<div\n\t\t\t\tid=\"overlay\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.scrim,\n\t\t\t\t})}\n\t\t\t\t@click=${this.handleOverlayClick}\n\t\t\t\tclass=\"${this.classMap({ ...overlayClass })}\"\n\t\t\t></div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-navbar': SchmancyNavigationDrawerSidebar\n\t}\n}\n","import { bufferTime, concatMap, filter, fromEvent, map, of, Subject, take, tap, timeout, zip } from 'rxjs'\nimport { SchmancyTeleportation } from './teleport.component'\n\nexport type WhereAreYouRickyEvent = CustomEvent<{\n\tid: string\n\tcallerID: number\n}>\n\nexport const WhereAreYouRicky = 'whereAreYouRicky'\n\nexport type HereMortyEvent = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\nexport type FLIP_REQUEST = {\n\tfrom: {\n\t\trect: DOMRect\n\t\telement?: HTMLElement\n\t}\n\tto: {\n\t\trect: DOMRect\n\t\telement: HTMLElement\n\t}\n\tstagger?: number\n\thost: HTMLElement\n}\nexport const HereMorty = 'hereMorty'\n\nclass Teleportation {\n\tactiveTeleportations = new Map<string, DOMRect>()\n\tflipRequests = new Subject<FLIP_REQUEST>()\n\n\tconstructor() {\n\t\tthis.flipRequests\n\t\t\t.pipe(\n\t\t\t\tbufferTime(1),\n\t\t\t\tmap(requests =>\n\t\t\t\t\trequests.map(({ from, to, host }, i) => ({\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tto,\n\t\t\t\t\t\thost,\n\t\t\t\t\t\ti,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t\tconcatMap(requests => zip(requests.map(request => of(this.flip(request))))),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tfind = (component: SchmancyTeleportation) => {\n\t\treturn zip([\n\t\t\tfromEvent<HereMortyEvent>(window, HereMorty).pipe(\n\t\t\t\tfilter(\n\t\t\t\t\te =>\n\t\t\t\t\t\t!!e.detail.component.uuid &&\n\t\t\t\t\t\t!!component.id &&\n\t\t\t\t\t\te.detail.component.id === component.id &&\n\t\t\t\t\t\te.detail.component.uuid !== component.uuid,\n\t\t\t\t),\n\t\t\t\tmap(e => e.detail.component),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\tof(component).pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent<WhereAreYouRickyEvent['detail']>(WhereAreYouRicky, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\tid: component.id,\n\t\t\t\t\t\t\t\tcallerID: component.uuid,\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),\n\t\t]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(0),\n\t\t)\n\t}\n\n\tflip = (request: {\n\t\tfrom: {\n\t\t\trect: DOMRect\n\t\t}\n\t\tto: {\n\t\t\telement: HTMLElement\n\t\t\trect: DOMRect\n\t\t}\n\t\thost: HTMLElement\n\t\ti: number\n\t}) => {\n\t\tconst { from, to } = request\n\n\t\t// Prepare the element for animation\n\t\tconst originalZIndex = to.element.style.zIndex\n\t\tto.element.style.transformOrigin = 'top left'\n\t\tto.element.style.setProperty('visibility', 'visible')\n\t\tto.element.style.zIndex = '1000'\n\n\t\t// \"onBegin\" logic goes here (since Web Animations doesn't have onBegin).\n\t\t// If you had more logic, place it here:\n\t\t// e.g., console.log('Starting FLIP animation...');\n\n\t\t// Calculate starting and ending transforms\n\t\tconst startX = from.rect.left - to.rect.left\n\t\tconst startY = from.rect.top - to.rect.top\n\t\tconst startScaleX = from.rect.width / to.rect.width\n\t\tconst startScaleY = from.rect.height / to.rect.height\n\n\t\t// Create keyframes\n\t\tconst keyframes: Keyframe[] = [\n\t\t\t{\n\t\t\t\ttransform: `translate(${startX}px, ${startY}px) scale(${startScaleX}, ${startScaleY})`,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttransform: 'translate(0, 0) scale(1, 1)',\n\t\t\t},\n\t\t]\n\n\t\t// Use native Web Animations API\n\t\tconst animation = to.element.animate(keyframes, {\n\t\t\tduration: 250,\n\t\t\tdelay: 10, // if desired\n\t\t\t// Approximate 'inOutQuad' via a cubic-bezier easing.\n\t\t\t// You can adjust these values to taste, or use a standard one:\n\t\t\teasing: 'cubic-bezier(0.455, 0.03, 0.515, 0.955)',\n\t\t\t// or simply 'ease-in-out'\n\t\t})\n\n\t\t// \"onComplete\" logic goes here\n\t\tanimation.onfinish = () => {\n\t\t\tto.element.style.zIndex = originalZIndex\n\t\t\tto.element.style.transformOrigin = ''\n\t\t\t// If you have additional cleanup, place it here\n\t\t\t// e.g., console.log('FLIP animation completed!');\n\t\t}\n\t}\n}\n\nexport const teleport = new Teleportation()\nexport default teleport\n","import { Observable, interval } from 'rxjs'\nimport { distinctUntilChanged, map, take } from 'rxjs/operators'\n\n// Function to monitor element's bounding client rect\nexport function watchElementRect(element: Element): Observable<DOMRectReadOnly> {\n\treturn interval(50).pipe(\n\t\t// startWith(true),\n\t\tmap(() => element.getBoundingClientRect()),\n\t\tdistinctUntilChanged(\n\t\t\t(prev, curr) =>\n\t\t\t\tprev.width === curr.width &&\n\t\t\t\tprev.height === curr.height &&\n\t\t\t\tprev.top === curr.top &&\n\t\t\t\tprev.right === curr.right &&\n\t\t\t\tprev.bottom === curr.bottom &&\n\t\t\t\tprev.left === curr.left,\n\t\t),\n\t\ttake(1),\n\t)\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { filter, fromEvent, merge, of, takeUntil, tap, throwIfEmpty } from 'rxjs'\nimport { FINDING_MORTIES, FINDING_MORTIES_EVENT, HERE_RICKY, HERE_RICKY_EVENT } from '..'\nimport {\n\tHereMorty,\n\tHereMortyEvent,\n\tWhereAreYouRicky,\n\tWhereAreYouRickyEvent,\n\tdefault as teleport,\n\tdefault as teleportationService,\n} from './teleport.service'\nimport { watchElementRect } from './watcher'\nimport { $LitElement } from '@mixins/index'\n@customElement('schmancy-teleport')\nexport class SchmancyTeleportation extends $LitElement(css``) {\n\t/**\n\t * @attr {string} uuid - The component tag to teleport\n\t * @readonly\n\t */\n\t@property({ type: Number, reflect: true }) uuid = Math.floor(Math.random() * Date.now())\n\n\t/**\n\t * @attr {string} id - The component tag to teleport\n\t * @required\n\t */\n\t@property({ type: String }) id!: string\n\n\t@property({ type: Number }) delay = 0\n\n\tdebugging = import.meta.env.DEV ? true : false\n\n\tget _slottedChildren() {\n\t\tconst slot = this.shadowRoot.querySelector('slot')\n\t\treturn slot.assignedElements({ flatten: true })\n\t}\n\n\tconnectedCallback(): void {\n\t\tif (this.id === undefined) throw new Error('id is required')\n\t\tsuper.connectedCallback()\n\t\tmerge(\n\t\t\tfromEvent<FINDING_MORTIES_EVENT>(window, FINDING_MORTIES).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent<HERE_RICKY_EVENT['detail']>(HERE_RICKY, {\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tcomposed: true,\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),\n\t\t\tfromEvent<WhereAreYouRickyEvent>(window, WhereAreYouRicky).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: e => {\n\t\t\t\t\t\tif (e.detail.id === this.id && this.uuid && e.detail.callerID !== this.uuid) {\n\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\tnew CustomEvent<HereMortyEvent['detail']>(HereMorty, {\n\t\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\tcomposed: true,\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\t\t\t),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\tasync firstUpdated() {\n\t\tof(teleportationService.activeTeleportations.get(this.id))\n\t\t\t.pipe(\n\t\t\t\tfilter(a => !!a),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tthrowIfEmpty(),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: domRect => {\n\t\t\t\t\tconsole.count('teleport')\n\t\t\t\t\tthis.style.setProperty('visibility', 'hidden')\n\t\t\t\t\t// teleport.flipRequests.next({ from: component, to: this, stagger: 0 })\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\t// console.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t\tteleport.flipRequests.next({\n\t\t\t\t\t\t\t\t\tfrom: {\n\t\t\t\t\t\t\t\t\t\trect: domRect,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tto: {\n\t\t\t\t\t\t\t\t\t\trect: e,\n\t\t\t\t\t\t\t\t\t\telement: this._slottedChildren[0] as HTMLElement,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\thost: this,\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},\n\t\t\t\terror: () => {\n\t\t\t\t\tthis.style.setProperty('visibility', 'visible')\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tcomplete: () => {},\n\t\t\t})\n\t}\n\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-teleport': SchmancyTeleportation\n\t}\n}\n"],"names":["SchmancyCardMedia","TailwindElement","css","html","customElement","SchmancyCard","constructor","super","arguments","this","type","elevation","classes","includes","classMap","__decorateClass","property","prototype","Number","SchmancyCardContent","render","onSurface","SchmancyTheme","sys","color","surface","on","onSurfaceVariant","onVariant","src","fit","styleMap","height","String","reflect","schmancyContentDrawer","$drawer","Subject","pipe","subscribe","data","action","ref","dispatchEvent","CustomEvent","SchmancyEvents","ContentDrawerToggle","detail","state","bubbles","composed","component","title","next","e","SchmancyContentDrawerSheetMode","createContext","SchmancyContentDrawerSheetState","SchmancyContentDrawerID","Math","floor","random","Date","now","toString","SchmancyContentDrawerMaxHeight","SchmancyContentDrawerMinWidth","SchmancyContentDrawer","$LitElement","minWidth","main","sheet","schmancyContentDrawerID","maxHeight","merge","fromEvent","window","ContentDrawerResize","startWith","tap","map","clientWidth","innerWidth","width","debounceTime","innerHeight","getOffsetTop","style","setProperty","distinctUntilChanged","takeUntil","disconnecting","lgScreen","mode","open","event","stopPropagation","area","push","historyStrategy","uid","element","offsetTop","offsetParent","nothing","provide","context","queryAssignedElements","flatten","SchmancyContentDrawerMain","connectedCallback","drawerMinWidth","changedProperties","update","has","styles","when","consume","SchmancyContentDrawerSheet","updated","closeAll","dismiss","position","display","animate","opacity","transform","duration","easing","from","closeModalSheet","closeSheet","of","Observable","observer","onfinish","complete","sheetClasses","block","query","slot","schmancyNavDrawer","NavDrawer_toggle","self","SchmancyDrawerNavbarMode","SchmancyDrawerNavbarState","SchmancyDrawerAppbar","toggler","sidebarToggler","sidebarMode","hidden","sidebarOpen","Boolean","SchmancyNavigationDrawerContent","parentElement","SchmancyNavigationDrawer","fullscreen","breakpoint","_initialized","firstUpdated","updateState","setAttribute","target","BREAKPOINTS","isLargeScreen","fullHeight","sm","md","lg","xl","attribute","ANIMATION_EASING","SchmancyNavigationDrawerSidebar","drawerState","nav","overlay","openOverlay","showNavDrawer","hideNavDrawer","closeOverlay","fill","handleOverlayClick","sidebarClasses","bgColor","container","scrim","WhereAreYouRicky","HereMorty","teleport","activeTeleportations","Map","flipRequests","find","zip","filter","uuid","id","take","callerID","timeout","flip","request","to","originalZIndex","zIndex","transformOrigin","keyframes","rect","left","top","delay","bufferTime","requests","host","i","concatMap","watchElementRect","interval","getBoundingClientRect","prev","curr","right","bottom","SchmancyTeleportation","debugging","shadowRoot","querySelector","assignedElements","Error","FINDING_MORTIES","HERE_RICKY","teleportationService","get","a","throwIfEmpty","domRect","set","_slottedChildren","error"],"mappings":"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"}
1
+ {"version":3,"file":"teleport.component-5h9nuQcu.js","sources":["../src/card/actions.ts","../src/card/card.ts","../src/card/content.ts","../src/card/media.ts","../src/content-drawer/$sheet.ts","../src/content-drawer/context.ts","../src/content-drawer/drawer.ts","../src/content-drawer/main.ts","../src/content-drawer/sheet.ts","../src/nav-drawer/$navbar.ts","../src/nav-drawer/context.ts","../src/nav-drawer/appbar.ts","../src/nav-drawer/content.ts","../src/nav-drawer/drawer.ts","../src/nav-drawer/navbar.ts","../src/teleport/teleport.service.ts","../src/teleport/watcher.ts","../src/teleport/teleport.component.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-action\n * @slot - The content of the action\n */\n@customElement('schmancy-card-action')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html` <section class=\"pb-4 px-4\"><slot> </slot></section> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-action': SchmancyCardMedia\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-card')\nexport default class SchmancyCard extends TailwindElement() {\n\t@property() type: 'elevated' | 'filled' | 'outlined' = 'elevated'\n\t@property({ type: Number }) elevation: 0 | 1 | 2 | 3 | 4 | 5 = 0\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'rounded-md': true,\n\t\t\t'shadow-xs': this.elevation === 1,\n\t\t\t'shadow-sm': this.elevation === 2,\n\t\t\t'shadow-md': this.elevation === 3,\n\t\t\t'shadow-lg': this.elevation === 4,\n\t\t\t'shadow-5': this.elevation === 5,\n\t\t\t'hover:shadow-xs': ['outlined', 'filled'].includes(this.type),\n\t\t\t'bg-surface-low shadow-xs hover:shadow-sm': this.type === 'elevated',\n\t\t\t'bg-surface-highest': this.type === 'filled',\n\t\t\t'bg-surface-default border border-solid border-1 border-outlineVariant': this.type === 'outlined',\n\t\t}\n\t\treturn html`<div class=\"${this.classMap(classes)}\">\n\t\t\t<slot> </slot>\n\t\t</div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card': SchmancyCard\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { color } from '..'\n\n/**\n * @element schmancy-card-content\n * @slot headline\n * @slot subhead\n * @slot default - The content of the card\n */\n@customElement('schmancy-card-content')\nexport default class SchmancyCardContent extends TailwindElement() {\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'px-[16px] py-[24px]': true,\n\t\t}\n\t\tconst onSurface = SchmancyTheme.sys.color.surface.on\n\t\tconst onSurfaceVariant = SchmancyTheme.sys.color.surface.onVariant\n\t\treturn html`<schmancy-grid gap=\"md\" class=\"${this.classMap(classes)}\">\n\t\t\t<schmancy-grid gap=\"xs\">\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurface,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\ttoken=\"lg\"\n\t\t\t\t\t><slot name=\"headline\"> </slot\n\t\t\t\t></schmancy-typography>\n\t\t\t\t<schmancy-typography\n\t\t\t\t\t${color({\n\t\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t\t})}\n\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t><slot name=\"subhead\"></slot>\n\t\t\t\t</schmancy-typography>\n\t\t\t</schmancy-grid>\n\t\t\t<schmancy-typography\n\t\t\t\ttype=\"body\"\n\t\t\t\t${color({\n\t\t\t\t\tcolor: onSurfaceVariant,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-typography>\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-content': SchmancyCardContent\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * @element schmancy-card-media\n */\n@customElement('schmancy-card-media')\nexport default class SchmancyCardMedia extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tsrc: string = ''\n\n\t@property({ type: String })\n\tfit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain'\n\n\tprotected render(): unknown {\n\t\tconst styles = {\n\t\t\theight: '200px',\n\t\t}\n\t\tconst classes = {\n\t\t\t'object-center': true,\n\t\t\t'object-contain': this.fit === 'contain',\n\t\t\t'object-cover w-full': this.fit === 'cover',\n\t\t\t'object-fill': this.fit === 'fill',\n\t\t\t'object-none': this.fit === 'none',\n\t\t\t'object-scale-down': this.fit === 'scale-down',\n\t\t}\n\t\treturn html`<schmancy-grid align=\"stretch\" justify=\"stretch\" gap=\"md\">\n\t\t\t<img src=\"${this.src}\" style=${this.styleMap(styles)} class=\"${this.classMap(classes)}\" />\n\t\t</schmancy-grid>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-card-media': SchmancyCardMedia\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { Subject } from 'rxjs'\n\ntype DrawerAction = 'dismiss' | 'render'\ntype TRef = Element | Window\ntype TRenderRequest = HTMLElement\nexport type TRenderCustomEvent = CustomEvent<{\n\tcomponent: TRenderRequest\n\ttitle?: string\n}>\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tref: TRef\n\t\taction: DrawerAction\n\t\tcomponent?: TRenderRequest\n\t\ttitle?: string\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe().subscribe(data => {\n\t\t\tif (data.action === 'dismiss') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else if (data.action === 'render') {\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.ContentDrawerToggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tdata.ref.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-content-drawer-render', {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tcomponent: data.component,\n\t\t\t\t\t\t\ttitle: data.title,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\n\tdimiss(ref: TRef) {\n\t\tthis.$drawer.next({\n\t\t\taction: 'dismiss',\n\t\t\tref: ref,\n\t\t})\n\t}\n\n\trender(ref: TRef, component: TRenderRequest, title?: string) {\n\t\tref.dispatchEvent(new CustomEvent('custom-event'))\n\t\tthis.$drawer.next({\n\t\t\taction: 'render',\n\t\t\tref: ref,\n\t\t\tcomponent: component,\n\t\t\ttitle,\n\t\t})\n\t}\n}\n\nexport const schmancyContentDrawer = new Drawer()\n","import { createContext } from '@lit/context'\nexport type TSchmancyContentDrawerSheetMode = 'push' | 'overlay'\nexport const SchmancyContentDrawerSheetMode = createContext<TSchmancyContentDrawerSheetMode>('push')\n\nexport type TSchmancyContentDrawerSheetState = 'open' | 'close'\nexport const SchmancyContentDrawerSheetState = createContext<TSchmancyContentDrawerSheetState>('close')\n\nexport const SchmancyContentDrawerID = createContext<string>(Math.floor(Math.random() * Date.now()).toString())\nexport const SchmancyContentDrawerMaxHeight = createContext<string>('100%')\nexport const SchmancyContentDrawerMinWidth = createContext<{\n\tmain: number\n\tsheet: number\n}>({})\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, merge, startWith, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, TRenderCustomEvent, area, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n/**\n * @element schmancy-content-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-content-drawer')\nexport class SchmancyContentDrawer extends $LitElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tinset: 0;\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t/**\n\t * The minimum width of the sheet\n\t * @attr\tminWidth\n\t * @type {number}\n\t * @memberof SchmancyContentDrawer\n\t */\n\n\t@provide({ context: SchmancyContentDrawerMinWidth })\n\tminWidth: typeof SchmancyContentDrawerMinWidth.__context__ = {\n\t\tmain: 360,\n\t\tsheet: 576,\n\t}\n\n\t/**\n\t * The state of the sheet\n\t * @attr open\n\t * @type {TSchmancyContentDrawerSheetState}\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetState })\n\t@property()\n\topen: TSchmancyContentDrawerSheetState\n\n\t/**\n\t * The mode of the sheet\n\t * @type {TSchmancyContentDrawerSheetMode}\n\t * @memberof SchmancyContentDrawer\n\t * @protected\n\t */\n\t@provide({ context: SchmancyContentDrawerSheetMode })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@provide({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID = Math.floor(Math.random() * Date.now()).toString()\n\n\t@provide({ context: SchmancyContentDrawerMaxHeight })\n\tmaxHeight = '100%'\n\n\t@queryAssignedElements({ flatten: true })\n\tassignedElements!: HTMLElement[]\n\tfirstUpdated(): void {\n\t\tmerge(fromEvent<CustomEvent>(window, 'resize'), fromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerResize))\n\t\t\t.pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\ttap(() => console.log(this.minWidth)),\n\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\tmap(width => width >= this.minWidth.main + this.minWidth.sheet),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.maxHeight = `${window.innerHeight - this.getOffsetTop(this) - 32}px`\n\t\t\t\t\tthis.style.setProperty('max-height', this.maxHeight)\n\t\t\t\t}),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(lgScreen => {\n\t\t\t\tif (lgScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t/*\n\t\t * Listen to the toggle event\n\t\t */\n\t\tfromEvent<CustomEvent>(window, SchmancyEvents.ContentDrawerToggle)\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail.state),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tthis.open = state\n\t\t\t})\n\n\t\tfromEvent<TRenderCustomEvent>(window, 'schmancy-content-drawer-render')\n\t\t\t.pipe(\n\t\t\t\ttap(event => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(event => event.detail),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(({ component, title }) => {\n\t\t\t\tif (this.mode === 'push') {\n\t\t\t\t\t// TODO: Fix the router to render if constructor has different arguments\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: 'empty',\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t\tarea.push({\n\t\t\t\t\t\tarea: this.schmancyContentDrawerID,\n\t\t\t\t\t\tcomponent: component,\n\t\t\t\t\t\thistoryStrategy: 'silent',\n\t\t\t\t\t})\n\t\t\t\t} else if ((this.mode = 'overlay')) {\n\t\t\t\t\tsheet.open({ component: component, uid: this.schmancyContentDrawerID, title })\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tgetOffsetTop(element) {\n\t\tlet offsetTop = 0\n\t\twhile (element) {\n\t\t\toffsetTop += element.offsetTop\n\t\t\telement = element.offsetParent\n\t\t}\n\t\treturn offsetTop\n\t}\n\n\tprotected render() {\n\t\tif (!this.mode || !this.open) return nothing\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.mode === 'overlay' ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer': SchmancyContentDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { PropertyValueMap, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyEvents } from '..'\nimport {\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetMode,\n} from './context'\nimport { when } from 'lit/directives/when.js'\n\n@customElement('schmancy-content-drawer-main')\nexport class SchmancyContentDrawerMain extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) this.drawerMinWidth.main = this.minWidth\n\t\telse this.minWidth = this.drawerMinWidth.main\n\t}\n\n\tprotected update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\t\tsuper.update(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\tthis.drawerMinWidth.main = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t}\n\t}\n\n\trender() {\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"relative inset-0 h-full\">\n\t\t\t\t<schmancy-grid\n\t\t\t\t\tclass=\"h-full relative overflow-scroll\"\n\t\t\t\t\tcols=\"${this.mode === 'push' ? 'auto 1fr' : '1fr'}\"\n\t\t\t\t\trows=\"1fr\"\n\t\t\t\t\tflow=\"col\"\n\t\t\t\t\talign=\"stretch\"\n\t\t\t\t\tjustify=\"stretch\"\n\t\t\t\t>\n\t\t\t\t\t<section style=${this.styleMap(styles)}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</section>\n\t\t\t\t</schmancy-grid>\n\t\t\t\t${when(\n\t\t\t\t\tthis.mode === 'push',\n\t\t\t\t\t() => html` <schmancy-divider class=\"absolute right-0 top-0\" orientation=\"vertical\"></schmancy-divider>`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-main': SchmancyContentDrawerMain\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, merge, Observable, of, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents, sheet } from '..'\nimport {\n\tSchmancyContentDrawerID,\n\tSchmancyContentDrawerMaxHeight,\n\tSchmancyContentDrawerMinWidth,\n\tSchmancyContentDrawerSheetMode,\n\tSchmancyContentDrawerSheetState,\n\tTSchmancyContentDrawerSheetMode,\n\tTSchmancyContentDrawerSheetState,\n} from './context'\n\n// --- 1) Removed the custom animate import\n// import { animate } from '@packages/anime-beta-master'\n\n@customElement('schmancy-content-drawer-sheet')\nexport class SchmancyContentDrawerSheet extends $LitElement(css`\n\t:host {\n\t\toverflow: scroll;\n\t}\n`) {\n\t@property({ type: Number })\n\tminWidth\n\n\t@consume({ context: SchmancyContentDrawerSheetMode, subscribe: true })\n\t@state()\n\tmode: TSchmancyContentDrawerSheetMode\n\n\t@consume({ context: SchmancyContentDrawerSheetState, subscribe: true })\n\t@state()\n\tstate: TSchmancyContentDrawerSheetState\n\n\t@consume({ context: SchmancyContentDrawerID })\n\tschmancyContentDrawerID\n\n\t@query('#sheet') sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true, slot: undefined }) defaultSlot!: HTMLElement[]\n\n\t@consume({ context: SchmancyContentDrawerMinWidth, subscribe: true })\n\tdrawerMinWidth: typeof SchmancyContentDrawerMinWidth.__context__\n\n\t@consume({ context: SchmancyContentDrawerMaxHeight, subscribe: true })\n\t@state()\n\tmaxHeight\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tif (this.minWidth) {\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t} else {\n\t\t\tthis.minWidth = this.drawerMinWidth.sheet\n\t\t}\n\t}\n\n\tupdated(changedProperties: Map<string, any>) {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('minWidth') && this.minWidth) {\n\t\t\t// If the 'minWidth' property changed\n\t\t\tthis.drawerMinWidth.sheet = this.minWidth\n\t\t\tthis.dispatchEvent(new CustomEvent(SchmancyEvents.ContentDrawerResize, { bubbles: true, composed: true }))\n\t\t} else if (changedProperties.has('state') || changedProperties.has('mode')) {\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\t// Overlay open logic if needed\n\t\t\t\t\t// this.open()\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tsheet.dismiss(this.schmancyContentDrawerID)\n\t\t\t\tif (this.state === 'close') {\n\t\t\t\t\tthis.closeAll()\n\t\t\t\t} else if (this.state === 'open') {\n\t\t\t\t\tthis.open()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Open the sheet by sliding it into view.\n\t */\n\topen() {\n\t\t// \"onBegin\" logic from the old `animate(...)`\n\t\tif (this.mode === 'overlay') {\n\t\t\tthis.sheet.style.position = 'fixed'\n\t\t} else {\n\t\t\tthis.sheet.style.position = 'relative'\n\t\t}\n\t\tthis.sheet.style.display = 'block'\n\n\t\t// --- 2) Use native Web Animations API ---\n\t\tthis.sheet.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'translateX(100%)' },\n\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 500,\n\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t},\n\t\t)\n\t\t// No return is needed if you don't rely on the result\n\t}\n\n\t/**\n\t * Close everything (modal sheet + the sheet itself).\n\t */\n\tcloseAll() {\n\t\t// Merge them into a single subscription,\n\t\t// so that everything closes in parallel.\n\t\tmerge(from(this.closeModalSheet()), from(this.closeSheet())).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\t/**\n\t * Dismiss the \"modal sheet.\"\n\t * This just returns an Observable that completes immediately.\n\t */\n\tcloseModalSheet() {\n\t\treturn of(true).pipe(tap(() => sheet.dismiss(this.schmancyContentDrawerID)))\n\t}\n\n\t/**\n\t * Slide the sheet out of view + hide it.\n\t * Return an Observable so we can merge it with other close operations.\n\t */\n\tcloseSheet() {\n\t\t// --- 2) Use native Web Animations API and wrap in an Observable ---\n\t\treturn new Observable<void>(observer => {\n\t\t\tconst animation = this.sheet.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(0%)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateX(100%)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 500,\n\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tanimation.onfinish = () => {\n\t\t\t\t// \"onComplete\" logic\n\t\t\t\tthis.sheet.style.display = 'none'\n\t\t\t\tobserver.next()\n\t\t\t\tobserver.complete()\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected render() {\n\t\tconst sheetClasses = {\n\t\t\tblock: this.mode === 'push',\n\t\t\t'absolute z-50': this.mode === 'overlay',\n\t\t\t'opacity-1': this.mode === 'overlay' && this.state === 'open',\n\t\t}\n\n\t\tconst styles = {\n\t\t\tminWidth: `${this.minWidth}px`,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"sheet\" class=\"${this.classMap(sheetClasses)}\" style=${this.styleMap(styles)}>\n\t\t\t\t<schmancy-area name=\"${this.schmancyContentDrawerID}\">\n\t\t\t\t\t<slot name=\"placeholder\"></slot>\n\t\t\t\t</schmancy-area>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-content-drawer-sheet': SchmancyContentDrawerSheet\n\t}\n}\n","import { SchmancyEvents } from '@schmancy/types/events'\nimport { debounceTime, Subject } from 'rxjs'\n\nclass Drawer {\n\tprivate $drawer = new Subject<{\n\t\tself: HTMLElement\n\t\tstate: boolean\n\t}>()\n\tconstructor() {\n\t\tthis.$drawer.pipe(debounceTime(10)).subscribe(data => {\n\t\t\tif (data.state) {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'open',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tstate: 'close',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n\topen(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: true,\n\t\t})\n\t}\n\tclose(self?: HTMLElement) {\n\t\tthis.$drawer.next({\n\t\t\tself,\n\t\t\tstate: false,\n\t\t})\n\t}\n}\n\nexport const schmancyNavDrawer = new Drawer()\nconst $drawer = schmancyNavDrawer\n\nexport { $drawer }\n","import { createContext } from '@lit/context'\nexport type TSchmancyDrawerNavbarMode = 'push' | 'overlay' | undefined\nexport const SchmancyDrawerNavbarMode = createContext<TSchmancyDrawerNavbarMode>('push')\n\nexport type TSchmancyDrawerNavbarState = 'open' | 'close' | undefined\nexport const SchmancyDrawerNavbarState = createContext<TSchmancyDrawerNavbarState>('close')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n} from '@schmancy/nav-drawer/context'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { SchmancyEvents } from '..'\n\n/**\n * @element schmancy-nav-drawer-appbar\n * @slot toggler - The toggler slot\n * @slot - The default slot\n */\n@customElement('schmancy-nav-drawer-appbar')\nexport class SchmancyDrawerAppbar extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tsidebarMode: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tsidebarOpen\n\n\t@property({ type: Boolean }) toggler = true\n\n\trender() {\n\t\tconst appbarClasses = {\n\t\t\t'block z-50': true,\n\t\t}\n\t\tconst sidebarToggler = {\n\t\t\t'block left-3 z-50': this.sidebarMode === 'overlay',\n\t\t\thidden: this.sidebarMode === 'push',\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.sidebarMode === 'overlay' && this.toggler ? 'auto 1fr' : '1fr'}\n\t\t\t\tflow=\"col\"\n\t\t\t\tclass=${this.classMap(appbarClasses)}\n\t\t\t\tgap=\"sm\"\n\t\t\t\talign=\"center\"\n\t\t\t>\n\t\t\t\t${when(\n\t\t\t\t\tthis.sidebarMode === 'overlay' && this.toggler,\n\t\t\t\t\t() =>\n\t\t\t\t\t\thtml`<slot name=\"toggler\">\n\t\t\t\t\t\t\t<div class=\"${this.classMap(sidebarToggler)}\">\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\t\t\t\t\t\t\t\t\tdetail: { state: this.sidebarOpen === 'open' ? 'close' : 'open' },\n\t\t\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t)\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\t${when(\n\t\t\t\t\t\t\t\t\t\tthis.sidebarOpen === 'close',\n\t\t\t\t\t\t\t\t\t\t() => html`menu`,\n\t\t\t\t\t\t\t\t\t\t() => html`menu_open`,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>`,\n\t\t\t\t)}\n\n\t\t\t\t<slot> </slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-appbar': SchmancyDrawerAppbar\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-nav-drawer-content')\nexport class SchmancyNavigationDrawerContent extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tinset: 0;\n\t\toverflow-y: auto;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'scroll')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\tthis.parentElement.dispatchEvent(new CustomEvent('scroll', { detail: e, bubbles: true, composed: true }))\n\t\t\t})\n\t}\n\trender() {\n\t\treturn html` <slot></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-content': SchmancyNavigationDrawerContent\n\t}\n}\n","import { provide } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { css, html, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, takeUntil, tap } from 'rxjs'\nimport { SchmancyEvents } from '..'\nimport { fullHeight } from './../directives/height'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n/**\n * @element schmancy-nav-drawer\n * @slot appbar - The appbar slot\n * @slot - The content slot\n */\n@customElement('schmancy-nav-drawer')\nexport class SchmancyNavigationDrawer extends $LitElement(css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\t/* Initially hide the component until it’s ready */\n\t\tvisibility: hidden;\n\t}\n\t/* Once the component is ready, remove the hidden style */\n\t:host([data-ready]) {\n\t\tvisibility: visible;\n\t}\n`) {\n\t// fullscreen property\n\t@property({ type: Boolean })\n\tfullscreen: boolean = false\n\n\t/**\n\t * The breakpoint for the sidebar based on Tailwind CSS breakpoints.\n\t * Accepts: \"sm\", \"md\", \"lg\", or \"xl\".\n\t *\n\t * The following default values are used:\n\t * - sm: 640px\n\t * - md: 768px (default)\n\t * - lg: 1024px\n\t * - xl: 1280px\n\t *\n\t * @attr breakpoint\n\t * @type {\"sm\" | \"md\" | \"lg\" | \"xl\"}\n\t */\n\t@property({ type: String, attribute: 'breakpoint' })\n\tbreakpoint: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n\t/**\n\t * Mapping of Tailwind breakpoint tokens to their numeric pixel values.\n\t */\n\tprivate static BREAKPOINTS: Record<'sm' | 'md' | 'lg' | 'xl', number> = {\n\t\tsm: 640,\n\t\tmd: 768,\n\t\tlg: 1024,\n\t\txl: 1280,\n\t}\n\n\t/**\n\t * The mode of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarMode })\n\t@state()\n\tmode: TSchmancyDrawerNavbarMode\n\n\t/**\n\t * The open/close state of the sidebar.\n\t */\n\t@provide({ context: SchmancyDrawerNavbarState })\n\t@property()\n\topen: TSchmancyDrawerNavbarState\n\n\t/**\n\t * A flag indicating that the initial state has been set.\n\t */\n\t@state()\n\tprivate _initialized = false\n\n\t/**\n\t * In firstUpdated, we can safely read attribute-set properties.\n\t * We also initialize our state and subscribe to events.\n\t */\n\tfirstUpdated() {\n\t\t// Set the initial state based on the current window width.\n\t\tthis.updateState(window.innerWidth)\n\t\t// Mark the component as ready\n\t\tthis._initialized = true\n\t\tthis.setAttribute('data-ready', '')\n\n\t\t// Subscribe to window resize events.\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\t// Extract the inner width.\n\t\t\t\tmap(event => (event.target as Window).innerWidth),\n\t\t\t\t// Determine if we're above the breakpoint.\n\t\t\t\tmap(width => width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tdebounceTime(100),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(isLargeScreen => {\n\t\t\t\tif (isLargeScreen) {\n\t\t\t\t\tthis.mode = 'push'\n\t\t\t\t\tthis.open = 'open'\n\t\t\t\t} else {\n\t\t\t\t\tthis.mode = 'overlay'\n\t\t\t\t\tthis.open = 'close'\n\t\t\t\t}\n\t\t\t})\n\n\t\t// Listen to the custom toggle event.\n\t\tfromEvent(window, SchmancyEvents.NavDrawer_toggle)\n\t\t\t.pipe(\n\t\t\t\ttap((event: CustomEvent) => {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap((event: CustomEvent) => event.detail.state),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tdebounceTime(10),\n\t\t\t)\n\t\t\t.subscribe(state => {\n\t\t\t\tconsole.log('Received toggle event:', state)\n\t\t\t\t// When in push mode, ignore a request to close the sidebar.\n\t\t\t\tif (this.mode === 'push' && state === 'close') return\n\t\t\t\tthis.open = state\n\t\t\t})\n\t}\n\n\t/**\n\t * Helper method to update state based on a given width.\n\t */\n\tprivate updateState(width: number) {\n\t\tconst isLargeScreen = width >= SchmancyNavigationDrawer.BREAKPOINTS[this.breakpoint]\n\t\tthis.mode = isLargeScreen ? 'push' : 'overlay'\n\t\tthis.open = isLargeScreen ? 'open' : 'close'\n\t}\n\n\tprotected render() {\n\t\t// Optionally, you can check _initialized here,\n\t\t// but the CSS will already hide the component until it's ready.\n\t\tif (!this._initialized) return nothing\n\n\t\treturn html`\n\t\t\t<schmancy-grid\n\t\t\t\tcols=${this.fullscreen ? '1fr' : 'auto 1fr'}\n\t\t\t\trows=\"1fr\"\n\t\t\t\tflow=\"col\"\n\t\t\t\tjustify=\"stretch\"\n\t\t\t\talign=\"stretch\"\n\t\t\t\t${fullHeight()}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-grid>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer': SchmancyNavigationDrawer\n\t}\n}\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { SchmancyEvents, SchmancyTheme, color } from '..'\nimport {\n\tSchmancyDrawerNavbarMode,\n\tSchmancyDrawerNavbarState,\n\tTSchmancyDrawerNavbarMode,\n\tTSchmancyDrawerNavbarState,\n} from './context'\n\n// Animation configuration constants.\nconst ANIMATION_EASING = 'cubic-bezier(0.5, 0.01, 0.25, 1)'\nconst OVERLAY_ANIM_DURATION_OPEN = 200\nconst OVERLAY_ANIM_DURATION_CLOSE = 150\nconst NAV_ANIM_DURATION = 200\n\n@customElement('schmancy-nav-drawer-navbar')\nexport class SchmancyNavigationDrawerSidebar extends $LitElement() {\n\t// Consume context values. Renamed from \"state\" to \"drawerState\" to avoid confusion.\n\t@consume({ context: SchmancyDrawerNavbarMode, subscribe: true })\n\t@state()\n\tmode!: TSchmancyDrawerNavbarMode\n\n\t@consume({ context: SchmancyDrawerNavbarState, subscribe: true })\n\t@state()\n\tdrawerState!: TSchmancyDrawerNavbarState\n\n\t@query('#overlay') overlay!: HTMLElement\n\t@query('nav') nav!: HTMLElement\n\n\t@property({ type: String }) width = '320px'\n\t@state() private _initialized = false\n\n\t/**\n\t * firstUpdated()\n\t * Set initial styles based on the current mode and consumed state.\n\t */\n\tfirstUpdated() {\n\t\tif (this.mode === 'overlay') {\n\t\t\tif (this.drawerState === 'close') {\n\t\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t\t\tthis.overlay.style.display = 'none'\n\t\t\t} else if (this.drawerState === 'open') {\n\t\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\t\tthis.overlay.style.display = 'block'\n\t\t\t\tthis.overlay.style.opacity = '0.4'\n\t\t\t}\n\t\t} else if (this.mode === 'push') {\n\t\t\t// In push mode, the nav is always visible and the overlay hidden.\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t\tthis._initialized = true\n\t}\n\n\t/**\n\t * updated()\n\t * Trigger animations when either the consumed mode or state changes.\n\t */\n\tupdated(changedProperties: Map<string, any>) {\n\t\tconsole.log(this._initialized, changedProperties)\n\t\tif (!this._initialized) return\n\n\t\tif (changedProperties.has('drawerState') || changedProperties.has('mode')) {\n\t\t\tconsole.log('State updated:', this.drawerState, this.mode)\n\t\t\tif (this.mode === 'overlay') {\n\t\t\t\tif (this.drawerState === 'open') {\n\t\t\t\t\t// Animate only if the nav isn’t already open.\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\t\tthis.openOverlay()\n\t\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t\t}\n\t\t\t\t} else if (this.drawerState === 'close') {\n\t\t\t\t\tconsole.log(this.nav.style.transform)\n\t\t\t\t\tif (this.nav.style.transform !== 'translateX(-100%)') {\n\t\t\t\t\t\tthis.hideNavDrawer()\n\t\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.mode === 'push') {\n\t\t\t\tif (this.nav.style.transform !== 'translateX(0)') {\n\t\t\t\t\tthis.showNavDrawer()\n\t\t\t\t}\n\t\t\t\tif (this.overlay.style.display !== 'none') {\n\t\t\t\t\tthis.closeOverlay()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Animate the overlay to fade in.\n\t */\n\topenOverlay() {\n\t\tthis.overlay.style.display = 'block'\n\t\tthis.overlay.animate([{ opacity: 0 }, { opacity: 0.4 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_OPEN,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t}\n\n\t/**\n\t * Animate the overlay to fade out, then hide it.\n\t */\n\tcloseOverlay() {\n\t\tconst animation = this.overlay.animate([{ opacity: 0.4 }, { opacity: 0 }], {\n\t\t\tduration: OVERLAY_ANIM_DURATION_CLOSE,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.overlay.style.display = 'none'\n\t\t}\n\t}\n\tshowNavDrawer() {\n\t\t// Use computed style if needed, but here we directly update inline style after animation.\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(-100%)' }, { transform: 'translateX(0)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(0)'\n\t\t}\n\t}\n\n\thideNavDrawer() {\n\t\tconst animation = this.nav.animate([{ transform: 'translateX(0)' }, { transform: 'translateX(-100%)' }], {\n\t\t\tduration: NAV_ANIM_DURATION,\n\t\t\teasing: ANIMATION_EASING,\n\t\t\tfill: 'forwards',\n\t\t})\n\t\tanimation.onfinish = () => {\n\t\t\tthis.nav.style.transform = 'translateX(-100%)'\n\t\t}\n\t}\n\n\t/**\n\t * Handle overlay click events by dispatching a custom event\n\t * to close the navigation drawer.\n\t */\n\tprivate handleOverlayClick() {\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent(SchmancyEvents.NavDrawer_toggle, {\n\t\t\t\tdetail: { state: 'close' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprotected render() {\n\t\tconst sidebarClasses = {\n\t\t\t'p-[16px] max-w-[360px] w-fit h-full overflow-auto': true,\n\t\t\tblock: this.mode === 'push',\n\t\t\t'fixed inset-0 z-50': this.mode === 'overlay',\n\t\t}\n\t\tconst overlayClass = {\n\t\t\t'fixed inset-0 z-49 hidden': true,\n\t\t}\n\t\tconst styleMap = {\n\t\t\twidth: this.width,\n\t\t}\n\n\t\treturn html`\n\t\t\t<nav\n\t\t\t\tstyle=${this.styleMap(styleMap)}\n\t\t\t\tclass=\"${this.classMap({ ...sidebarClasses })}\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.container,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</nav>\n\t\t\t<div\n\t\t\t\tid=\"overlay\"\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.scrim,\n\t\t\t\t})}\n\t\t\t\t@click=${this.handleOverlayClick}\n\t\t\t\tclass=\"${this.classMap({ ...overlayClass })}\"\n\t\t\t></div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-nav-drawer-navbar': SchmancyNavigationDrawerSidebar\n\t}\n}\n","import { bufferTime, concatMap, filter, fromEvent, map, of, Subject, take, tap, timeout, zip } from 'rxjs'\nimport { SchmancyTeleportation } from './teleport.component'\n\nexport type WhereAreYouRickyEvent = CustomEvent<{\n\tid: string\n\tcallerID: number\n}>\n\nexport const WhereAreYouRicky = 'whereAreYouRicky'\n\nexport type HereMortyEvent = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\nexport type FLIP_REQUEST = {\n\tfrom: {\n\t\trect: DOMRect\n\t\telement?: HTMLElement\n\t}\n\tto: {\n\t\trect: DOMRect\n\t\telement: HTMLElement\n\t}\n\tstagger?: number\n\thost: HTMLElement\n}\nexport const HereMorty = 'hereMorty'\n\nclass Teleportation {\n\tactiveTeleportations = new Map<string, DOMRect>()\n\tflipRequests = new Subject<FLIP_REQUEST>()\n\n\tconstructor() {\n\t\tthis.flipRequests\n\t\t\t.pipe(\n\t\t\t\tbufferTime(1),\n\t\t\t\tmap(requests =>\n\t\t\t\t\trequests.map(({ from, to, host }, i) => ({\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tto,\n\t\t\t\t\t\thost,\n\t\t\t\t\t\ti,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t\tconcatMap(requests => zip(requests.map(request => of(this.flip(request))))),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tfind = (component: SchmancyTeleportation) => {\n\t\treturn zip([\n\t\t\tfromEvent<HereMortyEvent>(window, HereMorty).pipe(\n\t\t\t\tfilter(\n\t\t\t\t\te =>\n\t\t\t\t\t\t!!e.detail.component.uuid &&\n\t\t\t\t\t\t!!component.id &&\n\t\t\t\t\t\te.detail.component.id === component.id &&\n\t\t\t\t\t\te.detail.component.uuid !== component.uuid,\n\t\t\t\t),\n\t\t\t\tmap(e => e.detail.component),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\tof(component).pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent<WhereAreYouRickyEvent['detail']>(WhereAreYouRicky, {\n\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\tid: component.id,\n\t\t\t\t\t\t\t\tcallerID: component.uuid,\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),\n\t\t]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(0),\n\t\t)\n\t}\n\n\tflip = (request: {\n\t\tfrom: {\n\t\t\trect: DOMRect\n\t\t}\n\t\tto: {\n\t\t\telement: HTMLElement\n\t\t\trect: DOMRect\n\t\t}\n\t\thost: HTMLElement\n\t\ti: number\n\t}) => {\n\t\tconst { from, to } = request\n\n\t\t// Prepare the element for animation\n\t\tconst originalZIndex = to.element.style.zIndex\n\t\tto.element.style.transformOrigin = 'top left'\n\t\tto.element.style.setProperty('visibility', 'visible')\n\t\tto.element.style.zIndex = '1000'\n\n\t\t// \"onBegin\" logic goes here (since Web Animations doesn't have onBegin).\n\t\t// If you had more logic, place it here:\n\t\t// e.g., console.log('Starting FLIP animation...');\n\n\t\t// Calculate starting and ending transforms\n\t\tconst startX = from.rect.left - to.rect.left\n\t\tconst startY = from.rect.top - to.rect.top\n\t\tconst startScaleX = from.rect.width / to.rect.width\n\t\tconst startScaleY = from.rect.height / to.rect.height\n\n\t\t// Create keyframes\n\t\tconst keyframes: Keyframe[] = [\n\t\t\t{\n\t\t\t\ttransform: `translate(${startX}px, ${startY}px) scale(${startScaleX}, ${startScaleY})`,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttransform: 'translate(0, 0) scale(1, 1)',\n\t\t\t},\n\t\t]\n\n\t\t// Use native Web Animations API\n\t\tconst animation = to.element.animate(keyframes, {\n\t\t\tduration: 250,\n\t\t\tdelay: 10, // if desired\n\t\t\t// Approximate 'inOutQuad' via a cubic-bezier easing.\n\t\t\t// You can adjust these values to taste, or use a standard one:\n\t\t\teasing: 'cubic-bezier(0.455, 0.03, 0.515, 0.955)',\n\t\t\t// or simply 'ease-in-out'\n\t\t})\n\n\t\t// \"onComplete\" logic goes here\n\t\tanimation.onfinish = () => {\n\t\t\tto.element.style.zIndex = originalZIndex\n\t\t\tto.element.style.transformOrigin = ''\n\t\t\t// If you have additional cleanup, place it here\n\t\t\t// e.g., console.log('FLIP animation completed!');\n\t\t}\n\t}\n}\n\nexport const teleport = new Teleportation()\nexport default teleport\n","import { Observable, interval } from 'rxjs'\nimport { distinctUntilChanged, map, take } from 'rxjs/operators'\n\n// Function to monitor element's bounding client rect\nexport function watchElementRect(element: Element): Observable<DOMRectReadOnly> {\n\treturn interval(50).pipe(\n\t\t// startWith(true),\n\t\tmap(() => element.getBoundingClientRect()),\n\t\tdistinctUntilChanged(\n\t\t\t(prev, curr) =>\n\t\t\t\tprev.width === curr.width &&\n\t\t\t\tprev.height === curr.height &&\n\t\t\t\tprev.top === curr.top &&\n\t\t\t\tprev.right === curr.right &&\n\t\t\t\tprev.bottom === curr.bottom &&\n\t\t\t\tprev.left === curr.left,\n\t\t),\n\t\ttake(1),\n\t)\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { filter, fromEvent, merge, of, takeUntil, tap, throwIfEmpty } from 'rxjs'\nimport { FINDING_MORTIES, FINDING_MORTIES_EVENT, HERE_RICKY, HERE_RICKY_EVENT } from '..'\nimport {\n\tHereMorty,\n\tHereMortyEvent,\n\tWhereAreYouRicky,\n\tWhereAreYouRickyEvent,\n\tdefault as teleport,\n\tdefault as teleportationService,\n} from './teleport.service'\nimport { watchElementRect } from './watcher'\nimport { $LitElement } from '@mixins/index'\n@customElement('schmancy-teleport')\nexport class SchmancyTeleportation extends $LitElement(css``) {\n\t/**\n\t * @attr {string} uuid - The component tag to teleport\n\t * @readonly\n\t */\n\t@property({ type: Number, reflect: true }) uuid = Math.floor(Math.random() * Date.now())\n\n\t/**\n\t * @attr {string} id - The component tag to teleport\n\t * @required\n\t */\n\t@property({ type: String }) id!: string\n\n\t@property({ type: Number }) delay = 0\n\n\tdebugging = import.meta.env.DEV ? true : false\n\n\tget _slottedChildren() {\n\t\tconst slot = this.shadowRoot.querySelector('slot')\n\t\treturn slot.assignedElements({ flatten: true })\n\t}\n\n\tconnectedCallback(): void {\n\t\tif (this.id === undefined) throw new Error('id is required')\n\t\tsuper.connectedCallback()\n\t\tmerge(\n\t\t\tfromEvent<FINDING_MORTIES_EVENT>(window, FINDING_MORTIES).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\tnew CustomEvent<HERE_RICKY_EVENT['detail']>(HERE_RICKY, {\n\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\tcomposed: true,\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),\n\t\t\tfromEvent<WhereAreYouRickyEvent>(window, WhereAreYouRicky).pipe(\n\t\t\t\ttap({\n\t\t\t\t\tnext: e => {\n\t\t\t\t\t\tif (e.detail.id === this.id && this.uuid && e.detail.callerID !== this.uuid) {\n\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\tnew CustomEvent<HereMortyEvent['detail']>(HereMorty, {\n\t\t\t\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\t\t\t\tcomponent: this,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\tcomposed: true,\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\t\t\t),\n\t\t)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe()\n\t}\n\n\tasync firstUpdated() {\n\t\tof(teleportationService.activeTeleportations.get(this.id))\n\t\t\t.pipe(\n\t\t\t\tfilter(a => !!a),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tthrowIfEmpty(),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: domRect => {\n\t\t\t\t\tconsole.count('teleport')\n\t\t\t\t\tthis.style.setProperty('visibility', 'hidden')\n\t\t\t\t\t// teleport.flipRequests.next({ from: component, to: this, stagger: 0 })\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\t// console.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t\tteleport.flipRequests.next({\n\t\t\t\t\t\t\t\t\tfrom: {\n\t\t\t\t\t\t\t\t\t\trect: domRect,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tto: {\n\t\t\t\t\t\t\t\t\t\trect: e,\n\t\t\t\t\t\t\t\t\t\telement: this._slottedChildren[0] as HTMLElement,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\thost: this,\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},\n\t\t\t\terror: () => {\n\t\t\t\t\tthis.style.setProperty('visibility', 'visible')\n\t\t\t\t\twatchElementRect(this)\n\t\t\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t\t\t.subscribe({\n\t\t\t\t\t\t\tnext: e => {\n\t\t\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t\t\t\tteleportationService.activeTeleportations.set(this.id, e)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tcomplete: () => {},\n\t\t\t})\n\t}\n\n\trender() {\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-teleport': SchmancyTeleportation\n\t}\n}\n"],"names":["SchmancyCardMedia","TailwindElement","css","html","customElement","SchmancyCard","constructor","super","arguments","this","type","elevation","classes","includes","classMap","__decorateClass","property","prototype","Number","SchmancyCardContent","render","onSurface","SchmancyTheme","sys","color","surface","on","onSurfaceVariant","onVariant","src","fit","styleMap","height","String","reflect","schmancyContentDrawer","$drawer","Subject","pipe","subscribe","data","action","ref","dispatchEvent","CustomEvent","SchmancyEvents","ContentDrawerToggle","detail","state","bubbles","composed","component","title","next","e","SchmancyContentDrawerSheetMode","createContext","SchmancyContentDrawerSheetState","SchmancyContentDrawerID","Math","floor","random","Date","now","toString","SchmancyContentDrawerMaxHeight","SchmancyContentDrawerMinWidth","SchmancyContentDrawer","$LitElement","minWidth","main","sheet","schmancyContentDrawerID","maxHeight","merge","fromEvent","window","ContentDrawerResize","startWith","tap","map","clientWidth","innerWidth","width","debounceTime","innerHeight","getOffsetTop","style","setProperty","distinctUntilChanged","takeUntil","disconnecting","lgScreen","mode","open","event","stopPropagation","area","push","historyStrategy","uid","element","offsetTop","offsetParent","nothing","provide","context","queryAssignedElements","flatten","SchmancyContentDrawerMain","connectedCallback","drawerMinWidth","changedProperties","update","has","styles","when","consume","SchmancyContentDrawerSheet","updated","closeAll","dismiss","position","display","animate","opacity","transform","duration","easing","from","closeModalSheet","closeSheet","of","Observable","observer","onfinish","complete","sheetClasses","block","query","slot","schmancyNavDrawer","NavDrawer_toggle","self","SchmancyDrawerNavbarMode","SchmancyDrawerNavbarState","SchmancyDrawerAppbar","toggler","sidebarToggler","sidebarMode","hidden","sidebarOpen","Boolean","SchmancyNavigationDrawerContent","parentElement","SchmancyNavigationDrawer","fullscreen","breakpoint","_initialized","firstUpdated","updateState","setAttribute","target","BREAKPOINTS","isLargeScreen","fullHeight","sm","md","lg","xl","attribute","ANIMATION_EASING","SchmancyNavigationDrawerSidebar","drawerState","nav","overlay","openOverlay","showNavDrawer","hideNavDrawer","closeOverlay","fill","handleOverlayClick","sidebarClasses","bgColor","container","scrim","WhereAreYouRicky","HereMorty","teleport","activeTeleportations","Map","flipRequests","find","zip","filter","uuid","id","take","callerID","timeout","flip","request","to","originalZIndex","zIndex","transformOrigin","keyframes","rect","left","top","delay","bufferTime","requests","host","i","concatMap","watchElementRect","interval","getBoundingClientRect","prev","curr","right","bottom","SchmancyTeleportation","debugging","shadowRoot","querySelector","assignedElements","Error","FINDING_MORTIES","HERE_RICKY","teleportationService","get","a","throwIfEmpty","domRect","set","_slottedChildren","error"],"mappings":"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"}