@mhmo91/schmancy 0.9.17 → 0.9.19
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/custom-elements.json +85 -46
- package/dist/agent/index.es-Dymj8REP.js +489 -0
- package/dist/agent/index.es-Dymj8REP.js.map +1 -0
- package/dist/agent/schmancy.agent.js +239 -580
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +198 -18
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js.map +1 -1
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js.map +1 -1
- package/dist/{flow-BGkHnOnd.js.map → flow-BPDtbhLe.js.map} +1 -1
- package/dist/{flow-ClAJ6Qby.cjs.map → flow-Dn9AZktE.cjs.map} +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.es-BgmFX1JM.cjs +1 -0
- package/dist/index.es-BgmFX1JM.cjs.map +1 -0
- package/dist/index.es-CLyb_o3Y.js +489 -0
- package/dist/index.es-CLyb_o3Y.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/list-BpjKUOzM.js.map +1 -1
- package/dist/list-CMWHu6cV.cjs.map +1 -1
- package/dist/menu-BIBUgS1T.js.map +1 -1
- package/dist/menu-DS8Iz4fJ.cjs.map +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js.map +1 -1
- package/dist/sheet-DdlZhnDG.cjs.map +1 -1
- package/dist/sheet-LFVo5iN4.js.map +1 -1
- package/dist/{splash-screen-COg3Z6n8.js.map → splash-screen-BHgb3c3Q.js.map} +1 -1
- package/dist/{splash-screen-C9HqX2nR.cjs.map → splash-screen-DteUfSV3.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-C7niWYur.js → src-BGj6ufWS.js} +4 -4
- package/dist/src-BGj6ufWS.js.map +1 -0
- package/dist/{src-I4M33WK2.cjs → src-BPKGdQdp.cjs} +1 -1
- package/dist/src-BPKGdQdp.cjs.map +1 -0
- package/dist/{table-B-DsOqzT.cjs → table-DFlJhG5E.cjs} +1 -1
- package/dist/{table-B-DsOqzT.cjs.map → table-DFlJhG5E.cjs.map} +1 -1
- package/dist/{table-hBEZRxM_.js → table-Dwt66SR6.js} +1 -1
- package/dist/{table-hBEZRxM_.js.map → table-Dwt66SR6.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/typewriter.cjs +123 -1
- package/dist/typewriter.cjs.map +1 -0
- package/dist/typewriter.js +214 -2
- package/dist/typewriter.js.map +1 -0
- package/dist/{utils-xBXLvebz.js.map → utils-Bp2jhyZc.js.map} +1 -1
- package/dist/{utils-2qrmPb78.cjs.map → utils-CBPQvxNW.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/src/breadcrumb/breadcrumb.ts +14 -4
- package/src/dialog/dialog.component.ts +9 -9
- package/src/dropdown/dropdown-component.ts +13 -1
- package/src/dropdown/dropdown-content.ts +11 -3
- package/src/list/list-item.ts +10 -0
- package/src/list/list.ts +7 -8
- package/src/menu/menu-item.ts +13 -0
- package/src/menu/menu.ts +10 -22
- package/src/nav-drawer/appbar.ts +11 -0
- package/src/nav-drawer/content.ts +11 -0
- package/src/nav-drawer/drawer.ts +15 -0
- package/src/nav-drawer/navbar.ts +14 -0
- package/src/navigation-bar/navigation-bar-item.ts +3 -4
- package/src/navigation-bar/navigation-bar.ts +3 -9
- package/src/navigation-rail/navigation-rail-item.ts +3 -7
- package/src/navigation-rail/navigation-rail.ts +12 -8
- package/src/sheet/sheet.ts +17 -0
- package/src/typewriter/typewriter.ts +26 -4
- package/types/src/breadcrumb/breadcrumb.d.ts +14 -4
- package/types/src/dialog/dialog.component.d.ts +9 -9
- package/types/src/dropdown/dropdown-component.d.ts +13 -1
- package/types/src/dropdown/dropdown-content.d.ts +11 -3
- package/types/src/list/list-item.d.ts +10 -0
- package/types/src/list/list.d.ts +7 -8
- package/types/src/menu/menu-item.d.ts +13 -0
- package/types/src/menu/menu.d.ts +10 -22
- package/types/src/nav-drawer/appbar.d.ts +11 -0
- package/types/src/nav-drawer/content.d.ts +11 -0
- package/types/src/nav-drawer/drawer.d.ts +15 -0
- package/types/src/nav-drawer/navbar.d.ts +14 -0
- package/types/src/navigation-bar/navigation-bar-item.d.ts +3 -4
- package/types/src/navigation-bar/navigation-bar.d.ts +3 -9
- package/types/src/navigation-rail/navigation-rail-item.d.ts +3 -7
- package/types/src/navigation-rail/navigation-rail.d.ts +12 -8
- package/types/src/sheet/sheet.d.ts +17 -0
- package/types/src/typewriter/typewriter.d.ts +4 -1
- package/dist/src-C7niWYur.js.map +0 -1
- package/dist/src-I4M33WK2.cjs.map +0 -1
- package/dist/typewriter-DyN7xa0n.js +0 -701
- package/dist/typewriter-DyN7xa0n.js.map +0 -1
- package/dist/typewriter-LK0S4NEr.cjs +0 -123
- package/dist/typewriter-LK0S4NEr.cjs.map +0 -1
- /package/dist/{flow-BGkHnOnd.js → flow-BPDtbhLe.js} +0 -0
- /package/dist/{flow-ClAJ6Qby.cjs → flow-Dn9AZktE.cjs} +0 -0
- /package/dist/{splash-screen-COg3Z6n8.js → splash-screen-BHgb3c3Q.js} +0 -0
- /package/dist/{splash-screen-C9HqX2nR.cjs → splash-screen-DteUfSV3.cjs} +0 -0
- /package/dist/{utils-xBXLvebz.js → utils-Bp2jhyZc.js} +0 -0
- /package/dist/{utils-2qrmPb78.cjs → utils-CBPQvxNW.cjs} +0 -0
|
@@ -29293,494 +29293,7 @@ var rp = class extends B(I`
|
|
|
29293
29293
|
}
|
|
29294
29294
|
};
|
|
29295
29295
|
P([L({ type: Boolean })], rp.prototype, "open", void 0), P([z("#toggler")], rp.prototype, "toggler", void 0), P([z("slot:not([name=\"root\"])")], rp.prototype, "defaultSlot", void 0), P([z("#chevron")], rp.prototype, "chevron", void 0), rp = P([F("schmancy-tree")], rp);
|
|
29296
|
-
var ip =
|
|
29297
|
-
started: !1,
|
|
29298
|
-
completed: !1,
|
|
29299
|
-
frozen: !1,
|
|
29300
|
-
destroyed: !1
|
|
29301
|
-
}, lp = {
|
|
29302
|
-
breakLines: !0,
|
|
29303
|
-
cursor: {
|
|
29304
|
-
autoPause: !0,
|
|
29305
|
-
autoPauseDelay: 500,
|
|
29306
|
-
animation: {
|
|
29307
|
-
frames: [
|
|
29308
|
-
0,
|
|
29309
|
-
0,
|
|
29310
|
-
1
|
|
29311
|
-
].map((e) => ({ opacity: e })),
|
|
29312
|
-
options: {
|
|
29313
|
-
iterations: Infinity,
|
|
29314
|
-
easing: "steps(2, start)",
|
|
29315
|
-
fill: "forwards"
|
|
29316
|
-
}
|
|
29317
|
-
}
|
|
29318
|
-
},
|
|
29319
|
-
cursorChar: "|",
|
|
29320
|
-
cursorSpeed: 1e3,
|
|
29321
|
-
deleteSpeed: null,
|
|
29322
|
-
html: !0,
|
|
29323
|
-
lifeLike: !0,
|
|
29324
|
-
loop: !1,
|
|
29325
|
-
loopDelay: 750,
|
|
29326
|
-
nextStringDelay: 750,
|
|
29327
|
-
speed: 100,
|
|
29328
|
-
startDelay: 250,
|
|
29329
|
-
startDelete: !1,
|
|
29330
|
-
strings: [],
|
|
29331
|
-
waitUntilVisible: !1,
|
|
29332
|
-
beforeString: () => {},
|
|
29333
|
-
afterString: () => {},
|
|
29334
|
-
beforeStep: () => {},
|
|
29335
|
-
afterStep: () => {},
|
|
29336
|
-
afterComplete: () => {}
|
|
29337
|
-
}, up = `[${op}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`, dp = (e) => document.createElement(e), fp = (e) => document.createTextNode(e), pp = (e, t = "") => {
|
|
29338
|
-
let n = dp("style");
|
|
29339
|
-
n.id = t, n.appendChild(fp(e)), document.head.appendChild(n);
|
|
29340
|
-
}, mp = (e) => (ip(e) || (e = [e / 2, e / 2]), e), hp = (e, t) => Math.abs(Math.random() * (e + t - (e - t)) + (e - t)), gp = (e) => e / 2, _p = (e) => Array.from(e), vp = (e) => ([...e.childNodes].forEach((e) => {
|
|
29341
|
-
if (e.nodeValue) return [...e.nodeValue].forEach((t) => {
|
|
29342
|
-
e.parentNode.insertBefore(fp(t), e);
|
|
29343
|
-
}), void e.remove();
|
|
29344
|
-
vp(e);
|
|
29345
|
-
}), e), yp = (e) => {
|
|
29346
|
-
let t = document.implementation.createHTMLDocument();
|
|
29347
|
-
return t.body.innerHTML = e, vp(t.body);
|
|
29348
|
-
};
|
|
29349
|
-
function bp(e, t = !1, n = !1) {
|
|
29350
|
-
let r, i = e.querySelector(`.${sp}`), a = document.createTreeWalker(e, NodeFilter.SHOW_ALL, { acceptNode: (e) => {
|
|
29351
|
-
if (i && n) {
|
|
29352
|
-
if (e.classList?.contains(sp)) return NodeFilter.FILTER_ACCEPT;
|
|
29353
|
-
if (i.contains(e)) return NodeFilter.FILTER_REJECT;
|
|
29354
|
-
}
|
|
29355
|
-
return e.classList?.contains(sp) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
|
|
29356
|
-
} }), o = [];
|
|
29357
|
-
for (; r = a.nextNode();) r.originalParent ||= r.parentNode, o.push(r);
|
|
29358
|
-
return t ? o.reverse() : o;
|
|
29359
|
-
}
|
|
29360
|
-
function xp(e, t = !0) {
|
|
29361
|
-
return t ? bp(yp(e)) : _p(e).map(fp);
|
|
29362
|
-
}
|
|
29363
|
-
var Sp = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
|
|
29364
|
-
for (let i = e + 1; i < t + 1; i++) r(n[i][0]);
|
|
29365
|
-
}, Cp = (e) => Number.isInteger(e), wp = ({ queueItems: e, selector: t, cursorPosition: n, to: r }) => {
|
|
29366
|
-
if (Cp(t)) return -1 * t;
|
|
29367
|
-
let i = (/* @__PURE__ */ RegExp("END", "i")).test(r), a = t ? [...e].reverse().findIndex(({ char: e }) => {
|
|
29368
|
-
let n = e.parentElement, r = n.matches(t);
|
|
29369
|
-
return !(!i || !r) || r && n.firstChild.isSameNode(e);
|
|
29370
|
-
}) : -1;
|
|
29371
|
-
return a < 0 && (a = i ? 0 : e.length - 1), a - n + +!i;
|
|
29372
|
-
}, Tp = (e, t) => Array(t).fill(e), Ep = (e) => new Promise((t) => {
|
|
29373
|
-
requestAnimationFrame(async () => {
|
|
29374
|
-
t(await e());
|
|
29375
|
-
});
|
|
29376
|
-
}), Dp = (e) => e?.getAnimations().find((t) => t.id === e.dataset.tiAnimationId), Op = ({ cursor: e, frames: t, options: n }) => {
|
|
29377
|
-
let r = e.animate(t, n);
|
|
29378
|
-
return r.pause(), r.id = e.dataset.tiAnimationId, Ep(() => {
|
|
29379
|
-
Ep(() => {
|
|
29380
|
-
r.play();
|
|
29381
|
-
});
|
|
29382
|
-
}), r;
|
|
29383
|
-
}, kp = (e) => e.func?.call(null), Ap = async ({ index: e, queueItems: t, wait: n, cursor: r, cursorOptions: i }) => {
|
|
29384
|
-
let a = t[e][1], o = [], s = e, c = a, l = () => c && !c.delay, u = a.shouldPauseCursor() && i.autoPause;
|
|
29385
|
-
for (; l();) o.push(c), l() && s++, c = t[s] ? t[s][1] : null;
|
|
29386
|
-
if (o.length) return await Ep(async () => {
|
|
29387
|
-
for (let e of o) await kp(e);
|
|
29388
|
-
}), s - 1;
|
|
29389
|
-
let d, f = Dp(r);
|
|
29390
|
-
return f && (d = {
|
|
29391
|
-
...f.effect.getComputedTiming(),
|
|
29392
|
-
delay: u ? i.autoPauseDelay : 0
|
|
29393
|
-
}), await n(async () => {
|
|
29394
|
-
f && u && f.cancel(), await Ep(() => {
|
|
29395
|
-
kp(a);
|
|
29396
|
-
});
|
|
29397
|
-
}, a.delay), await (({ cursor: e, options: t, cursorOptions: n }) => {
|
|
29398
|
-
if (!e || !n) return;
|
|
29399
|
-
let r, i = Dp(e);
|
|
29400
|
-
i && (t.delay = i.effect.getComputedTiming().delay, r = i.currentTime, i.cancel());
|
|
29401
|
-
let a = Op({
|
|
29402
|
-
cursor: e,
|
|
29403
|
-
frames: n.animation.frames,
|
|
29404
|
-
options: t
|
|
29405
|
-
});
|
|
29406
|
-
return r && (a.currentTime = r), a;
|
|
29407
|
-
})({
|
|
29408
|
-
cursor: r,
|
|
29409
|
-
options: d,
|
|
29410
|
-
cursorOptions: i
|
|
29411
|
-
}), e;
|
|
29412
|
-
}, jp = (e) => "value" in e, Mp = (e) => typeof e == "function" ? e() : e, Np = (e, t = document, n = !1) => t["querySelector" + (n ? "All" : "")](e), Pp = (e, t) => Object.assign({}, e, t), Fp = {
|
|
29413
|
-
"font-family": "",
|
|
29414
|
-
"font-weight": "",
|
|
29415
|
-
"font-size": "",
|
|
29416
|
-
"font-style": "",
|
|
29417
|
-
"line-height": "",
|
|
29418
|
-
color: "",
|
|
29419
|
-
transform: "translateX(-.125em)"
|
|
29420
|
-
}, Ip = class {
|
|
29421
|
-
element;
|
|
29422
|
-
timeouts;
|
|
29423
|
-
cursorPosition;
|
|
29424
|
-
predictedCursorPosition;
|
|
29425
|
-
statuses = {
|
|
29426
|
-
started: !1,
|
|
29427
|
-
completed: !1,
|
|
29428
|
-
frozen: !1,
|
|
29429
|
-
destroyed: !1,
|
|
29430
|
-
firing: !1
|
|
29431
|
-
};
|
|
29432
|
-
opts;
|
|
29433
|
-
id;
|
|
29434
|
-
queue;
|
|
29435
|
-
cursor;
|
|
29436
|
-
flushCallback = null;
|
|
29437
|
-
unfreeze = () => {};
|
|
29438
|
-
constructor(e, t = {}) {
|
|
29439
|
-
var n;
|
|
29440
|
-
this.opts = Pp(lp, t), this.element = typeof (n = e) == "string" ? Np(n) : n, this.timeouts = [], this.cursorPosition = 0, this.unfreeze = () => {}, this.predictedCursorPosition = null, this.statuses = Pp({}, cp), this.id = Math.random().toString().substring(2, 9), this.queue = function(e) {
|
|
29441
|
-
let t = function(e) {
|
|
29442
|
-
return ap(e).forEach((e) => a.set(Symbol(e.char?.innerText), n({ ...e }))), this;
|
|
29443
|
-
}, n = (e) => (e.shouldPauseCursor = function() {
|
|
29444
|
-
return !!(this.typeable || this.cursorable || this.deletable);
|
|
29445
|
-
}, e), r = () => a, i = () => Array.from(a.values()), a = /* @__PURE__ */ new Map();
|
|
29446
|
-
return t(e), {
|
|
29447
|
-
add: t,
|
|
29448
|
-
set: function(e, t) {
|
|
29449
|
-
let r = [...a.keys()];
|
|
29450
|
-
a.set(r[e], n(t));
|
|
29451
|
-
},
|
|
29452
|
-
wipe: function() {
|
|
29453
|
-
a = /* @__PURE__ */ new Map(), t(e);
|
|
29454
|
-
},
|
|
29455
|
-
done: (e, t = !1) => t ? a.delete(e) : a.get(e).done = !0,
|
|
29456
|
-
reset: function() {
|
|
29457
|
-
a.forEach((e) => delete e.done);
|
|
29458
|
-
},
|
|
29459
|
-
destroy: (e) => a.delete(e),
|
|
29460
|
-
getItems: (e = !1) => e ? i() : i().filter((e) => !e.done),
|
|
29461
|
-
getQueue: r,
|
|
29462
|
-
getTypeable: () => i().filter((e) => e.typeable),
|
|
29463
|
-
getPendingQueueItems: () => {
|
|
29464
|
-
let e = [];
|
|
29465
|
-
for (let [, t] of r()) t.done || e.push(t);
|
|
29466
|
-
return e;
|
|
29467
|
-
}
|
|
29468
|
-
};
|
|
29469
|
-
}([{ delay: this.opts.startDelay }]), this.#p(t), this.cursor = this.#h(), this.element.dataset.typeitId = this.id, pp(up), this.opts.strings.length && this.#f();
|
|
29470
|
-
}
|
|
29471
|
-
go() {
|
|
29472
|
-
return this.statuses.started ? this : (this.#o(), this.opts.waitUntilVisible ? (e = this.element, t = this.#t.bind(this), new IntersectionObserver((n, r) => {
|
|
29473
|
-
n.forEach((n) => {
|
|
29474
|
-
n.isIntersecting && (t(), r.unobserve(e));
|
|
29475
|
-
});
|
|
29476
|
-
}, { threshold: 1 }).observe(e), this) : (this.#t(), this));
|
|
29477
|
-
var e, t;
|
|
29478
|
-
}
|
|
29479
|
-
destroy(e = !0) {
|
|
29480
|
-
this.timeouts = (this.timeouts.forEach(clearTimeout), []), Mp(e) && this.cursor && this.#y(this.cursor), this.statuses.destroyed = !0;
|
|
29481
|
-
}
|
|
29482
|
-
reset(e) {
|
|
29483
|
-
!this.is("destroyed") && this.destroy(), e ? (this.queue.wipe(), e(this)) : this.queue.reset(), this.cursorPosition = 0;
|
|
29484
|
-
for (let e in this.statuses) this.statuses[e] = !1;
|
|
29485
|
-
return this.element[this.#s() ? "value" : "innerHTML"] = "", this;
|
|
29486
|
-
}
|
|
29487
|
-
is = function(e) {
|
|
29488
|
-
return this.statuses[e];
|
|
29489
|
-
};
|
|
29490
|
-
type(e, t = {}) {
|
|
29491
|
-
e = Mp(e);
|
|
29492
|
-
let { instant: n } = t, r = this.#u(t), i = xp(e, this.opts.html).map((e) => {
|
|
29493
|
-
return {
|
|
29494
|
-
func: () => this.#_(e),
|
|
29495
|
-
char: e,
|
|
29496
|
-
delay: n || (t = e, /<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML)) ? 0 : this.#b(),
|
|
29497
|
-
typeable: e.nodeType === Node.TEXT_NODE
|
|
29498
|
-
};
|
|
29499
|
-
var t;
|
|
29500
|
-
}), a = [
|
|
29501
|
-
r[0],
|
|
29502
|
-
{ func: async () => await this.opts.beforeString(e, this) },
|
|
29503
|
-
...i,
|
|
29504
|
-
{ func: async () => await this.opts.afterString(e, this) },
|
|
29505
|
-
r[1]
|
|
29506
|
-
];
|
|
29507
|
-
return this.#c(a, t);
|
|
29508
|
-
}
|
|
29509
|
-
break(e = {}) {
|
|
29510
|
-
return this.#c({
|
|
29511
|
-
func: () => this.#_(dp("BR")),
|
|
29512
|
-
typeable: !0
|
|
29513
|
-
}, e);
|
|
29514
|
-
}
|
|
29515
|
-
move(e, t = {}) {
|
|
29516
|
-
e = Mp(e);
|
|
29517
|
-
let n = this.#u(t), { instant: r, to: i } = t, a = wp({
|
|
29518
|
-
queueItems: this.queue.getTypeable(),
|
|
29519
|
-
selector: e === null ? "" : e,
|
|
29520
|
-
to: i,
|
|
29521
|
-
cursorPosition: this.#x
|
|
29522
|
-
}), o = a < 0 ? -1 : 1;
|
|
29523
|
-
return this.predictedCursorPosition = this.#x + a, this.#c([
|
|
29524
|
-
n[0],
|
|
29525
|
-
...Tp({
|
|
29526
|
-
func: () => this.#n(o),
|
|
29527
|
-
delay: r ? 0 : this.#b(),
|
|
29528
|
-
cursorable: !0
|
|
29529
|
-
}, Math.abs(a)),
|
|
29530
|
-
n[1]
|
|
29531
|
-
], t);
|
|
29532
|
-
}
|
|
29533
|
-
exec(e, t = {}) {
|
|
29534
|
-
let n = this.#u(t);
|
|
29535
|
-
return this.#c([
|
|
29536
|
-
n[0],
|
|
29537
|
-
{ func: () => e(this) },
|
|
29538
|
-
n[1]
|
|
29539
|
-
], t);
|
|
29540
|
-
}
|
|
29541
|
-
options(e, t = {}) {
|
|
29542
|
-
return e = Mp(e), this.#d(e), this.#c({}, t);
|
|
29543
|
-
}
|
|
29544
|
-
pause(e, t = {}) {
|
|
29545
|
-
return this.#c({ delay: Mp(e) }, t);
|
|
29546
|
-
}
|
|
29547
|
-
delete(e = null, t = {}) {
|
|
29548
|
-
e = Mp(e);
|
|
29549
|
-
let n = this.#u(t), r = e, { instant: i, to: a } = t, o = this.queue.getTypeable(), s = r === null ? o.length : Cp(r) ? r : wp({
|
|
29550
|
-
queueItems: o,
|
|
29551
|
-
selector: r,
|
|
29552
|
-
cursorPosition: this.#x,
|
|
29553
|
-
to: a
|
|
29554
|
-
});
|
|
29555
|
-
return this.#c([
|
|
29556
|
-
n[0],
|
|
29557
|
-
...Tp({
|
|
29558
|
-
func: this.#v.bind(this),
|
|
29559
|
-
delay: i ? 0 : this.#b(1),
|
|
29560
|
-
deletable: !0
|
|
29561
|
-
}, s),
|
|
29562
|
-
n[1]
|
|
29563
|
-
], t);
|
|
29564
|
-
}
|
|
29565
|
-
freeze() {
|
|
29566
|
-
this.statuses.frozen = !0;
|
|
29567
|
-
}
|
|
29568
|
-
flush(e = null) {
|
|
29569
|
-
return this.flushCallback = e || this.flushCallback, this.statuses.firing || (this.#o(), this.#t(!1).then(() => {
|
|
29570
|
-
if (this.queue.getPendingQueueItems().length > 0) return this.flush();
|
|
29571
|
-
this.flushCallback(), this.flushCallback = null;
|
|
29572
|
-
})), this;
|
|
29573
|
-
}
|
|
29574
|
-
getQueue() {
|
|
29575
|
-
return this.queue;
|
|
29576
|
-
}
|
|
29577
|
-
getOptions() {
|
|
29578
|
-
return this.opts;
|
|
29579
|
-
}
|
|
29580
|
-
updateOptions(e) {
|
|
29581
|
-
return this.#d(e);
|
|
29582
|
-
}
|
|
29583
|
-
getElement() {
|
|
29584
|
-
return this.element;
|
|
29585
|
-
}
|
|
29586
|
-
empty(e = {}) {
|
|
29587
|
-
return this.#c({ func: this.#e.bind(this) }, e);
|
|
29588
|
-
}
|
|
29589
|
-
async #e() {
|
|
29590
|
-
this.#s() ? this.element.value = "" : this.#w.forEach(this.#y.bind(this));
|
|
29591
|
-
}
|
|
29592
|
-
async #t(e = !0) {
|
|
29593
|
-
this.statuses.started = !0, this.statuses.firing = !0;
|
|
29594
|
-
let t = (t) => {
|
|
29595
|
-
this.queue.done(t, !e);
|
|
29596
|
-
};
|
|
29597
|
-
try {
|
|
29598
|
-
let n = [...this.queue.getQueue()];
|
|
29599
|
-
for (let e = 0; e < n.length; e++) {
|
|
29600
|
-
let [r, i] = n[e];
|
|
29601
|
-
if (!i.done) {
|
|
29602
|
-
if (!i.deletable || i.deletable && this.#w.length) {
|
|
29603
|
-
let r = await this.#i(e, n);
|
|
29604
|
-
Sp({
|
|
29605
|
-
index: e,
|
|
29606
|
-
newIndex: r,
|
|
29607
|
-
queueItems: n,
|
|
29608
|
-
cleanUp: t
|
|
29609
|
-
}), e = r;
|
|
29610
|
-
}
|
|
29611
|
-
t(r);
|
|
29612
|
-
}
|
|
29613
|
-
}
|
|
29614
|
-
if (!e) return this.statuses.firing = !1, this;
|
|
29615
|
-
if (this.statuses.completed = !0, this.statuses.firing = !1, await this.opts.afterComplete(this), !this.opts.loop) throw "";
|
|
29616
|
-
let r = this.opts.loopDelay;
|
|
29617
|
-
this.#a(async () => {
|
|
29618
|
-
await this.#r(r[0]), this.#t();
|
|
29619
|
-
}, r[1]);
|
|
29620
|
-
} catch {}
|
|
29621
|
-
return this.statuses.firing = !1, this;
|
|
29622
|
-
}
|
|
29623
|
-
async #n(e) {
|
|
29624
|
-
var t, n, r;
|
|
29625
|
-
this.cursorPosition = (t = e, n = this.cursorPosition, r = this.#w, Math.min(Math.max(n + t, 0), r.length)), ((e, t, n) => {
|
|
29626
|
-
let r = t[n - 1], i = Np(`.${sp}`, e);
|
|
29627
|
-
(e = r?.parentNode || e).insertBefore(i, r || null);
|
|
29628
|
-
})(this.element, this.#w, this.cursorPosition);
|
|
29629
|
-
}
|
|
29630
|
-
async #r(e) {
|
|
29631
|
-
let t = this.#x;
|
|
29632
|
-
t && await this.#n({ value: t });
|
|
29633
|
-
let n = this.#w.map((e) => [Symbol(), {
|
|
29634
|
-
func: this.#v.bind(this),
|
|
29635
|
-
delay: this.#b(1),
|
|
29636
|
-
deletable: !0,
|
|
29637
|
-
shouldPauseCursor: () => !0
|
|
29638
|
-
}]);
|
|
29639
|
-
for (let e = 0; e < n.length; e++) await this.#i(e, n);
|
|
29640
|
-
this.queue.reset(), this.queue.set(0, { delay: e });
|
|
29641
|
-
}
|
|
29642
|
-
#i(e, t) {
|
|
29643
|
-
return Ap({
|
|
29644
|
-
index: e,
|
|
29645
|
-
queueItems: t,
|
|
29646
|
-
wait: this.#a.bind(this),
|
|
29647
|
-
cursor: this.cursor,
|
|
29648
|
-
cursorOptions: this.opts.cursor
|
|
29649
|
-
});
|
|
29650
|
-
}
|
|
29651
|
-
async #a(e, t, n = !1) {
|
|
29652
|
-
this.statuses.frozen && await new Promise((e) => {
|
|
29653
|
-
this.unfreeze = () => {
|
|
29654
|
-
this.statuses.frozen = !1, e();
|
|
29655
|
-
};
|
|
29656
|
-
}), n || await this.opts.beforeStep(this), await ((e, t, n) => new Promise((r) => {
|
|
29657
|
-
n.push(setTimeout(async () => {
|
|
29658
|
-
await e(), r();
|
|
29659
|
-
}, t || 0));
|
|
29660
|
-
}))(e, t, this.timeouts), n || await this.opts.afterStep(this);
|
|
29661
|
-
}
|
|
29662
|
-
async #o() {
|
|
29663
|
-
if (!this.#s() && this.cursor && this.element.appendChild(this.cursor), this.#C) {
|
|
29664
|
-
((e, t) => {
|
|
29665
|
-
let n = `[${op}='${e}'] .${sp}`, r = getComputedStyle(t);
|
|
29666
|
-
pp(`${n} { display: inline-block; width: 0; ${Object.entries(Fp).reduce((e, [t, n]) => `${e} ${t}: var(--ti-cursor-${t}, ${n || r[t]});`, "")} }`, e);
|
|
29667
|
-
})(this.id, this.element), this.cursor.dataset.tiAnimationId = this.id;
|
|
29668
|
-
let { animation: e } = this.opts.cursor, { frames: t, options: n } = e;
|
|
29669
|
-
Op({
|
|
29670
|
-
frames: t,
|
|
29671
|
-
cursor: this.cursor,
|
|
29672
|
-
options: {
|
|
29673
|
-
duration: this.opts.cursorSpeed,
|
|
29674
|
-
...n
|
|
29675
|
-
}
|
|
29676
|
-
});
|
|
29677
|
-
}
|
|
29678
|
-
}
|
|
29679
|
-
#s() {
|
|
29680
|
-
return jp(this.element);
|
|
29681
|
-
}
|
|
29682
|
-
#c(e, t) {
|
|
29683
|
-
return this.queue.add(e), this.#l(t), this;
|
|
29684
|
-
}
|
|
29685
|
-
#l(e = {}) {
|
|
29686
|
-
let t = e.delay;
|
|
29687
|
-
t && this.queue.add({ delay: t });
|
|
29688
|
-
}
|
|
29689
|
-
#u(e = {}) {
|
|
29690
|
-
return [{ func: () => this.#d(e) }, { func: () => this.#d(this.opts) }];
|
|
29691
|
-
}
|
|
29692
|
-
async #d(e) {
|
|
29693
|
-
this.opts = Pp(this.opts, e);
|
|
29694
|
-
}
|
|
29695
|
-
#f() {
|
|
29696
|
-
let e = this.opts.strings.filter((e) => !!e);
|
|
29697
|
-
e.forEach((t, n) => {
|
|
29698
|
-
if (this.type(t), n + 1 === e.length) return;
|
|
29699
|
-
let r = this.opts.breakLines ? [{
|
|
29700
|
-
func: () => this.#_(dp("BR")),
|
|
29701
|
-
typeable: !0
|
|
29702
|
-
}] : Tp({
|
|
29703
|
-
func: this.#v.bind(this),
|
|
29704
|
-
delay: this.#b(1)
|
|
29705
|
-
}, this.queue.getTypeable().length);
|
|
29706
|
-
this.#g(r);
|
|
29707
|
-
});
|
|
29708
|
-
}
|
|
29709
|
-
#p = (e) => {
|
|
29710
|
-
this.opts.cursor = ((e) => {
|
|
29711
|
-
if (typeof e == "object") {
|
|
29712
|
-
let t = {}, { frames: n, options: r } = lp.cursor.animation;
|
|
29713
|
-
return t.animation = e.animation || {}, t.animation.frames = e.animation?.frames || n, t.animation.options = Pp(r, e.animation?.options || {}), t.autoPause = e.autoPause ?? lp.cursor.autoPause, t.autoPauseDelay = e.autoPauseDelay || lp.cursor.autoPauseDelay, t;
|
|
29714
|
-
}
|
|
29715
|
-
return !0 === e ? lp.cursor : e;
|
|
29716
|
-
})(e.cursor ?? lp.cursor), this.opts.strings = this.#m(ap(this.opts.strings)), this.opts = Pp(this.opts, {
|
|
29717
|
-
html: !this.#S && this.opts.html,
|
|
29718
|
-
nextStringDelay: mp(this.opts.nextStringDelay),
|
|
29719
|
-
loopDelay: mp(this.opts.loopDelay)
|
|
29720
|
-
});
|
|
29721
|
-
};
|
|
29722
|
-
#m(e) {
|
|
29723
|
-
let t = this.element.innerHTML;
|
|
29724
|
-
return t ? (this.element.innerHTML = "", this.opts.startDelete ? (this.element.innerHTML = t, vp(this.element), this.#g(Tp({
|
|
29725
|
-
func: this.#v.bind(this),
|
|
29726
|
-
delay: this.#b(1),
|
|
29727
|
-
deletable: !0
|
|
29728
|
-
}, this.#w.length)), e) : (n = t, n.replace(/<!--(.+?)-->/g, "").trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)) : e;
|
|
29729
|
-
var n;
|
|
29730
|
-
}
|
|
29731
|
-
#h() {
|
|
29732
|
-
if (this.#S) return null;
|
|
29733
|
-
let e = dp("span");
|
|
29734
|
-
return e.className = sp, this.#C ? (e.innerHTML = yp(this.opts.cursorChar).innerHTML, e) : (e.style.visibility = "hidden", e);
|
|
29735
|
-
}
|
|
29736
|
-
#g(e) {
|
|
29737
|
-
let t = this.opts.nextStringDelay;
|
|
29738
|
-
this.queue.add([
|
|
29739
|
-
{ delay: t[0] },
|
|
29740
|
-
...e,
|
|
29741
|
-
{ delay: t[1] }
|
|
29742
|
-
]);
|
|
29743
|
-
}
|
|
29744
|
-
#_(e) {
|
|
29745
|
-
((e, t) => {
|
|
29746
|
-
if (jp(e)) return void (e.value = `${e.value}${t.textContent}`);
|
|
29747
|
-
t.innerHTML = "";
|
|
29748
|
-
let n = (r = t.originalParent, /body/i.test(r?.tagName) ? e : t.originalParent || e);
|
|
29749
|
-
var r;
|
|
29750
|
-
let i = Np("." + sp, n) || null;
|
|
29751
|
-
i && i.parentElement !== n && (n = i.parentElement), n.insertBefore(t, i);
|
|
29752
|
-
})(this.element, e);
|
|
29753
|
-
}
|
|
29754
|
-
#v() {
|
|
29755
|
-
this.#w.length && (this.#S ? this.element.value = this.element.value.slice(0, -1) : this.#y(this.#w[this.cursorPosition]));
|
|
29756
|
-
}
|
|
29757
|
-
#y(e) {
|
|
29758
|
-
((e, t) => {
|
|
29759
|
-
if (!e) return;
|
|
29760
|
-
let n = e.parentNode;
|
|
29761
|
-
(n.childNodes.length > 1 || n.isSameNode(t) ? e : n).remove();
|
|
29762
|
-
})(e, this.element);
|
|
29763
|
-
}
|
|
29764
|
-
#b(e = 0) {
|
|
29765
|
-
return function(e) {
|
|
29766
|
-
let { speed: t, deleteSpeed: n, lifeLike: r } = e;
|
|
29767
|
-
return n = n === null ? t / 3 : n, r ? [hp(t, gp(t)), hp(n, gp(n))] : [t, n];
|
|
29768
|
-
}(this.opts)[e];
|
|
29769
|
-
}
|
|
29770
|
-
get #x() {
|
|
29771
|
-
return this.predictedCursorPosition ?? this.cursorPosition;
|
|
29772
|
-
}
|
|
29773
|
-
get #S() {
|
|
29774
|
-
return jp(this.element);
|
|
29775
|
-
}
|
|
29776
|
-
get #C() {
|
|
29777
|
-
return !!this.opts.cursor && !this.#S;
|
|
29778
|
-
}
|
|
29779
|
-
get #w() {
|
|
29780
|
-
return e = this.element, jp(e) ? _p(e.value) : bp(e, !0).filter((e) => !(e.childNodes.length > 0));
|
|
29781
|
-
var e;
|
|
29782
|
-
}
|
|
29783
|
-
}, Lp = class extends V(I`
|
|
29296
|
+
var ip = null, ap = class extends V(I`
|
|
29784
29297
|
:host {
|
|
29785
29298
|
display: inline-block;
|
|
29786
29299
|
}
|
|
@@ -29902,7 +29415,7 @@ var Sp = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
|
|
|
29902
29415
|
disconnectedCallback() {
|
|
29903
29416
|
super.disconnectedCallback(), this._destroyTypeIt();
|
|
29904
29417
|
}
|
|
29905
|
-
_startTyping() {
|
|
29418
|
+
async _startTyping() {
|
|
29906
29419
|
if (this._destroyTypeIt(), this.sessionKey = this.generateSessionKey(), this.once && sessionStorage.getItem(this.sessionKey) === "true") return void this.shadowRoot?.querySelector("slot")?.removeAttribute("hidden");
|
|
29907
29420
|
if (!this.typewriterContainer) return;
|
|
29908
29421
|
let e = {
|
|
@@ -29921,8 +29434,8 @@ var Sp = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
|
|
|
29921
29434
|
composed: !0
|
|
29922
29435
|
})), this.loop || this.typewriterContainer.style.setProperty("--ti-cursor-display", "none");
|
|
29923
29436
|
}
|
|
29924
|
-
};
|
|
29925
|
-
this.typeItInstance = new
|
|
29437
|
+
}, t = await (ip || (ip = import("./index.es-Dymj8REP.js").then((e) => e.default), ip));
|
|
29438
|
+
this.isConnected && (this.typeItInstance = new t(this.typewriterContainer, e), this._getSlottedNodes.forEach((e) => {
|
|
29926
29439
|
if (e.nodeType === Node.TEXT_NODE) {
|
|
29927
29440
|
let t = e.textContent || "";
|
|
29928
29441
|
t.trim() && this.typeItInstance?.type(t);
|
|
@@ -29938,7 +29451,7 @@ var Sp = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
|
|
|
29938
29451
|
});
|
|
29939
29452
|
}(this.shadowRoot?.host).subscribe(() => {
|
|
29940
29453
|
this.typeItInstance?.go();
|
|
29941
|
-
});
|
|
29454
|
+
}));
|
|
29942
29455
|
}
|
|
29943
29456
|
generateSessionKey() {
|
|
29944
29457
|
let e = this._getSlottedElements.map((e) => e.outerHTML).join("");
|
|
@@ -29989,18 +29502,18 @@ var Sp = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
|
|
|
29989
29502
|
</div> `;
|
|
29990
29503
|
}
|
|
29991
29504
|
};
|
|
29992
|
-
P([L({ type: Number })],
|
|
29505
|
+
P([L({ type: Number })], ap.prototype, "speed", void 0), P([vr({
|
|
29993
29506
|
context: pl,
|
|
29994
29507
|
subscribe: !0
|
|
29995
|
-
}), L({ type: Number })],
|
|
29508
|
+
}), L({ type: Number })], ap.prototype, "delay", void 0), P([L({ type: Boolean })], ap.prototype, "autoStart", void 0), P([L({ type: String })], ap.prototype, "cursorChar", void 0), P([L({ type: Number })], ap.prototype, "deleteSpeed", void 0), P([L({ type: Boolean })], ap.prototype, "once", void 0), P([L({ type: Boolean })], ap.prototype, "loop", void 0), P([L({ type: Number })], ap.prototype, "cyclePause", void 0), P([z("#typewriter")], ap.prototype, "typewriterContainer", void 0), P([function(e) {
|
|
29996
29509
|
return (t, n) => {
|
|
29997
29510
|
let { slot: r } = e ?? {}, i = "slot" + (r ? `[name=${r}]` : ":not([name])");
|
|
29998
29511
|
return Gr(t, n, { get() {
|
|
29999
29512
|
return (this.renderRoot?.querySelector(i))?.assignedNodes(e) ?? [];
|
|
30000
29513
|
} });
|
|
30001
29514
|
};
|
|
30002
|
-
}({ flatten: !0 })],
|
|
30003
|
-
var
|
|
29515
|
+
}({ flatten: !0 })], ap.prototype, "_getSlottedNodes", void 0), P([Kr({ flatten: !0 })], ap.prototype, "_getSlottedElements", void 0), ap = P([F("schmancy-typewriter")], ap);
|
|
29516
|
+
var op = class extends B(I`
|
|
30004
29517
|
:host {
|
|
30005
29518
|
display: block;
|
|
30006
29519
|
font-family: inherit;
|
|
@@ -30331,22 +29844,22 @@ var Rp = class extends B(I`
|
|
|
30331
29844
|
P([L({
|
|
30332
29845
|
type: String,
|
|
30333
29846
|
reflect: !0
|
|
30334
|
-
})],
|
|
29847
|
+
})], op.prototype, "type", void 0), P([L({
|
|
30335
29848
|
type: String,
|
|
30336
29849
|
reflect: !0
|
|
30337
|
-
})],
|
|
29850
|
+
})], op.prototype, "token", void 0), P([L({
|
|
30338
29851
|
type: String,
|
|
30339
29852
|
reflect: !0
|
|
30340
|
-
})],
|
|
29853
|
+
})], op.prototype, "align", void 0), P([L({
|
|
30341
29854
|
type: String,
|
|
30342
29855
|
reflect: !0
|
|
30343
|
-
})],
|
|
29856
|
+
})], op.prototype, "weight", void 0), P([L({
|
|
30344
29857
|
type: String,
|
|
30345
29858
|
reflect: !0
|
|
30346
|
-
})],
|
|
29859
|
+
})], op.prototype, "transform", void 0), P([L({ type: Number })], op.prototype, "maxLines", void 0), P([L({
|
|
30347
29860
|
type: Boolean,
|
|
30348
29861
|
reflect: !0
|
|
30349
|
-
})],
|
|
29862
|
+
})], op.prototype, "editable", void 0), P([L({ type: String })], op.prototype, "value", void 0), P([L({ type: String })], op.prototype, "placeholder", void 0), op = P([F("schmancy-typography")], op), new class {
|
|
30350
29863
|
constructor() {
|
|
30351
29864
|
this.systemLocale = typeof navigator < "u" && navigator.language ? navigator.language : "de-DE";
|
|
30352
29865
|
}
|
|
@@ -30600,7 +30113,7 @@ P([L({
|
|
|
30600
30113
|
return e.split("").map((e) => t[e] || e).join("");
|
|
30601
30114
|
}
|
|
30602
30115
|
}();
|
|
30603
|
-
var
|
|
30116
|
+
var sp = class extends V() {
|
|
30604
30117
|
constructor(...e) {
|
|
30605
30118
|
super(...e), this.initials = "", this.src = "", this.icon = "", this.size = "md", this.color = "primary", this.shape = "circle", this.bordered = !1, this.status = "none";
|
|
30606
30119
|
}
|
|
@@ -30679,8 +30192,8 @@ var zp = class extends V() {
|
|
|
30679
30192
|
`;
|
|
30680
30193
|
}
|
|
30681
30194
|
};
|
|
30682
|
-
P([L({ type: String })],
|
|
30683
|
-
var
|
|
30195
|
+
P([L({ type: String })], sp.prototype, "initials", void 0), P([L({ type: String })], sp.prototype, "src", void 0), P([L({ type: String })], sp.prototype, "icon", void 0), P([L({ type: String })], sp.prototype, "size", void 0), P([L({ type: String })], sp.prototype, "color", void 0), P([L({ type: String })], sp.prototype, "shape", void 0), P([L({ type: Boolean })], sp.prototype, "bordered", void 0), P([L({ type: String })], sp.prototype, "status", void 0), sp = P([F("schmancy-avatar")], sp);
|
|
30196
|
+
var cp = class extends B(I`
|
|
30684
30197
|
:host {
|
|
30685
30198
|
display: block;
|
|
30686
30199
|
}
|
|
@@ -30723,8 +30236,8 @@ var Bp = class extends B(I`
|
|
|
30723
30236
|
});
|
|
30724
30237
|
}
|
|
30725
30238
|
};
|
|
30726
|
-
P([L({ type: String })],
|
|
30727
|
-
var
|
|
30239
|
+
P([L({ type: String })], cp.prototype, "separator", void 0), cp = P([F("schmancy-breadcrumb")], cp);
|
|
30240
|
+
var lp = class extends B(I`
|
|
30728
30241
|
:host {
|
|
30729
30242
|
display: inline-block;
|
|
30730
30243
|
}
|
|
@@ -30743,11 +30256,11 @@ var Vp = class extends B(I`
|
|
|
30743
30256
|
return this.href && !this.current ? M`<a href=${this.href}><slot></slot></a>` : M`<span aria-current=${this.current ? "page" : "false"}><slot></slot></span>`;
|
|
30744
30257
|
}
|
|
30745
30258
|
};
|
|
30746
|
-
P([L({ type: String })],
|
|
30259
|
+
P([L({ type: String })], lp.prototype, "href", void 0), P([L({
|
|
30747
30260
|
type: Boolean,
|
|
30748
30261
|
reflect: !0
|
|
30749
|
-
})],
|
|
30750
|
-
var
|
|
30262
|
+
})], lp.prototype, "current", void 0), lp = P([F("schmancy-breadcrumb-item")], lp);
|
|
30263
|
+
var up = class extends B(I`
|
|
30751
30264
|
:host {
|
|
30752
30265
|
display: inline-block;
|
|
30753
30266
|
vertical-align: middle;
|
|
@@ -30785,8 +30298,8 @@ var Hp = class extends B(I`
|
|
|
30785
30298
|
P([L({
|
|
30786
30299
|
type: String,
|
|
30787
30300
|
reflect: !0
|
|
30788
|
-
})],
|
|
30789
|
-
var
|
|
30301
|
+
})], up.prototype, "size", void 0), up = P([F("schmancy-kbd")], up);
|
|
30302
|
+
var dp = class extends B(I`
|
|
30790
30303
|
:host {
|
|
30791
30304
|
display: block;
|
|
30792
30305
|
width: var(--_sw, 100%);
|
|
@@ -30837,8 +30350,8 @@ var Up = class extends B(I`
|
|
|
30837
30350
|
P([L({
|
|
30838
30351
|
type: String,
|
|
30839
30352
|
reflect: !0
|
|
30840
|
-
})],
|
|
30841
|
-
var
|
|
30353
|
+
})], dp.prototype, "shape", void 0), P([L({ type: String })], dp.prototype, "width", void 0), P([L({ type: String })], dp.prototype, "height", void 0), P([L({ type: String })], dp.prototype, "radius", void 0), dp = P([F("schmancy-skeleton")], dp);
|
|
30354
|
+
var fp = class extends V(I`
|
|
30842
30355
|
:host {
|
|
30843
30356
|
display: block;
|
|
30844
30357
|
position: relative;
|
|
@@ -30910,11 +30423,11 @@ var Wp = class extends V(I`
|
|
|
30910
30423
|
P([L({
|
|
30911
30424
|
type: Number,
|
|
30912
30425
|
attribute: "min-duration"
|
|
30913
|
-
})],
|
|
30426
|
+
})], fp.prototype, "minDuration", void 0), P([L({ type: Boolean })], fp.prototype, "auto", void 0), P([L({
|
|
30914
30427
|
type: Boolean,
|
|
30915
30428
|
attribute: "initially-hidden"
|
|
30916
|
-
})],
|
|
30917
|
-
var
|
|
30429
|
+
})], fp.prototype, "initiallyHidden", void 0), P([R()], fp.prototype, "_visible", void 0), fp = P([F("schmancy-splash-screen")], fp);
|
|
30430
|
+
var pp = class extends B(I`
|
|
30918
30431
|
:host {
|
|
30919
30432
|
display: inline-block;
|
|
30920
30433
|
}
|
|
@@ -31033,14 +30546,14 @@ var Gp = class extends B(I`
|
|
|
31033
30546
|
P([L({
|
|
31034
30547
|
type: Boolean,
|
|
31035
30548
|
reflect: !0
|
|
31036
|
-
})],
|
|
30549
|
+
})], pp.prototype, "checked", void 0), P([L({
|
|
31037
30550
|
type: Boolean,
|
|
31038
30551
|
reflect: !0
|
|
31039
|
-
})],
|
|
30552
|
+
})], pp.prototype, "disabled", void 0), P([L({
|
|
31040
30553
|
type: Boolean,
|
|
31041
30554
|
reflect: !0
|
|
31042
|
-
})],
|
|
31043
|
-
var
|
|
30555
|
+
})], pp.prototype, "required", void 0), P([L({ type: String })], pp.prototype, "name", void 0), P([L({ type: String })], pp.prototype, "value", void 0), P([L({ type: String })], pp.prototype, "label", void 0), pp = P([F("schmancy-switch")], pp);
|
|
30556
|
+
var mp = class extends B(I`
|
|
31044
30557
|
:host {
|
|
31045
30558
|
position: absolute;
|
|
31046
30559
|
width: 1px;
|
|
@@ -31057,8 +30570,8 @@ var Kp = class extends B(I`
|
|
|
31057
30570
|
return M`<slot></slot>`;
|
|
31058
30571
|
}
|
|
31059
30572
|
};
|
|
31060
|
-
|
|
31061
|
-
var
|
|
30573
|
+
mp = P([F("schmancy-visually-hidden")], mp);
|
|
30574
|
+
var hp = {
|
|
31062
30575
|
schemaVersion: "1.0.0",
|
|
31063
30576
|
readme: "# Schmancy\n\nA Web Component UI library built on Lit, RxJS, and Tailwind CSS. Surfaces are glass. Depth is light. Interactions are physics.\n\n## Agent runtime\n\nFor sandboxed-iframe agents (Claude Design, Claude Artifacts, any LLM that can\nonly write HTML), schmancy ships a single-URL runtime at `@mhmo91/schmancy/agent`.\nDrop one `<script type=\"module\">` tag and every `<schmancy-*>` element is\nregistered. No bundler, no bare specifiers, no npm install.\n\n```html\n<script type=\"module\">\n import { $dialog, theme } from 'https://esm.sh/@mhmo91/schmancy/agent';\n<\/script>\n<schmancy-theme root scheme=\"dark\">\n <schmancy-surface type=\"solid\" fill=\"all\">\n <schmancy-button>Hi</schmancy-button>\n <schmancy-skill></schmancy-skill>\n </schmancy-surface>\n</schmancy-theme>\n```\n\nThe `<schmancy-skill>` tag installs `window.schmancy` for runtime discovery:\n\n- `window.schmancy.help()` — full manifest (CEM v1 shape).\n- `window.schmancy.help('schmancy-button')` — one tag's attributes, events, slots, CSS parts.\n- `window.schmancy.tokens()` — build-time-extracted list of `--schmancy-*` theme tokens.\n- `window.schmancy.manifestUrl` — Blob URL; `fetch()` it for the same data.\n- `window.schmancy.a11yAudit()` — walks the live DOM and reports ARIA / shadow-root / form-association status per instance.\n- `window.schmancy.platformPrimitive('schmancy-dialog')` — map to the native element a component wraps (present when the component's JSDoc has `@platform`).\n- `window.schmancy.capabilities()` — runtime feature probe (`popover`, `declarativeShadowDom`, `scopedRegistries`, `trustedTypes`, `cssRegisteredProperties`, `elementInternalsAria`, `formAssociated`, `adoptedStyleSheets`). Agents use this to adapt to the sandbox they're in rather than the one they expect.\n\nEvery enum-typed attribute carries a `values` array — e.g. `schmancy-button`'s `variant` ships `[\"elevated\", \"filled\", \"filled tonal\", \"tonal\", \"outlined\", \"text\"]` so agents never have to parse `\"'filled' | 'tonal' | ...\"` strings.\n\nThe manifest is also emitted as a sibling file at `@mhmo91/schmancy/agent/manifest`\nfor tooling that prefers reading JSON from disk.\n\n## Install\n\n```bash\nnpm install @mhmo91/schmancy\n```\n\n```typescript\nimport '@mhmo91/schmancy'\nimport { magnetic, cursorGlow, gravity } from '@mhmo91/schmancy/directives'\n```\n\n## Use with Claude Code\n\nSchmancy ships a Claude Code plugin. In any Claude Code session, run:\n\n```\n/plugin install https://github.com/samwaai/schmancy\n```\n\nClaude now knows every Schmancy component, foundation pattern, and convention in your project. The skill activates automatically when you work on schmancy code — no CLAUDE.md edits, no symlinks.\n\n## Quick Start\n\n```html\n<schmancy-theme root scheme=\"dark\">\n <schmancy-surface type=\"solid\" fill=\"all\">\n <schmancy-area name=\"root\" .default=${lazy(() => import('./home.page'))}>\n <schmancy-route when=\"home-page\" .component=${lazy(() => import('./home.page'))} />\n </schmancy-area>\n </schmancy-surface>\n</schmancy-theme>\n```\n\n## Design: Luminous Glass\n\n| Surface | Opacity | Blur | Purpose |\n|---------|---------|------|---------|\n| `solid` | 92% | — | Dense glass, high readability |\n| `subtle` | 78% | 8px | Frosted panel (default) |\n| `glass` | 55% | 16px | Overlays, dialogs, dropdowns |\n| `luminous` | 42% | 20px | Hero panels with glow halo |\n\n## Docs\n\nSchmancy is organized in four layers:\n\n- **Foundations** — [Area](./skills/schmancy/area.md) · [Store](./skills/schmancy/store.md) · [Mixins ($LitElement)](./skills/schmancy/mixins.md) · [Theme](./skills/schmancy/theme.md) · [Directives](./skills/schmancy/directives.md)\n- **Atoms** — [Typography](./skills/schmancy/typography.md) · [Icons](./skills/schmancy/icons.md) · [Button](./skills/schmancy/button.md) · [Surface](./skills/schmancy/surface.md) · [Divider](./skills/schmancy/divider.md) · [Avatar](./skills/schmancy/avatar.md)\n- **Composites (by job)** — Forms, Navigation, Overlays, Interaction, Feedback, Display\n- **Utilities** — [Animation](./skills/schmancy/animation.md) · [Audio](./skills/schmancy/audio.md) · [Discovery](./skills/schmancy/discovery.md) · [RxJS Utils](./skills/schmancy/rxjs-utils.md) · [Utils](./skills/schmancy/utils.md)\n\n**Full component index:** [skills/schmancy/INDEX.md](./skills/schmancy/INDEX.md) — the single-file map with every tag, service, and convention. Written primarily for AI agents; humans welcome.\n\n## Tech Stack\n\n[Lit](https://lit.dev) · [RxJS](https://rxjs.dev) · [Tailwind CSS v4](https://tailwindcss.com) · [Blackbird](./src/utils/animation.ts)\n\n## License\n\nApache-2.0\n",
|
|
31064
30577
|
modules: [
|
|
@@ -31469,7 +30982,13 @@ var qp = {
|
|
|
31469
30982
|
kind: "class",
|
|
31470
30983
|
name: "SchmancyBreadcrumb",
|
|
31471
30984
|
tagName: "schmancy-breadcrumb",
|
|
31472
|
-
description: "Breadcrumb navigation
|
|
30985
|
+
description: "Breadcrumb trail — navigation history from root to current page. Renders schmancy-breadcrumb-item children with separators between.",
|
|
30986
|
+
summary: "Use for deep hierarchical navigation (file explorer paths, e-commerce category chains, admin settings trees). Last item is styled as the current page automatically.",
|
|
30987
|
+
platformPrimitive: {
|
|
30988
|
+
tag: "nav",
|
|
30989
|
+
mode: "-",
|
|
30990
|
+
note: "Styled `<nav aria-label=\"Breadcrumb\">`. Degrades to a plain nav if the tag never registers."
|
|
30991
|
+
},
|
|
31473
30992
|
attributes: [{
|
|
31474
30993
|
name: "separator",
|
|
31475
30994
|
type: { text: "string" },
|
|
@@ -31482,12 +31001,19 @@ var qp = {
|
|
|
31482
31001
|
cssParts: [{
|
|
31483
31002
|
name: "separator",
|
|
31484
31003
|
description: "The separator element."
|
|
31485
|
-
}]
|
|
31004
|
+
}],
|
|
31005
|
+
examples: ["<schmancy-breadcrumb separator=\"›\">\n <schmancy-breadcrumb-item href=\"/\">Home</schmancy-breadcrumb-item>\n <schmancy-breadcrumb-item href=\"/docs\">Docs</schmancy-breadcrumb-item>\n <schmancy-breadcrumb-item>Getting started</schmancy-breadcrumb-item>\n</schmancy-breadcrumb>"]
|
|
31486
31006
|
}, {
|
|
31487
31007
|
kind: "class",
|
|
31488
31008
|
name: "SchmancyBreadcrumbItem",
|
|
31489
31009
|
tagName: "schmancy-breadcrumb-item",
|
|
31490
|
-
description: "
|
|
31010
|
+
description: "Single segment in a schmancy-breadcrumb trail — a link when `href` is set, or a plain span (the current page) when omitted.",
|
|
31011
|
+
summary: "Always nested inside schmancy-breadcrumb. Omit `href` on the current page — it gets aria-current=\"page\" automatically.",
|
|
31012
|
+
platformPrimitive: {
|
|
31013
|
+
tag: "a",
|
|
31014
|
+
mode: "-",
|
|
31015
|
+
note: "Renders an `<a>` or `<span>` depending on href. Degrades to a plain anchor/span if the tag never registers."
|
|
31016
|
+
},
|
|
31491
31017
|
attributes: [{
|
|
31492
31018
|
name: "href",
|
|
31493
31019
|
type: { text: "string" },
|
|
@@ -31500,7 +31026,8 @@ var qp = {
|
|
|
31500
31026
|
slots: [{
|
|
31501
31027
|
name: "",
|
|
31502
31028
|
description: "Label content."
|
|
31503
|
-
}]
|
|
31029
|
+
}],
|
|
31030
|
+
examples: ["<schmancy-breadcrumb-item href=\"/products\">Products</schmancy-breadcrumb-item>"]
|
|
31504
31031
|
}]
|
|
31505
31032
|
},
|
|
31506
31033
|
{
|
|
@@ -32884,7 +32411,13 @@ var qp = {
|
|
|
32884
32411
|
kind: "class",
|
|
32885
32412
|
name: "SchmancyDialog",
|
|
32886
32413
|
tagName: "schmancy-dialog",
|
|
32887
|
-
description: "
|
|
32414
|
+
description: "Modal dialog — content-only (just a styled panel) or confirm mode (title + message + confirm/cancel buttons). Prefer the imperative `$dialog` service for most use cases; use the element directly only when you want a declaratively-positioned dialog.",
|
|
32415
|
+
summary: "Blocks interaction with the rest of the page until dismissed. For quick confirmations, prefer `$dialog.confirm({ ... })` over this element. For arbitrary dialog content driven imperatively, prefer `$dialog.component(MyComponent)`.",
|
|
32416
|
+
platformPrimitive: {
|
|
32417
|
+
tag: "dialog",
|
|
32418
|
+
mode: "close",
|
|
32419
|
+
note: "Positioned overlay in light DOM. Degrades to a styled `<dialog>` if the tag never registers — loses custom animations but keeps focus trap + ESC close."
|
|
32420
|
+
},
|
|
32888
32421
|
attributes: [
|
|
32889
32422
|
{
|
|
32890
32423
|
name: "uid",
|
|
@@ -32935,6 +32468,13 @@ var qp = {
|
|
|
32935
32468
|
description: "Whether to hide action buttons (force content mode)"
|
|
32936
32469
|
}
|
|
32937
32470
|
],
|
|
32471
|
+
events: [{
|
|
32472
|
+
name: "confirm",
|
|
32473
|
+
description: "In confirm mode, when the confirm button is clicked."
|
|
32474
|
+
}, {
|
|
32475
|
+
name: "cancel",
|
|
32476
|
+
description: "In confirm mode, when the cancel button or ESC is activated."
|
|
32477
|
+
}],
|
|
32938
32478
|
slots: [{
|
|
32939
32479
|
name: "default",
|
|
32940
32480
|
description: "Content slot for dialog body (used in content mode)"
|
|
@@ -32942,7 +32482,7 @@ var qp = {
|
|
|
32942
32482
|
name: "content",
|
|
32943
32483
|
description: "Named slot for custom content in confirm mode"
|
|
32944
32484
|
}],
|
|
32945
|
-
examples: ["Content mode (no buttons):\n
|
|
32485
|
+
examples: ["Content mode (no buttons):\n<schmancy-dialog>\n <my-custom-content></my-custom-content>\n</schmancy-dialog>", "Confirm mode (with buttons):\n<schmancy-dialog\n title=\"Delete item?\"\n message=\"This action cannot be undone.\"\n confirm-text=\"Delete\"\n cancel-text=\"Keep\"\n></schmancy-dialog>"]
|
|
32946
32486
|
}]
|
|
32947
32487
|
},
|
|
32948
32488
|
{
|
|
@@ -32992,7 +32532,13 @@ var qp = {
|
|
|
32992
32532
|
kind: "class",
|
|
32993
32533
|
name: "SchmancyDropdown",
|
|
32994
32534
|
tagName: "schmancy-dropdown",
|
|
32995
|
-
description: "
|
|
32535
|
+
description: "Anchored floating dropdown — a generic \"show this content relative to that trigger\" primitive. Unlike schmancy-menu (which uses the dialog service and is list-shaped), dropdown is a low-level popover anchored with Floating UI. Use when you want a custom-shaped overlay tied to a specific trigger element without the menu semantics.",
|
|
32536
|
+
summary: "Prefer schmancy-menu for action lists, schmancy-autocomplete for type-ahead, schmancy-tooltip for hover hints. Reach for schmancy-dropdown when none of those fit — custom filters, color pickers, inline forms anchored to a trigger.",
|
|
32537
|
+
platformPrimitive: {
|
|
32538
|
+
tag: "div",
|
|
32539
|
+
mode: "-",
|
|
32540
|
+
note: "Anchored via Floating UI (autoUpdate, flip, shift). Degrades to inline content if the tag never registers — loses positioning but content stays accessible."
|
|
32541
|
+
},
|
|
32996
32542
|
attributes: [
|
|
32997
32543
|
{
|
|
32998
32544
|
name: "open",
|
|
@@ -33027,13 +32573,21 @@ var qp = {
|
|
|
33027
32573
|
description: "Offset distance in pixels"
|
|
33028
32574
|
}
|
|
33029
32575
|
],
|
|
32576
|
+
events: [{
|
|
32577
|
+
name: "open",
|
|
32578
|
+
description: "When the dropdown opens."
|
|
32579
|
+
}, {
|
|
32580
|
+
name: "close",
|
|
32581
|
+
description: "When the dropdown closes."
|
|
32582
|
+
}],
|
|
33030
32583
|
slots: [{
|
|
33031
32584
|
name: "trigger",
|
|
33032
32585
|
description: "The element that triggers the dropdown"
|
|
33033
32586
|
}, {
|
|
33034
32587
|
name: "",
|
|
33035
32588
|
description: "Default slot for the dropdown content"
|
|
33036
|
-
}]
|
|
32589
|
+
}],
|
|
32590
|
+
examples: ["<schmancy-dropdown>\n <schmancy-button slot=\"trigger\">Filters</schmancy-button>\n <schmancy-dropdown-content>\n <schmancy-form>…</schmancy-form>\n </schmancy-dropdown-content>\n</schmancy-dropdown>"]
|
|
33037
32591
|
}]
|
|
33038
32592
|
},
|
|
33039
32593
|
{
|
|
@@ -33043,7 +32597,13 @@ var qp = {
|
|
|
33043
32597
|
kind: "class",
|
|
33044
32598
|
name: "SchmancyDropdownContent",
|
|
33045
32599
|
tagName: "schmancy-dropdown-content",
|
|
33046
|
-
description: "Content
|
|
32600
|
+
description: "Content panel for a schmancy-dropdown — a styled positioned surface. Always nested inside schmancy-dropdown and placed alongside the trigger slot.",
|
|
32601
|
+
summary: "Nest this inside schmancy-dropdown (not in the trigger slot). Use the `content` CSS part to customize backgrounds / shadows / padding without shadow-root piercing.",
|
|
32602
|
+
platformPrimitive: {
|
|
32603
|
+
tag: "div",
|
|
32604
|
+
mode: "-",
|
|
32605
|
+
note: "Positioned panel with theme-aware styling. Degrades to an inline div if the tag never registers."
|
|
32606
|
+
},
|
|
33047
32607
|
attributes: [
|
|
33048
32608
|
{
|
|
33049
32609
|
name: "width",
|
|
@@ -33084,7 +32644,8 @@ var qp = {
|
|
|
33084
32644
|
cssParts: [{
|
|
33085
32645
|
name: "content",
|
|
33086
32646
|
description: "The inner wrapper element; style to override panel backgrounds, shadows, padding, or borders without shadow-root piercing."
|
|
33087
|
-
}]
|
|
32647
|
+
}],
|
|
32648
|
+
examples: ["<schmancy-dropdown>\n <schmancy-button slot=\"trigger\">Open</schmancy-button>\n <schmancy-dropdown-content>\n Panel contents…\n </schmancy-dropdown-content>\n</schmancy-dropdown>"]
|
|
33088
32649
|
}]
|
|
33089
32650
|
},
|
|
33090
32651
|
{
|
|
@@ -33616,6 +33177,13 @@ var qp = {
|
|
|
33616
33177
|
kind: "class",
|
|
33617
33178
|
name: "SchmancyListItem",
|
|
33618
33179
|
tagName: "schmancy-list-item",
|
|
33180
|
+
description: "Single row in a schmancy-list — supports leading icon/avatar, main content, trailing actions. Clickable via click event, or used as a schmancy-menu-item's visual base.",
|
|
33181
|
+
summary: "Prefer nesting inside schmancy-list for consistent spacing/surface. Use `href` to make the row a navigation target (renders as `<a>`), or a click handler for in-app actions.",
|
|
33182
|
+
platformPrimitive: {
|
|
33183
|
+
tag: "li",
|
|
33184
|
+
mode: "click",
|
|
33185
|
+
note: "Styled `<li>` or `<a>` depending on `href`. Degrades to a plain list item if the tag never registers."
|
|
33186
|
+
},
|
|
33619
33187
|
attributes: [
|
|
33620
33188
|
{
|
|
33621
33189
|
name: "variant",
|
|
@@ -33673,6 +33241,7 @@ var qp = {
|
|
|
33673
33241
|
description: "default content"
|
|
33674
33242
|
}
|
|
33675
33243
|
],
|
|
33244
|
+
examples: ["<schmancy-list-item href=\"/profile\">\n <schmancy-icon slot=\"leading\">person</schmancy-icon>\n Profile\n <schmancy-icon slot=\"trailing\">chevron_right</schmancy-icon>\n</schmancy-list-item>"],
|
|
33676
33245
|
contexts: [{
|
|
33677
33246
|
name: "SchmancySurfaceTypeContext",
|
|
33678
33247
|
kind: "consume"
|
|
@@ -33686,7 +33255,13 @@ var qp = {
|
|
|
33686
33255
|
kind: "class",
|
|
33687
33256
|
name: "List",
|
|
33688
33257
|
tagName: "schmancy-list",
|
|
33689
|
-
description: "
|
|
33258
|
+
description: "Wrapped list container — holds schmancy-list-item children on a themed surface. Optionally scrollable.",
|
|
33259
|
+
summary: "Use for vertical lists of similarly-shaped items: settings entries, menu items, contact lists, notification lists. Pair with schmancy-list-item children.",
|
|
33260
|
+
platformPrimitive: {
|
|
33261
|
+
tag: "ul",
|
|
33262
|
+
mode: "-",
|
|
33263
|
+
note: "Styled list container. Degrades to a plain ul/div if the tag never registers."
|
|
33264
|
+
},
|
|
33690
33265
|
attributes: [
|
|
33691
33266
|
{
|
|
33692
33267
|
name: "surface",
|
|
@@ -33740,7 +33315,7 @@ var qp = {
|
|
|
33740
33315
|
name: "",
|
|
33741
33316
|
description: "The default slot for list items."
|
|
33742
33317
|
}],
|
|
33743
|
-
examples: ["<schmancy-list surface=\"container\" scroller>\n <schmancy-list-item>
|
|
33318
|
+
examples: ["<schmancy-list surface=\"container\" scroller>\n <schmancy-list-item>First</schmancy-list-item>\n <schmancy-list-item>Second</schmancy-list-item>\n <schmancy-list-item>Third</schmancy-list-item>\n</schmancy-list>"],
|
|
33744
33319
|
contexts: [{
|
|
33745
33320
|
name: "SchmancyListTypeContext",
|
|
33746
33321
|
kind: "provide"
|
|
@@ -34103,7 +33678,19 @@ var qp = {
|
|
|
34103
33678
|
declarations: [{
|
|
34104
33679
|
kind: "class",
|
|
34105
33680
|
name: "SchmancyMenuItem",
|
|
34106
|
-
tagName: "schmancy-menu-item"
|
|
33681
|
+
tagName: "schmancy-menu-item",
|
|
33682
|
+
description: "Single item inside a schmancy-menu. Auto-dismisses the menu dialog on click — attach your action handler to `@click` and it just works.",
|
|
33683
|
+
summary: "Always nested inside schmancy-menu. The click handler runs before the dialog closes, so `@click=${() => doThing()}` is the full pattern.",
|
|
33684
|
+
platformPrimitive: {
|
|
33685
|
+
tag: "menuitem",
|
|
33686
|
+
mode: "click",
|
|
33687
|
+
note: "Wraps schmancy-list-item with auto-dismiss. Degrades to a styled `<button role=\"menuitem\">` if the tag never registers."
|
|
33688
|
+
},
|
|
33689
|
+
slots: [{
|
|
33690
|
+
name: "",
|
|
33691
|
+
description: "The item label and optional icons."
|
|
33692
|
+
}],
|
|
33693
|
+
examples: ["<schmancy-menu-item @click=${() => archive()}>\n <schmancy-icon slot=\"leading\">archive</schmancy-icon>\n Archive\n</schmancy-menu-item>"]
|
|
34107
33694
|
}]
|
|
34108
33695
|
},
|
|
34109
33696
|
{
|
|
@@ -34113,7 +33700,13 @@ var qp = {
|
|
|
34113
33700
|
kind: "class",
|
|
34114
33701
|
name: "SchmancyMenu",
|
|
34115
33702
|
tagName: "schmancy-menu",
|
|
34116
|
-
description: "
|
|
33703
|
+
description: "Floating menu — a trigger button + a list of schmancy-menu-item children that open as a positioned dialog on click.",
|
|
33704
|
+
summary: "Use for dropdown menus attached to a button or icon — \"More actions\", \"Account\", row overflow menus in tables. Clicking a schmancy-menu-item inside auto-dismisses; custom components slotted inside must call `$dialog.dismiss()` themselves.",
|
|
33705
|
+
platformPrimitive: {
|
|
33706
|
+
tag: "menu",
|
|
33707
|
+
mode: "close",
|
|
33708
|
+
note: "Trigger + floating listbox dialog. Degrades to a native `<select>` or inline list if the tag never registers."
|
|
33709
|
+
},
|
|
34117
33710
|
slots: [
|
|
34118
33711
|
{
|
|
34119
33712
|
name: "trigger",
|
|
@@ -34128,7 +33721,7 @@ var qp = {
|
|
|
34128
33721
|
description: "Menu items or any custom component to display in dialog"
|
|
34129
33722
|
}
|
|
34130
33723
|
],
|
|
34131
|
-
examples: ["
|
|
33724
|
+
examples: ["<schmancy-menu>\n <schmancy-icon-button slot=\"trigger\" aria-label=\"Actions\">\n <schmancy-icon>more_vert</schmancy-icon>\n </schmancy-icon-button>\n <schmancy-menu-item @click=${() => edit()}>Edit</schmancy-menu-item>\n <schmancy-menu-item @click=${() => remove()}>Delete</schmancy-menu-item>\n</schmancy-menu>"]
|
|
34132
33725
|
}]
|
|
34133
33726
|
},
|
|
34134
33727
|
{
|
|
@@ -34138,10 +33731,18 @@ var qp = {
|
|
|
34138
33731
|
kind: "class",
|
|
34139
33732
|
name: "SchmancyDrawerAppbar",
|
|
34140
33733
|
tagName: "schmancy-nav-drawer-appbar",
|
|
33734
|
+
description: "Top app bar region inside schmancy-nav-drawer — the horizontal strip above the content area that typically holds the page title, hamburger trigger, and contextual actions.",
|
|
33735
|
+
summary: "Always nested inside schmancy-nav-drawer. Holds the page-level title + top-right actions. On mobile, the drawer's hamburger button renders inside this region.",
|
|
33736
|
+
platformPrimitive: {
|
|
33737
|
+
tag: "header",
|
|
33738
|
+
mode: "-",
|
|
33739
|
+
note: "Styled horizontal bar. Degrades to a plain header element if the tag never registers."
|
|
33740
|
+
},
|
|
34141
33741
|
slots: [{
|
|
34142
33742
|
name: "",
|
|
34143
33743
|
description: "The default slot"
|
|
34144
|
-
}]
|
|
33744
|
+
}],
|
|
33745
|
+
examples: ["<schmancy-nav-drawer-appbar>\n <schmancy-typography type=\"title\" token=\"lg\">Dashboard</schmancy-typography>\n <schmancy-icon-button slot=\"trailing\" aria-label=\"Notifications\">\n <schmancy-icon>notifications</schmancy-icon>\n </schmancy-icon-button>\n</schmancy-nav-drawer-appbar>"]
|
|
34145
33746
|
}]
|
|
34146
33747
|
},
|
|
34147
33748
|
{
|
|
@@ -34150,7 +33751,15 @@ var qp = {
|
|
|
34150
33751
|
declarations: [{
|
|
34151
33752
|
kind: "class",
|
|
34152
33753
|
name: "SchmancyNavigationDrawerContent",
|
|
34153
|
-
tagName: "schmancy-nav-drawer-content"
|
|
33754
|
+
tagName: "schmancy-nav-drawer-content",
|
|
33755
|
+
description: "Main content region inside schmancy-nav-drawer — typically hosts the router outlet or the page's body content.",
|
|
33756
|
+
summary: "Always nested inside schmancy-nav-drawer. Scrollable by default; propagates scroll events up so the drawer can collapse app-bar on scroll.",
|
|
33757
|
+
platformPrimitive: {
|
|
33758
|
+
tag: "main",
|
|
33759
|
+
mode: "scroll",
|
|
33760
|
+
note: "Scrollable `<main>`. Degrades to a plain scrollable div if the tag never registers."
|
|
33761
|
+
},
|
|
33762
|
+
examples: ["<schmancy-nav-drawer-content>\n <schmancy-area name=\"main\"></schmancy-area>\n</schmancy-nav-drawer-content>"]
|
|
34154
33763
|
}]
|
|
34155
33764
|
},
|
|
34156
33765
|
{
|
|
@@ -34160,6 +33769,13 @@ var qp = {
|
|
|
34160
33769
|
kind: "class",
|
|
34161
33770
|
name: "SchmancyNavigationDrawer",
|
|
34162
33771
|
tagName: "schmancy-nav-drawer",
|
|
33772
|
+
description: "Responsive navigation drawer — a left sidebar that becomes a hamburger-triggered modal overlay on narrow viewports. Composes schmancy-nav-drawer-navbar (the nav rail), schmancy-nav-drawer-appbar (the top bar), and schmancy-nav-drawer-content (the main region).",
|
|
33773
|
+
summary: "The app-shell layout primitive. Wrap your whole app in this when you want \"persistent sidebar on desktop, drawer on mobile\" behavior. Mode auto-switches at the breakpoint.",
|
|
33774
|
+
platformPrimitive: {
|
|
33775
|
+
tag: "div",
|
|
33776
|
+
mode: "-",
|
|
33777
|
+
note: "Flex layout with viewport-width mode switching. Degrades to a stack of plain divs if the tag never registers."
|
|
33778
|
+
},
|
|
34163
33779
|
attributes: [
|
|
34164
33780
|
{
|
|
34165
33781
|
name: "fullscreen",
|
|
@@ -34184,10 +33800,15 @@ var qp = {
|
|
|
34184
33800
|
values: ["open", "close"]
|
|
34185
33801
|
}
|
|
34186
33802
|
],
|
|
33803
|
+
events: [{
|
|
33804
|
+
name: "schmancy-drawer-state",
|
|
33805
|
+
description: "When the drawer open/close state changes on mobile."
|
|
33806
|
+
}],
|
|
34187
33807
|
slots: [{
|
|
34188
33808
|
name: "",
|
|
34189
33809
|
description: "The content slot"
|
|
34190
33810
|
}],
|
|
33811
|
+
examples: ["<schmancy-nav-drawer>\n <schmancy-nav-drawer-navbar>\n <!-- nav items, typically schmancy-list-item links -->\n </schmancy-nav-drawer-navbar>\n <schmancy-nav-drawer-appbar>App title</schmancy-nav-drawer-appbar>\n <schmancy-nav-drawer-content>\n <!-- router outlet / page content -->\n </schmancy-nav-drawer-content>\n</schmancy-nav-drawer>"],
|
|
34191
33812
|
contexts: [{
|
|
34192
33813
|
name: "SchmancyDrawerNavbarMode",
|
|
34193
33814
|
kind: "provide"
|
|
@@ -34204,11 +33825,19 @@ var qp = {
|
|
|
34204
33825
|
kind: "class",
|
|
34205
33826
|
name: "SchmancyNavigationDrawerSidebar",
|
|
34206
33827
|
tagName: "schmancy-nav-drawer-navbar",
|
|
33828
|
+
description: "Sidebar region inside schmancy-nav-drawer — the persistent-on-desktop / modal-on-mobile nav rail.",
|
|
33829
|
+
summary: "Always nested inside schmancy-nav-drawer. On desktop: pinned left sidebar. On mobile: modal overlay triggered by the hamburger button in schmancy-nav-drawer-appbar.",
|
|
33830
|
+
platformPrimitive: {
|
|
33831
|
+
tag: "nav",
|
|
33832
|
+
mode: "-",
|
|
33833
|
+
note: "Sidebar `<nav>` with responsive open/close behavior. Degrades to a plain sidebar div if the tag never registers."
|
|
33834
|
+
},
|
|
34207
33835
|
attributes: [{
|
|
34208
33836
|
name: "width",
|
|
34209
33837
|
type: { text: "string" },
|
|
34210
33838
|
default: "'220px'"
|
|
34211
33839
|
}],
|
|
33840
|
+
examples: ["<schmancy-nav-drawer-navbar>\n <schmancy-list>\n <schmancy-list-item href=\"/dashboard\">Dashboard</schmancy-list-item>\n <schmancy-list-item href=\"/settings\">Settings</schmancy-list-item>\n </schmancy-list>\n</schmancy-nav-drawer-navbar>"],
|
|
34212
33841
|
contexts: [{
|
|
34213
33842
|
name: "SchmancyDrawerNavbarMode",
|
|
34214
33843
|
kind: "consume"
|
|
@@ -34225,7 +33854,13 @@ var qp = {
|
|
|
34225
33854
|
kind: "class",
|
|
34226
33855
|
name: "SchmancyNavigationBarItem",
|
|
34227
33856
|
tagName: "schmancy-navigation-bar-item",
|
|
34228
|
-
description: "
|
|
33857
|
+
description: "Single destination inside schmancy-navigation-bar — an icon + optional label representing one primary app destination.",
|
|
33858
|
+
summary: "Always nested inside schmancy-navigation-bar. Use `icon` attr for a Material Symbols glyph or slot=icon for custom content.",
|
|
33859
|
+
platformPrimitive: {
|
|
33860
|
+
tag: "button",
|
|
33861
|
+
mode: "click",
|
|
33862
|
+
note: "Styled navigation target. Degrades to a plain `<button>` if the tag never registers."
|
|
33863
|
+
},
|
|
34229
33864
|
attributes: [
|
|
34230
33865
|
{
|
|
34231
33866
|
name: "icon",
|
|
@@ -34289,7 +33924,13 @@ var qp = {
|
|
|
34289
33924
|
kind: "class",
|
|
34290
33925
|
name: "SchmancyNavigationBar",
|
|
34291
33926
|
tagName: "schmancy-navigation-bar",
|
|
34292
|
-
description: "
|
|
33927
|
+
description: "Bottom navigation bar — Material Design 3 horizontal nav for mobile primary destinations (3–7 items). Auto-hides in fullscreen mode.",
|
|
33928
|
+
summary: "Use for mobile primary navigation (home, search, favorites, settings). For persistent desktop nav, prefer schmancy-navigation-rail or schmancy-nav-drawer. Consumer is responsible for fixed-bottom positioning via class.",
|
|
33929
|
+
platformPrimitive: {
|
|
33930
|
+
tag: "nav",
|
|
33931
|
+
mode: "-",
|
|
33932
|
+
note: "Styled horizontal nav with schmancy-navigation-bar-item children. Degrades to a plain flex container if the tag never registers."
|
|
33933
|
+
},
|
|
34293
33934
|
attributes: [
|
|
34294
33935
|
{
|
|
34295
33936
|
name: "hideLabels",
|
|
@@ -34328,7 +33969,13 @@ var qp = {
|
|
|
34328
33969
|
kind: "class",
|
|
34329
33970
|
name: "SchmancyNavigationRailItem",
|
|
34330
33971
|
tagName: "schmancy-navigation-rail-item",
|
|
34331
|
-
description: "
|
|
33972
|
+
description: "Single destination inside schmancy-navigation-rail — vertically-stacked icon + optional label. @see https://m3.material.io/components/navigation-rail/overview",
|
|
33973
|
+
summary: "Always nested inside schmancy-navigation-rail. Use `icon` attr for a Material Symbols glyph, or slot=icon for custom content. Supports a `badge` slot for notification dots / counts.",
|
|
33974
|
+
platformPrimitive: {
|
|
33975
|
+
tag: "button",
|
|
33976
|
+
mode: "click",
|
|
33977
|
+
note: "Styled vertical navigation target. Degrades to a plain `<button>` if the tag never registers."
|
|
33978
|
+
},
|
|
34332
33979
|
attributes: [
|
|
34333
33980
|
{
|
|
34334
33981
|
name: "icon",
|
|
@@ -34444,7 +34091,7 @@ var qp = {
|
|
|
34444
34091
|
kind: "class",
|
|
34445
34092
|
name: "SchmancyNavigationRail",
|
|
34446
34093
|
tagName: "schmancy-navigation-rail",
|
|
34447
|
-
description: "
|
|
34094
|
+
description: "Vertical navigation rail — Material Design 3 compact left-side nav for desktop / tablet layouts with 3–7 primary destinations. Auto-hides in fullscreen mode. @see https://m3.material.io/components/navigation-rail/overview\r @element schmancy-navigation-rail\r @summary Use as the desktop counterpart of schmancy-navigation-bar: same destinations, different form factor. Prefer schmancy-nav-drawer when you also want a drawer + app-bar combo.",
|
|
34448
34095
|
attributes: [
|
|
34449
34096
|
{
|
|
34450
34097
|
name: "label-visibility",
|
|
@@ -34487,7 +34134,7 @@ var qp = {
|
|
|
34487
34134
|
description: "Whether the navigation rail is expanded\r @default false"
|
|
34488
34135
|
}
|
|
34489
34136
|
],
|
|
34490
|
-
examples: ["<schmancy-navigation-rail activeIndex=\"0\">\r\n <schmancy-button slot=\"fab\" variant=\"filled\" aria-label=\"Compose\">\r\n <schmancy-icon>add</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-button slot=\"menu\" variant=\"text\" aria-label=\"Menu\">\r\n <schmancy-icon>menu</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"favorite\" label=\"Favorites\" badge=\"3\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n</schmancy-navigation-rail>"]
|
|
34137
|
+
examples: ["<schmancy-navigation-rail activeIndex=\"0\">\r\n <schmancy-icon-button slot=\"fab\" variant=\"filled\">\r\n <schmancy-icon>add</schmancy-icon>\r\n </schmancy-icon-button>\r\n <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n</schmancy-navigation-rail>\r\n@platform nav - Vertical styled nav. Degrades to a plain vertical flex container if the tag never registers.\r\n@slot fab - Slot for a floating action button at the top\r\n@slot menu - Slot for a menu icon or button below the FAB\r\n@slot header - Custom header content slot\r\n@slot footer - Custom footer content slot\r\n@slot - Default slot for navigation rail items\r\n\n@fires navigate - When a navigation item is selected\r\n@fires menu-click - When the menu button is clicked\r\n@fires fab-click - When the FAB is clicked\r\n\n@csspart rail - The main rail container\r\n@csspart header - The header section\r\n@csspart nav - The navigation items container\r\n@csspart footer - The footer section", "<schmancy-navigation-rail activeIndex=\"0\">\r\n <schmancy-button slot=\"fab\" variant=\"filled\" aria-label=\"Compose\">\r\n <schmancy-icon>add</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-button slot=\"menu\" variant=\"text\" aria-label=\"Menu\">\r\n <schmancy-icon>menu</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"favorite\" label=\"Favorites\" badge=\"3\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n</schmancy-navigation-rail>"]
|
|
34491
34138
|
}]
|
|
34492
34139
|
},
|
|
34493
34140
|
{
|
|
@@ -35091,6 +34738,13 @@ var qp = {
|
|
|
35091
34738
|
kind: "class",
|
|
35092
34739
|
name: "SchmancySheet",
|
|
35093
34740
|
tagName: "schmancy-sheet",
|
|
34741
|
+
description: "Side-docked or bottom-docked panel — a dialog variant that slides in from an edge. Driven imperatively by the `sheet` service; rarely instantiated directly.",
|
|
34742
|
+
summary: "Prefer `sheet.open({ component, position })` over placing this element declaratively — the service handles stacking, focus, close on outside-click, ESC, and router integration.",
|
|
34743
|
+
platformPrimitive: {
|
|
34744
|
+
tag: "dialog",
|
|
34745
|
+
mode: "close",
|
|
34746
|
+
note: "Positioned-fixed panel with backdrop. Degrades to a `<dialog>` if the tag never registers — loses slide animation, keeps focus trap + dismiss."
|
|
34747
|
+
},
|
|
35094
34748
|
attributes: [
|
|
35095
34749
|
{
|
|
35096
34750
|
name: "open",
|
|
@@ -35118,7 +34772,12 @@ var qp = {
|
|
|
35118
34772
|
type: { text: "boolean" },
|
|
35119
34773
|
default: "true"
|
|
35120
34774
|
}
|
|
35121
|
-
]
|
|
34775
|
+
],
|
|
34776
|
+
events: [{
|
|
34777
|
+
name: "close",
|
|
34778
|
+
description: "When the sheet is dismissed (backdrop click, close button, ESC)."
|
|
34779
|
+
}],
|
|
34780
|
+
examples: ["import { sheet, SchmancySheetPosition } from '@mhmo91/schmancy'\nsheet.open({\n component: new MyEditorElement(),\n position: SchmancySheetPosition.Side,\n title: 'Edit item',\n})"]
|
|
35122
34781
|
}]
|
|
35123
34782
|
},
|
|
35124
34783
|
{
|
|
@@ -36633,43 +36292,43 @@ var qp = {
|
|
|
36633
36292
|
"Prefer `fromEvent(target, type).pipe(takeUntil(this.disconnecting))` over raw `addEventListener` inside components."
|
|
36634
36293
|
]
|
|
36635
36294
|
};
|
|
36636
|
-
function
|
|
36295
|
+
function gp() {
|
|
36637
36296
|
let e = [];
|
|
36638
|
-
for (let t of
|
|
36297
|
+
for (let t of hp.modules ?? []) {
|
|
36639
36298
|
let n = t.declarations ?? [];
|
|
36640
36299
|
for (let t of n) e.push(t);
|
|
36641
36300
|
}
|
|
36642
36301
|
return e;
|
|
36643
36302
|
}
|
|
36644
|
-
function
|
|
36645
|
-
return
|
|
36303
|
+
function _p() {
|
|
36304
|
+
return gp().filter((e) => e.kind === "class" && typeof e.tagName == "string");
|
|
36646
36305
|
}
|
|
36647
|
-
function
|
|
36648
|
-
return
|
|
36306
|
+
function vp() {
|
|
36307
|
+
return gp().filter((e) => e.kind === "variable" && !0 === e.service);
|
|
36649
36308
|
}
|
|
36650
|
-
function
|
|
36651
|
-
return e ?
|
|
36652
|
-
elements:
|
|
36309
|
+
function yp(e) {
|
|
36310
|
+
return e ? _p().find((t) => t.tagName === e) || vp().find((t) => t.name === e) || null : {
|
|
36311
|
+
elements: _p().map((e) => ({
|
|
36653
36312
|
tag: e.tagName,
|
|
36654
36313
|
summary: e.summary ?? e.description
|
|
36655
36314
|
})),
|
|
36656
|
-
services:
|
|
36315
|
+
services: vp().map((e) => ({
|
|
36657
36316
|
name: e.name,
|
|
36658
36317
|
summary: e.summary ?? e.description
|
|
36659
36318
|
}))
|
|
36660
36319
|
};
|
|
36661
36320
|
}
|
|
36662
|
-
function
|
|
36663
|
-
return
|
|
36321
|
+
function bp() {
|
|
36322
|
+
return hp.tokens ?? [];
|
|
36664
36323
|
}
|
|
36665
|
-
function
|
|
36666
|
-
return
|
|
36324
|
+
function xp(e) {
|
|
36325
|
+
return _p().find((t) => t.tagName === e)?.platformPrimitive ?? null;
|
|
36667
36326
|
}
|
|
36668
|
-
function
|
|
36669
|
-
return
|
|
36327
|
+
function Sp() {
|
|
36328
|
+
return _p().map((e) => e.tagName).filter((e) => customElements.get(e) !== void 0);
|
|
36670
36329
|
}
|
|
36671
|
-
function
|
|
36672
|
-
let e = new Set(
|
|
36330
|
+
function Cp() {
|
|
36331
|
+
let e = new Set(_p().map((e) => e.tagName)), t = [], n = document.querySelectorAll("*");
|
|
36673
36332
|
for (let r of Array.from(n)) {
|
|
36674
36333
|
let n = r.tagName.toLowerCase();
|
|
36675
36334
|
if (!e.has(n)) continue;
|
|
@@ -36684,7 +36343,7 @@ function tm() {
|
|
|
36684
36343
|
}
|
|
36685
36344
|
return t;
|
|
36686
36345
|
}
|
|
36687
|
-
function
|
|
36346
|
+
function wp() {
|
|
36688
36347
|
let e = typeof HTMLTemplateElement < "u" ? HTMLTemplateElement.prototype : null, t = typeof ElementInternals < "u" ? ElementInternals.prototype : null;
|
|
36689
36348
|
return {
|
|
36690
36349
|
popover: typeof HTMLElement < "u" && "popover" in HTMLElement.prototype,
|
|
@@ -36703,29 +36362,29 @@ function nm() {
|
|
|
36703
36362
|
adoptedStyleSheets: typeof Document < "u" && "adoptedStyleSheets" in Document.prototype
|
|
36704
36363
|
};
|
|
36705
36364
|
}
|
|
36706
|
-
var
|
|
36707
|
-
function
|
|
36708
|
-
typeof window < "u" && (
|
|
36709
|
-
let e = new Blob([JSON.stringify(
|
|
36365
|
+
var Tp = null;
|
|
36366
|
+
function Ep() {
|
|
36367
|
+
typeof window < "u" && (Tp || (Tp = function() {
|
|
36368
|
+
let e = new Blob([JSON.stringify(hp)], { type: "application/json" });
|
|
36710
36369
|
return URL.createObjectURL(e);
|
|
36711
36370
|
}(), window.schmancy = {
|
|
36712
|
-
manifest:
|
|
36713
|
-
manifestUrl:
|
|
36714
|
-
help:
|
|
36715
|
-
tokens:
|
|
36716
|
-
platformPrimitive:
|
|
36717
|
-
registeredTags:
|
|
36718
|
-
a11yAudit:
|
|
36719
|
-
capabilities:
|
|
36371
|
+
manifest: hp,
|
|
36372
|
+
manifestUrl: Tp,
|
|
36373
|
+
help: yp,
|
|
36374
|
+
tokens: bp,
|
|
36375
|
+
platformPrimitive: xp,
|
|
36376
|
+
registeredTags: Sp,
|
|
36377
|
+
a11yAudit: Cp,
|
|
36378
|
+
capabilities: wp
|
|
36720
36379
|
}));
|
|
36721
36380
|
}
|
|
36722
|
-
var
|
|
36381
|
+
var Dp = class extends V() {
|
|
36723
36382
|
connectedCallback() {
|
|
36724
|
-
super.connectedCallback(),
|
|
36383
|
+
super.connectedCallback(), Ep();
|
|
36725
36384
|
}
|
|
36726
36385
|
render() {
|
|
36727
36386
|
return M``;
|
|
36728
36387
|
}
|
|
36729
36388
|
};
|
|
36730
|
-
|
|
36389
|
+
Dp = P([F("schmancy-skill")], Dp);
|
|
36731
36390
|
export { V as $LitElement, Lc as $dialog, bd as $notify, Rc as SchmancySheetPosition, si as area, Pa as createContext, di as lazy, xc as schmancyContentDrawer, Ba as select, Va as selectItem, zc as sheet, Po as theme };
|