@contractspec/lib.example-shared-ui 1.11.0 → 1.13.0

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.
Files changed (121) hide show
  1. package/.turbo/turbo-build.log +86 -11
  2. package/.turbo/turbo-prebuild.log +1 -0
  3. package/CHANGELOG.md +27 -0
  4. package/dist/EvolutionDashboard.d.ts +11 -0
  5. package/dist/EvolutionDashboard.d.ts.map +1 -0
  6. package/dist/EvolutionDashboard.js +804 -0
  7. package/dist/EvolutionSidebar.d.ts +19 -0
  8. package/dist/EvolutionSidebar.d.ts.map +1 -0
  9. package/dist/EvolutionSidebar.js +532 -0
  10. package/dist/LocalDataIndicator.d.ts +2 -0
  11. package/dist/LocalDataIndicator.d.ts.map +1 -0
  12. package/dist/LocalDataIndicator.js +63 -0
  13. package/dist/MarkdownView.d.ts +20 -0
  14. package/dist/MarkdownView.d.ts.map +1 -0
  15. package/dist/MarkdownView.js +304 -0
  16. package/dist/OverlayContextProvider.d.ts +79 -0
  17. package/dist/OverlayContextProvider.d.ts.map +1 -0
  18. package/dist/OverlayContextProvider.js +203 -0
  19. package/dist/PersonalizationInsights.d.ts +14 -0
  20. package/dist/PersonalizationInsights.d.ts.map +1 -0
  21. package/dist/PersonalizationInsights.js +456 -0
  22. package/dist/SaveToStudioButton.d.ts +8 -0
  23. package/dist/SaveToStudioButton.d.ts.map +1 -0
  24. package/dist/SaveToStudioButton.js +74 -0
  25. package/dist/SpecEditorPanel.d.ts +23 -0
  26. package/dist/SpecEditorPanel.d.ts.map +1 -0
  27. package/dist/SpecEditorPanel.js +720 -0
  28. package/dist/TemplateShell.d.ts +13 -0
  29. package/dist/TemplateShell.d.ts.map +1 -0
  30. package/dist/TemplateShell.js +190 -0
  31. package/dist/browser/EvolutionDashboard.js +803 -0
  32. package/dist/browser/EvolutionSidebar.js +531 -0
  33. package/dist/browser/LocalDataIndicator.js +62 -0
  34. package/dist/browser/MarkdownView.js +303 -0
  35. package/dist/browser/OverlayContextProvider.js +202 -0
  36. package/dist/browser/PersonalizationInsights.js +455 -0
  37. package/dist/browser/SaveToStudioButton.js +73 -0
  38. package/dist/browser/SpecEditorPanel.js +719 -0
  39. package/dist/browser/TemplateShell.js +189 -0
  40. package/dist/browser/hooks/index.js +1516 -0
  41. package/dist/browser/hooks/useBehaviorTracking.js +157 -0
  42. package/dist/browser/hooks/useEvolution.js +260 -0
  43. package/dist/browser/hooks/useRegistryTemplates.js +31 -0
  44. package/dist/browser/hooks/useSpecContent.js +579 -0
  45. package/dist/browser/hooks/useWorkflowComposer.js +493 -0
  46. package/dist/browser/index.js +3497 -0
  47. package/dist/browser/lib/component-registry.js +42 -0
  48. package/dist/browser/lib/runtime-context.js +15 -0
  49. package/dist/browser/lib/types.js +0 -0
  50. package/dist/browser/overlay-types.js +0 -0
  51. package/dist/browser/utils/fetchPresentationData.js +15 -0
  52. package/dist/browser/utils/generateSpecFromTemplate.js +423 -0
  53. package/dist/browser/utils/index.js +437 -0
  54. package/dist/hooks/index.d.ts +6 -0
  55. package/dist/hooks/index.d.ts.map +1 -0
  56. package/dist/hooks/index.js +1517 -0
  57. package/dist/hooks/useBehaviorTracking.d.ts +56 -0
  58. package/dist/hooks/useBehaviorTracking.d.ts.map +1 -0
  59. package/dist/hooks/useBehaviorTracking.js +158 -0
  60. package/dist/hooks/useEvolution.d.ts +111 -0
  61. package/dist/hooks/useEvolution.d.ts.map +1 -0
  62. package/dist/hooks/useEvolution.js +261 -0
  63. package/dist/hooks/useRegistryTemplates.d.ts +10 -0
  64. package/dist/hooks/useRegistryTemplates.d.ts.map +1 -0
  65. package/dist/hooks/useRegistryTemplates.js +32 -0
  66. package/dist/hooks/useSpecContent.d.ts +41 -0
  67. package/dist/hooks/useSpecContent.d.ts.map +1 -0
  68. package/dist/hooks/useSpecContent.js +580 -0
  69. package/dist/hooks/useWorkflowComposer.d.ts +94 -0
  70. package/dist/hooks/useWorkflowComposer.d.ts.map +1 -0
  71. package/dist/hooks/useWorkflowComposer.js +494 -0
  72. package/dist/index.d.ts +16 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +3498 -0
  75. package/dist/lib/component-registry.d.ts +18 -0
  76. package/dist/lib/component-registry.d.ts.map +1 -0
  77. package/dist/lib/component-registry.js +43 -0
  78. package/dist/lib/runtime-context.d.ts +29 -0
  79. package/dist/lib/runtime-context.d.ts.map +1 -0
  80. package/dist/lib/runtime-context.js +16 -0
  81. package/dist/lib/types.d.ts +69 -0
  82. package/dist/lib/types.d.ts.map +1 -0
  83. package/dist/lib/types.js +1 -0
  84. package/dist/node/EvolutionDashboard.js +803 -0
  85. package/dist/node/EvolutionSidebar.js +531 -0
  86. package/dist/node/LocalDataIndicator.js +62 -0
  87. package/dist/node/MarkdownView.js +303 -0
  88. package/dist/node/OverlayContextProvider.js +202 -0
  89. package/dist/node/PersonalizationInsights.js +455 -0
  90. package/dist/node/SaveToStudioButton.js +73 -0
  91. package/dist/node/SpecEditorPanel.js +719 -0
  92. package/dist/node/TemplateShell.js +189 -0
  93. package/dist/node/hooks/index.js +1516 -0
  94. package/dist/node/hooks/useBehaviorTracking.js +157 -0
  95. package/dist/node/hooks/useEvolution.js +260 -0
  96. package/dist/node/hooks/useRegistryTemplates.js +31 -0
  97. package/dist/node/hooks/useSpecContent.js +579 -0
  98. package/dist/node/hooks/useWorkflowComposer.js +493 -0
  99. package/dist/node/index.js +3497 -0
  100. package/dist/node/lib/component-registry.js +42 -0
  101. package/dist/node/lib/runtime-context.js +15 -0
  102. package/dist/node/lib/types.js +0 -0
  103. package/dist/node/overlay-types.js +0 -0
  104. package/dist/node/utils/fetchPresentationData.js +15 -0
  105. package/dist/node/utils/generateSpecFromTemplate.js +423 -0
  106. package/dist/node/utils/index.js +437 -0
  107. package/dist/overlay-types.d.ts +41 -0
  108. package/dist/overlay-types.d.ts.map +1 -0
  109. package/dist/overlay-types.js +1 -0
  110. package/dist/utils/fetchPresentationData.d.ts +34 -0
  111. package/dist/utils/fetchPresentationData.d.ts.map +1 -0
  112. package/dist/utils/fetchPresentationData.js +16 -0
  113. package/dist/utils/generateSpecFromTemplate.d.ts +7 -0
  114. package/dist/utils/generateSpecFromTemplate.d.ts.map +1 -0
  115. package/dist/utils/generateSpecFromTemplate.js +424 -0
  116. package/dist/utils/index.d.ts +3 -0
  117. package/dist/utils/index.d.ts.map +1 -0
  118. package/dist/utils/index.js +438 -0
  119. package/package.json +219 -14
  120. package/.turbo/turbo-build$colon$bundle.log +0 -9
  121. package/dist/index.mjs +0 -3121
