@catalystsoftware/ui 1.0.14 → 1.0.16

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.
@@ -1467,6 +1467,46 @@ export const coreFeedback = [
1467
1467
  desc: null,
1468
1468
  customize: null
1469
1469
  },
1470
+ {
1471
+ name: "Empty",
1472
+ value: "empty",
1473
+ importPath: "~/components/catalyst-ui/core/feedback/empty",
1474
+ multiImport: null,
1475
+ basicusage: `
1476
+ <Empty />
1477
+
1478
+ <Empty
1479
+ size="md"
1480
+ icon={<Inbox className="h-6 w-6" />}
1481
+ title="No data"
1482
+ description=""
1483
+ className=""
1484
+ >
1485
+ Content
1486
+ </Empty>`,
1487
+ path: "/components/catalyst-ui/core/feedback/empty.tsx",
1488
+ source: null,
1489
+ usagePath: "/components/catalyst-ui/core/feedback/empty.tsx",
1490
+ usage: null,
1491
+ premium: false,
1492
+ category: "Core: Feedback",
1493
+ tags: ["ui", "components", "feedback", "empty-state"],
1494
+ features: ["Responsive", "TypeScript", "Accessible", "Customizable"],
1495
+ dependencies: ["lucide-react", "react", "class-variance-authority"],
1496
+ props: {
1497
+ "Empty": [
1498
+ { name: "className", type: "string", default: "null" },
1499
+ { name: "size", type: "sm | md | lg", default: "md" },
1500
+ { name: "icon", type: "React.ReactNode", default: "null" },
1501
+ { name: "title", type: "string", default: "No data" },
1502
+ { name: "description", type: "string", default: "null" },
1503
+ { name: "children", type: "React.ReactNode", default: "null" },
1504
+ ],
1505
+ },
1506
+ desc: null,
1507
+ status: null,
1508
+ lastUpdated: null
1509
+ },
1470
1510
  {
1471
1511
  name: "Insufficient Permissions",
1472
1512
  value: "insufficient-permissions",
@@ -1977,6 +2017,30 @@ if (!user) {
1977
2017
  status: null,
1978
2018
  lastUpdated: null
1979
2019
  },
2020
+ {
2021
+ name: "notification",
2022
+ value: "notification",
2023
+ importPath: "~/components/catalyst-ui/core/feedback/notification",
2024
+ multiImport: null,
2025
+ basicusage: null,
2026
+ path: "/components/catalyst-ui/core/feedback/notification.tsx",
2027
+ premium: false,
2028
+ source: null,
2029
+ usage: null,
2030
+ usagePath: null,
2031
+ category: "Core: Feedback",
2032
+ tags: ["ui", "components", "interactive"],
2033
+ features: ["Responsive", "TypeScript", "Accessible"],
2034
+ dependencies: ["@radix-ui/react-aspect-ratio"],
2035
+ props: [
2036
+ { name: "className", type: "string", default: "null" },
2037
+ { name: "size", type: "sm | md | lg | xl", default: "md" },
2038
+ ],
2039
+ props2: [],
2040
+ desc: null,
2041
+ status: null,
2042
+ lastUpdated: null
2043
+ },
1980
2044
  {
1981
2045
  name: "error",
1982
2046
  value: "error",
@@ -4774,7 +4838,9 @@ export const componentsNavigation = [
4774
4838
  />
4775
4839
  </Toolbar>`,
4776
4840
  path: "/components/catalyst-ui/core/navigation/toolbar.tsx",
4841
+ source: null,
4777
4842
  usagePath: "/components/catalyst-ui/core/navigation/toolbar.tsx",
4843
+ usage: null,
4778
4844
  premium: true,
4779
4845
  category: "Core: Navigation",
4780
4846
  tags: ["ui", "components", "interactive", "toolbar", "editor", "actions"],
@@ -4860,6 +4926,244 @@ export const componentsNavigation = [
4860
4926
  multiImport: null,
4861
4927
  path: "/components/catlyst-ui/core/navigation/fab.tsx",
4862
4928
  premium: true,
4929
+ source: `
4930
+
4931
+
4932
+
4933
+
4934
+
4935
+
4936
+ export interface FABItem {
4937
+ icon: React.ReactNode;
4938
+ label: string;
4939
+ onClick: () => void;
4940
+ className?: string;
4941
+ }
4942
+
4943
+ export interface FABProps {
4944
+ icon?: React.ReactNode;
4945
+ label?: string;
4946
+ items?: FABItem[];
4947
+ position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
4948
+ variant?: "default" | "primary" | "secondary" | "outline";
4949
+ size?: "sm" | "md" | "lg";
4950
+ open?: boolean;
4951
+ onOpenChange?: (open: boolean) => void;
4952
+ className?: string;
4953
+ }
4954
+
4955
+ export function FAB({
4956
+ icon = <Plus className="h-5 w-5" />,
4957
+ label,
4958
+ items = [],
4959
+ position = "bottom-right",
4960
+ variant = "primary",
4961
+ size = "md",
4962
+ open = false,
4963
+ onOpenChange,
4964
+ className,
4965
+ ...props
4966
+ }: FABProps) {
4967
+ const sizeClasses = {
4968
+ sm: "h-10 w-10",
4969
+ md: "h-12 w-12",
4970
+ lg: "h-14 w-14"
4971
+ };
4972
+
4973
+ const positionClasses = {
4974
+ "top-left": "top-4 left-4",
4975
+ "top-right": "top-4 right-4",
4976
+ "bottom-left": "bottom-4 left-4",
4977
+ "bottom-right": "bottom-4 right-4"
4978
+ };
4979
+
4980
+ const variantClasses = {
4981
+ default: "bg-background text-foreground border border-border",
4982
+ primary: "bg-primary text-primary-foreground",
4983
+ secondary: "bg-secondary text-secondary-foreground",
4984
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground"
4985
+ };
4986
+
4987
+ return (
4988
+ <Box className={cn("fixed z-50", positionClasses[position], className)}>
4989
+ <Box className="flex flex-col items-center gap-2">
4990
+ {open && items.length > 0 && (
4991
+ <Box className="flex flex-col-reverse gap-2 mb-2">
4992
+ {items.map((item, index) => (
4993
+ <Button
4994
+ key={index}
4995
+ variant="outline"
4996
+ size="sm"
4997
+ className={cn(
4998
+ "gap-2 animate-in fade-in-0 zoom-in-95",
4999
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
5000
+ item.className
5001
+ )}
5002
+ onClick={item.onClick}
5003
+ >
5004
+ {item.icon}
5005
+ {item.label}
5006
+ </Button>
5007
+ ))}
5008
+ </Box>
5009
+ )}
5010
+
5011
+ <Button
5012
+ className={cn(
5013
+ "rounded-full shadow-lg transition-all duration-200",
5014
+ sizeClasses[size],
5015
+ variantClasses[variant],
5016
+ open && "rotate-45"
5017
+ )}
5018
+ onClick={() => onOpenChange?.(!open)}
5019
+ {...props}
5020
+ >
5021
+ {icon}
5022
+ {label && <Text className="sr-only">{label}</Text>}
5023
+ </Button>
5024
+ </Box>
5025
+ </Box>
5026
+ );
5027
+ }
5028
+
5029
+ export function FABDemo() {
5030
+ const fabItems: FABItem[] = [
5031
+ {
5032
+ icon: <MessageCircle className="h-4 w-4" />,
5033
+ label: "Message",
5034
+ onClick: () => console.log("Message clicked")
5035
+ },
5036
+ {
5037
+ icon: <Share className="h-4 w-4" />,
5038
+ label: "Share",
5039
+ onClick: () => console.log("Share clicked")
5040
+ },
5041
+ {
5042
+ icon: <Heart className="h-4 w-4" />,
5043
+ label: "Like",
5044
+ onClick: () => console.log("Like clicked")
5045
+ },
5046
+ {
5047
+ icon: <Upload className="h-4 w-4" />,
5048
+ label: "Upload",
5049
+ onClick: () => console.log("Upload clicked")
5050
+ }
5051
+ ];
5052
+
5053
+ return (
5054
+ <Box className="relative h-64 border border-border rounded-lg bg-muted/50">
5055
+ <Text className="text-lg font-semibold p-4">FAB Demo</Text>
5056
+ <Text className="text-sm text-muted-foreground px-4">
5057
+ Click the floating action button to see the menu items
5058
+ </Text>
5059
+
5060
+ <FAB
5061
+ icon={<Plus className="h-5 w-5" />}
5062
+ items={fabItems}
5063
+ position="bottom-right"
5064
+ variant="primary"
5065
+ className="relative"
5066
+ />
5067
+ </Box>
5068
+ );
5069
+ }
5070
+
5071
+ export function FABUsage() {
5072
+ const handleAction = (action: string) => {
5073
+ console.log('FAB action:');
5074
+ };
5075
+
5076
+ const socialItems: FABItem[] = [
5077
+ {
5078
+ icon: <MessageCircle className="h-4 w-4" />,
5079
+ label: "Chat",
5080
+ onClick: () => handleAction("chat")
5081
+ },
5082
+ {
5083
+ icon: <Share className="h-4 w-4" />,
5084
+ label: "Share",
5085
+ onClick: () => handleAction("share")
5086
+ }
5087
+ ];
5088
+
5089
+ return (
5090
+ <div className="space-y-6">
5091
+ <div>
5092
+ <Text className="font-medium mb-4">Primary FAB with Menu</Text>
5093
+ <Box className="relative h-32 border border-border rounded-lg p-4">
5094
+ <FAB
5095
+ icon={<Plus className="h-5 w-5" />}
5096
+ items={socialItems}
5097
+ position="bottom-right"
5098
+ variant="primary"
5099
+ />
5100
+ </Box>
5101
+ </div>
5102
+
5103
+ <div>
5104
+ <Text className="font-medium mb-4">Secondary FAB</Text>
5105
+ <Box className="relative h-32 border border-border rounded-lg p-4">
5106
+ <FAB
5107
+ icon={<MessageCircle className="h-5 w-5" />}
5108
+ label="Message"
5109
+ position="bottom-left"
5110
+ variant="secondary"
5111
+ />
5112
+ </Box>
5113
+ </div>
5114
+
5115
+ <div>
5116
+ <Text className="font-medium mb-4">Outline FAB</Text>
5117
+ <Box className="relative h-32 border border-border rounded-lg p-4">
5118
+ <FAB
5119
+ icon={<Share className="h-5 w-5" />}
5120
+ label="Share"
5121
+ position="top-right"
5122
+ variant="outline"
5123
+ />
5124
+ </Box>
5125
+ </div>
5126
+
5127
+ <div>
5128
+ <Text className="font-medium mb-4">Different Sizes</Text>
5129
+ <Box className="relative h-32 border border-border rounded-lg p-4 flex gap-4">
5130
+ <FAB
5131
+ icon={<Plus className="h-3 w-3" />}
5132
+ size="sm"
5133
+ position="top-left"
5134
+ variant="primary"
5135
+ />
5136
+ <FAB
5137
+ icon={<Plus className="h-4 w-4" />}
5138
+ size="md"
5139
+ position="top-left"
5140
+ variant="primary"
5141
+ className="left-16"
5142
+ />
5143
+ <FAB
5144
+ icon={<Plus className="h-5 w-5" />}
5145
+ size="lg"
5146
+ position="top-left"
5147
+ variant="primary"
5148
+ className="left-32"
5149
+ />
5150
+ </Box>
5151
+ </div>
5152
+
5153
+ <div>
5154
+ <Text className="font-medium mb-4">Simple FAB without Menu</Text>
5155
+ <Box className="relative h-32 border border-border rounded-lg p-4">
5156
+ <FAB
5157
+ icon={<Upload className="h-5 w-5" />}
5158
+ label="Upload"
5159
+ position="bottom-right"
5160
+ variant="primary"
5161
+ />
5162
+ </Box>
5163
+ </div>
5164
+ </div>
5165
+ );
5166
+ }`,
4863
5167
  category: "Core: Navigation",
4864
5168
  tags: ["ui", "components", "interactive"],
4865
5169
  features: ["Responsive", "TypeScript", "Accessible"],
@@ -4894,6 +5198,85 @@ export const componentsNavigation = [
4894
5198
  importPath: "~/components/catalyst-ui/core/navigation/action-bar",
4895
5199
  multiImport: "ActionBar, ActionBarContent, ActionBarDescription",
4896
5200
  path: "/components/catlyst-ui/core/navigation/action-bar.tsx",
5201
+ source: `
5202
+
5203
+
5204
+
5205
+
5206
+
5207
+ export interface ActionBarProps {
5208
+ children: React.ReactNode;
5209
+ open?: boolean;
5210
+ onClose?: () => void;
5211
+ position?: "bottom" | "top";
5212
+ variant?: "solid" | "subtle";
5213
+ className?: string;
5214
+ }
5215
+
5216
+ export function ActionBar({
5217
+ children,
5218
+ open = true,
5219
+ onClose,
5220
+ position = "bottom",
5221
+ variant = "solid",
5222
+ className,
5223
+ }: ActionBarProps) {
5224
+ if (!open) return null;
5225
+
5226
+ return (
5227
+ <div
5228
+ className={cn(
5229
+ "fixed left-0 right-0 z-50 flex items-center justify-between p-4 transition-all duration-300",
5230
+ position === "bottom" ? "bottom-0" : "top-0",
5231
+ variant === "solid"
5232
+ ? "bg-background border-t border-border shadow-lg"
5233
+ : "bg-background/80 backdrop-blur-sm border-t border-border/50",
5234
+ className
5235
+ )}
5236
+ >
5237
+ <div className="flex-1 flex items-center justify-between max-w-7xl mx-auto">
5238
+ <div className="flex-1">{children}</div>
5239
+ {onClose && (
5240
+ <Button
5241
+ variant="ghost"
5242
+ size="icon"
5243
+ onClick={onClose}
5244
+ className="ml-4"
5245
+ >
5246
+ <X className="h-4 w-4" />
5247
+ </Button>
5248
+ )}
5249
+ </div>
5250
+ </div>
5251
+ );
5252
+ }
5253
+
5254
+ export function ActionBarContent({
5255
+ children,
5256
+ className,
5257
+ }: {
5258
+ children: React.ReactNode;
5259
+ className?: string;
5260
+ }) {
5261
+ return (
5262
+ <div className={cn("flex items-center space-x-4", className)}>
5263
+ {children}
5264
+ </div>
5265
+ );
5266
+ }
5267
+
5268
+ export function ActionBarDescription({
5269
+ children,
5270
+ className,
5271
+ }: {
5272
+ children: React.ReactNode;
5273
+ className?: string;
5274
+ }) {
5275
+ return (
5276
+ <p className={cn("text-sm text-foreground/80", className)}>{children}</p>
5277
+ );
5278
+ }
5279
+ `,
4897
5280
  usagePath: null,
4898
5281
  basicusage: `
4899
5282
  <Button onClick={() => setIsActionBarOpen(true)}>
@@ -5209,6 +5592,41 @@ function AffixUsage() {
5209
5592
  status: null,
5210
5593
  lastUpdated: null
5211
5594
  },
5595
+ {
5596
+ name: "KBD",
5597
+ value: "kbd",
5598
+ importPath: "~/components/catalyst-ui/components/ui/kbd",
5599
+ multiImport: null,
5600
+ basicusage: `
5601
+ <KBD>Ctrl</KBD>
5602
+
5603
+ <KBD
5604
+ variant="default"
5605
+ size="default"
5606
+ className=""
5607
+ >
5608
+ Ctrl
5609
+ </KBD>`,
5610
+ path: "/components/catalyst-ui/components/ui/kbd.tsx",
5611
+ source: null,
5612
+ usagePath: "/components/catalyst-ui/components/ui/kbd.tsx",
5613
+ usage: null,
5614
+ premium: false,
5615
+ category: "Core: Navigation",
5616
+ tags: ["ui", "typography", "keyboard", "shortcut"],
5617
+ features: ["Responsive", "TypeScript", "Accessible", "Variants"],
5618
+ dependencies: ["react", "class-variance-authority"],
5619
+ props: {
5620
+ "KBD": [
5621
+ { name: "className", type: "string", default: "null" },
5622
+ { name: "variant", type: "default | outline", default: "default" },
5623
+ { name: "size", type: "default | sm | lg", default: "default" },
5624
+ ],
5625
+ },
5626
+ desc: null,
5627
+ status: null,
5628
+ lastUpdated: null
5629
+ },
5212
5630
  {
5213
5631
  name: "tab-menu",
5214
5632
  value: "tab-menu",
@@ -7409,7 +7827,226 @@ nav="navlink"
7409
7827
  importPath: "~/components/catalyst-ui/core/navigation/menubar",
7410
7828
  multiImport: 'Menubar, MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarTrigger, MenubarPortal, MenubarGroup, MenubarLabel, MenubarCheckboxItem, MenubarRadioItem, MenubarRadioGroup, MenubarSub, MenubarSubTrigger, MenubarSubContent',
7411
7829
  path: "/components/catlyst-ui/core/navigation/menubar.tsx",
7412
- premium: true,
7830
+ premium: false,
7831
+ source: `
7832
+
7833
+
7834
+
7835
+ const Menubar = React.forwardRef<
7836
+ React.ElementRef<typeof MenubarPrimitive.Root>,
7837
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>
7838
+ >(({ className, ...props }, ref) => (
7839
+ <MenubarPrimitive.Root
7840
+ ref={ref}
7841
+ className={cn(
7842
+ "flex h-10 items-center space-x-1 rounded-md border bg-background p-1",
7843
+ className
7844
+ )}
7845
+ {...props}
7846
+ />
7847
+ ));
7848
+ Menubar.displayName = MenubarPrimitive.Root.displayName;
7849
+
7850
+ const MenubarMenu = MenubarPrimitive.Menu;
7851
+
7852
+ const MenubarTrigger = React.forwardRef<
7853
+ React.ElementRef<typeof MenubarPrimitive.Trigger>,
7854
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>
7855
+ >(({ className, ...props }, ref) => (
7856
+ <MenubarPrimitive.Trigger
7857
+ ref={ref}
7858
+ className={cn(
7859
+ "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
7860
+ className
7861
+ )}
7862
+ {...props}
7863
+ />
7864
+ ));
7865
+ MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
7866
+
7867
+ const MenubarSubTrigger = React.forwardRef<
7868
+ React.ElementRef<typeof MenubarPrimitive.SubTrigger>,
7869
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {
7870
+ inset?: boolean;
7871
+ }
7872
+ >(({ className, inset, children, ...props }, ref) => (
7873
+ <MenubarPrimitive.SubTrigger
7874
+ ref={ref}
7875
+ className={cn(
7876
+ "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
7877
+ inset && "pl-8",
7878
+ className
7879
+ )}
7880
+ {...props}
7881
+ >
7882
+ {children}
7883
+ <ChevronRight className="ml-auto h-4 w-4" />
7884
+ </MenubarPrimitive.SubTrigger>
7885
+ ));
7886
+ MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
7887
+
7888
+ const MenubarSubContent = React.forwardRef<
7889
+ React.ElementRef<typeof MenubarPrimitive.SubContent>,
7890
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>
7891
+ >(({ className, ...props }, ref) => (
7892
+ <MenubarPrimitive.SubContent
7893
+ ref={ref}
7894
+ className={cn(
7895
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
7896
+ className
7897
+ )}
7898
+ {...props}
7899
+ />
7900
+ ));
7901
+ MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
7902
+
7903
+ const MenubarContent = React.forwardRef<
7904
+ React.ElementRef<typeof MenubarPrimitive.Content>,
7905
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>
7906
+ >(
7907
+ (
7908
+ { className, align = "start", alignOffset = -4, sideOffset = 8, ...props },
7909
+ ref
7910
+ ) => (
7911
+ <MenubarPrimitive.Portal>
7912
+ <MenubarPrimitive.Content
7913
+ ref={ref}
7914
+ align={align}
7915
+ alignOffset={alignOffset}
7916
+ sideOffset={sideOffset}
7917
+ className={cn(
7918
+ "z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
7919
+ className
7920
+ )}
7921
+ {...props}
7922
+ />
7923
+ </MenubarPrimitive.Portal>
7924
+ )
7925
+ );
7926
+ MenubarContent.displayName = MenubarPrimitive.Content.displayName;
7927
+
7928
+ const MenubarItem = React.forwardRef<
7929
+ React.ElementRef<typeof MenubarPrimitive.Item>,
7930
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {
7931
+ inset?: boolean;
7932
+ }
7933
+ >(({ className, inset, ...props }, ref) => (
7934
+ <MenubarPrimitive.Item
7935
+ ref={ref}
7936
+ className={cn(
7937
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
7938
+ inset && "pl-8",
7939
+ className
7940
+ )}
7941
+ {...props}
7942
+ />
7943
+ ));
7944
+ MenubarItem.displayName = MenubarPrimitive.Item.displayName;
7945
+
7946
+ const MenubarCheckboxItem = React.forwardRef<
7947
+ React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,
7948
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>
7949
+ >(({ className, children, checked, ...props }, ref) => (
7950
+ <MenubarPrimitive.CheckboxItem
7951
+ ref={ref}
7952
+ className={cn(
7953
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
7954
+ className
7955
+ )}
7956
+ checked={checked}
7957
+ {...props}
7958
+ >
7959
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
7960
+ <MenubarPrimitive.ItemIndicator>
7961
+ <CheckIcon className="h-4 w-4" />
7962
+ </MenubarPrimitive.ItemIndicator>
7963
+ </span>
7964
+ {children}
7965
+ </MenubarPrimitive.CheckboxItem>
7966
+ ));
7967
+ MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
7968
+
7969
+ const MenubarRadioItem = React.forwardRef<
7970
+ React.ElementRef<typeof MenubarPrimitive.RadioItem>,
7971
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>
7972
+ >(({ className, children, ...props }, ref) => (
7973
+ <MenubarPrimitive.RadioItem
7974
+ ref={ref}
7975
+ className={cn(
7976
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
7977
+ className
7978
+ )}
7979
+ {...props}
7980
+ >
7981
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
7982
+ <MenubarPrimitive.ItemIndicator>
7983
+ <Circle className="h-2 w-2 fill-current" />
7984
+ </MenubarPrimitive.ItemIndicator>
7985
+ </span>
7986
+ {children}
7987
+ </MenubarPrimitive.RadioItem>
7988
+ ));
7989
+ MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
7990
+
7991
+ const MenubarLabel = React.forwardRef<
7992
+ React.ElementRef<typeof MenubarPrimitive.Label>,
7993
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {
7994
+ inset?: boolean;
7995
+ }
7996
+ >(({ className, inset, ...props }, ref) => (
7997
+ <MenubarPrimitive.Label
7998
+ ref={ref}
7999
+ className={cn(
8000
+ "px-2 py-1.5 text-sm font-semibold",
8001
+ inset && "pl-8",
8002
+ className
8003
+ )}
8004
+ {...props}
8005
+ />
8006
+ ));
8007
+ MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
8008
+
8009
+ const MenubarSeparator = React.forwardRef<
8010
+ React.ElementRef<typeof MenubarPrimitive.Separator>,
8011
+ React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>
8012
+ >(({ className, ...props }, ref) => (
8013
+ <MenubarPrimitive.Separator
8014
+ ref={ref}
8015
+ className={cn("-mx-1 my-1 h-px bg-muted", className)}
8016
+ {...props}
8017
+ />
8018
+ ));
8019
+ MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
8020
+
8021
+ const MenubarShortcut = ({
8022
+ className,
8023
+ ...props
8024
+ }: React.HTMLAttributes<HTMLSpanElement>) => {
8025
+ return (
8026
+ <span
8027
+ className={cn("ml-auto text-xs tracking-widest text-muted-foreground", className)}
8028
+ {...props}
8029
+ />
8030
+ );
8031
+ };
8032
+ MenubarShortcut.displayName = "MenubarShortcut";
8033
+
8034
+ export {
8035
+ Menubar,
8036
+ MenubarMenu,
8037
+ MenubarTrigger,
8038
+ MenubarContent,
8039
+ MenubarItem,
8040
+ MenubarSeparator,
8041
+ MenubarLabel,
8042
+ MenubarCheckboxItem,
8043
+ MenubarRadioGroup,
8044
+ MenubarRadioItem,
8045
+ MenubarPortal,
8046
+ MenubarSubContent,
8047
+ MenubarSubTrigger,
8048
+ MenubarShortcut,
8049
+ } `,
7413
8050
  category: "Core: Navigation",
7414
8051
  tags: ["ui", "components", "interactive"],
7415
8052
  features: ["Responsive", "TypeScript", "Accessible"],
@@ -13524,13 +14161,13 @@ function ArrowDownIcon(props: React.SVGProps<SVGSVGElement>) {
13524
14161
  {
13525
14162
  name: "order list",
13526
14163
  value: "order-list",
13527
- importPath: "~/components/catalyst-ui/core/data-display/order-list",
13528
- path: "/components/catalyst-ui/core/data-display/order-list.tsx",
14164
+ importPath: "~/components/catalyst-ui/components/list-management/order-list",
14165
+ path: "/components/catalyst-ui/components/list-management/order-list.tsx",
13529
14166
  premium: true,
13530
14167
  source: null,
13531
14168
  usage: null,
13532
14169
  usagePath: null,
13533
- category: "Core: Data Display",
14170
+ category: "Forms",
13534
14171
  tags: ["ui", "components", "interactive"],
13535
14172
  features: ["Responsive", "TypeScript", "Accessible"],
13536
14173
  dependencies: ["@radix-ui/react-aspect-ratio"],
@@ -13546,12 +14183,12 @@ function ArrowDownIcon(props: React.SVGProps<SVGSVGElement>) {
13546
14183
  {
13547
14184
  name: "Transfer List",
13548
14185
  value: "transfer-list",
13549
- importPath: "~/components/catalyst-ui/core/data-display/transfer-list",
14186
+ importPath: "~/components/catalyst-ui/components/list-management/transfer-list",
13550
14187
  multiImport: null,
13551
- path: "/components/catalyst-ui/core/data-display/transfer-list.tsx",
14188
+ path: "/components/catalyst-ui/components/list-management/transfer-list.tsx",
13552
14189
  premium: true,
13553
14190
  source: null,
13554
- category: "Core: Data Display",
14191
+ category: "Forms",
13555
14192
  tags: ["ui", "components", "interactive"],
13556
14193
  features: ["Responsive", "TypeScript", "Accessible"],
13557
14194
  dependencies: ["react", "lucide-react"],
@@ -14106,6 +14743,41 @@ export const coreLists = [
14106
14743
  status: null,
14107
14744
  lastUpdated: null
14108
14745
  },
14746
+ {
14747
+ name: "Item",
14748
+ value: "item",
14749
+ importPath: "~/components/catalyst-ui/core/lists/item",
14750
+ multiImport: null,
14751
+ basicusage: `
14752
+ <Item>Profile</Item>
14753
+
14754
+ <Item
14755
+ variant="default"
14756
+ inset={false}
14757
+ className=""
14758
+ >
14759
+ Profile
14760
+ </Item>`,
14761
+ path: "/components/catalyst-ui/core/lists/item.tsx",
14762
+ source: null,
14763
+ usagePath: "/components/catalyst-ui/core/lists/item.tsx",
14764
+ usage: null,
14765
+ premium: false,
14766
+ category: "Core: Lists",
14767
+ tags: ["ui", "menu", "list", "item"],
14768
+ features: ["Responsive", "TypeScript", "Accessible", "Variants"],
14769
+ dependencies: ["react", "class-variance-authority"],
14770
+ props: {
14771
+ "Item": [
14772
+ { name: "className", type: "string", default: "null" },
14773
+ { name: "variant", type: "default | destructive", default: "default" },
14774
+ { name: "inset", type: "boolean", default: "false" },
14775
+ ],
14776
+ },
14777
+ desc: null,
14778
+ status: null,
14779
+ lastUpdated: null
14780
+ },
14109
14781
  {
14110
14782
  name: "Rail",
14111
14783
  value: "rail",