bsmnt 0.0.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 (98) hide show
  1. package/.changeset/2026-02-11-test-patch-bump.md +5 -0
  2. package/.changeset/README.md +10 -0
  3. package/.changeset/config.json +16 -0
  4. package/.cursor/rules/README.md +184 -0
  5. package/.cursor/rules/architecture.mdc +437 -0
  6. package/.cursor/rules/components.mdc +436 -0
  7. package/.cursor/rules/integrations.mdc +447 -0
  8. package/.cursor/rules/main.mdc +278 -0
  9. package/.cursor/rules/styling.mdc +433 -0
  10. package/.github/PULL_REQUEST_TEMPLATE.md +14 -0
  11. package/.github/workflows/.gitkeep +0 -0
  12. package/.github/workflows/ci.yml +37 -0
  13. package/.github/workflows/release.yml +54 -0
  14. package/.tldr/cache/call_graph.json +7 -0
  15. package/.tldr/languages.json +6 -0
  16. package/.tldr/status +1 -0
  17. package/.tldrignore +84 -0
  18. package/.vscode/extensions.json +20 -0
  19. package/.vscode/settings.json +98 -0
  20. package/CHANGELOG.md +13 -0
  21. package/CLAUDE.md +138 -0
  22. package/README.md +176 -0
  23. package/bin/index.js +262 -0
  24. package/biome.json +44 -0
  25. package/bun.lock +496 -0
  26. package/changelog/04-02-26.md +86 -0
  27. package/changelog/05-02-26.md +101 -0
  28. package/changelog/09-02-26.md +83 -0
  29. package/docs/fix-studio-hydration.md +46 -0
  30. package/docs/plans/2026-01-29-sanity-smart-merge-design.md +196 -0
  31. package/docs/plans/2026-01-29-sanity-smart-merge-implementation.md +695 -0
  32. package/docs/sanity-setup-steps.md +199 -0
  33. package/integrations/basehub/README.md +3 -0
  34. package/integrations/sanity/app/api/draft-mode/disable/route.ts +7 -0
  35. package/integrations/sanity/app/api/draft-mode/enable/route.ts +21 -0
  36. package/integrations/sanity/app/api/revalidate/route.ts +37 -0
  37. package/integrations/sanity/app/layout.tsx +111 -0
  38. package/integrations/sanity/app/sitemap.ts +80 -0
  39. package/integrations/sanity/app/studio/[[...tool]]/page.tsx +8 -0
  40. package/integrations/sanity/app/studio/layout.tsx +7 -0
  41. package/integrations/sanity/components/ui/sanity-image/index.tsx +37 -0
  42. package/integrations/sanity/lib/integrations/README.md +58 -0
  43. package/integrations/sanity/lib/integrations/check-integration.ts +62 -0
  44. package/integrations/sanity/lib/integrations/sanity/README.md +144 -0
  45. package/integrations/sanity/lib/integrations/sanity/client.ts +30 -0
  46. package/integrations/sanity/lib/integrations/sanity/components/disable-draft-mode.tsx +29 -0
  47. package/integrations/sanity/lib/integrations/sanity/components/rich-text.tsx +73 -0
  48. package/integrations/sanity/lib/integrations/sanity/env.ts +38 -0
  49. package/integrations/sanity/lib/integrations/sanity/live/index.tsx +34 -0
  50. package/integrations/sanity/lib/integrations/sanity/queries.ts +99 -0
  51. package/integrations/sanity/lib/integrations/sanity/sanity.cli.ts +20 -0
  52. package/integrations/sanity/lib/integrations/sanity/sanity.config.ts +94 -0
  53. package/integrations/sanity/lib/integrations/sanity/sanity.types.ts +337 -0
  54. package/integrations/sanity/lib/integrations/sanity/schema.json +1850 -0
  55. package/integrations/sanity/lib/integrations/sanity/schemas/article.ts +132 -0
  56. package/integrations/sanity/lib/integrations/sanity/schemas/example.ts +203 -0
  57. package/integrations/sanity/lib/integrations/sanity/schemas/index.ts +37 -0
  58. package/integrations/sanity/lib/integrations/sanity/schemas/link.ts +127 -0
  59. package/integrations/sanity/lib/integrations/sanity/schemas/metadata.ts +68 -0
  60. package/integrations/sanity/lib/integrations/sanity/schemas/navigation.ts +39 -0
  61. package/integrations/sanity/lib/integrations/sanity/schemas/page.ts +77 -0
  62. package/integrations/sanity/lib/integrations/sanity/schemas/richText.ts +59 -0
  63. package/integrations/sanity/lib/integrations/sanity/structure.ts +5 -0
  64. package/integrations/sanity/lib/integrations/sanity/utils/image.ts +11 -0
  65. package/integrations/sanity/lib/integrations/sanity/utils/link.ts +61 -0
  66. package/integrations/sanity/lib/scripts/copy-sanity-mcp.ts +23 -0
  67. package/integrations/sanity/lib/scripts/generate-page.ts +310 -0
  68. package/integrations/sanity/lib/utils/metadata.ts +190 -0
  69. package/layers/experiment/components/layout/header/index.tsx +58 -0
  70. package/layers/experiment/components/layout/navigation-menu.tsx +127 -0
  71. package/layers/experiment/lib/constants.ts +12 -0
  72. package/layers/webgl/app/page.tsx +10 -0
  73. package/layers/webgl/components/webgl/canvas/dynamic.tsx +34 -0
  74. package/layers/webgl/components/webgl/canvas/index.tsx +43 -0
  75. package/layers/webgl/components/webgl/components/scene/index.tsx +21 -0
  76. package/layers/webgpu/.gitkeep +0 -0
  77. package/package.json +44 -0
  78. package/plugins/README.md +21 -0
  79. package/plugins/no-anchor-element.grit +11 -0
  80. package/plugins/no-relative-parent-imports.grit +6 -0
  81. package/plugins/no-unnecessary-forwardref.grit +5 -0
  82. package/src/commands/add-integration.js +325 -0
  83. package/src/commands/create.js +415 -0
  84. package/src/commands/setup-sanity.js +426 -0
  85. package/src/commands/worktree.js +805 -0
  86. package/src/mergers/check-integration-merger.js +105 -0
  87. package/src/mergers/config.js +137 -0
  88. package/src/mergers/index.js +355 -0
  89. package/src/mergers/layout-merger.js +223 -0
  90. package/src/mergers/next-config-merger.js +63 -0
  91. package/src/mergers/sitemap-merger.js +121 -0
  92. package/tasks/prd-next-starter-dynamic-layers.md +184 -0
  93. package/tasks/prd.json +153 -0
  94. package/tasks/progress.txt +115 -0
  95. package/template-hooks/use-battery.ts +126 -0
  96. package/template-hooks/use-device-perf.ts +184 -0
  97. package/template-hooks/use-intersection-observer.ts +32 -0
  98. package/template-hooks/use-media.ts +33 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * ---------------------------------------------------------------------------------
