Export template source from 99b2868b7e974441744657b35049f5baae4a499b:quixos-instance/workspaces/todo
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
# Authoring journals, resolver checkouts, and provisional reports are not source.
|
||||||
|
/.quixos/
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"monorepoCommit": "99b2868b7e974441744657b35049f5baae4a499b",
|
||||||
|
"sourcePath": "quixos-instance/workspaces/todo"
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
quixos-lock fragment version 1 {
|
||||||
|
interface Named source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-named.git";
|
||||||
|
commit "0000000000000000000000000000000000000010";
|
||||||
|
}
|
||||||
|
interface TaskData source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-task-data.git";
|
||||||
|
commit "0000000000000000000000000000000000000011";
|
||||||
|
}
|
||||||
|
interface ProjectTasks source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-project-tasks.git";
|
||||||
|
commit "0000000000000000000000000000000000000012";
|
||||||
|
}
|
||||||
|
interface ProjectActions source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-project-actions.git";
|
||||||
|
commit "0000000000000000000000000000000000000013";
|
||||||
|
}
|
||||||
|
interface TaskActions source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-task-actions.git";
|
||||||
|
commit "0000000000000000000000000000000000000014";
|
||||||
|
}
|
||||||
|
interface DisplayLabel source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-display-label.git";
|
||||||
|
commit "0000000000000000000000000000000000000015";
|
||||||
|
}
|
||||||
|
interface TaskCount source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/interface-task-count.git";
|
||||||
|
commit "0000000000000000000000000000000000000016";
|
||||||
|
}
|
||||||
|
interface WebStudioFactory source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-factory.git";
|
||||||
|
commit "0000000000000000000000000000000000000017";
|
||||||
|
}
|
||||||
|
interface WebStudioReactComponent source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-react-component.git";
|
||||||
|
commit "0000000000000000000000000000000000000018";
|
||||||
|
}
|
||||||
|
interface WebStudioReactSource source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-react-source.git";
|
||||||
|
commit "0000000000000000000000000000000000000029";
|
||||||
|
}
|
||||||
|
interface WebStudioHasReactComponent source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-has-react-component.git";
|
||||||
|
commit "0000000000000000000000000000000000000019";
|
||||||
|
}
|
||||||
|
interface WebStudioCanvas source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-canvas.git";
|
||||||
|
commit "0000000000000000000000000000000000000024";
|
||||||
|
}
|
||||||
|
interface WebStudioCanvasPlacement source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-canvas-placement.git";
|
||||||
|
commit "0000000000000000000000000000000000000025";
|
||||||
|
}
|
||||||
|
interface WebStudioPlaceable source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-placeable.git";
|
||||||
|
commit "0000000000000000000000000000000000000026";
|
||||||
|
}
|
||||||
|
interface WebStudioSearchable source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/interface-searchable.git";
|
||||||
|
commit "0000000000000000000000000000000000000027";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
quixos-lock fragment version 1 {
|
||||||
|
package TodoRuntime source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/package-todo-runtime.git";
|
||||||
|
commit "0000000000000000000000000000000000000020";
|
||||||
|
}
|
||||||
|
package ProjectRuntime source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/package-project-runtime.git";
|
||||||
|
commit "0000000000000000000000000000000000000021";
|
||||||
|
}
|
||||||
|
package ProjectReactRuntime source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/package-project-react-runtime.git";
|
||||||
|
commit "0000000000000000000000000000000000000022";
|
||||||
|
}
|
||||||
|
package TodoReactRuntime source {
|
||||||
|
repository "https://repos.quixos.org/quixos-todo/package-todo-react-runtime.git";
|
||||||
|
commit "0000000000000000000000000000000000000023";
|
||||||
|
}
|
||||||
|
package WebStudioCanvasRuntime source {
|
||||||
|
repository "https://repos.quixos.org/org-quixos-web-studio/package-canvas-runtime.git";
|
||||||
|
commit "0000000000000000000000000000000000000028";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
quixos-lock version 1 {
|
||||||
|
quixos source {
|
||||||
|
repository "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos.git";
|
||||||
|
commit "99b2868b7e974441744657b35049f5baae4a499b";
|
||||||
|
}
|
||||||
|
import "locks/interfaces.lock";
|
||||||
|
import "locks/packages.lock";
|
||||||
|
}
|
||||||
+226
@@ -0,0 +1,226 @@
|
|||||||
|
workspace Todo id "workspace:todo" revision "workspace:todo@capabilities-v1" commit "0000000000000000000000000000000000000001" {
|
||||||
|
atom Project id "atom:project" doc "A named collection of tasks.";
|
||||||
|
atom Task id "atom:task" doc "A unit of work.";
|
||||||
|
atom ProjectReactComponent id "atom:project-react-component" doc "A persisted Web Studio presentation of a Project.";
|
||||||
|
atom TaskReactComponent id "atom:task-react-component" doc "A persisted Web Studio presentation of a Task.";
|
||||||
|
atom WebStudioCanvas id "atom:org.quixos.web-studio:canvas" doc "A spatial Web Studio surface.";
|
||||||
|
atom WebStudioCanvasPlacement id "atom:org.quixos.web-studio:canvas-placement" doc "One presentation of an object on a Web Studio canvas.";
|
||||||
|
|
||||||
|
import interface Named;
|
||||||
|
import interface TaskData;
|
||||||
|
import interface ProjectTasks;
|
||||||
|
import interface ProjectActions;
|
||||||
|
import interface TaskActions;
|
||||||
|
import interface DisplayLabel;
|
||||||
|
import interface TaskCount;
|
||||||
|
import interface WebStudioFactory;
|
||||||
|
import interface WebStudioReactSource;
|
||||||
|
import interface WebStudioReactComponent;
|
||||||
|
import interface WebStudioHasReactComponent;
|
||||||
|
import interface WebStudioCanvas;
|
||||||
|
import interface WebStudioCanvasPlacement;
|
||||||
|
import interface WebStudioPlaceable;
|
||||||
|
import interface WebStudioSearchable;
|
||||||
|
|
||||||
|
import package TodoRuntime;
|
||||||
|
import package ProjectRuntime;
|
||||||
|
import package ProjectReactRuntime;
|
||||||
|
import package TodoReactRuntime;
|
||||||
|
import package WebStudioCanvasRuntime;
|
||||||
|
|
||||||
|
|
||||||
|
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 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;
|
||||||
|
bind size.set to state WebStudioPlacementSize.write;
|
||||||
|
bind z.get to state WebStudioPlacementZ.read;
|
||||||
|
bind z.set to state WebStudioPlacementZ.write;
|
||||||
|
bind subject.resolve to edge WebStudioPlacementSubjectEdge.subject.resolve;
|
||||||
|
bind subject.connect to edge WebStudioPlacementSubjectEdge.subject.connect;
|
||||||
|
bind subject.disconnect to edge WebStudioPlacementSubjectEdge.subject.disconnect;
|
||||||
|
bind canvas.resolve to edge WebStudioCanvasPlacementEdge.canvas.resolve;
|
||||||
|
bind canvas.connect to edge WebStudioCanvasPlacementEdge.canvas.connect;
|
||||||
|
bind canvas.disconnect to edge WebStudioCanvasPlacementEdge.canvas.disconnect;
|
||||||
|
}
|
||||||
|
|
||||||
|
conform Project as WebStudioFactory<atom Project> id "conformance:todo:Project:WebStudioFactory" {
|
||||||
|
bind create.call to package ProjectRuntime.newProject with { project to constructor Project; };
|
||||||
|
}
|
||||||
|
conform Project as WebStudioPlaceable id "conformance:todo:Project:WebStudioPlaceable" {
|
||||||
|
|
||||||
|
bind placements.resolve to edge WebStudioPlacementSubjectEdge.placements.resolve;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
bind document.watch-start to package ProjectRuntime.searchDocumentWatch with {
|
||||||
|
named to interface Named;
|
||||||
|
tasks to interface ProjectTasks;
|
||||||
|
};
|
||||||
|
bind document.watch-stop to package ProjectRuntime.searchDocumentWatchStop;
|
||||||
|
}
|
||||||
|
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 id "conformance:todo:Project:Named" {
|
||||||
|
private state ProjectName id "slot:project:name" on Project : string policy optimistic-register default "Untitled project";
|
||||||
|
|
||||||
|
bind name to state ProjectName;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
bind tasks.watch-start to edge ProjectTaskEdge.tasks.watch-start;
|
||||||
|
bind tasks.watch-stop to edge ProjectTaskEdge.tasks.watch-stop;
|
||||||
|
}
|
||||||
|
conform Project as ProjectActions id "conformance:todo:Project:ProjectActions" {
|
||||||
|
|
||||||
|
bind addTask.call to package ProjectRuntime.addTask with {
|
||||||
|
tasks to interface ProjectTasks;
|
||||||
|
task to constructor Task;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
conform Project as TaskCount id "conformance:todo:Project:TaskCount" {
|
||||||
|
|
||||||
|
bind count.get to package ProjectRuntime.taskCountGet with {
|
||||||
|
tasks to interface ProjectTasks;
|
||||||
|
};
|
||||||
|
bind count.watch-start to package ProjectRuntime.taskCountWatch with {
|
||||||
|
tasks to interface ProjectTasks;
|
||||||
|
};
|
||||||
|
bind count.watch-stop to package ProjectRuntime.taskCountWatchStop;
|
||||||
|
}
|
||||||
|
conform ProjectReactComponent as WebStudioReactSource id "conformance:todo:ProjectReactComponent:WebStudioReactSource" {
|
||||||
|
bind source.get to package ProjectReactRuntime.sourceGet;
|
||||||
|
}
|
||||||
|
conform ProjectReactComponent as WebStudioReactComponent<record {named: interface-ref<Named>; tasks: interface-ref<ProjectTasks>;}> id "conformance:todo:ProjectReactComponent:WebStudioReactComponent" {
|
||||||
|
bind props.get to package ProjectReactRuntime.propsGet with {
|
||||||
|
named to interface Named via edge ProjectComponentEdge.subject;
|
||||||
|
tasks to interface ProjectTasks via edge ProjectComponentEdge.subject;
|
||||||
|
};
|
||||||
|
bind props.watch-start to package ProjectReactRuntime.propsWatch with {
|
||||||
|
named to interface Named via edge ProjectComponentEdge.subject;
|
||||||
|
tasks to interface ProjectTasks via edge ProjectComponentEdge.subject;
|
||||||
|
};
|
||||||
|
bind props.watch-stop to package ProjectReactRuntime.propsWatchStop;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 id "conformance:todo:Task:WebStudioPlaceable" {
|
||||||
|
|
||||||
|
bind placements.resolve to edge WebStudioPlacementSubjectEdge.placements.resolve;
|
||||||
|
}
|
||||||
|
conform Task as WebStudioSearchable id "conformance:todo:Task:WebStudioSearchable" {
|
||||||
|
|
||||||
|
bind document.get to package TodoRuntime.searchDocumentGet with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind document.watch-start to package TodoRuntime.searchDocumentWatch with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind document.watch-stop to package TodoRuntime.searchDocumentWatchStop;
|
||||||
|
}
|
||||||
|
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 to state TaskTitle;
|
||||||
|
bind status to state TaskStatus;
|
||||||
|
bind priority to state TaskPriority;
|
||||||
|
bind notes to state TaskNotes;
|
||||||
|
bind dueDate to state TaskDueDate;
|
||||||
|
bind energy to state TaskEnergy;
|
||||||
|
}
|
||||||
|
conform Task as TaskActions id "conformance:todo:Task:TaskActions" {
|
||||||
|
|
||||||
|
bind complete.call to package TodoRuntime.complete with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind reopen.call to package TodoRuntime.reopen with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind archive.call to package TodoRuntime.archive with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
conform Task as DisplayLabel id "conformance:todo:Task:DisplayLabel" {
|
||||||
|
|
||||||
|
bind label.get to package TodoRuntime.displayLabelGet with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind label.watch-start to package TodoRuntime.displayLabelWatch with {
|
||||||
|
data to interface TaskData;
|
||||||
|
};
|
||||||
|
bind label.watch-stop to package TodoRuntime.displayLabelWatchStop;
|
||||||
|
}
|
||||||
|
conform TaskReactComponent as WebStudioReactSource id "conformance:todo:TaskReactComponent:WebStudioReactSource" {
|
||||||
|
bind source.get to package TodoReactRuntime.sourceGet;
|
||||||
|
}
|
||||||
|
conform TaskReactComponent as WebStudioReactComponent<record {data: interface-ref<TaskData>;}> id "conformance:todo:TaskReactComponent:WebStudioReactComponent" {
|
||||||
|
bind props.get to package TodoReactRuntime.propsGet with {
|
||||||
|
data to interface TaskData via edge TaskComponentEdge.subject;
|
||||||
|
};
|
||||||
|
bind props.watch-start to package TodoReactRuntime.propsWatch with {
|
||||||
|
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 {
|
||||||
|
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 {
|
||||||
|
placement to interface WebStudioCanvasPlacement;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user