@mhmo91/schmancy 0.9.23 → 0.9.25
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 +52 -15
- package/dist/agent/schmancy.agent.js +318 -72
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +172 -3
- package/dist/area-CFLFXu0Z.cjs.map +1 -1
- package/dist/area-CfozaCAZ.js.map +1 -1
- package/dist/card-CTUaARLm.js.map +1 -1
- package/dist/card-DtN6p1Jq.cjs.map +1 -1
- package/dist/chips-B-27tj7O.cjs.map +1 -1
- package/dist/chips-DhAWrSgi.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/handover/agent-runtime-v2-loopback.md +5 -5
- package/dist/lightbox-Cb5-XPWV.js.map +1 -1
- package/dist/lightbox-Dk2ICCBB.cjs.map +1 -1
- package/dist/radio-group-DYvIgv3P.cjs.map +1 -1
- package/dist/radio-group-DchZApJl.js.map +1 -1
- package/dist/table-B8H-zioX.js.map +1 -1
- package/dist/table-ChHS4xby.cjs.map +1 -1
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js.map +1 -1
- package/dist/typewriter.cjs.map +1 -1
- package/dist/typewriter.js.map +1 -1
- package/dist/typography.cjs +3 -3
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +107 -10
- package/dist/typography.js.map +1 -1
- package/package.json +1 -1
- package/src/area/area.component.ts +14 -0
- package/src/card/card.ts +1 -0
- package/src/chips/assist-chip.ts +11 -2
- package/src/chips/suggestion-chip.ts +9 -6
- package/src/lightbox/lightbox.ts +11 -0
- package/src/radio-group/radio-button.ts +1 -0
- package/src/table/table.ts +8 -2
- package/src/tree/tree.ts +1 -0
- package/src/typewriter/typewriter.ts +12 -0
- package/src/typography/typography.ts +95 -1
- package/types/src/area/area.component.d.ts +14 -0
- package/types/src/card/card.d.ts +1 -0
- package/types/src/chips/assist-chip.d.ts +11 -2
- package/types/src/chips/suggestion-chip.d.ts +9 -6
- package/types/src/lightbox/lightbox.d.ts +11 -0
- package/types/src/radio-group/radio-button.d.ts +1 -0
- package/types/src/table/table.d.ts +8 -2
- package/types/src/tree/tree.d.ts +1 -0
- package/types/src/typewriter/typewriter.d.ts +12 -0
- package/types/src/typography/typography.d.ts +33 -0
|
@@ -29616,7 +29616,105 @@ N([I({ type: Number })], tp.prototype, "speed", void 0), N([fr({
|
|
|
29616
29616
|
} });
|
|
29617
29617
|
};
|
|
29618
29618
|
}({ flatten: !0 })], tp.prototype, "_getSlottedNodes", void 0), N([Br({ flatten: !0 })], tp.prototype, "_getSlottedElements", void 0), tp = N([P("schmancy-typewriter")], tp);
|
|
29619
|
-
var np =
|
|
29619
|
+
var np = Symbol.for(""), rp = (e) => {
|
|
29620
|
+
if (e?.r === np) return e?._$litStatic$;
|
|
29621
|
+
}, ip = (e, ...t) => ({
|
|
29622
|
+
_$litStatic$: t.reduce((t, n, r) => t + ((e) => {
|
|
29623
|
+
if (e._$litStatic$ !== void 0) return e._$litStatic$;
|
|
29624
|
+
throw Error(`Value passed to 'literal' function must be a 'literal' result: ${e}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`);
|
|
29625
|
+
})(n) + e[r + 1], e[0]),
|
|
29626
|
+
r: np
|
|
29627
|
+
}), ap = /* @__PURE__ */ new Map(), op = ((e) => (t, ...n) => {
|
|
29628
|
+
let r = n.length, i, a, o = [], s = [], c, l = 0, u = !1;
|
|
29629
|
+
for (; l < r;) {
|
|
29630
|
+
for (c = t[l]; l < r && (a = n[l], i = rp(a)) !== void 0;) c += i + t[++l], u = !0;
|
|
29631
|
+
l !== r && s.push(a), o.push(c), l++;
|
|
29632
|
+
}
|
|
29633
|
+
if (l === r && o.push(t[r]), u) {
|
|
29634
|
+
let e = o.join("$$lit$$");
|
|
29635
|
+
(t = ap.get(e)) === void 0 && (o.raw = o, ap.set(e, t = o)), n = s;
|
|
29636
|
+
}
|
|
29637
|
+
return e(t, ...n);
|
|
29638
|
+
})(j), sp = {
|
|
29639
|
+
display: {
|
|
29640
|
+
type: "display",
|
|
29641
|
+
token: "lg"
|
|
29642
|
+
},
|
|
29643
|
+
"display-lg": {
|
|
29644
|
+
type: "display",
|
|
29645
|
+
token: "lg"
|
|
29646
|
+
},
|
|
29647
|
+
"display-md": {
|
|
29648
|
+
type: "display",
|
|
29649
|
+
token: "md"
|
|
29650
|
+
},
|
|
29651
|
+
"display-sm": {
|
|
29652
|
+
type: "display",
|
|
29653
|
+
token: "sm"
|
|
29654
|
+
},
|
|
29655
|
+
"heading-lg": {
|
|
29656
|
+
type: "headline",
|
|
29657
|
+
token: "lg"
|
|
29658
|
+
},
|
|
29659
|
+
"heading-md": {
|
|
29660
|
+
type: "headline",
|
|
29661
|
+
token: "md"
|
|
29662
|
+
},
|
|
29663
|
+
"heading-sm": {
|
|
29664
|
+
type: "headline",
|
|
29665
|
+
token: "sm"
|
|
29666
|
+
},
|
|
29667
|
+
"title-lg": {
|
|
29668
|
+
type: "title",
|
|
29669
|
+
token: "lg"
|
|
29670
|
+
},
|
|
29671
|
+
"title-md": {
|
|
29672
|
+
type: "title",
|
|
29673
|
+
token: "md"
|
|
29674
|
+
},
|
|
29675
|
+
"title-sm": {
|
|
29676
|
+
type: "title",
|
|
29677
|
+
token: "sm"
|
|
29678
|
+
},
|
|
29679
|
+
"body-lg": {
|
|
29680
|
+
type: "body",
|
|
29681
|
+
token: "lg"
|
|
29682
|
+
},
|
|
29683
|
+
"body-md": {
|
|
29684
|
+
type: "body",
|
|
29685
|
+
token: "md"
|
|
29686
|
+
},
|
|
29687
|
+
"body-sm": {
|
|
29688
|
+
type: "body",
|
|
29689
|
+
token: "sm"
|
|
29690
|
+
},
|
|
29691
|
+
"label-lg": {
|
|
29692
|
+
type: "label",
|
|
29693
|
+
token: "lg"
|
|
29694
|
+
},
|
|
29695
|
+
"label-md": {
|
|
29696
|
+
type: "label",
|
|
29697
|
+
token: "md"
|
|
29698
|
+
},
|
|
29699
|
+
"label-sm": {
|
|
29700
|
+
type: "label",
|
|
29701
|
+
token: "sm"
|
|
29702
|
+
},
|
|
29703
|
+
caption: {
|
|
29704
|
+
type: "label",
|
|
29705
|
+
token: "sm"
|
|
29706
|
+
}
|
|
29707
|
+
}, cp = {
|
|
29708
|
+
h1: ip`h1`,
|
|
29709
|
+
h2: ip`h2`,
|
|
29710
|
+
h3: ip`h3`,
|
|
29711
|
+
h4: ip`h4`,
|
|
29712
|
+
h5: ip`h5`,
|
|
29713
|
+
h6: ip`h6`,
|
|
29714
|
+
p: ip`p`,
|
|
29715
|
+
span: ip`span`,
|
|
29716
|
+
div: ip`div`
|
|
29717
|
+
}, lp = class extends z(F`
|
|
29620
29718
|
:host {
|
|
29621
29719
|
display: block;
|
|
29622
29720
|
font-family: inherit;
|
|
@@ -29902,6 +30000,12 @@ var np = class extends z(F`
|
|
|
29902
30000
|
delegatesFocus: !0
|
|
29903
30001
|
};
|
|
29904
30002
|
}
|
|
30003
|
+
willUpdate(e) {
|
|
30004
|
+
if (super.willUpdate?.(e), e.has("preset") && this.preset && sp[this.preset]) {
|
|
30005
|
+
let { type: e, token: t } = sp[this.preset];
|
|
30006
|
+
this.type = e, this.token = t;
|
|
30007
|
+
}
|
|
30008
|
+
}
|
|
29905
30009
|
selectAll() {
|
|
29906
30010
|
let e = this._editRef.value;
|
|
29907
30011
|
if (!e) return;
|
|
@@ -29936,33 +30040,44 @@ var np = class extends z(F`
|
|
|
29936
30040
|
}
|
|
29937
30041
|
}
|
|
29938
30042
|
render() {
|
|
29939
|
-
|
|
30043
|
+
if (this.editable) return j`<div
|
|
29940
30044
|
${W(this._editRef)}
|
|
29941
30045
|
class="edit"
|
|
29942
30046
|
contenteditable="true"
|
|
29943
30047
|
data-placeholder=${this.placeholder ?? ""}
|
|
29944
|
-
></div
|
|
30048
|
+
></div>`;
|
|
30049
|
+
if (this.as && cp[this.as]) {
|
|
30050
|
+
let e = cp[this.as];
|
|
30051
|
+
return op`<${e}><slot></slot></${e}>`;
|
|
30052
|
+
}
|
|
30053
|
+
return j`<slot></slot>`;
|
|
29945
30054
|
}
|
|
29946
30055
|
};
|
|
29947
30056
|
N([I({
|
|
29948
30057
|
type: String,
|
|
29949
30058
|
reflect: !0
|
|
29950
|
-
})],
|
|
30059
|
+
})], lp.prototype, "type", void 0), N([I({
|
|
29951
30060
|
type: String,
|
|
29952
30061
|
reflect: !0
|
|
29953
|
-
})],
|
|
30062
|
+
})], lp.prototype, "preset", void 0), N([I({
|
|
29954
30063
|
type: String,
|
|
29955
30064
|
reflect: !0
|
|
29956
|
-
})],
|
|
30065
|
+
})], lp.prototype, "as", void 0), N([I({
|
|
29957
30066
|
type: String,
|
|
29958
30067
|
reflect: !0
|
|
29959
|
-
})],
|
|
30068
|
+
})], lp.prototype, "token", void 0), N([I({
|
|
29960
30069
|
type: String,
|
|
29961
30070
|
reflect: !0
|
|
29962
|
-
})],
|
|
30071
|
+
})], lp.prototype, "align", void 0), N([I({
|
|
30072
|
+
type: String,
|
|
30073
|
+
reflect: !0
|
|
30074
|
+
})], lp.prototype, "weight", void 0), N([I({
|
|
30075
|
+
type: String,
|
|
30076
|
+
reflect: !0
|
|
30077
|
+
})], lp.prototype, "transform", void 0), N([I({ type: Number })], lp.prototype, "maxLines", void 0), N([I({
|
|
29963
30078
|
type: Boolean,
|
|
29964
30079
|
reflect: !0
|
|
29965
|
-
})],
|
|
30080
|
+
})], lp.prototype, "editable", void 0), N([I({ type: String })], lp.prototype, "value", void 0), N([I({ type: String })], lp.prototype, "placeholder", void 0), lp = N([P("schmancy-typography")], lp), new class {
|
|
29966
30081
|
constructor() {
|
|
29967
30082
|
this.systemLocale = typeof navigator < "u" && navigator.language ? navigator.language : "de-DE";
|
|
29968
30083
|
}
|
|
@@ -30216,7 +30331,7 @@ N([I({
|
|
|
30216
30331
|
return e.split("").map((e) => t[e] || e).join("");
|
|
30217
30332
|
}
|
|
30218
30333
|
}();
|
|
30219
|
-
var
|
|
30334
|
+
var up = class extends B() {
|
|
30220
30335
|
constructor(...e) {
|
|
30221
30336
|
super(...e), this.initials = "", this.src = "", this.icon = "", this.size = "md", this.color = "primary", this.shape = "circle", this.bordered = !1, this.status = "none";
|
|
30222
30337
|
}
|
|
@@ -30295,8 +30410,8 @@ var rp = class extends B() {
|
|
|
30295
30410
|
`;
|
|
30296
30411
|
}
|
|
30297
30412
|
};
|
|
30298
|
-
N([I({ type: String })],
|
|
30299
|
-
var
|
|
30413
|
+
N([I({ type: String })], up.prototype, "initials", void 0), N([I({ type: String })], up.prototype, "src", void 0), N([I({ type: String })], up.prototype, "icon", void 0), N([I({ type: String })], up.prototype, "size", void 0), N([I({ type: String })], up.prototype, "color", void 0), N([I({ type: String })], up.prototype, "shape", void 0), N([I({ type: Boolean })], up.prototype, "bordered", void 0), N([I({ type: String })], up.prototype, "status", void 0), up = N([P("schmancy-avatar")], up);
|
|
30414
|
+
var dp = class extends z(F`
|
|
30300
30415
|
:host {
|
|
30301
30416
|
display: block;
|
|
30302
30417
|
}
|
|
@@ -30339,8 +30454,8 @@ var ip = class extends z(F`
|
|
|
30339
30454
|
});
|
|
30340
30455
|
}
|
|
30341
30456
|
};
|
|
30342
|
-
N([I({ type: String })],
|
|
30343
|
-
var
|
|
30457
|
+
N([I({ type: String })], dp.prototype, "separator", void 0), dp = N([P("schmancy-breadcrumb")], dp);
|
|
30458
|
+
var fp = class extends z(F`
|
|
30344
30459
|
:host {
|
|
30345
30460
|
display: inline-block;
|
|
30346
30461
|
}
|
|
@@ -30359,11 +30474,11 @@ var ap = class extends z(F`
|
|
|
30359
30474
|
return this.href && !this.current ? j`<a href=${this.href}><slot></slot></a>` : j`<span aria-current=${this.current ? "page" : "false"}><slot></slot></span>`;
|
|
30360
30475
|
}
|
|
30361
30476
|
};
|
|
30362
|
-
N([I({ type: String })],
|
|
30477
|
+
N([I({ type: String })], fp.prototype, "href", void 0), N([I({
|
|
30363
30478
|
type: Boolean,
|
|
30364
30479
|
reflect: !0
|
|
30365
|
-
})],
|
|
30366
|
-
var
|
|
30480
|
+
})], fp.prototype, "current", void 0), fp = N([P("schmancy-breadcrumb-item")], fp);
|
|
30481
|
+
var pp = class extends z(F`
|
|
30367
30482
|
:host {
|
|
30368
30483
|
display: inline-block;
|
|
30369
30484
|
vertical-align: middle;
|
|
@@ -30401,8 +30516,8 @@ var op = class extends z(F`
|
|
|
30401
30516
|
N([I({
|
|
30402
30517
|
type: String,
|
|
30403
30518
|
reflect: !0
|
|
30404
|
-
})],
|
|
30405
|
-
var
|
|
30519
|
+
})], pp.prototype, "size", void 0), pp = N([P("schmancy-kbd")], pp);
|
|
30520
|
+
var mp = class extends z(F`
|
|
30406
30521
|
:host {
|
|
30407
30522
|
display: block;
|
|
30408
30523
|
width: var(--_sw, 100%);
|
|
@@ -30453,8 +30568,8 @@ var sp = class extends z(F`
|
|
|
30453
30568
|
N([I({
|
|
30454
30569
|
type: String,
|
|
30455
30570
|
reflect: !0
|
|
30456
|
-
})],
|
|
30457
|
-
var
|
|
30571
|
+
})], mp.prototype, "shape", void 0), N([I({ type: String })], mp.prototype, "width", void 0), N([I({ type: String })], mp.prototype, "height", void 0), N([I({ type: String })], mp.prototype, "radius", void 0), mp = N([P("schmancy-skeleton")], mp);
|
|
30572
|
+
var hp = class extends B(F`
|
|
30458
30573
|
:host {
|
|
30459
30574
|
display: block;
|
|
30460
30575
|
position: relative;
|
|
@@ -30526,11 +30641,11 @@ var cp = class extends B(F`
|
|
|
30526
30641
|
N([I({
|
|
30527
30642
|
type: Number,
|
|
30528
30643
|
attribute: "min-duration"
|
|
30529
|
-
})],
|
|
30644
|
+
})], hp.prototype, "minDuration", void 0), N([I({ type: Boolean })], hp.prototype, "auto", void 0), N([I({
|
|
30530
30645
|
type: Boolean,
|
|
30531
30646
|
attribute: "initially-hidden"
|
|
30532
|
-
})],
|
|
30533
|
-
var
|
|
30647
|
+
})], hp.prototype, "initiallyHidden", void 0), N([L()], hp.prototype, "_visible", void 0), hp = N([P("schmancy-splash-screen")], hp);
|
|
30648
|
+
var gp = class extends z(F`
|
|
30534
30649
|
:host {
|
|
30535
30650
|
display: inline-block;
|
|
30536
30651
|
}
|
|
@@ -30649,14 +30764,14 @@ var lp = class extends z(F`
|
|
|
30649
30764
|
N([I({
|
|
30650
30765
|
type: Boolean,
|
|
30651
30766
|
reflect: !0
|
|
30652
|
-
})],
|
|
30767
|
+
})], gp.prototype, "checked", void 0), N([I({
|
|
30653
30768
|
type: Boolean,
|
|
30654
30769
|
reflect: !0
|
|
30655
|
-
})],
|
|
30770
|
+
})], gp.prototype, "disabled", void 0), N([I({
|
|
30656
30771
|
type: Boolean,
|
|
30657
30772
|
reflect: !0
|
|
30658
|
-
})],
|
|
30659
|
-
var
|
|
30773
|
+
})], gp.prototype, "required", void 0), N([I({ type: String })], gp.prototype, "name", void 0), N([I({ type: String })], gp.prototype, "value", void 0), N([I({ type: String })], gp.prototype, "label", void 0), gp = N([P("schmancy-switch")], gp);
|
|
30774
|
+
var _p = class extends z(F`
|
|
30660
30775
|
:host {
|
|
30661
30776
|
position: absolute;
|
|
30662
30777
|
width: 1px;
|
|
@@ -30673,8 +30788,8 @@ var up = class extends z(F`
|
|
|
30673
30788
|
return j`<slot></slot>`;
|
|
30674
30789
|
}
|
|
30675
30790
|
};
|
|
30676
|
-
|
|
30677
|
-
var
|
|
30791
|
+
_p = N([P("schmancy-visually-hidden")], _p);
|
|
30792
|
+
var vp = {
|
|
30678
30793
|
schemaVersion: "1.0.0",
|
|
30679
30794
|
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",
|
|
30680
30795
|
modules: [
|
|
@@ -30772,6 +30887,13 @@ var dp = {
|
|
|
30772
30887
|
kind: "class",
|
|
30773
30888
|
name: "SchmancyArea",
|
|
30774
30889
|
tagName: "schmancy-area",
|
|
30890
|
+
description: "Router outlet — renders the active route's component for the named area. Drives the schmancy router via the `area` service.",
|
|
30891
|
+
summary: "Mount once per \"addressable region\" of the app (typically the main content area). Use the imperative `area.push({ area, component, params })` service to navigate. Multiple named areas can coexist on a page (e.g. main content + a sheet).",
|
|
30892
|
+
platformPrimitive: {
|
|
30893
|
+
tag: "div",
|
|
30894
|
+
mode: "-",
|
|
30895
|
+
note: "Routing outlet. Degrades to an empty div if the tag never registers — routing is lost but the page stays accessible."
|
|
30896
|
+
},
|
|
30775
30897
|
attributes: [{
|
|
30776
30898
|
name: "name",
|
|
30777
30899
|
type: { text: "string" },
|
|
@@ -30779,7 +30901,12 @@ var dp = {
|
|
|
30779
30901
|
}, {
|
|
30780
30902
|
name: "default",
|
|
30781
30903
|
type: { text: "RouteComponent" }
|
|
30782
|
-
}]
|
|
30904
|
+
}],
|
|
30905
|
+
events: [{
|
|
30906
|
+
name: "redirect",
|
|
30907
|
+
description: "When the area resolves a route to a different destination (programmatic redirect). `detail.from` and `detail.to` are the route names."
|
|
30908
|
+
}],
|
|
30909
|
+
examples: ["<schmancy-area name=\"main\"></schmancy-area>\n<script>\n import { area } from '@mhmo91/schmancy';\n area.push({ area: 'main', component: MyDashboardView, params: { id: 42 } });\n<\/script>"]
|
|
30783
30910
|
}]
|
|
30784
30911
|
},
|
|
30785
30912
|
{
|
|
@@ -31478,6 +31605,10 @@ var dp = {
|
|
|
31478
31605
|
description: "ARIA label for accessibility."
|
|
31479
31606
|
}
|
|
31480
31607
|
],
|
|
31608
|
+
events: [{
|
|
31609
|
+
name: "schmancy-click",
|
|
31610
|
+
description: "When an interactive card is clicked or activated via keyboard. `detail.value` echoes the card's `type`. Only fires when `interactive` is set."
|
|
31611
|
+
}],
|
|
31481
31612
|
examples: ["<schmancy-card type=\"elevated\" href=\"/items/42\">\n <schmancy-card-media src=\"/thumb.jpg\" alt=\"Thumbnail\"></schmancy-card-media>\n <schmancy-card-content>\n <h3>Title</h3>\n <p>One-line description of the card's content.</p>\n </schmancy-card-content>\n <schmancy-card-action>\n <schmancy-button variant=\"text\">Open</schmancy-button>\n </schmancy-card-action>\n</schmancy-card>"]
|
|
31482
31613
|
}]
|
|
31483
31614
|
},
|
|
@@ -31768,7 +31899,13 @@ var dp = {
|
|
|
31768
31899
|
kind: "class",
|
|
31769
31900
|
name: "SchmancyAssistChip",
|
|
31770
31901
|
tagName: "schmancy-assist-chip",
|
|
31771
|
-
description: "Assist chip
|
|
31902
|
+
description: "Assist chip — single-tap trigger for a contextual action (open calendar event, share content, jump to related view). Distinct from filter and input chips: assist chips have no selected state; clicking fires `action`.",
|
|
31903
|
+
summary: "Use for \"do this thing\" suggestions surfaced in context (next to a date, after a recipient list, near a long description). Pair with schmancy-icon for the leading glyph.",
|
|
31904
|
+
platformPrimitive: {
|
|
31905
|
+
tag: "button",
|
|
31906
|
+
mode: "click",
|
|
31907
|
+
note: "Material 3 assist-chip semantics. Degrades to a plain `<button>` if the tag never registers."
|
|
31908
|
+
},
|
|
31772
31909
|
attributes: [
|
|
31773
31910
|
{
|
|
31774
31911
|
name: "value",
|
|
@@ -31806,7 +31943,12 @@ var dp = {
|
|
|
31806
31943
|
default: "true",
|
|
31807
31944
|
description: "Elevated style variant - true by default per M3 spec for assist chips"
|
|
31808
31945
|
}
|
|
31809
|
-
]
|
|
31946
|
+
],
|
|
31947
|
+
events: [{
|
|
31948
|
+
name: "action",
|
|
31949
|
+
description: "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
|
|
31950
|
+
}],
|
|
31951
|
+
examples: ["<schmancy-assist-chip @action=${(e) => share(e.detail.value)}>\n <schmancy-icon slot=\"icon\">share</schmancy-icon>\n Share\n</schmancy-assist-chip>"]
|
|
31810
31952
|
}]
|
|
31811
31953
|
},
|
|
31812
31954
|
{
|
|
@@ -31921,7 +32063,13 @@ var dp = {
|
|
|
31921
32063
|
kind: "class",
|
|
31922
32064
|
name: "SchmancySuggestionChip",
|
|
31923
32065
|
tagName: "schmancy-suggestion-chip",
|
|
31924
|
-
description: "Suggestion chip
|
|
32066
|
+
description: "Suggestion chip — single-tap insertion of a recommended value. Distinct from filter chips (no selected state) and assist chips (assist triggers an action; suggestion offers a value the user can pick).",
|
|
32067
|
+
summary: "Use for \"would you also like to…\" prompts above a search input or below a message thread. Click fires `action` with the chip's `value` so the parent can insert it into a field or trigger a search.",
|
|
32068
|
+
platformPrimitive: {
|
|
32069
|
+
tag: "button",
|
|
32070
|
+
mode: "click",
|
|
32071
|
+
note: "Material 3 suggestion-chip semantics. Degrades to a plain `<button>` if the tag never registers."
|
|
32072
|
+
},
|
|
31925
32073
|
attributes: [
|
|
31926
32074
|
{
|
|
31927
32075
|
name: "value",
|
|
@@ -31959,7 +32107,12 @@ var dp = {
|
|
|
31959
32107
|
default: "false",
|
|
31960
32108
|
description: "Elevated style variant - flat by default per M3 spec"
|
|
31961
32109
|
}
|
|
31962
|
-
]
|
|
32110
|
+
],
|
|
32111
|
+
events: [{
|
|
32112
|
+
name: "action",
|
|
32113
|
+
description: "When the chip is clicked or activated via keyboard. `detail.value` echoes the chip's `value` attribute."
|
|
32114
|
+
}],
|
|
32115
|
+
examples: ["<schmancy-suggestion-chip value=\"yesterday\" @action=${(e) => setRange(e.detail.value)}>\n Yesterday\n</schmancy-suggestion-chip>"]
|
|
31963
32116
|
}]
|
|
31964
32117
|
},
|
|
31965
32118
|
{
|
|
@@ -33249,6 +33402,13 @@ var dp = {
|
|
|
33249
33402
|
kind: "class",
|
|
33250
33403
|
name: "SchmancyLightbox",
|
|
33251
33404
|
tagName: "schmancy-lightbox",
|
|
33405
|
+
description: "Image lightbox — thumbnail grid that opens to a full-screen viewer on click, with keyboard navigation between images.",
|
|
33406
|
+
summary: "Drop-in for galleries / image lists where each thumbnail should expand to fill the viewport. Pass an `images` array of `{ src, alt, caption? }`.",
|
|
33407
|
+
platformPrimitive: {
|
|
33408
|
+
tag: "dialog",
|
|
33409
|
+
mode: "close",
|
|
33410
|
+
note: "Modal full-screen viewer with keyboard navigation. Degrades to a plain image grid if the tag never registers."
|
|
33411
|
+
},
|
|
33252
33412
|
attributes: [
|
|
33253
33413
|
{
|
|
33254
33414
|
name: "src",
|
|
@@ -33270,7 +33430,15 @@ var dp = {
|
|
|
33270
33430
|
type: { text: "boolean" },
|
|
33271
33431
|
default: "false"
|
|
33272
33432
|
}
|
|
33273
|
-
]
|
|
33433
|
+
],
|
|
33434
|
+
events: [{
|
|
33435
|
+
name: "change",
|
|
33436
|
+
description: "When the active image index changes (next/prev). `detail.index` is the new active image's position in the array."
|
|
33437
|
+
}, {
|
|
33438
|
+
name: "close",
|
|
33439
|
+
description: "When the viewer is dismissed (ESC, backdrop click, close button)."
|
|
33440
|
+
}],
|
|
33441
|
+
examples: ["<schmancy-lightbox .images=${[{ src: '/a.jpg', alt: 'A' }, { src: '/b.jpg', alt: 'B' }]}></schmancy-lightbox>"]
|
|
33274
33442
|
}]
|
|
33275
33443
|
},
|
|
33276
33444
|
{
|
|
@@ -34714,6 +34882,10 @@ var dp = {
|
|
|
34714
34882
|
default: "''"
|
|
34715
34883
|
}
|
|
34716
34884
|
],
|
|
34885
|
+
events: [{
|
|
34886
|
+
name: "radio-button-click",
|
|
34887
|
+
description: "Internal event consumed by the parent schmancy-radio-group; `detail.value` is the clicked button's value. Listen on schmancy-radio-group for the public `change` event instead of subscribing here."
|
|
34888
|
+
}],
|
|
34717
34889
|
examples: ["<schmancy-radio-group name=\"plan\">\n <schmancy-radio-button value=\"free\">Free</schmancy-radio-button>\n <schmancy-radio-button value=\"pro\" checked>Pro</schmancy-radio-button>\n</schmancy-radio-group>"]
|
|
34718
34890
|
}]
|
|
34719
34891
|
},
|
|
@@ -35327,7 +35499,13 @@ var dp = {
|
|
|
35327
35499
|
kind: "class",
|
|
35328
35500
|
name: "SchmancyDataTable",
|
|
35329
35501
|
tagName: "schmancy-table",
|
|
35330
|
-
description: "
|
|
35502
|
+
description: "Generic data table — typed columns, optional sort, custom renderers per column. Pass `data` (array) and `columns` (TableColumn descriptors).",
|
|
35503
|
+
summary: "Use for tabular data where each column has a known shape. Pair with `<schmancy-table-row>` for the per-row interaction surface. Sort by setting `sortable: true` on a column descriptor; the table emits `sort-change` so the parent can re-fetch / re-sort in the data layer if needed.",
|
|
35504
|
+
platformPrimitive: {
|
|
35505
|
+
tag: "table",
|
|
35506
|
+
mode: "-",
|
|
35507
|
+
note: "Renders an accessible table with `<lit-virtualizer>` for large datasets. Degrades to a styled `<table>` if the tag never registers."
|
|
35508
|
+
},
|
|
35331
35509
|
attributes: [
|
|
35332
35510
|
{
|
|
35333
35511
|
name: "keyField",
|
|
@@ -35344,7 +35522,15 @@ var dp = {
|
|
|
35344
35522
|
type: { text: "boolean" },
|
|
35345
35523
|
default: "false"
|
|
35346
35524
|
}
|
|
35347
|
-
]
|
|
35525
|
+
],
|
|
35526
|
+
events: [{
|
|
35527
|
+
name: "click",
|
|
35528
|
+
description: "When a data row is activated. `detail.item` is the row's source object, `detail.index` is the position in the data array."
|
|
35529
|
+
}, {
|
|
35530
|
+
name: "sort-change",
|
|
35531
|
+
description: "When the user toggles a column sort. `detail.column` is the column key, `detail.direction` is `'asc' | 'desc' | null`."
|
|
35532
|
+
}],
|
|
35533
|
+
examples: ["<schmancy-table .data=${rows} .columns=${[{ name: 'Name', key: 'name' }, { name: 'Status', key: 'status' }]}></schmancy-table>"]
|
|
35348
35534
|
}]
|
|
35349
35535
|
},
|
|
35350
35536
|
{
|
|
@@ -35742,6 +35928,10 @@ var dp = {
|
|
|
35742
35928
|
default: "false",
|
|
35743
35929
|
description: "Whether the tree’s children are visible"
|
|
35744
35930
|
}],
|
|
35931
|
+
events: [{
|
|
35932
|
+
name: "toggle",
|
|
35933
|
+
description: "When the root toggler or chevron is clicked. Fires before the open state flips; the host's `open` property reflects the new state on the next animation frame."
|
|
35934
|
+
}],
|
|
35745
35935
|
slots: [{
|
|
35746
35936
|
name: "root",
|
|
35747
35937
|
description: "The root element of the tree"
|
|
@@ -35759,6 +35949,13 @@ var dp = {
|
|
|
35759
35949
|
kind: "class",
|
|
35760
35950
|
name: "TypewriterElement",
|
|
35761
35951
|
tagName: "schmancy-typewriter",
|
|
35952
|
+
description: "Typewriter effect — animates text typing/deletion with a cursor. Wraps the TypeIt library, lazy-loaded on first render.",
|
|
35953
|
+
summary: "Drop string content as the default slot or use `<p>` / `<span>` with `cycle=\"A|B|C\"` attribute children for cycling phrases. Set `loop` for infinite cycling, `once` to remember completion across sessions via sessionStorage.",
|
|
35954
|
+
platformPrimitive: {
|
|
35955
|
+
tag: "span",
|
|
35956
|
+
mode: "-",
|
|
35957
|
+
note: "Animated text container. Degrades to its raw text content if the tag never registers — animation is lost but content stays visible."
|
|
35958
|
+
},
|
|
35762
35959
|
attributes: [
|
|
35763
35960
|
{
|
|
35764
35961
|
name: "speed",
|
|
@@ -35809,6 +36006,11 @@ var dp = {
|
|
|
35809
36006
|
description: "Default pause duration for cycling (ms)."
|
|
35810
36007
|
}
|
|
35811
36008
|
],
|
|
36009
|
+
events: [{
|
|
36010
|
+
name: "typeit-complete",
|
|
36011
|
+
description: "When the animation finishes typing all content. Fires after the final `afterComplete` callback in the underlying TypeIt instance."
|
|
36012
|
+
}],
|
|
36013
|
+
examples: ["<schmancy-typewriter speed=\"35\" cursor-char=\"|\">\n Hello, world.\n</schmancy-typewriter>"],
|
|
35812
36014
|
contexts: [{
|
|
35813
36015
|
name: "delayContext",
|
|
35814
36016
|
kind: "consume"
|
|
@@ -35836,6 +36038,46 @@ var dp = {
|
|
|
35836
36038
|
],
|
|
35837
36039
|
default: "'body'"
|
|
35838
36040
|
},
|
|
36041
|
+
{
|
|
36042
|
+
name: "preset",
|
|
36043
|
+
type: { text: "TypographyPreset" },
|
|
36044
|
+
values: [
|
|
36045
|
+
"display",
|
|
36046
|
+
"display-lg",
|
|
36047
|
+
"display-md",
|
|
36048
|
+
"display-sm",
|
|
36049
|
+
"heading-lg",
|
|
36050
|
+
"heading-md",
|
|
36051
|
+
"heading-sm",
|
|
36052
|
+
"title-lg",
|
|
36053
|
+
"title-md",
|
|
36054
|
+
"title-sm",
|
|
36055
|
+
"body-lg",
|
|
36056
|
+
"body-md",
|
|
36057
|
+
"body-sm",
|
|
36058
|
+
"label-lg",
|
|
36059
|
+
"label-md",
|
|
36060
|
+
"label-sm",
|
|
36061
|
+
"caption"
|
|
36062
|
+
],
|
|
36063
|
+
description: "Shorthand for picking a (type, token) pair in one go. When set, derives `type` and `token` automatically — saves the two-decisions-per-text-node fatigue that hits when a single page has 50+ typography nodes."
|
|
36064
|
+
},
|
|
36065
|
+
{
|
|
36066
|
+
name: "as",
|
|
36067
|
+
type: { text: "TypographyTag" },
|
|
36068
|
+
values: [
|
|
36069
|
+
"h1",
|
|
36070
|
+
"h2",
|
|
36071
|
+
"h3",
|
|
36072
|
+
"h4",
|
|
36073
|
+
"h5",
|
|
36074
|
+
"h6",
|
|
36075
|
+
"p",
|
|
36076
|
+
"span",
|
|
36077
|
+
"div"
|
|
36078
|
+
],
|
|
36079
|
+
description: "Render the slot wrapped in the requested semantic HTML element so screen readers expose the right role / heading level. Without `as`, the slot sits directly in the shadow root and the host is a generic element."
|
|
36080
|
+
},
|
|
35839
36081
|
{
|
|
35840
36082
|
name: "token",
|
|
35841
36083
|
type: { text: "\"\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"" },
|
|
@@ -35901,6 +36143,10 @@ var dp = {
|
|
|
35901
36143
|
description: "Placeholder shown when editable and empty"
|
|
35902
36144
|
}
|
|
35903
36145
|
],
|
|
36146
|
+
events: [{
|
|
36147
|
+
name: "change",
|
|
36148
|
+
description: "When `editable` is true, fires on blur or Enter with `detail.value` set to the new text content. Not fired when `editable` is unset (the default)."
|
|
36149
|
+
}],
|
|
35904
36150
|
slots: [{
|
|
35905
36151
|
name: "",
|
|
35906
36152
|
description: "The text for the typography."
|
|
@@ -36473,43 +36719,43 @@ var dp = {
|
|
|
36473
36719
|
"Prefer `fromEvent(target, type).pipe(takeUntil(this.disconnecting))` over raw `addEventListener` inside components."
|
|
36474
36720
|
]
|
|
36475
36721
|
};
|
|
36476
|
-
function
|
|
36722
|
+
function yp() {
|
|
36477
36723
|
let e = [];
|
|
36478
|
-
for (let t of
|
|
36724
|
+
for (let t of vp.modules ?? []) {
|
|
36479
36725
|
let n = t.declarations ?? [];
|
|
36480
36726
|
for (let t of n) e.push(t);
|
|
36481
36727
|
}
|
|
36482
36728
|
return e;
|
|
36483
36729
|
}
|
|
36484
|
-
function
|
|
36485
|
-
return
|
|
36730
|
+
function bp() {
|
|
36731
|
+
return yp().filter((e) => e.kind === "class" && typeof e.tagName == "string");
|
|
36486
36732
|
}
|
|
36487
|
-
function
|
|
36488
|
-
return
|
|
36733
|
+
function xp() {
|
|
36734
|
+
return yp().filter((e) => e.kind === "variable" && !0 === e.service);
|
|
36489
36735
|
}
|
|
36490
|
-
function
|
|
36491
|
-
return e ?
|
|
36492
|
-
elements:
|
|
36736
|
+
function Sp(e) {
|
|
36737
|
+
return e ? bp().find((t) => t.tagName === e) || xp().find((t) => t.name === e) || null : {
|
|
36738
|
+
elements: bp().map((e) => ({
|
|
36493
36739
|
tag: e.tagName,
|
|
36494
36740
|
summary: e.summary ?? e.description
|
|
36495
36741
|
})),
|
|
36496
|
-
services:
|
|
36742
|
+
services: xp().map((e) => ({
|
|
36497
36743
|
name: e.name,
|
|
36498
36744
|
summary: e.summary ?? e.description
|
|
36499
36745
|
}))
|
|
36500
36746
|
};
|
|
36501
36747
|
}
|
|
36502
|
-
function
|
|
36503
|
-
return
|
|
36748
|
+
function Cp() {
|
|
36749
|
+
return vp.tokens ?? [];
|
|
36504
36750
|
}
|
|
36505
|
-
function
|
|
36506
|
-
return
|
|
36751
|
+
function wp(e) {
|
|
36752
|
+
return bp().find((t) => t.tagName === e)?.platformPrimitive ?? null;
|
|
36507
36753
|
}
|
|
36508
|
-
function
|
|
36509
|
-
return
|
|
36754
|
+
function Tp() {
|
|
36755
|
+
return bp().map((e) => e.tagName).filter((e) => customElements.get(e) !== void 0);
|
|
36510
36756
|
}
|
|
36511
|
-
function
|
|
36512
|
-
let e = new Set(
|
|
36757
|
+
function Ep() {
|
|
36758
|
+
let e = new Set(bp().map((e) => e.tagName)), t = [], n = document.querySelectorAll("*");
|
|
36513
36759
|
for (let r of Array.from(n)) {
|
|
36514
36760
|
let n = r.tagName.toLowerCase();
|
|
36515
36761
|
if (!e.has(n)) continue;
|
|
@@ -36524,7 +36770,7 @@ function yp() {
|
|
|
36524
36770
|
}
|
|
36525
36771
|
return t;
|
|
36526
36772
|
}
|
|
36527
|
-
function
|
|
36773
|
+
function Dp() {
|
|
36528
36774
|
let e = typeof HTMLTemplateElement < "u" ? HTMLTemplateElement.prototype : null, t = typeof ElementInternals < "u" ? ElementInternals.prototype : null;
|
|
36529
36775
|
return {
|
|
36530
36776
|
popover: typeof HTMLElement < "u" && "popover" in HTMLElement.prototype,
|
|
@@ -36543,29 +36789,29 @@ function bp() {
|
|
|
36543
36789
|
adoptedStyleSheets: typeof Document < "u" && "adoptedStyleSheets" in Document.prototype
|
|
36544
36790
|
};
|
|
36545
36791
|
}
|
|
36546
|
-
var
|
|
36547
|
-
function
|
|
36548
|
-
typeof window < "u" && (
|
|
36549
|
-
let e = new Blob([JSON.stringify(
|
|
36792
|
+
var Op = null;
|
|
36793
|
+
function kp() {
|
|
36794
|
+
typeof window < "u" && (Op || (Op = function() {
|
|
36795
|
+
let e = new Blob([JSON.stringify(vp)], { type: "application/json" });
|
|
36550
36796
|
return URL.createObjectURL(e);
|
|
36551
36797
|
}(), window.schmancy = {
|
|
36552
|
-
manifest:
|
|
36553
|
-
manifestUrl:
|
|
36554
|
-
help:
|
|
36555
|
-
tokens:
|
|
36556
|
-
platformPrimitive:
|
|
36557
|
-
registeredTags:
|
|
36558
|
-
a11yAudit:
|
|
36559
|
-
capabilities:
|
|
36798
|
+
manifest: vp,
|
|
36799
|
+
manifestUrl: Op,
|
|
36800
|
+
help: Sp,
|
|
36801
|
+
tokens: Cp,
|
|
36802
|
+
platformPrimitive: wp,
|
|
36803
|
+
registeredTags: Tp,
|
|
36804
|
+
a11yAudit: Ep,
|
|
36805
|
+
capabilities: Dp
|
|
36560
36806
|
}));
|
|
36561
36807
|
}
|
|
36562
|
-
var
|
|
36808
|
+
var Ap = class extends B() {
|
|
36563
36809
|
connectedCallback() {
|
|
36564
|
-
super.connectedCallback(),
|
|
36810
|
+
super.connectedCallback(), kp();
|
|
36565
36811
|
}
|
|
36566
36812
|
render() {
|
|
36567
36813
|
return j``;
|
|
36568
36814
|
}
|
|
36569
36815
|
};
|
|
36570
|
-
|
|
36816
|
+
Ap = N([P("schmancy-skill")], Ap);
|
|
36571
36817
|
export { B as $LitElement, Mc as $dialog, hd as $notify, Nc as SchmancySheetPosition, ti as area, Oa as createContext, ai as lazy, gc as schmancyContentDrawer, Pa as select, Fa as selectItem, Pc as sheet, Oo as theme };
|