@elyracode/mini-lit 0.9.4
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/LICENSE +21 -0
- package/README.md +22 -0
- package/dist/Alert.d.ts +12 -0
- package/dist/Alert.d.ts.map +1 -0
- package/dist/Alert.js +35 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Badge.d.ts +8 -0
- package/dist/Badge.d.ts.map +1 -0
- package/dist/Badge.js +19 -0
- package/dist/Badge.js.map +1 -0
- package/dist/Button.d.ts +14 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +60 -0
- package/dist/Button.js.map +1 -0
- package/dist/Card.d.ts +19 -0
- package/dist/Card.d.ts.map +1 -0
- package/dist/Card.js +76 -0
- package/dist/Card.js.map +1 -0
- package/dist/Checkbox.d.ts +15 -0
- package/dist/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox.js +49 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/CodeBlock.d.ts +11 -0
- package/dist/CodeBlock.d.ts.map +1 -0
- package/dist/CodeBlock.js +90 -0
- package/dist/CodeBlock.js.map +1 -0
- package/dist/CopyButton.d.ts +11 -0
- package/dist/CopyButton.d.ts.map +1 -0
- package/dist/CopyButton.js +65 -0
- package/dist/CopyButton.js.map +1 -0
- package/dist/Dialog.d.ts +24 -0
- package/dist/Dialog.d.ts.map +1 -0
- package/dist/Dialog.js +72 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/DialogBase.d.ts +13 -0
- package/dist/DialogBase.d.ts.map +1 -0
- package/dist/DialogBase.js +48 -0
- package/dist/DialogBase.js.map +1 -0
- package/dist/Diff.d.ts +8 -0
- package/dist/Diff.d.ts.map +1 -0
- package/dist/Diff.js +47 -0
- package/dist/Diff.js.map +1 -0
- package/dist/DownloadButton.d.ts +16 -0
- package/dist/DownloadButton.d.ts.map +1 -0
- package/dist/DownloadButton.js +53 -0
- package/dist/DownloadButton.js.map +1 -0
- package/dist/FileButton.d.ts +9 -0
- package/dist/FileButton.d.ts.map +1 -0
- package/dist/FileButton.js +53 -0
- package/dist/FileButton.js.map +1 -0
- package/dist/Input.d.ts +28 -0
- package/dist/Input.d.ts.map +1 -0
- package/dist/Input.js +58 -0
- package/dist/Input.js.map +1 -0
- package/dist/Label.d.ts +9 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +17 -0
- package/dist/Label.js.map +1 -0
- package/dist/LanguageSelector.d.ts +14 -0
- package/dist/LanguageSelector.d.ts.map +1 -0
- package/dist/LanguageSelector.js +92 -0
- package/dist/LanguageSelector.js.map +1 -0
- package/dist/MarkdownBlock.d.ts +10 -0
- package/dist/MarkdownBlock.d.ts.map +1 -0
- package/dist/MarkdownBlock.js +257 -0
- package/dist/MarkdownBlock.js.map +1 -0
- package/dist/ModeToggle.d.ts +14 -0
- package/dist/ModeToggle.d.ts.map +1 -0
- package/dist/ModeToggle.js +59 -0
- package/dist/ModeToggle.js.map +1 -0
- package/dist/PreviewCode.d.ts +12 -0
- package/dist/PreviewCode.d.ts.map +1 -0
- package/dist/PreviewCode.js +80 -0
- package/dist/PreviewCode.js.map +1 -0
- package/dist/PreviewCodeToggle.d.ts +15 -0
- package/dist/PreviewCodeToggle.d.ts.map +1 -0
- package/dist/PreviewCodeToggle.js +55 -0
- package/dist/PreviewCodeToggle.js.map +1 -0
- package/dist/Progress.d.ts +10 -0
- package/dist/Progress.d.ts.map +1 -0
- package/dist/Progress.js +27 -0
- package/dist/Progress.js.map +1 -0
- package/dist/PromptDialog.d.ts +20 -0
- package/dist/PromptDialog.d.ts.map +1 -0
- package/dist/PromptDialog.js +114 -0
- package/dist/PromptDialog.js.map +1 -0
- package/dist/Select.d.ts +25 -0
- package/dist/Select.d.ts.map +1 -0
- package/dist/Select.js +335 -0
- package/dist/Select.js.map +1 -0
- package/dist/Separator.d.ts +10 -0
- package/dist/Separator.d.ts.map +1 -0
- package/dist/Separator.js +19 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Sidebar.d.ts +27 -0
- package/dist/Sidebar.d.ts.map +1 -0
- package/dist/Sidebar.js +151 -0
- package/dist/Sidebar.js.map +1 -0
- package/dist/SplitPanel.d.ts +40 -0
- package/dist/SplitPanel.d.ts.map +1 -0
- package/dist/SplitPanel.js +275 -0
- package/dist/SplitPanel.js.map +1 -0
- package/dist/Switch.d.ts +13 -0
- package/dist/Switch.d.ts.map +1 -0
- package/dist/Switch.js +48 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Textarea.d.ts +21 -0
- package/dist/Textarea.d.ts.map +1 -0
- package/dist/Textarea.js +67 -0
- package/dist/Textarea.js.map +1 -0
- package/dist/ThemeToggle.d.ts +11 -0
- package/dist/ThemeToggle.d.ts.map +1 -0
- package/dist/ThemeToggle.js +91 -0
- package/dist/ThemeToggle.js.map +1 -0
- package/dist/component.d.ts +190 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +241 -0
- package/dist/component.js.map +1 -0
- package/dist/i18n.d.ts +73 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +146 -0
- package/dist/i18n.js.map +1 -0
- package/dist/icons.d.ts +7 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +21 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/mini.d.ts +19 -0
- package/dist/mini.d.ts.map +1 -0
- package/dist/mini.js +29 -0
- package/dist/mini.js.map +1 -0
- package/llms.txt +681 -0
- package/package.json +69 -0
- package/src/styles/base.css +63 -0
- package/src/styles/themes/claude.css +155 -0
- package/src/styles/themes/default.css +102 -0
- package/src/styles/utils/markdown.css +104 -0
- package/src/styles/utils/math.css +7 -0
- package/src/styles/utils/syntax-highlighting.css +134 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../src/Textarea.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
export declare class ThemeToggle extends LitElement {
|
|
3
|
+
includeSystem: boolean;
|
|
4
|
+
private theme;
|
|
5
|
+
private setTheme;
|
|
6
|
+
private cycleTheme;
|
|
7
|
+
private getIcon;
|
|
8
|
+
createRenderRoot(): this;
|
|
9
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ThemeToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../src/ThemeToggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AA4BvC,qBACa,WAAY,SAAQ,UAAU;IACX,aAAa,UAAS;IAE1C,OAAO,CAAC,KAAK,CAC2E;IAEjG,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,OAAO;IAYN,gBAAgB;IAIhB,MAAM;CAUjB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, LitElement } from "lit";
|
|
8
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
9
|
+
import { Monitor, Moon, Sun } from "lucide";
|
|
10
|
+
import { Button } from "./Button.js";
|
|
11
|
+
import { icon } from "./icons.js";
|
|
12
|
+
// Apply theme to document
|
|
13
|
+
function applyTheme() {
|
|
14
|
+
const theme = localStorage.getItem("theme") || "system";
|
|
15
|
+
const effectiveTheme = theme === "system" ? (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light") : theme;
|
|
16
|
+
document.documentElement.classList.toggle("dark", effectiveTheme === "dark");
|
|
17
|
+
}
|
|
18
|
+
// Initialize theme on load
|
|
19
|
+
if (typeof window !== "undefined") {
|
|
20
|
+
applyTheme();
|
|
21
|
+
// Listen for system theme changes
|
|
22
|
+
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
|
23
|
+
const theme = localStorage.getItem("theme");
|
|
24
|
+
if (!theme || theme === "system") {
|
|
25
|
+
applyTheme();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
let ThemeToggle = class ThemeToggle extends LitElement {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this.includeSystem = false;
|
|
33
|
+
this.theme = (typeof window !== "undefined" ? localStorage.getItem("theme") : null) || "system";
|
|
34
|
+
}
|
|
35
|
+
setTheme(theme) {
|
|
36
|
+
this.theme = theme;
|
|
37
|
+
if (theme === "system") {
|
|
38
|
+
localStorage.removeItem("theme");
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
localStorage.setItem("theme", theme);
|
|
42
|
+
}
|
|
43
|
+
applyTheme();
|
|
44
|
+
}
|
|
45
|
+
cycleTheme() {
|
|
46
|
+
const themes = this.includeSystem ? ["light", "dark", "system"] : ["light", "dark"];
|
|
47
|
+
// If current theme is system but we're not including it, default to light
|
|
48
|
+
let currentTheme = this.theme;
|
|
49
|
+
if (!this.includeSystem && currentTheme === "system") {
|
|
50
|
+
currentTheme = "light";
|
|
51
|
+
}
|
|
52
|
+
const currentIndex = themes.indexOf(currentTheme);
|
|
53
|
+
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themes.length;
|
|
54
|
+
this.setTheme(themes[nextIndex]);
|
|
55
|
+
}
|
|
56
|
+
getIcon() {
|
|
57
|
+
switch (this.theme) {
|
|
58
|
+
case "light":
|
|
59
|
+
return icon(Sun, "md");
|
|
60
|
+
case "dark":
|
|
61
|
+
return icon(Moon, "md");
|
|
62
|
+
case "system":
|
|
63
|
+
return icon(Monitor, "md");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Remove shadow DOM for consistent styling
|
|
67
|
+
createRenderRoot() {
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
render() {
|
|
71
|
+
return html `
|
|
72
|
+
${Button({
|
|
73
|
+
variant: "ghost",
|
|
74
|
+
size: "icon",
|
|
75
|
+
onClick: () => this.cycleTheme(),
|
|
76
|
+
children: this.getIcon(),
|
|
77
|
+
})}
|
|
78
|
+
`;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
__decorate([
|
|
82
|
+
property({ type: Boolean })
|
|
83
|
+
], ThemeToggle.prototype, "includeSystem", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
state()
|
|
86
|
+
], ThemeToggle.prototype, "theme", void 0);
|
|
87
|
+
ThemeToggle = __decorate([
|
|
88
|
+
customElement("theme-toggle")
|
|
89
|
+
], ThemeToggle);
|
|
90
|
+
export { ThemeToggle };
|
|
91
|
+
//# sourceMappingURL=ThemeToggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../src/ThemeToggle.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIlC,0BAA0B;AAC1B,SAAS,UAAU;IAChB,MAAM,KAAK,GAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAW,IAAI,QAAQ,CAAC;IACnE,MAAM,cAAc,GACjB,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/G,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC,CAAC;AAChF,CAAC;AAED,2BAA2B;AAC3B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC;IACb,kCAAkC;IAClC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC/E,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAU,CAAC;QACrD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChC,UAAU,EAAE,CAAC;QAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACN,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QACyB,kBAAa,GAAG,KAAK,CAAC;QAElC,UAAK,GAClB,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAW,IAAI,QAAQ,CAAC;IAkDpG,CAAC;IAhDU,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACL,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,UAAU,EAAE,CAAC;IAChB,CAAC;IAEO,UAAU;QACf,MAAM,MAAM,GAAY,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7F,0EAA0E;QAC1E,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YACpD,YAAY,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,OAAO;QACZ,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,OAAO;gBACT,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,KAAK,MAAM;gBACR,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,KAAK,QAAQ;gBACV,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACJ,CAAC;IAED,2CAA2C;IAClC,gBAAgB;QACtB,OAAO,IAAI,CAAC;IACf,CAAC;IAEQ,MAAM;QACZ,OAAO,IAAI,CAAA;WACN,MAAM,CAAC;YACN,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;SAC1B,CAAC;OACJ,CAAC;IACL,CAAC;CACH,CAAA;AArD+B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAAuB;AAElC;IAAhB,KAAK,EAAE;0CACyF;AAJvF,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAsDvB"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { LitElement, type TemplateResult } from "lit";
|
|
2
|
+
import { type ClassValue } from "tailwind-variants";
|
|
3
|
+
export type VariantDef<T extends readonly string[]> = {
|
|
4
|
+
options: T;
|
|
5
|
+
default: T[number];
|
|
6
|
+
description?: string;
|
|
7
|
+
};
|
|
8
|
+
export type PropDef<T> = {
|
|
9
|
+
type: "string";
|
|
10
|
+
default: string | undefined;
|
|
11
|
+
description?: string;
|
|
12
|
+
} | {
|
|
13
|
+
type: "number";
|
|
14
|
+
default: number | undefined;
|
|
15
|
+
description?: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: "boolean";
|
|
18
|
+
default: boolean | undefined;
|
|
19
|
+
description?: string;
|
|
20
|
+
} | {
|
|
21
|
+
type: "object";
|
|
22
|
+
default: T;
|
|
23
|
+
description?: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: "array";
|
|
26
|
+
default: T[] | undefined;
|
|
27
|
+
description?: string;
|
|
28
|
+
} | {
|
|
29
|
+
type: "function";
|
|
30
|
+
default: T | undefined;
|
|
31
|
+
description?: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: "enum";
|
|
34
|
+
default: T;
|
|
35
|
+
options: readonly T[];
|
|
36
|
+
description?: string;
|
|
37
|
+
} | {
|
|
38
|
+
type: "classname";
|
|
39
|
+
default: string | undefined;
|
|
40
|
+
description?: string;
|
|
41
|
+
} | {
|
|
42
|
+
type: "children";
|
|
43
|
+
default: ComponentChild | undefined;
|
|
44
|
+
description?: string;
|
|
45
|
+
};
|
|
46
|
+
type PropDictionary = Record<string, PropDef<unknown>>;
|
|
47
|
+
export type ComponentChild = TemplateResult | string | number | Node | Node[];
|
|
48
|
+
type BasePropDefinitions = {
|
|
49
|
+
className: Extract<PropDef<unknown>, {
|
|
50
|
+
type: "classname";
|
|
51
|
+
}>;
|
|
52
|
+
children: Extract<PropDef<unknown>, {
|
|
53
|
+
type: "children";
|
|
54
|
+
}>;
|
|
55
|
+
};
|
|
56
|
+
type WithBaseProps<P extends PropDictionary | undefined> = (P extends PropDictionary ? {
|
|
57
|
+
[K in keyof P]: P[K];
|
|
58
|
+
} : Record<string, never>) & BasePropDefinitions;
|
|
59
|
+
type PropValue<P> = P extends {
|
|
60
|
+
type: "boolean";
|
|
61
|
+
} ? boolean | undefined : P extends {
|
|
62
|
+
type: "string";
|
|
63
|
+
} ? string | undefined : P extends {
|
|
64
|
+
type: "number";
|
|
65
|
+
} ? number | undefined : P extends {
|
|
66
|
+
type: "classname";
|
|
67
|
+
} ? string | undefined : P extends {
|
|
68
|
+
type: "children";
|
|
69
|
+
} ? ComponentChild | undefined : P extends {
|
|
70
|
+
type: "enum";
|
|
71
|
+
options: readonly (infer O)[];
|
|
72
|
+
} ? O : P extends {
|
|
73
|
+
default: infer D;
|
|
74
|
+
} ? D : never;
|
|
75
|
+
export type ComponentDefinition = {
|
|
76
|
+
tag: string;
|
|
77
|
+
slots?: readonly string[];
|
|
78
|
+
variants?: {
|
|
79
|
+
[key: string]: VariantDef<readonly string[]>;
|
|
80
|
+
};
|
|
81
|
+
props?: PropDictionary;
|
|
82
|
+
};
|
|
83
|
+
type SlotClassNameProps<T extends ComponentDefinition> = T["slots"] extends readonly string[] ? {
|
|
84
|
+
[K in T["slots"][number] as K extends "base" ? never : `${K}ClassName`]: {
|
|
85
|
+
type: "classname";
|
|
86
|
+
default: undefined;
|
|
87
|
+
description: string;
|
|
88
|
+
};
|
|
89
|
+
} : Record<never, never>;
|
|
90
|
+
export type ExtractVariants<T extends ComponentDefinition> = T["variants"] extends infer V ? V extends {
|
|
91
|
+
[K in keyof V]: VariantDef<readonly string[]>;
|
|
92
|
+
} ? {
|
|
93
|
+
[K in keyof V]?: V[K] extends {
|
|
94
|
+
options: readonly (infer O)[];
|
|
95
|
+
} ? O : never;
|
|
96
|
+
} : Record<string, never> : Record<string, never>;
|
|
97
|
+
type NormalizedPropDefinitions<T extends ComponentDefinition> = WithBaseProps<T["props"]> & SlotClassNameProps<T>;
|
|
98
|
+
export type ExtractRegularProps<T extends ComponentDefinition> = {
|
|
99
|
+
[K in keyof NormalizedPropDefinitions<T>]?: PropValue<NormalizedPropDefinitions<T>[K]>;
|
|
100
|
+
};
|
|
101
|
+
export type BaseComponentProps = {
|
|
102
|
+
className?: string;
|
|
103
|
+
children?: ComponentChild;
|
|
104
|
+
};
|
|
105
|
+
export type ExtractProps<T extends ComponentDefinition> = ExtractVariants<T> & ExtractRegularProps<T>;
|
|
106
|
+
type ConflictingHTMLElementProps = "accessKey" | "className" | "contentEditable" | "dir" | "draggable" | "hidden" | "id" | "lang" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate";
|
|
107
|
+
type ClassPropKeys<T extends ComponentDefinition> = Exclude<keyof NormalizedPropDefinitions<T>, "children" | ConflictingHTMLElementProps>;
|
|
108
|
+
type DefinitionPropValues<T extends ComponentDefinition> = {
|
|
109
|
+
[K in keyof NormalizedPropDefinitions<T>]: PropValue<NormalizedPropDefinitions<T>[K]>;
|
|
110
|
+
};
|
|
111
|
+
type RequiredDefinitionProps<T extends ComponentDefinition> = Pick<DefinitionPropValues<T>, ClassPropKeys<T>>;
|
|
112
|
+
export type ExtractPropsForClass<T extends ComponentDefinition> = ExtractVariants<T> & RequiredDefinitionProps<T>;
|
|
113
|
+
type MapVariantToTV<V extends VariantDef<readonly string[]>> = V extends {
|
|
114
|
+
options: readonly (infer O)[];
|
|
115
|
+
} ? Record<O extends string ? O : never, string> : never;
|
|
116
|
+
type MapVariantsToTV<T extends ComponentDefinition> = T["variants"] extends infer V ? V extends {
|
|
117
|
+
[K in keyof V]: VariantDef<readonly string[]>;
|
|
118
|
+
} ? {
|
|
119
|
+
[K in keyof V]: MapVariantToTV<V[K]>;
|
|
120
|
+
} : Record<string, never> : Record<string, never>;
|
|
121
|
+
export type SimpleStyles<T extends ComponentDefinition> = {
|
|
122
|
+
base?: string;
|
|
123
|
+
variants?: MapVariantsToTV<T>;
|
|
124
|
+
defaultVariants?: ExtractVariants<T>;
|
|
125
|
+
compoundVariants?: Array<Partial<ExtractVariants<T>> & {
|
|
126
|
+
class?: string;
|
|
127
|
+
className?: string;
|
|
128
|
+
}>;
|
|
129
|
+
};
|
|
130
|
+
export type SlotStyles<T extends ComponentDefinition, Slots extends Record<string, string>> = {
|
|
131
|
+
slots: Slots;
|
|
132
|
+
variants?: {
|
|
133
|
+
[K in keyof MapVariantsToTV<T>]: {
|
|
134
|
+
[V in keyof MapVariantsToTV<T>[K]]: Partial<Slots> | string;
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
defaultVariants?: ExtractVariants<T>;
|
|
138
|
+
compoundVariants?: Array<Partial<ExtractVariants<T>> & {
|
|
139
|
+
class?: Partial<Slots> | string;
|
|
140
|
+
className?: never;
|
|
141
|
+
}>;
|
|
142
|
+
};
|
|
143
|
+
export type ComponentStyles<T extends ComponentDefinition> = SimpleStyles<T> | SlotStyles<T, Record<string, string>>;
|
|
144
|
+
export type ExtractStyles<T extends ComponentDefinition> = SimpleStyles<T>;
|
|
145
|
+
export declare function getDefaultVariants<T extends ComponentDefinition>(def: T): ExtractVariants<T>;
|
|
146
|
+
export declare function getDefaultProps<T extends ComponentDefinition>(def: T): ExtractProps<T>;
|
|
147
|
+
type TVSlotResult<S> = S extends {
|
|
148
|
+
slots: infer Slots;
|
|
149
|
+
} ? {
|
|
150
|
+
[K in keyof Slots]: (props?: {
|
|
151
|
+
class?: ClassValue;
|
|
152
|
+
className?: ClassValue;
|
|
153
|
+
}) => string;
|
|
154
|
+
} : never;
|
|
155
|
+
export type VariantPropsFromStyles<S> = S extends SimpleStyles<ComponentDefinition> ? {
|
|
156
|
+
[K in keyof NonNullable<S["variants"]>]?: keyof NonNullable<S["variants"]>[K];
|
|
157
|
+
} & {
|
|
158
|
+
className?: string;
|
|
159
|
+
class?: string;
|
|
160
|
+
} : never;
|
|
161
|
+
export type RenderFunction<Props, Styles> = Styles extends {
|
|
162
|
+
slots: Record<string, string>;
|
|
163
|
+
} ? (props: Props, slots: TVSlotResult<Styles>) => TemplateResult : (props: Props, className: (overrides?: ClassValue) => string) => TemplateResult;
|
|
164
|
+
type ComponentWithBaseProps<T extends ComponentDefinition> = Omit<T, "props"> & {
|
|
165
|
+
props: NormalizedPropDefinitions<T>;
|
|
166
|
+
};
|
|
167
|
+
export declare function defineComponent<T extends ComponentDefinition>(definition: T): ComponentWithBaseProps<T>;
|
|
168
|
+
export declare function styleComponent<T extends ComponentDefinition>(definition: T, styles: SimpleStyles<T>): SimpleStyles<T>;
|
|
169
|
+
export declare function styleComponent<T extends ComponentDefinition, S extends Record<string, string>>(definition: T, styles: SlotStyles<T, S>): SlotStyles<T, S>;
|
|
170
|
+
export declare function renderComponent<T extends ComponentDefinition, S extends ComponentStyles<T>>(_definition: T, _styles: S, render: RenderFunction<ExtractProps<T>, S>): RenderFunction<ExtractProps<T>, S>;
|
|
171
|
+
export declare function createComponent<T extends ComponentDefinition, S extends ComponentStyles<T>>(definition: T, styles: S, render: RenderFunction<ExtractProps<T>, S>): import("./mini.js").Component<ExtractProps<T>>;
|
|
172
|
+
/**
|
|
173
|
+
* Base class for Lit components using the definition system
|
|
174
|
+
*/
|
|
175
|
+
export declare abstract class ComponentLitBase<T extends ComponentDefinition, S extends ComponentStyles<T> = ComponentStyles<T>> extends LitElement {
|
|
176
|
+
protected abstract definition: T;
|
|
177
|
+
protected abstract styles: S;
|
|
178
|
+
protected abstract renderFn: RenderFunction<ExtractProps<T>, S>;
|
|
179
|
+
private _tvInstance?;
|
|
180
|
+
private _children?;
|
|
181
|
+
createRenderRoot(): this;
|
|
182
|
+
protected get tvInstance(): (props?: Record<string, unknown>) => string | Record<string, (props?: {
|
|
183
|
+
class?: ClassValue;
|
|
184
|
+
}) => string>;
|
|
185
|
+
connectedCallback(): void;
|
|
186
|
+
render(): TemplateResult;
|
|
187
|
+
}
|
|
188
|
+
export type { Ref, TemplateResult } from "./mini.js";
|
|
189
|
+
export { createRef, html, nothing, ref } from "./mini.js";
|
|
190
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,KAAK,UAAU,EAAM,MAAM,mBAAmB,CAAC;AAOxD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI;IACnD,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,OAAO,CAAC,CAAC,IAChB;IACG,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACG,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEP,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAI9E,KAAK,mBAAmB,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;CAC5D,CAAC;AAeF,KAAK,aAAa,CAAC,CAAC,SAAS,cAAc,GAAG,SAAS,IAAI,CAAC,CAAC,SAAS,cAAc,GAC/E;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GACxB,mBAAmB,CAAC;AAEvB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5C,OAAO,GAAG,SAAS,GACnB,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1B,MAAM,GAAG,SAAS,GAClB,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1B,MAAM,GAAG,SAAS,GAClB,CAAC,SAAS;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAC7B,MAAM,GAAG,SAAS,GAClB,CAAC,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5B,cAAc,GAAG,SAAS,GAC1B,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,GACvD,CAAC,GACD,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5B,CAAC,GACD,KAAK,CAAC;AAqBvB,MAAM,MAAM,mBAAmB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;KAC/C,CAAC;IACF,KAAK,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAGF,KAAK,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,SAAS,MAAM,EAAE,GACxF;KACI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC,WAAW,GAAG;QACtE,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,SAAS,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACtB;CACH,GACD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAO1B,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,MAAM,CAAC,GACrF,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,MAAM,EAAE,CAAC;CAAE,GACxD;KACI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CAC7E,GACD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG3B,KAAK,yBAAyB,CAAC,CAAC,SAAS,mBAAmB,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAElH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,IAAI;KAC7D,CAAC,IAAI,MAAM,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxF,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAItG,KAAK,2BAA2B,GAC3B,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,KAAK,GACL,WAAW,GACX,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,YAAY,GACZ,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,CAAC;AAEjB,KAAK,aAAa,CAAC,CAAC,SAAS,mBAAmB,IAAI,OAAO,CACxD,MAAM,yBAAyB,CAAC,CAAC,CAAC,EAClC,UAAU,GAAG,2BAA2B,CAC1C,CAAC;AAEF,KAAK,oBAAoB,CAAC,CAAC,SAAS,mBAAmB,IAAI;KACvD,CAAC,IAAI,MAAM,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF,CAAC;AAEF,KAAK,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAG9G,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,mBAAmB,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAOlH,KAAK,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,GACrG,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,GAC5C,KAAK,CAAC;AAEX,KAAK,eAAe,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,MAAM,CAAC,GAC9E,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,MAAM,EAAE,CAAC;CAAE,GACxD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG3B,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjG,CAAC;AAGF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;IAC3F,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE;SACP,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,CAAC,GAAG;aAC7B,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM;SAC7D;KACH,CAAC;IACF,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACjH,CAAC;AAGF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,mBAAmB,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAGrH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,mBAAmB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAO3E,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAQ5F;AAGD,wBAAgB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAiBtF;AASD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,CAAA;CAAE,GAClD;KAAG,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAC;QAAC,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,KAAK,MAAM;CAAE,GAC1F,KAAK,CAAC;AAGX,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,mBAAmB,CAAC,GAC9E;KAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACjB,GACD,KAAK,CAAC;AAGX,MAAM,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACvF,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,cAAc,GAC7D,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,KAAK,MAAM,KAAK,cAAc,CAAC;AAOrF,KAAK,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAC7E,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAAE,UAAU,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAyBvG;AAGD,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEvH,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3F,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAWpB,wBAAgB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EACxF,WAAW,EAAE,CAAC,EACd,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC1C,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAEpC;AAuBD,wBAAgB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EACxF,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kDA4D5C;AAMD;;GAEG;AACH,8BAAsB,gBAAgB,CACnC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAClD,SAAQ,UAAU;IACjB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,WAAW,CAAC,CAEqD;IACzE,OAAO,CAAC,SAAS,CAAC,CAAiB;IAEnC,gBAAgB;IAIhB,SAAS,KAAK,UAAU,aARb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,KAAK,MAAM,CAAC,CAkBvE;IAED,iBAAiB;IAYjB,MAAM;CAqER;AAED,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import { tv } from "tailwind-variants";
|
|
3
|
+
const basePropDefinitions = {
|
|
4
|
+
children: {
|
|
5
|
+
type: "children",
|
|
6
|
+
default: undefined,
|
|
7
|
+
description: "Component content",
|
|
8
|
+
},
|
|
9
|
+
className: {
|
|
10
|
+
type: "classname",
|
|
11
|
+
default: undefined,
|
|
12
|
+
description: "Additional CSS classes to apply",
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
function mergeBaseProps(props) {
|
|
16
|
+
const userProps = (props ?? {});
|
|
17
|
+
const className = userProps.className && userProps.className.type === "classname"
|
|
18
|
+
? userProps.className
|
|
19
|
+
: basePropDefinitions.className;
|
|
20
|
+
const children = userProps.children && userProps.children.type === "children" ? userProps.children : basePropDefinitions.children;
|
|
21
|
+
return {
|
|
22
|
+
...userProps,
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Helper Functions
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// Extract default variant values from definition
|
|
31
|
+
export function getDefaultVariants(def) {
|
|
32
|
+
const defaults = {};
|
|
33
|
+
if (def.variants) {
|
|
34
|
+
for (const [key, value] of Object.entries(def.variants)) {
|
|
35
|
+
defaults[key] = value.default;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return defaults;
|
|
39
|
+
}
|
|
40
|
+
// Extract all default values from definition (for spreading as default props)
|
|
41
|
+
export function getDefaultProps(def) {
|
|
42
|
+
const defaults = {};
|
|
43
|
+
// Add variant defaults
|
|
44
|
+
if (def.variants) {
|
|
45
|
+
for (const [key, value] of Object.entries(def.variants)) {
|
|
46
|
+
defaults[key] = value.default;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Add prop defaults
|
|
50
|
+
const propDefinitions = mergeBaseProps(def.props);
|
|
51
|
+
for (const [key, value] of Object.entries(propDefinitions)) {
|
|
52
|
+
defaults[key] = value.default;
|
|
53
|
+
}
|
|
54
|
+
return defaults;
|
|
55
|
+
}
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// Component Factory
|
|
58
|
+
// ============================================================================
|
|
59
|
+
import { fc } from "./mini.js";
|
|
60
|
+
export function defineComponent(definition) {
|
|
61
|
+
const props = { ...(definition.props || {}) };
|
|
62
|
+
// If slots are defined, auto-generate className props for them
|
|
63
|
+
if (definition.slots) {
|
|
64
|
+
for (const slotName of definition.slots) {
|
|
65
|
+
if (slotName !== "base") {
|
|
66
|
+
const propName = `${slotName}ClassName`;
|
|
67
|
+
if (!props[propName]) {
|
|
68
|
+
props[propName] = {
|
|
69
|
+
type: "classname",
|
|
70
|
+
default: undefined,
|
|
71
|
+
description: `Additional CSS classes for the ${slotName} element`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const propsWithBase = mergeBaseProps(props);
|
|
78
|
+
return {
|
|
79
|
+
...definition,
|
|
80
|
+
props: propsWithBase,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export function styleComponent(_definition, styles) {
|
|
84
|
+
// Just return the styles - defineComponent already handles prop generation
|
|
85
|
+
return styles;
|
|
86
|
+
}
|
|
87
|
+
// Helper function that just returns the render function but helps with type inference
|
|
88
|
+
export function renderComponent(_definition, _styles, render) {
|
|
89
|
+
return render;
|
|
90
|
+
}
|
|
91
|
+
// Helper to extract variant props from component props
|
|
92
|
+
function extractVariantProps(props, definition) {
|
|
93
|
+
const variantProps = {};
|
|
94
|
+
if (definition.variants) {
|
|
95
|
+
for (const key of Object.keys(definition.variants)) {
|
|
96
|
+
if (key in props) {
|
|
97
|
+
variantProps[key] = props[key];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return variantProps;
|
|
102
|
+
}
|
|
103
|
+
// Type guard to check if styles have slots
|
|
104
|
+
function hasSlots(styles) {
|
|
105
|
+
return "slots" in styles;
|
|
106
|
+
}
|
|
107
|
+
// Create the actual component from definition, styles, and render
|
|
108
|
+
export function createComponent(definition, styles, render) {
|
|
109
|
+
const tvConfig = {
|
|
110
|
+
...styles,
|
|
111
|
+
defaultVariants: styles.defaultVariants || getDefaultVariants(definition),
|
|
112
|
+
};
|
|
113
|
+
const tvInstance = tv(tvConfig);
|
|
114
|
+
const component = fc((props) => {
|
|
115
|
+
// Apply default values
|
|
116
|
+
const propsWithDefaults = {
|
|
117
|
+
...getDefaultProps(definition),
|
|
118
|
+
...props,
|
|
119
|
+
};
|
|
120
|
+
if (hasSlots(styles)) {
|
|
121
|
+
// Multi-element component: pass slots object
|
|
122
|
+
const variantProps = extractVariantProps(propsWithDefaults, definition);
|
|
123
|
+
const slots = tvInstance({ ...variantProps });
|
|
124
|
+
// Create slot functions that accept className overrides
|
|
125
|
+
const slotFunctions = {};
|
|
126
|
+
for (const [slotName, slotFn] of Object.entries(slots)) {
|
|
127
|
+
slotFunctions[slotName] = (overrides) => {
|
|
128
|
+
// Get the slot-specific className prop if it exists
|
|
129
|
+
const slotClassNameProp = slotName === "base"
|
|
130
|
+
? propsWithDefaults.className
|
|
131
|
+
: propsWithDefaults[`${slotName}ClassName`];
|
|
132
|
+
// Combine variant classes with user overrides
|
|
133
|
+
const classOverride = overrides?.class || overrides?.className || slotClassNameProp;
|
|
134
|
+
return slotFn({ class: classOverride });
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const typedRender = render;
|
|
138
|
+
return typedRender(propsWithDefaults, slotFunctions);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Single-element component: pass className function
|
|
142
|
+
const className = (overrides) => {
|
|
143
|
+
const variantProps = extractVariantProps(propsWithDefaults, definition);
|
|
144
|
+
const userClassName = overrides || propsWithDefaults.className;
|
|
145
|
+
return String(tvInstance({ ...variantProps, class: userClassName }));
|
|
146
|
+
};
|
|
147
|
+
const typedRender = render;
|
|
148
|
+
return typedRender(propsWithDefaults, className);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// Attach definition for introspection
|
|
152
|
+
component.__def = definition;
|
|
153
|
+
return component;
|
|
154
|
+
}
|
|
155
|
+
// ============================================================================
|
|
156
|
+
// Lit Component Base Class
|
|
157
|
+
// ============================================================================
|
|
158
|
+
/**
|
|
159
|
+
* Base class for Lit components using the definition system
|
|
160
|
+
*/
|
|
161
|
+
export class ComponentLitBase extends LitElement {
|
|
162
|
+
createRenderRoot() {
|
|
163
|
+
return this; // Light DOM
|
|
164
|
+
}
|
|
165
|
+
get tvInstance() {
|
|
166
|
+
if (!this._tvInstance) {
|
|
167
|
+
const tvConfig = {
|
|
168
|
+
...this.styles,
|
|
169
|
+
defaultVariants: this.styles.defaultVariants || getDefaultVariants(this.definition),
|
|
170
|
+
};
|
|
171
|
+
this._tvInstance = tv(tvConfig);
|
|
172
|
+
}
|
|
173
|
+
return this._tvInstance;
|
|
174
|
+
}
|
|
175
|
+
connectedCallback() {
|
|
176
|
+
super.connectedCallback();
|
|
177
|
+
// Apply defaults
|
|
178
|
+
const defaults = getDefaultProps(this.definition);
|
|
179
|
+
Object.entries(defaults).forEach(([key, value]) => {
|
|
180
|
+
if (this[key] === undefined) {
|
|
181
|
+
this[key] = value;
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
render() {
|
|
186
|
+
// Capture children on first render if not already captured
|
|
187
|
+
if (!this._children && this.childNodes.length > 0) {
|
|
188
|
+
// Store the actual DOM nodes - Lit can handle them directly
|
|
189
|
+
this._children = Array.from(this.childNodes);
|
|
190
|
+
}
|
|
191
|
+
const props = {};
|
|
192
|
+
// Collect all props
|
|
193
|
+
if (this.definition?.variants) {
|
|
194
|
+
for (const key of Object.keys(this.definition.variants)) {
|
|
195
|
+
props[key] = this[key];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (this.definition?.props) {
|
|
199
|
+
for (const key of Object.keys(this.definition.props)) {
|
|
200
|
+
if (key === "children") {
|
|
201
|
+
props[key] = this._children || Array.from(this.childNodes);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
props[key] = this[key];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
props.className = this.className;
|
|
209
|
+
if (hasSlots(this.styles)) {
|
|
210
|
+
// Multi-element component: create slots object
|
|
211
|
+
const variantProps = extractVariantProps(props, this.definition);
|
|
212
|
+
const slotsResult = this.tvInstance({ ...variantProps });
|
|
213
|
+
const slots = (typeof slotsResult === "function" ? {} : slotsResult);
|
|
214
|
+
// Create slot functions that accept className overrides
|
|
215
|
+
const slotFunctions = {};
|
|
216
|
+
for (const [slotName, slotFn] of Object.entries(slots)) {
|
|
217
|
+
slotFunctions[slotName] = (overrides) => {
|
|
218
|
+
// Get the slot-specific className prop if it exists
|
|
219
|
+
const slotClassNameProp = slotName === "base" ? props.className : props[`${slotName}ClassName`];
|
|
220
|
+
// Combine variant classes with user overrides
|
|
221
|
+
const classOverride = overrides?.class || overrides?.className || slotClassNameProp;
|
|
222
|
+
return slotFn({ class: classOverride });
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
const typedRender = this.renderFn;
|
|
226
|
+
return typedRender(props, slotFunctions);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// Single-element component: create className function
|
|
230
|
+
const className = (overrides) => {
|
|
231
|
+
const variantProps = extractVariantProps(props, this.definition);
|
|
232
|
+
const userClassName = overrides || props.className;
|
|
233
|
+
return String(this.tvInstance({ ...variantProps, class: userClassName }));
|
|
234
|
+
};
|
|
235
|
+
const typedRender = this.renderFn;
|
|
236
|
+
return typedRender(props, className);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
export { createRef, html, nothing, ref } from "./mini.js";
|
|
241
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flexible i18n system for mini-lit
|
|
3
|
+
*
|
|
4
|
+
* Users can extend this with their own messages while ensuring
|
|
5
|
+
* mini-lit's required messages are included.
|
|
6
|
+
*/
|
|
7
|
+
export type LanguageCode = "en" | "de" | string;
|
|
8
|
+
export interface MiniLitRequiredMessages {
|
|
9
|
+
"*": string;
|
|
10
|
+
Copy: string;
|
|
11
|
+
"Copy code": string;
|
|
12
|
+
"Copied!": string;
|
|
13
|
+
Download: string;
|
|
14
|
+
Close: string;
|
|
15
|
+
Preview: string;
|
|
16
|
+
Code: string;
|
|
17
|
+
"Loading...": string;
|
|
18
|
+
"Select an option": string;
|
|
19
|
+
"Mode 1": string;
|
|
20
|
+
"Mode 2": string;
|
|
21
|
+
Required: string;
|
|
22
|
+
Optional: string;
|
|
23
|
+
"Input Required": string;
|
|
24
|
+
Cancel: string;
|
|
25
|
+
Confirm: string;
|
|
26
|
+
}
|
|
27
|
+
export interface i18nMessages extends MiniLitRequiredMessages {
|
|
28
|
+
}
|
|
29
|
+
export declare const defaultEnglish: MiniLitRequiredMessages;
|
|
30
|
+
export declare const defaultGerman: MiniLitRequiredMessages;
|
|
31
|
+
/**
|
|
32
|
+
* Set custom translations for your app
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* import { setTranslations } from '@elyracode/mini-lit';
|
|
36
|
+
*
|
|
37
|
+
* // Your messages must include all MiniLitRequiredMessages
|
|
38
|
+
* const myTranslations = {
|
|
39
|
+
* en: {
|
|
40
|
+
* // Required mini-lit messages
|
|
41
|
+
* "Copy": "Copy",
|
|
42
|
+
* "Copied!": "Copied!",
|
|
43
|
+
* // ... all other required messages
|
|
44
|
+
*
|
|
45
|
+
* // Your app messages
|
|
46
|
+
* "Welcome": "Welcome",
|
|
47
|
+
* "Settings": "Settings",
|
|
48
|
+
* },
|
|
49
|
+
* de: {
|
|
50
|
+
* // Required mini-lit messages
|
|
51
|
+
* "Copy": "Kopieren",
|
|
52
|
+
* "Copied!": "Kopiert!",
|
|
53
|
+
* // ... all other required messages
|
|
54
|
+
*
|
|
55
|
+
* // Your app messages
|
|
56
|
+
* "Welcome": "Willkommen",
|
|
57
|
+
* "Settings": "Einstellungen",
|
|
58
|
+
* }
|
|
59
|
+
* };
|
|
60
|
+
*
|
|
61
|
+
* setTranslations(myTranslations);
|
|
62
|
+
*/
|
|
63
|
+
export declare function setTranslations(customTranslations: Record<string, i18nMessages>): void;
|
|
64
|
+
/**
|
|
65
|
+
* Get current translations
|
|
66
|
+
*/
|
|
67
|
+
export declare function getTranslations(): Record<string, i18nMessages>;
|
|
68
|
+
export declare function getCurrentLanguage(): LanguageCode;
|
|
69
|
+
export declare function setLanguage(code: LanguageCode): void;
|
|
70
|
+
export declare function i18n<T extends keyof i18nMessages>(key: T): i18nMessages[T];
|
|
71
|
+
export declare function i18n<TCategory extends keyof i18nMessages, TKey extends keyof i18nMessages[TCategory]>(category: TCategory, key: TKey): i18nMessages[TCategory][TKey];
|
|
72
|
+
export default i18n;
|
|
73
|
+
//# sourceMappingURL=i18n.d.ts.map
|