@monimesl/dot-cli 1.0.0-beta.1 → 1.0.0-beta.10
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/README.md +22 -9
- package/dist/cli.js +15 -12
- package/dist/cli.js.map +1 -1
- package/dist/{server-DMnWDdJ6.js → server-BhnO9_Zu.js} +56 -7
- package/dist/server-BhnO9_Zu.js.map +1 -0
- package/dist/templates/showcase/.env +2 -2
- package/dist/templates/showcase/dot.ts +22 -2
- package/dist/templates/showcase/pages/basics/bars/controller.ts +2 -2
- package/dist/templates/showcase/pages/basics/bars/view.dml +2 -1
- package/dist/templates/showcase/pages/basics/bindings/state.ts +2 -2
- package/dist/templates/showcase/pages/basics/bindings/view.dml +2 -2
- package/dist/templates/showcase/pages/basics/colors/controller.ts +1 -1
- package/dist/templates/showcase/pages/basics/concert/view.dml +1 -1
- package/dist/templates/showcase/pages/basics/control-flow/controller.ts +1 -1
- package/dist/templates/showcase/pages/basics/control-flow/view.dml +1 -1
- package/dist/templates/showcase/pages/basics/events/controller.ts +1 -1
- package/dist/templates/showcase/pages/basics/events/view.dml +1 -1
- package/dist/templates/showcase/pages/basics/hooks/controller.ts +2 -1
- package/dist/templates/showcase/pages/basics/hooks/view.dml +2 -2
- package/dist/templates/showcase/pages/basics/navigation/controller.ts +1 -0
- package/dist/templates/showcase/pages/basics/navigation/view.dml +1 -1
- package/dist/templates/showcase/pages/basics/pick-genre/controller.ts +3 -3
- package/dist/templates/showcase/pages/basics/share/view.dml +2 -2
- package/dist/templates/showcase/pages/basics/state/controller.ts +9 -0
- package/dist/templates/showcase/pages/basics/state/state.ts +3 -0
- package/dist/templates/showcase/pages/basics/theme/controller.ts +28 -0
- package/dist/templates/showcase/pages/basics/theme/state.ts +4 -0
- package/dist/templates/showcase/pages/basics/theme/view.dml +50 -0
- package/dist/templates/showcase/pages/components/capture/controller.ts +25 -0
- package/dist/templates/showcase/pages/components/capture/state.ts +7 -0
- package/dist/templates/showcase/pages/components/capture/view.dml +32 -0
- package/dist/templates/showcase/pages/components/carousel/view.dml +2 -2
- package/dist/templates/showcase/pages/components/feedback/controller.ts +2 -1
- package/dist/templates/showcase/pages/components/feedback/state.ts +2 -2
- package/dist/templates/showcase/pages/components/feedback/view.dml +2 -2
- package/dist/templates/showcase/pages/components/forms/controller.ts +2 -2
- package/dist/templates/showcase/pages/components/forms/state.ts +1 -1
- package/dist/templates/showcase/pages/components/forms/view.dml +6 -5
- package/dist/templates/showcase/pages/components/icons/controller.ts +1 -0
- package/dist/templates/showcase/pages/components/icons/state.ts +1 -1
- package/dist/templates/showcase/pages/components/images/controller.ts +1 -1
- package/dist/templates/showcase/pages/components/images/state.ts +1 -1
- package/dist/templates/showcase/pages/components/images/view.dml +4 -4
- package/dist/templates/showcase/pages/components/layout/controller.ts +5 -1
- package/dist/templates/showcase/pages/components/layout/state.ts +2 -0
- package/dist/templates/showcase/pages/components/layout/view.dml +44 -6
- package/dist/templates/showcase/pages/components/lists/view.dml +12 -7
- package/dist/templates/showcase/pages/components/money/controller.ts +1 -1
- package/dist/templates/showcase/pages/components/money/view.dml +2 -2
- package/dist/templates/showcase/pages/components/pinned/controller.ts +10 -0
- package/dist/templates/showcase/pages/components/pinned/state.ts +25 -0
- package/dist/templates/showcase/pages/components/pinned/view.dml +42 -0
- package/dist/templates/showcase/pages/components/reading/state.ts +2 -2
- package/dist/templates/showcase/pages/components/sheets/controller.ts +1 -1
- package/dist/templates/showcase/pages/components/sheets/view.dml +1 -1
- package/dist/templates/showcase/pages/components/styles/view.dml +39 -4
- package/dist/templates/showcase/pages/components/tabs/state.ts +2 -2
- package/dist/templates/showcase/pages/components/tabs/view.dml +6 -5
- package/dist/templates/showcase/pages/components/text/view.dml +4 -4
- package/dist/templates/showcase/pages/dash/account/controller.ts +3 -0
- package/dist/templates/showcase/pages/dash/account/view.dml +2 -2
- package/dist/templates/showcase/pages/dash/cache/controller.ts +45 -16
- package/dist/templates/showcase/pages/dash/cache/state.ts +1 -0
- package/dist/templates/showcase/pages/dash/cache/view.dml +4 -0
- package/dist/templates/showcase/pages/dash/calls/controller.ts +3 -2
- package/dist/templates/showcase/pages/dash/contacts/controller.ts +1 -0
- package/dist/templates/showcase/pages/dash/crypto/controller.ts +2 -0
- package/dist/templates/showcase/pages/dash/crypto/view.dml +1 -1
- package/dist/templates/showcase/pages/dash/files/controller.ts +67 -32
- package/dist/templates/showcase/pages/dash/files/state.ts +1 -0
- package/dist/templates/showcase/pages/dash/files/view.dml +5 -1
- package/dist/templates/showcase/pages/dash/media/controller.ts +7 -1
- package/dist/templates/showcase/pages/dash/media/state.ts +2 -0
- package/dist/templates/showcase/pages/dash/network/controller.ts +5 -1
- package/dist/templates/showcase/pages/dash/network/view.dml +1 -1
- package/dist/templates/showcase/pages/dash/payments/cases.ts +40 -22
- package/dist/templates/showcase/pages/dash/payments/controller.ts +27 -3
- package/dist/templates/showcase/pages/dash/payments/state.ts +2 -0
- package/dist/templates/showcase/pages/dash/payments/view.dml +3 -1
- package/dist/templates/showcase/pages/dash/reminders/controller.ts +73 -0
- package/dist/templates/showcase/pages/dash/reminders/state.ts +6 -0
- package/dist/templates/showcase/pages/dash/reminders/view.dml +34 -0
- package/dist/templates/showcase/pages/dash/secrets/controller.ts +37 -14
- package/dist/templates/showcase/pages/dash/secrets/state.ts +1 -0
- package/dist/templates/showcase/pages/dash/secrets/view.dml +4 -0
- package/dist/templates/showcase/pages/dash/system/controller.ts +5 -0
- package/dist/templates/showcase/pages/dash/system/view.dml +4 -4
- package/dist/templates/showcase/pages/dash/ui/controller.ts +6 -1
- package/dist/templates/showcase/pages/index/controller.ts +1 -0
- package/dist/templates/showcase/pages/index/state.ts +30 -6
- package/dist/templates/showcase/statics/icons/ticket-stub.svg +1 -0
- package/dist/templates/starter/.env +2 -2
- package/dist/templates/starter/dot.ts +1 -0
- package/dist/templates/starter/pages/index/controller.ts +2 -0
- package/dist/templates/starter/pages/index/state.ts +2 -0
- package/dist/templates/starter/pages/index/view.dml +2 -1
- package/package.json +6 -6
- package/dist/server-DMnWDdJ6.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as findDotRoot } from "./cli.js";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
-
import { CONTROL_FLOW_TAGS, DATA_PREFIX, ROOT_TAG, canHaveChildren, compileView, dataKey, listStatics } from "@monimesl/dot-compiler";
|
|
4
|
+
import { CONTROL_FLOW_TAGS, DATA_PREFIX, DOT_FILE, ROOT_TAG, canHaveChildren, compileView, dataKey, listStatics } from "@monimesl/dot-compiler";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
7
7
|
import { parseDmlToIR } from "@monimesl/dot-dml-parser";
|
|
@@ -10599,10 +10599,10 @@ function valueCompletions(element, attribute, page, scope, components) {
|
|
|
10599
10599
|
if (!component) return [];
|
|
10600
10600
|
if (isEventProp(attribute) && component.events.includes(eventName(attribute))) return handlerCompletions(page);
|
|
10601
10601
|
const type = component.props[attribute];
|
|
10602
|
-
if (type && isWordsOr(type)) return type.words.map((value) => ({
|
|
10602
|
+
if (type && isWordsOr(type)) return [...type.words.map((value) => ({
|
|
10603
10603
|
label: value,
|
|
10604
10604
|
kind: import_main.CompletionItemKind.EnumMember
|
|
10605
|
-
}));
|
|
10605
|
+
})), ...themeCompletions(type, attribute, page)];
|
|
10606
10606
|
if (Array.isArray(type)) return type.map((value) => ({
|
|
10607
10607
|
label: value,
|
|
10608
10608
|
kind: import_main.CompletionItemKind.EnumMember
|
|
@@ -10617,6 +10617,18 @@ function valueCompletions(element, attribute, page, scope, components) {
|
|
|
10617
10617
|
}));
|
|
10618
10618
|
return [];
|
|
10619
10619
|
}
|
|
10620
|
+
function themeCompletions(type, attribute, page) {
|
|
10621
|
+
const { theme } = page;
|
|
10622
|
+
if (!theme) return [];
|
|
10623
|
+
let names = [];
|
|
10624
|
+
if (type.or === "themeIcon") names = theme.icons;
|
|
10625
|
+
else if (type.or === "themeColor") names = attribute === "background" ? [...theme.colors, ...theme.gradients] : theme.colors;
|
|
10626
|
+
return names.map((name) => ({
|
|
10627
|
+
label: name,
|
|
10628
|
+
kind: import_main.CompletionItemKind.Color,
|
|
10629
|
+
detail: "from the theme in dot.ts"
|
|
10630
|
+
}));
|
|
10631
|
+
}
|
|
10620
10632
|
function forKeyCompletions(element, scope) {
|
|
10621
10633
|
let properties = [];
|
|
10622
10634
|
if (scope) {
|
|
@@ -10810,22 +10822,59 @@ function diagnosticAt(document, start, message, severity) {
|
|
|
10810
10822
|
};
|
|
10811
10823
|
}
|
|
10812
10824
|
//#endregion
|
|
10825
|
+
//#region src/lsp/theme-names.ts
|
|
10826
|
+
function readThemeNames(text, file) {
|
|
10827
|
+
const theme = memberOf(dotOptions(ts.createSourceFile(file, text, ts.ScriptTarget.Latest)), "theme");
|
|
10828
|
+
return {
|
|
10829
|
+
colors: namesIn(memberOf(memberOf(theme, "colors"), "custom")),
|
|
10830
|
+
gradients: namesIn(memberOf(theme, "gradients")),
|
|
10831
|
+
icons: namesIn(memberOf(theme, "icons"))
|
|
10832
|
+
};
|
|
10833
|
+
}
|
|
10834
|
+
function dotOptions(source) {
|
|
10835
|
+
for (const statement of source.statements) if (ts.isExportAssignment(statement) && ts.isCallExpression(statement.expression)) {
|
|
10836
|
+
const [options] = statement.expression.arguments;
|
|
10837
|
+
if (options && ts.isObjectLiteralExpression(options)) return options;
|
|
10838
|
+
}
|
|
10839
|
+
}
|
|
10840
|
+
function memberOf(object, name) {
|
|
10841
|
+
for (const property of object?.properties ?? []) if (ts.isPropertyAssignment(property) && propertyName(property) === name && ts.isObjectLiteralExpression(property.initializer)) return property.initializer;
|
|
10842
|
+
}
|
|
10843
|
+
function namesIn(object) {
|
|
10844
|
+
const names = [];
|
|
10845
|
+
for (const property of object?.properties ?? []) {
|
|
10846
|
+
const name = ts.isPropertyAssignment(property) ? propertyName(property) : void 0;
|
|
10847
|
+
if (name !== void 0) names.push(name);
|
|
10848
|
+
}
|
|
10849
|
+
return names;
|
|
10850
|
+
}
|
|
10851
|
+
function propertyName(property) {
|
|
10852
|
+
const { name } = property;
|
|
10853
|
+
if (ts.isIdentifier(name) || ts.isStringLiteral(name)) return name.text;
|
|
10854
|
+
}
|
|
10855
|
+
//#endregion
|
|
10813
10856
|
//#region src/lsp/page.ts
|
|
10814
10857
|
async function readPage(viewFile, readText, stateTypes) {
|
|
10815
10858
|
const dir = dirname(viewFile);
|
|
10816
10859
|
const root = findDotRoot(dir);
|
|
10817
|
-
const [state, controller, statics] = await Promise.all([
|
|
10860
|
+
const [state, controller, statics, theme] = await Promise.all([
|
|
10818
10861
|
readState(join(dir, "state.ts"), root, readText, stateTypes),
|
|
10819
10862
|
readController(join(dir, "controller.ts"), readText),
|
|
10820
|
-
root === void 0 ? void 0 : listStatics(root).catch(() => void 0)
|
|
10863
|
+
root === void 0 ? void 0 : listStatics(root).catch(() => void 0),
|
|
10864
|
+
root === void 0 ? void 0 : readTheme(join(root, DOT_FILE), readText)
|
|
10821
10865
|
]);
|
|
10822
10866
|
return {
|
|
10823
10867
|
root,
|
|
10824
10868
|
state,
|
|
10825
10869
|
controller,
|
|
10826
|
-
statics
|
|
10870
|
+
statics,
|
|
10871
|
+
theme
|
|
10827
10872
|
};
|
|
10828
10873
|
}
|
|
10874
|
+
async function readTheme(file, readText) {
|
|
10875
|
+
const text = await readText(file);
|
|
10876
|
+
return text === void 0 ? void 0 : readThemeNames(text, file);
|
|
10877
|
+
}
|
|
10829
10878
|
async function readState(file, root, readText, stateTypes) {
|
|
10830
10879
|
const text = await readText(file);
|
|
10831
10880
|
if (text === void 0) return;
|
|
@@ -11305,4 +11354,4 @@ function serveStdio() {
|
|
|
11305
11354
|
//#endregion
|
|
11306
11355
|
export { serveStdio };
|
|
11307
11356
|
|
|
11308
|
-
//# sourceMappingURL=server-
|
|
11357
|
+
//# sourceMappingURL=server-BhnO9_Zu.js.map
|