Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
736582d3f9 | ||
|
|
a1b5c4c13e |
@@ -0,0 +1,2 @@
|
||||
# Authoring journals, resolver checkouts, and provisional reports are not source.
|
||||
/.quixos/
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"monorepoCommit": "1a4fa8f940f1ce3bd18662c28f1e9e9ca452e6cd",
|
||||
"monorepoCommit": "ba8d4f92667f39bb02d542cb492b71a32ec914bf",
|
||||
"sourcePath": "quixos-instance/workspaces/todo"
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"resources": [
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-named.git","commit":"0000000000000000000000000000000000000010","directory":"../../interfaces/named"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-task-data.git","commit":"0000000000000000000000000000000000000011","directory":"../../interfaces/task-data"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-project-tasks.git","commit":"0000000000000000000000000000000000000012","directory":"../../interfaces/project-tasks"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-project-actions.git","commit":"0000000000000000000000000000000000000013","directory":"../../interfaces/project-actions"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-task-actions.git","commit":"0000000000000000000000000000000000000014","directory":"../../interfaces/task-actions"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-display-label.git","commit":"0000000000000000000000000000000000000015","directory":"../../interfaces/display-label"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/quixos-todo/interface-task-count.git","commit":"0000000000000000000000000000000000000016","directory":"../../interfaces/task-count"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-createable.git","commit":"0000000000000000000000000000000000000017","directory":"../../interfaces/web-studio-createable"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-react-component.git","commit":"0000000000000000000000000000000000000018","directory":"../../interfaces/web-studio-react-component"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-has-react-component.git","commit":"0000000000000000000000000000000000000019","directory":"../../interfaces/web-studio-has-react-component"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-canvas.git","commit":"0000000000000000000000000000000000000024","directory":"../../interfaces/web-studio-canvas"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-canvas-placement.git","commit":"0000000000000000000000000000000000000025","directory":"../../interfaces/web-studio-canvas-placement"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-placeable.git","commit":"0000000000000000000000000000000000000026","directory":"../../interfaces/web-studio-placeable"},
|
||||
{"kind":"interface","repository":"https://repos.quixos.org/org-quixos-web-studio/interface-searchable.git","commit":"0000000000000000000000000000000000000027","directory":"../../interfaces/web-studio-searchable"},
|
||||
{"kind":"package","repository":"https://repos.quixos.org/quixos-todo/package-todo-runtime.git","commit":"0000000000000000000000000000000000000020","directory":"../../packages/todo-runtime"},
|
||||
{"kind":"package","repository":"https://repos.quixos.org/quixos-todo/package-project-runtime.git","commit":"0000000000000000000000000000000000000021","directory":"../../packages/project-runtime"},
|
||||
{"kind":"package","repository":"https://repos.quixos.org/quixos-todo/package-project-react-runtime.git","commit":"0000000000000000000000000000000000000022","directory":"../../packages/project-react-runtime"},
|
||||
{"kind":"package","repository":"https://repos.quixos.org/quixos-todo/package-todo-react-runtime.git","commit":"0000000000000000000000000000000000000023","directory":"../../packages/todo-react-runtime"},
|
||||
{"kind":"package","repository":"https://repos.quixos.org/org-quixos-web-studio/package-canvas-runtime.git","commit":"0000000000000000000000000000000000000028","directory":"../../packages/web-studio-canvas-runtime"}
|
||||
]
|
||||
}
|
||||
+14
-14
@@ -1,58 +1,58 @@
|
||||
quixos-lock fragment version 1 {
|
||||
interface Named source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-named.git";
|
||||
commit "33d6b16df0340cc0f036e987e0f65eabe38f8c24";
|
||||
commit "046a719004a6dda537a5dc98ef60f55a43eba0e4";
|
||||
}
|
||||
interface TaskData source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-task-data.git";
|
||||
commit "4fc7c686326b74dd3fdd2331060d5d50b59dfbb3";
|
||||
commit "2bce2096acbcfa4371b3d6968bed1ac8c8406180";
|
||||
}
|
||||
interface ProjectTasks source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-project-tasks.git";
|
||||
commit "305d1c335af6f61d13bcf3348f66e00fc33aad6a";
|
||||
commit "522f030dfd656ef788ae9a0b0b43b06144912042";
|
||||
}
|
||||
interface ProjectActions source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-project-actions.git";
|
||||
commit "1624e01ba6941fca763e61d8d55035de21936fbf";
|
||||
commit "a5f3237e0eae6d5d9af70be7882b70fa1256b9b7";
|
||||
}
|
||||
interface TaskActions source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-task-actions.git";
|
||||
commit "028b2ebda73c093af977b627514c6daca01c5a09";
|
||||
commit "3c1739caa67b7d1799cb39eb0f8923fd13ef22ce";
|
||||
}
|
||||
interface DisplayLabel source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-display-label.git";
|
||||
commit "40be278e2cca2a96f62b590d081dd556c1e3ab9b";
|
||||
commit "03cb4e32a1e8777450ef4de801433c5c6aa112a5";
|
||||
}
|
||||
interface TaskCount source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-task-count.git";
|
||||
commit "fc52cdb828d3db5a90b67e01398f8d6ce0372d8a";
|
||||
commit "658a3ad87e5ee46087a71e9441bdeaebd419006c";
|
||||
}
|
||||
interface WebStudioCreateable source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-createable.git";
|
||||
commit "a3b034593d146977740394186a9e9934987ddb29";
|
||||
commit "4795615d13a5cbe361293f6a719d4ba40eaa5abb";
|
||||
}
|
||||
interface WebStudioReactComponent source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-react-component.git";
|
||||
commit "07bdac17a8b14b7004db3b73fee582769c7eb8b0";
|
||||
commit "b238cdcf1225454edf9353343e9fdbcd1cd880cc";
|
||||
}
|
||||
interface WebStudioHasReactComponent source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-has-react-component.git";
|
||||
commit "2906c67a9f7434d83dd22e57e67e618776e032c7";
|
||||
commit "3d836adf25e5c13d20b943d129f2a18971db1af5";
|
||||
}
|
||||
interface WebStudioCanvas source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-canvas.git";
|
||||
commit "0f3ea1ee0b2ebce10dd35a285531f9133edf1e7f";
|
||||
commit "f3cb4cb1993f9ef6a35cdcb96558e835704992fa";
|
||||
}
|
||||
interface WebStudioCanvasPlacement source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-canvas-placement.git";
|
||||
commit "63ddb4a5fec887ac181c8cd2ad9cb287cce6cf7b";
|
||||
commit "8dd3e248d9d8add9c9eeed3e6e0df543fa074b93";
|
||||
}
|
||||
interface WebStudioPlaceable source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-placeable.git";
|
||||
commit "d8b74bf3fd4d281ded1b10fbaf5d2b37d9a8d8f9";
|
||||
commit "74bf405381439023d1abf55d7c7f0bc1796f075e";
|
||||
}
|
||||
interface WebStudioSearchable source {
|
||||
repository "https://repos.quixos.org/quixos-templates/interface-searchable.git";
|
||||
commit "69d8505566192b8f17487bc9cd4e01d1ec1d5c2d";
|
||||
commit "7c50904e68a64184ce6e1a3555124135cc47ff4b";
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,22 +1,22 @@
|
||||
quixos-lock fragment version 1 {
|
||||
package TodoRuntime source {
|
||||
repository "https://repos.quixos.org/quixos-templates/package-todo-runtime.git";
|
||||
commit "fcc763672cc96b971500e88fdf1256866be98f64";
|
||||
commit "de042800aee6bf98ee158d3b69aaf11fcaa43159";
|
||||
}
|
||||
package ProjectRuntime source {
|
||||
repository "https://repos.quixos.org/quixos-templates/package-project-runtime.git";
|
||||
commit "ae42bcf0f8d05026363c138d10e9839ed7021c50";
|
||||
commit "f1b5c7863ebf32eea0a8d830261c1e9bfb0f7bdc";
|
||||
}
|
||||
package ProjectReactRuntime source {
|
||||
repository "https://repos.quixos.org/quixos-templates/package-project-react-runtime.git";
|
||||
commit "5d94b2ceea35a83eb31e7a6c6caf9835efecb816";
|
||||
commit "8bb4475cc5d445de4609d9769e4e6be1efc8f608";
|
||||
}
|
||||
package TodoReactRuntime source {
|
||||
repository "https://repos.quixos.org/quixos-templates/package-todo-react-runtime.git";
|
||||
commit "126ecd37c922bf8b0eab51896dbbba8139a06bfb";
|
||||
commit "3768c84a464fe41c7c36af991152678cc6775bfc";
|
||||
}
|
||||
package WebStudioCanvasRuntime source {
|
||||
repository "https://repos.quixos.org/quixos-templates/package-canvas-runtime.git";
|
||||
commit "8bcd597b7233ac68423816d50d6758539d6deca3";
|
||||
commit "5f0e5c616a99eac0299df8d2fc6dcc275becfd5b";
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
quixos-lock version 1 {
|
||||
quixos source {
|
||||
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
|
||||
commit "1a4fa8f940f1ce3bd18662c28f1e9e9ca452e6cd";
|
||||
commit "ba8d4f92667f39bb02d542cb492b71a32ec914bf";
|
||||
}
|
||||
import "locks/interfaces.lock";
|
||||
import "locks/packages.lock";
|
||||
|
||||
+81
-89
@@ -27,44 +27,27 @@ workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" com
|
||||
import package TodoReactRuntime;
|
||||
import package WebStudioCanvasRuntime;
|
||||
|
||||
shared state ProjectName id "slot:project:name" on Project : string policy optimistic-register default "Untitled project";
|
||||
shared state TaskTitle id "slot:task:title" on Task : string policy optimistic-register default "Untitled task";
|
||||
shared state TaskStatus id "slot:task:status" on Task : string policy optimistic-register default "OPEN";
|
||||
shared state TaskPriority id "slot:task:priority" on Task : string policy optimistic-register default "NORMAL";
|
||||
shared state TaskNotes id "slot:task:notes" on Task : string policy crdt(string) default "";
|
||||
shared state TaskDueDate id "slot:task:due-date" on Task : string policy optimistic-register default "";
|
||||
shared state TaskEnergy id "slot:task:energy" on Task : string policy optimistic-register default "MEDIUM";
|
||||
shared state WebStudioCanvasName id "slot:org.quixos.web-studio.canvas:name" on WebStudioCanvas : string policy optimistic-register default "Hearth";
|
||||
shared state WebStudioPlacementPosition id "slot:org.quixos.web-studio.canvas-placement:position" on WebStudioCanvasPlacement : message "org.quixos.web-studio.CanvasPosition" policy optimistic-register default {"x":0,"y":0};
|
||||
shared state WebStudioPlacementSize id "slot:org.quixos.web-studio.canvas-placement:size" on WebStudioCanvasPlacement : message "org.quixos.web-studio.CanvasSize" policy optimistic-register default {"width":420,"height":320};
|
||||
shared state WebStudioPlacementZ id "slot:org.quixos.web-studio.canvas-placement:z" on WebStudioCanvasPlacement : int32 policy optimistic-register default 0;
|
||||
shared edge ProjectTaskEdge id "edge:project:tasks" {
|
||||
atom Project projection tasks id "projection:project:tasks" many-unique ordered;
|
||||
atom Task projection project id "projection:task:project" optional-one;
|
||||
}
|
||||
shared edge ProjectComponentEdge id "edge:project:web-studio-component" {
|
||||
atom ProjectReactComponent projection subject id "projection:project-component:subject" exactly-one;
|
||||
atom Project projection component id "projection:project:component" optional-one;
|
||||
}
|
||||
shared edge TaskComponentEdge id "edge:task:web-studio-component" {
|
||||
atom TaskReactComponent projection subject id "projection:task-component:subject" exactly-one;
|
||||
atom Task projection component id "projection:task:component" optional-one;
|
||||
}
|
||||
shared edge WebStudioCanvasPlacementEdge id "edge:org.quixos.web-studio:canvas-placements" {
|
||||
atom WebStudioCanvasPlacement projection canvas id "projection:org.quixos.web-studio.canvas-placement:canvas" exactly-one;
|
||||
interface WebStudioCanvas projection placements id "projection:org.quixos.web-studio.canvas:placements" many-unique ordered;
|
||||
}
|
||||
shared edge WebStudioPlacementSubjectEdge id "edge:org.quixos.web-studio:placement-subject" {
|
||||
atom WebStudioCanvasPlacement projection subject id "projection:org.quixos.web-studio.canvas-placement:subject" exactly-one;
|
||||
interface WebStudioPlaceable projection placements id "projection:org.quixos.web-studio.placeable:placements" many-unique ordered;
|
||||
}
|
||||
|
||||
conform WebStudioCanvas as WebStudioCanvas {
|
||||
conform WebStudioCanvas as WebStudioCanvas id "conformance:todo:WebStudioCanvas:WebStudioCanvas" {
|
||||
private state WebStudioCanvasName id "slot:org.quixos.web-studio.canvas:name" on WebStudioCanvas : string policy optimistic-register default "Hearth";
|
||||
|
||||
bind name.get to state WebStudioCanvasName.read;
|
||||
bind name.set to state WebStudioCanvasName.write;
|
||||
bind placements.resolve to edge WebStudioCanvasPlacementEdge.placements.resolve;
|
||||
}
|
||||
conform WebStudioCanvasPlacement as WebStudioCanvasPlacement {
|
||||
conform WebStudioCanvasPlacement as WebStudioCanvasPlacement id "conformance:todo:WebStudioCanvasPlacement:WebStudioCanvasPlacement" {
|
||||
private state WebStudioPlacementPosition id "slot:org.quixos.web-studio.canvas-placement:position" on WebStudioCanvasPlacement : message "org.quixos.web-studio.CanvasPosition" policy optimistic-register default {"x":0,"y":0};
|
||||
private state WebStudioPlacementSize id "slot:org.quixos.web-studio.canvas-placement:size" on WebStudioCanvasPlacement : message "org.quixos.web-studio.CanvasSize" policy optimistic-register default {"width":420,"height":320};
|
||||
private state WebStudioPlacementZ id "slot:org.quixos.web-studio.canvas-placement:z" on WebStudioCanvasPlacement : int32 policy optimistic-register default 0;
|
||||
private edge WebStudioCanvasPlacementEdge id "edge:org.quixos.web-studio:canvas-placements" {
|
||||
atom WebStudioCanvasPlacement projection canvas id "projection:org.quixos.web-studio.canvas-placement:canvas" exactly-one;
|
||||
interface WebStudioCanvas projection placements id "projection:org.quixos.web-studio.canvas:placements" many-unique ordered public-traversal;
|
||||
}
|
||||
private edge WebStudioPlacementSubjectEdge id "edge:org.quixos.web-studio:placement-subject" {
|
||||
atom WebStudioCanvasPlacement projection subject id "projection:org.quixos.web-studio.canvas-placement:subject" exactly-one;
|
||||
interface WebStudioPlaceable projection placements id "projection:org.quixos.web-studio.placeable:placements" many-unique ordered public-traversal;
|
||||
}
|
||||
|
||||
bind position.get to state WebStudioPlacementPosition.read;
|
||||
bind position.set to state WebStudioPlacementPosition.write;
|
||||
bind size.get to state WebStudioPlacementSize.read;
|
||||
@@ -79,11 +62,14 @@ workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" com
|
||||
bind canvas.disconnect to edge WebStudioCanvasPlacementEdge.canvas.disconnect;
|
||||
}
|
||||
|
||||
conform Project as WebStudioCreateable {}
|
||||
conform Project as WebStudioPlaceable {
|
||||
conform Project as WebStudioCreateable id "conformance:todo:Project:WebStudioCreateable" {
|
||||
}
|
||||
conform Project as WebStudioPlaceable id "conformance:todo:Project:WebStudioPlaceable" {
|
||||
|
||||
bind placements.resolve to edge WebStudioPlacementSubjectEdge.placements.resolve;
|
||||
}
|
||||
conform Project as WebStudioSearchable {
|
||||
conform Project as WebStudioSearchable id "conformance:todo:Project:WebStudioSearchable" {
|
||||
|
||||
bind document.get to package ProjectRuntime.searchDocumentGet with {
|
||||
named to interface Named;
|
||||
tasks to interface ProjectTasks;
|
||||
@@ -94,35 +80,50 @@ workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" com
|
||||
};
|
||||
bind document.watch-stop to package ProjectRuntime.searchDocumentWatchStop;
|
||||
}
|
||||
conform Project as WebStudioHasReactComponent {
|
||||
conform Project as WebStudioHasReactComponent id "conformance:todo:Project:WebStudioHasReactComponent" {
|
||||
private edge ProjectComponentEdge id "edge:project:web-studio-component" {
|
||||
atom ProjectReactComponent projection subject id "projection:project-component:subject" exactly-one public-traversal;
|
||||
atom Project projection component id "projection:project:component" optional-one;
|
||||
}
|
||||
|
||||
bind component.resolve to edge ProjectComponentEdge.component.resolve;
|
||||
materialize component if absent using constructor ProjectReactComponent via edge ProjectComponentEdge.subject;
|
||||
}
|
||||
conform Project as Named {
|
||||
conform Project as Named id "conformance:todo:Project:Named" {
|
||||
private state ProjectName id "slot:project:name" on Project : string policy optimistic-register default "Untitled project";
|
||||
|
||||
bind name.get to state ProjectName.read;
|
||||
bind name.set to state ProjectName.write;
|
||||
}
|
||||
conform Project as ProjectTasks {
|
||||
conform Project as ProjectTasks id "conformance:todo:Project:ProjectTasks" {
|
||||
private edge ProjectTaskEdge id "edge:project:tasks" {
|
||||
atom Project projection tasks id "projection:project:tasks" many-unique ordered;
|
||||
atom Task projection project id "projection:task:project" optional-one;
|
||||
}
|
||||
|
||||
bind tasks.resolve to edge ProjectTaskEdge.tasks.resolve;
|
||||
bind tasks.connect to edge ProjectTaskEdge.tasks.connect;
|
||||
bind tasks.disconnect to edge ProjectTaskEdge.tasks.disconnect;
|
||||
}
|
||||
conform Project as ProjectActions {
|
||||
conform Project as ProjectActions id "conformance:todo:Project:ProjectActions" {
|
||||
|
||||
bind addTask.call to package ProjectRuntime.addTask with {
|
||||
tasks to edge ProjectTaskEdge.tasks;
|
||||
tasks to interface ProjectTasks;
|
||||
task to constructor Task;
|
||||
};
|
||||
}
|
||||
conform Project as TaskCount {
|
||||
conform Project as TaskCount id "conformance:todo:Project:TaskCount" {
|
||||
|
||||
bind count.get to package ProjectRuntime.taskCountGet with {
|
||||
tasks to edge ProjectTaskEdge.tasks;
|
||||
tasks to interface ProjectTasks;
|
||||
};
|
||||
bind count.watch-start to package ProjectRuntime.taskCountWatch with {
|
||||
tasks to edge ProjectTaskEdge.tasks;
|
||||
tasks to interface ProjectTasks;
|
||||
};
|
||||
bind count.watch-stop to package ProjectRuntime.taskCountWatchStop;
|
||||
}
|
||||
conform ProjectReactComponent as WebStudioReactComponent {
|
||||
conform ProjectReactComponent as WebStudioReactComponent id "conformance:todo:ProjectReactComponent:WebStudioReactComponent" {
|
||||
|
||||
bind source.get to package ProjectReactRuntime.sourceGet;
|
||||
bind props.get to package ProjectReactRuntime.propsGet with {
|
||||
named to interface Named via edge ProjectComponentEdge.subject;
|
||||
@@ -135,29 +136,37 @@ workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" com
|
||||
bind props.watch-stop to package ProjectReactRuntime.propsWatchStop;
|
||||
}
|
||||
|
||||
conform Task as WebStudioHasReactComponent {
|
||||
conform Task as WebStudioHasReactComponent id "conformance:todo:Task:WebStudioHasReactComponent" {
|
||||
private edge TaskComponentEdge id "edge:task:web-studio-component" {
|
||||
atom TaskReactComponent projection subject id "projection:task-component:subject" exactly-one public-traversal;
|
||||
atom Task projection component id "projection:task:component" optional-one;
|
||||
}
|
||||
|
||||
bind component.resolve to edge TaskComponentEdge.component.resolve;
|
||||
materialize component if absent using constructor TaskReactComponent via edge TaskComponentEdge.subject;
|
||||
}
|
||||
conform Task as WebStudioPlaceable {
|
||||
conform Task as WebStudioPlaceable id "conformance:todo:Task:WebStudioPlaceable" {
|
||||
|
||||
bind placements.resolve to edge WebStudioPlacementSubjectEdge.placements.resolve;
|
||||
}
|
||||
conform Task as WebStudioSearchable {
|
||||
conform Task as WebStudioSearchable id "conformance:todo:Task:WebStudioSearchable" {
|
||||
|
||||
bind document.get to package TodoRuntime.searchDocumentGet with {
|
||||
title to state TaskTitle;
|
||||
status to state TaskStatus;
|
||||
priority to state TaskPriority;
|
||||
dueDate to state TaskDueDate;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind document.watch-start to package TodoRuntime.searchDocumentWatch with {
|
||||
title to state TaskTitle;
|
||||
status to state TaskStatus;
|
||||
priority to state TaskPriority;
|
||||
dueDate to state TaskDueDate;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind document.watch-stop to package TodoRuntime.searchDocumentWatchStop;
|
||||
}
|
||||
conform Task as TaskData {
|
||||
conform Task as TaskData id "conformance:todo:Task:TaskData" {
|
||||
private state TaskTitle id "slot:task:title" on Task : string policy optimistic-register default "Untitled task";
|
||||
private state TaskStatus id "slot:task:status" on Task : string policy optimistic-register default "OPEN";
|
||||
private state TaskPriority id "slot:task:priority" on Task : string policy optimistic-register default "NORMAL";
|
||||
private state TaskNotes id "slot:task:notes" on Task : string policy crdt(string) default "";
|
||||
private state TaskDueDate id "slot:task:due-date" on Task : string policy optimistic-register default "";
|
||||
private state TaskEnergy id "slot:task:energy" on Task : string policy optimistic-register default "MEDIUM";
|
||||
|
||||
bind title.get to state TaskTitle.read;
|
||||
bind title.set to state TaskTitle.write;
|
||||
bind status.get to state TaskStatus.read;
|
||||
@@ -171,65 +180,48 @@ workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" com
|
||||
bind energy.get to state TaskEnergy.read;
|
||||
bind energy.set to state TaskEnergy.write;
|
||||
}
|
||||
conform Task as TaskActions {
|
||||
conform Task as TaskActions id "conformance:todo:Task:TaskActions" {
|
||||
|
||||
bind complete.call to package TodoRuntime.complete with {
|
||||
status to state TaskStatus;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind reopen.call to package TodoRuntime.reopen with {
|
||||
status to state TaskStatus;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind archive.call to package TodoRuntime.archive with {
|
||||
status to state TaskStatus;
|
||||
data to interface TaskData;
|
||||
};
|
||||
}
|
||||
conform Task as DisplayLabel {
|
||||
conform Task as DisplayLabel id "conformance:todo:Task:DisplayLabel" {
|
||||
|
||||
bind label.get to package TodoRuntime.displayLabelGet with {
|
||||
title to state TaskTitle;
|
||||
status to state TaskStatus;
|
||||
priority to state TaskPriority;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind label.watch-start to package TodoRuntime.displayLabelWatch with {
|
||||
title to state TaskTitle;
|
||||
status to state TaskStatus;
|
||||
priority to state TaskPriority;
|
||||
data to interface TaskData;
|
||||
};
|
||||
bind label.watch-stop to package TodoRuntime.displayLabelWatchStop;
|
||||
}
|
||||
conform TaskReactComponent as WebStudioReactComponent {
|
||||
conform TaskReactComponent as WebStudioReactComponent id "conformance:todo:TaskReactComponent:WebStudioReactComponent" {
|
||||
|
||||
bind source.get to package TodoReactRuntime.sourceGet;
|
||||
bind props.get to package TodoReactRuntime.propsGet with {
|
||||
subject to edge TaskComponentEdge.subject;
|
||||
title to state TaskTitle via edge TaskComponentEdge.subject;
|
||||
status to state TaskStatus via edge TaskComponentEdge.subject;
|
||||
priority to state TaskPriority via edge TaskComponentEdge.subject;
|
||||
notes to state TaskNotes via edge TaskComponentEdge.subject;
|
||||
dueDate to state TaskDueDate via edge TaskComponentEdge.subject;
|
||||
energy to state TaskEnergy via edge TaskComponentEdge.subject;
|
||||
data to interface TaskData via edge TaskComponentEdge.subject;
|
||||
};
|
||||
bind props.watch-start to package TodoReactRuntime.propsWatch with {
|
||||
subject to edge TaskComponentEdge.subject;
|
||||
title to state TaskTitle via edge TaskComponentEdge.subject;
|
||||
status to state TaskStatus via edge TaskComponentEdge.subject;
|
||||
priority to state TaskPriority via edge TaskComponentEdge.subject;
|
||||
notes to state TaskNotes via edge TaskComponentEdge.subject;
|
||||
dueDate to state TaskDueDate via edge TaskComponentEdge.subject;
|
||||
energy to state TaskEnergy via edge TaskComponentEdge.subject;
|
||||
data to interface TaskData via edge TaskComponentEdge.subject;
|
||||
};
|
||||
bind props.watch-stop to package TodoReactRuntime.propsWatchStop;
|
||||
}
|
||||
|
||||
constructor Project to ProjectRuntime.createProject;
|
||||
constructor Task to TodoRuntime.createTask with {
|
||||
title to state TaskTitle;
|
||||
data to interface TaskData;
|
||||
};
|
||||
constructor ProjectReactComponent to ProjectReactRuntime.createComponent;
|
||||
constructor TaskReactComponent to TodoReactRuntime.createComponent;
|
||||
constructor WebStudioCanvas to WebStudioCanvasRuntime.createCanvas;
|
||||
constructor WebStudioCanvasPlacement to WebStudioCanvasRuntime.createPlacement with {
|
||||
position to state WebStudioPlacementPosition;
|
||||
size to state WebStudioPlacementSize;
|
||||
z to state WebStudioPlacementZ;
|
||||
canvas to edge WebStudioCanvasPlacementEdge.canvas;
|
||||
subject to edge WebStudioPlacementSubjectEdge.subject;
|
||||
placement to interface WebStudioCanvasPlacement;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user