@object-ui/components 0.3.0 → 0.3.1
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 +10 -0
- package/ISSUES_FOUND.md +128 -0
- package/README.md +19 -1
- package/README_SHADCN_SYNC.md +281 -0
- package/TESTING.md +335 -0
- package/dist/index.css +1 -1
- package/dist/index.js +30981 -30027
- package/dist/index.umd.cjs +30 -39
- package/dist/src/hooks/use-mobile.d.ts +7 -0
- package/dist/src/index.d.ts +4 -1
- package/dist/src/renderers/basic/button-group.d.ts +8 -0
- package/dist/src/renderers/basic/div.d.ts +7 -0
- package/dist/src/renderers/basic/html.d.ts +7 -0
- package/dist/src/renderers/basic/icon.d.ts +7 -0
- package/dist/src/renderers/basic/image.d.ts +7 -0
- package/dist/src/renderers/basic/navigation-menu.d.ts +8 -0
- package/dist/src/renderers/basic/pagination.d.ts +8 -0
- package/dist/src/renderers/basic/separator.d.ts +7 -0
- package/dist/src/renderers/basic/span.d.ts +7 -0
- package/dist/src/renderers/basic/text.d.ts +7 -0
- package/dist/src/renderers/complex/carousel.d.ts +7 -0
- package/dist/src/renderers/complex/data-table.d.ts +7 -0
- package/dist/src/renderers/complex/filter-builder.d.ts +7 -0
- package/dist/src/renderers/complex/resizable.d.ts +7 -0
- package/dist/src/renderers/complex/scroll-area.d.ts +7 -0
- package/dist/src/renderers/complex/table.d.ts +7 -0
- package/dist/src/renderers/data-display/alert.d.ts +7 -0
- package/dist/src/renderers/data-display/avatar.d.ts +7 -0
- package/dist/src/renderers/data-display/badge.d.ts +7 -0
- package/dist/src/renderers/data-display/breadcrumb.d.ts +8 -0
- package/dist/src/renderers/data-display/kbd.d.ts +8 -0
- package/dist/src/renderers/data-display/list.d.ts +7 -0
- package/dist/src/renderers/data-display/statistic.d.ts +7 -0
- package/dist/src/renderers/data-display/table.d.ts +8 -0
- package/dist/src/renderers/data-display/tree-view.d.ts +7 -0
- package/dist/src/renderers/disclosure/accordion.d.ts +7 -0
- package/dist/src/renderers/disclosure/collapsible.d.ts +7 -0
- package/dist/src/renderers/disclosure/toggle-group.d.ts +8 -0
- package/dist/src/renderers/feedback/empty.d.ts +8 -0
- package/dist/src/renderers/feedback/loading.d.ts +7 -0
- package/dist/src/renderers/feedback/progress.d.ts +7 -0
- package/dist/src/renderers/feedback/skeleton.d.ts +7 -0
- package/dist/src/renderers/feedback/sonner.d.ts +8 -0
- package/dist/src/renderers/feedback/spinner.d.ts +8 -0
- package/dist/src/renderers/feedback/toast.d.ts +8 -0
- package/dist/src/renderers/feedback/toaster.d.ts +7 -0
- package/dist/src/renderers/form/button.d.ts +7 -0
- package/dist/src/renderers/form/calendar.d.ts +7 -0
- package/dist/src/renderers/form/checkbox.d.ts +7 -0
- package/dist/src/renderers/form/combobox.d.ts +8 -0
- package/dist/src/renderers/form/command.d.ts +8 -0
- package/dist/src/renderers/form/date-picker.d.ts +7 -0
- package/dist/src/renderers/form/file-upload.d.ts +7 -0
- package/dist/src/renderers/form/form.d.ts +7 -0
- package/dist/src/renderers/form/input-otp.d.ts +7 -0
- package/dist/src/renderers/form/input.d.ts +7 -0
- package/dist/src/renderers/form/label.d.ts +7 -0
- package/dist/src/renderers/form/radio-group.d.ts +7 -0
- package/dist/src/renderers/form/select.d.ts +7 -0
- package/dist/src/renderers/form/slider.d.ts +7 -0
- package/dist/src/renderers/form/switch.d.ts +7 -0
- package/dist/src/renderers/form/textarea.d.ts +7 -0
- package/dist/src/renderers/form/toggle.d.ts +7 -0
- package/dist/src/renderers/layout/aspect-ratio.d.ts +8 -0
- package/dist/src/renderers/layout/card.d.ts +7 -0
- package/dist/src/renderers/layout/container.d.ts +7 -0
- package/dist/src/renderers/layout/flex.d.ts +7 -0
- package/dist/src/renderers/layout/grid.d.ts +7 -0
- package/dist/src/renderers/layout/semantic.d.ts +7 -0
- package/dist/src/renderers/layout/stack.d.ts +7 -0
- package/dist/src/renderers/layout/tabs.d.ts +7 -0
- package/dist/src/renderers/navigation/header-bar.d.ts +7 -0
- package/dist/src/renderers/navigation/sidebar.d.ts +7 -0
- package/dist/src/renderers/overlay/alert-dialog.d.ts +7 -0
- package/dist/src/renderers/overlay/context-menu.d.ts +7 -0
- package/dist/src/renderers/overlay/dialog.d.ts +7 -0
- package/dist/src/renderers/overlay/drawer.d.ts +7 -0
- package/dist/src/renderers/overlay/dropdown-menu.d.ts +7 -0
- package/dist/src/renderers/overlay/hover-card.d.ts +7 -0
- package/dist/src/renderers/overlay/menubar.d.ts +8 -0
- package/dist/src/renderers/overlay/popover.d.ts +7 -0
- package/dist/src/renderers/overlay/sheet.d.ts +7 -0
- package/dist/src/renderers/overlay/tooltip.d.ts +7 -0
- package/dist/src/renderers/placeholders.d.ts +9 -0
- package/dist/src/ui/accordion.d.ts +7 -0
- package/dist/src/ui/alert-dialog.d.ts +7 -0
- package/dist/src/ui/alert.d.ts +7 -0
- package/dist/src/ui/aspect-ratio.d.ts +7 -0
- package/dist/src/ui/avatar.d.ts +7 -0
- package/dist/src/ui/badge.d.ts +7 -0
- package/dist/src/ui/breadcrumb.d.ts +7 -0
- package/dist/src/ui/button.d.ts +10 -5
- package/dist/src/ui/calendar.d.ts +14 -7
- package/dist/src/ui/card.d.ts +7 -0
- package/dist/src/ui/carousel.d.ts +7 -0
- package/dist/src/ui/checkbox.d.ts +7 -0
- package/dist/src/ui/collapsible.d.ts +7 -0
- package/dist/src/ui/combobox.d.ts +22 -0
- package/dist/src/ui/command.d.ts +7 -0
- package/dist/src/ui/context-menu.d.ts +7 -0
- package/dist/src/ui/date-picker.d.ts +15 -0
- package/dist/src/ui/dialog.d.ts +7 -0
- package/dist/src/ui/drawer.d.ts +7 -0
- package/dist/src/ui/dropdown-menu.d.ts +7 -0
- package/dist/src/ui/filter-builder.d.ts +7 -0
- package/dist/src/ui/form.d.ts +7 -0
- package/dist/src/ui/hover-card.d.ts +7 -0
- package/dist/src/ui/index.d.ts +10 -5
- package/dist/src/ui/input-otp.d.ts +7 -0
- package/dist/src/ui/input.d.ts +7 -0
- package/dist/src/ui/item.d.ts +7 -0
- package/dist/src/ui/kbd.d.ts +7 -0
- package/dist/src/ui/label.d.ts +7 -0
- package/dist/src/ui/menubar.d.ts +7 -0
- package/dist/src/ui/navigation-menu.d.ts +7 -0
- package/dist/src/ui/pagination.d.ts +7 -0
- package/dist/src/ui/popover.d.ts +7 -0
- package/dist/src/ui/progress.d.ts +7 -0
- package/dist/src/ui/radio-group.d.ts +7 -0
- package/dist/src/ui/resizable.d.ts +7 -0
- package/dist/src/ui/scroll-area.d.ts +7 -0
- package/dist/src/ui/select.d.ts +9 -2
- package/dist/src/ui/separator.d.ts +7 -0
- package/dist/src/ui/sheet.d.ts +7 -0
- package/dist/src/ui/sidebar.d.ts +14 -9
- package/dist/src/ui/skeleton.d.ts +7 -0
- package/dist/src/ui/slider.d.ts +7 -0
- package/dist/src/ui/spinner.d.ts +7 -0
- package/dist/src/ui/switch.d.ts +7 -0
- package/dist/src/ui/table.d.ts +15 -8
- package/dist/src/ui/tabs.d.ts +7 -0
- package/dist/src/ui/textarea.d.ts +7 -0
- package/dist/src/ui/toggle-group.d.ts +8 -3
- package/dist/src/ui/toggle.d.ts +7 -0
- package/dist/src/ui/tooltip.d.ts +7 -0
- package/metadata/ObjectGrid.component.yml +72 -0
- package/package.json +23 -11
- package/postcss.config.js +9 -1
- package/shadcn-components.json +310 -0
- package/src/__tests__/README.md +124 -0
- package/src/__tests__/basic-renderers.test.tsx +255 -0
- package/src/__tests__/complex-disclosure-renderers.test.tsx +301 -0
- package/src/__tests__/feedback-overlay-renderers.test.tsx +349 -0
- package/src/__tests__/form-renderers.test.tsx +364 -0
- package/src/__tests__/layout-data-renderers.test.tsx +340 -0
- package/src/__tests__/test-utils.tsx +190 -0
- package/src/hooks/use-mobile.tsx +8 -0
- package/src/index.css +86 -54
- package/src/index.test.ts +8 -0
- package/src/index.ts +21 -1
- package/src/lib/utils.tsx +8 -0
- package/src/new-components.test.ts +8 -9
- package/src/renderers/basic/button-group.tsx +78 -0
- package/src/renderers/basic/div.tsx +9 -1
- package/src/renderers/basic/html.tsx +8 -0
- package/src/renderers/basic/icon.tsx +66 -3
- package/src/renderers/basic/image.tsx +12 -1
- package/src/renderers/basic/index.ts +11 -0
- package/src/renderers/basic/navigation-menu.tsx +80 -0
- package/src/renderers/basic/pagination.tsx +82 -0
- package/src/renderers/basic/separator.tsx +9 -1
- package/src/renderers/basic/span.tsx +9 -1
- package/src/renderers/basic/text.tsx +8 -0
- package/src/renderers/complex/__tests__/data-table.test.ts +8 -0
- package/src/renderers/complex/carousel.tsx +11 -3
- package/src/renderers/complex/data-table.tsx +19 -4
- package/src/renderers/complex/filter-builder.tsx +8 -0
- package/src/renderers/complex/index.ts +9 -3
- package/src/renderers/complex/resizable.tsx +8 -0
- package/src/renderers/complex/scroll-area.tsx +8 -0
- package/src/renderers/complex/table.tsx +10 -2
- package/src/renderers/data-display/alert.tsx +8 -0
- package/src/renderers/data-display/avatar.tsx +8 -0
- package/src/renderers/data-display/badge.tsx +8 -0
- package/src/renderers/data-display/breadcrumb.tsx +59 -0
- package/src/renderers/data-display/index.ts +12 -0
- package/src/renderers/data-display/kbd.tsx +49 -0
- package/src/renderers/data-display/list.tsx +8 -0
- package/src/renderers/data-display/statistic.tsx +24 -43
- package/src/renderers/data-display/table.tsx +68 -0
- package/src/renderers/data-display/tree-view.tsx +26 -37
- package/src/renderers/disclosure/accordion.tsx +8 -0
- package/src/renderers/disclosure/collapsible.tsx +8 -0
- package/src/renderers/disclosure/index.ts +9 -0
- package/src/renderers/disclosure/toggle-group.tsx +77 -0
- package/src/renderers/feedback/empty.tsx +48 -0
- package/src/renderers/feedback/index.ts +12 -0
- package/src/renderers/feedback/loading.tsx +8 -0
- package/src/renderers/feedback/progress.tsx +8 -0
- package/src/renderers/feedback/skeleton.tsx +8 -0
- package/src/renderers/feedback/sonner.tsx +55 -0
- package/src/renderers/feedback/spinner.tsx +54 -0
- package/src/renderers/feedback/toast.tsx +58 -0
- package/src/renderers/feedback/toaster.tsx +13 -17
- package/src/renderers/form/button.tsx +8 -0
- package/src/renderers/form/calendar.tsx +8 -0
- package/src/renderers/form/checkbox.tsx +8 -0
- package/src/renderers/form/combobox.tsx +47 -0
- package/src/renderers/form/command.tsx +57 -0
- package/src/renderers/form/date-picker.tsx +10 -2
- package/src/renderers/form/file-upload.tsx +10 -2
- package/src/renderers/form/form.tsx +12 -3
- package/src/renderers/form/index.ts +10 -0
- package/src/renderers/form/input-otp.tsx +34 -15
- package/src/renderers/form/input.tsx +89 -50
- package/src/renderers/form/label.tsx +8 -0
- package/src/renderers/form/radio-group.tsx +8 -0
- package/src/renderers/form/select.tsx +8 -0
- package/src/renderers/form/slider.tsx +16 -1
- package/src/renderers/form/switch.tsx +8 -0
- package/src/renderers/form/textarea.tsx +8 -0
- package/src/renderers/form/toggle.tsx +8 -0
- package/src/renderers/index.ts +8 -0
- package/src/renderers/layout/aspect-ratio.tsx +50 -0
- package/src/renderers/layout/card.tsx +8 -0
- package/src/renderers/layout/container.tsx +20 -12
- package/src/renderers/layout/flex.tsx +16 -8
- package/src/renderers/layout/grid.tsx +8 -0
- package/src/renderers/layout/index.ts +9 -0
- package/src/renderers/layout/page.tsx +9 -1
- package/src/renderers/layout/semantic.tsx +8 -0
- package/src/renderers/layout/stack.tsx +16 -8
- package/src/renderers/layout/tabs.tsx +8 -0
- package/src/renderers/navigation/header-bar.tsx +9 -1
- package/src/renderers/navigation/index.ts +8 -0
- package/src/renderers/navigation/sidebar.tsx +8 -0
- package/src/renderers/overlay/alert-dialog.tsx +8 -0
- package/src/renderers/overlay/context-menu.tsx +9 -1
- package/src/renderers/overlay/dialog.tsx +8 -0
- package/src/renderers/overlay/drawer.tsx +8 -0
- package/src/renderers/overlay/dropdown-menu.tsx +8 -0
- package/src/renderers/overlay/hover-card.tsx +8 -0
- package/src/renderers/overlay/index.ts +9 -0
- package/src/renderers/overlay/menubar.tsx +75 -0
- package/src/renderers/overlay/popover.tsx +8 -0
- package/src/renderers/overlay/sheet.tsx +8 -0
- package/src/renderers/overlay/tooltip.tsx +8 -0
- package/src/renderers/placeholders.tsx +107 -0
- package/src/ui/accordion.tsx +8 -0
- package/src/ui/alert-dialog.tsx +8 -0
- package/src/ui/alert.tsx +14 -24
- package/src/ui/aspect-ratio.tsx +8 -0
- package/src/ui/avatar.tsx +8 -0
- package/src/ui/badge.tsx +13 -6
- package/src/ui/breadcrumb.tsx +8 -0
- package/src/ui/button-group.tsx +8 -0
- package/src/ui/button.tsx +38 -36
- package/src/ui/calendar.tsx +57 -200
- package/src/ui/card.tsx +8 -0
- package/src/ui/carousel.tsx +8 -0
- package/src/ui/checkbox.tsx +8 -0
- package/src/ui/collapsible.tsx +8 -0
- package/src/ui/combobox.tsx +104 -0
- package/src/ui/command.tsx +8 -0
- package/src/ui/context-menu.tsx +8 -0
- package/src/ui/date-picker.tsx +61 -0
- package/src/ui/dialog.tsx +8 -0
- package/src/ui/drawer.tsx +8 -0
- package/src/ui/dropdown-menu.tsx +8 -0
- package/src/ui/empty.tsx +8 -0
- package/src/ui/filter-builder.tsx +8 -0
- package/src/ui/form.tsx +8 -0
- package/src/ui/hover-card.tsx +8 -0
- package/src/ui/index.ts +11 -5
- package/src/ui/input-otp.tsx +20 -12
- package/src/ui/input.tsx +8 -0
- package/src/ui/item.tsx +8 -0
- package/src/ui/kbd.tsx +8 -0
- package/src/ui/label.tsx +8 -0
- package/src/ui/menubar.tsx +8 -0
- package/src/ui/navigation-menu.tsx +8 -0
- package/src/ui/pagination.tsx +8 -0
- package/src/ui/popover.tsx +9 -1
- package/src/ui/progress.tsx +11 -15
- package/src/ui/radio-group.tsx +8 -0
- package/src/ui/resizable.tsx +8 -0
- package/src/ui/scroll-area.tsx +9 -1
- package/src/ui/select.tsx +17 -9
- package/src/ui/separator.tsx +8 -0
- package/src/ui/sheet.tsx +8 -0
- package/src/ui/sidebar.tsx +34 -15
- package/src/ui/skeleton.tsx +8 -0
- package/src/ui/slider.tsx +8 -0
- package/src/ui/sonner.tsx +12 -20
- package/src/ui/spinner.tsx +11 -23
- package/src/ui/switch.tsx +8 -0
- package/src/ui/table.tsx +102 -97
- package/src/ui/tabs.tsx +8 -0
- package/src/ui/textarea.tsx +8 -0
- package/src/ui/toggle-group.tsx +12 -21
- package/src/ui/toggle.tsx +15 -12
- package/src/ui/tooltip.tsx +8 -0
- package/tsconfig.json +2 -1
- package/vite.config.ts +11 -1
- package/dist/src/index.test.d.ts +0 -1
- package/dist/src/new-components.test.d.ts +0 -1
- package/dist/src/renderers/complex/__tests__/data-table.test.d.ts +0 -0
- package/dist/src/renderers/complex/calendar-view.d.ts +0 -1
- package/dist/src/renderers/complex/chatbot.d.ts +0 -1
- package/dist/src/renderers/complex/chatbot.test.d.ts +0 -1
- package/dist/src/renderers/complex/timeline.d.ts +0 -1
- package/dist/src/ui/calendar-view.d.ts +0 -21
- package/dist/src/ui/chatbot.d.ts +0 -36
- package/dist/src/ui/field.d.ts +0 -24
- package/dist/src/ui/input-group.d.ts +0 -16
- package/dist/src/ui/timeline.d.ts +0 -25
- package/metadata/ObjectTable.component.yml +0 -41
- package/src/renderers/complex/calendar-view.tsx +0 -219
- package/src/renderers/complex/chatbot.test.ts +0 -44
- package/src/renderers/complex/chatbot.tsx +0 -185
- package/src/renderers/complex/timeline.tsx +0 -466
- package/src/ui/calendar-view.tsx +0 -503
- package/src/ui/chatbot.tsx +0 -240
- package/src/ui/field.tsx +0 -246
- package/src/ui/input-group.tsx +0 -170
- package/src/ui/timeline.tsx +0 -266
- package/tailwind.config.js +0 -75
package/src/ui/alert-dialog.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"
|
|
3
11
|
|
package/src/ui/alert.tsx
CHANGED
|
@@ -1,27 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
11
|
|
|
4
12
|
import { cn } from "../lib/utils"
|
|
5
13
|
|
|
6
14
|
const alertVariants = cva(
|
|
7
|
-
"relative w-full rounded-
|
|
15
|
+
"relative w-full rounded-lg border px-4 py-4 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
8
16
|
{
|
|
9
17
|
variants: {
|
|
10
18
|
variant: {
|
|
11
|
-
default:
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"[&>svg]:text-cyan-400 [&>svg]:drop-shadow-[0_0_8px_rgba(6,182,212,0.6)]",
|
|
15
|
-
"hover:shadow-[0_0_30px_-5px_rgba(6,182,212,0.4)] hover:bg-slate-900/90",
|
|
16
|
-
"after:absolute after:inset-0 after:bg-linear-to-r after:from-cyan-500/10 after:to-transparent after:opacity-0 after:transition-opacity hover:after:opacity-100 after:pointer-events-none"
|
|
17
|
-
],
|
|
18
|
-
destructive: [
|
|
19
|
-
"bg-red-950/80 border-l-red-600 border-y border-r border-y-red-900/30 border-r-red-900/30 text-red-100",
|
|
20
|
-
"shadow-[0_0_20px_-5px_rgba(239,68,68,0.2)]",
|
|
21
|
-
"[&>svg]:text-red-500 [&>svg]:drop-shadow-[0_0_8px_rgba(239,68,68,0.6)]",
|
|
22
|
-
"hover:shadow-[0_0_30px_-5px_rgba(239,68,68,0.4)] hover:bg-red-950/90",
|
|
23
|
-
"after:absolute after:inset-0 after:bg-linear-to-r after:from-red-500/10 after:to-transparent after:opacity-0 after:transition-opacity hover:after:opacity-100 after:pointer-events-none"
|
|
24
|
-
],
|
|
19
|
+
default: "bg-background text-foreground",
|
|
20
|
+
destructive:
|
|
21
|
+
"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
|
|
25
22
|
},
|
|
26
23
|
},
|
|
27
24
|
defaultVariants: {
|
|
@@ -49,11 +46,7 @@ function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
49
46
|
return (
|
|
50
47
|
<div
|
|
51
48
|
data-slot="alert-title"
|
|
52
|
-
className={cn(
|
|
53
|
-
"col-start-2 line-clamp-1 min-h-4 font-mono font-bold tracking-widest uppercase text-xs mb-1 drop-shadow-[0_0_2px_currentColor]",
|
|
54
|
-
"group-[.destructive]/alert:text-red-400 group-[.default]/alert:text-cyan-400",
|
|
55
|
-
className
|
|
56
|
-
)}
|
|
49
|
+
className={cn("mb-1 font-medium leading-none tracking-tight", className)}
|
|
57
50
|
{...props}
|
|
58
51
|
/>
|
|
59
52
|
)
|
|
@@ -66,10 +59,7 @@ function AlertDescription({
|
|
|
66
59
|
return (
|
|
67
60
|
<div
|
|
68
61
|
data-slot="alert-description"
|
|
69
|
-
className={cn(
|
|
70
|
-
"col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed font-sans opacity-90",
|
|
71
|
-
className
|
|
72
|
-
)}
|
|
62
|
+
className={cn("text-sm [&_p]:leading-relaxed", className)}
|
|
73
63
|
{...props}
|
|
74
64
|
/>
|
|
75
65
|
)
|
package/src/ui/aspect-ratio.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
"use client"
|
|
2
10
|
|
|
3
11
|
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio"
|
package/src/ui/avatar.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import * as AvatarPrimitive from "@radix-ui/react-avatar"
|
|
3
11
|
|
package/src/ui/badge.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import { Slot } from "@radix-ui/react-slot"
|
|
3
11
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
@@ -5,18 +13,17 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
5
13
|
import { cn } from "../lib/utils"
|
|
6
14
|
|
|
7
15
|
const badgeVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center rounded-
|
|
16
|
+
"inline-flex items-center justify-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
9
17
|
{
|
|
10
18
|
variants: {
|
|
11
19
|
variant: {
|
|
12
20
|
default:
|
|
13
|
-
"border-
|
|
21
|
+
"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
14
22
|
secondary:
|
|
15
|
-
"border-
|
|
23
|
+
"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
16
24
|
destructive:
|
|
17
|
-
"border-
|
|
18
|
-
outline:
|
|
19
|
-
"text-cyan-400 border-cyan-800 bg-transparent shadow-[inset_0_0_5px_rgba(6,182,212,0.1)] [a&]:hover:bg-cyan-950/30 [a&]:hover:border-cyan-500 [a&]:hover:text-cyan-200 [a&]:hover:shadow-[0_0_10px_-5px_cyan]",
|
|
25
|
+
"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
26
|
+
outline: "text-foreground",
|
|
20
27
|
},
|
|
21
28
|
},
|
|
22
29
|
defaultVariants: {
|
package/src/ui/breadcrumb.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import { Slot } from "@radix-ui/react-slot"
|
|
3
11
|
import { ChevronRight, MoreHorizontal } from "lucide-react"
|
package/src/ui/button-group.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import { Slot } from "@radix-ui/react-slot"
|
|
2
10
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
11
|
|
package/src/ui/button.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import { Slot } from "@radix-ui/react-slot"
|
|
3
11
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
@@ -5,29 +13,28 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
5
13
|
import { cn } from "../lib/utils"
|
|
6
14
|
|
|
7
15
|
const buttonVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-
|
|
16
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
9
17
|
{
|
|
10
18
|
variants: {
|
|
11
19
|
variant: {
|
|
12
20
|
default:
|
|
13
|
-
"bg-
|
|
21
|
+
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
14
22
|
destructive:
|
|
15
|
-
"bg-
|
|
23
|
+
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
16
24
|
outline:
|
|
17
|
-
"border border-
|
|
25
|
+
"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
18
26
|
secondary:
|
|
19
|
-
"bg-
|
|
20
|
-
ghost:
|
|
21
|
-
|
|
22
|
-
link: "text-cyan-400 underline-offset-4 hover:underline hover:text-cyan-300",
|
|
27
|
+
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
28
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
29
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
23
30
|
},
|
|
24
31
|
size: {
|
|
25
|
-
default: "h-9 px-4 py-2
|
|
26
|
-
sm: "h-8 rounded-
|
|
27
|
-
lg: "h-10 rounded-
|
|
28
|
-
icon: "
|
|
29
|
-
"icon-sm": "
|
|
30
|
-
"icon-lg": "
|
|
32
|
+
default: "h-9 px-4 py-2",
|
|
33
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
34
|
+
lg: "h-10 rounded-md px-8",
|
|
35
|
+
icon: "h-9 w-9",
|
|
36
|
+
"icon-sm": "h-8 w-8",
|
|
37
|
+
"icon-lg": "h-10 w-10",
|
|
31
38
|
},
|
|
32
39
|
},
|
|
33
40
|
defaultVariants: {
|
|
@@ -37,29 +44,24 @@ const buttonVariants = cva(
|
|
|
37
44
|
}
|
|
38
45
|
)
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
variant = "default",
|
|
46
|
-
size = "default",
|
|
47
|
-
asChild = false,
|
|
48
|
-
...props
|
|
49
|
-
}, ref) => {
|
|
50
|
-
const Comp = asChild ? Slot : "button"
|
|
47
|
+
export interface ButtonProps
|
|
48
|
+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
49
|
+
VariantProps<typeof buttonVariants> {
|
|
50
|
+
asChild?: boolean
|
|
51
|
+
}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
53
|
+
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
54
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
55
|
+
const Comp = asChild ? Slot : "button"
|
|
56
|
+
return (
|
|
57
|
+
<Comp
|
|
58
|
+
className={cn(buttonVariants({ variant, size, className }))}
|
|
59
|
+
ref={ref}
|
|
60
|
+
{...props}
|
|
61
|
+
/>
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
)
|
|
63
65
|
Button.displayName = "Button"
|
|
64
66
|
|
|
65
67
|
export { Button, buttonVariants }
|
package/src/ui/calendar.tsx
CHANGED
|
@@ -1,237 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
"use client"
|
|
2
10
|
|
|
3
11
|
import * as React from "react"
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
ChevronLeftIcon,
|
|
7
|
-
ChevronRightIcon,
|
|
8
|
-
} from "lucide-react"
|
|
9
|
-
import {
|
|
10
|
-
DayPicker,
|
|
11
|
-
getDefaultClassNames,
|
|
12
|
-
type DayButton,
|
|
13
|
-
} from "react-day-picker"
|
|
12
|
+
import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
|
|
13
|
+
import { DayPicker, getDefaultClassNames } from "react-day-picker"
|
|
14
14
|
|
|
15
15
|
import { cn } from "../lib/utils"
|
|
16
|
-
import {
|
|
16
|
+
import { buttonVariants } from "../ui/button"
|
|
17
|
+
|
|
18
|
+
export type CalendarProps = React.ComponentProps<typeof DayPicker>
|
|
17
19
|
|
|
18
20
|
function Calendar({
|
|
19
21
|
className,
|
|
20
22
|
classNames,
|
|
21
23
|
showOutsideDays = true,
|
|
22
|
-
captionLayout = "label",
|
|
23
|
-
buttonVariant = "ghost",
|
|
24
|
-
formatters,
|
|
25
|
-
components,
|
|
26
24
|
...props
|
|
27
|
-
}:
|
|
28
|
-
buttonVariant?: React.ComponentProps<typeof Button>["variant"]
|
|
29
|
-
}) {
|
|
25
|
+
}: CalendarProps) {
|
|
30
26
|
const defaultClassNames = getDefaultClassNames()
|
|
31
27
|
|
|
32
28
|
return (
|
|
33
29
|
<DayPicker
|
|
34
30
|
showOutsideDays={showOutsideDays}
|
|
35
|
-
className={cn(
|
|
36
|
-
"bg-[#0a0a0b] bg-[radial-gradient(ellipse_at_top,_var(--tw-gradient-stops))] from-violet-900/20 via-slate-950/80 to-black backdrop-blur-3xl border border-violet-500/20 shadow-[0_0_50px_-12px_rgba(124,58,237,0.25)] rounded-xl group/calendar p-4 [--cell-size:--spacing(9)]",
|
|
37
|
-
"before:absolute before:inset-0 before:rounded-xl before:bg-[url('https://grainy-gradients.vercel.app/noise.svg')] before:opacity-10 before:pointer-events-none",
|
|
38
|
-
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
|
|
39
|
-
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
|
|
40
|
-
className
|
|
41
|
-
)}
|
|
42
|
-
captionLayout={captionLayout}
|
|
43
|
-
formatters={{
|
|
44
|
-
formatMonthDropdown: (date) =>
|
|
45
|
-
date.toLocaleString("default", { month: "short" }),
|
|
46
|
-
...formatters,
|
|
47
|
-
}}
|
|
31
|
+
className={cn("p-3", className)}
|
|
48
32
|
classNames={{
|
|
49
|
-
root: cn("w-fit relative
|
|
50
|
-
months: cn(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
defaultClassNames.nav
|
|
58
|
-
),
|
|
33
|
+
root: cn("w-fit relative", defaultClassNames.root),
|
|
34
|
+
months: cn("flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0", defaultClassNames.months),
|
|
35
|
+
month: cn("space-y-4", defaultClassNames.month),
|
|
36
|
+
month_caption: "flex justify-center pt-1 relative items-center",
|
|
37
|
+
caption_label: "text-sm font-medium",
|
|
38
|
+
nav: "space-x-1 flex items-center absolute right-1", // Adjust as needed
|
|
39
|
+
|
|
40
|
+
// Navigation Buttons
|
|
59
41
|
button_previous: cn(
|
|
60
|
-
buttonVariants({ variant: "outline"
|
|
61
|
-
"
|
|
62
|
-
defaultClassNames.button_previous
|
|
42
|
+
buttonVariants({ variant: "outline" }),
|
|
43
|
+
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-1 top-1 z-10"
|
|
63
44
|
),
|
|
64
45
|
button_next: cn(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
defaultClassNames.button_next
|
|
68
|
-
),
|
|
69
|
-
month_caption: cn(
|
|
70
|
-
"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size) text-transparent bg-clip-text bg-linear-to-r from-violet-200 via-cyan-200 to-violet-200 font-bold tracking-[0.2em] relative uppercase text-lg",
|
|
71
|
-
defaultClassNames.month_caption
|
|
72
|
-
),
|
|
73
|
-
dropdowns: cn(
|
|
74
|
-
"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
|
|
75
|
-
defaultClassNames.dropdowns
|
|
76
|
-
),
|
|
77
|
-
dropdown_root: cn(
|
|
78
|
-
"relative has-focus:border-violet-500 border border-violet-900/50 shadow-xs has-focus:ring-violet-500/30 has-focus:ring-[2px] rounded-md bg-slate-950 text-violet-200",
|
|
79
|
-
defaultClassNames.dropdown_root
|
|
80
|
-
),
|
|
81
|
-
dropdown: cn(
|
|
82
|
-
"absolute bg-slate-950 inset-0 opacity-0",
|
|
83
|
-
defaultClassNames.dropdown
|
|
84
|
-
),
|
|
85
|
-
caption_label: cn(
|
|
86
|
-
"select-none font-medium",
|
|
87
|
-
captionLayout === "label"
|
|
88
|
-
? "text-sm"
|
|
89
|
-
: "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
|
|
90
|
-
defaultClassNames.caption_label
|
|
91
|
-
),
|
|
92
|
-
table: "w-full border-collapse",
|
|
93
|
-
weekdays: cn("flex my-2", defaultClassNames.weekdays),
|
|
94
|
-
weekday: cn(
|
|
95
|
-
"text-violet-500/70 rounded-md flex-1 font-mono text-[0.65rem] uppercase tracking-widest select-none pb-2",
|
|
96
|
-
defaultClassNames.weekday
|
|
46
|
+
buttonVariants({ variant: "outline" }),
|
|
47
|
+
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-1 top-1 z-10"
|
|
97
48
|
),
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
107
|
-
day:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
"
|
|
113
|
-
defaultClassNames.range_start
|
|
114
|
-
),
|
|
115
|
-
range_middle: cn("rounded-none bg-violet-900/10", defaultClassNames.range_middle),
|
|
116
|
-
range_end: cn("rounded-r-full bg-violet-900/20", defaultClassNames.range_end),
|
|
117
|
-
today: cn(
|
|
118
|
-
"text-cyan-400 font-bold", // Styling handled in DayButton mostly
|
|
119
|
-
defaultClassNames.today
|
|
120
|
-
),
|
|
121
|
-
outside: cn(
|
|
122
|
-
"text-slate-800 opacity-30 aria-selected:text-slate-800",
|
|
123
|
-
defaultClassNames.outside
|
|
124
|
-
),
|
|
125
|
-
disabled: cn(
|
|
126
|
-
"text-slate-800 opacity-20",
|
|
127
|
-
defaultClassNames.disabled
|
|
49
|
+
|
|
50
|
+
// Grid
|
|
51
|
+
month_grid: "w-full border-collapse space-y-1",
|
|
52
|
+
weekdays: "flex",
|
|
53
|
+
weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
|
|
54
|
+
|
|
55
|
+
week: "flex w-full mt-2",
|
|
56
|
+
|
|
57
|
+
// Day Cell (td)
|
|
58
|
+
day: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
|
|
59
|
+
|
|
60
|
+
// Day Button
|
|
61
|
+
day_button: cn(
|
|
62
|
+
buttonVariants({ variant: "ghost" }),
|
|
63
|
+
"h-9 w-9 p-0 font-normal aria-selected:opacity-100"
|
|
128
64
|
),
|
|
129
|
-
|
|
65
|
+
|
|
66
|
+
// States
|
|
67
|
+
range_end: "day-range-end",
|
|
68
|
+
selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
|
|
69
|
+
today: "bg-accent text-accent-foreground",
|
|
70
|
+
outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
|
|
71
|
+
disabled: "text-muted-foreground opacity-50",
|
|
72
|
+
range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
73
|
+
hidden: "invisible",
|
|
74
|
+
|
|
130
75
|
...classNames,
|
|
131
76
|
}}
|
|
132
77
|
components={{
|
|
133
|
-
Root: ({ className, rootRef, ...props }) => {
|
|
134
|
-
return (
|
|
135
|
-
<div
|
|
136
|
-
data-slot="calendar"
|
|
137
|
-
ref={rootRef}
|
|
138
|
-
className={cn(className)}
|
|
139
|
-
{...props}
|
|
140
|
-
/>
|
|
141
|
-
)
|
|
142
|
-
},
|
|
143
78
|
Chevron: ({ className, orientation, ...props }) => {
|
|
144
79
|
if (orientation === "left") {
|
|
145
|
-
return (
|
|
146
|
-
<ChevronLeftIcon className={cn("size-4", className)} {...props} />
|
|
147
|
-
)
|
|
80
|
+
return <ChevronLeftIcon className={cn("h-4 w-4", className)} {...props} />
|
|
148
81
|
}
|
|
149
|
-
|
|
150
82
|
if (orientation === "right") {
|
|
151
|
-
return (
|
|
152
|
-
<ChevronRightIcon
|
|
153
|
-
className={cn("size-4", className)}
|
|
154
|
-
{...props}
|
|
155
|
-
/>
|
|
156
|
-
)
|
|
83
|
+
return <ChevronRightIcon className={cn("h-4 w-4", className)} {...props} />
|
|
157
84
|
}
|
|
158
|
-
|
|
159
|
-
return (
|
|
160
|
-
<ChevronDownIcon className={cn("size-4", className)} {...props} />
|
|
161
|
-
)
|
|
85
|
+
return <ChevronDownIcon className={cn("h-4 w-4", className)} {...props} />
|
|
162
86
|
},
|
|
163
|
-
DayButton: CalendarDayButton,
|
|
164
|
-
WeekNumber: ({ children, ...props }) => {
|
|
165
|
-
return (
|
|
166
|
-
<td {...props}>
|
|
167
|
-
<div className="flex size-(--cell-size) items-center justify-center text-center">
|
|
168
|
-
{children}
|
|
169
|
-
</div>
|
|
170
|
-
</td>
|
|
171
|
-
)
|
|
172
|
-
},
|
|
173
|
-
...components,
|
|
174
87
|
}}
|
|
175
88
|
{...props}
|
|
176
89
|
/>
|
|
177
90
|
)
|
|
178
91
|
}
|
|
92
|
+
Calendar.displayName = "Calendar"
|
|
179
93
|
|
|
180
|
-
|
|
181
|
-
className,
|
|
182
|
-
day,
|
|
183
|
-
modifiers,
|
|
184
|
-
...props
|
|
185
|
-
}: React.ComponentProps<typeof DayButton>) {
|
|
186
|
-
const defaultClassNames = getDefaultClassNames()
|
|
187
|
-
|
|
188
|
-
const ref = React.useRef<HTMLButtonElement>(null)
|
|
189
|
-
React.useEffect(() => {
|
|
190
|
-
if (modifiers.focused) ref.current?.focus()
|
|
191
|
-
}, [modifiers.focused])
|
|
192
|
-
|
|
193
|
-
return (
|
|
194
|
-
<Button
|
|
195
|
-
ref={ref}
|
|
196
|
-
variant="ghost"
|
|
197
|
-
size="icon"
|
|
198
|
-
data-day={day.date.toLocaleDateString()}
|
|
199
|
-
data-selected-single={
|
|
200
|
-
modifiers.selected &&
|
|
201
|
-
!modifiers.range_start &&
|
|
202
|
-
!modifiers.range_end &&
|
|
203
|
-
!modifiers.range_middle
|
|
204
|
-
}
|
|
205
|
-
data-range-start={modifiers.range_start}
|
|
206
|
-
data-range-end={modifiers.range_end}
|
|
207
|
-
data-range-middle={modifiers.range_middle}
|
|
208
|
-
className={cn(
|
|
209
|
-
"data-[selected-single=true]:bg-violet-600 data-[selected-single=true]:text-white data-[selected-single=true]:shadow-[0_0_20px_rgba(124,58,237,0.8)] data-[selected-single=true]:border-violet-400 data-[selected-single=true]:scale-110 data-[selected-single=true]:z-10",
|
|
210
|
-
|
|
211
|
-
"data-[range-middle=true]:bg-transparent data-[range-middle=true]:text-violet-200",
|
|
212
|
-
|
|
213
|
-
"data-[range-start=true]:bg-violet-600 data-[range-start=true]:text-white data-[range-start=true]:shadow-[0_0_15px_rgba(124,58,237,0.5)] data-[range-start=true]:z-10",
|
|
214
|
-
|
|
215
|
-
"data-[range-end=true]:bg-violet-600 data-[range-end=true]:text-white data-[range-end=true]:shadow-[0_0_15px_rgba(124,58,237,0.5)] data-[range-end=true]:z-10",
|
|
216
|
-
|
|
217
|
-
// Today state (Current Timeline)
|
|
218
|
-
"data-[today=true]:border data-[today=true]:border-cyan-500/50 data-[today=true]:text-cyan-300 data-[today=true]:shadow-[0_0_10px_rgba(6,182,212,0.3)]",
|
|
219
|
-
|
|
220
|
-
// Base hover & focus
|
|
221
|
-
"group-data-[focused=true]/day:border-violet-400 group-data-[focused=true]/day:ring-violet-500/50",
|
|
222
|
-
"hover:bg-violet-900/30 hover:text-white hover:scale-125 hover:z-20 hover:shadow-[0_0_15px_rgba(139,92,246,0.5)] transition-all duration-300",
|
|
223
|
-
|
|
224
|
-
"bg-transparent flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal rounded-full",
|
|
225
|
-
|
|
226
|
-
"group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[2px]",
|
|
227
|
-
|
|
228
|
-
"text-violet-300/80 [&>span]:text-xs [&>span]:opacity-70",
|
|
229
|
-
defaultClassNames.day,
|
|
230
|
-
className
|
|
231
|
-
)}
|
|
232
|
-
{...props}
|
|
233
|
-
/>
|
|
234
|
-
)
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
export { Calendar, CalendarDayButton }
|
|
94
|
+
export { Calendar }
|
package/src/ui/card.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
|
|
3
11
|
import { cn } from "../lib/utils"
|
package/src/ui/carousel.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as React from "react"
|
|
2
10
|
import useEmblaCarousel, {
|
|
3
11
|
type UseEmblaCarouselType,
|
package/src/ui/checkbox.tsx
CHANGED
package/src/ui/collapsible.tsx
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible"
|
|
2
10
|
|
|
3
11
|
function Collapsible({
|