@mhmo91/schmancy 0.2.87 → 0.2.88
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/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{sheet-D_cWUJsR.js → sheet-CjC176Qy.js} +11 -11
- package/dist/{sheet-D_cWUJsR.js.map → sheet-CjC176Qy.js.map} +1 -1
- package/dist/{sheet-CONpdXIq.cjs → sheet-efGG-8da.cjs} +2 -2
- package/dist/{sheet-CONpdXIq.cjs.map → sheet-efGG-8da.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-CV4IxBHf.cjs → teleport.component-CgOdCzLc.cjs} +2 -2
- package/dist/{teleport.component-CV4IxBHf.cjs.map → teleport.component-CgOdCzLc.cjs.map} +1 -1
- package/dist/{teleport.component-Drhw54K1.js → teleport.component-DIeFTjTL.js} +2 -2
- package/dist/{teleport.component-Drhw54K1.js.map → teleport.component-DIeFTjTL.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/package.json +3 -2
package/dist/card.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require("./teleport.component-
|
|
1
|
+
"use strict";require("./teleport.component-CgOdCzLc.cjs");
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./teleport.component-
|
|
1
|
+
import "./teleport.component-DIeFTjTL.js";
|
|
2
2
|
//# sourceMappingURL=card.js.map
|
package/dist/content-drawer.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-CgOdCzLc.cjs");Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>e.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=e.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>e.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=e.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=e.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>e.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=e.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=e.SchmancyContentDrawerSheetState,exports.schmancyContentDrawer=e.schmancyContentDrawer;
|
|
2
2
|
//# sourceMappingURL=content-drawer.cjs.map
|
package/dist/content-drawer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as n, b as t, f as r, c, d as h, g as S, S as o, a as s, s as m } from "./teleport.component-
|
|
1
|
+
import { e as n, b as t, f as r, c, d as h, g as S, S as o, a as s, s as m } from "./teleport.component-DIeFTjTL.js";
|
|
2
2
|
export {
|
|
3
3
|
n as SchmancyContentDrawer,
|
|
4
4
|
t as SchmancyContentDrawerID,
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-CoNHPVcy.cjs");const r=require("./area.component-D_L_-rhD.cjs");require("./autocomplete-ButddDCL.cjs"),require("./spinner-DGtAaEn5.cjs");const y=require("./icon-button-CQafspg2.cjs"),e=require("./teleport.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-CoNHPVcy.cjs");const r=require("./area.component-D_L_-rhD.cjs");require("./autocomplete-ButddDCL.cjs"),require("./spinner-DGtAaEn5.cjs");const y=require("./icon-button-CQafspg2.cjs"),e=require("./teleport.component-CgOdCzLc.cjs"),S=require("./checkbox-CC0UeBQR.cjs");require("./chips-9AOuHsA9.cjs");const u=require("./payment-card-form-C03BsKJ1.cjs");require("./date-range-DBxAQrWq.cjs");const m=require("./delay-DMiYzQSi.cjs"),c=require("./ripple-C2BHbhcS.cjs");require("./divider-Cv8bePwT.cjs"),require("./form-BCqsvcur.cjs"),require("./icon-VtRCgMjd.cjs"),require("./input-C-eFwjHu.cjs");const t=require("./flex-CCO2kjCx.cjs"),a=require("./list-BfuHqQMi.cjs");require("./menu-qiBmvTtT.cjs");const i=require("./outlet-B9NdhBgt.cjs");require("./option-DFjInzHW.cjs");const b=require("./radio-group-DrwawzHG.cjs"),l=require("./rxjs-utils.cjs");require("rxjs"),require("./index-DyJ0oDpR.cjs");const d=require("./select-C3UtMXwp.cjs"),n=require("./sheet-efGG-8da.cjs"),h=require("./slider-BQQQ9rrx.cjs"),p=require("./surface-BHP347Uc.cjs");require("./table-CJzGX5VB.cjs"),require("./tabs-group-BO-vC7go.cjs"),require("./textarea-B1XE6nT1.cjs");const o=require("./theme.component-4cjbFqy7.cjs"),g=require("./theme.interface-Xg5Zi46a.cjs");require("./theme-button-mmu8bUNx.cjs");const f=require("./tree-D07FpMNb.cjs"),q=require("./types.cjs"),O=require("./typewriter-C9L0TA4Y.cjs"),w=require("./typography-BHeQxLl8.cjs"),D=require("./intersection-CVvaDv96.cjs");exports.FINDING_MORTIES=r.FINDING_MORTIES,exports.HERE_RICKY=r.HERE_RICKY,exports.HISTORY_STRATEGY=r.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>r.SchmancyArea}),exports.area=r.area,exports.routerHistory=r.routerHistory,Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>y.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>y.SchmnacyIconButton}),exports.$drawer=e.$drawer,exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>e.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=e.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>e.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=e.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=e.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>e.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=e.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=e.SchmancyContentDrawerSheetState,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.schmancyContentDrawer=e.schmancyContentDrawer,exports.schmancyNavDrawer=e.schmancyNavDrawer,exports.teleport=e.teleport,Object.defineProperty(exports,"SchmancyCheckbox",{enumerable:!0,get:()=>S.SchmancyCheckbox}),Object.defineProperty(exports,"SchmancyPaymentCardForm",{enumerable:!0,get:()=>u.SchmancyPaymentCardForm}),Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>m.SchmancyDelay}),exports.delayContext=m.delayContext,exports.color=c.color,exports.fullHeight=c.fullHeight,exports.ripple=c.ripple,Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>t.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>t.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>t.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>t.SchmancyScroll}),Object.defineProperty(exports,"List",{enumerable:!0,get:()=>a.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>a.SchmancyListItem}),exports.SchmancyListTypeContext=a.SchmancyListTypeContext,exports.$notify=i.$notify,Object.defineProperty(exports,"SchmancyNotification",{enumerable:!0,get:()=>i.SchmancyNotification}),Object.defineProperty(exports,"SchmancyNotificationOutlet",{enumerable:!0,get:()=>i.SchmancyNotificationOutlet}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>b.RadioGroup}),exports.mutationObserver=l.mutationObserver,Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>d.SchmancySelect}),exports.SchmancySheetPosition=n.SchmancySheetPosition,exports.SheetHereMorty=n.SheetHereMorty,exports.SheetWhereAreYouRicky=n.SheetWhereAreYouRicky,exports.sheet=n.sheet,Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>h.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>h.SchmancySlider}),Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>p.SchmancySurface}),Object.defineProperty(exports,"SchmancyThemeComponent",{enumerable:!0,get:()=>o.SchmancyThemeComponent}),exports.formateTheme=o.formateTheme,exports.tailwindStyles=o.tailwindStyles,exports.SchmancyTheme=g.SchmancyTheme,Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>f.SchmancyTree}),exports.SchmancyEvents=q.SchmancyEvents,Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>O.TypewriterElement}),Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>w.SchmancyTypography}),exports.intersection$=D.intersection$;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { F as C, H as d, b as T, S as b, a as u, r as N } from "./area.component
|
|
|
3
3
|
import "./autocomplete-mnVXXSzl.js";
|
|
4
4
|
import "./spinner-mbCqGAta.js";
|
|
5
5
|
import { S as R, a as v } from "./icon-button-CJ-eY6wF.js";
|
|
6
|
-
import { $ as M, H as g, e as E, b as A, f as F, c as Y, d as $, g as k, S as G, a as L, i as O, k as W, l as _, m as B, j as P, n as j, o as K, W as V, s as q, h as z, t as J } from "./teleport.component-
|
|
6
|
+
import { $ as M, H as g, e as E, b as A, f as F, c as Y, d as $, g as k, S as G, a as L, i as O, k as W, l as _, m as B, j as P, n as j, o as K, W as V, s as q, h as z, t as J } from "./teleport.component-DIeFTjTL.js";
|
|
7
7
|
import { S as U } from "./checkbox-CwxyfGAd.js";
|
|
8
8
|
import "./chips-C0maM-LZ.js";
|
|
9
9
|
import { S as Z } from "./payment-card-form-E08S_U7K.js";
|
|
@@ -24,7 +24,7 @@ import { mutationObserver as ua } from "./rxjs-utils.js";
|
|
|
24
24
|
import "rxjs";
|
|
25
25
|
import "./index-CuY8m6ta.js";
|
|
26
26
|
import { S as Ha } from "./select-B6Us7Kk8.js";
|
|
27
|
-
import { S as va, b as Ia, a as Ma, s as ga } from "./sheet-
|
|
27
|
+
import { S as va, b as Ia, a as Ma, s as ga } from "./sheet-CjC176Qy.js";
|
|
28
28
|
import { S as Aa, a as Fa } from "./slider-BYmWjukU.js";
|
|
29
29
|
import { S as $a } from "./surface-Bxn0eKDp.js";
|
|
30
30
|
import "./table-BGHYGmrv.js";
|
package/dist/nav-drawer.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-CgOdCzLc.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
|
|
2
2
|
//# sourceMappingURL=nav-drawer.cjs.map
|
package/dist/nav-drawer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as c, i as e, k as n, l as m, m as s, j as h, n as i, h as t } from "./teleport.component-
|
|
1
|
+
import { $ as c, i as e, k as n, l as m, m as s, j as h, n as i, h as t } from "./teleport.component-DIeFTjTL.js";
|
|
2
2
|
export {
|
|
3
3
|
c as $drawer,
|
|
4
4
|
e as SchmancyDrawerAppbar,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Subject as E, switchMap as D, forkJoin as x, fromEvent as
|
|
1
|
+
import { Subject as E, switchMap as D, forkJoin as x, fromEvent as d, of as S, takeUntil as f, timer as C, map as m, defaultIfEmpty as F, tap as h, delay as y, filter as U, take as j, mergeMap as P, merge as B } from "rxjs";
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
4
|
import { T } from "./tailwind.mixin-D4STgS5j.js";
|
|
@@ -6,7 +6,7 @@ import { html as $ } from "lit";
|
|
|
6
6
|
import { property as c, customElement as O, query as z, queryAssignedElements as I } from "lit/decorators.js";
|
|
7
7
|
import { $ as q } from "./litElement.mixin-pfcnUcRO.js";
|
|
8
8
|
var L = Object.defineProperty, N = Object.getOwnPropertyDescriptor, k = (t, e, s, i) => {
|
|
9
|
-
for (var a, o = i > 1 ? void 0 : i ? N(e, s) : e,
|
|
9
|
+
for (var a, o = i > 1 ? void 0 : i ? N(e, s) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
10
10
|
return i && o && L(e, s, o), o;
|
|
11
11
|
};
|
|
12
12
|
let b = class extends T() {
|
|
@@ -43,7 +43,7 @@ k([c()], b.prototype, "title", 2), b = k([O("schmancy-sheet-header")], b);
|
|
|
43
43
|
var A = ((t) => (t.Side = "side", t.Bottom = "bottom", t.BottomCenter = "bottom-center", t.TopRight = "top-right", t.BottomRight = "bottom-right", t))(A || {});
|
|
44
44
|
const g = "are-you-there-sheet", w = "yes-here", v = new class {
|
|
45
45
|
constructor() {
|
|
46
|
-
this.bottomSheet = new E(), this.$dismiss = new E(), this.bottomSheet.pipe(D((t) => x([
|
|
46
|
+
this.bottomSheet = new E(), this.$dismiss = new E(), this.bottomSheet.pipe(D((t) => x([d(window, w).pipe(f(C(0)), m((e) => e.detail.sheet), F(void 0)), S(t).pipe(h(() => {
|
|
47
47
|
window.dispatchEvent(new CustomEvent(g, { detail: { uid: t.uid ?? t.component.tagName } }));
|
|
48
48
|
}))])), m(([t, e]) => {
|
|
49
49
|
t || (t = document.createElement("schmancy-sheet"), document.body.appendChild(t)), t.setAttribute("uid", e.uid ?? e.component.tagName);
|
|
@@ -57,11 +57,11 @@ const g = "are-you-there-sheet", w = "yes-here", v = new class {
|
|
|
57
57
|
}), y(1), h(({ sheet: t }) => {
|
|
58
58
|
t == null || t.setAttribute("open", "true");
|
|
59
59
|
}), h(({ sheet: t }) => {
|
|
60
|
-
|
|
60
|
+
d(t, "close").pipe(j(1)).pipe(y(300)).subscribe((e) => {
|
|
61
61
|
const s = e.target;
|
|
62
62
|
s != null && s.persist || (s == null || s.remove()), document.body.style.overflow = "auto";
|
|
63
63
|
});
|
|
64
|
-
})).subscribe(), this.$dismiss.pipe(P((t) => x([
|
|
64
|
+
})).subscribe(), this.$dismiss.pipe(P((t) => x([d(window, w).pipe(f(C(100)), m((e) => e.detail.sheet), F(void 0)), S(t).pipe(h(() => {
|
|
65
65
|
window.dispatchEvent(new CustomEvent(g, { detail: { uid: t } }));
|
|
66
66
|
}))])), h(([t]) => {
|
|
67
67
|
t == null || t.closeSheet();
|
|
@@ -75,7 +75,7 @@ const g = "are-you-there-sheet", w = "yes-here", v = new class {
|
|
|
75
75
|
}
|
|
76
76
|
}();
|
|
77
77
|
var M = Object.defineProperty, R = Object.getOwnPropertyDescriptor, r = (t, e, s, i) => {
|
|
78
|
-
for (var a, o = i > 1 ? void 0 : i ? R(e, s) : e,
|
|
78
|
+
for (var a, o = i > 1 ? void 0 : i ? R(e, s) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
79
79
|
return i && o && M(e, s, o), o;
|
|
80
80
|
};
|
|
81
81
|
let n = class extends q(":host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-duration: .2s;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;visibility:visible;transition:visibility var(--transition-duration) ease-in-out}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) ease-in-out}.content{z-index:1;transition:transform var(--transition-duration) ease-in-out;overflow:hidden}.content[data-position=side]{height:100vh;height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=side] #body{max-height:100vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:100vh}.content[data-position=bottom] #body{max-height:90vh}") {
|
|
@@ -96,11 +96,11 @@ let n = class extends q(":host{--overlay-color: var(--schmancy-sys-color-surface
|
|
|
96
96
|
super.disconnectedCallback(), this.disconnecting.next(!0);
|
|
97
97
|
}
|
|
98
98
|
setupEventListeners() {
|
|
99
|
-
const t =
|
|
99
|
+
const t = d(window, "popstate").pipe(h((i) => {
|
|
100
100
|
i.preventDefault(), this.closeSheet();
|
|
101
|
-
})), e =
|
|
101
|
+
})), e = d(window, "keyup").pipe(h((i) => {
|
|
102
102
|
i.key !== "Escape" || this.sheetContainsFocus() || v.dismiss(this.uid);
|
|
103
|
-
})), s =
|
|
103
|
+
})), s = d(window, g).pipe(h((i) => {
|
|
104
104
|
i.detail.uid === this.uid && this.announcePresence();
|
|
105
105
|
}));
|
|
106
106
|
B(t, e, s).pipe(f(this.disconnecting)).subscribe();
|
|
@@ -153,7 +153,7 @@ let n = class extends q(":host{--overlay-color: var(--schmancy-sys-color-surface
|
|
|
153
153
|
title=${this.title}
|
|
154
154
|
></schmancy-sheet-header>
|
|
155
155
|
<schmancy-surface rounded="left" scroller id="body" class="overflow-auto" type="surface">
|
|
156
|
-
<slot></slot>
|
|
156
|
+
<schmancy-scroll> <slot></slot></schmancy-scroll>
|
|
157
157
|
</schmancy-surface>
|
|
158
158
|
</schmancy-grid>
|
|
159
159
|
</div>
|
|
@@ -176,4 +176,4 @@ export {
|
|
|
176
176
|
w as b,
|
|
177
177
|
v as s
|
|
178
178
|
};
|
|
179
|
-
//# sourceMappingURL=sheet-
|
|
179
|
+
//# sourceMappingURL=sheet-CjC176Qy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-D_cWUJsR.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 fill=\"width\" 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'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\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\n\t\t\t\t\t// **Use the dynamic position function here**\n\t\t\t\t\tconst position = target.position || getPosition() // Use target.position if it's set, otherwise determine based on screen size\n\t\t\t\t\tsheet.setAttribute('position', position)\n\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 { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) 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\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=${!this.open} aria-modal=${this.open}>\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<schmancy-grid rows=\"auto 1fr\" class=\"content w-full\" 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 w-full\"\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 rounded=\"left\" scroller id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","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","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","innerWidth","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","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
|
+
{"version":3,"file":"sheet-CjC176Qy.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 fill=\"width\" 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'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\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\n\t\t\t\t\t// **Use the dynamic position function here**\n\t\t\t\t\tconst position = target.position || getPosition() // Use target.position if it's set, otherwise determine based on screen size\n\t\t\t\t\tsheet.setAttribute('position', position)\n\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 { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) 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\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=${!this.open} aria-modal=${this.open}>\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<schmancy-grid rows=\"auto 1fr\" class=\"content w-full\" 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 w-full\"\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 rounded=\"left\" scroller id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","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","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","innerWidth","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","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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"}
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
title=${this.title}
|
|
34
34
|
></schmancy-sheet-header>
|
|
35
35
|
<schmancy-surface rounded="left" scroller id="body" class="overflow-auto" type="surface">
|
|
36
|
-
<slot></slot>
|
|
36
|
+
<schmancy-scroll> <slot></slot></schmancy-scroll>
|
|
37
37
|
</schmancy-surface>
|
|
38
38
|
</schmancy-grid>
|
|
39
39
|
</div>
|
|
40
40
|
`}};var p,d;h([r.property({type:String,reflect:!0})],a.prototype,"uid",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"open",2),h([r.property({type:String,reflect:!0})],a.prototype,"header",2),h([r.property({type:String,reflect:!0})],a.prototype,"position",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"persist",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"allowOverlayDismiss",2),h([r.property({type:String,reflect:!0})],a.prototype,"title",2),h([r.query(".sheet")],a.prototype,"sheet",2),h([r.queryAssignedElements({flatten:!0})],a.prototype,"assignedElements",2),h([r.property()],a.prototype,"focusAttribute",2),h([(p="open",(t,e)=>{const{willUpdate:i}=t;d=Object.assign({waitUntilFirstUpdate:!1},d),t.willUpdate=function(o){if(i.call(this,o),o.has(p)){const c=o.get(p),n=this[p];c!==n&&(d!=null&&d.waitUntilFirstUpdate&&!this.hasUpdated||this[e].call(this,c,n))}}})],a.prototype,"onOpenChange",1),a=h([r.customElement("schmancy-sheet")],a),exports.SchmancySheetPosition=b,exports.SheetHereMorty=y,exports.SheetWhereAreYouRicky=m,exports.sheet=u;
|
|
41
|
-
//# sourceMappingURL=sheet-
|
|
41
|
+
//# sourceMappingURL=sheet-efGG-8da.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-CONpdXIq.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 fill=\"width\" 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'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\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\n\t\t\t\t\t// **Use the dynamic position function here**\n\t\t\t\t\tconst position = target.position || getPosition() // Use target.position if it's set, otherwise determine based on screen size\n\t\t\t\t\tsheet.setAttribute('position', position)\n\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 { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) 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\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=${!this.open} aria-modal=${this.open}>\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<schmancy-grid rows=\"auto 1fr\" class=\"content w-full\" 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 w-full\"\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 rounded=\"left\" scroller id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","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","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","innerWidth","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","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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"}
|
|
1
|
+
{"version":3,"file":"sheet-efGG-8da.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 fill=\"width\" 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'\n\n// Function to determine the position based on screen size\nconst getPosition = (): SchmancySheetPosition => {\n\treturn window.innerWidth >= 768 ? SchmancySheetPosition.Side : SchmancySheetPosition.Bottom // Adjust 768 as needed for your breakpoint\n}\n\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\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\n\t\t\t\t\t// **Use the dynamic position function here**\n\t\t\t\t\tconst position = target.position || getPosition() // Use target.position if it's set, otherwise determine based on screen size\n\t\t\t\t\tsheet.setAttribute('position', position)\n\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 { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) 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\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=${!this.open} aria-modal=${this.open}>\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<schmancy-grid rows=\"auto 1fr\" class=\"content w-full\" 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 w-full\"\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 rounded=\"left\" scroller id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","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","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","innerWidth","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","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/sheet.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./sheet-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./sheet-efGG-8da.cjs");exports.SchmancySheetPosition=e.SchmancySheetPosition,exports.SheetHereMorty=e.SheetHereMorty,exports.SheetWhereAreYouRicky=e.SheetWhereAreYouRicky,exports.sheet=e.sheet;
|
|
2
2
|
//# sourceMappingURL=sheet.cjs.map
|
package/dist/sheet.js
CHANGED
package/dist/teleport.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-CgOdCzLc.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
|
|
2
2
|
//# sourceMappingURL=teleport.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const h=require("lit"),c=require("lit/decorators.js"),n=require("rxjs");require("./animated-text-CoNHPVcy.cjs");const O=require("./area.component-D_L_-rhD.cjs");require("./autocomplete-ButddDCL.cjs"),require("./spinner-DGtAaEn5.cjs"),require("./icon-button-CQafspg2.cjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const S=require("./tailwind.mixin-CJgIYh7g.cjs"),$=require("./theme.interface-Xg5Zi46a.cjs");require("./checkbox-CC0UeBQR.cjs"),require("./chips-9AOuHsA9.cjs"),require("./payment-card-form-C03BsKJ1.cjs");const p=require("./types.cjs"),l=require("./provide-DSU87U5x.cjs"),w=require("./litElement.mixin-RgeLRf4d.cjs"),d=require("./consume-Bb7_UzYd.cjs");require("./date-range-DBxAQrWq.cjs"),require("./delay-DMiYzQSi.cjs");const b=require("./ripple-C2BHbhcS.cjs");require("./divider-Cv8bePwT.cjs"),require("./form-BCqsvcur.cjs"),require("./icon-VtRCgMjd.cjs"),require("./input-C-eFwjHu.cjs"),require("./flex-CCO2kjCx.cjs"),require("./list-BfuHqQMi.cjs"),require("./menu-qiBmvTtT.cjs");const I=require("lit/directives/when.js");require("./outlet-B9NdhBgt.cjs"),require("./option-DFjInzHW.cjs"),require("./radio-group-DrwawzHG.cjs"),require("./index-DyJ0oDpR.cjs"),require("./select-C3UtMXwp.cjs");const U=require("./sheet-
|
|
1
|
+
"use strict";const h=require("lit"),c=require("lit/decorators.js"),n=require("rxjs");require("./animated-text-CoNHPVcy.cjs");const O=require("./area.component-D_L_-rhD.cjs");require("./autocomplete-ButddDCL.cjs"),require("./spinner-DGtAaEn5.cjs"),require("./icon-button-CQafspg2.cjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const S=require("./tailwind.mixin-CJgIYh7g.cjs"),$=require("./theme.interface-Xg5Zi46a.cjs");require("./checkbox-CC0UeBQR.cjs"),require("./chips-9AOuHsA9.cjs"),require("./payment-card-form-C03BsKJ1.cjs");const p=require("./types.cjs"),l=require("./provide-DSU87U5x.cjs"),w=require("./litElement.mixin-RgeLRf4d.cjs"),d=require("./consume-Bb7_UzYd.cjs");require("./date-range-DBxAQrWq.cjs"),require("./delay-DMiYzQSi.cjs");const b=require("./ripple-C2BHbhcS.cjs");require("./divider-Cv8bePwT.cjs"),require("./form-BCqsvcur.cjs"),require("./icon-VtRCgMjd.cjs"),require("./input-C-eFwjHu.cjs"),require("./flex-CCO2kjCx.cjs"),require("./list-BfuHqQMi.cjs"),require("./menu-qiBmvTtT.cjs");const I=require("lit/directives/when.js");require("./outlet-B9NdhBgt.cjs"),require("./option-DFjInzHW.cjs"),require("./radio-group-DrwawzHG.cjs"),require("./index-DyJ0oDpR.cjs"),require("./select-C3UtMXwp.cjs");const U=require("./sheet-efGG-8da.cjs");require("./slider-BQQQ9rrx.cjs"),require("./surface-BHP347Uc.cjs"),require("./table-CJzGX5VB.cjs"),require("./tabs-group-BO-vC7go.cjs"),require("./textarea-B1XE6nT1.cjs"),require("./theme.component-4cjbFqy7.cjs"),require("./theme-button-mmu8bUNx.cjs"),require("./tree-D07FpMNb.cjs"),require("./typewriter-C9L0TA4Y.cjs"),require("./typography-BHeQxLl8.cjs");const T=require("rxjs/operators");var Y=Object.getOwnPropertyDescriptor;let H=class extends S.TailwindElement(h.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
|
@@ -147,4 +147,4 @@
|
|
|
147
147
|
class="${this.classMap({"fixed inset-0 z-49 hidden":!0})}"
|
|
148
148
|
></div>
|
|
149
149
|
`}},u([d.c({context:W,subscribe:!0}),c.state()],exports.SchmancyNavigationDrawerSidebar.prototype,"mode",2),u([d.c({context:j,subscribe:!0}),c.state()],exports.SchmancyNavigationDrawerSidebar.prototype,"drawerState",2),u([c.query("#overlay")],exports.SchmancyNavigationDrawerSidebar.prototype,"overlay",2),u([c.query("nav")],exports.SchmancyNavigationDrawerSidebar.prototype,"nav",2),u([c.property({type:String})],exports.SchmancyNavigationDrawerSidebar.prototype,"width",2),u([c.state()],exports.SchmancyNavigationDrawerSidebar.prototype,"_initialized",2),exports.SchmancyNavigationDrawerSidebar=u([c.customElement("schmancy-nav-drawer-navbar")],exports.SchmancyNavigationDrawerSidebar);const _="whereAreYouRicky",A="hereMorty",f=new class{constructor(){this.activeTeleportations=new Map,this.flipRequests=new n.Subject,this.find=e=>n.zip([n.fromEvent(window,A).pipe(n.filter(t=>!!t.detail.component.uuid&&!!e.id&&t.detail.component.id===e.id&&t.detail.component.uuid!==e.uuid),n.map(t=>t.detail.component),n.take(1)),n.of(e).pipe(n.tap(()=>{window.dispatchEvent(new CustomEvent(_,{detail:{id:e.id,callerID:e.uuid}}))}))]).pipe(n.map(([t])=>t),n.timeout(0)),this.flip=e=>{const{from:t,to:i}=e,s=i.element.style.zIndex;i.element.style.transformOrigin="top left",i.element.style.setProperty("visibility","visible"),i.element.style.zIndex="1000";const a=[{transform:`translate(${t.rect.left-i.rect.left}px, ${t.rect.top-i.rect.top}px) scale(${t.rect.width/i.rect.width}, ${t.rect.height/i.rect.height})`},{transform:"translate(0, 0) scale(1, 1)"}];i.element.animate(a,{duration:250,delay:10,easing:"cubic-bezier(0.455, 0.03, 0.515, 0.955)"}).onfinish=()=>{i.element.style.zIndex=s,i.element.style.transformOrigin=""}},this.flipRequests.pipe(n.bufferTime(1),n.map(e=>e.map(({from:t,to:i,host:s},a)=>({from:t,to:i,host:s,i:a}))),n.concatMap(e=>n.zip(e.map(t=>n.of(this.flip(t)))))).subscribe()}};function B(e){return n.interval(50).pipe(T.map(()=>e.getBoundingClientRect()),T.distinctUntilChanged((t,i)=>t.width===i.width&&t.height===i.height&&t.top===i.top&&t.right===i.right&&t.bottom===i.bottom&&t.left===i.left),T.take(1))}var ye=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,q=(e,t,i,s)=>{for(var a,r=s>1?void 0:s?ue(t,i):t,o=e.length-1;o>=0;o--)(a=e[o])&&(r=(s?a(t,i,r):a(r))||r);return s&&r&&ye(t,i,r),r};exports.SchmancyTeleportation=class extends w.$LitElement(h.css``){constructor(){super(...arguments),this.uuid=Math.floor(Math.random()*Date.now()),this.delay=0,this.debugging=!1}get _slottedChildren(){return this.shadowRoot.querySelector("slot").assignedElements({flatten:!0})}connectedCallback(){if(this.id===void 0)throw new Error("id is required");super.connectedCallback(),n.merge(n.fromEvent(window,O.FINDING_MORTIES).pipe(n.tap({next:()=>{this.dispatchEvent(new CustomEvent(O.HERE_RICKY,{detail:{component:this},bubbles:!0,composed:!0}))}})),n.fromEvent(window,_).pipe(n.tap({next:e=>{e.detail.id===this.id&&this.uuid&&e.detail.callerID!==this.uuid&&this.dispatchEvent(new CustomEvent(A,{detail:{component:this},bubbles:!0,composed:!0}))}}))).pipe(n.takeUntil(this.disconnecting)).subscribe()}async firstUpdated(){n.of(f.activeTeleportations.get(this.id)).pipe(n.filter(e=>!!e),n.takeUntil(this.disconnecting),n.throwIfEmpty()).subscribe({next:e=>{this.style.setProperty("visibility","hidden"),B(this).pipe(n.takeUntil(this.disconnecting)).subscribe({next:t=>{f.activeTeleportations.set(this.id,t),f.flipRequests.next({from:{rect:e},to:{rect:t,element:this._slottedChildren[0]},host:this})}})},error:()=>{this.style.setProperty("visibility","visible"),B(this).pipe(n.takeUntil(this.disconnecting)).subscribe({next:e=>{f.activeTeleportations.set(this.id,e)}})},complete:()=>{}})}render(){return h.html`<slot></slot>`}},q([c.property({type:Number,reflect:!0})],exports.SchmancyTeleportation.prototype,"uuid",2),q([c.property({type:String})],exports.SchmancyTeleportation.prototype,"id",2),q([c.property({type:Number})],exports.SchmancyTeleportation.prototype,"delay",2),exports.SchmancyTeleportation=q([c.customElement("schmancy-teleport")],exports.SchmancyTeleportation),exports.$drawer=ae,exports.HereMorty=A,exports.SchmancyContentDrawerID=X,exports.SchmancyContentDrawerMaxHeight=k,exports.SchmancyContentDrawerMinWidth=N,exports.SchmancyContentDrawerSheetMode=M,exports.SchmancyContentDrawerSheetState=R,exports.SchmancyDrawerNavbarMode=W,exports.SchmancyDrawerNavbarState=j,exports.WhereAreYouRicky=_,exports.schmancyContentDrawer=Z,exports.schmancyNavDrawer=K,exports.teleport=f;
|
|
150
|
-
//# sourceMappingURL=teleport.component-
|
|
150
|
+
//# sourceMappingURL=teleport.component-CgOdCzLc.cjs.map
|