@happyvertical/smrt-projects 0.37.2 → 0.37.3
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/dist/chunks/Issue-DITLxBl7.js +483 -0
- package/dist/chunks/Issue-DITLxBl7.js.map +1 -0
- package/dist/chunks/PullRequest-C6mck19s.js +255 -0
- package/dist/chunks/PullRequest-C6mck19s.js.map +1 -0
- package/dist/chunks/constants-BhVfX4Jn.js +6 -0
- package/dist/chunks/constants-BhVfX4Jn.js.map +1 -0
- package/dist/index.js +1486 -2455
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +2 -2
- package/dist/playground.js +100 -126
- package/dist/playground.js.map +1 -1
- package/dist/smrt-knowledge.json +11 -11
- package/dist/types.js +0 -2
- package/dist/ui.js +90 -83
- package/dist/ui.js.map +1 -1
- package/package.json +23 -23
- package/dist/types.js.map +0 -1
package/dist/playground.js
CHANGED
|
@@ -1,129 +1,103 @@
|
|
|
1
1
|
import { PROJECTS_MODULE_META } from "./ui.js";
|
|
2
|
-
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
2
|
+
//#region src/svelte/playground.ts
|
|
3
|
+
var noop = () => {};
|
|
4
|
+
var sampleTimeEntries = [
|
|
5
|
+
{
|
|
6
|
+
id: "time-entry-1",
|
|
7
|
+
date: "2026-03-18T16:00:00.000Z",
|
|
8
|
+
hours: 6.5,
|
|
9
|
+
description: "Editorial governance review and fact-linking pass",
|
|
10
|
+
status: "submitted",
|
|
11
|
+
amount: 780,
|
|
12
|
+
workerName: "Taylor Rowan",
|
|
13
|
+
hourlyRate: 120,
|
|
14
|
+
mileage: 18
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: "time-entry-2",
|
|
18
|
+
date: "2026-03-19T16:00:00.000Z",
|
|
19
|
+
hours: 4.25,
|
|
20
|
+
description: "Content workflow instrumentation and approval QA",
|
|
21
|
+
status: "approved",
|
|
22
|
+
amount: 510,
|
|
23
|
+
workerName: "Jordan Lee",
|
|
24
|
+
hourlyRate: 120
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "time-entry-3",
|
|
28
|
+
date: "2026-03-20T16:00:00.000Z",
|
|
29
|
+
hours: 2,
|
|
30
|
+
description: "Follow-up revisions for contributor feedback",
|
|
31
|
+
status: "draft",
|
|
32
|
+
amount: 240,
|
|
33
|
+
workerName: "Casey Tran",
|
|
34
|
+
hourlyRate: 120
|
|
35
|
+
}
|
|
36
36
|
];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
},
|
|
100
|
-
modes: {
|
|
101
|
-
mock: {
|
|
102
|
-
label: "Mock"
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
id: "approval-actions",
|
|
108
|
-
title: "Approval Actions",
|
|
109
|
-
description: "Status-sensitive action row for approving or returning submitted work.",
|
|
110
|
-
loadComponent: loadApprovalActions,
|
|
111
|
-
order: 3,
|
|
112
|
-
props: {
|
|
113
|
-
status: "submitted",
|
|
114
|
-
onapprove: noop,
|
|
115
|
-
onreject: noop,
|
|
116
|
-
onedit: noop
|
|
117
|
-
},
|
|
118
|
-
modes: {
|
|
119
|
-
mock: {
|
|
120
|
-
label: "Mock"
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
]
|
|
125
|
-
};
|
|
126
|
-
export {
|
|
127
|
-
playground as default
|
|
37
|
+
var totalHours = sampleTimeEntries.reduce((sum, entry) => sum + entry.hours, 0);
|
|
38
|
+
var totalAmount = sampleTimeEntries.reduce((sum, entry) => sum + (entry.amount ?? 0), 0);
|
|
39
|
+
var pendingEntries = sampleTimeEntries.filter((entry) => entry.status === "submitted");
|
|
40
|
+
var loadApprovalActions = () => import("./svelte/components/ApprovalActions.svelte");
|
|
41
|
+
var loadTimeEntryList = () => import("./svelte/components/TimeEntryList.svelte");
|
|
42
|
+
var loadTimeSummary = () => import("./svelte/components/TimeSummary.svelte");
|
|
43
|
+
var playground_default = {
|
|
44
|
+
packageName: "@happyvertical/smrt-projects",
|
|
45
|
+
displayName: PROJECTS_MODULE_META.displayName,
|
|
46
|
+
description: PROJECTS_MODULE_META.description,
|
|
47
|
+
moduleMeta: PROJECTS_MODULE_META,
|
|
48
|
+
entries: [
|
|
49
|
+
{
|
|
50
|
+
id: "time-entry-list",
|
|
51
|
+
title: "Time Entry List",
|
|
52
|
+
description: "Selectable list view for recent time entries with billing context.",
|
|
53
|
+
loadComponent: loadTimeEntryList,
|
|
54
|
+
order: 1,
|
|
55
|
+
props: {
|
|
56
|
+
entries: sampleTimeEntries,
|
|
57
|
+
selectable: true,
|
|
58
|
+
selectedIds: ["time-entry-1"],
|
|
59
|
+
currency: "CAD",
|
|
60
|
+
onselectionchange: noop,
|
|
61
|
+
baseHref: "/projects/time-entries"
|
|
62
|
+
},
|
|
63
|
+
modes: { mock: { label: "Mock" } }
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "time-summary",
|
|
67
|
+
title: "Time Summary",
|
|
68
|
+
description: "Hours and value summary cards for a project review period.",
|
|
69
|
+
loadComponent: loadTimeSummary,
|
|
70
|
+
order: 2,
|
|
71
|
+
props: {
|
|
72
|
+
totalHours,
|
|
73
|
+
totalAmount,
|
|
74
|
+
pendingHours: pendingEntries.reduce((sum, entry) => sum + entry.hours, 0),
|
|
75
|
+
pendingAmount: pendingEntries.reduce((sum, entry) => sum + (entry.amount ?? 0), 0),
|
|
76
|
+
approvedHours: sampleTimeEntries.filter((entry) => entry.status === "approved").reduce((sum, entry) => sum + entry.hours, 0),
|
|
77
|
+
approvedAmount: sampleTimeEntries.filter((entry) => entry.status === "approved").reduce((sum, entry) => sum + (entry.amount ?? 0), 0),
|
|
78
|
+
entryCount: sampleTimeEntries.length,
|
|
79
|
+
currency: "CAD",
|
|
80
|
+
showApproved: true
|
|
81
|
+
},
|
|
82
|
+
modes: { mock: { label: "Mock" } }
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "approval-actions",
|
|
86
|
+
title: "Approval Actions",
|
|
87
|
+
description: "Status-sensitive action row for approving or returning submitted work.",
|
|
88
|
+
loadComponent: loadApprovalActions,
|
|
89
|
+
order: 3,
|
|
90
|
+
props: {
|
|
91
|
+
status: "submitted",
|
|
92
|
+
onapprove: noop,
|
|
93
|
+
onreject: noop,
|
|
94
|
+
onedit: noop
|
|
95
|
+
},
|
|
96
|
+
modes: { mock: { label: "Mock" } }
|
|
97
|
+
}
|
|
98
|
+
]
|
|
128
99
|
};
|
|
129
|
-
//#
|
|
100
|
+
//#endregion
|
|
101
|
+
export { playground_default as default };
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=playground.js.map
|
package/dist/playground.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.js","sources":["../src/svelte/playground.ts"],"sourcesContent":["import { PROJECTS_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleTimeEntries = [\n {\n id: 'time-entry-1',\n date: '2026-03-18T16:00:00.000Z',\n hours: 6.5,\n description: 'Editorial governance review and fact-linking pass',\n status: 'submitted',\n amount: 780,\n workerName: 'Taylor Rowan',\n hourlyRate: 120,\n mileage: 18,\n },\n {\n id: 'time-entry-2',\n date: '2026-03-19T16:00:00.000Z',\n hours: 4.25,\n description: 'Content workflow instrumentation and approval QA',\n status: 'approved',\n amount: 510,\n workerName: 'Jordan Lee',\n hourlyRate: 120,\n },\n {\n id: 'time-entry-3',\n date: '2026-03-20T16:00:00.000Z',\n hours: 2,\n description: 'Follow-up revisions for contributor feedback',\n status: 'draft',\n amount: 240,\n workerName: 'Casey Tran',\n hourlyRate: 120,\n },\n];\n\nconst totalHours = sampleTimeEntries.reduce(\n (sum, entry) => sum + entry.hours,\n 0,\n);\nconst totalAmount = sampleTimeEntries.reduce(\n (sum, entry) => sum + (entry.amount ?? 0),\n 0,\n);\nconst pendingEntries = sampleTimeEntries.filter(\n (entry) => entry.status === 'submitted',\n);\n\nconst loadApprovalActions = () => import('./components/ApprovalActions.svelte');\nconst loadTimeEntryList = () => import('./components/TimeEntryList.svelte');\nconst loadTimeSummary = () => import('./components/TimeSummary.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-projects',\n displayName: PROJECTS_MODULE_META.displayName,\n description: PROJECTS_MODULE_META.description,\n moduleMeta: PROJECTS_MODULE_META,\n entries: [\n {\n id: 'time-entry-list',\n title: 'Time Entry List',\n description:\n 'Selectable list view for recent time entries with billing context.',\n loadComponent: loadTimeEntryList,\n order: 1,\n props: {\n entries: sampleTimeEntries,\n selectable: true,\n selectedIds: ['time-entry-1'],\n currency: 'CAD',\n onselectionchange: noop,\n baseHref: '/projects/time-entries',\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'time-summary',\n title: 'Time Summary',\n description: 'Hours and value summary cards for a project review period.',\n loadComponent: loadTimeSummary,\n order: 2,\n props: {\n totalHours,\n totalAmount,\n pendingHours: pendingEntries.reduce(\n (sum, entry) => sum + entry.hours,\n 0,\n ),\n pendingAmount: pendingEntries.reduce(\n (sum, entry) => sum + (entry.amount ?? 0),\n 0,\n ),\n approvedHours: sampleTimeEntries\n .filter((entry) => entry.status === 'approved')\n .reduce((sum, entry) => sum + entry.hours, 0),\n approvedAmount: sampleTimeEntries\n .filter((entry) => entry.status === 'approved')\n .reduce((sum, entry) => sum + (entry.amount ?? 0), 0),\n entryCount: sampleTimeEntries.length,\n currency: 'CAD',\n showApproved: true,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'approval-actions',\n title: 'Approval Actions',\n description:\n 'Status-sensitive action row for approving or returning submitted work.',\n loadComponent: loadApprovalActions,\n order: 3,\n props: {\n status: 'submitted',\n onapprove: noop,\n onreject: noop,\n onedit: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"
|
|
1
|
+
{"version":3,"file":"playground.js","names":[],"sources":["../src/svelte/playground.ts"],"sourcesContent":["import { PROJECTS_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleTimeEntries = [\n {\n id: 'time-entry-1',\n date: '2026-03-18T16:00:00.000Z',\n hours: 6.5,\n description: 'Editorial governance review and fact-linking pass',\n status: 'submitted',\n amount: 780,\n workerName: 'Taylor Rowan',\n hourlyRate: 120,\n mileage: 18,\n },\n {\n id: 'time-entry-2',\n date: '2026-03-19T16:00:00.000Z',\n hours: 4.25,\n description: 'Content workflow instrumentation and approval QA',\n status: 'approved',\n amount: 510,\n workerName: 'Jordan Lee',\n hourlyRate: 120,\n },\n {\n id: 'time-entry-3',\n date: '2026-03-20T16:00:00.000Z',\n hours: 2,\n description: 'Follow-up revisions for contributor feedback',\n status: 'draft',\n amount: 240,\n workerName: 'Casey Tran',\n hourlyRate: 120,\n },\n];\n\nconst totalHours = sampleTimeEntries.reduce(\n (sum, entry) => sum + entry.hours,\n 0,\n);\nconst totalAmount = sampleTimeEntries.reduce(\n (sum, entry) => sum + (entry.amount ?? 0),\n 0,\n);\nconst pendingEntries = sampleTimeEntries.filter(\n (entry) => entry.status === 'submitted',\n);\n\nconst loadApprovalActions = () => import('./components/ApprovalActions.svelte');\nconst loadTimeEntryList = () => import('./components/TimeEntryList.svelte');\nconst loadTimeSummary = () => import('./components/TimeSummary.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-projects',\n displayName: PROJECTS_MODULE_META.displayName,\n description: PROJECTS_MODULE_META.description,\n moduleMeta: PROJECTS_MODULE_META,\n entries: [\n {\n id: 'time-entry-list',\n title: 'Time Entry List',\n description:\n 'Selectable list view for recent time entries with billing context.',\n loadComponent: loadTimeEntryList,\n order: 1,\n props: {\n entries: sampleTimeEntries,\n selectable: true,\n selectedIds: ['time-entry-1'],\n currency: 'CAD',\n onselectionchange: noop,\n baseHref: '/projects/time-entries',\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'time-summary',\n title: 'Time Summary',\n description: 'Hours and value summary cards for a project review period.',\n loadComponent: loadTimeSummary,\n order: 2,\n props: {\n totalHours,\n totalAmount,\n pendingHours: pendingEntries.reduce(\n (sum, entry) => sum + entry.hours,\n 0,\n ),\n pendingAmount: pendingEntries.reduce(\n (sum, entry) => sum + (entry.amount ?? 0),\n 0,\n ),\n approvedHours: sampleTimeEntries\n .filter((entry) => entry.status === 'approved')\n .reduce((sum, entry) => sum + entry.hours, 0),\n approvedAmount: sampleTimeEntries\n .filter((entry) => entry.status === 'approved')\n .reduce((sum, entry) => sum + (entry.amount ?? 0), 0),\n entryCount: sampleTimeEntries.length,\n currency: 'CAD',\n showApproved: true,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'approval-actions',\n title: 'Approval Actions',\n description:\n 'Status-sensitive action row for approving or returning submitted work.',\n loadComponent: loadApprovalActions,\n order: 3,\n props: {\n status: 'submitted',\n onapprove: noop,\n onreject: noop,\n onedit: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"mappings":";;AAEA,IAAM,aAAa,CAAC;AAEpB,IAAM,oBAAoB;CACxB;EACE,IAAI;EACJ,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,YAAY;EACZ,YAAY;EACZ,SAAS;CACX;CACA;EACE,IAAI;EACJ,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,YAAY;EACZ,YAAY;CACd;CACA;EACE,IAAI;EACJ,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,YAAY;EACZ,YAAY;CACd;AACF;AAEA,IAAM,aAAa,kBAAkB,QAClC,KAAK,UAAU,MAAM,MAAM,OAC5B,CACF;AACA,IAAM,cAAc,kBAAkB,QACnC,KAAK,UAAU,OAAO,MAAM,UAAU,IACvC,CACF;AACA,IAAM,iBAAiB,kBAAkB,QACtC,UAAU,MAAM,WAAW,WAC9B;AAEA,IAAM,4BAA4B,OAAO;AACzC,IAAM,0BAA0B,OAAO;AACvC,IAAM,wBAAwB,OAAO;AAErC,IAAA,qBAAe;CACb,aAAa;CACb,aAAa,qBAAqB;CAClC,aAAa,qBAAqB;CAClC,YAAY;CACZ,SAAS;EACP;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,SAAS;IACT,YAAY;IACZ,aAAa,CAAC,cAAc;IAC5B,UAAU;IACV,mBAAmB;IACnB,UAAU;GACZ;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;EACA;GACE,IAAI;GACJ,OAAO;GACP,aAAa;GACb,eAAe;GACf,OAAO;GACP,OAAO;IACL;IACA;IACA,cAAc,eAAe,QAC1B,KAAK,UAAU,MAAM,MAAM,OAC5B,CACF;IACA,eAAe,eAAe,QAC3B,KAAK,UAAU,OAAO,MAAM,UAAU,IACvC,CACF;IACA,eAAe,kBACZ,QAAQ,UAAU,MAAM,WAAW,UAAU,CAAA,CAC7C,QAAQ,KAAK,UAAU,MAAM,MAAM,OAAO,CAAC;IAC9C,gBAAgB,kBACb,QAAQ,UAAU,MAAM,WAAW,UAAU,CAAA,CAC7C,QAAQ,KAAK,UAAU,OAAO,MAAM,UAAU,IAAI,CAAC;IACtD,YAAY,kBAAkB;IAC9B,UAAU;IACV,cAAc;GAChB;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;EACA;GACE,IAAI;GACJ,OAAO;GACP,aACE;GACF,eAAe;GACf,OAAO;GACP,OAAO;IACL,QAAQ;IACR,WAAW;IACX,UAAU;IACV,QAAQ;GACV;GACA,OAAO,EACL,MAAM,EACJ,OAAO,OACT,EACF;EACF;CACF;AACF"}
|
package/dist/smrt-knowledge.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-01T20:05:07.971Z",
|
|
4
4
|
"packageName": "@happyvertical/smrt-projects",
|
|
5
|
-
"packageVersion": "0.37.
|
|
5
|
+
"packageVersion": "0.37.3",
|
|
6
6
|
"sourceManifestPath": "dist/manifest.json",
|
|
7
7
|
"agentDocPath": "AGENTS.md",
|
|
8
8
|
"sourceHashes": {
|
|
9
|
-
"manifest": "
|
|
10
|
-
"packageJson": "
|
|
9
|
+
"manifest": "8ba5e45aea971245cc8be03b75876ad8480c305f9a15e2c1e88867a16e1af421",
|
|
10
|
+
"packageJson": "00a1b66cf31e4a2dfb87c0fa59884b9fd44fca9c11be3e61cd72683806a4b705",
|
|
11
11
|
"agents": "31de38c962634d69c728bab8dff270448a49718fc36ee20b9cd12216cdbed95c"
|
|
12
12
|
},
|
|
13
13
|
"exports": [
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"@happyvertical/utils": "catalog:",
|
|
34
34
|
"@happyvertical/smrt-cli": "workspace:*",
|
|
35
35
|
"@happyvertical/smrt-vitest": "workspace:*",
|
|
36
|
-
"@sveltejs/package": "^2.5.
|
|
37
|
-
"@sveltejs/vite-plugin-svelte": "^
|
|
38
|
-
"@types/node": "
|
|
36
|
+
"@sveltejs/package": "^2.5.8",
|
|
37
|
+
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
38
|
+
"@types/node": "24.13.2",
|
|
39
39
|
"fast-glob": "3.3.3",
|
|
40
|
-
"svelte": "^5.
|
|
41
|
-
"svelte-check": "^4.
|
|
40
|
+
"svelte": "^5.56.4",
|
|
41
|
+
"svelte-check": "^4.7.1",
|
|
42
42
|
"typescript": "^5.9.3",
|
|
43
|
-
"vite": "^
|
|
44
|
-
"vitest": "^4.
|
|
43
|
+
"vite": "^8.1.2",
|
|
44
|
+
"vitest": "^4.1.9"
|
|
45
45
|
},
|
|
46
46
|
"smrtDependencies": [
|
|
47
47
|
"@happyvertical/smrt-cli",
|
package/dist/types.js
CHANGED
package/dist/ui.js
CHANGED
|
@@ -1,85 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
1
|
+
//#region src/ui.ts
|
|
2
|
+
var PROJECTS_UI_SLOTS = {
|
|
3
|
+
"time-entry-card": {
|
|
4
|
+
id: "time-entry-card",
|
|
5
|
+
label: "Time Entry Card",
|
|
6
|
+
description: "Card component for displaying time entries",
|
|
7
|
+
icon: "clock",
|
|
8
|
+
category: "display",
|
|
9
|
+
order: 1,
|
|
10
|
+
propsInterface: "TimeEntryCardProps"
|
|
11
|
+
},
|
|
12
|
+
"time-entry-list": {
|
|
13
|
+
id: "time-entry-list",
|
|
14
|
+
label: "Time Entry List",
|
|
15
|
+
description: "List of time entries with optional selection",
|
|
16
|
+
icon: "list",
|
|
17
|
+
category: "list",
|
|
18
|
+
order: 2,
|
|
19
|
+
propsInterface: "TimeEntryListProps"
|
|
20
|
+
},
|
|
21
|
+
"time-summary": {
|
|
22
|
+
id: "time-summary",
|
|
23
|
+
label: "Time Summary",
|
|
24
|
+
description: "Summary statistics for time entries",
|
|
25
|
+
icon: "chart",
|
|
26
|
+
category: "display",
|
|
27
|
+
order: 3,
|
|
28
|
+
propsInterface: "TimeSummaryProps"
|
|
29
|
+
},
|
|
30
|
+
"duration-display": {
|
|
31
|
+
id: "duration-display",
|
|
32
|
+
label: "Duration Display",
|
|
33
|
+
description: "Formats hours for display in decimal or HH:MM format",
|
|
34
|
+
icon: "timer",
|
|
35
|
+
category: "display",
|
|
36
|
+
order: 4,
|
|
37
|
+
propsInterface: "DurationDisplayProps"
|
|
38
|
+
},
|
|
39
|
+
"approval-actions": {
|
|
40
|
+
id: "approval-actions",
|
|
41
|
+
label: "Approval Actions",
|
|
42
|
+
description: "Status-based action buttons for approval workflow",
|
|
43
|
+
icon: "check",
|
|
44
|
+
category: "action",
|
|
45
|
+
order: 5,
|
|
46
|
+
propsInterface: "ApprovalActionsProps"
|
|
47
|
+
},
|
|
48
|
+
"bulk-actions": {
|
|
49
|
+
id: "bulk-actions",
|
|
50
|
+
label: "Bulk Actions",
|
|
51
|
+
description: "Action bar for bulk operations on selected items",
|
|
52
|
+
icon: "select-all",
|
|
53
|
+
category: "action",
|
|
54
|
+
order: 6,
|
|
55
|
+
propsInterface: "BulkActionsProps"
|
|
56
|
+
},
|
|
57
|
+
"reject-dialog": {
|
|
58
|
+
id: "reject-dialog",
|
|
59
|
+
label: "Reject Dialog",
|
|
60
|
+
description: "Modal dialog for rejecting with a reason",
|
|
61
|
+
icon: "x-circle",
|
|
62
|
+
category: "form",
|
|
63
|
+
order: 7,
|
|
64
|
+
propsInterface: "RejectDialogProps"
|
|
65
|
+
}
|
|
65
66
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
67
|
+
var PROJECTS_MODULE_META = {
|
|
68
|
+
name: "@happyvertical/smrt-projects",
|
|
69
|
+
displayName: "Projects",
|
|
70
|
+
description: "Provider-agnostic project management with time tracking",
|
|
71
|
+
uiSlots: PROJECTS_UI_SLOTS,
|
|
72
|
+
models: [
|
|
73
|
+
"Repository",
|
|
74
|
+
"Issue",
|
|
75
|
+
"PullRequest",
|
|
76
|
+
"Project",
|
|
77
|
+
"Comment",
|
|
78
|
+
"Label"
|
|
79
|
+
],
|
|
80
|
+
collections: [
|
|
81
|
+
"RepositoryCollection",
|
|
82
|
+
"IssueCollection",
|
|
83
|
+
"PullRequestCollection",
|
|
84
|
+
"ProjectCollection",
|
|
85
|
+
"CommentCollection",
|
|
86
|
+
"LabelCollection"
|
|
87
|
+
]
|
|
80
88
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=ui.js.map
|
|
89
|
+
//#endregion
|
|
90
|
+
export { PROJECTS_MODULE_META, PROJECTS_UI_SLOTS };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["/**\n * Projects Module UI Slot Declarations\n *\n * This file defines the UI extension points for the projects module.\n * UI components are implemented in the ./svelte subpath.\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\n/**\n * Projects module UI slots\n */\nexport const PROJECTS_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'time-entry-card': {\n id: 'time-entry-card',\n label: 'Time Entry Card',\n description: 'Card component for displaying time entries',\n icon: 'clock',\n category: 'display',\n order: 1,\n propsInterface: 'TimeEntryCardProps',\n },\n 'time-entry-list': {\n id: 'time-entry-list',\n label: 'Time Entry List',\n description: 'List of time entries with optional selection',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'TimeEntryListProps',\n },\n 'time-summary': {\n id: 'time-summary',\n label: 'Time Summary',\n description: 'Summary statistics for time entries',\n icon: 'chart',\n category: 'display',\n order: 3,\n propsInterface: 'TimeSummaryProps',\n },\n 'duration-display': {\n id: 'duration-display',\n label: 'Duration Display',\n description: 'Formats hours for display in decimal or HH:MM format',\n icon: 'timer',\n category: 'display',\n order: 4,\n propsInterface: 'DurationDisplayProps',\n },\n 'approval-actions': {\n id: 'approval-actions',\n label: 'Approval Actions',\n description: 'Status-based action buttons for approval workflow',\n icon: 'check',\n category: 'action',\n order: 5,\n propsInterface: 'ApprovalActionsProps',\n },\n 'bulk-actions': {\n id: 'bulk-actions',\n label: 'Bulk Actions',\n description: 'Action bar for bulk operations on selected items',\n icon: 'select-all',\n category: 'action',\n order: 6,\n propsInterface: 'BulkActionsProps',\n },\n 'reject-dialog': {\n id: 'reject-dialog',\n label: 'Reject Dialog',\n description: 'Modal dialog for rejecting with a reason',\n icon: 'x-circle',\n category: 'form',\n order: 7,\n propsInterface: 'RejectDialogProps',\n },\n};\n\n/**\n * Projects module metadata\n */\nexport const PROJECTS_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-projects',\n displayName: 'Projects',\n description: 'Provider-agnostic project management with time tracking',\n uiSlots: PROJECTS_UI_SLOTS,\n models: ['Repository', 'Issue', 'PullRequest', 'Project', 'Comment', 'Label'],\n collections: [\n 'RepositoryCollection',\n 'IssueCollection',\n 'PullRequestCollection',\n 'ProjectCollection',\n 'CommentCollection',\n 'LabelCollection',\n ],\n};\n"],"
|
|
1
|
+
{"version":3,"file":"ui.js","names":[],"sources":["../src/ui.ts"],"sourcesContent":["/**\n * Projects Module UI Slot Declarations\n *\n * This file defines the UI extension points for the projects module.\n * UI components are implemented in the ./svelte subpath.\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\n/**\n * Projects module UI slots\n */\nexport const PROJECTS_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'time-entry-card': {\n id: 'time-entry-card',\n label: 'Time Entry Card',\n description: 'Card component for displaying time entries',\n icon: 'clock',\n category: 'display',\n order: 1,\n propsInterface: 'TimeEntryCardProps',\n },\n 'time-entry-list': {\n id: 'time-entry-list',\n label: 'Time Entry List',\n description: 'List of time entries with optional selection',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'TimeEntryListProps',\n },\n 'time-summary': {\n id: 'time-summary',\n label: 'Time Summary',\n description: 'Summary statistics for time entries',\n icon: 'chart',\n category: 'display',\n order: 3,\n propsInterface: 'TimeSummaryProps',\n },\n 'duration-display': {\n id: 'duration-display',\n label: 'Duration Display',\n description: 'Formats hours for display in decimal or HH:MM format',\n icon: 'timer',\n category: 'display',\n order: 4,\n propsInterface: 'DurationDisplayProps',\n },\n 'approval-actions': {\n id: 'approval-actions',\n label: 'Approval Actions',\n description: 'Status-based action buttons for approval workflow',\n icon: 'check',\n category: 'action',\n order: 5,\n propsInterface: 'ApprovalActionsProps',\n },\n 'bulk-actions': {\n id: 'bulk-actions',\n label: 'Bulk Actions',\n description: 'Action bar for bulk operations on selected items',\n icon: 'select-all',\n category: 'action',\n order: 6,\n propsInterface: 'BulkActionsProps',\n },\n 'reject-dialog': {\n id: 'reject-dialog',\n label: 'Reject Dialog',\n description: 'Modal dialog for rejecting with a reason',\n icon: 'x-circle',\n category: 'form',\n order: 7,\n propsInterface: 'RejectDialogProps',\n },\n};\n\n/**\n * Projects module metadata\n */\nexport const PROJECTS_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-projects',\n displayName: 'Projects',\n description: 'Provider-agnostic project management with time tracking',\n uiSlots: PROJECTS_UI_SLOTS,\n models: ['Repository', 'Issue', 'PullRequest', 'Project', 'Comment', 'Label'],\n collections: [\n 'RepositoryCollection',\n 'IssueCollection',\n 'PullRequestCollection',\n 'ProjectCollection',\n 'CommentCollection',\n 'LabelCollection',\n ],\n};\n"],"mappings":";AAYO,IAAM,oBAAkD;CAC7D,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,iBAAiB;EACf,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;AACF;AAKO,IAAM,uBAAuC;CAClD,MAAM;CACN,aAAa;CACb,aAAa;CACb,SAAS;CACT,QAAQ;EAAC;EAAc;EAAS;EAAe;EAAW;EAAW;CAAO;CAC5E,aAAa;EACX;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-projects",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.3",
|
|
4
4
|
"description": "Provider-agnostic project management models (Issues, PRs, Repositories, Projects) for SMRT framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"smrtRawPrimitives": "strict",
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@happyvertical/ai": "^0.74.
|
|
37
|
-
"@happyvertical/logger": "^0.74.
|
|
38
|
-
"@happyvertical/projects": "^0.74.
|
|
39
|
-
"@happyvertical/repos": "^0.74.
|
|
40
|
-
"@happyvertical/sql": "^0.74.
|
|
41
|
-
"@happyvertical/utils": "^0.74.
|
|
42
|
-
"@happyvertical/smrt-
|
|
43
|
-
"@happyvertical/smrt-
|
|
44
|
-
"@happyvertical/smrt-core": "0.37.
|
|
45
|
-
"@happyvertical/smrt-
|
|
46
|
-
"@happyvertical/smrt-types": "0.37.
|
|
47
|
-
"@happyvertical/smrt-ui": "0.37.
|
|
36
|
+
"@happyvertical/ai": "^0.74.11",
|
|
37
|
+
"@happyvertical/logger": "^0.74.11",
|
|
38
|
+
"@happyvertical/projects": "^0.74.11",
|
|
39
|
+
"@happyvertical/repos": "^0.74.11",
|
|
40
|
+
"@happyvertical/sql": "^0.74.11",
|
|
41
|
+
"@happyvertical/utils": "^0.74.11",
|
|
42
|
+
"@happyvertical/smrt-config": "0.37.3",
|
|
43
|
+
"@happyvertical/smrt-tenancy": "0.37.3",
|
|
44
|
+
"@happyvertical/smrt-core": "0.37.3",
|
|
45
|
+
"@happyvertical/smrt-prompts": "0.37.3",
|
|
46
|
+
"@happyvertical/smrt-types": "0.37.3",
|
|
47
|
+
"@happyvertical/smrt-ui": "0.37.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"svelte": "^5.
|
|
50
|
+
"svelte": "^5.56.4"
|
|
51
51
|
},
|
|
52
52
|
"peerDependenciesMeta": {
|
|
53
53
|
"svelte": {
|
|
@@ -55,17 +55,17 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@sveltejs/package": "^2.5.
|
|
59
|
-
"@sveltejs/vite-plugin-svelte": "^
|
|
60
|
-
"@types/node": "
|
|
58
|
+
"@sveltejs/package": "^2.5.8",
|
|
59
|
+
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
60
|
+
"@types/node": "24.13.2",
|
|
61
61
|
"fast-glob": "3.3.3",
|
|
62
|
-
"svelte": "^5.
|
|
63
|
-
"svelte-check": "^4.
|
|
62
|
+
"svelte": "^5.56.4",
|
|
63
|
+
"svelte-check": "^4.7.1",
|
|
64
64
|
"typescript": "^5.9.3",
|
|
65
|
-
"vite": "^
|
|
66
|
-
"vitest": "^4.
|
|
67
|
-
"@happyvertical/smrt-cli": "0.37.
|
|
68
|
-
"@happyvertical/smrt-vitest": "0.37.
|
|
65
|
+
"vite": "^8.1.2",
|
|
66
|
+
"vitest": "^4.1.9",
|
|
67
|
+
"@happyvertical/smrt-cli": "0.37.3",
|
|
68
|
+
"@happyvertical/smrt-vitest": "0.37.3"
|
|
69
69
|
},
|
|
70
70
|
"keywords": [
|
|
71
71
|
"ai",
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|