@leitware/dockets 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 (135) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +18 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/add.d.ts +3 -0
  6. package/dist/commands/add.d.ts.map +1 -0
  7. package/dist/commands/add.js +86 -0
  8. package/dist/commands/add.js.map +1 -0
  9. package/dist/commands/list.d.ts +3 -0
  10. package/dist/commands/list.d.ts.map +1 -0
  11. package/dist/commands/list.js +36 -0
  12. package/dist/commands/list.js.map +1 -0
  13. package/dist/registry.d.ts +18 -0
  14. package/dist/registry.d.ts.map +1 -0
  15. package/dist/registry.js +712 -0
  16. package/dist/registry.js.map +1 -0
  17. package/package.json +40 -0
  18. package/templates/accordion.tsx +77 -0
  19. package/templates/alert-dialog.tsx +66 -0
  20. package/templates/alert.tsx +41 -0
  21. package/templates/aspect-ratio.tsx +15 -0
  22. package/templates/avatar.tsx +27 -0
  23. package/templates/badge.tsx +1 -0
  24. package/templates/block-loader.tsx +1 -0
  25. package/templates/breadcrumb.tsx +31 -0
  26. package/templates/button.tsx +1 -0
  27. package/templates/calendar.tsx +45 -0
  28. package/templates/card.tsx +35 -0
  29. package/templates/carousel.tsx +39 -0
  30. package/templates/checkbox.tsx +50 -0
  31. package/templates/code-block.tsx +1 -0
  32. package/templates/collapsible.tsx +35 -0
  33. package/templates/combobox.tsx +154 -0
  34. package/templates/command.tsx +50 -0
  35. package/templates/contact-footer.tsx +193 -0
  36. package/templates/context-menu.tsx +16 -0
  37. package/templates/dialog.tsx +67 -0
  38. package/templates/drawer.tsx +12 -0
  39. package/templates/dropdown-menu.tsx +95 -0
  40. package/templates/form-input.tsx +64 -0
  41. package/templates/form.tsx +10 -0
  42. package/templates/hover-card.tsx +5 -0
  43. package/templates/input-otp.tsx +6 -0
  44. package/templates/label.tsx +1 -0
  45. package/templates/layout-primitives.tsx +11 -0
  46. package/templates/layouts.tsx +346 -0
  47. package/templates/lib/utils.ts +49 -0
  48. package/templates/list-item.tsx +1 -0
  49. package/templates/list-items.tsx +41 -0
  50. package/templates/list.tsx +89 -0
  51. package/templates/logo.tsx +12 -0
  52. package/templates/marketing-footer.tsx +33 -0
  53. package/templates/marketing-header.tsx +46 -0
  54. package/templates/menubar.tsx +16 -0
  55. package/templates/navigation-menu.tsx +11 -0
  56. package/templates/pagination.tsx +86 -0
  57. package/templates/popover.tsx +8 -0
  58. package/templates/pricing-receipt.tsx +71 -0
  59. package/templates/pricing-tabs.tsx +60 -0
  60. package/templates/progress.tsx +29 -0
  61. package/templates/radio-group.tsx +58 -0
  62. package/templates/receipt-card.tsx +1 -0
  63. package/templates/receipt.tsx +269 -0
  64. package/templates/resizable.tsx +1 -0
  65. package/templates/scroll-area.tsx +1 -0
  66. package/templates/select.tsx +110 -0
  67. package/templates/separator.tsx +1 -0
  68. package/templates/sheet.tsx +12 -0
  69. package/templates/sidebar.tsx +15 -0
  70. package/templates/simple-footer.tsx +43 -0
  71. package/templates/simple-header.tsx +77 -0
  72. package/templates/skeleton.tsx +33 -0
  73. package/templates/slider.tsx +55 -0
  74. package/templates/styles/dockets.css +104 -0
  75. package/templates/switch.tsx +49 -0
  76. package/templates/table.tsx +73 -0
  77. package/templates/tabs.tsx +61 -0
  78. package/templates/theme-toggle.tsx +46 -0
  79. package/templates/toast.tsx +1 -0
  80. package/templates/toggle-group.tsx +1 -0
  81. package/templates/toggle.tsx +1 -0
  82. package/templates/tooltip.tsx +31 -0
  83. package/templates/tree-view.tsx +1 -0
  84. package/templates/ui/accordion.tsx +73 -0
  85. package/templates/ui/alert-dialog.tsx +128 -0
  86. package/templates/ui/alert.tsx +56 -0
  87. package/templates/ui/aspect-ratio.tsx +19 -0
  88. package/templates/ui/avatar.tsx +74 -0
  89. package/templates/ui/badge.tsx +48 -0
  90. package/templates/ui/block-loader.tsx +40 -0
  91. package/templates/ui/button.tsx +77 -0
  92. package/templates/ui/calendar.tsx +160 -0
  93. package/templates/ui/card.tsx +73 -0
  94. package/templates/ui/carousel.tsx +149 -0
  95. package/templates/ui/checkbox.tsx +33 -0
  96. package/templates/ui/code-block.tsx +36 -0
  97. package/templates/ui/collapsible.tsx +48 -0
  98. package/templates/ui/combobox.tsx +295 -0
  99. package/templates/ui/command.tsx +148 -0
  100. package/templates/ui/context-menu.tsx +212 -0
  101. package/templates/ui/dialog.tsx +138 -0
  102. package/templates/ui/drawer.tsx +134 -0
  103. package/templates/ui/dropdown-menu.tsx +254 -0
  104. package/templates/ui/form.tsx +122 -0
  105. package/templates/ui/hover-card.tsx +44 -0
  106. package/templates/ui/input-group.tsx +148 -0
  107. package/templates/ui/input-otp.tsx +153 -0
  108. package/templates/ui/input.tsx +20 -0
  109. package/templates/ui/label.tsx +17 -0
  110. package/templates/ui/layout.tsx +252 -0
  111. package/templates/ui/list-item.tsx +50 -0
  112. package/templates/ui/menubar.tsx +225 -0
  113. package/templates/ui/navigation-menu.tsx +117 -0
  114. package/templates/ui/pagination.tsx +110 -0
  115. package/templates/ui/popover.tsx +77 -0
  116. package/templates/ui/progress.tsx +37 -0
  117. package/templates/ui/radio-group.tsx +41 -0
  118. package/templates/ui/receipt-card.tsx +70 -0
  119. package/templates/ui/resizable.tsx +140 -0
  120. package/templates/ui/scroll-area.tsx +64 -0
  121. package/templates/ui/select.tsx +186 -0
  122. package/templates/ui/separator.tsx +21 -0
  123. package/templates/ui/sheet.tsx +134 -0
  124. package/templates/ui/sidebar.tsx +222 -0
  125. package/templates/ui/skeleton.tsx +35 -0
  126. package/templates/ui/slider.tsx +60 -0
  127. package/templates/ui/switch.tsx +33 -0
  128. package/templates/ui/table.tsx +114 -0
  129. package/templates/ui/tabs.tsx +79 -0
  130. package/templates/ui/textarea.tsx +18 -0
  131. package/templates/ui/toast.tsx +139 -0
  132. package/templates/ui/toggle-group.tsx +68 -0
  133. package/templates/ui/toggle.tsx +47 -0
  134. package/templates/ui/tooltip.tsx +53 -0
  135. package/templates/ui/tree-view.tsx +76 -0
