banhaten 0.1.3 → 0.3.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.
- package/CHANGELOG.md +73 -0
- package/CONTRIBUTING.md +44 -0
- package/README.md +65 -13
- package/SECURITY.md +15 -0
- package/banhaten.config.example.json +0 -2
- package/docs/design-system/README.md +9 -0
- package/docs/design-system/adoption-quality-remediation.md +87 -0
- package/docs/design-system/agent-usage.md +13 -0
- package/docs/design-system/appearance-presets.md +6 -1
- package/docs/design-system/component-docs-pattern.md +81 -0
- package/docs/design-system/component-implementation-ownership-audit.md +244 -0
- package/docs/design-system/component-quality-audit-2026-08-20.md +223 -0
- package/docs/design-system/component-showcase-consistency-report.md +2 -0
- package/docs/design-system/component-token-consistency-audit.md +13 -3
- package/docs/design-system/components/README.md +4 -2
- package/docs/design-system/components/accordion.md +16 -0
- package/docs/design-system/components/activity-feed.md +17 -1
- package/docs/design-system/components/activity-heatmap.md +73 -0
- package/docs/design-system/components/alert-dialog.md +17 -0
- package/docs/design-system/components/alert.md +46 -14
- package/docs/design-system/components/aspect-ratio.md +15 -0
- package/docs/design-system/components/attribute.md +16 -0
- package/docs/design-system/components/autocomplete.md +19 -0
- package/docs/design-system/components/avatar.md +18 -0
- package/docs/design-system/components/badge.md +19 -0
- package/docs/design-system/components/banner.md +19 -1
- package/docs/design-system/components/breadcrumbs.md +17 -0
- package/docs/design-system/components/button-group.md +35 -0
- package/docs/design-system/components/button.md +18 -0
- package/docs/design-system/components/card.md +26 -1
- package/docs/design-system/components/carousel.md +20 -3
- package/docs/design-system/components/catalog-components.md +18 -1
- package/docs/design-system/components/chart.md +15 -0
- package/docs/design-system/components/checkbox.md +16 -0
- package/docs/design-system/components/collapsible.md +15 -0
- package/docs/design-system/components/command.md +15 -0
- package/docs/design-system/components/context-menu.md +15 -0
- package/docs/design-system/components/date-picker.md +21 -1
- package/docs/design-system/components/divider.md +16 -0
- package/docs/design-system/components/empty-state.md +17 -0
- package/docs/design-system/components/field.md +17 -0
- package/docs/design-system/components/file-upload.md +18 -0
- package/docs/design-system/components/hover-card.md +15 -0
- package/docs/design-system/components/input-group.md +17 -0
- package/docs/design-system/components/input-otp.md +18 -0
- package/docs/design-system/components/input.md +43 -7
- package/docs/design-system/components/item.md +72 -0
- package/docs/design-system/components/kbd.md +18 -0
- package/docs/design-system/components/label.md +16 -0
- package/docs/design-system/components/menu.md +17 -0
- package/docs/design-system/components/menubar.md +15 -0
- package/docs/design-system/components/modal.md +25 -4
- package/docs/design-system/components/native-select.md +18 -0
- package/docs/design-system/components/navigation-menu.md +15 -0
- package/docs/design-system/components/onboarding-step-list-item.md +16 -1
- package/docs/design-system/components/page-header.md +17 -1
- package/docs/design-system/components/pagination.md +31 -8
- package/docs/design-system/components/popover.md +19 -0
- package/docs/design-system/components/progress-slider.md +18 -0
- package/docs/design-system/components/progress.md +17 -0
- package/docs/design-system/components/radio-card.md +16 -0
- package/docs/design-system/components/radio-group.md +17 -0
- package/docs/design-system/components/resizable.md +15 -0
- package/docs/design-system/components/scroll-area.md +20 -1
- package/docs/design-system/components/segmented-control.md +71 -0
- package/docs/design-system/components/select.md +44 -7
- package/docs/design-system/components/sheet.md +17 -0
- package/docs/design-system/components/sidebar.md +17 -0
- package/docs/design-system/components/skeleton.md +18 -0
- package/docs/design-system/components/slideout.md +17 -0
- package/docs/design-system/components/slider.md +20 -0
- package/docs/design-system/components/social-button.md +21 -3
- package/docs/design-system/components/spinner.md +16 -0
- package/docs/design-system/components/steps.md +19 -0
- package/docs/design-system/components/table.md +36 -4
- package/docs/design-system/components/tabs.md +17 -0
- package/docs/design-system/components/tag.md +17 -0
- package/docs/design-system/components/textarea.md +16 -0
- package/docs/design-system/components/timeline.md +17 -0
- package/docs/design-system/components/toast.md +17 -0
- package/docs/design-system/components/toggle.md +17 -0
- package/docs/design-system/components/toolbar.md +21 -1
- package/docs/design-system/components/tooltip.md +18 -1
- package/docs/design-system/density-and-elevation.md +61 -0
- package/docs/design-system/direction-and-localization.md +23 -0
- package/docs/design-system/form-recipes.md +73 -0
- package/docs/design-system/gap-promotion-policy.md +21 -0
- package/docs/design-system/gap-promotion-report.md +100 -0
- package/docs/design-system/installation.md +68 -0
- package/docs/design-system/launch-comparison-shadcn.md +98 -0
- package/docs/design-system/registry-and-cli.md +30 -7
- package/docs/design-system/release-policy.md +30 -0
- package/docs/design-system/roadmap.md +14 -0
- package/docs/design-system/support-matrix.md +23 -0
- package/docs/design-system/tabs.md +1 -1
- package/docs/design-system/token-governance.md +23 -1
- package/package.json +30 -15
- package/registry/component-contract.json +40 -0
- package/registry/components/alert-dialog.tsx +2 -2
- package/registry/components/alert.tsx +101 -76
- package/registry/components/autocomplete.tsx +23 -9
- package/registry/components/avatar.tsx +14 -10
- package/registry/components/badge.tsx +18 -18
- package/registry/components/button-group.tsx +324 -5
- package/registry/components/button.tsx +38 -17
- package/registry/components/card.tsx +87 -62
- package/registry/components/carousel.tsx +67 -5
- package/registry/components/chart.tsx +36 -3
- package/registry/components/checkbox.tsx +3 -3
- package/registry/components/collapsible.tsx +1 -1
- package/registry/components/command.tsx +38 -4
- package/registry/components/context-menu.tsx +1 -1
- package/registry/components/date-picker.tsx +312 -135
- package/registry/components/expanded/ActivityFeed.tsx +9 -22
- package/registry/components/expanded/ActivityHeatmap.tsx +64 -0
- package/registry/components/expanded/Banner.tsx +3 -4
- package/registry/components/expanded/Breadcrumbs.tsx +8 -5
- package/registry/components/expanded/CatalogComponentsShowcase.tsx +16 -17
- package/registry/components/expanded/CatalogDivider.tsx +4 -3
- package/registry/components/expanded/EmptyState.tsx +1 -1
- package/registry/components/expanded/FileUpload.tsx +16 -7
- package/registry/components/expanded/OnboardingStepListItem.tsx +2 -6
- package/registry/components/expanded/PageHeader.tsx +47 -56
- package/registry/components/expanded/Slideout.tsx +29 -424
- package/registry/components/expanded/Steps.tsx +151 -13
- package/registry/components/expanded/Table.tsx +161 -82
- package/registry/components/expanded/Timeline.tsx +14 -27
- package/registry/components/expanded/activityFeed.css +9 -9
- package/registry/components/expanded/activityHeatmap.css +66 -0
- package/registry/components/expanded/banner.css +21 -11
- package/registry/components/expanded/breadcrumbs.css +2 -2
- package/registry/components/expanded/divider.css +1 -1
- package/registry/components/expanded/emptyState.css +1 -1
- package/registry/components/expanded/fileUpload.css +7 -7
- package/registry/components/expanded/onboardingStepListItem.css +2 -2
- package/registry/components/expanded/pageHeader.css +14 -11
- package/registry/components/expanded/slideout.css +10 -690
- package/registry/components/expanded/steps.css +78 -15
- package/registry/components/expanded/table.css +60 -69
- package/registry/components/expanded/timeline.css +19 -18
- package/registry/components/field.tsx +61 -8
- package/registry/components/input-content.ts +1 -0
- package/registry/components/input-otp.tsx +13 -3
- package/registry/components/input.tsx +68 -43
- package/registry/components/item.tsx +189 -0
- package/registry/components/kbd.tsx +111 -4
- package/registry/components/menu.tsx +87 -251
- package/registry/components/menubar.tsx +1 -1
- package/registry/components/modal.tsx +143 -103
- package/registry/components/native-select.tsx +2 -2
- package/registry/components/navigation-menu.tsx +1 -1
- package/registry/components/pagination.css +36 -0
- package/registry/components/pagination.tsx +88 -64
- package/registry/components/popover.tsx +162 -664
- package/registry/components/progress-slider.tsx +1 -1
- package/registry/components/radio-card.tsx +116 -87
- package/registry/components/resizable.tsx +36 -2
- package/registry/components/scroll-area.tsx +30 -6
- package/registry/components/segmented-control.tsx +87 -0
- package/registry/components/select-content.tsx +2 -2
- package/registry/components/select.tsx +86 -27
- package/registry/components/sheet.tsx +1 -1
- package/registry/components/sidebar.tsx +12 -6
- package/registry/components/skeleton.css +0 -3
- package/registry/components/social-button.tsx +59 -30
- package/registry/components/spinner.tsx +18 -55
- package/registry/components/table-elements.tsx +128 -0
- package/registry/components/tabs.css +1 -1
- package/registry/components/tabs.tsx +13 -14
- package/registry/components/tag.tsx +3 -3
- package/registry/components/textarea.tsx +3 -3
- package/registry/components/toast.tsx +16 -11
- package/registry/components/toggle.tsx +4 -4
- package/registry/components/toolbar.tsx +94 -22
- package/registry/components/tooltip.tsx +2 -2
- package/registry/examples/alert-demo.tsx +25 -5
- package/registry/examples/attribute-demo.tsx +1 -1
- package/registry/examples/autocomplete-demo.tsx +3 -3
- package/registry/examples/avatar-demo.tsx +14 -11
- package/registry/examples/badge-demo.tsx +1 -1
- package/registry/examples/button-demo.tsx +6 -6
- package/registry/examples/button-group-demo.tsx +23 -2
- package/registry/examples/card-demo.tsx +46 -8
- package/registry/examples/carousel-demo.tsx +20 -2
- package/registry/examples/chart-demo.tsx +1 -1
- package/registry/examples/checkbox-demo.tsx +5 -5
- package/registry/examples/collection-filter-bar-demo.tsx +135 -0
- package/registry/examples/command-demo.tsx +3 -3
- package/registry/examples/{expanded/command-bar-demo.tsx → command-palette-demo.tsx} +5 -15
- package/registry/examples/context-menu-demo.tsx +1 -1
- package/registry/examples/control-density-contract-demo.tsx +61 -0
- package/registry/examples/date-picker-demo.tsx +12 -12
- package/registry/examples/divider-demo.tsx +3 -3
- package/registry/examples/expanded/activity-heatmap-demo.tsx +29 -0
- package/registry/examples/expanded/banner-demo.tsx +1 -1
- package/registry/examples/expanded/breadcrumbs-demo.tsx +4 -4
- package/registry/examples/expanded/empty-state-demo.tsx +1 -1
- package/registry/examples/expanded/file-upload-demo.tsx +1 -1
- package/registry/examples/expanded/onboarding-step-demo.tsx +1 -1
- package/registry/examples/expanded/slideout-demo.tsx +2 -2
- package/registry/examples/expanded/steps-demo.tsx +1 -1
- package/registry/examples/expanded/tabs-demo.tsx +1 -1
- package/registry/examples/expanded/timeline-demo.tsx +1 -1
- package/registry/examples/hover-card-demo.tsx +2 -2
- package/registry/examples/input-demo.tsx +6 -6
- package/registry/examples/input-otp-demo.tsx +4 -4
- package/registry/examples/item-demo.tsx +46 -0
- package/registry/examples/kbd-demo.tsx +1 -1
- package/registry/examples/label-demo.tsx +1 -1
- package/registry/examples/menu-demo.tsx +1 -1
- package/registry/examples/modal-demo.tsx +67 -9
- package/registry/examples/navigation-menu-demo.tsx +1 -1
- package/registry/examples/pagination-demo.tsx +10 -7
- package/registry/examples/popover-demo.tsx +19 -19
- package/registry/examples/progress-demo.tsx +1 -1
- package/registry/examples/progress-slider-demo.tsx +1 -1
- package/registry/examples/radio-card-demo.tsx +4 -4
- package/registry/examples/radio-group-demo.tsx +2 -2
- package/registry/examples/resizable-demo.tsx +1 -1
- package/registry/examples/results-toolbar-demo.tsx +44 -0
- package/registry/examples/scroll-area-demo.tsx +3 -3
- package/registry/examples/segmented-control-demo.tsx +39 -0
- package/registry/examples/select-demo.tsx +1 -1
- package/registry/examples/sidebar-demo.tsx +5 -3
- package/registry/examples/slider-demo.tsx +3 -3
- package/registry/examples/social-button-demo.tsx +18 -8
- package/registry/examples/spinner-demo.tsx +13 -13
- package/registry/examples/tabs-demo.tsx +1 -1
- package/registry/examples/tag-demo.tsx +1 -1
- package/registry/examples/textarea-demo.tsx +4 -4
- package/registry/examples/toast-demo.tsx +1 -1
- package/registry/examples/toggle-demo.tsx +6 -6
- package/registry/examples/tooltip-demo.tsx +4 -4
- package/registry/guidance/USAGE.md +27 -0
- package/registry/hooks/use-direction.ts +193 -13
- package/registry/index.json +5668 -375
- package/registry/styles/globals.css +2404 -3999
- package/registry.json +156 -149
- package/schema/config.schema.json +11 -8
- package/schema/registry.schema.json +150 -45
- package/schema/tokens.schema.json +134 -34
- package/src/cli/command-line.js +194 -0
- package/src/cli/config-editors.js +9 -0
- package/src/cli/doctor.js +399 -0
- package/src/cli/file-transaction.js +295 -0
- package/src/cli/global-css.js +153 -0
- package/src/cli/index.js +567 -1613
- package/src/cli/install-plan.js +592 -0
- package/src/cli/install-receipt.js +171 -0
- package/src/cli/jsonc.js +203 -0
- package/src/cli/package-install-state.js +254 -0
- package/src/cli/package-manager.js +238 -0
- package/src/cli/package-plan.js +185 -0
- package/src/cli/package-version.js +97 -0
- package/src/cli/registry-query.js +207 -0
- package/src/cli/reporting.js +55 -0
- package/src/cli/schema-validation.js +19 -0
- package/src/cli/source-scanner.js +686 -0
- package/src/cli/vite-config.js +478 -0
- package/tokens/banhaten.tokens.json +4444 -331
- package/docs/design-system/components/command-bar.md +0 -57
- package/registry/components/expanded/BannerBoard.tsx +0 -225
- package/registry/components/expanded/CatalogTag.tsx +0 -85
- package/registry/components/expanded/CommandBar.tsx +0 -386
- package/registry/components/expanded/IconExplorer.tsx +0 -612
- package/registry/components/expanded/TimelineShowcase.tsx +0 -158
- package/registry/components/expanded/commandBar.css +0 -470
- package/registry/components/expanded/iconExplorer.css +0 -764
- package/registry/components/expanded/iconPacks.ts +0 -866
- package/registry/components/expanded/tag.css +0 -148
- package/registry/examples/expanded/icons-demo.tsx +0 -5
- package/tokens/Color mode.zip +0 -0
- package/tokens/Numbers.zip +0 -0
- package/tokens/Radius.zip +0 -0
- package/tokens/Theme.zip +0 -0
package/registry.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"description": "Banhaten base utilities, direction hook, and generated token stylesheet required by registry components.",
|
|
11
11
|
"author": "Ahmad Galal",
|
|
12
12
|
"dependencies": [
|
|
13
|
+
"@fontsource/ibm-plex-sans-arabic@^5.2.9",
|
|
13
14
|
"@fontsource/inter@^5.2.8",
|
|
14
15
|
"class-variance-authority@^0.7.1",
|
|
15
16
|
"clsx@^2.1.1",
|
|
@@ -26,6 +27,11 @@
|
|
|
26
27
|
"type": "registry:hook",
|
|
27
28
|
"target": "@hooks/use-direction.ts"
|
|
28
29
|
},
|
|
30
|
+
{
|
|
31
|
+
"path": "registry/guidance/USAGE.md",
|
|
32
|
+
"type": "registry:file",
|
|
33
|
+
"target": ".banhaten/USAGE.md"
|
|
34
|
+
},
|
|
29
35
|
{
|
|
30
36
|
"path": "registry/styles/globals.css",
|
|
31
37
|
"type": "registry:style",
|
|
@@ -172,7 +178,8 @@
|
|
|
172
178
|
"description": "Accessible button primitive with semantic variants, size scale, loading composition, and RTL-safe icon behavior.",
|
|
173
179
|
"author": "Ahmad Galal",
|
|
174
180
|
"registryDependencies": [
|
|
175
|
-
"base"
|
|
181
|
+
"base",
|
|
182
|
+
"spinner"
|
|
176
183
|
],
|
|
177
184
|
"dependencies": [
|
|
178
185
|
"@radix-ui/react-slot@^1.2.3",
|
|
@@ -183,11 +190,6 @@
|
|
|
183
190
|
"path": "registry/components/button.tsx",
|
|
184
191
|
"type": "registry:component",
|
|
185
192
|
"target": "@ui/button.tsx"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"path": "registry/components/spinner.tsx",
|
|
189
|
-
"type": "registry:component",
|
|
190
|
-
"target": "@ui/spinner.tsx"
|
|
191
193
|
}
|
|
192
194
|
]
|
|
193
195
|
},
|
|
@@ -264,7 +266,7 @@
|
|
|
264
266
|
"name": "button-group",
|
|
265
267
|
"type": "registry:component",
|
|
266
268
|
"title": "Button Group",
|
|
267
|
-
"description": "Connected Button Group
|
|
269
|
+
"description": "Connected Button Group and Toggle Group primitives with semantic control density, fixed or content-width items, reusable surface styling, RTL-safe spacing, and accessible pressed states.",
|
|
268
270
|
"author": "Ahmad Galal",
|
|
269
271
|
"registryDependencies": [
|
|
270
272
|
"base"
|
|
@@ -281,6 +283,25 @@
|
|
|
281
283
|
}
|
|
282
284
|
]
|
|
283
285
|
},
|
|
286
|
+
{
|
|
287
|
+
"name": "segmented-control",
|
|
288
|
+
"type": "registry:component",
|
|
289
|
+
"title": "Segmented Control",
|
|
290
|
+
"description": "Content-width single or multiple selection control with semantic density, an optional non-interactive label segment, keyboard navigation, pressed states, and RTL support.",
|
|
291
|
+
"author": "Ahmad Galal",
|
|
292
|
+
"registryDependencies": [
|
|
293
|
+
"base",
|
|
294
|
+
"button-group"
|
|
295
|
+
],
|
|
296
|
+
"dependencies": [],
|
|
297
|
+
"files": [
|
|
298
|
+
{
|
|
299
|
+
"path": "registry/components/segmented-control.tsx",
|
|
300
|
+
"type": "registry:component",
|
|
301
|
+
"target": "@ui/segmented-control.tsx"
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
},
|
|
284
305
|
{
|
|
285
306
|
"name": "toggle",
|
|
286
307
|
"type": "registry:component",
|
|
@@ -292,7 +313,8 @@
|
|
|
292
313
|
],
|
|
293
314
|
"dependencies": [
|
|
294
315
|
"@radix-ui/react-switch@^1.3.0",
|
|
295
|
-
"class-variance-authority@^0.7.1"
|
|
316
|
+
"class-variance-authority@^0.7.1",
|
|
317
|
+
"lucide-react@^1.17.0"
|
|
296
318
|
],
|
|
297
319
|
"files": [
|
|
298
320
|
{
|
|
@@ -416,17 +438,10 @@
|
|
|
416
438
|
"description": "Token-built popover primitive with click, focus, and hover-capable triggers, positioned content, optional arrow, alignment and offset controls, close affordance, small to large surfaces, and RTL-safe composition.",
|
|
417
439
|
"author": "Ahmad Galal",
|
|
418
440
|
"registryDependencies": [
|
|
419
|
-
"base"
|
|
420
|
-
"badge",
|
|
421
|
-
"button",
|
|
422
|
-
"checkbox",
|
|
423
|
-
"input",
|
|
424
|
-
"menu",
|
|
425
|
-
"select",
|
|
426
|
-
"toggle"
|
|
441
|
+
"base"
|
|
427
442
|
],
|
|
428
443
|
"dependencies": [
|
|
429
|
-
"@radix-ui/react-
|
|
444
|
+
"@radix-ui/react-popover@^1.1.19",
|
|
430
445
|
"class-variance-authority@^0.7.1",
|
|
431
446
|
"lucide-react@^1.17.0"
|
|
432
447
|
],
|
|
@@ -518,7 +533,8 @@
|
|
|
518
533
|
],
|
|
519
534
|
"dependencies": [
|
|
520
535
|
"@radix-ui/react-checkbox@^1.3.3",
|
|
521
|
-
"class-variance-authority@^0.7.1"
|
|
536
|
+
"class-variance-authority@^0.7.1",
|
|
537
|
+
"lucide-react@^1.17.0"
|
|
522
538
|
],
|
|
523
539
|
"files": [
|
|
524
540
|
{
|
|
@@ -579,7 +595,8 @@
|
|
|
579
595
|
"base"
|
|
580
596
|
],
|
|
581
597
|
"dependencies": [
|
|
582
|
-
"class-variance-authority@^0.7.1"
|
|
598
|
+
"class-variance-authority@^0.7.1",
|
|
599
|
+
"lucide-react@^1.17.0"
|
|
583
600
|
],
|
|
584
601
|
"files": [
|
|
585
602
|
{
|
|
@@ -613,15 +630,21 @@
|
|
|
613
630
|
"name": "pagination",
|
|
614
631
|
"type": "registry:component",
|
|
615
632
|
"title": "Pagination",
|
|
616
|
-
"description": "Figma-matched pagination primitive with numeric, simple, and summary layouts, soft and ghost styles, exact 32px controls, caption variants, and
|
|
633
|
+
"description": "Figma-matched pagination primitive with numeric, simple, and summary layouts, soft and ghost styles, exact 32px controls, caption variants, and explicit localized messages.",
|
|
617
634
|
"author": "Ahmad Galal",
|
|
618
635
|
"registryDependencies": [
|
|
619
636
|
"base"
|
|
620
637
|
],
|
|
621
638
|
"dependencies": [
|
|
622
|
-
"class-variance-authority@^0.7.1"
|
|
639
|
+
"class-variance-authority@^0.7.1",
|
|
640
|
+
"lucide-react@^1.17.0"
|
|
623
641
|
],
|
|
624
642
|
"files": [
|
|
643
|
+
{
|
|
644
|
+
"path": "registry/components/pagination.css",
|
|
645
|
+
"type": "registry:style",
|
|
646
|
+
"target": "@ui/pagination.css"
|
|
647
|
+
},
|
|
625
648
|
{
|
|
626
649
|
"path": "registry/components/pagination.tsx",
|
|
627
650
|
"type": "registry:component",
|
|
@@ -636,7 +659,8 @@
|
|
|
636
659
|
"description": "Figma Filter Toolbar primitive with eight filter/action styles, search fields, select triggers, icon actions, chips, selected-count badges, desktop/mobile wrapping, and RTL-safe composition.",
|
|
637
660
|
"author": "Ahmad Galal",
|
|
638
661
|
"registryDependencies": [
|
|
639
|
-
"base"
|
|
662
|
+
"base",
|
|
663
|
+
"kbd"
|
|
640
664
|
],
|
|
641
665
|
"dependencies": [
|
|
642
666
|
"@radix-ui/react-slot@^1.2.3",
|
|
@@ -655,14 +679,15 @@
|
|
|
655
679
|
"name": "social-button",
|
|
656
680
|
"type": "registry:component",
|
|
657
681
|
"title": "Social Button",
|
|
658
|
-
"description": "Social sign-in button primitive with Figma-matched platform styles, solid and outlined variants, icon-only mode, native focus-visible styling, and
|
|
682
|
+
"description": "Social sign-in button primitive with Figma-matched platform styles, solid and outlined variants, icon-only mode, native focus-visible styling, and explicit localized messages.",
|
|
659
683
|
"author": "Ahmad Galal",
|
|
660
684
|
"registryDependencies": [
|
|
661
685
|
"base"
|
|
662
686
|
],
|
|
663
687
|
"dependencies": [
|
|
664
688
|
"@radix-ui/react-slot@^1.2.3",
|
|
665
|
-
"class-variance-authority@^0.7.1"
|
|
689
|
+
"class-variance-authority@^0.7.1",
|
|
690
|
+
"lucide-react@^1.17.0"
|
|
666
691
|
],
|
|
667
692
|
"files": [
|
|
668
693
|
{
|
|
@@ -676,13 +701,15 @@
|
|
|
676
701
|
"name": "input",
|
|
677
702
|
"type": "registry:component",
|
|
678
703
|
"title": "Input",
|
|
679
|
-
"description": "
|
|
704
|
+
"description": "Tokenized input field with semantic control density, labels, helper and error text, explicit icons, shared keyboard shortcuts, add-ons, tags, default and soft styles, and RTL states.",
|
|
680
705
|
"author": "Ahmad Galal",
|
|
681
706
|
"registryDependencies": [
|
|
682
|
-
"base"
|
|
707
|
+
"base",
|
|
708
|
+
"kbd"
|
|
683
709
|
],
|
|
684
710
|
"dependencies": [
|
|
685
|
-
"class-variance-authority@^0.7.1"
|
|
711
|
+
"class-variance-authority@^0.7.1",
|
|
712
|
+
"lucide-react@^1.17.0"
|
|
686
713
|
],
|
|
687
714
|
"files": [
|
|
688
715
|
{
|
|
@@ -744,7 +771,7 @@
|
|
|
744
771
|
"name": "kbd",
|
|
745
772
|
"type": "registry:component",
|
|
746
773
|
"title": "Kbd",
|
|
747
|
-
"description": "Keyboard
|
|
774
|
+
"description": "Keyboard key and platform-aware shortcut primitives for search fields, command rows, and help text with shared tokenized surfaces.",
|
|
748
775
|
"author": "Ahmad Galal",
|
|
749
776
|
"registryDependencies": [
|
|
750
777
|
"base"
|
|
@@ -760,6 +787,27 @@
|
|
|
760
787
|
}
|
|
761
788
|
]
|
|
762
789
|
},
|
|
790
|
+
{
|
|
791
|
+
"name": "item",
|
|
792
|
+
"type": "registry:component",
|
|
793
|
+
"title": "Item",
|
|
794
|
+
"description": "Composable Banhaten list item with media, content, title, description, actions, grouping, separators, three surface variants, three sizes, and RTL-safe logical layout.",
|
|
795
|
+
"author": "Ahmad Galal",
|
|
796
|
+
"registryDependencies": [
|
|
797
|
+
"base"
|
|
798
|
+
],
|
|
799
|
+
"dependencies": [
|
|
800
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
801
|
+
"class-variance-authority@^0.7.1"
|
|
802
|
+
],
|
|
803
|
+
"files": [
|
|
804
|
+
{
|
|
805
|
+
"path": "registry/components/item.tsx",
|
|
806
|
+
"type": "registry:component",
|
|
807
|
+
"target": "@ui/item.tsx"
|
|
808
|
+
}
|
|
809
|
+
]
|
|
810
|
+
},
|
|
763
811
|
{
|
|
764
812
|
"name": "field",
|
|
765
813
|
"type": "registry:component",
|
|
@@ -806,7 +854,7 @@
|
|
|
806
854
|
"name": "select",
|
|
807
855
|
"type": "registry:component",
|
|
808
856
|
"title": "Select",
|
|
809
|
-
"description": "Radix Select-backed
|
|
857
|
+
"description": "Radix Select-backed field and menu primitives with semantic control density, default and soft trigger styles, error/filled/disabled states, checkbox and check selection, and rich item media.",
|
|
810
858
|
"author": "Ahmad Galal",
|
|
811
859
|
"registryDependencies": [
|
|
812
860
|
"base"
|
|
@@ -965,6 +1013,7 @@
|
|
|
965
1013
|
"registryDependencies": [
|
|
966
1014
|
"base",
|
|
967
1015
|
"input",
|
|
1016
|
+
"popover",
|
|
968
1017
|
"select",
|
|
969
1018
|
"tag"
|
|
970
1019
|
],
|
|
@@ -983,10 +1032,11 @@
|
|
|
983
1032
|
"name": "date-picker",
|
|
984
1033
|
"type": "registry:component",
|
|
985
1034
|
"title": "Date Picker",
|
|
986
|
-
"description": "
|
|
1035
|
+
"description": "Calendar, Range Calendar, Date Picker, and Date Range Picker suite with semantic trigger density, explicit calendar affordances, presets, time, range selection, and RTL support.",
|
|
987
1036
|
"author": "Ahmad Galal",
|
|
988
1037
|
"registryDependencies": [
|
|
989
|
-
"base"
|
|
1038
|
+
"base",
|
|
1039
|
+
"popover"
|
|
990
1040
|
],
|
|
991
1041
|
"dependencies": [
|
|
992
1042
|
"class-variance-authority@^0.7.1",
|
|
@@ -1078,7 +1128,8 @@
|
|
|
1078
1128
|
"base"
|
|
1079
1129
|
],
|
|
1080
1130
|
"dependencies": [
|
|
1081
|
-
"class-variance-authority@^0.7.1"
|
|
1131
|
+
"class-variance-authority@^0.7.1",
|
|
1132
|
+
"lucide-react@^1.17.0"
|
|
1082
1133
|
],
|
|
1083
1134
|
"files": [
|
|
1084
1135
|
{
|
|
@@ -1180,6 +1231,29 @@
|
|
|
1180
1231
|
}
|
|
1181
1232
|
]
|
|
1182
1233
|
},
|
|
1234
|
+
{
|
|
1235
|
+
"name": "activity-heatmap",
|
|
1236
|
+
"type": "registry:block",
|
|
1237
|
+
"title": "Activity Heatmap",
|
|
1238
|
+
"description": "Token-only calendar activity heatmap with seven-day columns, five semantic intensity levels, responsive horizontal overflow, cell labels, and RTL support.",
|
|
1239
|
+
"author": "Ahmad Galal",
|
|
1240
|
+
"registryDependencies": [
|
|
1241
|
+
"base"
|
|
1242
|
+
],
|
|
1243
|
+
"dependencies": [],
|
|
1244
|
+
"files": [
|
|
1245
|
+
{
|
|
1246
|
+
"path": "registry/components/expanded/activityHeatmap.css",
|
|
1247
|
+
"type": "registry:style",
|
|
1248
|
+
"target": "@ui/expanded/activityHeatmap.css"
|
|
1249
|
+
},
|
|
1250
|
+
{
|
|
1251
|
+
"path": "registry/components/expanded/ActivityHeatmap.tsx",
|
|
1252
|
+
"type": "registry:component",
|
|
1253
|
+
"target": "@ui/expanded/ActivityHeatmap.tsx"
|
|
1254
|
+
}
|
|
1255
|
+
]
|
|
1256
|
+
},
|
|
1183
1257
|
{
|
|
1184
1258
|
"name": "alert",
|
|
1185
1259
|
"type": "registry:component",
|
|
@@ -1187,10 +1261,12 @@
|
|
|
1187
1261
|
"description": "Contextual feedback primitive with danger, success, warning, info, neutral, compact, expandable, action, close, and RTL variants.",
|
|
1188
1262
|
"author": "Ahmad Galal",
|
|
1189
1263
|
"registryDependencies": [
|
|
1190
|
-
"base"
|
|
1264
|
+
"base",
|
|
1265
|
+
"button"
|
|
1191
1266
|
],
|
|
1192
1267
|
"dependencies": [
|
|
1193
|
-
"class-variance-authority@^0.7.1"
|
|
1268
|
+
"class-variance-authority@^0.7.1",
|
|
1269
|
+
"lucide-react@^1.17.0"
|
|
1194
1270
|
],
|
|
1195
1271
|
"files": [
|
|
1196
1272
|
{
|
|
@@ -1211,7 +1287,9 @@
|
|
|
1211
1287
|
"button",
|
|
1212
1288
|
"input"
|
|
1213
1289
|
],
|
|
1214
|
-
"dependencies": [
|
|
1290
|
+
"dependencies": [
|
|
1291
|
+
"lucide-react@^1.17.0"
|
|
1292
|
+
],
|
|
1215
1293
|
"files": [
|
|
1216
1294
|
{
|
|
1217
1295
|
"path": "registry/components/expanded/banner.css",
|
|
@@ -1222,11 +1300,6 @@
|
|
|
1222
1300
|
"path": "registry/components/expanded/Banner.tsx",
|
|
1223
1301
|
"type": "registry:component",
|
|
1224
1302
|
"target": "@ui/expanded/Banner.tsx"
|
|
1225
|
-
},
|
|
1226
|
-
{
|
|
1227
|
-
"path": "registry/components/expanded/BannerBoard.tsx",
|
|
1228
|
-
"type": "registry:component",
|
|
1229
|
-
"target": "@ui/expanded/BannerBoard.tsx"
|
|
1230
1303
|
}
|
|
1231
1304
|
]
|
|
1232
1305
|
},
|
|
@@ -1234,26 +1307,20 @@
|
|
|
1234
1307
|
"name": "catalog-components",
|
|
1235
1308
|
"type": "registry:block",
|
|
1236
1309
|
"title": "Catalog Components",
|
|
1237
|
-
"description": "Expanded catalog showcase with breadcrumbs, catalog-only content dividers,
|
|
1310
|
+
"description": "Expanded catalog showcase with breadcrumbs, catalog-only content dividers, tag previews, file upload states, and table previews.",
|
|
1238
1311
|
"author": "Ahmad Galal",
|
|
1239
1312
|
"registryDependencies": [
|
|
1240
1313
|
"base",
|
|
1241
|
-
"
|
|
1314
|
+
"breadcrumbs",
|
|
1315
|
+
"button",
|
|
1316
|
+
"file-upload",
|
|
1317
|
+
"table",
|
|
1318
|
+
"tag"
|
|
1242
1319
|
],
|
|
1243
1320
|
"dependencies": [
|
|
1244
1321
|
"lucide-react@^1.17.0"
|
|
1245
1322
|
],
|
|
1246
1323
|
"files": [
|
|
1247
|
-
{
|
|
1248
|
-
"path": "registry/components/expanded/breadcrumbs.css",
|
|
1249
|
-
"type": "registry:style",
|
|
1250
|
-
"target": "@ui/expanded/breadcrumbs.css"
|
|
1251
|
-
},
|
|
1252
|
-
{
|
|
1253
|
-
"path": "registry/components/expanded/Breadcrumbs.tsx",
|
|
1254
|
-
"type": "registry:component",
|
|
1255
|
-
"target": "@ui/expanded/Breadcrumbs.tsx"
|
|
1256
|
-
},
|
|
1257
1324
|
{
|
|
1258
1325
|
"path": "registry/components/expanded/catalogComponentsShowcase.css",
|
|
1259
1326
|
"type": "registry:style",
|
|
@@ -1273,36 +1340,6 @@
|
|
|
1273
1340
|
"path": "registry/components/expanded/CatalogDivider.tsx",
|
|
1274
1341
|
"type": "registry:component",
|
|
1275
1342
|
"target": "@ui/expanded/CatalogDivider.tsx"
|
|
1276
|
-
},
|
|
1277
|
-
{
|
|
1278
|
-
"path": "registry/components/expanded/fileUpload.css",
|
|
1279
|
-
"type": "registry:style",
|
|
1280
|
-
"target": "@ui/expanded/fileUpload.css"
|
|
1281
|
-
},
|
|
1282
|
-
{
|
|
1283
|
-
"path": "registry/components/expanded/FileUpload.tsx",
|
|
1284
|
-
"type": "registry:component",
|
|
1285
|
-
"target": "@ui/expanded/FileUpload.tsx"
|
|
1286
|
-
},
|
|
1287
|
-
{
|
|
1288
|
-
"path": "registry/components/expanded/table.css",
|
|
1289
|
-
"type": "registry:style",
|
|
1290
|
-
"target": "@ui/expanded/table.css"
|
|
1291
|
-
},
|
|
1292
|
-
{
|
|
1293
|
-
"path": "registry/components/expanded/Table.tsx",
|
|
1294
|
-
"type": "registry:component",
|
|
1295
|
-
"target": "@ui/expanded/Table.tsx"
|
|
1296
|
-
},
|
|
1297
|
-
{
|
|
1298
|
-
"path": "registry/components/expanded/tag.css",
|
|
1299
|
-
"type": "registry:style",
|
|
1300
|
-
"target": "@ui/expanded/tag.css"
|
|
1301
|
-
},
|
|
1302
|
-
{
|
|
1303
|
-
"path": "registry/components/expanded/CatalogTag.tsx",
|
|
1304
|
-
"type": "registry:component",
|
|
1305
|
-
"target": "@ui/expanded/CatalogTag.tsx"
|
|
1306
1343
|
}
|
|
1307
1344
|
]
|
|
1308
1345
|
},
|
|
@@ -1315,7 +1352,9 @@
|
|
|
1315
1352
|
"registryDependencies": [
|
|
1316
1353
|
"base"
|
|
1317
1354
|
],
|
|
1318
|
-
"dependencies": [
|
|
1355
|
+
"dependencies": [
|
|
1356
|
+
"lucide-react@^1.17.0"
|
|
1357
|
+
],
|
|
1319
1358
|
"files": [
|
|
1320
1359
|
{
|
|
1321
1360
|
"path": "registry/components/expanded/breadcrumbs.css",
|
|
@@ -1363,11 +1402,20 @@
|
|
|
1363
1402
|
"author": "Ahmad Galal",
|
|
1364
1403
|
"registryDependencies": [
|
|
1365
1404
|
"base",
|
|
1366
|
-
"
|
|
1405
|
+
"avatar",
|
|
1406
|
+
"badge",
|
|
1407
|
+
"button",
|
|
1408
|
+
"checkbox",
|
|
1367
1409
|
"pagination",
|
|
1368
|
-
"
|
|
1410
|
+
"progress",
|
|
1411
|
+
"spinner",
|
|
1412
|
+
"tag",
|
|
1413
|
+
"toggle",
|
|
1414
|
+
"toolbar"
|
|
1415
|
+
],
|
|
1416
|
+
"dependencies": [
|
|
1417
|
+
"lucide-react@^1.17.0"
|
|
1369
1418
|
],
|
|
1370
|
-
"dependencies": [],
|
|
1371
1419
|
"files": [
|
|
1372
1420
|
{
|
|
1373
1421
|
"path": "registry/components/expanded/table.css",
|
|
@@ -1378,32 +1426,11 @@
|
|
|
1378
1426
|
"path": "registry/components/expanded/Table.tsx",
|
|
1379
1427
|
"type": "registry:component",
|
|
1380
1428
|
"target": "@ui/expanded/Table.tsx"
|
|
1381
|
-
}
|
|
1382
|
-
]
|
|
1383
|
-
},
|
|
1384
|
-
{
|
|
1385
|
-
"name": "command-bar",
|
|
1386
|
-
"type": "registry:block",
|
|
1387
|
-
"title": "Command Bar",
|
|
1388
|
-
"description": "Expanded command bar composition for default, recent, results, and empty command-palette states across desktop, mobile, LTR, and RTL.",
|
|
1389
|
-
"author": "Ahmad Galal",
|
|
1390
|
-
"registryDependencies": [
|
|
1391
|
-
"base",
|
|
1392
|
-
"button"
|
|
1393
|
-
],
|
|
1394
|
-
"dependencies": [
|
|
1395
|
-
"lucide-react@^1.17.0"
|
|
1396
|
-
],
|
|
1397
|
-
"files": [
|
|
1398
|
-
{
|
|
1399
|
-
"path": "registry/components/expanded/commandBar.css",
|
|
1400
|
-
"type": "registry:style",
|
|
1401
|
-
"target": "@ui/expanded/commandBar.css"
|
|
1402
1429
|
},
|
|
1403
1430
|
{
|
|
1404
|
-
"path": "registry/components/
|
|
1431
|
+
"path": "registry/components/table-elements.tsx",
|
|
1405
1432
|
"type": "registry:component",
|
|
1406
|
-
"target": "@ui/
|
|
1433
|
+
"target": "@ui/table-elements.tsx"
|
|
1407
1434
|
}
|
|
1408
1435
|
]
|
|
1409
1436
|
},
|
|
@@ -1433,34 +1460,6 @@
|
|
|
1433
1460
|
}
|
|
1434
1461
|
]
|
|
1435
1462
|
},
|
|
1436
|
-
{
|
|
1437
|
-
"name": "icons",
|
|
1438
|
-
"type": "registry:block",
|
|
1439
|
-
"title": "Icons",
|
|
1440
|
-
"description": "Expanded icon explorer for open-source icon pack review, semantic mapping, shortlist comparison, and Iconify catalog inspection.",
|
|
1441
|
-
"author": "Ahmad Galal",
|
|
1442
|
-
"registryDependencies": [
|
|
1443
|
-
"base"
|
|
1444
|
-
],
|
|
1445
|
-
"dependencies": [],
|
|
1446
|
-
"files": [
|
|
1447
|
-
{
|
|
1448
|
-
"path": "registry/components/expanded/iconExplorer.css",
|
|
1449
|
-
"type": "registry:style",
|
|
1450
|
-
"target": "@ui/expanded/iconExplorer.css"
|
|
1451
|
-
},
|
|
1452
|
-
{
|
|
1453
|
-
"path": "registry/components/expanded/iconPacks.ts",
|
|
1454
|
-
"type": "registry:component",
|
|
1455
|
-
"target": "@ui/expanded/iconPacks.ts"
|
|
1456
|
-
},
|
|
1457
|
-
{
|
|
1458
|
-
"path": "registry/components/expanded/IconExplorer.tsx",
|
|
1459
|
-
"type": "registry:component",
|
|
1460
|
-
"target": "@ui/expanded/IconExplorer.tsx"
|
|
1461
|
-
}
|
|
1462
|
-
]
|
|
1463
|
-
},
|
|
1464
1463
|
{
|
|
1465
1464
|
"name": "onboarding-step",
|
|
1466
1465
|
"type": "registry:block",
|
|
@@ -1470,7 +1469,9 @@
|
|
|
1470
1469
|
"registryDependencies": [
|
|
1471
1470
|
"base"
|
|
1472
1471
|
],
|
|
1473
|
-
"dependencies": [
|
|
1472
|
+
"dependencies": [
|
|
1473
|
+
"lucide-react@^1.17.0"
|
|
1474
|
+
],
|
|
1474
1475
|
"files": [
|
|
1475
1476
|
{
|
|
1476
1477
|
"path": "registry/components/expanded/onboardingStepListItem.css",
|
|
@@ -1492,9 +1493,13 @@
|
|
|
1492
1493
|
"author": "Ahmad Galal",
|
|
1493
1494
|
"registryDependencies": [
|
|
1494
1495
|
"base",
|
|
1496
|
+
"breadcrumbs",
|
|
1497
|
+
"button",
|
|
1495
1498
|
"tabs"
|
|
1496
1499
|
],
|
|
1497
|
-
"dependencies": [
|
|
1500
|
+
"dependencies": [
|
|
1501
|
+
"lucide-react@^1.17.0"
|
|
1502
|
+
],
|
|
1498
1503
|
"files": [
|
|
1499
1504
|
{
|
|
1500
1505
|
"path": "registry/components/expanded/pageHeader.css",
|
|
@@ -1512,12 +1517,15 @@
|
|
|
1512
1517
|
"name": "slideout",
|
|
1513
1518
|
"type": "registry:block",
|
|
1514
1519
|
"title": "Slideout",
|
|
1515
|
-
"description": "Expanded slideout panel with desktop and mobile breakpoints, header and footer actions, slotted content, and RTL coverage.",
|
|
1520
|
+
"description": "Expanded presentational slideout panel with desktop and mobile breakpoints, header and footer actions, slotted content, and RTL coverage. Use Sheet or Modal when overlay behavior is required.",
|
|
1516
1521
|
"author": "Ahmad Galal",
|
|
1517
1522
|
"registryDependencies": [
|
|
1518
|
-
"base"
|
|
1523
|
+
"base",
|
|
1524
|
+
"button"
|
|
1525
|
+
],
|
|
1526
|
+
"dependencies": [
|
|
1527
|
+
"lucide-react@^1.17.0"
|
|
1519
1528
|
],
|
|
1520
|
-
"dependencies": [],
|
|
1521
1529
|
"files": [
|
|
1522
1530
|
{
|
|
1523
1531
|
"path": "registry/components/expanded/slideout.css",
|
|
@@ -1541,7 +1549,9 @@
|
|
|
1541
1549
|
"base",
|
|
1542
1550
|
"button"
|
|
1543
1551
|
],
|
|
1544
|
-
"dependencies": [
|
|
1552
|
+
"dependencies": [
|
|
1553
|
+
"lucide-react@^1.17.0"
|
|
1554
|
+
],
|
|
1545
1555
|
"files": [
|
|
1546
1556
|
{
|
|
1547
1557
|
"path": "registry/components/expanded/steps.css",
|
|
@@ -1589,7 +1599,9 @@
|
|
|
1589
1599
|
"registryDependencies": [
|
|
1590
1600
|
"base"
|
|
1591
1601
|
],
|
|
1592
|
-
"dependencies": [
|
|
1602
|
+
"dependencies": [
|
|
1603
|
+
"lucide-react@^1.17.0"
|
|
1604
|
+
],
|
|
1593
1605
|
"files": [
|
|
1594
1606
|
{
|
|
1595
1607
|
"path": "registry/components/expanded/timeline.css",
|
|
@@ -1600,11 +1612,6 @@
|
|
|
1600
1612
|
"path": "registry/components/expanded/Timeline.tsx",
|
|
1601
1613
|
"type": "registry:component",
|
|
1602
1614
|
"target": "@ui/expanded/Timeline.tsx"
|
|
1603
|
-
},
|
|
1604
|
-
{
|
|
1605
|
-
"path": "registry/components/expanded/TimelineShowcase.tsx",
|
|
1606
|
-
"type": "registry:component",
|
|
1607
|
-
"target": "@ui/expanded/TimelineShowcase.tsx"
|
|
1608
1615
|
}
|
|
1609
1616
|
]
|
|
1610
1617
|
}
|
|
@@ -3,43 +3,46 @@
|
|
|
3
3
|
"$id": "urn:banhaten:schema:config",
|
|
4
4
|
"title": "Banhaten CLI config",
|
|
5
5
|
"type": "object",
|
|
6
|
+
"required": ["tailwind", "aliases"],
|
|
6
7
|
"additionalProperties": false,
|
|
7
8
|
"properties": {
|
|
8
9
|
"$schema": {
|
|
9
10
|
"type": "string"
|
|
10
11
|
},
|
|
11
|
-
"style": {
|
|
12
|
-
"type": "string",
|
|
13
|
-
"default": "default"
|
|
14
|
-
},
|
|
15
|
-
"tsx": {
|
|
16
|
-
"type": "boolean",
|
|
17
|
-
"default": true
|
|
18
|
-
},
|
|
19
12
|
"tailwind": {
|
|
20
13
|
"type": "object",
|
|
14
|
+
"required": ["css"],
|
|
21
15
|
"additionalProperties": false,
|
|
22
16
|
"properties": {
|
|
23
17
|
"css": {
|
|
24
18
|
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"pattern": "^\\S(?:.*\\S)?$",
|
|
25
21
|
"description": "Path to the global CSS file that imports Tailwind and receives Banhaten tokens."
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
24
|
},
|
|
29
25
|
"aliases": {
|
|
30
26
|
"type": "object",
|
|
27
|
+
"required": ["ui", "utils", "hooks"],
|
|
31
28
|
"additionalProperties": false,
|
|
32
29
|
"properties": {
|
|
33
30
|
"ui": {
|
|
34
31
|
"type": "string",
|
|
32
|
+
"minLength": 1,
|
|
33
|
+
"pattern": "^\\S(?:.*\\S)?$",
|
|
35
34
|
"description": "Import alias where Banhaten UI components are installed."
|
|
36
35
|
},
|
|
37
36
|
"utils": {
|
|
38
37
|
"type": "string",
|
|
38
|
+
"minLength": 1,
|
|
39
|
+
"pattern": "^\\S(?:.*\\S)?$",
|
|
39
40
|
"description": "Import alias for the cn utility file."
|
|
40
41
|
},
|
|
41
42
|
"hooks": {
|
|
42
43
|
"type": "string",
|
|
44
|
+
"minLength": 1,
|
|
45
|
+
"pattern": "^\\S(?:.*\\S)?$",
|
|
43
46
|
"description": "Import alias for generated hooks."
|
|
44
47
|
}
|
|
45
48
|
}
|