@mhmo91/schmancy 0.2.47 → 0.2.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/flex-DICGGeg0.cjs.map +1 -1
- package/dist/flex-DL52jmYy.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +14 -12
- package/dist/index.js.map +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{sheet-C1Ac3-Na.cjs → sheet-BIB75m2T.cjs} +6 -6
- package/dist/sheet-BIB75m2T.cjs.map +1 -0
- package/dist/{sheet-9-CFxPyI.js → sheet-D9XTKLsV.js} +16 -16
- package/dist/sheet-D9XTKLsV.js.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/surface-7amaDOPA.cjs +13 -0
- package/dist/surface-7amaDOPA.cjs.map +1 -0
- package/dist/surface-Uk_XBa40.js +46 -0
- package/dist/surface-Uk_XBa40.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-CDwFjID7.cjs → teleport.component-CSlgR1bD.cjs} +14 -14
- package/dist/teleport.component-CSlgR1bD.cjs.map +1 -0
- package/dist/{teleport.component-CEr0HaiZ.js → teleport.component-DxZOXmi9.js} +62 -62
- package/dist/teleport.component-DxZOXmi9.js.map +1 -0
- package/dist/teleport.js +1 -1
- package/package.json +1 -1
- package/types/src/index.d.ts +1 -0
- package/types/src/layout/flex/flex.d.ts +1 -1
- package/types/src/layout/grid/grid.d.ts +1 -1
- package/types/src/layout/index.d.ts +1 -0
- package/types/src/layout/layout.d.ts +49 -0
- package/types/src/layout/v2/flex.d.ts +1 -1
- package/types/src/layout/v2/grid.d.ts +1 -1
- package/types/src/surface/surface.d.ts +8 -1
- package/dist/sheet-9-CFxPyI.js.map +0 -1
- package/dist/sheet-C1Ac3-Na.cjs.map +0 -1
- package/dist/surface-BSp9OeQ8.js +0 -46
- package/dist/surface-BSp9OeQ8.js.map +0 -1
- package/dist/surface-C53BzM5G.cjs +0 -13
- package/dist/surface-C53BzM5G.cjs.map +0 -1
- package/dist/teleport.component-CDwFjID7.cjs.map +0 -1
- package/dist/teleport.component-CEr0HaiZ.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
declare const Layout_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
|
|
2
|
+
export default class Layout extends Layout_base {
|
|
3
|
+
static styles: any;
|
|
4
|
+
layout: boolean;
|
|
5
|
+
center: boolean | undefined;
|
|
6
|
+
padding: string | undefined;
|
|
7
|
+
margin: string | undefined;
|
|
8
|
+
width: string | undefined;
|
|
9
|
+
height: string | undefined;
|
|
10
|
+
minWidth: string | undefined;
|
|
11
|
+
minHeight: string | undefined;
|
|
12
|
+
maxWidth: string | undefined;
|
|
13
|
+
maxHeight: string | undefined;
|
|
14
|
+
display: 'block' | 'inline-block' | 'inline' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid' | 'table' | 'inline-table' | 'flow-root' | 'none' | undefined;
|
|
15
|
+
overflow: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined;
|
|
16
|
+
overflowX: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined;
|
|
17
|
+
overflowY: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined;
|
|
18
|
+
position: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | undefined;
|
|
19
|
+
top: string | undefined;
|
|
20
|
+
right: string | undefined;
|
|
21
|
+
bottom: string | undefined;
|
|
22
|
+
left: string | undefined;
|
|
23
|
+
inset: string | undefined;
|
|
24
|
+
zIndex: string | undefined;
|
|
25
|
+
border: string | undefined;
|
|
26
|
+
borderTop: string | undefined;
|
|
27
|
+
borderRight: string | undefined;
|
|
28
|
+
borderBottom: string | undefined;
|
|
29
|
+
borderLeft: string | undefined;
|
|
30
|
+
borderColor: string | undefined;
|
|
31
|
+
borderRadius: string | undefined;
|
|
32
|
+
borderWidth: string | undefined;
|
|
33
|
+
boxShadow: string | undefined;
|
|
34
|
+
opacity: string | undefined;
|
|
35
|
+
background: string | undefined;
|
|
36
|
+
backgroundImage: string | undefined;
|
|
37
|
+
backgroundPosition: string | undefined;
|
|
38
|
+
backgroundSize: string | undefined;
|
|
39
|
+
backgroundRepeat: string | undefined;
|
|
40
|
+
backgroundAttachment: string | undefined;
|
|
41
|
+
backgroundColor: string | undefined;
|
|
42
|
+
backgroundClip: string | undefined;
|
|
43
|
+
backgroundOrigin: string | undefined;
|
|
44
|
+
backgroundBlendMode: string | undefined;
|
|
45
|
+
filter: string | undefined;
|
|
46
|
+
backdropFilter: string | undefined;
|
|
47
|
+
connectedCallback(): void;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -4,7 +4,14 @@ declare const SchmancySurface_base: import("@mixins/index").Constructor<CustomEl
|
|
|
4
4
|
* @slot - default content
|
|
5
5
|
*/
|
|
6
6
|
export declare class SchmancySurface extends SchmancySurface_base {
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Fill the width and/or height of the parent container.
|
|
9
|
+
* @default 'all'
|
|
10
|
+
* @cssprop --fill
|
|
11
|
+
* @cssprop --fill-width
|
|
12
|
+
* @cssprop --fill-height
|
|
13
|
+
*/
|
|
14
|
+
fill: 'all' | 'width' | 'height';
|
|
8
15
|
rounded: 'none' | 'top' | 'left' | 'right' | 'bottom' | 'all';
|
|
9
16
|
type: 'surface' | 'surfaceDim' | 'surfaceBright' | 'containerLowest' | 'containerLow' | 'container' | 'containerHigh' | 'containerHighest';
|
|
10
17
|
elevation: 0 | 1 | 2 | 3 | 4 | 5;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-9-CFxPyI.js","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement() {\n\t@property() title: string\n\trender() {\n\t\tconst classes = {\n\t\t\tabsolute: this.title.length === 0,\n\t\t\trelative: this.title.length > 0,\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-surface elevation=\"1\">\n\t\t\t\t<schmancy-grid class=\"${this.classMap(classes)}\" align=\"center\" justify=\"stretch\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">← </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t\t<schmancy-typography transform=\"capitalize\" type=\"headline\" token=\"lg\"> ${this.title} </schmancy-typography>\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tfilter,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n\t/**\n\t * @deprecated use bottom instead\n\t */\n\tBottomCenter = 'bottom-center',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tTopRight = 'top-right',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tBottomRight = 'bottom-right',\n}\n\ntype BottomSheeetTarget = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tallowOverlyDismiss?: boolean\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n}\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet: SchmancySheet\n}>\nexport const SheetHereMorty = 'yes-here'\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\tconstructor() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(0)),\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid: target.uid ?? target.component.tagName },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([sheet, target]) => {\n\t\t\t\t\tconsole.log(sheet, target)\n\t\t\t\t\tif (!sheet) {\n\t\t\t\t\t\t// if sheet is not found, create it\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tdocument.body.appendChild(sheet)\n\t\t\t\t\t}\n\t\t\t\t\tsheet.setAttribute('uid', target.uid ?? target.component.tagName)\n\t\t\t\t\tsheet.setAttribute('position', target.position ?? SchmancySheetPosition.Bottom)\n\t\t\t\t\tsheet.setAttribute('allowOverlyDismiss', target.allowOverlyDismiss === false ? 'false' : 'true')\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', target.persist ?? false)\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\tfilter(({ target, sheet }) => {\n\t\t\t\t\t// if the sheet has already the component, just show it\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.persist &&\n\t\t\t\t\t\tsheet?.shadowRoot\n\t\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t\t?.assignedElements()\n\t\t\t\t\t\t\t.find(e => e.tagName === target.component.tagName)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t\t\treturn false\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true // if the sheet does not have the component, continue to the next step\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t}),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(e => {\n\t\t\t\t\t\t\tconst target = e.target as SchmancySheet\n\t\t\t\t\t\t\tconsole.log(target)\n\n\t\t\t\t\t\t\tif (!target?.persist) target?.remove()\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)), // Some people say why 10? I say why not?\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([sheet]) => {\n\t\t\t\t\tsheet?.closeSheet()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tdismiss(uid: string) {\n\t\tthis.$dismiss.next(uid)\n\t}\n\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n}\nexport const sheet = new BottomSheetService()\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap } from 'rxjs'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\nimport { on } from './hook'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) allowOverlayDismiss = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t@query('.sheet') private sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tthis.setIsSheetShown(newValue)\n\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\tthis.addFocusTrap()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.removeFocusTrap()\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(window, 'keyup').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.sheetContainsFocus()) {\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate sheetContainsFocus(): boolean {\n\t\treturn this.sheet?.contains(document.activeElement) ?? false\n\t}\n\n\tprivate announcePresence() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\tdetail: { sheet: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate addFocusTrap() {\n\t\tdocument.addEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate removeFocusTrap() {\n\t\tdocument.removeEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate handleFocusIn = (e: Event) => {\n\t\tif (!this.sheet?.contains(e.target as Node)) {\n\t\t\tthis.focus()\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheet?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheet?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"sheet\" role=\"dialog\" aria-labelledby=\"sheet-title\" aria-hidden=\"true\" aria-modal=\"false\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"overlay\"\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tif (this.allowOverlayDismiss) sheet.dismiss(this.uid)\n\t\t\t\t\t}}\n\t\t\t\t></div>\n\t\t\t\t<section class=\"content\" data-position=${this.position}>\n\t\t\t\t\t<schmancy-sheet-header\n\t\t\t\t\t\tclass=\"sticky top-0 z-50\"\n\t\t\t\t\t\t@dismiss=${(e: CustomEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t.hidden=${this.header === 'hidden'}\n\t\t\t\t\t\ttitle=${this.title}\n\t\t\t\t\t></schmancy-sheet-header>\n\t\t\t\t\t<schmancy-surface class=\"overflow-auto\" fill type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","render","classes","absolute","this","title","length","relative","html","classMap","dispatchEvent","CustomEvent","bubbles","composed","__decorateClass","property","prototype","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","bottomSheet","Subject","$dismiss","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","undefined","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","allowOverlyDismiss","persist","header","style","overflow","delay","filter","shadowRoot","querySelector","assignedElements","find","take","subscribe","remove","mergeMap","closeSheet","next","SchmancySheet","$LitElement","super","arguments","open","Side","allowOverlayDismiss","focusAttribute","lastFocusedElement","handleFocusIn","contains","focus","_oldValue","newValue","setIsSheetShown","activeElement","addFocusTrap","removeFocusTrap","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","event","key","sheetContainsFocus","dismiss","rickyComm$","announcePresence","merge","addEventListener","removeEventListener","isShown","String","getFocusElement","selector","el","matches","stopPropagation","propName","options","type","reflect","Boolean","query","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-C1Ac3-Na.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement() {\n\t@property() title: string\n\trender() {\n\t\tconst classes = {\n\t\t\tabsolute: this.title.length === 0,\n\t\t\trelative: this.title.length > 0,\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-surface elevation=\"1\">\n\t\t\t\t<schmancy-grid class=\"${this.classMap(classes)}\" align=\"center\" justify=\"stretch\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">← </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t\t<schmancy-typography transform=\"capitalize\" type=\"headline\" token=\"lg\"> ${this.title} </schmancy-typography>\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tfilter,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n\t/**\n\t * @deprecated use bottom instead\n\t */\n\tBottomCenter = 'bottom-center',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tTopRight = 'top-right',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tBottomRight = 'bottom-right',\n}\n\ntype BottomSheeetTarget = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tallowOverlyDismiss?: boolean\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n}\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet: SchmancySheet\n}>\nexport const SheetHereMorty = 'yes-here'\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\tconstructor() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(0)),\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid: target.uid ?? target.component.tagName },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([sheet, target]) => {\n\t\t\t\t\tconsole.log(sheet, target)\n\t\t\t\t\tif (!sheet) {\n\t\t\t\t\t\t// if sheet is not found, create it\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tdocument.body.appendChild(sheet)\n\t\t\t\t\t}\n\t\t\t\t\tsheet.setAttribute('uid', target.uid ?? target.component.tagName)\n\t\t\t\t\tsheet.setAttribute('position', target.position ?? SchmancySheetPosition.Bottom)\n\t\t\t\t\tsheet.setAttribute('allowOverlyDismiss', target.allowOverlyDismiss === false ? 'false' : 'true')\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', target.persist ?? false)\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\tfilter(({ target, sheet }) => {\n\t\t\t\t\t// if the sheet has already the component, just show it\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.persist &&\n\t\t\t\t\t\tsheet?.shadowRoot\n\t\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t\t?.assignedElements()\n\t\t\t\t\t\t\t.find(e => e.tagName === target.component.tagName)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t\t\treturn false\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true // if the sheet does not have the component, continue to the next step\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t}),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(e => {\n\t\t\t\t\t\t\tconst target = e.target as SchmancySheet\n\t\t\t\t\t\t\tconsole.log(target)\n\n\t\t\t\t\t\t\tif (!target?.persist) target?.remove()\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)), // Some people say why 10? I say why not?\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([sheet]) => {\n\t\t\t\t\tsheet?.closeSheet()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tdismiss(uid: string) {\n\t\tthis.$dismiss.next(uid)\n\t}\n\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n}\nexport const sheet = new BottomSheetService()\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap } from 'rxjs'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\nimport { on } from './hook'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) allowOverlayDismiss = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t@query('.sheet') private sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tthis.setIsSheetShown(newValue)\n\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\tthis.addFocusTrap()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.removeFocusTrap()\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(window, 'keyup').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.sheetContainsFocus()) {\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate sheetContainsFocus(): boolean {\n\t\treturn this.sheet?.contains(document.activeElement) ?? false\n\t}\n\n\tprivate announcePresence() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\tdetail: { sheet: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate addFocusTrap() {\n\t\tdocument.addEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate removeFocusTrap() {\n\t\tdocument.removeEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate handleFocusIn = (e: Event) => {\n\t\tif (!this.sheet?.contains(e.target as Node)) {\n\t\t\tthis.focus()\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheet?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheet?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"sheet\" role=\"dialog\" aria-labelledby=\"sheet-title\" aria-hidden=\"true\" aria-modal=\"false\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"overlay\"\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tif (this.allowOverlayDismiss) sheet.dismiss(this.uid)\n\t\t\t\t\t}}\n\t\t\t\t></div>\n\t\t\t\t<section class=\"content\" data-position=${this.position}>\n\t\t\t\t\t<schmancy-sheet-header\n\t\t\t\t\t\tclass=\"sticky top-0 z-50\"\n\t\t\t\t\t\t@dismiss=${(e: CustomEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t.hidden=${this.header === 'hidden'}\n\t\t\t\t\t\ttitle=${this.title}\n\t\t\t\t\t></schmancy-sheet-header>\n\t\t\t\t\t<schmancy-surface class=\"overflow-auto\" fill type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","classes","absolute","this","title","length","relative","html","classMap","dispatchEvent","CustomEvent","bubbles","composed","__decorateClass","property","prototype","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","bottomSheet","Subject","$dismiss","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","undefined","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","allowOverlyDismiss","persist","header","style","overflow","delay","filter","shadowRoot","querySelector","assignedElements","find","take","subscribe","remove","mergeMap","closeSheet","next","SchmancySheet","$LitElement","super","arguments","open","Side","allowOverlayDismiss","focusAttribute","lastFocusedElement","handleFocusIn","contains","focus","_oldValue","newValue","setIsSheetShown","activeElement","addFocusTrap","removeFocusTrap","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","event","key","sheetContainsFocus","dismiss","rickyComm$","announcePresence","merge","addEventListener","removeEventListener","isShown","String","selector","el","matches","getFocusElement","stopPropagation","propName","options","type","reflect","Boolean","query","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
|
package/dist/surface-BSp9OeQ8.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { e as p } from "./provide-kj6-udep.js";
|
|
2
|
-
import "rxjs";
|
|
3
|
-
import "lit/directives/class-map.js";
|
|
4
|
-
import "lit/directives/style-map.js";
|
|
5
|
-
import { T as c } from "./tailwind.mixin-BNM2vRly.js";
|
|
6
|
-
import { css as d, html as u } from "lit";
|
|
7
|
-
import { property as h, customElement as f } from "lit/decorators.js";
|
|
8
|
-
import { S as g } from "./context-5nmahssp.js";
|
|
9
|
-
var y = Object.defineProperty, b = Object.getOwnPropertyDescriptor, r = (o, e, i, a) => {
|
|
10
|
-
for (var l, t = a > 1 ? void 0 : a ? b(e, i) : e, n = o.length - 1; n >= 0; n--) (l = o[n]) && (t = (a ? l(e, i, t) : l(t)) || t);
|
|
11
|
-
return a && t && y(e, i, t), t;
|
|
12
|
-
};
|
|
13
|
-
let s = class extends c(d`
|
|
14
|
-
:host([fill]) {
|
|
15
|
-
height: -webkit-fill-available;
|
|
16
|
-
width: -webkit-fill-available;
|
|
17
|
-
}
|
|
18
|
-
:host([fill-width]) {
|
|
19
|
-
width: -webkit-fill-available;
|
|
20
|
-
}
|
|
21
|
-
:host([fill-height]) {
|
|
22
|
-
height: -webkit-fill-available;
|
|
23
|
-
}
|
|
24
|
-
`) {
|
|
25
|
-
constructor() {
|
|
26
|
-
super(...arguments), this.fill = !1, this.rounded = "none", this.type = "surface", this.elevation = 0;
|
|
27
|
-
}
|
|
28
|
-
get classes() {
|
|
29
|
-
return { "relative block 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 h-full": this.fill, "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" };
|
|
30
|
-
}
|
|
31
|
-
updated() {
|
|
32
|
-
Object.entries(this.classes).forEach(([o, e]) => {
|
|
33
|
-
o.split(" ").forEach((i) => {
|
|
34
|
-
this.classList.toggle(i, e);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
render() {
|
|
39
|
-
return u`<slot class=${this.classMap(this.classes)}></slot> `;
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
r([h({ type: Boolean })], s.prototype, "fill", 2), r([h()], s.prototype, "rounded", 2), r([p({ context: g }), h()], s.prototype, "type", 2), r([h({ type: Number })], s.prototype, "elevation", 2), s = r([f("schmancy-surface")], s);
|
|
43
|
-
export {
|
|
44
|
-
s as S
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=surface-BSp9OeQ8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surface-BSp9OeQ8.js","sources":["../src/surface/surface.ts"],"sourcesContent":["import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancySurfaceTypeContext } from './context'\n\n/**\n * @element schmancy-surface\n * @slot - default content\n */\n@customElement('schmancy-surface')\nexport class SchmancySurface extends TailwindElement(css`\n\t:host([fill]) {\n\t\theight: -webkit-fill-available;\n\t\twidth: -webkit-fill-available;\n\t}\n\t:host([fill-width]) {\n\t\twidth: -webkit-fill-available;\n\t}\n\t:host([fill-height]) {\n\t\theight: -webkit-fill-available;\n\t}\n`) {\n\t@property({ type: Boolean }) fill = false\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\tget classes(): Record<string, boolean> {\n\t\treturn {\n\t\t\t'relative block 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 h-full': this.fill,\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\t}\n\n\tupdated() {\n\t\t// Loop over the computed classes and toggle each class on the host element.\n\t\tObject.entries(this.classes).forEach(([cls, condition]) => {\n\t\t\tcls.split(' ').forEach(singleClass => {\n\t\t\t\tthis.classList.toggle(singleClass, condition)\n\t\t\t})\n\t\t})\n\t}\n\n\tprotected render(): unknown {\n\t\treturn html`<slot class=${this.classMap(this.classes)}></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-surface': SchmancySurface\n\t}\n}\n"],"names":["SchmancySurface","TailwindElement","css","constructor","super","arguments","this","fill","rounded","type","elevation","Object","entries","classes","forEach","cls","condition","split","singleClass","classList","toggle","render","html","classMap","__decorateClass","property","Boolean","prototype","provide","context","SchmancySurfaceTypeContext","Number","customElement"],"mappings":";;;;;;;;;;;;AAWa,IAAAA,IAAN,cAA8BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAA9C,cAAAC;AAAAC,aAAAC,SAY8BC,GAAAA,KAAAC,WACwCD,KAAAE,UAAA,QAYpDF,KAAAG,OAAA,WAEuCH,KAAAI,YAAA;AAAA,EAAA;AAAA,EAE/D,cACQ;AAAA,WAAA,EACN,6BAAA,IACA,gBAAgBJ,KAAKE,YAAY,QACjC,mBAAmBF,KAAKE,YAAY,OACpC,mBAAmBF,KAAKE,YAAY,QACpC,mBAAmBF,KAAKE,YAAY,SACpC,mBAAmBF,KAAKE,YAAY,UACpC,iBAAiBF,KAAKE,YAAY,OAElC,iBAAiBF,KAAKC,MACtB,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;AAAAA,EAC5B;AAAA,EAGD;AAEQE,WAAAC,QAAQN,KAAKO,OAASC,EAAAA,QAAQ,EAAEC,GAAKC,CAAAA,MAAAA;AAC3CD,MAAAA,EAAIE,MAAM,GAAKH,EAAAA,QAAuBI,CAAAA;AAChCZ,aAAAa,UAAUC,OAAOF,GAAaF,CAAAA;AAAAA,MAAS;IAC5C,CACD;AAAA,EAAA;AAAA,EAGQ,SAAAK;AACT,WAAOC,gBAAmBhB,KAAKiB,SAASjB,KAAKO,OAAQ,CAAA;AAAA,EAAA;AAAA;AA9DzBW,EAAA,CAA5BC,EAAS,EAAEhB,MAAMiB,QAAAA,CAAAA,CAAAA,GAZN1B,EAYiB2B,WAAA,QAAA,IACjBH,EAAA,CAAXC,MAbWzB,EAaA2B,WAAA,WAAA,CAAA,GAIZH,EAAA,CAFCI,EAAQ,EAAEC,SAASC,MACnBL,EAhBWzB,CAAAA,GAAAA,EAiBZ2B,WAAA,QAAA,CAAA,GAU4BH,EAAA,CAA3BC,EAAS,EAAEhB,MAAMsB,OA3BN/B,CAAAA,CAAAA,GAAAA,EA2BgB2B,WAAA,aAAA,CAAA,GA3BhB3B,IAANwB,EAAA,CADNQ,EAAc,kBAAA,CAAA,GACFhC;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";const l=require("./provide-_VUNOf1R.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("./tailwind.mixin-Bkx1Uuxe.cjs"),c=require("lit"),i=require("lit/decorators.js"),p=require("./context-BATZj31H.cjs");var d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,s=(o,t,r,a)=>{for(var h,e=a>1?void 0:a?f(t,r):t,n=o.length-1;n>=0;n--)(h=o[n])&&(e=(a?h(t,r,e):h(e))||e);return a&&e&&d(t,r,e),e};exports.SchmancySurface=class extends u.TailwindElement(c.css`
|
|
2
|
-
:host([fill]) {
|
|
3
|
-
height: -webkit-fill-available;
|
|
4
|
-
width: -webkit-fill-available;
|
|
5
|
-
}
|
|
6
|
-
:host([fill-width]) {
|
|
7
|
-
width: -webkit-fill-available;
|
|
8
|
-
}
|
|
9
|
-
:host([fill-height]) {
|
|
10
|
-
height: -webkit-fill-available;
|
|
11
|
-
}
|
|
12
|
-
`){constructor(){super(...arguments),this.fill=!1,this.rounded="none",this.type="surface",this.elevation=0}get classes(){return{"relative block 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 h-full":this.fill,"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"}}updated(){Object.entries(this.classes).forEach(([o,t])=>{o.split(" ").forEach(r=>{this.classList.toggle(r,t)})})}render(){return c.html`<slot class=${this.classMap(this.classes)}></slot> `}},s([i.property({type:Boolean})],exports.SchmancySurface.prototype,"fill",2),s([i.property()],exports.SchmancySurface.prototype,"rounded",2),s([l.e({context:p.SchmancySurfaceTypeContext}),i.property()],exports.SchmancySurface.prototype,"type",2),s([i.property({type:Number})],exports.SchmancySurface.prototype,"elevation",2),exports.SchmancySurface=s([i.customElement("schmancy-surface")],exports.SchmancySurface);
|
|
13
|
-
//# sourceMappingURL=surface-C53BzM5G.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surface-C53BzM5G.cjs","sources":["../src/surface/surface.ts"],"sourcesContent":["import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancySurfaceTypeContext } from './context'\n\n/**\n * @element schmancy-surface\n * @slot - default content\n */\n@customElement('schmancy-surface')\nexport class SchmancySurface extends TailwindElement(css`\n\t:host([fill]) {\n\t\theight: -webkit-fill-available;\n\t\twidth: -webkit-fill-available;\n\t}\n\t:host([fill-width]) {\n\t\twidth: -webkit-fill-available;\n\t}\n\t:host([fill-height]) {\n\t\theight: -webkit-fill-available;\n\t}\n`) {\n\t@property({ type: Boolean }) fill = false\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\tget classes(): Record<string, boolean> {\n\t\treturn {\n\t\t\t'relative block 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 h-full': this.fill,\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\t}\n\n\tupdated() {\n\t\t// Loop over the computed classes and toggle each class on the host element.\n\t\tObject.entries(this.classes).forEach(([cls, condition]) => {\n\t\t\tcls.split(' ').forEach(singleClass => {\n\t\t\t\tthis.classList.toggle(singleClass, condition)\n\t\t\t})\n\t\t})\n\t}\n\n\tprotected render(): unknown {\n\t\treturn html`<slot class=${this.classMap(this.classes)}></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-surface': SchmancySurface\n\t}\n}\n"],"names":["SchmancySurface","TailwindElement","css","constructor","super","arguments","this","fill","rounded","type","elevation","classes","Object","entries","forEach","cls","condition","split","singleClass","classList","toggle","html","classMap","__decorateClass","property","Boolean","prototype","provide","context","SchmancySurfaceTypeContext","Number","customElement"],"mappings":"0dAWaA,QAAAA,gBAAN,cAA8BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAA9C,aAAAC,CAAAC,SAAAC,SAY8BC,EAAAA,KAAAC,QACwCD,KAAAE,QAAA,OAYpDF,KAAAG,KAAA,UAEuCH,KAAAI,UAAA,CAAA,CAE/D,IAAIC,SAAAA,CACI,MAAA,CACN,4BAAA,GACA,eAAgBL,KAAKE,UAAY,OACjC,kBAAmBF,KAAKE,UAAY,MACpC,kBAAmBF,KAAKE,UAAY,OACpC,kBAAmBF,KAAKE,UAAY,QACpC,kBAAmBF,KAAKE,UAAY,SACpC,gBAAiBF,KAAKE,UAAY,MAElC,gBAAiBF,KAAKC,KACtB,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,kBAATA,CAC5B,CAGD,SAEQG,CAAAA,OAAAC,QAAQP,KAAKK,OAAAA,EAASG,QAAQ,CAAA,CAAEC,EAAKC,CAAAA,IAAAA,CAC3CD,EAAIE,MAAM,GAAA,EAAKH,QAAuBI,GAChCZ,CAAAA,KAAAa,UAAUC,OAAOF,EAAaF,CAAS,CAAA,CAAA,CAC5C,CACD,CAAA,CAGQ,QACT,CAAA,OAAOK,EAAAA,mBAAmBf,KAAKgB,SAAShB,KAAKK,OAAAA,CAAAA,WAAQ,CA9DzBY,EAAAA,EAAA,CAA5BC,WAAS,CAAEf,KAAMgB,WAZNzB,wBAYiB0B,UAAA,OAAA,CAAA,EACjBH,EAAA,CAAXC,EAASA,SAAAA,CAAAA,EAbExB,wBAaA0B,UAAA,UAAA,CAAA,EAIZH,EAAA,CAFCI,IAAQ,CAAEC,QAASC,EAAAA,0BACnBL,CAAAA,EAAAA,EAASA,YAhBExB,wBAiBZ0B,UAAA,OAAA,CAAA,EAU4BH,EAAA,CAA3BC,WAAS,CAAEf,KAAMqB,MAAAA,CAAAA,CAAAA,EA3BN9B,wBA2BgB0B,UAAA,YAAA,CAAA,EA3BhB1B,QAANA,gBAAAuB,EAAA,CADNQ,EAAAA,cAAc,kBAAA,CAAA,EACF/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"teleport.component-CDwFjID7.cjs","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 { 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().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)\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","super","arguments","this","type","elevation","classes","includes","classMap","__decorateClass","property","prototype","Number","SchmancyCardContent","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","t","SchmancyContentDrawerSheetMode","createContext","SchmancyContentDrawerSheetState","SchmancyContentDrawerID","n","Math","floor","random","Date","now","toString","SchmancyContentDrawerMaxHeight","SchmancyContentDrawerMinWidth","SchmancyContentDrawer","$LitElement","constructor","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","render","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","e","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","sidebarClasses","bgColor","container","scrim","handleOverlayClick","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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"}
|