@@ -0,0 +1,189 @@
1
+ // src/lib/runtime-context.tsx
2
+ import { createContext, useContext } from "react";
3
+ "use client";
4
+ var TemplateRuntimeContext = createContext(null);
5
+ function useTemplateRuntime() {
6
+ const context = useContext(TemplateRuntimeContext);
7
+ if (!context) {
8
+ throw new Error("useTemplateRuntime must be used within a TemplateRuntimeProvider");
9
+ }
10
+ return context;
11
+ }
12
+
13
+ // src/LocalDataIndicator.tsx
14
+ import { RefreshCw, Shield } from "lucide-react";
15
+ import { useState } from "react";
16
+ import { jsxDEV } from "react/jsx-dev-runtime";
17
+ "use client";
18
+ function LocalDataIndicator() {
19
+ const { projectId, templateId, template, installer } = useTemplateRuntime();
20
+ const [isResetting, setIsResetting] = useState(false);
21
+ const handleReset = async () => {
22
+ setIsResetting(true);
23
+ try {
24
+ await installer.install(templateId, { projectId });
25
+ } finally {
26
+ setIsResetting(false);
27
+ }
28
+ };
29
+ return /* @__PURE__ */ jsxDEV("div", {
30
+ className: "border-border bg-muted/40 text-muted-foreground inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs",
31
+ children: [
32
+ /* @__PURE__ */ jsxDEV(Shield, {
33
+ className: "h-3.5 w-3.5 text-violet-400"
34
+ }, undefined, false, undefined, this),
35
+ /* @__PURE__ */ jsxDEV("span", {
36
+ children: [
37
+ "Local runtime ·",
38
+ " ",
39
+ /* @__PURE__ */ jsxDEV("span", {
40
+ className: "text-foreground font-semibold",
41
+ children: template.name
42
+ }, undefined, false, undefined, this)
43
+ ]
44
+ }, undefined, true, undefined, this),
45
+ /* @__PURE__ */ jsxDEV("button", {
46
+ type: "button",
47
+ className: "border-border text-muted-foreground hover:text-foreground inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] font-semibold",
48
+ onClick: handleReset,
49
+ disabled: isResetting,
50
+ children: [
51
+ /* @__PURE__ */ jsxDEV(RefreshCw, {
52
+ className: "h-3 w-3"
53
+ }, undefined, false, undefined, this),
54
+ isResetting ? "Resetting…" : "Reset data"
55
+ ]
56
+ }, undefined, true, undefined, this)
57
+ ]
58
+ }, undefined, true, undefined, this);
59
+ }
60
+
61
+ // src/SaveToStudioButton.tsx
62
+ import { useState as useState2 } from "react";
63
+ import { Sparkles } from "lucide-react";
64
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
65
+ "use client";
66
+ function SaveToStudioButton({
67
+ organizationId = "demo-org",
68
+ projectName,
69
+ endpoint,
70
+ token
71
+ }) {
72
+ const { installer, templateId, template } = useTemplateRuntime();
73
+ const [status, setStatus] = useState2("idle");
74
+ const [error, setError] = useState2(null);
75
+ const handleSave = async () => {
76
+ setStatus("saving");
77
+ setError(null);
78
+ try {
79
+ await installer.saveToStudio({
80
+ templateId,
81
+ projectName: projectName ?? `${template.name} demo`,
82
+ organizationId,
83
+ endpoint,
84
+ token
85
+ });
86
+ setStatus("saved");
87
+ setTimeout(() => setStatus("idle"), 3000);
88
+ } catch (err) {
89
+ setStatus("error");
90
+ setError(err instanceof Error ? err.message : "Unknown error");
91
+ }
92
+ };
93
+ return /* @__PURE__ */ jsxDEV2("div", {
94
+ className: "flex flex-col items-end gap-1",
95
+ children: [
96
+ /* @__PURE__ */ jsxDEV2("button", {
97
+ type: "button",
98
+ className: "btn-primary inline-flex items-center gap-2 text-sm",
99
+ onClick: handleSave,
100
+ disabled: status === "saving",
101
+ children: [
102
+ /* @__PURE__ */ jsxDEV2(Sparkles, {
103
+ className: "h-4 w-4"
104
+ }, undefined, false, undefined, this),
105
+ status === "saving" ? "Publishing…" : "Save to Studio"
106
+ ]
107
+ }, undefined, true, undefined, this),
108
+ status === "error" && error ? /* @__PURE__ */ jsxDEV2("p", {
109
+ className: "text-destructive text-xs",
110
+ children: error
111
+ }, undefined, false, undefined, this) : null,
112
+ status === "saved" ? /* @__PURE__ */ jsxDEV2("p", {
113
+ className: "text-xs text-emerald-400",
114
+ children: "Template sent to Studio."
115
+ }, undefined, false, undefined, this) : null
116
+ ]
117
+ }, undefined, true, undefined, this);
118
+ }
119
+
120
+ // src/TemplateShell.tsx
121
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
122
+ var TemplateShell = ({
123
+ title,
124
+ description,
125
+ sidebar,
126
+ actions,
127
+ showSaveAction = true,
128
+ saveProps,
129
+ children
130
+ }) => /* @__PURE__ */ jsxDEV3("div", {
131
+ className: "space-y-6",
132
+ children: [
133
+ /* @__PURE__ */ jsxDEV3("header", {
134
+ className: "border-border bg-card rounded-2xl border p-6 shadow-sm",
135
+ children: [
136
+ /* @__PURE__ */ jsxDEV3("div", {
137
+ className: "flex flex-wrap items-center justify-between gap-4",
138
+ children: [
139
+ /* @__PURE__ */ jsxDEV3("div", {
140
+ children: [
141
+ /* @__PURE__ */ jsxDEV3("p", {
142
+ className: "text-muted-foreground text-sm font-semibold tracking-wide uppercase",
143
+ children: "ContractSpec Templates"
144
+ }, undefined, false, undefined, this),
145
+ /* @__PURE__ */ jsxDEV3("h1", {
146
+ className: "text-3xl font-bold",
147
+ children: title
148
+ }, undefined, false, undefined, this),
149
+ description ? /* @__PURE__ */ jsxDEV3("p", {
150
+ className: "text-muted-foreground mt-2 max-w-2xl text-sm",
151
+ children: description
152
+ }, undefined, false, undefined, this) : null
153
+ ]
154
+ }, undefined, true, undefined, this),
155
+ /* @__PURE__ */ jsxDEV3("div", {
156
+ className: "flex flex-col items-end gap-2",
157
+ children: [
158
+ /* @__PURE__ */ jsxDEV3(LocalDataIndicator, {}, undefined, false, undefined, this),
159
+ showSaveAction ? /* @__PURE__ */ jsxDEV3(SaveToStudioButton, {
160
+ ...saveProps
161
+ }, undefined, false, undefined, this) : null
162
+ ]
163
+ }, undefined, true, undefined, this)
164
+ ]
165
+ }, undefined, true, undefined, this),
166
+ actions ? /* @__PURE__ */ jsxDEV3("div", {
167
+ className: "mt-4",
168
+ children: actions
169
+ }, undefined, false, undefined, this) : null
170
+ ]
171
+ }, undefined, true, undefined, this),
172
+ /* @__PURE__ */ jsxDEV3("div", {
173
+ className: sidebar ? "grid gap-6 lg:grid-cols-[minmax(0,1fr)_320px]" : "w-full",
174
+ children: [
175
+ /* @__PURE__ */ jsxDEV3("main", {
176
+ className: "space-y-4 p-2",
177
+ children
178
+ }, undefined, false, undefined, this),
179
+ sidebar ? /* @__PURE__ */ jsxDEV3("aside", {
180
+ className: "border-border bg-card rounded-2xl border p-4",
181
+ children: sidebar
182
+ }, undefined, false, undefined, this) : null
183
+ ]
184
+ }, undefined, true, undefined, this)
185
+ ]
186
+ }, undefined, true, undefined, this);
187
+ export {
188
+ TemplateShell
189
+ };