@contractspec/example.saas-boilerplate 3.7.6 → 3.8.2
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/.turbo/turbo-build.log +39 -27
- package/AGENTS.md +50 -27
- package/CHANGELOG.md +36 -0
- package/README.md +65 -144
- package/dist/billing/billing.event.js +1 -1
- package/dist/billing/index.d.ts +6 -6
- package/dist/billing/index.js +1 -1
- package/dist/browser/billing/billing.event.js +1 -1
- package/dist/browser/billing/index.js +1 -1
- package/dist/browser/index.js +1147 -869
- package/dist/browser/project/index.js +209 -209
- package/dist/browser/project/project.event.js +1 -1
- package/dist/browser/saas-boilerplate.feature.js +208 -0
- package/dist/browser/ui/SaasDashboard.js +356 -105
- package/dist/browser/ui/SaasDashboard.visualizations.js +249 -0
- package/dist/browser/ui/SaasProjectList.js +7 -7
- package/dist/browser/ui/SaasSettingsPanel.js +12 -12
- package/dist/browser/ui/hooks/index.js +2 -2
- package/dist/browser/ui/hooks/useProjectList.js +1 -1
- package/dist/browser/ui/hooks/useProjectMutations.js +1 -1
- package/dist/browser/ui/index.js +790 -521
- package/dist/browser/ui/modals/CreateProjectModal.js +10 -10
- package/dist/browser/ui/modals/ProjectActionsModal.js +13 -13
- package/dist/browser/ui/modals/index.js +23 -23
- package/dist/browser/ui/renderers/index.js +341 -115
- package/dist/browser/ui/renderers/project-list.markdown.js +229 -3
- package/dist/browser/ui/renderers/project-list.renderer.js +7 -7
- package/dist/browser/visualizations/catalog.js +155 -0
- package/dist/browser/visualizations/index.js +217 -0
- package/dist/browser/visualizations/selectors.js +210 -0
- package/dist/handlers/index.d.ts +2 -2
- package/dist/index.d.ts +5 -4
- package/dist/index.js +1147 -869
- package/dist/node/billing/billing.event.js +1 -1
- package/dist/node/billing/index.js +1 -1
- package/dist/node/index.js +1147 -869
- package/dist/node/project/index.js +209 -209
- package/dist/node/project/project.event.js +1 -1
- package/dist/node/saas-boilerplate.feature.js +208 -0
- package/dist/node/ui/SaasDashboard.js +356 -105
- package/dist/node/ui/SaasDashboard.visualizations.js +249 -0
- package/dist/node/ui/SaasProjectList.js +7 -7
- package/dist/node/ui/SaasSettingsPanel.js +12 -12
- package/dist/node/ui/hooks/index.js +2 -2
- package/dist/node/ui/hooks/useProjectList.js +1 -1
- package/dist/node/ui/hooks/useProjectMutations.js +1 -1
- package/dist/node/ui/index.js +790 -521
- package/dist/node/ui/modals/CreateProjectModal.js +10 -10
- package/dist/node/ui/modals/ProjectActionsModal.js +13 -13
- package/dist/node/ui/modals/index.js +23 -23
- package/dist/node/ui/renderers/index.js +341 -115
- package/dist/node/ui/renderers/project-list.markdown.js +229 -3
- package/dist/node/ui/renderers/project-list.renderer.js +7 -7
- package/dist/node/visualizations/catalog.js +155 -0
- package/dist/node/visualizations/index.js +217 -0
- package/dist/node/visualizations/selectors.js +210 -0
- package/dist/presentations/index.d.ts +1 -1
- package/dist/project/index.d.ts +7 -7
- package/dist/project/index.js +209 -209
- package/dist/project/project.event.js +1 -1
- package/dist/saas-boilerplate.feature.js +208 -0
- package/dist/settings/index.d.ts +1 -1
- package/dist/ui/SaasDashboard.js +356 -105
- package/dist/ui/SaasDashboard.visualizations.d.ts +5 -0
- package/dist/ui/SaasDashboard.visualizations.js +250 -0
- package/dist/ui/SaasProjectList.js +7 -7
- package/dist/ui/SaasSettingsPanel.js +12 -12
- package/dist/ui/hooks/index.d.ts +2 -2
- package/dist/ui/hooks/index.js +2 -2
- package/dist/ui/hooks/useProjectList.d.ts +5 -0
- package/dist/ui/hooks/useProjectList.js +1 -1
- package/dist/ui/hooks/useProjectMutations.d.ts +8 -0
- package/dist/ui/hooks/useProjectMutations.js +1 -1
- package/dist/ui/index.d.ts +4 -4
- package/dist/ui/index.js +790 -521
- package/dist/ui/modals/CreateProjectModal.js +10 -10
- package/dist/ui/modals/ProjectActionsModal.js +13 -13
- package/dist/ui/modals/index.js +23 -23
- package/dist/ui/renderers/index.d.ts +1 -1
- package/dist/ui/renderers/index.js +341 -115
- package/dist/ui/renderers/project-list.markdown.js +229 -3
- package/dist/ui/renderers/project-list.renderer.d.ts +1 -1
- package/dist/ui/renderers/project-list.renderer.js +7 -7
- package/dist/visualizations/catalog.d.ts +11 -0
- package/dist/visualizations/catalog.js +156 -0
- package/dist/visualizations/index.d.ts +2 -0
- package/dist/visualizations/index.js +218 -0
- package/dist/visualizations/selectors.d.ts +8 -0
- package/dist/visualizations/selectors.js +211 -0
- package/dist/visualizations/selectors.test.d.ts +1 -0
- package/package.json +70 -14
- package/src/billing/billing.entity.ts +132 -132
- package/src/billing/billing.enum.ts +9 -9
- package/src/billing/billing.event.ts +71 -71
- package/src/billing/billing.handler.ts +87 -87
- package/src/billing/billing.operations.ts +158 -158
- package/src/billing/billing.presentation.ts +45 -45
- package/src/billing/billing.schema.ts +76 -76
- package/src/billing/index.ts +43 -48
- package/src/dashboard/dashboard.presentation.ts +45 -45
- package/src/dashboard/index.ts +2 -2
- package/src/docs/saas-boilerplate.docblock.ts +43 -43
- package/src/example.ts +32 -32
- package/src/handlers/index.ts +9 -9
- package/src/handlers/saas.handlers.ts +250 -249
- package/src/index.ts +41 -41
- package/src/presentations/index.ts +18 -20
- package/src/project/index.ts +45 -50
- package/src/project/project.entity.ts +68 -68
- package/src/project/project.enum.ts +8 -8
- package/src/project/project.event.ts +79 -79
- package/src/project/project.handler.ts +103 -103
- package/src/project/project.operations.ts +236 -236
- package/src/project/project.presentation.ts +46 -46
- package/src/project/project.schema.ts +90 -90
- package/src/saas-boilerplate.feature.ts +103 -100
- package/src/seeders/index.ts +20 -20
- package/src/settings/index.ts +2 -3
- package/src/settings/settings.entity.ts +65 -65
- package/src/settings/settings.enum.ts +4 -4
- package/src/shared/mock-data.ts +92 -92
- package/src/shared/overlay-types.ts +23 -23
- package/src/tests/operations.test-spec.ts +96 -96
- package/src/ui/SaasDashboard.tsx +278 -270
- package/src/ui/SaasDashboard.visualizations.tsx +41 -0
- package/src/ui/SaasProjectList.tsx +90 -90
- package/src/ui/SaasSettingsPanel.tsx +84 -84
- package/src/ui/hooks/index.ts +3 -3
- package/src/ui/hooks/useProjectList.ts +69 -68
- package/src/ui/hooks/useProjectMutations.ts +144 -143
- package/src/ui/index.ts +8 -12
- package/src/ui/modals/CreateProjectModal.tsx +154 -154
- package/src/ui/modals/ProjectActionsModal.tsx +321 -321
- package/src/ui/overlays/demo-overlays.ts +49 -49
- package/src/ui/renderers/index.ts +5 -4
- package/src/ui/renderers/project-list.markdown.ts +229 -205
- package/src/ui/renderers/project-list.renderer.tsx +14 -13
- package/src/visualizations/catalog.ts +153 -0
- package/src/visualizations/index.ts +2 -0
- package/src/visualizations/selectors.test.ts +25 -0
- package/src/visualizations/selectors.ts +85 -0
- package/tsconfig.json +7 -8
- package/tsdown.config.js +7 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// src/ui/modals/CreateProjectModal.tsx
|
|
3
|
-
import { useState } from "react";
|
|
4
3
|
import { Button, Input } from "@contractspec/lib.design-system";
|
|
4
|
+
import { useState } from "react";
|
|
5
5
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
6
6
|
"use client";
|
|
7
7
|
var TIERS = [
|
|
@@ -46,7 +46,7 @@ function CreateProjectModal({
|
|
|
46
46
|
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
47
47
|
children: [
|
|
48
48
|
/* @__PURE__ */ jsxDEV("div", {
|
|
49
|
-
className: "bg-background/80
|
|
49
|
+
className: "absolute inset-0 bg-background/80 backdrop-blur-sm",
|
|
50
50
|
onClick: onClose,
|
|
51
51
|
role: "button",
|
|
52
52
|
tabIndex: 0,
|
|
@@ -57,10 +57,10 @@ function CreateProjectModal({
|
|
|
57
57
|
"aria-label": "Close modal"
|
|
58
58
|
}, undefined, false, undefined, this),
|
|
59
59
|
/* @__PURE__ */ jsxDEV("div", {
|
|
60
|
-
className: "
|
|
60
|
+
className: "relative z-10 w-full max-w-md rounded-xl border border-border bg-card p-6 shadow-xl",
|
|
61
61
|
children: [
|
|
62
62
|
/* @__PURE__ */ jsxDEV("h2", {
|
|
63
|
-
className: "mb-4 text-xl
|
|
63
|
+
className: "mb-4 font-semibold text-xl",
|
|
64
64
|
children: "Create New Project"
|
|
65
65
|
}, undefined, false, undefined, this),
|
|
66
66
|
/* @__PURE__ */ jsxDEV("form", {
|
|
@@ -71,7 +71,7 @@ function CreateProjectModal({
|
|
|
71
71
|
children: [
|
|
72
72
|
/* @__PURE__ */ jsxDEV("label", {
|
|
73
73
|
htmlFor: "project-name",
|
|
74
|
-
className: "
|
|
74
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
75
75
|
children: "Project Name *"
|
|
76
76
|
}, undefined, false, undefined, this),
|
|
77
77
|
/* @__PURE__ */ jsxDEV(Input, {
|
|
@@ -87,7 +87,7 @@ function CreateProjectModal({
|
|
|
87
87
|
children: [
|
|
88
88
|
/* @__PURE__ */ jsxDEV("label", {
|
|
89
89
|
htmlFor: "project-description",
|
|
90
|
-
className: "
|
|
90
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
91
91
|
children: "Description"
|
|
92
92
|
}, undefined, false, undefined, this),
|
|
93
93
|
/* @__PURE__ */ jsxDEV("textarea", {
|
|
@@ -97,7 +97,7 @@ function CreateProjectModal({
|
|
|
97
97
|
placeholder: "Describe what this project is about...",
|
|
98
98
|
rows: 3,
|
|
99
99
|
disabled: isLoading,
|
|
100
|
-
className: "
|
|
100
|
+
className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50"
|
|
101
101
|
}, undefined, false, undefined, this)
|
|
102
102
|
]
|
|
103
103
|
}, undefined, true, undefined, this),
|
|
@@ -105,7 +105,7 @@ function CreateProjectModal({
|
|
|
105
105
|
children: [
|
|
106
106
|
/* @__PURE__ */ jsxDEV("label", {
|
|
107
107
|
htmlFor: "project-tier",
|
|
108
|
-
className: "
|
|
108
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
109
109
|
children: "Tier"
|
|
110
110
|
}, undefined, false, undefined, this),
|
|
111
111
|
/* @__PURE__ */ jsxDEV("select", {
|
|
@@ -113,7 +113,7 @@ function CreateProjectModal({
|
|
|
113
113
|
value: tier,
|
|
114
114
|
onChange: (e) => setTier(e.target.value),
|
|
115
115
|
disabled: isLoading,
|
|
116
|
-
className: "
|
|
116
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50",
|
|
117
117
|
children: TIERS.map((t) => /* @__PURE__ */ jsxDEV("option", {
|
|
118
118
|
value: t.value,
|
|
119
119
|
children: t.label
|
|
@@ -122,7 +122,7 @@ function CreateProjectModal({
|
|
|
122
122
|
]
|
|
123
123
|
}, undefined, true, undefined, this),
|
|
124
124
|
error && /* @__PURE__ */ jsxDEV("div", {
|
|
125
|
-
className: "bg-destructive/10
|
|
125
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
126
126
|
children: error
|
|
127
127
|
}, undefined, false, undefined, this),
|
|
128
128
|
/* @__PURE__ */ jsxDEV("div", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// src/ui/modals/ProjectActionsModal.tsx
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
3
|
import { Button, Input } from "@contractspec/lib.design-system";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
5
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
6
6
|
"use client";
|
|
7
7
|
function ProjectActionsModal({
|
|
@@ -94,7 +94,7 @@ function ProjectActionsModal({
|
|
|
94
94
|
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
95
95
|
children: [
|
|
96
96
|
/* @__PURE__ */ jsxDEV("div", {
|
|
97
|
-
className: "bg-background/80
|
|
97
|
+
className: "absolute inset-0 bg-background/80 backdrop-blur-sm",
|
|
98
98
|
onClick: handleClose,
|
|
99
99
|
role: "button",
|
|
100
100
|
tabIndex: 0,
|
|
@@ -105,13 +105,13 @@ function ProjectActionsModal({
|
|
|
105
105
|
"aria-label": "Close modal"
|
|
106
106
|
}, undefined, false, undefined, this),
|
|
107
107
|
/* @__PURE__ */ jsxDEV("div", {
|
|
108
|
-
className: "
|
|
108
|
+
className: "relative z-10 w-full max-w-md rounded-xl border border-border bg-card p-6 shadow-xl",
|
|
109
109
|
children: [
|
|
110
110
|
/* @__PURE__ */ jsxDEV("div", {
|
|
111
|
-
className: "
|
|
111
|
+
className: "mb-4 border-border border-b pb-4",
|
|
112
112
|
children: [
|
|
113
113
|
/* @__PURE__ */ jsxDEV("h2", {
|
|
114
|
-
className: "text-xl
|
|
114
|
+
className: "font-semibold text-xl",
|
|
115
115
|
children: project.name
|
|
116
116
|
}, undefined, false, undefined, this),
|
|
117
117
|
/* @__PURE__ */ jsxDEV("p", {
|
|
@@ -193,7 +193,7 @@ function ProjectActionsModal({
|
|
|
193
193
|
children: [
|
|
194
194
|
/* @__PURE__ */ jsxDEV("label", {
|
|
195
195
|
htmlFor: "edit-name",
|
|
196
|
-
className: "
|
|
196
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
197
197
|
children: "Project Name *"
|
|
198
198
|
}, undefined, false, undefined, this),
|
|
199
199
|
/* @__PURE__ */ jsxDEV(Input, {
|
|
@@ -208,7 +208,7 @@ function ProjectActionsModal({
|
|
|
208
208
|
children: [
|
|
209
209
|
/* @__PURE__ */ jsxDEV("label", {
|
|
210
210
|
htmlFor: "edit-description",
|
|
211
|
-
className: "
|
|
211
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
212
212
|
children: "Description"
|
|
213
213
|
}, undefined, false, undefined, this),
|
|
214
214
|
/* @__PURE__ */ jsxDEV("textarea", {
|
|
@@ -217,12 +217,12 @@ function ProjectActionsModal({
|
|
|
217
217
|
onChange: (e) => setDescription(e.target.value),
|
|
218
218
|
rows: 3,
|
|
219
219
|
disabled: isLoading,
|
|
220
|
-
className: "
|
|
220
|
+
className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50"
|
|
221
221
|
}, undefined, false, undefined, this)
|
|
222
222
|
]
|
|
223
223
|
}, undefined, true, undefined, this),
|
|
224
224
|
error && /* @__PURE__ */ jsxDEV("div", {
|
|
225
|
-
className: "bg-destructive/10
|
|
225
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
226
226
|
children: error
|
|
227
227
|
}, undefined, false, undefined, this),
|
|
228
228
|
/* @__PURE__ */ jsxDEV("div", {
|
|
@@ -252,7 +252,7 @@ function ProjectActionsModal({
|
|
|
252
252
|
"Are you sure you want to archive",
|
|
253
253
|
" ",
|
|
254
254
|
/* @__PURE__ */ jsxDEV("span", {
|
|
255
|
-
className: "text-foreground
|
|
255
|
+
className: "font-medium text-foreground",
|
|
256
256
|
children: project.name
|
|
257
257
|
}, undefined, false, undefined, this),
|
|
258
258
|
"?"
|
|
@@ -263,7 +263,7 @@ function ProjectActionsModal({
|
|
|
263
263
|
children: "Archived projects can be restored later."
|
|
264
264
|
}, undefined, false, undefined, this),
|
|
265
265
|
error && /* @__PURE__ */ jsxDEV("div", {
|
|
266
|
-
className: "bg-destructive/10
|
|
266
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
267
267
|
children: error
|
|
268
268
|
}, undefined, false, undefined, this),
|
|
269
269
|
/* @__PURE__ */ jsxDEV("div", {
|
|
@@ -293,7 +293,7 @@ function ProjectActionsModal({
|
|
|
293
293
|
"Are you sure you want to delete",
|
|
294
294
|
" ",
|
|
295
295
|
/* @__PURE__ */ jsxDEV("span", {
|
|
296
|
-
className: "text-foreground
|
|
296
|
+
className: "font-medium text-foreground",
|
|
297
297
|
children: project.name
|
|
298
298
|
}, undefined, false, undefined, this),
|
|
299
299
|
"?"
|
|
@@ -304,7 +304,7 @@ function ProjectActionsModal({
|
|
|
304
304
|
children: "This action cannot be undone."
|
|
305
305
|
}, undefined, false, undefined, this),
|
|
306
306
|
error && /* @__PURE__ */ jsxDEV("div", {
|
|
307
|
-
className: "bg-destructive/10
|
|
307
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
308
308
|
children: error
|
|
309
309
|
}, undefined, false, undefined, this),
|
|
310
310
|
/* @__PURE__ */ jsxDEV("div", {
|
package/dist/ui/modals/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// src/ui/modals/CreateProjectModal.tsx
|
|
3
|
-
import { useState } from "react";
|
|
4
3
|
import { Button, Input } from "@contractspec/lib.design-system";
|
|
4
|
+
import { useState } from "react";
|
|
5
5
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
6
6
|
"use client";
|
|
7
7
|
var TIERS = [
|
|
@@ -46,7 +46,7 @@ function CreateProjectModal({
|
|
|
46
46
|
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
47
47
|
children: [
|
|
48
48
|
/* @__PURE__ */ jsxDEV("div", {
|
|
49
|
-
className: "bg-background/80
|
|
49
|
+
className: "absolute inset-0 bg-background/80 backdrop-blur-sm",
|
|
50
50
|
onClick: onClose,
|
|
51
51
|
role: "button",
|
|
52
52
|
tabIndex: 0,
|
|
@@ -57,10 +57,10 @@ function CreateProjectModal({
|
|
|
57
57
|
"aria-label": "Close modal"
|
|
58
58
|
}, undefined, false, undefined, this),
|
|
59
59
|
/* @__PURE__ */ jsxDEV("div", {
|
|
60
|
-
className: "
|
|
60
|
+
className: "relative z-10 w-full max-w-md rounded-xl border border-border bg-card p-6 shadow-xl",
|
|
61
61
|
children: [
|
|
62
62
|
/* @__PURE__ */ jsxDEV("h2", {
|
|
63
|
-
className: "mb-4 text-xl
|
|
63
|
+
className: "mb-4 font-semibold text-xl",
|
|
64
64
|
children: "Create New Project"
|
|
65
65
|
}, undefined, false, undefined, this),
|
|
66
66
|
/* @__PURE__ */ jsxDEV("form", {
|
|
@@ -71,7 +71,7 @@ function CreateProjectModal({
|
|
|
71
71
|
children: [
|
|
72
72
|
/* @__PURE__ */ jsxDEV("label", {
|
|
73
73
|
htmlFor: "project-name",
|
|
74
|
-
className: "
|
|
74
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
75
75
|
children: "Project Name *"
|
|
76
76
|
}, undefined, false, undefined, this),
|
|
77
77
|
/* @__PURE__ */ jsxDEV(Input, {
|
|
@@ -87,7 +87,7 @@ function CreateProjectModal({
|
|
|
87
87
|
children: [
|
|
88
88
|
/* @__PURE__ */ jsxDEV("label", {
|
|
89
89
|
htmlFor: "project-description",
|
|
90
|
-
className: "
|
|
90
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
91
91
|
children: "Description"
|
|
92
92
|
}, undefined, false, undefined, this),
|
|
93
93
|
/* @__PURE__ */ jsxDEV("textarea", {
|
|
@@ -97,7 +97,7 @@ function CreateProjectModal({
|
|
|
97
97
|
placeholder: "Describe what this project is about...",
|
|
98
98
|
rows: 3,
|
|
99
99
|
disabled: isLoading,
|
|
100
|
-
className: "
|
|
100
|
+
className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50"
|
|
101
101
|
}, undefined, false, undefined, this)
|
|
102
102
|
]
|
|
103
103
|
}, undefined, true, undefined, this),
|
|
@@ -105,7 +105,7 @@ function CreateProjectModal({
|
|
|
105
105
|
children: [
|
|
106
106
|
/* @__PURE__ */ jsxDEV("label", {
|
|
107
107
|
htmlFor: "project-tier",
|
|
108
|
-
className: "
|
|
108
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
109
109
|
children: "Tier"
|
|
110
110
|
}, undefined, false, undefined, this),
|
|
111
111
|
/* @__PURE__ */ jsxDEV("select", {
|
|
@@ -113,7 +113,7 @@ function CreateProjectModal({
|
|
|
113
113
|
value: tier,
|
|
114
114
|
onChange: (e) => setTier(e.target.value),
|
|
115
115
|
disabled: isLoading,
|
|
116
|
-
className: "
|
|
116
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50",
|
|
117
117
|
children: TIERS.map((t) => /* @__PURE__ */ jsxDEV("option", {
|
|
118
118
|
value: t.value,
|
|
119
119
|
children: t.label
|
|
@@ -122,7 +122,7 @@ function CreateProjectModal({
|
|
|
122
122
|
]
|
|
123
123
|
}, undefined, true, undefined, this),
|
|
124
124
|
error && /* @__PURE__ */ jsxDEV("div", {
|
|
125
|
-
className: "bg-destructive/10
|
|
125
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
126
126
|
children: error
|
|
127
127
|
}, undefined, false, undefined, this),
|
|
128
128
|
/* @__PURE__ */ jsxDEV("div", {
|
|
@@ -151,8 +151,8 @@ function CreateProjectModal({
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
// src/ui/modals/ProjectActionsModal.tsx
|
|
154
|
-
import { useEffect, useState as useState2 } from "react";
|
|
155
154
|
import { Button as Button2, Input as Input2 } from "@contractspec/lib.design-system";
|
|
155
|
+
import { useEffect, useState as useState2 } from "react";
|
|
156
156
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
157
157
|
"use client";
|
|
158
158
|
function ProjectActionsModal({
|
|
@@ -245,7 +245,7 @@ function ProjectActionsModal({
|
|
|
245
245
|
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
246
246
|
children: [
|
|
247
247
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
248
|
-
className: "bg-background/80
|
|
248
|
+
className: "absolute inset-0 bg-background/80 backdrop-blur-sm",
|
|
249
249
|
onClick: handleClose,
|
|
250
250
|
role: "button",
|
|
251
251
|
tabIndex: 0,
|
|
@@ -256,13 +256,13 @@ function ProjectActionsModal({
|
|
|
256
256
|
"aria-label": "Close modal"
|
|
257
257
|
}, undefined, false, undefined, this),
|
|
258
258
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
259
|
-
className: "
|
|
259
|
+
className: "relative z-10 w-full max-w-md rounded-xl border border-border bg-card p-6 shadow-xl",
|
|
260
260
|
children: [
|
|
261
261
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
262
|
-
className: "
|
|
262
|
+
className: "mb-4 border-border border-b pb-4",
|
|
263
263
|
children: [
|
|
264
264
|
/* @__PURE__ */ jsxDEV2("h2", {
|
|
265
|
-
className: "text-xl
|
|
265
|
+
className: "font-semibold text-xl",
|
|
266
266
|
children: project.name
|
|
267
267
|
}, undefined, false, undefined, this),
|
|
268
268
|
/* @__PURE__ */ jsxDEV2("p", {
|
|
@@ -344,7 +344,7 @@ function ProjectActionsModal({
|
|
|
344
344
|
children: [
|
|
345
345
|
/* @__PURE__ */ jsxDEV2("label", {
|
|
346
346
|
htmlFor: "edit-name",
|
|
347
|
-
className: "
|
|
347
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
348
348
|
children: "Project Name *"
|
|
349
349
|
}, undefined, false, undefined, this),
|
|
350
350
|
/* @__PURE__ */ jsxDEV2(Input2, {
|
|
@@ -359,7 +359,7 @@ function ProjectActionsModal({
|
|
|
359
359
|
children: [
|
|
360
360
|
/* @__PURE__ */ jsxDEV2("label", {
|
|
361
361
|
htmlFor: "edit-description",
|
|
362
|
-
className: "
|
|
362
|
+
className: "mb-1 block font-medium text-muted-foreground text-sm",
|
|
363
363
|
children: "Description"
|
|
364
364
|
}, undefined, false, undefined, this),
|
|
365
365
|
/* @__PURE__ */ jsxDEV2("textarea", {
|
|
@@ -368,12 +368,12 @@ function ProjectActionsModal({
|
|
|
368
368
|
onChange: (e) => setDescription(e.target.value),
|
|
369
369
|
rows: 3,
|
|
370
370
|
disabled: isLoading,
|
|
371
|
-
className: "
|
|
371
|
+
className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50"
|
|
372
372
|
}, undefined, false, undefined, this)
|
|
373
373
|
]
|
|
374
374
|
}, undefined, true, undefined, this),
|
|
375
375
|
error && /* @__PURE__ */ jsxDEV2("div", {
|
|
376
|
-
className: "bg-destructive/10
|
|
376
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
377
377
|
children: error
|
|
378
378
|
}, undefined, false, undefined, this),
|
|
379
379
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
@@ -403,7 +403,7 @@ function ProjectActionsModal({
|
|
|
403
403
|
"Are you sure you want to archive",
|
|
404
404
|
" ",
|
|
405
405
|
/* @__PURE__ */ jsxDEV2("span", {
|
|
406
|
-
className: "text-foreground
|
|
406
|
+
className: "font-medium text-foreground",
|
|
407
407
|
children: project.name
|
|
408
408
|
}, undefined, false, undefined, this),
|
|
409
409
|
"?"
|
|
@@ -414,7 +414,7 @@ function ProjectActionsModal({
|
|
|
414
414
|
children: "Archived projects can be restored later."
|
|
415
415
|
}, undefined, false, undefined, this),
|
|
416
416
|
error && /* @__PURE__ */ jsxDEV2("div", {
|
|
417
|
-
className: "bg-destructive/10
|
|
417
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
418
418
|
children: error
|
|
419
419
|
}, undefined, false, undefined, this),
|
|
420
420
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
@@ -444,7 +444,7 @@ function ProjectActionsModal({
|
|
|
444
444
|
"Are you sure you want to delete",
|
|
445
445
|
" ",
|
|
446
446
|
/* @__PURE__ */ jsxDEV2("span", {
|
|
447
|
-
className: "text-foreground
|
|
447
|
+
className: "font-medium text-foreground",
|
|
448
448
|
children: project.name
|
|
449
449
|
}, undefined, false, undefined, this),
|
|
450
450
|
"?"
|
|
@@ -455,7 +455,7 @@ function ProjectActionsModal({
|
|
|
455
455
|
children: "This action cannot be undone."
|
|
456
456
|
}, undefined, false, undefined, this),
|
|
457
457
|
error && /* @__PURE__ */ jsxDEV2("div", {
|
|
458
|
-
className: "bg-destructive/10
|
|
458
|
+
className: "rounded-md bg-destructive/10 p-3 text-destructive text-sm",
|
|
459
459
|
children: error
|
|
460
460
|
}, undefined, false, undefined, this),
|
|
461
461
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export { projectListMarkdownRenderer, saasBillingMarkdownRenderer, saasDashboardMarkdownRenderer, } from './project-list.markdown';
|
|
1
2
|
export { projectListReactRenderer } from './project-list.renderer';
|
|
2
|
-
export { projectListMarkdownRenderer, saasDashboardMarkdownRenderer, saasBillingMarkdownRenderer, } from './project-list.markdown';
|