@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.
- package/dist/components/catalyst-ui/data/chat-data.tsx +336 -0
- package/dist/components/catalyst-ui/data/code-data.tsx +1 -74
- package/dist/components/catalyst-ui/data/core-data.tsx +679 -7
- package/dist/components/catalyst-ui/data/crm-data.tsx +2 -2
- package/dist/components/catalyst-ui/data/forms-data.tsx +5 -5
- package/dist/components/catalyst-ui/data/media-data.tsx +66 -3
- package/dist/components/catalyst-ui/data/overlay-data.tsx +5 -3
- package/dist/components/catalyst-ui/data/primitive-data.tsx +18 -128
- package/dist/components/catalyst-ui/data/sidebars-data.tsx +38 -38
- package/dist/components/catalyst-ui/data/tools-data.tsx +1 -1
- package/dist/components/catalyst-ui/data/utils-data.tsx +27 -9
- package/dist/components/catalyst-ui/marketing/sections/header.tsx +1 -0
- package/dist/components/catalyst-ui/overlays/sidebar-props.tsx +1 -1
- package/dist/components/catalyst-ui/primitives/alert.tsx +1 -1
- package/dist/components/catalyst-ui/tools/md-badge-builder.tsx +1 -1
- package/dist/components/catalyst-ui/tools/monaco-sidebar.tsx +935 -331
- package/dist/components/catalyst-ui/tools/monaco.tsx +66 -66
- package/dist/components/catalyst-ui/tools/snippets.tsx +844 -0
- package/dist/data/tailwind.config.js +1 -1
- package/dist/data/tailwind.config.ngin.ts +1 -1
- package/dist/index.js +83 -86
- package/package.json +1 -1
|
@@ -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:
|
|
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/
|
|
13528
|
-
path: "/components/catalyst-ui/
|
|
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: "
|
|
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/
|
|
14186
|
+
importPath: "~/components/catalyst-ui/components/list-management/transfer-list",
|
|
13550
14187
|
multiImport: null,
|
|
13551
|
-
path: "/components/catalyst-ui/
|
|
14188
|
+
path: "/components/catalyst-ui/components/list-management/transfer-list.tsx",
|
|
13552
14189
|
premium: true,
|
|
13553
14190
|
source: null,
|
|
13554
|
-
category: "
|
|
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",
|