@guard-rail/core 0.1.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 (111) hide show
  1. package/README.md +339 -0
  2. package/dist/adapters/supabase/auth.d.ts +9 -0
  3. package/dist/adapters/supabase/auth.js +57 -0
  4. package/dist/adapters/supabase/auth.js.map +1 -0
  5. package/dist/adapters/supabase/client.d.ts +28 -0
  6. package/dist/adapters/supabase/client.js +44 -0
  7. package/dist/adapters/supabase/client.js.map +1 -0
  8. package/dist/adapters/supabase/confirm.d.ts +19 -0
  9. package/dist/adapters/supabase/confirm.js +27 -0
  10. package/dist/adapters/supabase/confirm.js.map +1 -0
  11. package/dist/adapters/supabase/db.d.ts +9 -0
  12. package/dist/adapters/supabase/db.js +49 -0
  13. package/dist/adapters/supabase/db.js.map +1 -0
  14. package/dist/adapters/supabase/index.d.ts +25 -0
  15. package/dist/adapters/supabase/index.js +29 -0
  16. package/dist/adapters/supabase/index.js.map +1 -0
  17. package/dist/adapters/supabase/members.d.ts +9 -0
  18. package/dist/adapters/supabase/members.js +73 -0
  19. package/dist/adapters/supabase/members.js.map +1 -0
  20. package/dist/adapters/supabase/repeaters.d.ts +9 -0
  21. package/dist/adapters/supabase/repeaters.js +73 -0
  22. package/dist/adapters/supabase/repeaters.js.map +1 -0
  23. package/dist/adapters/supabase/storage.d.ts +18 -0
  24. package/dist/adapters/supabase/storage.js +93 -0
  25. package/dist/adapters/supabase/storage.js.map +1 -0
  26. package/dist/core/adapter-types.d.ts +212 -0
  27. package/dist/core/adapter-types.js +1 -0
  28. package/dist/core/adapter-types.js.map +1 -0
  29. package/dist/core/bailout.d.ts +9 -0
  30. package/dist/core/bailout.js +14 -0
  31. package/dist/core/bailout.js.map +1 -0
  32. package/dist/core/config.d.ts +27 -0
  33. package/dist/core/config.js +46 -0
  34. package/dist/core/config.js.map +1 -0
  35. package/dist/core/defs.d.ts +22 -0
  36. package/dist/core/defs.js +16 -0
  37. package/dist/core/defs.js.map +1 -0
  38. package/dist/core/types.d.ts +136 -0
  39. package/dist/core/types.js +1 -0
  40. package/dist/core/types.js.map +1 -0
  41. package/dist/index.d.ts +13 -0
  42. package/dist/index.js +43 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/react/Admin.d.ts +8 -0
  45. package/dist/react/Admin.js +116 -0
  46. package/dist/react/Admin.js.map +1 -0
  47. package/dist/react/GRail/client.d.ts +11 -0
  48. package/dist/react/GRail/client.js +242 -0
  49. package/dist/react/GRail/client.js.map +1 -0
  50. package/dist/react/GRail/index.d.ts +12 -0
  51. package/dist/react/GRail/index.js +19 -0
  52. package/dist/react/GRail/index.js.map +1 -0
  53. package/dist/react/GRail/render.d.ts +23 -0
  54. package/dist/react/GRail/render.js +67 -0
  55. package/dist/react/GRail/render.js.map +1 -0
  56. package/dist/react/Icons.d.ts +13 -0
  57. package/dist/react/Icons.js +68 -0
  58. package/dist/react/Icons.js.map +1 -0
  59. package/dist/react/MediaPicker.d.ts +14 -0
  60. package/dist/react/MediaPicker.js +172 -0
  61. package/dist/react/MediaPicker.js.map +1 -0
  62. package/dist/react/Provider.d.ts +11 -0
  63. package/dist/react/Provider.js +26 -0
  64. package/dist/react/Provider.js.map +1 -0
  65. package/dist/react/Repeater/client.d.ts +16 -0
  66. package/dist/react/Repeater/client.js +148 -0
  67. package/dist/react/Repeater/client.js.map +1 -0
  68. package/dist/react/Repeater/index.d.ts +35 -0
  69. package/dist/react/Repeater/index.js +22 -0
  70. package/dist/react/Repeater/index.js.map +1 -0
  71. package/dist/react/Syncer.d.ts +17 -0
  72. package/dist/react/Syncer.js +23 -0
  73. package/dist/react/Syncer.js.map +1 -0
  74. package/dist/react/Team.d.ts +7 -0
  75. package/dist/react/Team.js +190 -0
  76. package/dist/react/Team.js.map +1 -0
  77. package/dist/react/resizeImage.d.ts +25 -0
  78. package/dist/react/resizeImage.js +52 -0
  79. package/dist/react/resizeImage.js.map +1 -0
  80. package/dist/react/styles.d.ts +421 -0
  81. package/dist/react/styles.js +402 -0
  82. package/dist/react/styles.js.map +1 -0
  83. package/dist/react/useAnchorRect.d.ts +17 -0
  84. package/dist/react/useAnchorRect.js +32 -0
  85. package/dist/react/useAnchorRect.js.map +1 -0
  86. package/dist/server/actions.d.ts +41 -0
  87. package/dist/server/actions.js +214 -0
  88. package/dist/server/actions.js.map +1 -0
  89. package/dist/server/data.d.ts +10 -0
  90. package/dist/server/data.js +24 -0
  91. package/dist/server/data.js.map +1 -0
  92. package/dist/server/fieldData.d.ts +26 -0
  93. package/dist/server/fieldData.js +9 -0
  94. package/dist/server/fieldData.js.map +1 -0
  95. package/dist/server/loader.d.ts +6 -0
  96. package/dist/server/loader.js +53 -0
  97. package/dist/server/loader.js.map +1 -0
  98. package/dist/server/repeaterActions.d.ts +20 -0
  99. package/dist/server/repeaterActions.js +72 -0
  100. package/dist/server/repeaterActions.js.map +1 -0
  101. package/dist/server/repeaterData.d.ts +18 -0
  102. package/dist/server/repeaterData.js +27 -0
  103. package/dist/server/repeaterData.js.map +1 -0
  104. package/dist/server/session.d.ts +14 -0
  105. package/dist/server/session.js +37 -0
  106. package/dist/server/session.js.map +1 -0
  107. package/dist/server/wrapper.d.ts +12 -0
  108. package/dist/server/wrapper.js +42 -0
  109. package/dist/server/wrapper.js.map +1 -0
  110. package/package.json +58 -0
  111. package/supabase/migrations/20260911000000_guardrail_init.sql +288 -0