@@ -0,0 +1,712 @@
1
+ export const registry = {
2
+ // ─── Foundation ────────────────────────────────────────────────────────
3
+ utils: {
4
+ name: "utils",
5
+ description: "cn() utility + helpers for merging Tailwind classes",
6
+ files: [{ src: "lib/utils.ts", dest: "lib/utils.ts" }],
7
+ deps: ["clsx", "tailwind-merge"],
8
+ tags: ["foundation"],
9
+ },
10
+ styles: {
11
+ name: "styles",
12
+ description: "Dockets CSS tokens: --border-width, spacing scale, receipt aesthetic vars. Import in root layout.",
13
+ files: [{ src: "styles/dockets.css", dest: "styles/dockets.css" }],
14
+ deps: [],
15
+ tags: ["foundation"],
16
+ },
17
+ // ─── Primitives (ui/) ─────────────────────────────────────────────────
18
+ accordion: {
19
+ name: "accordion",
20
+ description: "Collapsible content sections",
21
+ files: [
22
+ { src: "ui/accordion.tsx", dest: "components/ui/accordion.tsx" },
23
+ { src: "accordion.tsx", dest: "components/accordion.tsx" },
24
+ ],
25
+ deps: ["@base-ui/react", "lucide-react"],
26
+ internalDeps: ["utils", "styles"],
27
+ tags: ["primitive", "extended"],
28
+ },
29
+ alert: {
30
+ name: "alert",
31
+ description: "Alert box with icon slot and default/destructive variants",
32
+ files: [
33
+ { src: "ui/alert.tsx", dest: "components/ui/alert.tsx" },
34
+ { src: "alert.tsx", dest: "components/alert.tsx" },
35
+ ],
36
+ deps: ["class-variance-authority", "lucide-react"],
37
+ internalDeps: ["utils", "styles"],
38
+ tags: ["primitive", "extended"],
39
+ },
40
+ "alert-dialog": {
41
+ name: "alert-dialog",
42
+ description: "Confirmation dialog with cancel/action buttons",
43
+ files: [
44
+ { src: "ui/alert-dialog.tsx", dest: "components/ui/alert-dialog.tsx" },
45
+ { src: "alert-dialog.tsx", dest: "components/alert-dialog.tsx" },
46
+ ],
47
+ deps: ["@base-ui/react"],
48
+ internalDeps: ["utils", "styles"],
49
+ tags: ["primitive", "extended"],
50
+ },
51
+ "aspect-ratio": {
52
+ name: "aspect-ratio",
53
+ description: "CSS aspect-ratio wrapper with common ratio presets",
54
+ files: [
55
+ { src: "ui/aspect-ratio.tsx", dest: "components/ui/aspect-ratio.tsx" },
56
+ { src: "aspect-ratio.tsx", dest: "components/aspect-ratio.tsx" },
57
+ ],
58
+ deps: [],
59
+ internalDeps: ["utils"],
60
+ tags: ["primitive", "extended"],
61
+ },
62
+ avatar: {
63
+ name: "avatar",
64
+ description: "Image with fallback initials, brutalist square style",
65
+ files: [
66
+ { src: "ui/avatar.tsx", dest: "components/ui/avatar.tsx" },
67
+ { src: "avatar.tsx", dest: "components/avatar.tsx" },
68
+ ],
69
+ deps: [],
70
+ internalDeps: ["utils", "styles"],
71
+ tags: ["primitive", "extended"],
72
+ },
73
+ badge: {
74
+ name: "badge",
75
+ description: "Inline status label with multiple variants",
76
+ files: [
77
+ { src: "ui/badge.tsx", dest: "components/ui/badge.tsx" },
78
+ { src: "badge.tsx", dest: "components/badge.tsx" },
79
+ ],
80
+ deps: ["@base-ui/react", "class-variance-authority"],
81
+ internalDeps: ["utils", "styles"],
82
+ tags: ["primitive", "extended"],
83
+ },
84
+ "block-loader": {
85
+ name: "block-loader",
86
+ description: "Animated Unicode spinner with multiple modes",
87
+ files: [
88
+ { src: "ui/block-loader.tsx", dest: "components/ui/block-loader.tsx" },
89
+ { src: "block-loader.tsx", dest: "components/block-loader.tsx" },
90
+ ],
91
+ deps: [],
92
+ internalDeps: ["utils"],
93
+ tags: ["primitive", "extended"],
94
+ },
95
+ button: {
96
+ name: "button",
97
+ description: "Versatile button with multiple variants and sizes",
98
+ files: [
99
+ { src: "ui/button.tsx", dest: "components/ui/button.tsx" },
100
+ { src: "button.tsx", dest: "components/button.tsx" },
101
+ ],
102
+ deps: ["class-variance-authority"],
103
+ internalDeps: ["utils", "styles"],
104
+ tags: ["primitive", "extended"],
105
+ },
106
+ calendar: {
107
+ name: "calendar",
108
+ description: "Month grid date picker, pure React + Tailwind",
109
+ files: [
110
+ { src: "ui/calendar.tsx", dest: "components/ui/calendar.tsx" },
111
+ { src: "calendar.tsx", dest: "components/calendar.tsx" },
112
+ ],
113
+ deps: ["lucide-react"],
114
+ internalDeps: ["utils", "styles"],
115
+ tags: ["primitive", "extended"],
116
+ },
117
+ card: {
118
+ name: "card",
119
+ description: "General-purpose card with header, content, and footer",
120
+ files: [
121
+ { src: "ui/card.tsx", dest: "components/ui/card.tsx" },
122
+ { src: "card.tsx", dest: "components/card.tsx" },
123
+ ],
124
+ deps: [],
125
+ internalDeps: ["utils", "styles"],
126
+ tags: ["primitive", "extended"],
127
+ },
128
+ carousel: {
129
+ name: "carousel",
130
+ description: "Horizontal/vertical scroll carousel with prev/next controls",
131
+ files: [
132
+ { src: "ui/carousel.tsx", dest: "components/ui/carousel.tsx" },
133
+ { src: "carousel.tsx", dest: "components/carousel.tsx" },
134
+ ],
135
+ deps: ["lucide-react"],
136
+ internalDeps: ["utils", "styles"],
137
+ tags: ["primitive", "extended"],
138
+ },
139
+ checkbox: {
140
+ name: "checkbox",
141
+ description: "Checkbox input with label and description support",
142
+ files: [
143
+ { src: "ui/checkbox.tsx", dest: "components/ui/checkbox.tsx" },
144
+ { src: "checkbox.tsx", dest: "components/checkbox.tsx" },
145
+ ],
146
+ deps: ["@base-ui/react", "lucide-react"],
147
+ internalDeps: ["utils", "styles", "label"],
148
+ tags: ["primitive", "extended"],
149
+ },
150
+ "code-block": {
151
+ name: "code-block",
152
+ description: "Monospace code display with line numbers",
153
+ files: [
154
+ { src: "ui/code-block.tsx", dest: "components/ui/code-block.tsx" },
155
+ { src: "code-block.tsx", dest: "components/code-block.tsx" },
156
+ ],
157
+ deps: [],
158
+ internalDeps: ["utils"],
159
+ tags: ["primitive", "extended"],
160
+ },
161
+ collapsible: {
162
+ name: "collapsible",
163
+ description: "Expand/collapse panel with animated content",
164
+ files: [
165
+ { src: "ui/collapsible.tsx", dest: "components/ui/collapsible.tsx" },
166
+ { src: "collapsible.tsx", dest: "components/collapsible.tsx" },
167
+ ],
168
+ deps: ["@base-ui/react", "lucide-react"],
169
+ internalDeps: ["utils", "styles"],
170
+ tags: ["primitive", "extended"],
171
+ },
172
+ combobox: {
173
+ name: "combobox",
174
+ description: "Searchable select with chips, multi-select, and filtering",
175
+ files: [
176
+ { src: "ui/combobox.tsx", dest: "components/ui/combobox.tsx" },
177
+ { src: "combobox.tsx", dest: "components/combobox.tsx" },
178
+ ],
179
+ deps: ["@base-ui/react", "lucide-react"],
180
+ internalDeps: ["utils", "button", "input-group"],
181
+ tags: ["primitive", "extended"],
182
+ },
183
+ command: {
184
+ name: "command",
185
+ description: "Command palette / search with groups and keyboard navigation",
186
+ files: [
187
+ { src: "ui/command.tsx", dest: "components/ui/command.tsx" },
188
+ { src: "command.tsx", dest: "components/command.tsx" },
189
+ ],
190
+ deps: ["@base-ui/react", "lucide-react"],
191
+ internalDeps: ["utils", "styles"],
192
+ tags: ["primitive", "extended"],
193
+ },
194
+ "context-menu": {
195
+ name: "context-menu",
196
+ description: "Right-click context menu with items, checkboxes, and submenus",
197
+ files: [
198
+ { src: "ui/context-menu.tsx", dest: "components/ui/context-menu.tsx" },
199
+ { src: "context-menu.tsx", dest: "components/context-menu.tsx" },
200
+ ],
201
+ deps: ["@base-ui/react", "lucide-react"],
202
+ internalDeps: ["utils", "styles"],
203
+ tags: ["primitive", "extended"],
204
+ },
205
+ dialog: {
206
+ name: "dialog",
207
+ description: "Modal dialog with overlay",
208
+ files: [
209
+ { src: "ui/dialog.tsx", dest: "components/ui/dialog.tsx" },
210
+ { src: "dialog.tsx", dest: "components/dialog.tsx" },
211
+ ],
212
+ deps: ["@base-ui/react", "lucide-react"],
213
+ internalDeps: ["utils", "button", "styles"],
214
+ tags: ["primitive", "extended"],
215
+ },
216
+ drawer: {
217
+ name: "drawer",
218
+ description: "Side/top/bottom sliding panel overlay",
219
+ files: [
220
+ { src: "ui/drawer.tsx", dest: "components/ui/drawer.tsx" },
221
+ { src: "drawer.tsx", dest: "components/drawer.tsx" },
222
+ ],
223
+ deps: ["@base-ui/react", "lucide-react"],
224
+ internalDeps: ["utils", "styles"],
225
+ tags: ["primitive", "extended"],
226
+ },
227
+ "dropdown-menu": {
228
+ name: "dropdown-menu",
229
+ description: "Context menu with items, checkboxes, and radio groups",
230
+ files: [
231
+ { src: "ui/dropdown-menu.tsx", dest: "components/ui/dropdown-menu.tsx" },
232
+ { src: "dropdown-menu.tsx", dest: "components/dropdown-menu.tsx" },
233
+ ],
234
+ deps: ["@base-ui/react", "lucide-react"],
235
+ internalDeps: ["utils", "styles"],
236
+ tags: ["primitive", "extended"],
237
+ },
238
+ form: {
239
+ name: "form",
240
+ description: "Lightweight form context with field, label, control, and error message",
241
+ files: [
242
+ { src: "ui/form.tsx", dest: "components/ui/form.tsx" },
243
+ { src: "form.tsx", dest: "components/form.tsx" },
244
+ ],
245
+ deps: [],
246
+ internalDeps: ["utils"],
247
+ tags: ["primitive", "extended"],
248
+ },
249
+ "hover-card": {
250
+ name: "hover-card",
251
+ description: "Hover-triggered preview popover (Base UI PreviewCard)",
252
+ files: [
253
+ { src: "ui/hover-card.tsx", dest: "components/ui/hover-card.tsx" },
254
+ { src: "hover-card.tsx", dest: "components/hover-card.tsx" },
255
+ ],
256
+ deps: ["@base-ui/react"],
257
+ internalDeps: ["utils", "styles"],
258
+ tags: ["primitive", "extended"],
259
+ },
260
+ input: {
261
+ name: "input",
262
+ description: "Text input field",
263
+ files: [{ src: "ui/input.tsx", dest: "components/ui/input.tsx" }],
264
+ deps: ["@base-ui/react"],
265
+ internalDeps: ["utils", "styles"],
266
+ tags: ["primitive"],
267
+ },
268
+ "input-group": {
269
+ name: "input-group",
270
+ description: "Grouped input with addons, buttons, and textarea",
271
+ files: [
272
+ { src: "ui/input-group.tsx", dest: "components/ui/input-group.tsx" },
273
+ ],
274
+ deps: ["class-variance-authority"],
275
+ internalDeps: ["utils", "button", "input", "textarea", "styles"],
276
+ tags: ["primitive"],
277
+ },
278
+ "input-otp": {
279
+ name: "input-otp",
280
+ description: "OTP/PIN code input with separate digit boxes",
281
+ files: [
282
+ { src: "ui/input-otp.tsx", dest: "components/ui/input-otp.tsx" },
283
+ { src: "input-otp.tsx", dest: "components/input-otp.tsx" },
284
+ ],
285
+ deps: [],
286
+ internalDeps: ["utils", "styles"],
287
+ tags: ["primitive", "extended"],
288
+ },
289
+ label: {
290
+ name: "label",
291
+ description: "Form label element with peer-disabled styling",
292
+ files: [
293
+ { src: "ui/label.tsx", dest: "components/ui/label.tsx" },
294
+ { src: "label.tsx", dest: "components/label.tsx" },
295
+ ],
296
+ deps: [],
297
+ internalDeps: ["utils"],
298
+ tags: ["primitive", "extended"],
299
+ },
300
+ layout: {
301
+ name: "layout",
302
+ description: "Layout primitives: Container, Section, Stack, Row, Spacer, Divider, Grid, BentoGrid, BentoCell — with built-in no-border-stacking patterns",
303
+ files: [
304
+ { src: "ui/layout.tsx", dest: "components/ui/layout.tsx" },
305
+ { src: "layout-primitives.tsx", dest: "components/layout-primitives.tsx" },
306
+ ],
307
+ deps: [],
308
+ internalDeps: ["utils", "styles"],
309
+ tags: ["primitive", "extended", "layout"],
310
+ },
311
+ "list-item": {
312
+ name: "list-item",
313
+ description: "Keyboard-navigable list item",
314
+ files: [
315
+ { src: "ui/list-item.tsx", dest: "components/ui/list-item.tsx" },
316
+ { src: "list-item.tsx", dest: "components/list-item.tsx" },
317
+ ],
318
+ deps: [],
319
+ internalDeps: ["utils"],
320
+ tags: ["primitive", "extended"],
321
+ },
322
+ menubar: {
323
+ name: "menubar",
324
+ description: "Horizontal menu bar with dropdown menus",
325
+ files: [
326
+ { src: "ui/menubar.tsx", dest: "components/ui/menubar.tsx" },
327
+ { src: "menubar.tsx", dest: "components/menubar.tsx" },
328
+ ],
329
+ deps: ["@base-ui/react", "lucide-react"],
330
+ internalDeps: ["utils", "styles"],
331
+ tags: ["primitive", "extended"],
332
+ },
333
+ "navigation-menu": {
334
+ name: "navigation-menu",
335
+ description: "Accessible nav menu with link and trigger variants",
336
+ files: [
337
+ { src: "ui/navigation-menu.tsx", dest: "components/ui/navigation-menu.tsx" },
338
+ { src: "navigation-menu.tsx", dest: "components/navigation-menu.tsx" },
339
+ ],
340
+ deps: ["lucide-react"],
341
+ internalDeps: ["utils", "styles"],
342
+ tags: ["primitive", "extended"],
343
+ },
344
+ pagination: {
345
+ name: "pagination",
346
+ description: "Page navigation with prev/next/numbers and ellipsis",
347
+ files: [
348
+ { src: "ui/pagination.tsx", dest: "components/ui/pagination.tsx" },
349
+ { src: "pagination.tsx", dest: "components/pagination.tsx" },
350
+ ],
351
+ deps: ["lucide-react"],
352
+ internalDeps: ["utils", "styles"],
353
+ tags: ["primitive", "extended"],
354
+ },
355
+ popover: {
356
+ name: "popover",
357
+ description: "Click-triggered positioned popover (Base UI)",
358
+ files: [
359
+ { src: "ui/popover.tsx", dest: "components/ui/popover.tsx" },
360
+ { src: "popover.tsx", dest: "components/popover.tsx" },
361
+ ],
362
+ deps: ["@base-ui/react", "lucide-react"],
363
+ internalDeps: ["utils", "styles"],
364
+ tags: ["primitive", "extended"],
365
+ },
366
+ progress: {
367
+ name: "progress",
368
+ description: "Progress bar with optional label and percentage display",
369
+ files: [
370
+ { src: "ui/progress.tsx", dest: "components/ui/progress.tsx" },
371
+ { src: "progress.tsx", dest: "components/progress.tsx" },
372
+ ],
373
+ deps: ["@base-ui/react"],
374
+ internalDeps: ["utils", "styles"],
375
+ tags: ["primitive", "extended"],
376
+ },
377
+ "radio-group": {
378
+ name: "radio-group",
379
+ description: "Radio button group with label and description support",
380
+ files: [
381
+ { src: "ui/radio-group.tsx", dest: "components/ui/radio-group.tsx" },
382
+ { src: "radio-group.tsx", dest: "components/radio-group.tsx" },
383
+ ],
384
+ deps: ["@base-ui/react"],
385
+ internalDeps: ["utils", "styles", "label"],
386
+ tags: ["primitive", "extended"],
387
+ },
388
+ "receipt-card": {
389
+ name: "receipt-card",
390
+ description: "Receipt-style bordered card with title",
391
+ files: [
392
+ { src: "ui/receipt-card.tsx", dest: "components/ui/receipt-card.tsx" },
393
+ { src: "receipt-card.tsx", dest: "components/receipt-card.tsx" },
394
+ ],
395
+ deps: [],
396
+ internalDeps: ["utils"],
397
+ tags: ["primitive", "extended"],
398
+ },
399
+ resizable: {
400
+ name: "resizable",
401
+ description: "Draggable resizable panel group, pure pointer-event implementation",
402
+ files: [
403
+ { src: "ui/resizable.tsx", dest: "components/ui/resizable.tsx" },
404
+ { src: "resizable.tsx", dest: "components/resizable.tsx" },
405
+ ],
406
+ deps: ["lucide-react"],
407
+ internalDeps: ["utils", "styles"],
408
+ tags: ["primitive", "extended"],
409
+ },
410
+ "scroll-area": {
411
+ name: "scroll-area",
412
+ description: "Custom scrollbar area using CSS scrollbar-width: thin",
413
+ files: [
414
+ { src: "ui/scroll-area.tsx", dest: "components/ui/scroll-area.tsx" },
415
+ { src: "scroll-area.tsx", dest: "components/scroll-area.tsx" },
416
+ ],
417
+ deps: [],
418
+ internalDeps: ["utils", "styles"],
419
+ tags: ["primitive", "extended"],
420
+ },
421
+ select: {
422
+ name: "select",
423
+ description: "Dropdown select with groups and scroll arrows",
424
+ files: [
425
+ { src: "ui/select.tsx", dest: "components/ui/select.tsx" },
426
+ { src: "select.tsx", dest: "components/select.tsx" },
427
+ ],
428
+ deps: ["@base-ui/react", "lucide-react"],
429
+ internalDeps: ["utils", "styles"],
430
+ tags: ["primitive", "extended"],
431
+ },
432
+ separator: {
433
+ name: "separator",
434
+ description: "Horizontal or vertical divider line",
435
+ files: [
436
+ { src: "ui/separator.tsx", dest: "components/ui/separator.tsx" },
437
+ { src: "separator.tsx", dest: "components/separator.tsx" },
438
+ ],
439
+ deps: ["@base-ui/react"],
440
+ internalDeps: ["utils"],
441
+ tags: ["primitive", "extended"],
442
+ },
443
+ sheet: {
444
+ name: "sheet",
445
+ description: "Side panel overlay (top/bottom/left/right variants)",
446
+ files: [
447
+ { src: "ui/sheet.tsx", dest: "components/ui/sheet.tsx" },
448
+ { src: "sheet.tsx", dest: "components/sheet.tsx" },
449
+ ],
450
+ deps: ["@base-ui/react", "lucide-react"],
451
+ internalDeps: ["utils", "styles"],
452
+ tags: ["primitive", "extended"],
453
+ },
454
+ sidebar: {
455
+ name: "sidebar",
456
+ description: "App sidebar layout with collapsible rail and nav items",
457
+ files: [
458
+ { src: "ui/sidebar.tsx", dest: "components/ui/sidebar.tsx" },
459
+ { src: "sidebar.tsx", dest: "components/sidebar.tsx" },
460
+ ],
461
+ deps: ["lucide-react"],
462
+ internalDeps: ["utils", "styles"],
463
+ tags: ["primitive", "extended"],
464
+ },
465
+ skeleton: {
466
+ name: "skeleton",
467
+ description: "Loading placeholder with pulse animation and text variant",
468
+ files: [
469
+ { src: "ui/skeleton.tsx", dest: "components/ui/skeleton.tsx" },
470
+ { src: "skeleton.tsx", dest: "components/skeleton.tsx" },
471
+ ],
472
+ deps: [],
473
+ internalDeps: ["utils", "styles"],
474
+ tags: ["primitive", "extended"],
475
+ },
476
+ slider: {
477
+ name: "slider",
478
+ description: "Range slider with optional label and value display",
479
+ files: [
480
+ { src: "ui/slider.tsx", dest: "components/ui/slider.tsx" },
481
+ { src: "slider.tsx", dest: "components/slider.tsx" },
482
+ ],
483
+ deps: ["@base-ui/react"],
484
+ internalDeps: ["utils", "styles"],
485
+ tags: ["primitive", "extended"],
486
+ },
487
+ switch: {
488
+ name: "switch",
489
+ description: "Toggle switch with optional label and description",
490
+ files: [
491
+ { src: "ui/switch.tsx", dest: "components/ui/switch.tsx" },
492
+ { src: "switch.tsx", dest: "components/switch.tsx" },
493
+ ],
494
+ deps: ["@base-ui/react"],
495
+ internalDeps: ["utils", "styles", "label"],
496
+ tags: ["primitive", "extended"],
497
+ },
498
+ table: {
499
+ name: "table",
500
+ description: "Receipt-style data table with no-border-stacking pattern",
501
+ files: [
502
+ { src: "ui/table.tsx", dest: "components/ui/table.tsx" },
503
+ { src: "table.tsx", dest: "components/table.tsx" },
504
+ ],
505
+ deps: [],
506
+ internalDeps: ["utils", "styles"],
507
+ tags: ["primitive", "extended"],
508
+ },
509
+ tabs: {
510
+ name: "tabs",
511
+ description: "Tabbed content panels with default and line variants",
512
+ files: [
513
+ { src: "ui/tabs.tsx", dest: "components/ui/tabs.tsx" },
514
+ { src: "tabs.tsx", dest: "components/tabs.tsx" },
515
+ ],
516
+ deps: ["@base-ui/react", "class-variance-authority"],
517
+ internalDeps: ["utils", "styles"],
518
+ tags: ["primitive", "extended"],
519
+ },
520
+ textarea: {
521
+ name: "textarea",
522
+ description: "Multi-line text input",
523
+ files: [{ src: "ui/textarea.tsx", dest: "components/ui/textarea.tsx" }],
524
+ deps: [],
525
+ internalDeps: ["utils", "styles"],
526
+ tags: ["primitive"],
527
+ },
528
+ toast: {
529
+ name: "toast",
530
+ description: "Toast notification system with provider, toaster, and useToast hook",
531
+ files: [
532
+ { src: "ui/toast.tsx", dest: "components/ui/toast.tsx" },
533
+ { src: "toast.tsx", dest: "components/toast.tsx" },
534
+ ],
535
+ deps: ["lucide-react"],
536
+ internalDeps: ["utils", "styles"],
537
+ tags: ["primitive", "extended"],
538
+ },
539
+ toggle: {
540
+ name: "toggle",
541
+ description: "Pressable toggle button with default and outline variants",
542
+ files: [
543
+ { src: "ui/toggle.tsx", dest: "components/ui/toggle.tsx" },
544
+ { src: "toggle.tsx", dest: "components/toggle.tsx" },
545
+ ],
546
+ deps: ["@base-ui/react", "class-variance-authority"],
547
+ internalDeps: ["utils", "styles"],
548
+ tags: ["primitive", "extended"],
549
+ },
550
+ "toggle-group": {
551
+ name: "toggle-group",
552
+ description: "Group of toggle buttons with newspaper-grid border pattern",
553
+ files: [
554
+ { src: "ui/toggle-group.tsx", dest: "components/ui/toggle-group.tsx" },
555
+ { src: "toggle-group.tsx", dest: "components/toggle-group.tsx" },
556
+ ],
557
+ deps: ["@base-ui/react", "class-variance-authority"],
558
+ internalDeps: ["utils", "styles", "toggle"],
559
+ tags: ["primitive", "extended"],
560
+ },
561
+ tooltip: {
562
+ name: "tooltip",
563
+ description: "Hoverable tooltip with positioning",
564
+ files: [
565
+ { src: "ui/tooltip.tsx", dest: "components/ui/tooltip.tsx" },
566
+ { src: "tooltip.tsx", dest: "components/tooltip.tsx" },
567
+ ],
568
+ deps: ["@base-ui/react"],
569
+ internalDeps: ["utils", "styles"],
570
+ tags: ["primitive", "extended"],
571
+ },
572
+ "tree-view": {
573
+ name: "tree-view",
574
+ description: "Collapsible file/folder tree with ASCII connectors",
575
+ files: [
576
+ { src: "ui/tree-view.tsx", dest: "components/ui/tree-view.tsx" },
577
+ { src: "tree-view.tsx", dest: "components/tree-view.tsx" },
578
+ ],
579
+ deps: [],
580
+ internalDeps: ["utils"],
581
+ tags: ["primitive", "extended"],
582
+ },
583
+ // ─── Extended-only components ─────────────────────────────────────────
584
+ breadcrumb: {
585
+ name: "breadcrumb",
586
+ description: "Navigation breadcrumb trail",
587
+ files: [{ src: "breadcrumb.tsx", dest: "components/breadcrumb.tsx" }],
588
+ deps: [],
589
+ tags: ["extended"],
590
+ },
591
+ "form-input": {
592
+ name: "form-input",
593
+ description: "Labelled input with description, error, and validation",
594
+ files: [{ src: "form-input.tsx", dest: "components/form-input.tsx" }],
595
+ deps: [],
596
+ internalDeps: ["utils", "input"],
597
+ tags: ["extended"],
598
+ },
599
+ layouts: {
600
+ name: "layouts",
601
+ description: "Bento grid layouts: BentoSplit, BentoLeader, BentoQuad, BentoTriple, HeroPrimary, HeroSecondary, CellGrid, CellRow, StatCell",
602
+ files: [{ src: "layouts.tsx", dest: "components/layouts.tsx" }],
603
+ deps: [],
604
+ internalDeps: ["utils"],
605
+ tags: ["extended"],
606
+ },
607
+ list: {
608
+ name: "list",
609
+ description: "Configurable list with arrow, check, check-bordered, and bullet variants",
610
+ files: [
611
+ { src: "list.tsx", dest: "components/list.tsx" },
612
+ { src: "list-items.tsx", dest: "components/list-items.tsx" },
613
+ ],
614
+ deps: ["lucide-react"],
615
+ internalDeps: ["utils", "list-item"],
616
+ tags: ["extended"],
617
+ },
618
+ logo: {
619
+ name: "logo",
620
+ description: "Leitware SVG logo component",
621
+ files: [{ src: "logo.tsx", dest: "components/logo.tsx" }],
622
+ deps: [],
623
+ tags: ["extended"],
624
+ },
625
+ receipt: {
626
+ name: "receipt",
627
+ description: "Receipt primitives: Divider, SectionLabel, Row, DataTable, Glyph, Ledger",
628
+ files: [{ src: "receipt.tsx", dest: "components/receipt.tsx" }],
629
+ deps: [],
630
+ internalDeps: ["utils"],
631
+ tags: ["extended"],
632
+ },
633
+ "theme-toggle": {
634
+ name: "theme-toggle",
635
+ description: "Light / dark / deep theme switcher button",
636
+ files: [
637
+ { src: "theme-toggle.tsx", dest: "components/theme-toggle.tsx" },
638
+ ],
639
+ deps: [],
640
+ internalDeps: ["button"],
641
+ tags: ["extended"],
642
+ },
643
+ "contact-footer": {
644
+ name: "contact-footer",
645
+ description: "Contact form footer with Convex integration (requires convex, @/lib/constants)",
646
+ files: [
647
+ { src: "contact-footer.tsx", dest: "components/contact-footer.tsx" },
648
+ ],
649
+ deps: ["convex", "lucide-react"],
650
+ internalDeps: ["button", "block-loader", "form-input"],
651
+ tags: ["extended", "leitware"],
652
+ },
653
+ "marketing-header": {
654
+ name: "marketing-header",
655
+ description: "Sticky marketing nav header with CTA (requires @/lib/constants)",
656
+ files: [
657
+ { src: "marketing-header.tsx", dest: "components/marketing-header.tsx" },
658
+ ],
659
+ deps: [],
660
+ internalDeps: ["logo", "theme-toggle", "button"],
661
+ tags: ["extended", "leitware"],
662
+ },
663
+ "marketing-footer": {
664
+ name: "marketing-footer",
665
+ description: "Simple marketing footer with CTA (requires @/lib/constants)",
666
+ files: [
667
+ { src: "marketing-footer.tsx", dest: "components/marketing-footer.tsx" },
668
+ ],
669
+ deps: [],
670
+ tags: ["extended", "leitware"],
671
+ },
672
+ "simple-header": {
673
+ name: "simple-header",
674
+ description: "App header with auth (requires convex, @tanstack/react-router)",
675
+ files: [
676
+ { src: "simple-header.tsx", dest: "components/simple-header.tsx" },
677
+ ],
678
+ deps: ["convex", "@tanstack/react-router"],
679
+ internalDeps: ["logo", "theme-toggle"],
680
+ tags: ["extended", "leitware"],
681
+ },
682
+ "simple-footer": {
683
+ name: "simple-footer",
684
+ description: "App footer with legal links (requires @tanstack/react-router)",
685
+ files: [
686
+ { src: "simple-footer.tsx", dest: "components/simple-footer.tsx" },
687
+ ],
688
+ deps: ["@tanstack/react-router"],
689
+ tags: ["extended", "leitware"],
690
+ },
691
+ "pricing-receipt": {
692
+ name: "pricing-receipt",
693
+ description: "Receipt-styled pricing card",
694
+ files: [
695
+ { src: "pricing-receipt.tsx", dest: "components/pricing-receipt.tsx" },
696
+ ],
697
+ deps: [],
698
+ internalDeps: ["contact-footer"],
699
+ tags: ["extended", "leitware"],
700
+ },
701
+ "pricing-tabs": {
702
+ name: "pricing-tabs",
703
+ description: "Tabbed pricing section with catch-up/keep-up plans",
704
+ files: [
705
+ { src: "pricing-tabs.tsx", dest: "components/pricing-tabs.tsx" },
706
+ ],
707
+ deps: [],
708
+ internalDeps: ["button", "pricing-receipt"],
709
+ tags: ["extended", "leitware"],
710
+ },
711
+ };
712
+ //# sourceMappingURL=registry.js.map