@mission-studio/puck 1.0.3 → 1.0.15

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.
@@ -0,0 +1,67 @@
1
+ // hooks/useGtmEvent.ts
2
+ function useGtmEvent() {
3
+ return (eventName, data) => {
4
+ if (typeof window === "undefined") return;
5
+ if (typeof window.gtag === "function") {
6
+ window.gtag("event", eventName, data || {});
7
+ }
8
+ };
9
+ }
10
+
11
+ // hooks/useUtmParams.ts
12
+ import { useEffect, useState } from "react";
13
+ function useUtmParams() {
14
+ const [utmParams, setUtmParams] = useState({});
15
+ useEffect(() => {
16
+ if (typeof window === "undefined") return;
17
+ const urlParams = new URLSearchParams(window.location.search);
18
+ const source = urlParams.get("utm_source");
19
+ const medium = urlParams.get("utm_medium");
20
+ const campaign = urlParams.get("utm_campaign");
21
+ const content = urlParams.get("utm_content");
22
+ const term = urlParams.get("utm_term");
23
+ const params = {};
24
+ if (source) {
25
+ params.source = source;
26
+ sessionStorage.setItem("utm_source", source);
27
+ } else {
28
+ const stored = sessionStorage.getItem("utm_source");
29
+ if (stored) params.source = stored;
30
+ }
31
+ if (medium) {
32
+ params.medium = medium;
33
+ sessionStorage.setItem("utm_medium", medium);
34
+ } else {
35
+ const stored = sessionStorage.getItem("utm_medium");
36
+ if (stored) params.medium = stored;
37
+ }
38
+ if (campaign) {
39
+ params.campaign = campaign;
40
+ sessionStorage.setItem("utm_campaign", campaign);
41
+ } else {
42
+ const stored = sessionStorage.getItem("utm_campaign");
43
+ if (stored) params.campaign = stored;
44
+ }
45
+ if (content) {
46
+ params.content = content;
47
+ sessionStorage.setItem("utm_content", content);
48
+ } else {
49
+ const stored = sessionStorage.getItem("utm_content");
50
+ if (stored) params.content = stored;
51
+ }
52
+ if (term) {
53
+ params.term = term;
54
+ sessionStorage.setItem("utm_term", term);
55
+ } else {
56
+ const stored = sessionStorage.getItem("utm_term");
57
+ if (stored) params.term = stored;
58
+ }
59
+ setUtmParams(params);
60
+ }, []);
61
+ return utmParams;
62
+ }
63
+
64
+ export {
65
+ useGtmEvent,
66
+ useUtmParams
67
+ };
@@ -145,75 +145,6 @@ var getShadowCSS = (value) => {
145
145
  return preset?.css ?? "none";
146
146
  };
147
147
 
148
- // design-system/borders.ts
149
- var borderRadiusScale = [
150
- { label: "None", value: 0 },
151
- { label: "XS", value: 2 },
152
- { label: "SM", value: 4 },
153
- { label: "MD", value: 6 },
154
- { label: "LG", value: 8 },
155
- { label: "XL", value: 12 },
156
- { label: "2XL", value: 16 },
157
- { label: "3XL", value: 24 }
158
- ];
159
- var getClosestBorderRadiusValue = (value) => {
160
- return borderRadiusScale.reduce(
161
- (prev, curr) => Math.abs(curr.value - value) < Math.abs(prev.value - value) ? curr : prev
162
- ).value;
163
- };
164
- var getBorderRadiusCSS = (value) => {
165
- return `${value}px`;
166
- };
167
-
168
- // design-system/spacing.ts
169
- var spacingScale = [
170
- { label: "None", value: 0 },
171
- { label: "2XS", value: 4 },
172
- { label: "XS", value: 8 },
173
- { label: "SM", value: 12 },
174
- { label: "MD", value: 16 },
175
- { label: "LG", value: 24 },
176
- { label: "XL", value: 32 },
177
- { label: "2XL", value: 48 },
178
- { label: "3XL", value: 64 },
179
- { label: "4XL", value: 96 }
180
- ];
181
- var getClosestSpacingValue = (value) => {
182
- return spacingScale.reduce(
183
- (prev, curr) => Math.abs(curr.value - value) < Math.abs(prev.value - value) ? curr : prev
184
- ).value;
185
- };
186
-
187
- // design-system/typography.ts
188
- var fontFamilies = [
189
- { label: "System", value: "system-ui, sans-serif" },
190
- { label: "Sans", value: "ui-sans-serif, system-ui, sans-serif" },
191
- { label: "Serif", value: "ui-serif, Georgia, serif" },
192
- { label: "Mono", value: "ui-monospace, monospace" }
193
- ];
194
- var fontSizes = [
195
- { label: "XS", value: "xs", css: "0.75rem" },
196
- { label: "SM", value: "sm", css: "0.875rem" },
197
- { label: "Base", value: "base", css: "1rem" },
198
- { label: "LG", value: "lg", css: "1.125rem" },
199
- { label: "XL", value: "xl", css: "1.25rem" },
200
- { label: "2XL", value: "2xl", css: "1.5rem" },
201
- { label: "3XL", value: "3xl", css: "1.875rem" },
202
- { label: "4XL", value: "4xl", css: "2.25rem" },
203
- { label: "5XL", value: "5xl", css: "3rem" }
204
- ];
205
- var fontWeights = [
206
- { label: "Light", value: 300 },
207
- { label: "Normal", value: 400 },
208
- { label: "Medium", value: 500 },
209
- { label: "Semibold", value: 600 },
210
- { label: "Bold", value: 700 }
211
- ];
212
- var getFontSizeCSS = (value) => {
213
- const preset = fontSizes.find((p) => p.value === value);
214
- return preset?.css ?? "1rem";
215
- };
216
-
217
148
  // utils/index.ts
218
149
  import { twMerge } from "tailwind-merge";
219
150
  import { clsx } from "clsx";
@@ -249,14 +180,5 @@ export {
249
180
  normalizeHex,
250
181
  cn,
251
182
  shadowPresets,
252
- getShadowCSS,
253
- borderRadiusScale,
254
- getClosestBorderRadiusValue,
255
- getBorderRadiusCSS,
256
- spacingScale,
257
- getClosestSpacingValue,
258
- fontFamilies,
259
- fontSizes,
260
- fontWeights,
261
- getFontSizeCSS
183
+ getShadowCSS
262
184
  };