3
+ * This file has been generated by Sanity TypeGen.
4
+ * Command: `sanity typegen generate`
5
+ *
6
+ * Any modifications made directly to this file will be overwritten the next time
7
+ * the TypeScript definitions are generated. Please make changes to the Sanity
8
+ * schema definitions and/or GROQ queries if you need to update these types.
9
+ *
10
+ * For more information on how to use Sanity TypeGen, visit the official documentation:
11
+ * https://www.sanity.io/docs/sanity-typegen
12
+ * ---------------------------------------------------------------------------------
13
+ */
14
+
15
+ // Source: schema.json
16
+ export type SanityImageAssetReference = {
17
+ _ref: string;
18
+ _type: "reference";
19
+ _weak?: boolean;
20
+ [internalGroqTypeReferenceTo]?: "sanity.imageAsset";
21
+ };
22
+
23
+ export type Navigation = {
24
+ _id: string;
25
+ _type: "navigation";
26
+ _createdAt: string;
27
+ _updatedAt: string;
28
+ _rev: string;
29
+ title?: string;
30
+ socials?: Array<{
31
+ logo?: {
32
+ asset?: SanityImageAssetReference;
33
+ media?: unknown;
34
+ hotspot?: SanityImageHotspot;
35
+ crop?: SanityImageCrop;
36
+ _type: "image";
37
+ };
38
+ socialMedia?: Link;
39
+ _type: "socialLink";
40
+ _key: string;
41
+ }>;
42
+ };
43
+
44
+ export type PageReference = {
45
+ _ref: string;
46
+ _type: "reference";
47
+ _weak?: boolean;
48
+ [internalGroqTypeReferenceTo]?: "page";
49
+ };
50
+
51
+ export type ArticleReference = {
52
+ _ref: string;
53
+ _type: "reference";
54
+ _weak?: boolean;
55
+ [internalGroqTypeReferenceTo]?: "article";
56
+ };
57
+
58
+ export type Link = {
59
+ _type: "link";
60
+ linkType?: "internal" | "external";
61
+ internalLink?: PageReference | ArticleReference;
62
+ externalUrl?: string;
63
+ text?: string;
64
+ openInNewTab?: boolean;
65
+ };
66
+
67
+ export type SanityImageCrop = {
68
+ _type: "sanity.imageCrop";
69
+ top?: number;
70
+ bottom?: number;
71
+ left?: number;
72
+ right?: number;
73
+ };
74
+
75
+ export type SanityImageHotspot = {
76
+ _type: "sanity.imageHotspot";
77
+ x?: number;
78
+ y?: number;
79
+ height?: number;
80
+ width?: number;
81
+ };
82
+
83
+ export type Example = {
84
+ _id: string;
85
+ _type: "example";
86
+ _createdAt: string;
87
+ _updatedAt: string;
88
+ _rev: string;
89
+ title?: string;
90
+ slug?: Slug;
91
+ hero?: {
92
+ headline?: string;
93
+ subheadline?: string;
94
+ image?: {
95
+ asset?: SanityImageAssetReference;
96
+ media?: unknown;
97
+ hotspot?: SanityImageHotspot;
98
+ crop?: SanityImageCrop;
99
+ alt?: string;
100
+ _type: "image";
101
+ };
102
+ showCTA?: boolean;
103
+ ctaText?: string;
104
+ ctaLink?: string;
105
+ };
106
+ content?: RichText;
107
+ features?: Array<{
108
+ title?: string;
109
+ description?: string;
110
+ icon?: {
111
+ asset?: SanityImageAssetReference;
112
+ media?: unknown;
113
+ hotspot?: SanityImageHotspot;
114
+ crop?: SanityImageCrop;
115
+ _type: "image";
116
+ };
117
+ _key: string;
118
+ }>;
119
+ tags?: string[];
120
+ metadata?: Metadata;
121
+ publishedAt?: string;
122
+ showInNavigation?: boolean;
123
+ contactEmail?: string;
124
+ };
125
+
126
+ export type Metadata = {
127
+ _type: "metadata";
128
+ title?: string;
129
+ description?: string;
130
+ keywords?: string[];
131
+ image?: {
132
+ asset?: SanityImageAssetReference;
133
+ media?: unknown;
134
+ hotspot?: SanityImageHotspot;
135
+ crop?: SanityImageCrop;
136
+ alt?: string;
137
+ _type: "image";
138
+ };
139
+ noIndex?: boolean;
140
+ };
141
+
142
+ export type RichText = Array<
143
+ | {
144
+ children?: Array<{
145
+ marks?: string[];
146
+ text?: string;
147
+ _type: "span";
148
+ _key: string;
149
+ }>;
150
+ style?: "normal" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "blockquote";
151
+ listItem?: "bullet" | "number";
152
+ markDefs?: Array<
153
+ {
154
+ _key: string;
155
+ } & Link
156
+ >;
157
+ level?: number;
158
+ _type: "block";
159
+ _key: string;
160
+ }
161
+ | {
162
+ asset?: SanityImageAssetReference;
163
+ media?: unknown;
164
+ hotspot?: SanityImageHotspot;
165
+ crop?: SanityImageCrop;
166
+ alt?: string;
167
+ caption?: string;
168
+ _type: "image";
169
+ _key: string;
170
+ }
171
+ >;
172
+
173
+ export type Slug = {
174
+ _type: "slug";
175
+ current?: string;
176
+ source?: string;
177
+ };
178
+
179
+ export type Article = {
180
+ _id: string;
181
+ _type: "article";
182
+ _createdAt: string;
183
+ _updatedAt: string;
184
+ _rev: string;
185
+ slug?: Slug;
186
+ author?: string;
187
+ publishedAt?: string;
188
+ metadata?: Metadata;
189
+ title?: string;
190
+ excerpt?: string;
191
+ featuredImage?: {
192
+ asset?: SanityImageAssetReference;
193
+ media?: unknown;
194
+ hotspot?: SanityImageHotspot;
195
+ crop?: SanityImageCrop;
196
+ alt?: string;
197
+ _type: "image";
198
+ };
199
+ content?: RichText;
200
+ categories?: string[];
201
+ tags?: string[];
202
+ };
203
+
204
+ export type Page = {
205
+ _id: string;
206
+ _type: "page";
207
+ _createdAt: string;
208
+ _updatedAt: string;
209
+ _rev: string;
210
+ slug?: Slug;
211
+ publishedAt?: string;
212
+ metadata?: Metadata;
213
+ title?: string;
214
+ content?: RichText;
215
+ link?: Link;
216
+ };
217
+
218
+ export type SanityImagePaletteSwatch = {
219
+ _type: "sanity.imagePaletteSwatch";
220
+ background?: string;
221
+ foreground?: string;
222
+ population?: number;
223
+ title?: string;
224
+ };
225
+
226
+ export type SanityImagePalette = {
227
+ _type: "sanity.imagePalette";
228
+ darkMuted?: SanityImagePaletteSwatch;
229
+ lightVibrant?: SanityImagePaletteSwatch;
230
+ darkVibrant?: SanityImagePaletteSwatch;
231
+ vibrant?: SanityImagePaletteSwatch;
232
+ dominant?: SanityImagePaletteSwatch;
233
+ lightMuted?: SanityImagePaletteSwatch;
234
+ muted?: SanityImagePaletteSwatch;
235
+ };
236
+
237
+ export type SanityImageDimensions = {
238
+ _type: "sanity.imageDimensions";
239
+ height?: number;
240
+ width?: number;
241
+ aspectRatio?: number;
242
+ };
243
+
244
+ export type SanityImageMetadata = {
245
+ _type: "sanity.imageMetadata";
246
+ location?: Geopoint;
247
+ dimensions?: SanityImageDimensions;
248
+ palette?: SanityImagePalette;
249
+ lqip?: string;
250
+ blurHash?: string;
251
+ hasAlpha?: boolean;
252
+ isOpaque?: boolean;
253
+ };
254
+
255
+ export type SanityFileAsset = {
256
+ _id: string;
257
+ _type: "sanity.fileAsset";
258
+ _createdAt: string;
259
+ _updatedAt: string;
260
+ _rev: string;
261
+ originalFilename?: string;
262
+ label?: string;
263
+ title?: string;
264
+ description?: string;
265
+ altText?: string;
266
+ sha1hash?: string;
267
+ extension?: string;
268
+ mimeType?: string;
269
+ size?: number;
270
+ assetId?: string;
271
+ uploadId?: string;
272
+ path?: string;
273
+ url?: string;
274
+ source?: SanityAssetSourceData;
275
+ };
276
+
277
+ export type SanityAssetSourceData = {
278
+ _type: "sanity.assetSourceData";
279
+ name?: string;
280
+ id?: string;
281
+ url?: string;
282
+ };
283
+
284
+ export type SanityImageAsset = {
285
+ _id: string;
286
+ _type: "sanity.imageAsset";
287
+ _createdAt: string;
288
+ _updatedAt: string;
289
+ _rev: string;
290
+ originalFilename?: string;
291
+ label?: string;
292
+ title?: string;
293
+ description?: string;
294
+ altText?: string;
295
+ sha1hash?: string;
296
+ extension?: string;
297
+ mimeType?: string;
298
+ size?: number;
299
+ assetId?: string;
300
+ uploadId?: string;
301
+ path?: string;
302
+ url?: string;
303
+ metadata?: SanityImageMetadata;
304
+ source?: SanityAssetSourceData;
305
+ };
306
+
307
+ export type Geopoint = {
308
+ _type: "geopoint";
309
+ lat?: number;
310
+ lng?: number;
311
+ alt?: number;
312
+ };
313
+
314
+ export type AllSanitySchemaTypes =
315
+ | SanityImageAssetReference
316
+ | Navigation
317
+ | PageReference
318
+ | ArticleReference
319
+ | Link
320
+ | SanityImageCrop
321
+ | SanityImageHotspot
322
+ | Example
323
+ | Metadata
324
+ | RichText
325
+ | Slug
326
+ | Article
327
+ | Page
328
+ | SanityImagePaletteSwatch
329
+ | SanityImagePalette
330
+ | SanityImageDimensions
331
+ | SanityImageMetadata
332
+ | SanityFileAsset
333
+ | SanityAssetSourceData
334
+ | SanityImageAsset
335
+ | Geopoint;
336
+
337
+ export declare const internalGroqTypeReferenceTo: unique symbol;