banhaten 0.1.2 → 0.2.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 +45 -0
- package/CONTRIBUTING.md +44 -0
- package/README.md +145 -328
- package/SECURITY.md +15 -0
- package/banhaten.config.example.json +1 -3
- package/docs/design-system/README.md +20 -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 +189 -0
- package/docs/design-system/appearances/default.md +94 -0
- package/docs/design-system/appearances/rounded.md +95 -0
- package/docs/design-system/appearances/sharp.md +95 -0
- package/docs/design-system/component-docs-pattern.md +81 -0
- package/docs/design-system/component-showcase-consistency-report.md +217 -0
- package/docs/design-system/component-token-consistency-audit.md +173 -0
- package/docs/design-system/components/README.md +75 -0
- package/docs/design-system/components/accordion.md +67 -0
- package/docs/design-system/components/activity-feed.md +106 -0
- package/docs/design-system/components/alert-dialog.md +87 -0
- package/docs/design-system/components/alert.md +111 -0
- package/docs/design-system/components/aspect-ratio.md +59 -0
- package/docs/design-system/components/attribute.md +103 -0
- package/docs/design-system/components/autocomplete.md +93 -0
- package/docs/design-system/components/avatar.md +70 -0
- package/docs/design-system/components/badge.md +72 -0
- package/docs/design-system/components/banner.md +99 -0
- package/docs/design-system/components/breadcrumbs.md +188 -0
- package/docs/design-system/components/button-group.md +117 -0
- package/docs/design-system/components/button.md +95 -0
- package/docs/design-system/components/card.md +95 -0
- package/docs/design-system/components/carousel.md +61 -0
- package/docs/design-system/components/catalog-components.md +59 -0
- package/docs/design-system/components/chart.md +58 -0
- package/docs/design-system/components/checkbox.md +68 -0
- package/docs/design-system/components/collapsible.md +63 -0
- package/docs/design-system/components/command.md +75 -0
- package/docs/design-system/components/context-menu.md +59 -0
- package/docs/design-system/components/date-picker.md +97 -0
- package/docs/design-system/components/divider.md +117 -0
- package/docs/design-system/components/empty-state.md +72 -0
- package/docs/design-system/components/field.md +86 -0
- package/docs/design-system/components/file-upload.md +199 -0
- package/docs/design-system/components/hover-card.md +61 -0
- package/docs/design-system/components/icons.md +48 -0
- package/docs/design-system/components/input-group.md +73 -0
- package/docs/design-system/components/input-otp.md +73 -0
- package/docs/design-system/components/input.md +84 -0
- package/docs/design-system/components/item.md +72 -0
- package/docs/design-system/components/kbd.md +62 -0
- package/docs/design-system/components/label.md +64 -0
- package/docs/design-system/components/menu.md +76 -0
- package/docs/design-system/components/menubar.md +60 -0
- package/docs/design-system/components/modal.md +119 -0
- package/docs/design-system/components/native-select.md +70 -0
- package/docs/design-system/components/navigation-menu.md +63 -0
- package/docs/design-system/components/onboarding-step-list-item.md +94 -0
- package/docs/design-system/components/page-header.md +98 -0
- package/docs/design-system/components/pagination.md +71 -0
- package/docs/design-system/components/popover.md +77 -0
- package/docs/design-system/components/progress-slider.md +66 -0
- package/docs/design-system/components/progress.md +92 -0
- package/docs/design-system/components/radio-card.md +65 -0
- package/docs/design-system/components/radio-group.md +72 -0
- package/docs/design-system/components/resizable.md +57 -0
- package/docs/design-system/components/scroll-area.md +60 -0
- package/docs/design-system/components/segmented-control.md +71 -0
- package/docs/design-system/components/select.md +87 -0
- package/docs/design-system/components/sheet.md +82 -0
- package/docs/design-system/components/sidebar.md +83 -0
- package/docs/design-system/components/skeleton.md +91 -0
- package/docs/design-system/components/slideout.md +77 -0
- package/docs/design-system/components/slider.md +81 -0
- package/docs/design-system/components/social-button.md +65 -0
- package/docs/design-system/components/spinner.md +77 -0
- package/docs/design-system/components/steps.md +77 -0
- package/docs/design-system/components/table.md +411 -0
- package/docs/design-system/components/tabs.md +69 -0
- package/docs/design-system/components/tag.md +95 -0
- package/docs/design-system/components/textarea.md +64 -0
- package/docs/design-system/components/timeline.md +95 -0
- package/docs/design-system/components/toast.md +73 -0
- package/docs/design-system/components/toggle.md +96 -0
- package/docs/design-system/components/toolbar.md +105 -0
- package/docs/design-system/components/tooltip.md +107 -0
- package/docs/design-system/components/typography.md +18 -0
- package/docs/design-system/density-and-elevation.md +44 -0
- package/docs/design-system/design-system-test-missing-items.md +368 -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 +166 -0
- package/docs/design-system/icons.md +69 -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 +64 -0
- 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 +53 -0
- package/docs/design-system/token-governance.md +60 -0
- package/package.json +97 -65
- package/registry/component-contract.json +40 -0
- package/registry/components/alert-dialog.tsx +297 -0
- package/registry/components/alert.tsx +86 -65
- package/registry/components/aspect-ratio.tsx +30 -0
- package/registry/components/autocomplete.tsx +23 -9
- package/registry/components/avatar.tsx +7 -7
- package/registry/components/badge.tsx +1 -1
- package/registry/components/button-group.tsx +321 -4
- package/registry/components/button.tsx +38 -17
- package/registry/components/card.tsx +68 -59
- package/registry/components/carousel.tsx +282 -0
- package/registry/components/chart.tsx +203 -0
- package/registry/components/checkbox.tsx +3 -3
- package/registry/components/collapsible.tsx +69 -0
- package/registry/components/command.tsx +174 -0
- package/registry/components/context-menu.tsx +236 -0
- package/registry/components/date-picker.tsx +246 -105
- package/registry/components/expanded/ActivityFeed.tsx +6 -15
- package/registry/components/expanded/Banner.tsx +3 -3
- package/registry/components/expanded/Breadcrumbs.tsx +5 -5
- package/registry/components/expanded/CatalogComponentsShowcase.tsx +13 -13
- package/registry/components/expanded/CatalogDivider.tsx +1 -1
- package/registry/components/expanded/EmptyState.tsx +1 -1
- package/registry/components/expanded/FileUpload.tsx +9 -2
- package/registry/components/expanded/OnboardingStepListItem.tsx +2 -4
- package/registry/components/expanded/PageHeader.tsx +14 -14
- package/registry/components/expanded/Slideout.tsx +15 -415
- package/registry/components/expanded/Steps.tsx +4 -4
- package/registry/components/expanded/Table.tsx +116 -69
- package/registry/components/expanded/Timeline.tsx +3 -3
- package/registry/components/expanded/activityFeed.css +1 -1
- package/registry/components/expanded/breadcrumbs.css +139 -139
- package/registry/components/expanded/catalogComponentsShowcase.css +83 -83
- package/registry/components/expanded/divider.css +1 -1
- package/registry/components/expanded/emptyState.css +1 -1
- package/registry/components/expanded/fileUpload.css +6 -6
- package/registry/components/expanded/slideout.css +9 -685
- package/registry/components/expanded/steps.css +274 -274
- package/registry/components/expanded/table.css +2 -2
- package/registry/components/expanded/timeline.css +264 -264
- package/registry/components/field.tsx +230 -0
- package/registry/components/hover-card.tsx +48 -0
- package/registry/components/input-content.ts +1 -0
- package/registry/components/input-group.tsx +130 -0
- package/registry/components/input-otp.tsx +13 -3
- package/registry/components/input.tsx +70 -45
- package/registry/components/item.tsx +189 -0
- package/registry/components/kbd.tsx +151 -0
- package/registry/components/label.tsx +78 -0
- package/registry/components/menu.tsx +34 -246
- package/registry/components/menubar.tsx +226 -0
- package/registry/components/modal.tsx +216 -143
- package/registry/components/native-select.tsx +205 -0
- package/registry/components/navigation-menu.tsx +171 -0
- package/registry/components/pagination.tsx +80 -58
- package/registry/components/popover.tsx +162 -664
- package/registry/components/radio-card.tsx +116 -87
- package/registry/components/radio-group.tsx +1 -1
- package/registry/components/resizable.tsx +74 -0
- package/registry/components/scroll-area.tsx +67 -0
- package/registry/components/segmented-control.tsx +87 -0
- package/registry/components/select-content.tsx +2 -2
- package/registry/components/select.tsx +54 -20
- package/registry/components/sheet.tsx +305 -0
- package/registry/components/sidebar.tsx +352 -0
- package/registry/components/skeleton.css +0 -3
- package/registry/components/social-button.tsx +116 -30
- package/registry/components/spinner.tsx +18 -55
- package/registry/components/{expanded/tabs.css → tabs.css} +127 -106
- package/registry/components/tabs.tsx +246 -0
- package/registry/components/tag.tsx +2 -2
- package/registry/components/textarea.tsx +4 -4
- package/registry/components/toast.tsx +136 -0
- package/registry/components/toggle.tsx +2 -2
- package/registry/components/toolbar.tsx +89 -17
- package/registry/components/tooltip.tsx +1 -1
- package/registry/examples/alert-demo.tsx +25 -5
- package/registry/examples/alert-dialog-demo.tsx +42 -0
- package/registry/examples/aspect-ratio-demo.tsx +11 -0
- package/registry/examples/attribute-demo.tsx +1 -1
- package/registry/examples/autocomplete-demo.tsx +3 -3
- package/registry/examples/avatar-demo.tsx +7 -7
- 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 +43 -0
- package/registry/examples/chart-demo.tsx +33 -0
- package/registry/examples/checkbox-demo.tsx +5 -5
- package/registry/examples/collapsible-demo.tsx +16 -0
- package/registry/examples/collection-filter-bar-demo.tsx +135 -0
- package/registry/examples/command-demo.tsx +42 -0
- package/registry/examples/{expanded/command-bar-demo.tsx → command-palette-demo.tsx} +5 -15
- package/registry/examples/context-menu-demo.tsx +29 -0
- 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/banner-demo.tsx +1 -1
- package/registry/examples/expanded/breadcrumbs-demo.tsx +1 -1
- 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 +2 -2
- package/registry/examples/expanded/timeline-demo.tsx +1 -1
- package/registry/examples/field-demo.tsx +51 -0
- package/registry/examples/hover-card-demo.tsx +23 -0
- package/registry/examples/input-demo.tsx +6 -6
- package/registry/examples/input-group-demo.tsx +16 -0
- package/registry/examples/input-otp-demo.tsx +4 -4
- package/registry/examples/item-demo.tsx +46 -0
- package/registry/examples/kbd-demo.tsx +11 -0
- package/registry/examples/label-demo.tsx +20 -0
- package/registry/examples/menu-demo.tsx +1 -1
- package/registry/examples/menubar-demo.tsx +34 -0
- package/registry/examples/modal-demo.tsx +67 -9
- package/registry/examples/native-select-demo.tsx +16 -0
- package/registry/examples/navigation-menu-demo.tsx +29 -0
- package/registry/examples/pagination-demo.tsx +6 -3
- 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 +22 -0
- package/registry/examples/results-toolbar-demo.tsx +44 -0
- package/registry/examples/scroll-area-demo.tsx +15 -0
- package/registry/examples/segmented-control-demo.tsx +39 -0
- package/registry/examples/select-demo.tsx +1 -1
- package/registry/examples/sheet-demo.tsx +47 -0
- package/registry/examples/sidebar-demo.tsx +55 -0
- 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 +13 -0
- package/registry/examples/tag-demo.tsx +1 -1
- package/registry/examples/textarea-demo.tsx +4 -4
- package/registry/examples/toast-demo.tsx +35 -0
- 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 +6010 -432
- package/registry/styles/globals.css +3112 -4690
- package/registry.json +1582 -0
- package/schema/config.schema.json +51 -0
- package/schema/registry.schema.json +190 -0
- package/schema/tokens.schema.json +163 -0
- 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 +639 -1391
- 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 +4313 -310
- package/registry/assets/avatars/avatar-02.jpg +0 -0
- package/registry/assets/avatars/avatar-03.jpg +0 -0
- package/registry/assets/avatars/avatar-04.jpg +0 -0
- package/registry/assets/avatars/avatar-05.jpg +0 -0
- package/registry/assets/avatars/avatar-06.jpg +0 -0
- package/registry/assets/avatars/avatar-07.jpg +0 -0
- package/registry/assets/avatars/avatar-08.jpg +0 -0
- package/registry/assets/avatars/avatar-09.jpg +0 -0
- package/registry/assets/avatars/avatar-10.jpg +0 -0
- package/registry/assets/avatars/avatar-11.jpg +0 -0
- package/registry/assets/avatars/avatar-12.jpg +0 -0
- package/registry/assets/avatars/avatar-13.jpg +0 -0
- package/registry/assets/avatars/avatar-14.jpg +0 -0
- package/registry/assets/avatars/avatar-15.jpg +0 -0
- package/registry/assets/avatars/avatar-16.jpg +0 -0
- package/registry/assets/avatars/avatar-17.jpg +0 -0
- package/registry/assets/avatars/avatar-18.jpg +0 -0
- package/registry/assets/avatars/avatar-19.jpg +0 -0
- package/registry/assets/avatars/avatar-20.jpg +0 -0
- package/registry/assets/avatars/avatar-21.jpg +0 -0
- package/registry/assets/avatars/avatar-22.jpg +0 -0
- package/registry/assets/avatars/avatar-23.jpg +0 -0
- package/registry/assets/avatars/avatar-24.jpg +0 -0
- package/registry/assets/avatars/avatar-25.jpg +0 -0
- package/registry/assets/avatars/avatar-26.jpg +0 -0
- package/registry/assets/avatars/avatar-27.jpg +0 -0
- package/registry/assets/avatars/avatar-28.jpg +0 -0
- package/registry/assets/avatars/avatar-29.jpg +0 -0
- package/registry/assets/avatars/avatar-30.jpg +0 -0
- package/registry/assets/avatars/avatar-31.jpg +0 -0
- package/registry/assets/avatars/avatar-32.jpg +0 -0
- package/registry/assets/avatars/avatar-33.jpg +0 -0
- package/registry/assets/avatars/avatar-34.jpg +0 -0
- package/registry/assets/avatars/avatar-35.jpg +0 -0
- package/registry/assets/image-assets.json +0 -744
- package/registry/assets/images/art-02.jpg +0 -0
- package/registry/assets/images/art-03.jpg +0 -0
- package/registry/assets/images/art-04.jpg +0 -0
- package/registry/assets/images/art-05.jpg +0 -0
- package/registry/assets/images/art-06.jpg +0 -0
- package/registry/assets/images/art-07.jpg +0 -0
- package/registry/assets/images/art-08.jpg +0 -0
- package/registry/assets/images/art-09.jpg +0 -0
- package/registry/assets/images/art-10.jpg +0 -0
- package/registry/assets/images/art-11.jpg +0 -0
- package/registry/assets/images/art-12.jpg +0 -0
- package/registry/assets/images/art-13.jpg +0 -0
- package/registry/assets/images/art-14.jpg +0 -0
- package/registry/assets/images/art-15.jpg +0 -0
- package/registry/assets/images/art-16.jpg +0 -0
- package/registry/assets/images/art-17.jpg +0 -0
- package/registry/assets/images/art-18.jpg +0 -0
- package/registry/assets/images/art-19.jpg +0 -0
- package/registry/assets/images/art-20.jpg +0 -0
- package/registry/assets/images/art-21.jpg +0 -0
- package/registry/assets/images/art-22.jpg +0 -0
- package/registry/assets/images/art-23.jpg +0 -0
- package/registry/assets/images/art-24.jpg +0 -0
- package/registry/assets/images/art-25.jpg +0 -0
- package/registry/assets/images/art-26.jpg +0 -0
- package/registry/assets/images/art-27.jpg +0 -0
- package/registry/assets/images/nature-01.jpg +0 -0
- package/registry/assets/images/nature-02.jpg +0 -0
- package/registry/assets/images/nature-03.jpg +0 -0
- package/registry/assets/images/nature-04.jpg +0 -0
- package/registry/assets/images/nature-05.jpg +0 -0
- package/registry/assets/images/nature-06.jpg +0 -0
- package/registry/assets/images/nature-07.jpg +0 -0
- package/registry/assets/images/nature-08.jpg +0 -0
- package/registry/assets/images/nature-09.jpg +0 -0
- package/registry/assets/images/nature-10.jpg +0 -0
- package/registry/assets/images/nature-11.jpg +0 -0
- package/registry/assets/images/nature-12.jpg +0 -0
- package/registry/assets/images/nature-13.jpg +0 -0
- package/registry/assets/images/nature-14.jpg +0 -0
- package/registry/assets/images/nature-15.jpg +0 -0
- package/registry/assets/images/nature-16.jpg +0 -0
- package/registry/assets/images/nature-17.jpg +0 -0
- package/registry/assets/images/nature-18.jpg +0 -0
- package/registry/assets/images/nature-19.jpg +0 -0
- package/registry/assets/images/nature-20.jpg +0 -0
- 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/Tabs.tsx +0 -86
- 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
ADDED
|
@@ -0,0 +1,1582 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry.json",
|
|
3
|
+
"name": "banhaten",
|
|
4
|
+
"homepage": "https://github.com/AhmadGalal85/Banhaten-design-system/tree/main/docs",
|
|
5
|
+
"items": [
|
|
6
|
+
{
|
|
7
|
+
"name": "base",
|
|
8
|
+
"type": "registry:block",
|
|
9
|
+
"title": "Banhaten Base",
|
|
10
|
+
"description": "Banhaten base utilities, direction hook, and generated token stylesheet required by registry components.",
|
|
11
|
+
"author": "Ahmad Galal",
|
|
12
|
+
"dependencies": [
|
|
13
|
+
"@fontsource/ibm-plex-sans-arabic@^5.2.9",
|
|
14
|
+
"@fontsource/inter@^5.2.8",
|
|
15
|
+
"class-variance-authority@^0.7.1",
|
|
16
|
+
"clsx@^2.1.1",
|
|
17
|
+
"tailwind-merge@^3.3.1"
|
|
18
|
+
],
|
|
19
|
+
"files": [
|
|
20
|
+
{
|
|
21
|
+
"path": "registry/utils/cn.ts",
|
|
22
|
+
"type": "registry:lib",
|
|
23
|
+
"target": "@lib/utils.ts"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"path": "registry/hooks/use-direction.ts",
|
|
27
|
+
"type": "registry:hook",
|
|
28
|
+
"target": "@hooks/use-direction.ts"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"path": "registry/guidance/USAGE.md",
|
|
32
|
+
"type": "registry:file",
|
|
33
|
+
"target": ".banhaten/USAGE.md"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"path": "registry/styles/globals.css",
|
|
37
|
+
"type": "registry:style",
|
|
38
|
+
"target": "app/globals.css"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "accordion",
|
|
44
|
+
"type": "registry:component",
|
|
45
|
+
"title": "Accordion",
|
|
46
|
+
"description": "Accessible disclosure primitive with single or multiple expansion, Banhaten variants, size scale, animation, and RTL-safe text alignment.",
|
|
47
|
+
"author": "Ahmad Galal",
|
|
48
|
+
"registryDependencies": [
|
|
49
|
+
"base"
|
|
50
|
+
],
|
|
51
|
+
"dependencies": [
|
|
52
|
+
"@radix-ui/react-accordion@^1.2.12",
|
|
53
|
+
"class-variance-authority@^0.7.1",
|
|
54
|
+
"lucide-react@^1.17.0"
|
|
55
|
+
],
|
|
56
|
+
"files": [
|
|
57
|
+
{
|
|
58
|
+
"path": "registry/components/accordion.tsx",
|
|
59
|
+
"type": "registry:component",
|
|
60
|
+
"target": "@ui/accordion.tsx"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "aspect-ratio",
|
|
66
|
+
"type": "registry:component",
|
|
67
|
+
"title": "Aspect Ratio",
|
|
68
|
+
"description": "Radix AspectRatio wrapper for fixed-format media, screenshots, previews, and product surfaces with Banhaten radius and neutral background tokens.",
|
|
69
|
+
"author": "Ahmad Galal",
|
|
70
|
+
"registryDependencies": [
|
|
71
|
+
"base"
|
|
72
|
+
],
|
|
73
|
+
"dependencies": [
|
|
74
|
+
"@radix-ui/react-aspect-ratio@^1.1.11"
|
|
75
|
+
],
|
|
76
|
+
"files": [
|
|
77
|
+
{
|
|
78
|
+
"path": "registry/components/aspect-ratio.tsx",
|
|
79
|
+
"type": "registry:component",
|
|
80
|
+
"target": "@ui/aspect-ratio.tsx"
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "avatar",
|
|
86
|
+
"type": "registry:component",
|
|
87
|
+
"title": "Avatar",
|
|
88
|
+
"description": "Figma-matched user avatar primitive with image, initials, icon fallback, circular and rounded forms, status dots, call-to-action overlays, stacked group count, size scale, and RTL-safe overlap.",
|
|
89
|
+
"author": "Ahmad Galal",
|
|
90
|
+
"registryDependencies": [
|
|
91
|
+
"base"
|
|
92
|
+
],
|
|
93
|
+
"dependencies": [
|
|
94
|
+
"@radix-ui/react-avatar@^1.1.10",
|
|
95
|
+
"class-variance-authority@^0.7.1",
|
|
96
|
+
"lucide-react@^1.17.0"
|
|
97
|
+
],
|
|
98
|
+
"files": [
|
|
99
|
+
{
|
|
100
|
+
"path": "registry/components/avatar.tsx",
|
|
101
|
+
"type": "registry:component",
|
|
102
|
+
"target": "@ui/avatar.tsx"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"path": "registry/assets/avatars/avatar-01.jpg",
|
|
106
|
+
"type": "registry:file",
|
|
107
|
+
"target": "@ui/assets/avatars/avatar-01.jpg"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "badge",
|
|
113
|
+
"type": "registry:component",
|
|
114
|
+
"title": "Badge",
|
|
115
|
+
"description": "Figma Badge primitive with light, outline, and solid styles, semantic accent colors, dot, flag, icon, numeric, optional split trailing actions, and RTL-safe composition.",
|
|
116
|
+
"author": "Ahmad Galal",
|
|
117
|
+
"registryDependencies": [
|
|
118
|
+
"base"
|
|
119
|
+
],
|
|
120
|
+
"dependencies": [
|
|
121
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
122
|
+
"class-variance-authority@^0.7.1"
|
|
123
|
+
],
|
|
124
|
+
"files": [
|
|
125
|
+
{
|
|
126
|
+
"path": "registry/components/badge.tsx",
|
|
127
|
+
"type": "registry:component",
|
|
128
|
+
"target": "@ui/badge.tsx"
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "tag",
|
|
134
|
+
"type": "registry:component",
|
|
135
|
+
"title": "Tag",
|
|
136
|
+
"description": "Figma Tag primitive with simple, dot, flag, avatar, and icon types, default/active/disabled states plus native hover and focus-visible styling, xs/md/lg sizes, optional close button, and RTL-safe composition.",
|
|
137
|
+
"author": "Ahmad Galal",
|
|
138
|
+
"registryDependencies": [
|
|
139
|
+
"base"
|
|
140
|
+
],
|
|
141
|
+
"dependencies": [
|
|
142
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
143
|
+
"class-variance-authority@^0.7.1",
|
|
144
|
+
"lucide-react@^1.17.0"
|
|
145
|
+
],
|
|
146
|
+
"files": [
|
|
147
|
+
{
|
|
148
|
+
"path": "registry/components/tag.tsx",
|
|
149
|
+
"type": "registry:component",
|
|
150
|
+
"target": "@ui/tag.tsx"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "attribute",
|
|
156
|
+
"type": "registry:component",
|
|
157
|
+
"title": "Attribute",
|
|
158
|
+
"description": "Figma Attribute Card primitive for semantic description lists, key-value rows, detail cards, status values, copyable values, loading rows, two-column summaries, and RTL-safe layouts.",
|
|
159
|
+
"author": "Ahmad Galal",
|
|
160
|
+
"registryDependencies": [
|
|
161
|
+
"base"
|
|
162
|
+
],
|
|
163
|
+
"dependencies": [
|
|
164
|
+
"class-variance-authority@^0.7.1"
|
|
165
|
+
],
|
|
166
|
+
"files": [
|
|
167
|
+
{
|
|
168
|
+
"path": "registry/components/attribute.tsx",
|
|
169
|
+
"type": "registry:component",
|
|
170
|
+
"target": "@ui/attribute.tsx"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "button",
|
|
176
|
+
"type": "registry:component",
|
|
177
|
+
"title": "Button",
|
|
178
|
+
"description": "Accessible button primitive with semantic variants, size scale, loading composition, and RTL-safe icon behavior.",
|
|
179
|
+
"author": "Ahmad Galal",
|
|
180
|
+
"registryDependencies": [
|
|
181
|
+
"base",
|
|
182
|
+
"spinner"
|
|
183
|
+
],
|
|
184
|
+
"dependencies": [
|
|
185
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
186
|
+
"class-variance-authority@^0.7.1"
|
|
187
|
+
],
|
|
188
|
+
"files": [
|
|
189
|
+
{
|
|
190
|
+
"path": "registry/components/button.tsx",
|
|
191
|
+
"type": "registry:component",
|
|
192
|
+
"target": "@ui/button.tsx"
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "card",
|
|
198
|
+
"type": "registry:component",
|
|
199
|
+
"title": "Card",
|
|
200
|
+
"description": "Token-built card primitive with vertical and horizontal image layouts, full-image treatment, desktop/mobile spacing, Button-composed footer actions, and RTL-safe copy.",
|
|
201
|
+
"author": "Ahmad Galal",
|
|
202
|
+
"registryDependencies": [
|
|
203
|
+
"base",
|
|
204
|
+
"button"
|
|
205
|
+
],
|
|
206
|
+
"dependencies": [
|
|
207
|
+
"class-variance-authority@^0.7.1",
|
|
208
|
+
"lucide-react@^1.17.0"
|
|
209
|
+
],
|
|
210
|
+
"files": [
|
|
211
|
+
{
|
|
212
|
+
"path": "registry/components/card.tsx",
|
|
213
|
+
"type": "registry:component",
|
|
214
|
+
"target": "@ui/card.tsx"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"path": "registry/assets/images/art-01.jpg",
|
|
218
|
+
"type": "registry:file",
|
|
219
|
+
"target": "@ui/assets/images/art-01.jpg"
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "chart",
|
|
225
|
+
"type": "registry:component",
|
|
226
|
+
"title": "Chart",
|
|
227
|
+
"description": "Recharts wrapper with Banhaten chart color tokens, responsive container, tooltip content, legend content, and config-driven color variables.",
|
|
228
|
+
"author": "Ahmad Galal",
|
|
229
|
+
"registryDependencies": [
|
|
230
|
+
"base"
|
|
231
|
+
],
|
|
232
|
+
"dependencies": [
|
|
233
|
+
"recharts@^3.9.2"
|
|
234
|
+
],
|
|
235
|
+
"files": [
|
|
236
|
+
{
|
|
237
|
+
"path": "registry/components/chart.tsx",
|
|
238
|
+
"type": "registry:component",
|
|
239
|
+
"target": "@ui/chart.tsx"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "carousel",
|
|
245
|
+
"type": "registry:component",
|
|
246
|
+
"title": "Carousel",
|
|
247
|
+
"description": "Embla-backed carousel with content, item, previous, and next controls, horizontal or vertical orientation, and RTL-safe directional icons.",
|
|
248
|
+
"author": "Ahmad Galal",
|
|
249
|
+
"registryDependencies": [
|
|
250
|
+
"base",
|
|
251
|
+
"button"
|
|
252
|
+
],
|
|
253
|
+
"dependencies": [
|
|
254
|
+
"embla-carousel-react@^8.6.0",
|
|
255
|
+
"lucide-react@^1.17.0"
|
|
256
|
+
],
|
|
257
|
+
"files": [
|
|
258
|
+
{
|
|
259
|
+
"path": "registry/components/carousel.tsx",
|
|
260
|
+
"type": "registry:component",
|
|
261
|
+
"target": "@ui/carousel.tsx"
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"name": "button-group",
|
|
267
|
+
"type": "registry:component",
|
|
268
|
+
"title": "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.",
|
|
270
|
+
"author": "Ahmad Galal",
|
|
271
|
+
"registryDependencies": [
|
|
272
|
+
"base"
|
|
273
|
+
],
|
|
274
|
+
"dependencies": [
|
|
275
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
276
|
+
"class-variance-authority@^0.7.1"
|
|
277
|
+
],
|
|
278
|
+
"files": [
|
|
279
|
+
{
|
|
280
|
+
"path": "registry/components/button-group.tsx",
|
|
281
|
+
"type": "registry:component",
|
|
282
|
+
"target": "@ui/button-group.tsx"
|
|
283
|
+
}
|
|
284
|
+
]
|
|
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
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"name": "toggle",
|
|
307
|
+
"type": "registry:component",
|
|
308
|
+
"title": "Toggle",
|
|
309
|
+
"description": "Radix Switch-backed toggle primitive and labeled field composition with sm/md geometry, active and disabled states, optional handle icons, tokenized focus ring, and RTL-safe label placement.",
|
|
310
|
+
"author": "Ahmad Galal",
|
|
311
|
+
"registryDependencies": [
|
|
312
|
+
"base"
|
|
313
|
+
],
|
|
314
|
+
"dependencies": [
|
|
315
|
+
"@radix-ui/react-switch@^1.3.0",
|
|
316
|
+
"class-variance-authority@^0.7.1",
|
|
317
|
+
"lucide-react@^1.17.0"
|
|
318
|
+
],
|
|
319
|
+
"files": [
|
|
320
|
+
{
|
|
321
|
+
"path": "registry/components/toggle.tsx",
|
|
322
|
+
"type": "registry:component",
|
|
323
|
+
"target": "@ui/toggle.tsx"
|
|
324
|
+
}
|
|
325
|
+
]
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"name": "menu",
|
|
329
|
+
"type": "registry:component",
|
|
330
|
+
"title": "Menu",
|
|
331
|
+
"description": "Radix DropdownMenu-backed, Figma-matched menu surface and composable menu item slots for default, multiline, call-to-action, progress, divider, button, label, caption, badge, switch, avatar, meta text, submenus, and RTL layouts.",
|
|
332
|
+
"author": "Ahmad Galal",
|
|
333
|
+
"registryDependencies": [
|
|
334
|
+
"base"
|
|
335
|
+
],
|
|
336
|
+
"dependencies": [
|
|
337
|
+
"@radix-ui/react-dropdown-menu@^2.1.17",
|
|
338
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
339
|
+
"class-variance-authority@^0.7.1"
|
|
340
|
+
],
|
|
341
|
+
"files": [
|
|
342
|
+
{
|
|
343
|
+
"path": "registry/components/menu.tsx",
|
|
344
|
+
"type": "registry:component",
|
|
345
|
+
"target": "@ui/menu.tsx"
|
|
346
|
+
}
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"name": "menubar",
|
|
351
|
+
"type": "registry:component",
|
|
352
|
+
"title": "Menubar",
|
|
353
|
+
"description": "Radix Menubar-backed application menu with trigger, content, item, checkbox, radio, label, separator, shortcut, and keyboard navigation parts.",
|
|
354
|
+
"author": "Ahmad Galal",
|
|
355
|
+
"registryDependencies": [
|
|
356
|
+
"base"
|
|
357
|
+
],
|
|
358
|
+
"dependencies": [
|
|
359
|
+
"@radix-ui/react-menubar@^1.1.19",
|
|
360
|
+
"lucide-react@^1.17.0"
|
|
361
|
+
],
|
|
362
|
+
"files": [
|
|
363
|
+
{
|
|
364
|
+
"path": "registry/components/menubar.tsx",
|
|
365
|
+
"type": "registry:component",
|
|
366
|
+
"target": "@ui/menubar.tsx"
|
|
367
|
+
}
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"name": "command",
|
|
372
|
+
"type": "registry:component",
|
|
373
|
+
"title": "Command",
|
|
374
|
+
"description": "cmdk-backed command menu with search input, grouped results, keyboard navigation, shortcuts, separators, and empty state.",
|
|
375
|
+
"author": "Ahmad Galal",
|
|
376
|
+
"registryDependencies": [
|
|
377
|
+
"base"
|
|
378
|
+
],
|
|
379
|
+
"dependencies": [
|
|
380
|
+
"cmdk@^1.1.1",
|
|
381
|
+
"lucide-react@^1.17.0"
|
|
382
|
+
],
|
|
383
|
+
"files": [
|
|
384
|
+
{
|
|
385
|
+
"path": "registry/components/command.tsx",
|
|
386
|
+
"type": "registry:component",
|
|
387
|
+
"target": "@ui/command.tsx"
|
|
388
|
+
}
|
|
389
|
+
]
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"name": "context-menu",
|
|
393
|
+
"type": "registry:component",
|
|
394
|
+
"title": "Context Menu",
|
|
395
|
+
"description": "Radix ContextMenu-backed right-click menu with item, checkbox, radio, label, separator, shortcut, and submenu parts.",
|
|
396
|
+
"author": "Ahmad Galal",
|
|
397
|
+
"registryDependencies": [
|
|
398
|
+
"base"
|
|
399
|
+
],
|
|
400
|
+
"dependencies": [
|
|
401
|
+
"@radix-ui/react-context-menu@^2.3.2",
|
|
402
|
+
"lucide-react@^1.17.0"
|
|
403
|
+
],
|
|
404
|
+
"files": [
|
|
405
|
+
{
|
|
406
|
+
"path": "registry/components/context-menu.tsx",
|
|
407
|
+
"type": "registry:component",
|
|
408
|
+
"target": "@ui/context-menu.tsx"
|
|
409
|
+
}
|
|
410
|
+
]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"name": "tooltip",
|
|
414
|
+
"type": "registry:component",
|
|
415
|
+
"title": "Tooltip",
|
|
416
|
+
"description": "Radix Tooltip-backed primitive with Figma-matched dark and default surfaces, small and large sizes, shortcut and close slots, logical pointer positions, tokenized shadows, and RTL-safe layout.",
|
|
417
|
+
"author": "Ahmad Galal",
|
|
418
|
+
"registryDependencies": [
|
|
419
|
+
"base"
|
|
420
|
+
],
|
|
421
|
+
"dependencies": [
|
|
422
|
+
"@radix-ui/react-tooltip@^1.2.9",
|
|
423
|
+
"class-variance-authority@^0.7.1",
|
|
424
|
+
"lucide-react@^1.17.0"
|
|
425
|
+
],
|
|
426
|
+
"files": [
|
|
427
|
+
{
|
|
428
|
+
"path": "registry/components/tooltip.tsx",
|
|
429
|
+
"type": "registry:component",
|
|
430
|
+
"target": "@ui/tooltip.tsx"
|
|
431
|
+
}
|
|
432
|
+
]
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "popover",
|
|
436
|
+
"type": "registry:component",
|
|
437
|
+
"title": "Popover",
|
|
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.",
|
|
439
|
+
"author": "Ahmad Galal",
|
|
440
|
+
"registryDependencies": [
|
|
441
|
+
"base"
|
|
442
|
+
],
|
|
443
|
+
"dependencies": [
|
|
444
|
+
"@radix-ui/react-popover@^1.1.19",
|
|
445
|
+
"class-variance-authority@^0.7.1",
|
|
446
|
+
"lucide-react@^1.17.0"
|
|
447
|
+
],
|
|
448
|
+
"files": [
|
|
449
|
+
{
|
|
450
|
+
"path": "registry/components/popover.tsx",
|
|
451
|
+
"type": "registry:component",
|
|
452
|
+
"target": "@ui/popover.tsx"
|
|
453
|
+
}
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"name": "hover-card",
|
|
458
|
+
"type": "registry:component",
|
|
459
|
+
"title": "Hover Card",
|
|
460
|
+
"description": "Radix HoverCard-backed preview surface for rich hover and focus context with tokenized raised content.",
|
|
461
|
+
"author": "Ahmad Galal",
|
|
462
|
+
"registryDependencies": [
|
|
463
|
+
"base"
|
|
464
|
+
],
|
|
465
|
+
"dependencies": [
|
|
466
|
+
"@radix-ui/react-hover-card@^1.1.18"
|
|
467
|
+
],
|
|
468
|
+
"files": [
|
|
469
|
+
{
|
|
470
|
+
"path": "registry/components/hover-card.tsx",
|
|
471
|
+
"type": "registry:component",
|
|
472
|
+
"target": "@ui/hover-card.tsx"
|
|
473
|
+
}
|
|
474
|
+
]
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"name": "modal",
|
|
478
|
+
"type": "registry:component",
|
|
479
|
+
"title": "Modal",
|
|
480
|
+
"description": "Radix Dialog-backed modal primitive with Figma Small, Default, and Large sizes, tokenized raised surface, header/body/footer slots, ConfirmModal guardrails, Button actions, Checkbox opt-out, and RTL-safe layout.",
|
|
481
|
+
"author": "Ahmad Galal",
|
|
482
|
+
"registryDependencies": [
|
|
483
|
+
"base",
|
|
484
|
+
"alert-dialog",
|
|
485
|
+
"button",
|
|
486
|
+
"checkbox",
|
|
487
|
+
"spinner"
|
|
488
|
+
],
|
|
489
|
+
"dependencies": [
|
|
490
|
+
"@radix-ui/react-dialog@^1.1.16",
|
|
491
|
+
"class-variance-authority@^0.7.1",
|
|
492
|
+
"lucide-react@^1.17.0"
|
|
493
|
+
],
|
|
494
|
+
"files": [
|
|
495
|
+
{
|
|
496
|
+
"path": "registry/components/modal.tsx",
|
|
497
|
+
"type": "registry:component",
|
|
498
|
+
"target": "@ui/modal.tsx"
|
|
499
|
+
}
|
|
500
|
+
]
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"name": "alert-dialog",
|
|
504
|
+
"type": "registry:component",
|
|
505
|
+
"title": "Alert Dialog",
|
|
506
|
+
"description": "Radix AlertDialog-backed confirmation primitive for destructive or consequential actions with tokenized alert surface, semantic intent icon, safe cancel/action buttons, focus management, and RTL-safe layout.",
|
|
507
|
+
"author": "Ahmad Galal",
|
|
508
|
+
"registryDependencies": [
|
|
509
|
+
"base",
|
|
510
|
+
"button"
|
|
511
|
+
],
|
|
512
|
+
"dependencies": [
|
|
513
|
+
"@radix-ui/react-alert-dialog@^1.1.18",
|
|
514
|
+
"class-variance-authority@^0.7.1",
|
|
515
|
+
"lucide-react@^1.17.0"
|
|
516
|
+
],
|
|
517
|
+
"files": [
|
|
518
|
+
{
|
|
519
|
+
"path": "registry/components/alert-dialog.tsx",
|
|
520
|
+
"type": "registry:component",
|
|
521
|
+
"target": "@ui/alert-dialog.tsx"
|
|
522
|
+
}
|
|
523
|
+
]
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"name": "checkbox",
|
|
527
|
+
"type": "registry:component",
|
|
528
|
+
"title": "Checkbox",
|
|
529
|
+
"description": "Figma-matched checkbox primitive and checkbox card composition with 20px root, 16px control, selected and disabled states, native hover styling, component shadow, body text styles, and RTL-safe layout.",
|
|
530
|
+
"author": "Ahmad Galal",
|
|
531
|
+
"registryDependencies": [
|
|
532
|
+
"base"
|
|
533
|
+
],
|
|
534
|
+
"dependencies": [
|
|
535
|
+
"@radix-ui/react-checkbox@^1.3.3",
|
|
536
|
+
"class-variance-authority@^0.7.1",
|
|
537
|
+
"lucide-react@^1.17.0"
|
|
538
|
+
],
|
|
539
|
+
"files": [
|
|
540
|
+
{
|
|
541
|
+
"path": "registry/components/checkbox.tsx",
|
|
542
|
+
"type": "registry:component",
|
|
543
|
+
"target": "@ui/checkbox.tsx"
|
|
544
|
+
}
|
|
545
|
+
]
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"name": "collapsible",
|
|
549
|
+
"type": "registry:component",
|
|
550
|
+
"title": "Collapsible",
|
|
551
|
+
"description": "Radix Collapsible wrapper for disclosure sections with tokenized trigger, icon rotation, and content slots.",
|
|
552
|
+
"author": "Ahmad Galal",
|
|
553
|
+
"registryDependencies": [
|
|
554
|
+
"base"
|
|
555
|
+
],
|
|
556
|
+
"dependencies": [
|
|
557
|
+
"@radix-ui/react-collapsible@^1.1.15",
|
|
558
|
+
"lucide-react@^1.17.0"
|
|
559
|
+
],
|
|
560
|
+
"files": [
|
|
561
|
+
{
|
|
562
|
+
"path": "registry/components/collapsible.tsx",
|
|
563
|
+
"type": "registry:component",
|
|
564
|
+
"target": "@ui/collapsible.tsx"
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "radio-group",
|
|
570
|
+
"type": "registry:component",
|
|
571
|
+
"title": "Radio Group",
|
|
572
|
+
"description": "Native-input radio primitive and group composition with field rows, group label, description, error and disabled states, horizontal and vertical layouts, controlled or uncontrolled value, and RTL-safe tokenized copy.",
|
|
573
|
+
"author": "Ahmad Galal",
|
|
574
|
+
"registryDependencies": [
|
|
575
|
+
"base"
|
|
576
|
+
],
|
|
577
|
+
"dependencies": [
|
|
578
|
+
"class-variance-authority@^0.7.1"
|
|
579
|
+
],
|
|
580
|
+
"files": [
|
|
581
|
+
{
|
|
582
|
+
"path": "registry/components/radio-group.tsx",
|
|
583
|
+
"type": "registry:component",
|
|
584
|
+
"target": "@ui/radio-group.tsx"
|
|
585
|
+
}
|
|
586
|
+
]
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"name": "radio-card",
|
|
590
|
+
"type": "registry:component",
|
|
591
|
+
"title": "Radio Card",
|
|
592
|
+
"description": "Figma Radio Card component with seven content types, default/active/disabled states, native hover styling, RTL variants, system radio indicator, and token-bound spacing, typography, border, and shadow.",
|
|
593
|
+
"author": "Ahmad Galal",
|
|
594
|
+
"registryDependencies": [
|
|
595
|
+
"base"
|
|
596
|
+
],
|
|
597
|
+
"dependencies": [
|
|
598
|
+
"class-variance-authority@^0.7.1",
|
|
599
|
+
"lucide-react@^1.17.0"
|
|
600
|
+
],
|
|
601
|
+
"files": [
|
|
602
|
+
{
|
|
603
|
+
"path": "registry/components/radio-card.tsx",
|
|
604
|
+
"type": "registry:component",
|
|
605
|
+
"target": "@ui/radio-card.tsx"
|
|
606
|
+
}
|
|
607
|
+
]
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"name": "divider",
|
|
611
|
+
"type": "registry:component",
|
|
612
|
+
"title": "Divider",
|
|
613
|
+
"description": "Figma-matched divider primitive with horizontal and vertical directions plus solid and dotted types.",
|
|
614
|
+
"author": "Ahmad Galal",
|
|
615
|
+
"registryDependencies": [
|
|
616
|
+
"base"
|
|
617
|
+
],
|
|
618
|
+
"dependencies": [
|
|
619
|
+
"class-variance-authority@^0.7.1"
|
|
620
|
+
],
|
|
621
|
+
"files": [
|
|
622
|
+
{
|
|
623
|
+
"path": "registry/components/divider.tsx",
|
|
624
|
+
"type": "registry:component",
|
|
625
|
+
"target": "@ui/divider.tsx"
|
|
626
|
+
}
|
|
627
|
+
]
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"name": "pagination",
|
|
631
|
+
"type": "registry:component",
|
|
632
|
+
"title": "Pagination",
|
|
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.",
|
|
634
|
+
"author": "Ahmad Galal",
|
|
635
|
+
"registryDependencies": [
|
|
636
|
+
"base"
|
|
637
|
+
],
|
|
638
|
+
"dependencies": [
|
|
639
|
+
"class-variance-authority@^0.7.1",
|
|
640
|
+
"lucide-react@^1.17.0"
|
|
641
|
+
],
|
|
642
|
+
"files": [
|
|
643
|
+
{
|
|
644
|
+
"path": "registry/components/pagination.tsx",
|
|
645
|
+
"type": "registry:component",
|
|
646
|
+
"target": "@ui/pagination.tsx"
|
|
647
|
+
}
|
|
648
|
+
]
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"name": "toolbar",
|
|
652
|
+
"type": "registry:component",
|
|
653
|
+
"title": "Toolbar",
|
|
654
|
+
"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.",
|
|
655
|
+
"author": "Ahmad Galal",
|
|
656
|
+
"registryDependencies": [
|
|
657
|
+
"base",
|
|
658
|
+
"kbd"
|
|
659
|
+
],
|
|
660
|
+
"dependencies": [
|
|
661
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
662
|
+
"class-variance-authority@^0.7.1",
|
|
663
|
+
"lucide-react@^1.17.0"
|
|
664
|
+
],
|
|
665
|
+
"files": [
|
|
666
|
+
{
|
|
667
|
+
"path": "registry/components/toolbar.tsx",
|
|
668
|
+
"type": "registry:component",
|
|
669
|
+
"target": "@ui/toolbar.tsx"
|
|
670
|
+
}
|
|
671
|
+
]
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "social-button",
|
|
675
|
+
"type": "registry:component",
|
|
676
|
+
"title": "Social Button",
|
|
677
|
+
"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.",
|
|
678
|
+
"author": "Ahmad Galal",
|
|
679
|
+
"registryDependencies": [
|
|
680
|
+
"base"
|
|
681
|
+
],
|
|
682
|
+
"dependencies": [
|
|
683
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
684
|
+
"class-variance-authority@^0.7.1",
|
|
685
|
+
"lucide-react@^1.17.0"
|
|
686
|
+
],
|
|
687
|
+
"files": [
|
|
688
|
+
{
|
|
689
|
+
"path": "registry/components/social-button.tsx",
|
|
690
|
+
"type": "registry:component",
|
|
691
|
+
"target": "@ui/social-button.tsx"
|
|
692
|
+
}
|
|
693
|
+
]
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"name": "input",
|
|
697
|
+
"type": "registry:component",
|
|
698
|
+
"title": "Input",
|
|
699
|
+
"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.",
|
|
700
|
+
"author": "Ahmad Galal",
|
|
701
|
+
"registryDependencies": [
|
|
702
|
+
"base",
|
|
703
|
+
"kbd"
|
|
704
|
+
],
|
|
705
|
+
"dependencies": [
|
|
706
|
+
"class-variance-authority@^0.7.1",
|
|
707
|
+
"lucide-react@^1.17.0"
|
|
708
|
+
],
|
|
709
|
+
"files": [
|
|
710
|
+
{
|
|
711
|
+
"path": "registry/components/input-content.ts",
|
|
712
|
+
"type": "registry:component",
|
|
713
|
+
"target": "@ui/input-content.ts"
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
"path": "registry/components/input.tsx",
|
|
717
|
+
"type": "registry:component",
|
|
718
|
+
"target": "@ui/input.tsx"
|
|
719
|
+
}
|
|
720
|
+
]
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"name": "input-group",
|
|
724
|
+
"type": "registry:component",
|
|
725
|
+
"title": "Input Group",
|
|
726
|
+
"description": "Grouped input shell for protocol add-ons, inline actions, prefixes, suffixes, compact field rows, and RTL-safe native input composition.",
|
|
727
|
+
"author": "Ahmad Galal",
|
|
728
|
+
"registryDependencies": [
|
|
729
|
+
"base",
|
|
730
|
+
"button"
|
|
731
|
+
],
|
|
732
|
+
"dependencies": [
|
|
733
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
734
|
+
"class-variance-authority@^0.7.1"
|
|
735
|
+
],
|
|
736
|
+
"files": [
|
|
737
|
+
{
|
|
738
|
+
"path": "registry/components/input-group.tsx",
|
|
739
|
+
"type": "registry:component",
|
|
740
|
+
"target": "@ui/input-group.tsx"
|
|
741
|
+
}
|
|
742
|
+
]
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"name": "label",
|
|
746
|
+
"type": "registry:component",
|
|
747
|
+
"title": "Label",
|
|
748
|
+
"description": "Radix Label-backed accessible label primitive with required markers, optional text, tone variants, disabled state styling, and RTL-safe copy.",
|
|
749
|
+
"author": "Ahmad Galal",
|
|
750
|
+
"registryDependencies": [
|
|
751
|
+
"base"
|
|
752
|
+
],
|
|
753
|
+
"dependencies": [
|
|
754
|
+
"@radix-ui/react-label@^2.1.11",
|
|
755
|
+
"class-variance-authority@^0.7.1"
|
|
756
|
+
],
|
|
757
|
+
"files": [
|
|
758
|
+
{
|
|
759
|
+
"path": "registry/components/label.tsx",
|
|
760
|
+
"type": "registry:component",
|
|
761
|
+
"target": "@ui/label.tsx"
|
|
762
|
+
}
|
|
763
|
+
]
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"name": "kbd",
|
|
767
|
+
"type": "registry:component",
|
|
768
|
+
"title": "Kbd",
|
|
769
|
+
"description": "Keyboard key and platform-aware shortcut primitives for search fields, command rows, and help text with shared tokenized surfaces.",
|
|
770
|
+
"author": "Ahmad Galal",
|
|
771
|
+
"registryDependencies": [
|
|
772
|
+
"base"
|
|
773
|
+
],
|
|
774
|
+
"dependencies": [
|
|
775
|
+
"class-variance-authority@^0.7.1"
|
|
776
|
+
],
|
|
777
|
+
"files": [
|
|
778
|
+
{
|
|
779
|
+
"path": "registry/components/kbd.tsx",
|
|
780
|
+
"type": "registry:component",
|
|
781
|
+
"target": "@ui/kbd.tsx"
|
|
782
|
+
}
|
|
783
|
+
]
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"name": "item",
|
|
787
|
+
"type": "registry:component",
|
|
788
|
+
"title": "Item",
|
|
789
|
+
"description": "Composable Banhaten list item with media, content, title, description, actions, grouping, separators, three surface variants, three sizes, and RTL-safe logical layout.",
|
|
790
|
+
"author": "Ahmad Galal",
|
|
791
|
+
"registryDependencies": [
|
|
792
|
+
"base"
|
|
793
|
+
],
|
|
794
|
+
"dependencies": [
|
|
795
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
796
|
+
"class-variance-authority@^0.7.1"
|
|
797
|
+
],
|
|
798
|
+
"files": [
|
|
799
|
+
{
|
|
800
|
+
"path": "registry/components/item.tsx",
|
|
801
|
+
"type": "registry:component",
|
|
802
|
+
"target": "@ui/item.tsx"
|
|
803
|
+
}
|
|
804
|
+
]
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"name": "field",
|
|
808
|
+
"type": "registry:component",
|
|
809
|
+
"title": "Field",
|
|
810
|
+
"description": "Accessible form field composition with label, control slot, description, error message, grouped fields, fieldsets, validation state, and responsive or horizontal layout.",
|
|
811
|
+
"author": "Ahmad Galal",
|
|
812
|
+
"registryDependencies": [
|
|
813
|
+
"base",
|
|
814
|
+
"label"
|
|
815
|
+
],
|
|
816
|
+
"dependencies": [
|
|
817
|
+
"@radix-ui/react-slot@^1.2.3"
|
|
818
|
+
],
|
|
819
|
+
"files": [
|
|
820
|
+
{
|
|
821
|
+
"path": "registry/components/field.tsx",
|
|
822
|
+
"type": "registry:component",
|
|
823
|
+
"target": "@ui/field.tsx"
|
|
824
|
+
}
|
|
825
|
+
]
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"name": "input-otp",
|
|
829
|
+
"type": "registry:component",
|
|
830
|
+
"title": "Input Otp",
|
|
831
|
+
"description": "One-time passcode input composed from the Banhaten Input surface, control typography, labels, helper text, tokenized slot gaps, paste handling, grouped slots, masked values, and RTL-aware keyboard navigation.",
|
|
832
|
+
"author": "Ahmad Galal",
|
|
833
|
+
"registryDependencies": [
|
|
834
|
+
"base",
|
|
835
|
+
"input"
|
|
836
|
+
],
|
|
837
|
+
"dependencies": [
|
|
838
|
+
"class-variance-authority@^0.7.1"
|
|
839
|
+
],
|
|
840
|
+
"files": [
|
|
841
|
+
{
|
|
842
|
+
"path": "registry/components/input-otp.tsx",
|
|
843
|
+
"type": "registry:component",
|
|
844
|
+
"target": "@ui/input-otp.tsx"
|
|
845
|
+
}
|
|
846
|
+
]
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
"name": "select",
|
|
850
|
+
"type": "registry:component",
|
|
851
|
+
"title": "Select",
|
|
852
|
+
"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.",
|
|
853
|
+
"author": "Ahmad Galal",
|
|
854
|
+
"registryDependencies": [
|
|
855
|
+
"base"
|
|
856
|
+
],
|
|
857
|
+
"dependencies": [
|
|
858
|
+
"@radix-ui/react-select@^2.3.0",
|
|
859
|
+
"class-variance-authority@^0.7.1",
|
|
860
|
+
"lucide-react@^1.17.0"
|
|
861
|
+
],
|
|
862
|
+
"files": [
|
|
863
|
+
{
|
|
864
|
+
"path": "registry/components/select-content.tsx",
|
|
865
|
+
"type": "registry:component",
|
|
866
|
+
"target": "@ui/select-content.tsx"
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"path": "registry/components/select.tsx",
|
|
870
|
+
"type": "registry:component",
|
|
871
|
+
"target": "@ui/select.tsx"
|
|
872
|
+
}
|
|
873
|
+
]
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"name": "native-select",
|
|
877
|
+
"type": "registry:component",
|
|
878
|
+
"title": "Native Select",
|
|
879
|
+
"description": "Tokenized native select field for platform forms, mobile fallback, lightweight option sets, validation state, helper text, and RTL layout.",
|
|
880
|
+
"author": "Ahmad Galal",
|
|
881
|
+
"registryDependencies": [
|
|
882
|
+
"base",
|
|
883
|
+
"label"
|
|
884
|
+
],
|
|
885
|
+
"dependencies": [
|
|
886
|
+
"class-variance-authority@^0.7.1",
|
|
887
|
+
"lucide-react@^1.17.0"
|
|
888
|
+
],
|
|
889
|
+
"files": [
|
|
890
|
+
{
|
|
891
|
+
"path": "registry/components/native-select.tsx",
|
|
892
|
+
"type": "registry:component",
|
|
893
|
+
"target": "@ui/native-select.tsx"
|
|
894
|
+
}
|
|
895
|
+
]
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
"name": "sheet",
|
|
899
|
+
"type": "registry:component",
|
|
900
|
+
"title": "Sheet",
|
|
901
|
+
"description": "Radix Dialog-based edge panel with logical start/end placement, top and bottom placement, size variants, overlay, close control, header, body, footer, and RTL-safe layout.",
|
|
902
|
+
"author": "Ahmad Galal",
|
|
903
|
+
"registryDependencies": [
|
|
904
|
+
"base"
|
|
905
|
+
],
|
|
906
|
+
"dependencies": [
|
|
907
|
+
"@radix-ui/react-dialog@^1.1.16",
|
|
908
|
+
"class-variance-authority@^0.7.1",
|
|
909
|
+
"lucide-react@^1.17.0"
|
|
910
|
+
],
|
|
911
|
+
"files": [
|
|
912
|
+
{
|
|
913
|
+
"path": "registry/components/sheet.tsx",
|
|
914
|
+
"type": "registry:component",
|
|
915
|
+
"target": "@ui/sheet.tsx"
|
|
916
|
+
}
|
|
917
|
+
]
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"name": "sidebar",
|
|
921
|
+
"type": "registry:component",
|
|
922
|
+
"title": "Sidebar",
|
|
923
|
+
"description": "Composable app sidebar with controlled or uncontrolled collapse state, grouped menu items, logical start/end placement, RTL mirroring, and generated sidebar tokens.",
|
|
924
|
+
"author": "Ahmad Galal",
|
|
925
|
+
"registryDependencies": [
|
|
926
|
+
"base"
|
|
927
|
+
],
|
|
928
|
+
"dependencies": [
|
|
929
|
+
"@radix-ui/react-slot@^1.2.3",
|
|
930
|
+
"lucide-react@^1.17.0"
|
|
931
|
+
],
|
|
932
|
+
"files": [
|
|
933
|
+
{
|
|
934
|
+
"path": "registry/components/sidebar.tsx",
|
|
935
|
+
"type": "registry:component",
|
|
936
|
+
"target": "@ui/sidebar.tsx"
|
|
937
|
+
}
|
|
938
|
+
]
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"name": "navigation-menu",
|
|
942
|
+
"type": "registry:component",
|
|
943
|
+
"title": "Navigation Menu",
|
|
944
|
+
"description": "Radix NavigationMenu-backed top navigation with trigger, content, link, viewport, and indicator parts.",
|
|
945
|
+
"author": "Ahmad Galal",
|
|
946
|
+
"registryDependencies": [
|
|
947
|
+
"base"
|
|
948
|
+
],
|
|
949
|
+
"dependencies": [
|
|
950
|
+
"@radix-ui/react-navigation-menu@^1.2.17",
|
|
951
|
+
"lucide-react@^1.17.0"
|
|
952
|
+
],
|
|
953
|
+
"files": [
|
|
954
|
+
{
|
|
955
|
+
"path": "registry/components/navigation-menu.tsx",
|
|
956
|
+
"type": "registry:component",
|
|
957
|
+
"target": "@ui/navigation-menu.tsx"
|
|
958
|
+
}
|
|
959
|
+
]
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
"name": "scroll-area",
|
|
963
|
+
"type": "registry:component",
|
|
964
|
+
"title": "Scroll Area",
|
|
965
|
+
"description": "Radix ScrollArea wrapper with tokenized viewport, scrollbar, thumb, and corner styling for bounded panels and menus.",
|
|
966
|
+
"author": "Ahmad Galal",
|
|
967
|
+
"registryDependencies": [
|
|
968
|
+
"base"
|
|
969
|
+
],
|
|
970
|
+
"dependencies": [
|
|
971
|
+
"@radix-ui/react-scroll-area@^1.2.13"
|
|
972
|
+
],
|
|
973
|
+
"files": [
|
|
974
|
+
{
|
|
975
|
+
"path": "registry/components/scroll-area.tsx",
|
|
976
|
+
"type": "registry:component",
|
|
977
|
+
"target": "@ui/scroll-area.tsx"
|
|
978
|
+
}
|
|
979
|
+
]
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"name": "resizable",
|
|
983
|
+
"type": "registry:component",
|
|
984
|
+
"title": "Resizable",
|
|
985
|
+
"description": "react-resizable-panels-backed split pane primitive with horizontal and vertical panel groups plus tokenized resize handle.",
|
|
986
|
+
"author": "Ahmad Galal",
|
|
987
|
+
"registryDependencies": [
|
|
988
|
+
"base"
|
|
989
|
+
],
|
|
990
|
+
"dependencies": [
|
|
991
|
+
"lucide-react@^1.17.0",
|
|
992
|
+
"react-resizable-panels@^4.12.1"
|
|
993
|
+
],
|
|
994
|
+
"files": [
|
|
995
|
+
{
|
|
996
|
+
"path": "registry/components/resizable.tsx",
|
|
997
|
+
"type": "registry:component",
|
|
998
|
+
"target": "@ui/resizable.tsx"
|
|
999
|
+
}
|
|
1000
|
+
]
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
"name": "autocomplete",
|
|
1004
|
+
"type": "registry:component",
|
|
1005
|
+
"title": "Autocomplete",
|
|
1006
|
+
"description": "Composable autocomplete and combobox field built from Banhaten Input, Select menu items, and Tag selections with filtering, single or multiple selection, keyboard navigation, error/disabled states, and RTL-safe layout.",
|
|
1007
|
+
"author": "Ahmad Galal",
|
|
1008
|
+
"registryDependencies": [
|
|
1009
|
+
"base",
|
|
1010
|
+
"input",
|
|
1011
|
+
"popover",
|
|
1012
|
+
"select",
|
|
1013
|
+
"tag"
|
|
1014
|
+
],
|
|
1015
|
+
"dependencies": [
|
|
1016
|
+
"lucide-react@^1.17.0"
|
|
1017
|
+
],
|
|
1018
|
+
"files": [
|
|
1019
|
+
{
|
|
1020
|
+
"path": "registry/components/autocomplete.tsx",
|
|
1021
|
+
"type": "registry:component",
|
|
1022
|
+
"target": "@ui/autocomplete.tsx"
|
|
1023
|
+
}
|
|
1024
|
+
]
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"name": "date-picker",
|
|
1028
|
+
"type": "registry:component",
|
|
1029
|
+
"title": "Date Picker",
|
|
1030
|
+
"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.",
|
|
1031
|
+
"author": "Ahmad Galal",
|
|
1032
|
+
"registryDependencies": [
|
|
1033
|
+
"base",
|
|
1034
|
+
"popover"
|
|
1035
|
+
],
|
|
1036
|
+
"dependencies": [
|
|
1037
|
+
"class-variance-authority@^0.7.1",
|
|
1038
|
+
"lucide-react@^1.17.0"
|
|
1039
|
+
],
|
|
1040
|
+
"files": [
|
|
1041
|
+
{
|
|
1042
|
+
"path": "registry/components/date-picker.tsx",
|
|
1043
|
+
"type": "registry:component",
|
|
1044
|
+
"target": "@ui/date-picker.tsx"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"path": "registry/components/date-picker-state.ts",
|
|
1048
|
+
"type": "registry:component",
|
|
1049
|
+
"target": "@ui/date-picker-state.ts"
|
|
1050
|
+
}
|
|
1051
|
+
]
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"name": "slider",
|
|
1055
|
+
"type": "registry:component",
|
|
1056
|
+
"title": "Slider",
|
|
1057
|
+
"description": "Figma-matched accessible range control built on Radix Slider with single and double-node values, text and tooltip indicators, RTL, vertical, disabled, ticked, tone, size, pill, and keyboard-ready states.",
|
|
1058
|
+
"author": "Ahmad Galal",
|
|
1059
|
+
"registryDependencies": [
|
|
1060
|
+
"base"
|
|
1061
|
+
],
|
|
1062
|
+
"dependencies": [
|
|
1063
|
+
"@radix-ui/react-slider@^1.4.0",
|
|
1064
|
+
"class-variance-authority@^0.7.1"
|
|
1065
|
+
],
|
|
1066
|
+
"files": [
|
|
1067
|
+
{
|
|
1068
|
+
"path": "registry/components/slider.tsx",
|
|
1069
|
+
"type": "registry:component",
|
|
1070
|
+
"target": "@ui/slider.tsx"
|
|
1071
|
+
}
|
|
1072
|
+
]
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"name": "progress",
|
|
1076
|
+
"type": "registry:component",
|
|
1077
|
+
"title": "Progress",
|
|
1078
|
+
"description": "Read-only progress meter with Figma-matched value fill, sm/lg track sizes, top/bottom/helper/inline label compositions, tokenized indicator colors, helper text, info icon, spinner, and RTL-safe start anchoring.",
|
|
1079
|
+
"author": "Ahmad Galal",
|
|
1080
|
+
"registryDependencies": [
|
|
1081
|
+
"base"
|
|
1082
|
+
],
|
|
1083
|
+
"dependencies": [
|
|
1084
|
+
"class-variance-authority@^0.7.1",
|
|
1085
|
+
"lucide-react@^1.17.0"
|
|
1086
|
+
],
|
|
1087
|
+
"files": [
|
|
1088
|
+
{
|
|
1089
|
+
"path": "registry/components/progress.tsx",
|
|
1090
|
+
"type": "registry:component",
|
|
1091
|
+
"target": "@ui/progress.tsx"
|
|
1092
|
+
}
|
|
1093
|
+
]
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
"name": "progress-slider",
|
|
1097
|
+
"type": "registry:component",
|
|
1098
|
+
"title": "Progress Slider",
|
|
1099
|
+
"description": "Start-anchored progress slider built on Radix Slider where the filled surface grows from the start edge and the grip handle stays on the trailing edge.",
|
|
1100
|
+
"author": "Ahmad Galal",
|
|
1101
|
+
"registryDependencies": [
|
|
1102
|
+
"base"
|
|
1103
|
+
],
|
|
1104
|
+
"dependencies": [
|
|
1105
|
+
"@radix-ui/react-slider@^1.4.0",
|
|
1106
|
+
"class-variance-authority@^0.7.1"
|
|
1107
|
+
],
|
|
1108
|
+
"files": [
|
|
1109
|
+
{
|
|
1110
|
+
"path": "registry/components/progress-slider.tsx",
|
|
1111
|
+
"type": "registry:component",
|
|
1112
|
+
"target": "@ui/progress-slider.tsx"
|
|
1113
|
+
}
|
|
1114
|
+
]
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "textarea",
|
|
1118
|
+
"type": "registry:component",
|
|
1119
|
+
"title": "Textarea",
|
|
1120
|
+
"description": "Figma-matched textarea field with label, helper and error text, default and tags modes, placeholder, filled, disabled, and RTL states.",
|
|
1121
|
+
"author": "Ahmad Galal",
|
|
1122
|
+
"registryDependencies": [
|
|
1123
|
+
"base"
|
|
1124
|
+
],
|
|
1125
|
+
"dependencies": [
|
|
1126
|
+
"class-variance-authority@^0.7.1",
|
|
1127
|
+
"lucide-react@^1.17.0"
|
|
1128
|
+
],
|
|
1129
|
+
"files": [
|
|
1130
|
+
{
|
|
1131
|
+
"path": "registry/components/textarea.tsx",
|
|
1132
|
+
"type": "registry:component",
|
|
1133
|
+
"target": "@ui/textarea.tsx"
|
|
1134
|
+
}
|
|
1135
|
+
]
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"name": "skeleton",
|
|
1139
|
+
"type": "registry:component",
|
|
1140
|
+
"title": "Skeleton",
|
|
1141
|
+
"description": "Token-built loading placeholder primitive with text, avatar, button, input, card, list, table, and form compositions, shimmer motion, reduced-motion fallback, and RTL-safe direction.",
|
|
1142
|
+
"author": "Ahmad Galal",
|
|
1143
|
+
"registryDependencies": [
|
|
1144
|
+
"base"
|
|
1145
|
+
],
|
|
1146
|
+
"dependencies": [
|
|
1147
|
+
"class-variance-authority@^0.7.1"
|
|
1148
|
+
],
|
|
1149
|
+
"files": [
|
|
1150
|
+
{
|
|
1151
|
+
"path": "registry/components/skeleton.css",
|
|
1152
|
+
"type": "registry:style",
|
|
1153
|
+
"target": "@ui/skeleton.css"
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"path": "registry/components/skeleton.tsx",
|
|
1157
|
+
"type": "registry:component",
|
|
1158
|
+
"target": "@ui/skeleton.tsx"
|
|
1159
|
+
}
|
|
1160
|
+
]
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"name": "spinner",
|
|
1164
|
+
"type": "registry:component",
|
|
1165
|
+
"title": "Spinner",
|
|
1166
|
+
"description": "Small composable loading indicators with a steady Spinner and a smoother variable-arc DynamicSpinner, both inheriting text color and CSS variable sizing.",
|
|
1167
|
+
"author": "Ahmad Galal",
|
|
1168
|
+
"registryDependencies": [
|
|
1169
|
+
"base"
|
|
1170
|
+
],
|
|
1171
|
+
"dependencies": [],
|
|
1172
|
+
"files": [
|
|
1173
|
+
{
|
|
1174
|
+
"path": "registry/components/spinner.tsx",
|
|
1175
|
+
"type": "registry:component",
|
|
1176
|
+
"target": "@ui/spinner.tsx"
|
|
1177
|
+
}
|
|
1178
|
+
]
|
|
1179
|
+
},
|
|
1180
|
+
{
|
|
1181
|
+
"name": "toast",
|
|
1182
|
+
"type": "registry:component",
|
|
1183
|
+
"title": "Toast",
|
|
1184
|
+
"description": "Sonner-style transient feedback primitive with Banhaten token styling, success, danger, warning, info, and default intents, action slot support, and logical RTL placement.",
|
|
1185
|
+
"author": "Ahmad Galal",
|
|
1186
|
+
"registryDependencies": [
|
|
1187
|
+
"base"
|
|
1188
|
+
],
|
|
1189
|
+
"dependencies": [
|
|
1190
|
+
"sonner@^2.0.7"
|
|
1191
|
+
],
|
|
1192
|
+
"files": [
|
|
1193
|
+
{
|
|
1194
|
+
"path": "registry/components/toast.tsx",
|
|
1195
|
+
"type": "registry:component",
|
|
1196
|
+
"target": "@ui/toast.tsx"
|
|
1197
|
+
}
|
|
1198
|
+
]
|
|
1199
|
+
},
|
|
1200
|
+
{
|
|
1201
|
+
"name": "activity-feed",
|
|
1202
|
+
"type": "registry:block",
|
|
1203
|
+
"title": "Activity Feed",
|
|
1204
|
+
"description": "Expanded activity feed composition with avatar indicators, status dots, captions, action buttons, slot rows, timestamps, links, and RTL copy.",
|
|
1205
|
+
"author": "Ahmad Galal",
|
|
1206
|
+
"registryDependencies": [
|
|
1207
|
+
"base",
|
|
1208
|
+
"button"
|
|
1209
|
+
],
|
|
1210
|
+
"dependencies": [],
|
|
1211
|
+
"files": [
|
|
1212
|
+
{
|
|
1213
|
+
"path": "registry/components/expanded/activityFeed.css",
|
|
1214
|
+
"type": "registry:style",
|
|
1215
|
+
"target": "@ui/expanded/activityFeed.css"
|
|
1216
|
+
},
|
|
1217
|
+
{
|
|
1218
|
+
"path": "registry/components/expanded/ActivityFeed.tsx",
|
|
1219
|
+
"type": "registry:component",
|
|
1220
|
+
"target": "@ui/expanded/ActivityFeed.tsx"
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
"path": "registry/assets/activity-feed-avatar.png",
|
|
1224
|
+
"type": "registry:file",
|
|
1225
|
+
"target": "@ui/assets/activity-feed-avatar.png"
|
|
1226
|
+
}
|
|
1227
|
+
]
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"name": "alert",
|
|
1231
|
+
"type": "registry:component",
|
|
1232
|
+
"title": "Alert",
|
|
1233
|
+
"description": "Contextual feedback primitive with danger, success, warning, info, neutral, compact, expandable, action, close, and RTL variants.",
|
|
1234
|
+
"author": "Ahmad Galal",
|
|
1235
|
+
"registryDependencies": [
|
|
1236
|
+
"base"
|
|
1237
|
+
],
|
|
1238
|
+
"dependencies": [
|
|
1239
|
+
"class-variance-authority@^0.7.1",
|
|
1240
|
+
"lucide-react@^1.17.0"
|
|
1241
|
+
],
|
|
1242
|
+
"files": [
|
|
1243
|
+
{
|
|
1244
|
+
"path": "registry/components/alert.tsx",
|
|
1245
|
+
"type": "registry:component",
|
|
1246
|
+
"target": "@ui/alert.tsx"
|
|
1247
|
+
}
|
|
1248
|
+
]
|
|
1249
|
+
},
|
|
1250
|
+
{
|
|
1251
|
+
"name": "banner",
|
|
1252
|
+
"type": "registry:block",
|
|
1253
|
+
"title": "Banner",
|
|
1254
|
+
"description": "Expanded banner system with slim, inline action, single action, input, floating, full-width, brand, grey, brand-light, and RTL variants.",
|
|
1255
|
+
"author": "Ahmad Galal",
|
|
1256
|
+
"registryDependencies": [
|
|
1257
|
+
"base",
|
|
1258
|
+
"button",
|
|
1259
|
+
"input"
|
|
1260
|
+
],
|
|
1261
|
+
"dependencies": [
|
|
1262
|
+
"lucide-react@^1.17.0"
|
|
1263
|
+
],
|
|
1264
|
+
"files": [
|
|
1265
|
+
{
|
|
1266
|
+
"path": "registry/components/expanded/banner.css",
|
|
1267
|
+
"type": "registry:style",
|
|
1268
|
+
"target": "@ui/expanded/banner.css"
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"path": "registry/components/expanded/Banner.tsx",
|
|
1272
|
+
"type": "registry:component",
|
|
1273
|
+
"target": "@ui/expanded/Banner.tsx"
|
|
1274
|
+
}
|
|
1275
|
+
]
|
|
1276
|
+
},
|
|
1277
|
+
{
|
|
1278
|
+
"name": "catalog-components",
|
|
1279
|
+
"type": "registry:block",
|
|
1280
|
+
"title": "Catalog Components",
|
|
1281
|
+
"description": "Expanded catalog showcase with breadcrumbs, catalog-only content dividers, tag previews, file upload states, and table previews.",
|
|
1282
|
+
"author": "Ahmad Galal",
|
|
1283
|
+
"registryDependencies": [
|
|
1284
|
+
"base",
|
|
1285
|
+
"breadcrumbs",
|
|
1286
|
+
"button",
|
|
1287
|
+
"file-upload",
|
|
1288
|
+
"table",
|
|
1289
|
+
"tag"
|
|
1290
|
+
],
|
|
1291
|
+
"dependencies": [
|
|
1292
|
+
"lucide-react@^1.17.0"
|
|
1293
|
+
],
|
|
1294
|
+
"files": [
|
|
1295
|
+
{
|
|
1296
|
+
"path": "registry/components/expanded/catalogComponentsShowcase.css",
|
|
1297
|
+
"type": "registry:style",
|
|
1298
|
+
"target": "@ui/expanded/catalogComponentsShowcase.css"
|
|
1299
|
+
},
|
|
1300
|
+
{
|
|
1301
|
+
"path": "registry/components/expanded/CatalogComponentsShowcase.tsx",
|
|
1302
|
+
"type": "registry:component",
|
|
1303
|
+
"target": "@ui/expanded/CatalogComponentsShowcase.tsx"
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"path": "registry/components/expanded/divider.css",
|
|
1307
|
+
"type": "registry:style",
|
|
1308
|
+
"target": "@ui/expanded/divider.css"
|
|
1309
|
+
},
|
|
1310
|
+
{
|
|
1311
|
+
"path": "registry/components/expanded/CatalogDivider.tsx",
|
|
1312
|
+
"type": "registry:component",
|
|
1313
|
+
"target": "@ui/expanded/CatalogDivider.tsx"
|
|
1314
|
+
}
|
|
1315
|
+
]
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
"name": "breadcrumbs",
|
|
1319
|
+
"type": "registry:block",
|
|
1320
|
+
"title": "Breadcrumbs",
|
|
1321
|
+
"description": "Expanded breadcrumbs navigation with default, raised, icon, overflow, separator, and RTL variants.",
|
|
1322
|
+
"author": "Ahmad Galal",
|
|
1323
|
+
"registryDependencies": [
|
|
1324
|
+
"base"
|
|
1325
|
+
],
|
|
1326
|
+
"dependencies": [
|
|
1327
|
+
"lucide-react@^1.17.0"
|
|
1328
|
+
],
|
|
1329
|
+
"files": [
|
|
1330
|
+
{
|
|
1331
|
+
"path": "registry/components/expanded/breadcrumbs.css",
|
|
1332
|
+
"type": "registry:style",
|
|
1333
|
+
"target": "@ui/expanded/breadcrumbs.css"
|
|
1334
|
+
},
|
|
1335
|
+
{
|
|
1336
|
+
"path": "registry/components/expanded/Breadcrumbs.tsx",
|
|
1337
|
+
"type": "registry:component",
|
|
1338
|
+
"target": "@ui/expanded/Breadcrumbs.tsx"
|
|
1339
|
+
}
|
|
1340
|
+
]
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"name": "file-upload",
|
|
1344
|
+
"type": "registry:block",
|
|
1345
|
+
"title": "File Upload",
|
|
1346
|
+
"description": "Expanded file upload composition with drag-and-drop zones, file rows, upload states, disabled behavior, and RTL direction.",
|
|
1347
|
+
"author": "Ahmad Galal",
|
|
1348
|
+
"registryDependencies": [
|
|
1349
|
+
"base",
|
|
1350
|
+
"button"
|
|
1351
|
+
],
|
|
1352
|
+
"dependencies": [
|
|
1353
|
+
"lucide-react@^1.17.0"
|
|
1354
|
+
],
|
|
1355
|
+
"files": [
|
|
1356
|
+
{
|
|
1357
|
+
"path": "registry/components/expanded/fileUpload.css",
|
|
1358
|
+
"type": "registry:style",
|
|
1359
|
+
"target": "@ui/expanded/fileUpload.css"
|
|
1360
|
+
},
|
|
1361
|
+
{
|
|
1362
|
+
"path": "registry/components/expanded/FileUpload.tsx",
|
|
1363
|
+
"type": "registry:component",
|
|
1364
|
+
"target": "@ui/expanded/FileUpload.tsx"
|
|
1365
|
+
}
|
|
1366
|
+
]
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
"name": "table",
|
|
1370
|
+
"type": "registry:block",
|
|
1371
|
+
"title": "Table",
|
|
1372
|
+
"description": "Expanded table and data table composition with selection, stateful sortable headers, search, filters, bulk actions, pagination, empty/loading/error states, status badges, progress cells, actions, row states, and RTL mirroring.",
|
|
1373
|
+
"author": "Ahmad Galal",
|
|
1374
|
+
"registryDependencies": [
|
|
1375
|
+
"base",
|
|
1376
|
+
"avatar",
|
|
1377
|
+
"badge",
|
|
1378
|
+
"button",
|
|
1379
|
+
"checkbox",
|
|
1380
|
+
"pagination",
|
|
1381
|
+
"progress",
|
|
1382
|
+
"spinner",
|
|
1383
|
+
"tag",
|
|
1384
|
+
"toggle",
|
|
1385
|
+
"toolbar"
|
|
1386
|
+
],
|
|
1387
|
+
"dependencies": [
|
|
1388
|
+
"lucide-react@^1.17.0"
|
|
1389
|
+
],
|
|
1390
|
+
"files": [
|
|
1391
|
+
{
|
|
1392
|
+
"path": "registry/components/expanded/table.css",
|
|
1393
|
+
"type": "registry:style",
|
|
1394
|
+
"target": "@ui/expanded/table.css"
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"path": "registry/components/expanded/Table.tsx",
|
|
1398
|
+
"type": "registry:component",
|
|
1399
|
+
"target": "@ui/expanded/Table.tsx"
|
|
1400
|
+
}
|
|
1401
|
+
]
|
|
1402
|
+
},
|
|
1403
|
+
{
|
|
1404
|
+
"name": "empty-state",
|
|
1405
|
+
"type": "registry:block",
|
|
1406
|
+
"title": "Empty State",
|
|
1407
|
+
"description": "Expanded empty and result state composition with neutral icon halo, title, supporting copy, optional Button actions, alignment, compact density, custom icons, and RTL-safe text.",
|
|
1408
|
+
"author": "Ahmad Galal",
|
|
1409
|
+
"registryDependencies": [
|
|
1410
|
+
"base",
|
|
1411
|
+
"button"
|
|
1412
|
+
],
|
|
1413
|
+
"dependencies": [
|
|
1414
|
+
"lucide-react@^1.17.0"
|
|
1415
|
+
],
|
|
1416
|
+
"files": [
|
|
1417
|
+
{
|
|
1418
|
+
"path": "registry/components/expanded/emptyState.css",
|
|
1419
|
+
"type": "registry:style",
|
|
1420
|
+
"target": "@ui/expanded/emptyState.css"
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
"path": "registry/components/expanded/EmptyState.tsx",
|
|
1424
|
+
"type": "registry:component",
|
|
1425
|
+
"target": "@ui/expanded/EmptyState.tsx"
|
|
1426
|
+
}
|
|
1427
|
+
]
|
|
1428
|
+
},
|
|
1429
|
+
{
|
|
1430
|
+
"name": "onboarding-step",
|
|
1431
|
+
"type": "registry:block",
|
|
1432
|
+
"title": "Onboarding Step",
|
|
1433
|
+
"description": "Expanded onboarding step list item with finished, active, and inactive progress states for compact setup flows in LTR and RTL.",
|
|
1434
|
+
"author": "Ahmad Galal",
|
|
1435
|
+
"registryDependencies": [
|
|
1436
|
+
"base"
|
|
1437
|
+
],
|
|
1438
|
+
"dependencies": [
|
|
1439
|
+
"lucide-react@^1.17.0"
|
|
1440
|
+
],
|
|
1441
|
+
"files": [
|
|
1442
|
+
{
|
|
1443
|
+
"path": "registry/components/expanded/onboardingStepListItem.css",
|
|
1444
|
+
"type": "registry:style",
|
|
1445
|
+
"target": "@ui/expanded/onboardingStepListItem.css"
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
"path": "registry/components/expanded/OnboardingStepListItem.tsx",
|
|
1449
|
+
"type": "registry:component",
|
|
1450
|
+
"target": "@ui/expanded/OnboardingStepListItem.tsx"
|
|
1451
|
+
}
|
|
1452
|
+
]
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"name": "page-header",
|
|
1456
|
+
"type": "registry:block",
|
|
1457
|
+
"title": "Page Header",
|
|
1458
|
+
"description": "Expanded page header composition with breadcrumbs, metadata, description copy, action groups, responsive layout, and optional local tabs.",
|
|
1459
|
+
"author": "Ahmad Galal",
|
|
1460
|
+
"registryDependencies": [
|
|
1461
|
+
"base",
|
|
1462
|
+
"tabs"
|
|
1463
|
+
],
|
|
1464
|
+
"dependencies": [
|
|
1465
|
+
"lucide-react@^1.17.0"
|
|
1466
|
+
],
|
|
1467
|
+
"files": [
|
|
1468
|
+
{
|
|
1469
|
+
"path": "registry/components/expanded/pageHeader.css",
|
|
1470
|
+
"type": "registry:style",
|
|
1471
|
+
"target": "@ui/expanded/pageHeader.css"
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
"path": "registry/components/expanded/PageHeader.tsx",
|
|
1475
|
+
"type": "registry:component",
|
|
1476
|
+
"target": "@ui/expanded/PageHeader.tsx"
|
|
1477
|
+
}
|
|
1478
|
+
]
|
|
1479
|
+
},
|
|
1480
|
+
{
|
|
1481
|
+
"name": "slideout",
|
|
1482
|
+
"type": "registry:block",
|
|
1483
|
+
"title": "Slideout",
|
|
1484
|
+
"description": "Expanded slideout panel with desktop and mobile breakpoints, header and footer actions, slotted content, and RTL coverage.",
|
|
1485
|
+
"author": "Ahmad Galal",
|
|
1486
|
+
"registryDependencies": [
|
|
1487
|
+
"base"
|
|
1488
|
+
],
|
|
1489
|
+
"dependencies": [
|
|
1490
|
+
"lucide-react@^1.17.0"
|
|
1491
|
+
],
|
|
1492
|
+
"files": [
|
|
1493
|
+
{
|
|
1494
|
+
"path": "registry/components/expanded/slideout.css",
|
|
1495
|
+
"type": "registry:style",
|
|
1496
|
+
"target": "@ui/expanded/slideout.css"
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"path": "registry/components/expanded/Slideout.tsx",
|
|
1500
|
+
"type": "registry:component",
|
|
1501
|
+
"target": "@ui/expanded/Slideout.tsx"
|
|
1502
|
+
}
|
|
1503
|
+
]
|
|
1504
|
+
},
|
|
1505
|
+
{
|
|
1506
|
+
"name": "steps",
|
|
1507
|
+
"type": "registry:block",
|
|
1508
|
+
"title": "Steps",
|
|
1509
|
+
"description": "Expanded steps composition with horizontal and vertical progress indicators, icon markers, number markers, item alignment, and RTL layouts.",
|
|
1510
|
+
"author": "Ahmad Galal",
|
|
1511
|
+
"registryDependencies": [
|
|
1512
|
+
"base",
|
|
1513
|
+
"button"
|
|
1514
|
+
],
|
|
1515
|
+
"dependencies": [
|
|
1516
|
+
"lucide-react@^1.17.0"
|
|
1517
|
+
],
|
|
1518
|
+
"files": [
|
|
1519
|
+
{
|
|
1520
|
+
"path": "registry/components/expanded/steps.css",
|
|
1521
|
+
"type": "registry:style",
|
|
1522
|
+
"target": "@ui/expanded/steps.css"
|
|
1523
|
+
},
|
|
1524
|
+
{
|
|
1525
|
+
"path": "registry/components/expanded/Steps.tsx",
|
|
1526
|
+
"type": "registry:component",
|
|
1527
|
+
"target": "@ui/expanded/Steps.tsx"
|
|
1528
|
+
}
|
|
1529
|
+
]
|
|
1530
|
+
},
|
|
1531
|
+
{
|
|
1532
|
+
"name": "tabs",
|
|
1533
|
+
"type": "registry:component",
|
|
1534
|
+
"title": "Tabs",
|
|
1535
|
+
"description": "Radix Tabs-backed local navigation primitive with underline, segmented, and rounded treatments across size, width behavior, controlled state, LTR, and RTL.",
|
|
1536
|
+
"author": "Ahmad Galal",
|
|
1537
|
+
"registryDependencies": [
|
|
1538
|
+
"base"
|
|
1539
|
+
],
|
|
1540
|
+
"dependencies": [
|
|
1541
|
+
"@radix-ui/react-tabs@^1.1.16"
|
|
1542
|
+
],
|
|
1543
|
+
"files": [
|
|
1544
|
+
{
|
|
1545
|
+
"path": "registry/components/tabs.css",
|
|
1546
|
+
"type": "registry:style",
|
|
1547
|
+
"target": "@ui/tabs.css"
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
"path": "registry/components/tabs.tsx",
|
|
1551
|
+
"type": "registry:component",
|
|
1552
|
+
"target": "@ui/tabs.tsx"
|
|
1553
|
+
}
|
|
1554
|
+
]
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"name": "timeline",
|
|
1558
|
+
"type": "registry:block",
|
|
1559
|
+
"title": "Timeline",
|
|
1560
|
+
"description": "Expanded timeline composition with vertical and horizontal orientations, dates, captions, active states, finished states, item variants, and RTL layouts.",
|
|
1561
|
+
"author": "Ahmad Galal",
|
|
1562
|
+
"registryDependencies": [
|
|
1563
|
+
"base"
|
|
1564
|
+
],
|
|
1565
|
+
"dependencies": [
|
|
1566
|
+
"lucide-react@^1.17.0"
|
|
1567
|
+
],
|
|
1568
|
+
"files": [
|
|
1569
|
+
{
|
|
1570
|
+
"path": "registry/components/expanded/timeline.css",
|
|
1571
|
+
"type": "registry:style",
|
|
1572
|
+
"target": "@ui/expanded/timeline.css"
|
|
1573
|
+
},
|
|
1574
|
+
{
|
|
1575
|
+
"path": "registry/components/expanded/Timeline.tsx",
|
|
1576
|
+
"type": "registry:component",
|
|
1577
|
+
"target": "@ui/expanded/Timeline.tsx"
|
|
1578
|
+
}
|
|
1579
|
+
]
|
|
1580
|
+
}
|
|
1581
|
+
]
|
|
1582
|
+
}
|