@contractspec/lib.example-shared-ui 1.10.1 → 1.12.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 +32 -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 +222 -17
  120. package/.turbo/turbo-build$colon$bundle.log +0 -9
  121. package/dist/index.mjs +0 -3121
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type SaveToStudioButtonProps } from './SaveToStudioButton';
3
+ export interface TemplateShellProps {
4
+ title: string;
5
+ description?: string;
6
+ sidebar?: ReactNode;
7
+ actions?: ReactNode;
8
+ children: ReactNode;
9
+ showSaveAction?: boolean;
10
+ saveProps?: SaveToStudioButtonProps;
11
+ }
12
+ export declare const TemplateShell: ({ title, description, sidebar, actions, showSaveAction, saveProps, children, }: TemplateShellProps) => import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=TemplateShell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateShell.d.ts","sourceRoot":"","sources":["../src/TemplateShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,eAAO,MAAM,aAAa,GAAI,gFAQ3B,kBAAkB,4CAoCpB,CAAC"}
@@ -0,0 +1,190 @@
1
+ // @bun
2
+ // src/lib/runtime-context.tsx
3
+ import { createContext, useContext } from "react";
4
+ "use client";
5
+ var TemplateRuntimeContext = createContext(null);
6
+ function useTemplateRuntime() {
7
+ const context = useContext(TemplateRuntimeContext);
8
+ if (!context) {
9
+ throw new Error("useTemplateRuntime must be used within a TemplateRuntimeProvider");
10
+ }
11
+ return context;
12
+ }
13
+
14
+ // src/LocalDataIndicator.tsx
15
+ import { RefreshCw, Shield } from "lucide-react";
16
+ import { useState } from "react";
17
+ import { jsxDEV } from "react/jsx-dev-runtime";
18
+ "use client";
19
+ function LocalDataIndicator() {
20
+ const { projectId, templateId, template, installer } = useTemplateRuntime();
21
+ const [isResetting, setIsResetting] = useState(false);
22
+ const handleReset = async () => {
23
+ setIsResetting(true);
24
+ try {
25
+ await installer.install(templateId, { projectId });
26
+ } finally {
27
+ setIsResetting(false);
28
+ }
29
+ };
30
+ return /* @__PURE__ */ jsxDEV("div", {
31
+ className: "border-border bg-muted/40 text-muted-foreground inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs",
32
+ children: [
33
+ /* @__PURE__ */ jsxDEV(Shield, {
34
+ className: "h-3.5 w-3.5 text-violet-400"
35
+ }, undefined, false, undefined, this),
36
+ /* @__PURE__ */ jsxDEV("span", {
37
+ children: [
38
+ "Local runtime \xB7",
39
+ " ",
40
+ /* @__PURE__ */ jsxDEV("span", {
41
+ className: "text-foreground font-semibold",
42
+ children: template.name
43
+ }, undefined, false, undefined, this)
44
+ ]
45
+ }, undefined, true, undefined, this),
46
+ /* @__PURE__ */ jsxDEV("button", {
47
+ type: "button",
48
+ 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",
49
+ onClick: handleReset,
50
+ disabled: isResetting,
51
+ children: [
52
+ /* @__PURE__ */ jsxDEV(RefreshCw, {
53
+ className: "h-3 w-3"
54
+ }, undefined, false, undefined, this),
55
+ isResetting ? "Resetting\u2026" : "Reset data"
56
+ ]
57
+ }, undefined, true, undefined, this)
58
+ ]
59
+ }, undefined, true, undefined, this);
60
+ }
61
+
62
+ // src/SaveToStudioButton.tsx
63
+ import { useState as useState2 } from "react";
64
+ import { Sparkles } from "lucide-react";
65
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
66
+ "use client";
67
+ function SaveToStudioButton({
68
+ organizationId = "demo-org",
69
+ projectName,
70
+ endpoint,
71
+ token
72
+ }) {
73
+ const { installer, templateId, template } = useTemplateRuntime();
74
+ const [status, setStatus] = useState2("idle");
75
+ const [error, setError] = useState2(null);
76
+ const handleSave = async () => {
77
+ setStatus("saving");
78
+ setError(null);
79
+ try {
80
+ await installer.saveToStudio({
81
+ templateId,
82
+ projectName: projectName ?? `${template.name} demo`,
83
+ organizationId,
84
+ endpoint,
85
+ token
86
+ });
87
+ setStatus("saved");
88
+ setTimeout(() => setStatus("idle"), 3000);
89
+ } catch (err) {
90
+ setStatus("error");
91
+ setError(err instanceof Error ? err.message : "Unknown error");
92
+ }
93
+ };
94
+ return /* @__PURE__ */ jsxDEV2("div", {
95
+ className: "flex flex-col items-end gap-1",
96
+ children: [
97
+ /* @__PURE__ */ jsxDEV2("button", {
98
+ type: "button",
99
+ className: "btn-primary inline-flex items-center gap-2 text-sm",
100
+ onClick: handleSave,
101
+ disabled: status === "saving",
102
+ children: [
103
+ /* @__PURE__ */ jsxDEV2(Sparkles, {
104
+ className: "h-4 w-4"
105
+ }, undefined, false, undefined, this),
106
+ status === "saving" ? "Publishing\u2026" : "Save to Studio"
107
+ ]
108
+ }, undefined, true, undefined, this),
109
+ status === "error" && error ? /* @__PURE__ */ jsxDEV2("p", {
110
+ className: "text-destructive text-xs",
111
+ children: error
112
+ }, undefined, false, undefined, this) : null,
113
+ status === "saved" ? /* @__PURE__ */ jsxDEV2("p", {
114
+ className: "text-xs text-emerald-400",
115
+ children: "Template sent to Studio."
116
+ }, undefined, false, undefined, this) : null
117
+ ]
118
+ }, undefined, true, undefined, this);
119
+ }
120
+
121
+ // src/TemplateShell.tsx
122
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
123
+ var TemplateShell = ({
124
+ title,
125
+ description,
126
+ sidebar,
127
+ actions,
128
+ showSaveAction = true,
129
+ saveProps,
130
+ children
131
+ }) => /* @__PURE__ */ jsxDEV3("div", {
132
+ className: "space-y-6",
133
+ children: [
134
+ /* @__PURE__ */ jsxDEV3("header", {
135
+ className: "border-border bg-card rounded-2xl border p-6 shadow-sm",
136
+ children: [
137
+ /* @__PURE__ */ jsxDEV3("div", {
138
+ className: "flex flex-wrap items-center justify-between gap-4",
139
+ children: [
140
+ /* @__PURE__ */ jsxDEV3("div", {
141
+ children: [
142
+ /* @__PURE__ */ jsxDEV3("p", {
143
+ className: "text-muted-foreground text-sm font-semibold tracking-wide uppercase",
144
+ children: "ContractSpec Templates"
145
+ }, undefined, false, undefined, this),
146
+ /* @__PURE__ */ jsxDEV3("h1", {
147
+ className: "text-3xl font-bold",
148
+ children: title
149
+ }, undefined, false, undefined, this),
150
+ description ? /* @__PURE__ */ jsxDEV3("p", {
151
+ className: "text-muted-foreground mt-2 max-w-2xl text-sm",
152
+ children: description
153
+ }, undefined, false, undefined, this) : null
154
+ ]
155
+ }, undefined, true, undefined, this),
156
+ /* @__PURE__ */ jsxDEV3("div", {
157
+ className: "flex flex-col items-end gap-2",
158
+ children: [
159
+ /* @__PURE__ */ jsxDEV3(LocalDataIndicator, {}, undefined, false, undefined, this),
160
+ showSaveAction ? /* @__PURE__ */ jsxDEV3(SaveToStudioButton, {
161
+ ...saveProps
162
+ }, undefined, false, undefined, this) : null
163
+ ]
164
+ }, undefined, true, undefined, this)
165
+ ]
166
+ }, undefined, true, undefined, this),
167
+ actions ? /* @__PURE__ */ jsxDEV3("div", {
168
+ className: "mt-4",
169
+ children: actions
170
+ }, undefined, false, undefined, this) : null
171
+ ]
172
+ }, undefined, true, undefined, this),
173
+ /* @__PURE__ */ jsxDEV3("div", {
174
+ className: sidebar ? "grid gap-6 lg:grid-cols-[minmax(0,1fr)_320px]" : "w-full",
175
+ children: [
176
+ /* @__PURE__ */ jsxDEV3("main", {
177
+ className: "space-y-4 p-2",
178
+ children
179
+ }, undefined, false, undefined, this),
180
+ sidebar ? /* @__PURE__ */ jsxDEV3("aside", {
181
+ className: "border-border bg-card rounded-2xl border p-4",
182
+ children: sidebar
183
+ }, undefined, false, undefined, this) : null
184
+ ]
185
+ }, undefined, true, undefined, this)
186
+ ]
187
+ }, undefined, true, undefined, this);
188
+ export {
189
+ TemplateShell
190
+ };