@jcoder-stack/registry 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.
@@ -0,0 +1,723 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry.json",
3
+ "name": "jc-abp",
4
+ "homepage": "https://github.com/jcoder-stack/abp-react-start",
5
+ "items": [
6
+ {
7
+ "name": "abp-layout",
8
+ "type": "registry:block",
9
+ "title": "ABP Admin Layout",
10
+ "description": "sidebar-08-style ABP admin layout wired to @jcoder-stack/abp-react/react (menu, breadcrumb, user, locale, tenant, theme).",
11
+ "registryDependencies": [
12
+ "sidebar",
13
+ "breadcrumb",
14
+ "separator",
15
+ "collapsible",
16
+ "command",
17
+ "tooltip",
18
+ "dropdown-menu",
19
+ "avatar",
20
+ "dialog",
21
+ "input",
22
+ "button",
23
+ "label"
24
+ ],
25
+ "dependencies": [
26
+ "lucide-react",
27
+ "@jcoder-stack/abp-react"
28
+ ],
29
+ "files": [
30
+ {
31
+ "path": "ui/blocks/abp-layout/app-sidebar.tsx",
32
+ "type": "registry:component",
33
+ "target": "components/abp/layout/app-sidebar.tsx"
34
+ },
35
+ {
36
+ "path": "ui/blocks/abp-layout/brand-mark.tsx",
37
+ "type": "registry:component",
38
+ "target": "components/abp/layout/brand-mark.tsx"
39
+ },
40
+ {
41
+ "path": "ui/blocks/abp-layout/nav-main.tsx",
42
+ "type": "registry:component",
43
+ "target": "components/abp/layout/nav-main.tsx"
44
+ },
45
+ {
46
+ "path": "ui/blocks/abp-layout/nav-search.tsx",
47
+ "type": "registry:component",
48
+ "target": "components/abp/layout/nav-search.tsx"
49
+ },
50
+ {
51
+ "path": "ui/blocks/abp-layout/nav-user.tsx",
52
+ "type": "registry:component",
53
+ "target": "components/abp/layout/nav-user.tsx"
54
+ },
55
+ {
56
+ "path": "ui/blocks/abp-layout/site-header.tsx",
57
+ "type": "registry:component",
58
+ "target": "components/abp/layout/site-header.tsx"
59
+ },
60
+ {
61
+ "path": "ui/blocks/abp-layout/abp-breadcrumb.tsx",
62
+ "type": "registry:component",
63
+ "target": "components/abp/layout/abp-breadcrumb.tsx"
64
+ },
65
+ {
66
+ "path": "ui/blocks/abp-layout/locale-switcher.tsx",
67
+ "type": "registry:component",
68
+ "target": "components/abp/layout/locale-switcher.tsx"
69
+ },
70
+ {
71
+ "path": "ui/blocks/abp-layout/tenant-switcher.tsx",
72
+ "type": "registry:component",
73
+ "target": "components/abp/layout/tenant-switcher.tsx"
74
+ },
75
+ {
76
+ "path": "ui/blocks/abp-layout/theme-toggle.tsx",
77
+ "type": "registry:component",
78
+ "target": "components/abp/layout/theme-toggle.tsx"
79
+ },
80
+ {
81
+ "path": "ui/blocks/abp-layout/layout-messages.json",
82
+ "type": "registry:file",
83
+ "target": "components/abp/layout/layout-messages.json"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "name": "abp-login",
89
+ "type": "registry:block",
90
+ "title": "ABP Login Card",
91
+ "description": "Password sign-in card (ROPC) with an SSO (OIDC) entry, wired to the jc-abp auth server functions.",
92
+ "registryDependencies": [
93
+ "card",
94
+ "input",
95
+ "button",
96
+ "label",
97
+ "alert"
98
+ ],
99
+ "dependencies": [
100
+ "@jcoder-stack/abp-react"
101
+ ],
102
+ "files": [
103
+ {
104
+ "path": "ui/blocks/abp-login/login-form.tsx",
105
+ "type": "registry:component",
106
+ "target": "components/abp/login/login-form.tsx"
107
+ },
108
+ {
109
+ "path": "ui/blocks/abp-login/login-messages.json",
110
+ "type": "registry:file",
111
+ "target": "components/abp/login/login-messages.json"
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "name": "app-shell",
117
+ "type": "registry:block",
118
+ "title": "App Shell Glue",
119
+ "description": "The wiring that turns the abp-layout/abp-login blocks into a running app: sidebar shell route, authed-guard layout route, a framework-intro home page, root error/not-found boundary, login route, generated-client fetchFn glue, and a clean starter menu.",
120
+ "registryDependencies": [
121
+ "dropdown-menu",
122
+ "sidebar",
123
+ "card",
124
+ "button",
125
+ "tooltip",
126
+ "separator",
127
+ "./node_modules/@jcoder-stack/registry/public/r/abp-layout.json",
128
+ "./node_modules/@jcoder-stack/registry/public/r/abp-login.json"
129
+ ],
130
+ "dependencies": [
131
+ "@jcoder-stack/abp-react",
132
+ "lucide-react",
133
+ "zod"
134
+ ],
135
+ "files": [
136
+ {
137
+ "path": "ui/blocks/app-shell/routes/_layout.tsx",
138
+ "type": "registry:file",
139
+ "target": "src/routes/_layout.tsx"
140
+ },
141
+ {
142
+ "path": "ui/blocks/app-shell/routes/_layout/_authed.tsx",
143
+ "type": "registry:file",
144
+ "target": "src/routes/_layout/_authed.tsx"
145
+ },
146
+ {
147
+ "path": "ui/blocks/app-shell/routes/index.tsx",
148
+ "type": "registry:file",
149
+ "target": "src/routes/index.tsx"
150
+ },
151
+ {
152
+ "path": "ui/blocks/app-shell/routes/_layout/shell-messages.json",
153
+ "type": "registry:file",
154
+ "target": "src/routes/_layout/shell-messages.json"
155
+ },
156
+ {
157
+ "path": "ui/blocks/app-shell/routes/-showcase/feature-row.tsx",
158
+ "type": "registry:file",
159
+ "target": "src/routes/-showcase/feature-row.tsx"
160
+ },
161
+ {
162
+ "path": "ui/blocks/app-shell/routes/-showcase/data-table-demo.tsx",
163
+ "type": "registry:file",
164
+ "target": "src/routes/-showcase/data-table-demo.tsx"
165
+ },
166
+ {
167
+ "path": "ui/blocks/app-shell/routes/-showcase/date-picker-demo.tsx",
168
+ "type": "registry:file",
169
+ "target": "src/routes/-showcase/date-picker-demo.tsx"
170
+ },
171
+ {
172
+ "path": "ui/blocks/app-shell/routes/-showcase/abp-table-demo.tsx",
173
+ "type": "registry:file",
174
+ "target": "src/routes/-showcase/abp-table-demo.tsx"
175
+ },
176
+ {
177
+ "path": "ui/blocks/app-shell/routes/-showcase/form-demo.tsx",
178
+ "type": "registry:file",
179
+ "target": "src/routes/-showcase/form-demo.tsx"
180
+ },
181
+ {
182
+ "path": "ui/blocks/app-shell/routes/-showcase/tree-demo.tsx",
183
+ "type": "registry:file",
184
+ "target": "src/routes/-showcase/tree-demo.tsx"
185
+ },
186
+ {
187
+ "path": "ui/blocks/app-shell/routes/-showcase/combobox-demo.tsx",
188
+ "type": "registry:file",
189
+ "target": "src/routes/-showcase/combobox-demo.tsx"
190
+ },
191
+ {
192
+ "path": "ui/blocks/app-shell/routes/shell-boundary.tsx",
193
+ "type": "registry:file",
194
+ "target": "src/routes/shell-boundary.tsx"
195
+ },
196
+ {
197
+ "path": "ui/blocks/app-shell/routes/login.tsx",
198
+ "type": "registry:file",
199
+ "target": "src/routes/login.tsx"
200
+ },
201
+ {
202
+ "path": "ui/blocks/app-shell/api/abp-fetch.ts",
203
+ "type": "registry:file",
204
+ "target": "src/api/abp-fetch.ts"
205
+ },
206
+ {
207
+ "path": "ui/blocks/app-shell/menu.tsx",
208
+ "type": "registry:file",
209
+ "target": "src/menu.tsx"
210
+ },
211
+ {
212
+ "path": "ui/blocks/app-shell/permissions.ts",
213
+ "type": "registry:file",
214
+ "target": "src/permissions.ts"
215
+ }
216
+ ]
217
+ },
218
+ {
219
+ "name": "data-table",
220
+ "type": "registry:block",
221
+ "title": "Server-side Data Table",
222
+ "description": "Generic paginated/sortable/searchable data table with debounced search, driven by @tanstack/react-table state.",
223
+ "registryDependencies": [
224
+ "table",
225
+ "select",
226
+ "button",
227
+ "input",
228
+ "skeleton",
229
+ "pagination",
230
+ "checkbox",
231
+ "dropdown-menu",
232
+ "label",
233
+ "separator"
234
+ ],
235
+ "dependencies": [
236
+ "@tanstack/react-table@9.0.0-beta.59",
237
+ "@jcoder-stack/abp-react",
238
+ "lucide-react"
239
+ ],
240
+ "files": [
241
+ {
242
+ "path": "ui/blocks/data-table/dev-warn.ts",
243
+ "type": "registry:component",
244
+ "target": "components/data-table/dev-warn.ts"
245
+ },
246
+ {
247
+ "path": "ui/blocks/data-table/table-core.ts",
248
+ "type": "registry:component",
249
+ "target": "components/data-table/table-core.ts"
250
+ },
251
+ {
252
+ "path": "ui/blocks/data-table/use-data-table-state.ts",
253
+ "type": "registry:component",
254
+ "target": "components/data-table/use-data-table-state.ts"
255
+ },
256
+ {
257
+ "path": "ui/blocks/data-table/use-data-table.ts",
258
+ "type": "registry:component",
259
+ "target": "components/data-table/use-data-table.ts"
260
+ },
261
+ {
262
+ "path": "ui/blocks/data-table/data-table.tsx",
263
+ "type": "registry:component",
264
+ "target": "components/data-table/data-table.tsx"
265
+ },
266
+ {
267
+ "path": "ui/blocks/data-table/data-table-footer.tsx",
268
+ "type": "registry:component",
269
+ "target": "components/data-table/data-table-footer.tsx"
270
+ },
271
+ {
272
+ "path": "ui/blocks/data-table/data-table-toolbar.tsx",
273
+ "type": "registry:component",
274
+ "target": "components/data-table/data-table-toolbar.tsx"
275
+ },
276
+ {
277
+ "path": "ui/blocks/data-table/column-label.ts",
278
+ "type": "registry:component",
279
+ "target": "components/data-table/column-label.ts"
280
+ },
281
+ {
282
+ "path": "ui/blocks/data-table/data-table-columns-menu.tsx",
283
+ "type": "registry:component",
284
+ "target": "components/data-table/data-table-columns-menu.tsx"
285
+ },
286
+ {
287
+ "path": "ui/blocks/data-table/data-table-sort-menu.tsx",
288
+ "type": "registry:component",
289
+ "target": "components/data-table/data-table-sort-menu.tsx"
290
+ },
291
+ {
292
+ "path": "ui/blocks/data-table/table-messages.json",
293
+ "type": "registry:file",
294
+ "target": "components/data-table/table-messages.json"
295
+ }
296
+ ]
297
+ },
298
+ {
299
+ "name": "form",
300
+ "type": "registry:block",
301
+ "title": "Sheet Form",
302
+ "description": "Sheet-based form shell with server field-error mapping, wired to @tanstack/react-form.",
303
+ "registryDependencies": [
304
+ "sheet",
305
+ "button",
306
+ "alert",
307
+ "field",
308
+ "input",
309
+ "switch",
310
+ "select",
311
+ "badge",
312
+ "skeleton",
313
+ "./node_modules/@jcoder-stack/registry/public/r/combobox.json",
314
+ "./node_modules/@jcoder-stack/registry/public/r/date-picker.json"
315
+ ],
316
+ "dependencies": [
317
+ "@tanstack/react-form",
318
+ "@jcoder-stack/abp-react",
319
+ "lucide-react"
320
+ ],
321
+ "files": [
322
+ {
323
+ "path": "ui/blocks/form/form-hook.tsx",
324
+ "type": "registry:component",
325
+ "target": "components/form/form-hook.tsx"
326
+ },
327
+ {
328
+ "path": "ui/blocks/form/sheet-form.tsx",
329
+ "type": "registry:component",
330
+ "target": "components/form/sheet-form.tsx"
331
+ },
332
+ {
333
+ "path": "ui/blocks/form/form-section.tsx",
334
+ "type": "registry:component",
335
+ "target": "components/form/form-section.tsx"
336
+ },
337
+ {
338
+ "path": "ui/blocks/form/required-mark.tsx",
339
+ "type": "registry:component",
340
+ "target": "components/form/required-mark.tsx"
341
+ },
342
+ {
343
+ "path": "ui/blocks/form/server-errors.ts",
344
+ "type": "registry:component",
345
+ "target": "components/form/server-errors.ts"
346
+ },
347
+ {
348
+ "path": "ui/blocks/form/submit-button.tsx",
349
+ "type": "registry:component",
350
+ "target": "components/form/submit-button.tsx"
351
+ },
352
+ {
353
+ "path": "ui/blocks/form/form-error-summary.tsx",
354
+ "type": "registry:component",
355
+ "target": "components/form/form-error-summary.tsx"
356
+ },
357
+ {
358
+ "path": "ui/blocks/form/form-messages.json",
359
+ "type": "registry:file",
360
+ "target": "components/form/form-messages.json"
361
+ }
362
+ ]
363
+ },
364
+ {
365
+ "name": "abp-crud",
366
+ "type": "registry:block",
367
+ "title": "ABP CRUD Protocol",
368
+ "description": "ABP CRUD service protocol (createCrudService, AbpTableSource), ABP-flavored form options/error mapping, and the bound-components factory shared by the abp-table and abp-sheet blocks.",
369
+ "registryDependencies": [],
370
+ "dependencies": [
371
+ "@jcoder-stack/abp-react",
372
+ "@tanstack/react-query",
373
+ "@tanstack/react-form"
374
+ ],
375
+ "files": [
376
+ {
377
+ "path": "ui/blocks/abp-crud/crud-service.ts",
378
+ "type": "registry:component",
379
+ "target": "components/abp/crud/crud-service.ts"
380
+ },
381
+ {
382
+ "path": "ui/blocks/abp-crud/abp-table-source.ts",
383
+ "type": "registry:component",
384
+ "target": "components/abp/crud/abp-table-source.ts"
385
+ },
386
+ {
387
+ "path": "ui/blocks/abp-crud/create-bound-components.ts",
388
+ "type": "registry:component",
389
+ "target": "components/abp/crud/create-bound-components.ts"
390
+ },
391
+ {
392
+ "path": "ui/blocks/abp-crud/abp-form-errors.ts",
393
+ "type": "registry:component",
394
+ "target": "components/abp/crud/abp-form-errors.ts"
395
+ },
396
+ {
397
+ "path": "ui/blocks/abp-crud/abp-form-options.ts",
398
+ "type": "registry:component",
399
+ "target": "components/abp/crud/abp-form-options.ts"
400
+ },
401
+ {
402
+ "path": "ui/blocks/abp-crud/crud-messages.json",
403
+ "type": "registry:file",
404
+ "target": "components/abp/crud/crud-messages.json"
405
+ }
406
+ ]
407
+ },
408
+ {
409
+ "name": "abp-table",
410
+ "type": "registry:block",
411
+ "title": "ABP CRUD Table",
412
+ "description": "useAbpTable and AbpTable composition (query form, bulk bar, row actions, status badge) on top of the data-table, form, and abp-crud blocks.",
413
+ "registryDependencies": [
414
+ "alert-dialog",
415
+ "badge",
416
+ "button",
417
+ "tooltip",
418
+ "sonner",
419
+ "dropdown-menu",
420
+ "separator",
421
+ "field",
422
+ "skeleton",
423
+ "./node_modules/@jcoder-stack/registry/public/r/data-table.json",
424
+ "./node_modules/@jcoder-stack/registry/public/r/form.json",
425
+ "./node_modules/@jcoder-stack/registry/public/r/abp-crud.json",
426
+ "./node_modules/@jcoder-stack/registry/public/r/date-picker.json"
427
+ ],
428
+ "dependencies": [
429
+ "@jcoder-stack/abp-react",
430
+ "@tanstack/react-query",
431
+ "@tanstack/react-table@9.0.0-beta.59",
432
+ "@tanstack/react-form",
433
+ "sonner",
434
+ "lucide-react"
435
+ ],
436
+ "files": [
437
+ {
438
+ "path": "ui/blocks/abp-table/use-abp-table.ts",
439
+ "type": "registry:component",
440
+ "target": "components/abp/table/use-abp-table.ts"
441
+ },
442
+ {
443
+ "path": "ui/blocks/abp-table/abp-table.tsx",
444
+ "type": "registry:component",
445
+ "target": "components/abp/table/abp-table.tsx"
446
+ },
447
+ {
448
+ "path": "ui/blocks/abp-table/abp-query-form.tsx",
449
+ "type": "registry:component",
450
+ "target": "components/abp/table/abp-query-form.tsx"
451
+ },
452
+ {
453
+ "path": "ui/blocks/abp-table/abp-bulk-bar.tsx",
454
+ "type": "registry:component",
455
+ "target": "components/abp/table/abp-bulk-bar.tsx"
456
+ },
457
+ {
458
+ "path": "ui/blocks/abp-table/abp-bulk-delete.tsx",
459
+ "type": "registry:component",
460
+ "target": "components/abp/table/abp-bulk-delete.tsx"
461
+ },
462
+ {
463
+ "path": "ui/blocks/abp-table/query-date-range.tsx",
464
+ "type": "registry:component",
465
+ "target": "components/abp/table/query-date-range.tsx"
466
+ },
467
+ {
468
+ "path": "ui/blocks/abp-table/row-actions-menu.tsx",
469
+ "type": "registry:component",
470
+ "target": "components/abp/table/row-actions-menu.tsx"
471
+ },
472
+ {
473
+ "path": "ui/blocks/abp-table/status-badge.tsx",
474
+ "type": "registry:component",
475
+ "target": "components/abp/table/status-badge.tsx"
476
+ }
477
+ ]
478
+ },
479
+ {
480
+ "name": "abp-sheet",
481
+ "type": "registry:block",
482
+ "title": "ABP CRUD Sheet",
483
+ "description": "useAbpSheet: create/update drawer state machine wired to concurrencyStamp handling and abpSubmitValidator, on top of the form and abp-crud blocks.",
484
+ "registryDependencies": [
485
+ "./node_modules/@jcoder-stack/registry/public/r/form.json",
486
+ "./node_modules/@jcoder-stack/registry/public/r/abp-crud.json"
487
+ ],
488
+ "dependencies": [
489
+ "@jcoder-stack/abp-react",
490
+ "@tanstack/react-form",
491
+ "@tanstack/react-query",
492
+ "sonner"
493
+ ],
494
+ "files": [
495
+ {
496
+ "path": "ui/blocks/abp-sheet/use-abp-sheet.tsx",
497
+ "type": "registry:component",
498
+ "target": "components/abp/sheet/use-abp-sheet.tsx"
499
+ }
500
+ ]
501
+ },
502
+ {
503
+ "name": "tree",
504
+ "type": "registry:block",
505
+ "title": "Tree",
506
+ "description": "Generic hierarchical tree with expand/collapse and optional checkable rows; cascade logic is left to consumers via pure helper functions.",
507
+ "registryDependencies": [
508
+ "checkbox"
509
+ ],
510
+ "dependencies": [
511
+ "lucide-react",
512
+ "@jcoder-stack/abp-react",
513
+ "radix-ui"
514
+ ],
515
+ "files": [
516
+ {
517
+ "path": "ui/blocks/tree/tree.tsx",
518
+ "type": "registry:component",
519
+ "target": "components/tree/tree.tsx"
520
+ },
521
+ {
522
+ "path": "ui/blocks/tree/tri-state-checkbox.tsx",
523
+ "type": "registry:component",
524
+ "target": "components/tree/tri-state-checkbox.tsx"
525
+ },
526
+ {
527
+ "path": "ui/blocks/tree/tree-helpers.ts",
528
+ "type": "registry:component",
529
+ "target": "components/tree/tree-helpers.ts"
530
+ },
531
+ {
532
+ "path": "ui/blocks/tree/tree-messages.json",
533
+ "type": "registry:file",
534
+ "target": "components/tree/tree-messages.json"
535
+ }
536
+ ]
537
+ },
538
+ {
539
+ "name": "combobox",
540
+ "type": "registry:block",
541
+ "title": "Combobox",
542
+ "description": "Single- and multi-select combobox with local filtering or debounced remote loadOptions, built on the shadcn combobox primitive.",
543
+ "registryDependencies": [
544
+ "combobox"
545
+ ],
546
+ "dependencies": [
547
+ "@jcoder-stack/abp-react"
548
+ ],
549
+ "files": [
550
+ {
551
+ "path": "ui/blocks/combobox/use-combobox-options.ts",
552
+ "type": "registry:component",
553
+ "target": "components/combobox/use-combobox-options.ts"
554
+ },
555
+ {
556
+ "path": "ui/blocks/combobox/combobox.tsx",
557
+ "type": "registry:component",
558
+ "target": "components/combobox/combobox.tsx"
559
+ },
560
+ {
561
+ "path": "ui/blocks/combobox/multi-combobox.tsx",
562
+ "type": "registry:component",
563
+ "target": "components/combobox/multi-combobox.tsx"
564
+ },
565
+ {
566
+ "path": "ui/blocks/combobox/combobox-messages.json",
567
+ "type": "registry:file",
568
+ "target": "components/combobox/combobox-messages.json"
569
+ }
570
+ ]
571
+ },
572
+ {
573
+ "name": "date-picker",
574
+ "type": "registry:block",
575
+ "title": "Date Picker",
576
+ "description": "Date, date-range and date-time pickers built on Calendar + Popover, with ISO date-string helpers.",
577
+ "registryDependencies": [
578
+ "button",
579
+ "calendar",
580
+ "popover",
581
+ "input"
582
+ ],
583
+ "dependencies": [
584
+ "date-fns",
585
+ "react-day-picker",
586
+ "@jcoder-stack/abp-react",
587
+ "lucide-react"
588
+ ],
589
+ "files": [
590
+ {
591
+ "path": "ui/blocks/date-picker/date-io.ts",
592
+ "type": "registry:component",
593
+ "target": "components/date-picker/date-io.ts"
594
+ },
595
+ {
596
+ "path": "ui/blocks/date-picker/date-picker.tsx",
597
+ "type": "registry:component",
598
+ "target": "components/date-picker/date-picker.tsx"
599
+ },
600
+ {
601
+ "path": "ui/blocks/date-picker/date-range-picker.tsx",
602
+ "type": "registry:component",
603
+ "target": "components/date-picker/date-range-picker.tsx"
604
+ },
605
+ {
606
+ "path": "ui/blocks/date-picker/date-time-picker.tsx",
607
+ "type": "registry:component",
608
+ "target": "components/date-picker/date-time-picker.tsx"
609
+ },
610
+ {
611
+ "path": "ui/blocks/date-picker/date-picker-messages.json",
612
+ "type": "registry:file",
613
+ "target": "components/date-picker/date-picker-messages.json"
614
+ }
615
+ ]
616
+ },
617
+ {
618
+ "name": "abp-permission-sheet",
619
+ "type": "registry:block",
620
+ "title": "ABP Permission Sheet",
621
+ "description": "Permission-group accordion + tree sheet wired to the ABP Permission Management API, with lock/cascade rules for cross-provider grants.",
622
+ "registryDependencies": [
623
+ "sheet",
624
+ "accordion",
625
+ "checkbox",
626
+ "button",
627
+ "skeleton",
628
+ "sonner",
629
+ "./node_modules/@jcoder-stack/registry/public/r/tree.json",
630
+ "./node_modules/@jcoder-stack/registry/public/r/form.json"
631
+ ],
632
+ "dependencies": [
633
+ "@jcoder-stack/abp-react",
634
+ "sonner",
635
+ "@tanstack/react-query"
636
+ ],
637
+ "files": [
638
+ {
639
+ "path": "ui/blocks/abp-permission-sheet/permission-helpers.ts",
640
+ "type": "registry:component",
641
+ "target": "components/abp/permission/permission-helpers.ts"
642
+ },
643
+ {
644
+ "path": "ui/blocks/abp-permission-sheet/permission-sheet.tsx",
645
+ "type": "registry:component",
646
+ "target": "components/abp/permission/permission-sheet.tsx"
647
+ },
648
+ {
649
+ "path": "ui/blocks/abp-permission-sheet/admin-messages.json",
650
+ "type": "registry:file",
651
+ "target": "components/abp/permission/admin-messages.json"
652
+ }
653
+ ]
654
+ },
655
+ {
656
+ "name": "admin-pages",
657
+ "type": "registry:block",
658
+ "title": "Admin Console Pages",
659
+ "description": "Identity users/roles, tenants, settings, and profile route pages composed from the data-table, form, abp-crud, abp-table, abp-sheet, tree, combobox, and abp-permission-sheet blocks.",
660
+ "registryDependencies": [
661
+ "card",
662
+ "tabs",
663
+ "dialog",
664
+ "alert-dialog",
665
+ "select",
666
+ "switch",
667
+ "badge",
668
+ "input",
669
+ "field",
670
+ "button",
671
+ "skeleton",
672
+ "tooltip",
673
+ "sonner",
674
+ "dropdown-menu",
675
+ "./node_modules/@jcoder-stack/registry/public/r/app-shell.json",
676
+ "./node_modules/@jcoder-stack/registry/public/r/abp-table.json",
677
+ "./node_modules/@jcoder-stack/registry/public/r/abp-sheet.json",
678
+ "./node_modules/@jcoder-stack/registry/public/r/abp-permission-sheet.json"
679
+ ],
680
+ "dependencies": [
681
+ "@jcoder-stack/abp-react",
682
+ "@tanstack/react-form",
683
+ "@tanstack/react-query",
684
+ "@tanstack/react-table@9.0.0-beta.59",
685
+ "sonner",
686
+ "lucide-react",
687
+ "zod"
688
+ ],
689
+ "files": [
690
+ {
691
+ "path": "ui/blocks/admin-pages/identity/users.tsx",
692
+ "type": "registry:file",
693
+ "target": "src/routes/_layout/_authed/identity/users.tsx"
694
+ },
695
+ {
696
+ "path": "ui/blocks/admin-pages/identity/roles.tsx",
697
+ "type": "registry:file",
698
+ "target": "src/routes/_layout/_authed/identity/roles.tsx"
699
+ },
700
+ {
701
+ "path": "ui/blocks/admin-pages/identity/-role-schema.ts",
702
+ "type": "registry:file",
703
+ "target": "src/routes/_layout/_authed/identity/-role-schema.ts"
704
+ },
705
+ {
706
+ "path": "ui/blocks/admin-pages/tenants/index.tsx",
707
+ "type": "registry:file",
708
+ "target": "src/routes/_layout/_authed/tenants/index.tsx"
709
+ },
710
+ {
711
+ "path": "ui/blocks/admin-pages/settings/index.tsx",
712
+ "type": "registry:file",
713
+ "target": "src/routes/_layout/_authed/settings/index.tsx"
714
+ },
715
+ {
716
+ "path": "ui/blocks/admin-pages/profile/index.tsx",
717
+ "type": "registry:file",
718
+ "target": "src/routes/_layout/_authed/profile/index.tsx"
719
+ }
720
+ ]
721
+ }
722
+ ]
723
+ }