@@ -0,0 +1,421 @@
1
+ /**
2
+ * Guardrail's own chrome is styled with inline styles on purpose. Utility
3
+ * classes would make the package depend on the consumer having Tailwind *and*
4
+ * adding node_modules/guardrail to their content globs — it would render
5
+ * unstyled on a clean install. Developer-authored content is never touched.
6
+ */
7
+ declare const S: {
8
+ banner: {
9
+ position: "fixed";
10
+ bottom: number;
11
+ left: number;
12
+ width: string;
13
+ background: string;
14
+ color: "#000";
15
+ padding: string;
16
+ zIndex: number;
17
+ borderTop: string;
18
+ fontFamily: "system-ui, -apple-system, sans-serif";
19
+ };
20
+ bannerForm: {
21
+ display: "flex";
22
+ gap: number;
23
+ justifyContent: "center";
24
+ alignItems: "center";
25
+ flexWrap: "wrap";
26
+ };
27
+ brand: {
28
+ fontWeight: number;
29
+ letterSpacing: string;
30
+ fontSize: number;
31
+ textTransform: "uppercase";
32
+ };
33
+ error: {
34
+ color: "#dc2626";
35
+ fontSize: number;
36
+ fontWeight: number;
37
+ };
38
+ input: {
39
+ border: string;
40
+ borderRadius: number;
41
+ padding: string;
42
+ fontSize: number;
43
+ color: "#000";
44
+ background: string;
45
+ outline: string;
46
+ };
47
+ primaryBtn: {
48
+ background: string;
49
+ color: "#fff";
50
+ padding: string;
51
+ borderRadius: number;
52
+ fontSize: number;
53
+ fontWeight: number;
54
+ border: string;
55
+ cursor: "pointer";
56
+ };
57
+ toolbar: {
58
+ position: "fixed";
59
+ bottom: number;
60
+ left: string;
61
+ transform: "translateX(-50%)";
62
+ zIndex: number;
63
+ background: string;
64
+ backdropFilter: "blur(8px)";
65
+ color: "#fff";
66
+ padding: string;
67
+ borderRadius: number;
68
+ boxShadow: "0 20px 40px rgba(0,0,0,0.35)";
69
+ display: "flex";
70
+ alignItems: "center";
71
+ gap: number;
72
+ border: string;
73
+ fontFamily: "system-ui, -apple-system, sans-serif";
74
+ };
75
+ dot: {
76
+ display: "inline-block";
77
+ width: number;
78
+ height: number;
79
+ borderRadius: string;
80
+ background: string;
81
+ };
82
+ toolbarLabel: {
83
+ fontSize: number;
84
+ fontWeight: number;
85
+ textTransform: "uppercase";
86
+ letterSpacing: string;
87
+ color: "#dbeafe";
88
+ };
89
+ divider: {
90
+ width: number;
91
+ height: number;
92
+ background: string;
93
+ };
94
+ linkBtn: {
95
+ fontSize: number;
96
+ fontWeight: number;
97
+ textTransform: "uppercase";
98
+ letterSpacing: string;
99
+ color: "#9ca3af";
100
+ background: string;
101
+ border: string;
102
+ cursor: "pointer";
103
+ };
104
+ popover: {
105
+ position: "fixed";
106
+ bottom: number;
107
+ left: string;
108
+ transform: "translateX(-50%)";
109
+ zIndex: number;
110
+ background: string;
111
+ padding: number;
112
+ borderRadius: number;
113
+ boxShadow: "0 20px 40px rgba(0,0,0,0.25)";
114
+ border: string;
115
+ minWidth: number;
116
+ cursor: "default";
117
+ fontFamily: "system-ui, -apple-system, sans-serif";
118
+ };
119
+ label: {
120
+ display: "block";
121
+ fontSize: number;
122
+ fontWeight: number;
123
+ color: "#9ca3af";
124
+ marginBottom: number;
125
+ textTransform: "uppercase";
126
+ };
127
+ field: {
128
+ border: string;
129
+ borderRadius: number;
130
+ padding: string;
131
+ fontSize: number;
132
+ color: "#000";
133
+ background: string;
134
+ width: string;
135
+ marginBottom: number;
136
+ boxSizing: "border-box";
137
+ };
138
+ row: {
139
+ display: "flex";
140
+ gap: number;
141
+ marginTop: number;
142
+ paddingTop: number;
143
+ borderTop: string;
144
+ };
145
+ cancelBtn: {
146
+ background: string;
147
+ color: "#4b5563";
148
+ padding: string;
149
+ borderRadius: number;
150
+ fontSize: number;
151
+ border: string;
152
+ cursor: "pointer";
153
+ };
154
+ /** Anchored to the element's rect at runtime; top/left are set inline. */
155
+ anchoredBar: {
156
+ position: "fixed";
157
+ zIndex: number;
158
+ display: "flex";
159
+ alignItems: "center";
160
+ gap: number;
161
+ background: string;
162
+ backdropFilter: "blur(8px)";
163
+ padding: number;
164
+ borderRadius: number;
165
+ boxShadow: "0 8px 24px rgba(0,0,0,0.3)";
166
+ border: string;
167
+ fontFamily: "system-ui, -apple-system, sans-serif";
168
+ };
169
+ anchoredPanel: {
170
+ position: "fixed";
171
+ zIndex: number;
172
+ maxHeight: string;
173
+ overflowY: "auto";
174
+ background: string;
175
+ padding: number;
176
+ borderRadius: number;
177
+ boxShadow: "0 12px 32px rgba(0,0,0,0.25)";
178
+ border: string;
179
+ minWidth: number;
180
+ maxWidth: string;
181
+ cursor: "default";
182
+ fontFamily: "system-ui, -apple-system, sans-serif";
183
+ };
184
+ iconBtn: {
185
+ display: "inline-flex";
186
+ alignItems: "center";
187
+ justifyContent: "center";
188
+ width: number;
189
+ height: number;
190
+ borderRadius: number;
191
+ border: string;
192
+ background: string;
193
+ color: "#e5e7eb";
194
+ cursor: "pointer";
195
+ padding: number;
196
+ };
197
+ iconBtnPrimary: {
198
+ display: "inline-flex";
199
+ alignItems: "center";
200
+ justifyContent: "center";
201
+ width: number;
202
+ height: number;
203
+ borderRadius: number;
204
+ border: string;
205
+ background: string;
206
+ color: "#fff";
207
+ cursor: "pointer";
208
+ padding: number;
209
+ };
210
+ scrim: {
211
+ position: "fixed";
212
+ inset: number;
213
+ background: string;
214
+ zIndex: number;
215
+ };
216
+ drawer: {
217
+ position: "fixed";
218
+ top: number;
219
+ right: number;
220
+ height: string;
221
+ width: string;
222
+ background: string;
223
+ color: "#111827";
224
+ zIndex: number;
225
+ boxShadow: "-12px 0 32px rgba(0,0,0,0.2)";
226
+ display: "flex";
227
+ flexDirection: "column";
228
+ fontFamily: "system-ui, -apple-system, sans-serif";
229
+ };
230
+ drawerHead: {
231
+ display: "flex";
232
+ alignItems: "center";
233
+ justifyContent: "space-between";
234
+ padding: string;
235
+ borderBottom: string;
236
+ };
237
+ drawerTitle: {
238
+ fontSize: number;
239
+ fontWeight: number;
240
+ margin: number;
241
+ };
242
+ drawerBody: {
243
+ padding: number;
244
+ overflowY: "auto";
245
+ flex: number;
246
+ };
247
+ memberRow: {
248
+ display: "flex";
249
+ alignItems: "center";
250
+ gap: number;
251
+ padding: string;
252
+ borderBottom: string;
253
+ };
254
+ memberEmail: {
255
+ flex: number;
256
+ fontSize: number;
257
+ overflow: "hidden";
258
+ textOverflow: "ellipsis";
259
+ whiteSpace: "nowrap";
260
+ };
261
+ select: {
262
+ border: string;
263
+ borderRadius: number;
264
+ padding: string;
265
+ fontSize: number;
266
+ background: string;
267
+ color: "#111827";
268
+ };
269
+ badge: {
270
+ fontSize: number;
271
+ fontWeight: number;
272
+ textTransform: "uppercase";
273
+ letterSpacing: string;
274
+ padding: string;
275
+ borderRadius: number;
276
+ background: string;
277
+ color: "#92400e";
278
+ };
279
+ sectionLabel: {
280
+ fontSize: number;
281
+ fontWeight: number;
282
+ textTransform: "uppercase";
283
+ letterSpacing: string;
284
+ color: "#9ca3af";
285
+ margin: string;
286
+ };
287
+ pickerScrim: {
288
+ position: "fixed";
289
+ inset: number;
290
+ background: string;
291
+ zIndex: number;
292
+ };
293
+ picker: {
294
+ position: "fixed";
295
+ top: string;
296
+ left: string;
297
+ transform: "translate(-50%, -50%)";
298
+ width: string;
299
+ maxHeight: string;
300
+ background: string;
301
+ color: "#111827";
302
+ borderRadius: number;
303
+ zIndex: number;
304
+ boxShadow: "0 24px 64px rgba(0,0,0,0.35)";
305
+ display: "flex";
306
+ flexDirection: "column";
307
+ overflow: "hidden";
308
+ fontFamily: "system-ui, -apple-system, sans-serif";
309
+ };
310
+ pickerGrid: {
311
+ display: "grid";
312
+ gridTemplateColumns: string;
313
+ gap: number;
314
+ };
315
+ pickerTile: {
316
+ position: "relative";
317
+ aspectRatio: "1";
318
+ borderRadius: number;
319
+ overflow: "hidden";
320
+ border: string;
321
+ background: string;
322
+ cursor: "pointer";
323
+ padding: number;
324
+ };
325
+ pickerTileActive: {
326
+ borderColor: "#2563eb";
327
+ };
328
+ pickerThumb: {
329
+ width: string;
330
+ height: string;
331
+ objectFit: "cover";
332
+ display: "block";
333
+ };
334
+ dropzone: {
335
+ border: string;
336
+ borderRadius: number;
337
+ padding: number;
338
+ textAlign: "center";
339
+ fontSize: number;
340
+ color: "#6b7280";
341
+ marginBottom: number;
342
+ cursor: "pointer";
343
+ };
344
+ dropzoneActive: {
345
+ borderColor: "#2563eb";
346
+ background: string;
347
+ color: "#1d4ed8";
348
+ };
349
+ previewThumb: {
350
+ width: string;
351
+ maxWidth: number;
352
+ height: string;
353
+ maxHeight: number;
354
+ objectFit: "contain";
355
+ background: string;
356
+ borderRadius: number;
357
+ display: "block";
358
+ marginBottom: number;
359
+ };
360
+ secondaryBtn: {
361
+ background: string;
362
+ color: "#111827";
363
+ padding: string;
364
+ borderRadius: number;
365
+ fontSize: number;
366
+ fontWeight: number;
367
+ border: string;
368
+ cursor: "pointer";
369
+ width: string;
370
+ marginBottom: number;
371
+ };
372
+ repeaterItem: {
373
+ position: "relative";
374
+ outline: string;
375
+ outlineOffset: number;
376
+ };
377
+ repeaterToolbar: {
378
+ position: "absolute";
379
+ top: number;
380
+ right: number;
381
+ zIndex: number;
382
+ display: "flex";
383
+ gap: number;
384
+ background: string;
385
+ backdropFilter: "blur(6px)";
386
+ padding: number;
387
+ borderRadius: number;
388
+ boxShadow: "0 4px 12px rgba(0,0,0,0.25)";
389
+ };
390
+ repeaterAddRow: {
391
+ display: "flex";
392
+ gap: number;
393
+ alignItems: "center";
394
+ marginTop: number;
395
+ fontFamily: "system-ui, -apple-system, sans-serif";
396
+ };
397
+ repeaterAddBtn: {
398
+ display: "inline-flex";
399
+ alignItems: "center";
400
+ gap: number;
401
+ padding: string;
402
+ borderRadius: number;
403
+ border: string;
404
+ background: string;
405
+ color: "#2563eb";
406
+ fontSize: number;
407
+ fontWeight: number;
408
+ cursor: "pointer";
409
+ };
410
+ repeaterSlugInput: {
411
+ border: string;
412
+ borderRadius: number;
413
+ padding: string;
414
+ fontSize: number;
415
+ color: "#000";
416
+ background: string;
417
+ minWidth: number;
418
+ };
419
+ };
420
+
421
+ export { S };