@cryptlex/web-components 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/components/{ui/alert.d.ts → alert.d.ts} +3 -3
  2. package/dist/components/alert.js +2 -0
  3. package/dist/components/alert.js.map +1 -0
  4. package/dist/components/{ui/avatar.d.ts → avatar.d.ts} +0 -1
  5. package/dist/components/avatar.js +2 -0
  6. package/dist/components/avatar.js.map +1 -0
  7. package/dist/components/{ui/badge.d.ts → badge.d.ts} +0 -1
  8. package/dist/components/badge.js +2 -0
  9. package/dist/components/badge.js.map +1 -0
  10. package/dist/components/{ui/breadcrumbs.d.ts → breadcrumbs.d.ts} +1 -1
  11. package/dist/components/breadcrumbs.js +2 -0
  12. package/dist/components/breadcrumbs.js.map +1 -0
  13. package/dist/components/{ui/button.d.ts → button.d.ts} +5 -5
  14. package/dist/components/button.js +2 -0
  15. package/dist/components/button.js.map +1 -0
  16. package/dist/components/{ui/calendar.d.ts → calendar.d.ts} +2 -3
  17. package/dist/components/calendar.js +2 -0
  18. package/dist/components/calendar.js.map +1 -0
  19. package/dist/components/card.js +2 -0
  20. package/dist/components/card.js.map +1 -0
  21. package/dist/components/{inputs/checkbox.d.ts → checkbox.d.ts} +3 -3
  22. package/dist/components/checkbox.js +2 -0
  23. package/dist/components/checkbox.js.map +1 -0
  24. package/dist/components/{data-table/table-commons.d.ts → data-table-commons.d.ts} +8 -8
  25. package/dist/components/data-table-commons.js +2 -0
  26. package/dist/components/data-table-commons.js.map +1 -0
  27. package/dist/components/{data-table/data-table-filter.d.ts → data-table-filter.d.ts} +3 -3
  28. package/dist/components/data-table-filter.js +2 -0
  29. package/dist/components/data-table-filter.js.map +1 -0
  30. package/dist/components/{data-table/data-table.d.ts → data-table.d.ts} +24 -25
  31. package/dist/components/data-table.js +2 -0
  32. package/dist/components/data-table.js.map +1 -0
  33. package/dist/components/{inputs/date-picker.d.ts → date-picker.d.ts} +3 -3
  34. package/dist/components/date-picker.js +2 -0
  35. package/dist/components/date-picker.js.map +1 -0
  36. package/dist/components/{inputs/datefield.d.ts → datefield.d.ts} +3 -3
  37. package/dist/components/datefield.js +2 -0
  38. package/dist/components/datefield.js.map +1 -0
  39. package/dist/components/{ui/dialog.d.ts → dialog.d.ts} +3 -4
  40. package/dist/components/dialog.js +2 -0
  41. package/dist/components/dialog.js.map +1 -0
  42. package/dist/components/{ui/disclosure.d.ts → disclosure.d.ts} +1 -2
  43. package/dist/components/disclosure.js +2 -0
  44. package/dist/components/disclosure.js.map +1 -0
  45. package/dist/components/{inputs/field.d.ts → field.d.ts} +5 -6
  46. package/dist/components/field.js +2 -0
  47. package/dist/components/field.js.map +1 -0
  48. package/dist/components/id-search.js +2 -0
  49. package/dist/components/id-search.js.map +1 -0
  50. package/dist/components/{inputs/input-otp.d.ts → input-otp.d.ts} +1 -2
  51. package/dist/components/input-otp.js +2 -0
  52. package/dist/components/input-otp.js.map +1 -0
  53. package/dist/components/key-value-card.js +2 -0
  54. package/dist/components/key-value-card.js.map +1 -0
  55. package/dist/components/{ui/list-box.d.ts → list-box.d.ts} +1 -1
  56. package/dist/components/list-box.js +2 -0
  57. package/dist/components/list-box.js.map +1 -0
  58. package/dist/components/loader.js +2 -0
  59. package/dist/components/loader.js.map +1 -0
  60. package/dist/components/{ui/menu.d.ts → menu.d.ts} +5 -6
  61. package/dist/components/menu.js +2 -0
  62. package/dist/components/menu.js.map +1 -0
  63. package/dist/components/{inputs/multi-select.d.ts → multi-select.d.ts} +3 -4
  64. package/dist/components/multi-select.js +2 -0
  65. package/dist/components/multi-select.js.map +1 -0
  66. package/dist/components/{inputs/numberfield.d.ts → numberfield.d.ts} +2 -3
  67. package/dist/components/numberfield.js +2 -0
  68. package/dist/components/numberfield.js.map +1 -0
  69. package/dist/components/{ui/popover.d.ts → popover.d.ts} +1 -1
  70. package/dist/components/popover.js +2 -0
  71. package/dist/components/popover.js.map +1 -0
  72. package/dist/components/{inputs/searchfield.d.ts → searchfield.d.ts} +2 -2
  73. package/dist/components/searchfield.js +2 -0
  74. package/dist/components/searchfield.js.map +1 -0
  75. package/dist/components/select-options.js +2 -0
  76. package/dist/components/select-options.js.map +1 -0
  77. package/dist/components/{inputs/select.d.ts → select.d.ts} +5 -5
  78. package/dist/components/select.js +2 -0
  79. package/dist/components/select.js.map +1 -0
  80. package/dist/components/{ui/sidebar.d.ts → sidebar.d.ts} +4 -5
  81. package/dist/components/sidebar.js +2 -0
  82. package/dist/components/sidebar.js.map +1 -0
  83. package/dist/components/skeleton.js +2 -0
  84. package/dist/components/skeleton.js.map +1 -0
  85. package/dist/components/{ui/sonner.d.ts → sonner.d.ts} +1 -1
  86. package/dist/components/sonner.js +2 -0
  87. package/dist/components/sonner.js.map +1 -0
  88. package/dist/components/table-of-contents.d.ts +9 -0
  89. package/dist/components/table-of-contents.js +2 -0
  90. package/dist/components/table-of-contents.js.map +1 -0
  91. package/dist/components/{ui/table.d.ts → table.d.ts} +0 -1
  92. package/dist/components/table.js +2 -0
  93. package/dist/components/table.js.map +1 -0
  94. package/dist/components/{ui/tabs.d.ts → tabs.d.ts} +1 -1
  95. package/dist/components/tabs.js +2 -0
  96. package/dist/components/tabs.js.map +1 -0
  97. package/dist/components/{inputs/textfield.d.ts → textfield.d.ts} +2 -2
  98. package/dist/components/textfield.js +2 -0
  99. package/dist/components/textfield.js.map +1 -0
  100. package/dist/components/{ui/timeline.d.ts → timeline.d.ts} +3 -3
  101. package/dist/components/timeline.js +2 -0
  102. package/dist/components/timeline.js.map +1 -0
  103. package/dist/components/{ui/tooltip.d.ts → tooltip.d.ts} +1 -1
  104. package/dist/components/tooltip.js +2 -0
  105. package/dist/components/tooltip.js.map +1 -0
  106. package/dist/utils/form-context.d.ts +1 -1
  107. package/dist/utils/form-context.js +2 -5
  108. package/dist/utils/form-context.js.map +1 -0
  109. package/dist/utils/form-hook.d.ts +9 -11
  110. package/dist/utils/form-hook.js +2 -30
  111. package/dist/utils/form-hook.js.map +1 -0
  112. package/dist/utils/primitives.d.ts +16 -2
  113. package/dist/utils/primitives.js +2 -39
  114. package/dist/utils/primitives.js.map +1 -0
  115. package/dist/utils/resource-names.d.ts +1 -13
  116. package/dist/utils/resource-names.js +2 -212
  117. package/dist/utils/resource-names.js.map +1 -0
  118. package/dist/utils/use-mobile.js +2 -15
  119. package/dist/utils/use-mobile.js.map +1 -0
  120. package/lib/utilities.css +1 -1
  121. package/package.json +13 -12
  122. package/dist/components/data-table/data-table-filter.js +0 -112
  123. package/dist/components/data-table/data-table.js +0 -265
  124. package/dist/components/data-table/table-commons.js +0 -137
  125. package/dist/components/inputs/checkbox.js +0 -25
  126. package/dist/components/inputs/date-picker.js +0 -22
  127. package/dist/components/inputs/datefield.js +0 -25
  128. package/dist/components/inputs/field.js +0 -48
  129. package/dist/components/inputs/id-search.js +0 -40
  130. package/dist/components/inputs/input-otp.js +0 -19
  131. package/dist/components/inputs/multi-select.js +0 -18
  132. package/dist/components/inputs/numberfield.js +0 -25
  133. package/dist/components/inputs/searchfield.js +0 -24
  134. package/dist/components/inputs/select-options.js +0 -286
  135. package/dist/components/inputs/select.js +0 -34
  136. package/dist/components/inputs/textfield.js +0 -28
  137. package/dist/components/key-value-card/key-value-card.js +0 -40
  138. package/dist/components/ui/alert.js +0 -18
  139. package/dist/components/ui/avatar.js +0 -5
  140. package/dist/components/ui/badge.js +0 -5
  141. package/dist/components/ui/breadcrumbs.js +0 -28
  142. package/dist/components/ui/button.js +0 -34
  143. package/dist/components/ui/calendar.js +0 -63
  144. package/dist/components/ui/card.js +0 -20
  145. package/dist/components/ui/dialog.js +0 -42
  146. package/dist/components/ui/disclosure.js +0 -20
  147. package/dist/components/ui/list-box.js +0 -24
  148. package/dist/components/ui/loader.js +0 -6
  149. package/dist/components/ui/menu.js +0 -38
  150. package/dist/components/ui/popover.js +0 -14
  151. package/dist/components/ui/sidebar.js +0 -177
  152. package/dist/components/ui/skeleton.js +0 -5
  153. package/dist/components/ui/sonner.js +0 -14
  154. package/dist/components/ui/table.js +0 -26
  155. package/dist/components/ui/tabs.js +0 -25
  156. package/dist/components/ui/timeline.js +0 -31
  157. package/dist/components/ui/tooltip.js +0 -12
  158. /package/dist/components/{ui/card.d.ts → card.d.ts} +0 -0
  159. /package/dist/components/{inputs/id-search.d.ts → id-search.d.ts} +0 -0
  160. /package/dist/components/{key-value-card/key-value-card.d.ts → key-value-card.d.ts} +0 -0
  161. /package/dist/components/{ui/loader.d.ts → loader.d.ts} +0 -0
  162. /package/dist/components/{inputs/select-options.d.ts → select-options.d.ts} +0 -0
  163. /package/dist/components/{ui/skeleton.d.ts → skeleton.d.ts} +0 -0
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ChevronDownIcon } from "lucide-react";
3
- import { useContext } from "react";
4
- import { Disclosure as AriaDisclosure, DisclosureGroup as AriaDisclosureGroup, DisclosurePanel as AriaDisclosurePanel, Button, composeRenderProps, DisclosureGroupStateContext, Heading, } from "react-aria-components";
5
- import { cn } from "lib/utils/primitives";
6
- export function Disclosure({ children, className, ...props }) {
7
- let isInGroup = useContext(DisclosureGroupStateContext) !== null;
8
- return (_jsx(AriaDisclosure, { ...props, className: composeRenderProps(className, (className, _) => cn("group min-w-64", isInGroup && "border-0 border-b last:border-b-0", className)), children: children }));
9
- }
10
- export function DisclosureHeader({ children, className }) {
11
- return (_jsx(Heading, { className: "flex", children: _jsxs(Button, { slot: "trigger", className: composeRenderProps(className, (className) => {
12
- return cn("group flex flex-1 items-center justify-between rounded-md py-4 font-medium ring-offset-background transition-all hover:underline", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "data-[focus-visible]:outline-none data-[focus-visible]:ring-2 data-[focus-visible]:ring-ring data-[focus-visible]:ring-offset-2", "outline-none", className);
13
- }), children: [children, _jsx(ChevronDownIcon, { "aria-hidden": true, className: cn("size-4 shrink-0 transition-transform duration-200", "group-data-[expanded]:rotate-180", "group-data-[disabled]:opacity-50") })] }) }));
14
- }
15
- export function DisclosurePanel({ children, className, ...props }) {
16
- return (_jsx(AriaDisclosurePanel, { ...props, className: "overflow-hidden text-sm transition-all", children: _jsx("div", { className: cn("pb-4 pt-0", className), children: children }) }));
17
- }
18
- export function DisclosureGroup({ children, className, ...props }) {
19
- return (_jsx(AriaDisclosureGroup, { ...props, className: composeRenderProps(className, (className, _) => cn("", className)), children: children }));
20
- }
@@ -1,24 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Collection as AriaCollection, Header as AriaHeader, ListBox as AriaListBox, ListBoxItem as AriaListBoxItem, composeRenderProps } from "react-aria-components";
3
- import { cn } from "lib/utils/primitives";
4
- import { Check } from "lucide-react";
5
- export const ListBoxCollection = AriaCollection;
6
- export function ListBox({ className, ...props }) {
7
- return (_jsx(AriaListBox, { className: composeRenderProps(className, (className) => cn(className, "group overflow-auto border bg-popover p-1 text-popover-foreground shadow-md outline-none",
8
- /* Empty */
9
- "data-[empty]:p-6 data-[empty]:text-center data-[empty]:text-sm")), ...props }));
10
- }
11
- export function ListBoxItem({ className, children, ...props }) {
12
- return (_jsx(AriaListBoxItem, { textValue: props.textValue || (typeof children === "string" ? children : undefined), className: composeRenderProps(className, (className) => cn("relative flex w-full cursor-default select-none items-center px-2 py-1.5 text-sm outline-none",
13
- /* Disabled */
14
- "disabled-muted",
15
- /* Focused */
16
- "data-[focused]:bg-accent data-[focused]:text-accent-foreground",
17
- /* Hovered */
18
- "data-[hovered]:bg-accent data-[hovered]:text-accent-foreground",
19
- /* Selection */
20
- "data-[selection-mode]:pl-input", className)), ...props, children: composeRenderProps(children, (children, renderProps) => (_jsxs(_Fragment, { children: [renderProps.isSelected && (_jsx("span", { className: "absolute left-2 flex size-icon items-center justify-center", children: _jsx(Check, { className: "size-icon" }) })), children] }))) }));
21
- }
22
- export function ListBoxHeader({ className, ...props }) {
23
- return (_jsx(AriaHeader, { className: cn("py-1.5 pl-input pr-2 text-sm font-semibold", className), ...props }));
24
- }
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "lib/utils/primitives";
3
- import { Loader2 } from "lucide-react";
4
- export function Loader({ className }) {
5
- return _jsx(Loader2, { className: cn(`animate-spin size-icon`, className) });
6
- }
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Header as AriaHeader, Keyboard as AriaKeyboard, Menu as AriaMenu, MenuItem as AriaMenuItem, MenuTrigger as AriaMenuTrigger, Separator as AriaSeparator, SubmenuTrigger as AriaSubmenuTrigger, composeRenderProps, } from "react-aria-components";
3
- import { cn } from "lib/utils/primitives";
4
- import { Check, ChevronRight, Dot } from "lucide-react";
5
- import { SelectPopover } from "../inputs/select";
6
- import { Button } from "./button";
7
- import { ListBoxCollection } from "./list-box";
8
- export const MenuTrigger = AriaMenuTrigger;
9
- export const MenuSubTrigger = AriaSubmenuTrigger;
10
- export const MenuCollection = ListBoxCollection;
11
- export function MenuPopover({ className, ...props }) {
12
- return (_jsx(SelectPopover, { className: composeRenderProps(className, (className) => cn(className)), ...props }));
13
- }
14
- export function Menu({ className, ...props }) {
15
- return (_jsx(AriaMenu, { className: cn("overflow-auto p-1 outline-0 [clip-path:inset(0_0_0_0_round_calc(var(--radius)-2px))]", className), escapeKeyBehavior: "none", ...props }));
16
- }
17
- export function MenuItem({ children, className, ...props }) {
18
- return (_jsx(AriaMenuItem, { textValue: props.textValue || (typeof children === "string" ? children : undefined), className: composeRenderProps(className, (className) => cn("relative flex cursor-default select-none items-center gap-2 px-2 py-1.5 text-sm outline-none transition-colors",
19
- /* Disabled */
20
- "disabled-muted",
21
- /* Focused */
22
- "data-[focused]:bg-accent data-[focused]:text-accent-foreground ",
23
- /* Selection Mode */
24
- "data-[selection-mode]:pl-input", className)), ...props, children: composeRenderProps(children, (children, renderProps) => (_jsxs(_Fragment, { children: [_jsx("span", { className: "absolute left-2 flex size-icon items-center justify-center", children: renderProps.isSelected && (_jsxs(_Fragment, { children: [renderProps.selectionMode == "single" && (_jsx(Dot, { className: "size-icon fill-current" })), renderProps.selectionMode == "multiple" && (_jsx(Check, { className: "size-icon" }))] })) }), children, renderProps.hasSubmenu && _jsx(ChevronRight, { className: "ml-auto size-icon" })] }))) }));
25
- }
26
- export function MenuHeader({ className, inset, separator = true, ...props }) {
27
- return (_jsx(AriaHeader, { className: cn("px-3 py-1.5 text-sm font-semibold", inset && "pl-input", separator && "-mx-1 mb-1 border-b border-b-border pb-2.5", className), ...props }));
28
- }
29
- export function MenuSeparator({ className, ...props }) {
30
- return (_jsx(AriaSeparator, { className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
31
- }
32
- export function MenuKeyboard({ className, ...props }) {
33
- return (_jsx(AriaKeyboard, { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props }));
34
- }
35
- // TODO name this better
36
- export function EasyMenu({ label, children, variant, isDisabled, size, ...props }) {
37
- return (_jsxs(MenuTrigger, { ...props, children: [_jsx(Button, { isDisabled: isDisabled, type: "button", variant: variant, size: size, children: label }), _jsx(MenuPopover, { className: "overflow-auto", children: _jsx(Menu, { ...props, children: children }) })] }));
38
- }
@@ -1,14 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Dialog as AriaDialog, DialogTrigger as AriaDialogTrigger, Popover as AriaPopover, composeRenderProps, } from "react-aria-components";
3
- import { cn } from "lib/utils/primitives";
4
- export const PopoverTrigger = AriaDialogTrigger;
5
- export const Popover = ({ className, offset = 4, ...props }) => (_jsx(AriaPopover, { offset: offset, className: composeRenderProps(className, (className) => cn("z-50 border bg-popover text-popover-foreground outline-none max-w-lg",
6
- /* Entering */
7
- "data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95",
8
- /* Exiting */
9
- "data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95",
10
- /* Placement */
11
- "data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2", className)), ...props }));
12
- export function PopoverDialog({ className, ...props }) {
13
- return (_jsx(AriaDialog, { className: cn("p-icon outline-0", className), ...props }));
14
- }
@@ -1,177 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { PanelLeftClose, PanelLeftOpen } from "lucide-react";
4
- import * as React from "react";
5
- import { Button } from "lib/components/ui/button";
6
- import { DialogContent, DialogOverlay, DialogTrigger } from "lib/components/ui/dialog";
7
- import { Skeleton } from "lib/components/ui/skeleton";
8
- import { Tooltip, TooltipTrigger } from "lib/components/ui/tooltip";
9
- import { cn } from "lib/utils/primitives";
10
- import { useIsMobile } from "lib/utils/use-mobile";
11
- // TODO use tailwind variables
12
- const SIDEBAR_WIDTH = "16rem";
13
- const SIDEBAR_WIDTH_MOBILE = "18rem";
14
- const SIDEBAR_WIDTH_ICON = "3rem";
15
- const SIDEBAR_KEYBOARD_SHORTCUT = "b";
16
- export const SidebarContext = React.createContext(null);
17
- export function useSidebar() {
18
- const context = React.useContext(SidebarContext);
19
- if (!context) {
20
- throw new Error("useSidebar must be used within a SidebarProvider.");
21
- }
22
- return context;
23
- }
24
- export function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
25
- const isMobile = useIsMobile();
26
- const [openMobile, setOpenMobile] = React.useState(false);
27
- // This is the internal state of the sidebar.
28
- // We use openProp and setOpenProp for control from outside the component.
29
- const [_open, _setOpen] = React.useState(defaultOpen);
30
- const open = openProp ?? _open;
31
- const setOpen = React.useCallback((value) => {
32
- const openState = typeof value === "function" ? value(open) : value;
33
- if (setOpenProp) {
34
- setOpenProp(openState);
35
- }
36
- else {
37
- _setOpen(openState);
38
- }
39
- // TODO, use different model for persistence
40
- // This sets the cookie to keep the sidebar state.
41
- // document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`
42
- }, [setOpenProp, open]);
43
- // Helper to toggle the sidebar.
44
- const toggleSidebar = React.useCallback(() => {
45
- return isMobile
46
- ? setOpenMobile((open) => !open)
47
- : setOpen((open) => !open);
48
- }, [isMobile, setOpen, setOpenMobile]);
49
- // Adds a keyboard shortcut to toggle the sidebar.
50
- React.useEffect(() => {
51
- const handleKeyDown = (event) => {
52
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT &&
53
- (event.metaKey || event.ctrlKey)) {
54
- event.preventDefault();
55
- toggleSidebar();
56
- }
57
- };
58
- window.addEventListener("keydown", handleKeyDown);
59
- return () => window.removeEventListener("keydown", handleKeyDown);
60
- }, [toggleSidebar]);
61
- // We add a state so that we can do data-state="expanded" or "collapsed".
62
- // This makes it easier to style the sidebar with Tailwind classes.
63
- const state = open ? "expanded" : "collapsed";
64
- const contextValue = React.useMemo(() => ({
65
- state,
66
- open,
67
- setOpen,
68
- isMobile,
69
- openMobile,
70
- setOpenMobile,
71
- toggleSidebar,
72
- }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
73
- return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx("div", { style: {
74
- "--sidebar-width": SIDEBAR_WIDTH,
75
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
76
- ...style,
77
- }, className: cn("group/sidebar-wrapper flex w-full has-[[data-variant=inset]]:bg-sidebar-background", className), ...props, children: children }) }));
78
- }
79
- export function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }) {
80
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
81
- if (collapsible === "none") {
82
- return (_jsx("div", { className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar-background text-sidebar-foreground", className), ...props, children: children }));
83
- }
84
- if (isMobile) {
85
- return (_jsx(DialogTrigger, { style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE, }, isOpen: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsx(DialogOverlay, { children: _jsx(DialogContent, { "data-sidebar": "sidebar", "data-mobile": "true", className: "w-[--sidebar-width] p-0 [&>button]:hidden", side: "right", children: () => (_jsx(_Fragment, { children: children })) }) }) }));
86
- }
87
- return (_jsxs("div", { className: "group peer hidden text-sidebar-foreground md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, children: [_jsx("div", { className: cn("relative w-(--sidebar-width) bg-sidebar-background transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
88
- ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]"
89
- : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]") }), _jsx("div", { className: cn("absolute z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", side === "left"
90
- ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
91
- : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
92
- // Adjust the padding for floating and inset variants.
93
- variant === "floating" || variant === "inset"
94
- ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]"
95
- : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", className: "flex h-full w-full flex-col bg-sidebar-background group-data-[variant=floating]:border group-data-[variant=floating]:border-border group-data-[variant=floating]:shadow", children: children }) })] }));
96
- }
97
- export function SidebarTrigger({ className, onClick, ...props }) {
98
- const { toggleSidebar, open } = useSidebar();
99
- return (_jsx(Button, { "data-sidebar": "trigger", variant: "neutral", size: "icon", onClick: (event) => {
100
- onClick?.(event);
101
- toggleSidebar();
102
- }, ...props, children: open ? _jsx(PanelLeftClose, {}) : _jsx(PanelLeftOpen, {}) }));
103
- }
104
- // TODO, evaluate if we need this??
105
- export const SidebarRail = React.forwardRef(({ className, ...props }, ref) => {
106
- const { toggleSidebar } = useSidebar();
107
- return (_jsx("button", { ref: ref, "data-sidebar": "rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn("absolute inset-y-0 z-20 hidden w-icon -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-icon group-data-[side=right]:left-0 sm:flex", "[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar-background", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className), ...props }));
108
- });
109
- SidebarRail.displayName = "SidebarRail";
110
- export function SidebarInset({ className, ...props }) {
111
- return (_jsx("main", { className: cn("relative flex w-full flex-1 flex-col bg-background", "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow", className), ...props }));
112
- }
113
- export function SidebarHeader({ className, ...props }) {
114
- return (_jsx("div", { "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
115
- }
116
- export function SidebarFooter({ className, ...props }) {
117
- return (_jsx("div", { "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
118
- }
119
- export function SidebarContent({ className, ...props }) {
120
- return (_jsx("div", { "data-sidebar": "content", className: cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className), ...props }));
121
- }
122
- export function SidebarGroup({ className, ...props }) {
123
- return (_jsx("div", { "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
124
- }
125
- export function SidebarGroupLabel({ className, ...props }) {
126
- return (_jsx("div", { "data-sidebar": "group-label", className: cn("flex h-input shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-input group-data-[collapsible=icon]:opacity-0", className), ...props }));
127
- }
128
- export function SidebarGroupAction({ className, ...props }) {
129
- return (_jsx("button", { "data-sidebar": "group-action", className: cn("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0",
130
- // Increases the hit area of the button on mobile.
131
- "after:absolute after:-inset-2 after:md:hidden", "group-data-[collapsible=icon]:hidden", className), ...props }));
132
- }
133
- export function SidebarGroupContent({ className, ...props }) {
134
- return (_jsx("div", { "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props }));
135
- }
136
- export function SidebarMenu({ className, ...props }) {
137
- return (_jsx("ul", { "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
138
- }
139
- export function SidebarMenuItem({ className, ...props }) {
140
- return (_jsx("li", { "data-sidebar": "menu-item", className: cn("group/menu-item relative list-none", className), ...props }));
141
- }
142
- /// TODO fix positioning
143
- export function SidebarMenuAction({ className, showOnHover = false, ...props }) {
144
- return (_jsx("button", { "data-sidebar": "menu-action", className: cn("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-accent-foreground [&>svg]:size-icon [&>svg]:shrink-0",
145
- // Increases the hit area of the button on mobile.
146
- "after:absolute after:-inset-2 after:md:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover &&
147
- "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-accent-foreground md:opacity-0", className), ...props }));
148
- }
149
- export function SidebarMenuBadge({ className, ...props }) {
150
- return (_jsx("div", { "data-sidebar": "menu-badge", className: cn("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground", "peer-hover/menu-button:text-accent-foreground peer-data-[active=true]/menu-button:text-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className), ...props }));
151
- }
152
- export function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
153
- // Random width between 50 to 90%.
154
- const width = React.useMemo(() => {
155
- return `${Math.floor(Math.random() * 40) + 50}%`;
156
- }, []);
157
- return (_jsxs("div", { "data-sidebar": "menu-skeleton", className: cn("flex h-input items-center gap-2 px-2", className), ...props, children: [showIcon && (_jsx(Skeleton, { className: "size-icon", "data-sidebar": "menu-skeleton-icon" })), _jsx(Skeleton, { className: "h-icon max-w-[--skeleton-width] flex-1", "data-sidebar": "menu-skeleton-text", style: {
158
- "--skeleton-width": width,
159
- } })] }));
160
- }
161
- export function SidebarMenuSub({ className, ...props }) {
162
- return (_jsx("ul", { "data-sidebar": "menu-sub", className: cn("mx-2 flex min-w-0 translate-x-px flex-col gap-1 border-l border-border px-2", "group-data-[collapsible=icon]:hidden", className), ...props }));
163
- }
164
- export function SidebarMenuSubItem({ className, ...props }) { return _jsx("li", { className: cn("list-none ms-0", className), ...props }); }
165
- // Common interaction logic for SidebarMenuButton and SidebarMenuSubButton
166
- const Cs_SidebarButton = "flex w-full items-center gap-2 truncate p-2 text-sm btn btn-ghost h-input text-accent data-[active=true]:bg-primary/20 data-[active=true]:font-medium data-[active=true]:text-primary [&>span:last-child]:truncate [&>svg]:size-icon [&>svg]:shrink-0";
167
- export function SidebarMenuButton({ isActive = false, tooltip, className, ...props }) {
168
- const { isMobile, state } = useSidebar();
169
- const button = (_jsx("button", { "data-sidebar": "menu-button", "data-active": isActive, className: cn("peer/menu-button group-has-[[data-sidebar=menu-action]]/menu-item:pr-input group-data-[collapsible=icon]:!size-icon group-data-[collapsible=icon]:!p-2 ", Cs_SidebarButton, className), ...props }));
170
- if (!tooltip) {
171
- return button;
172
- }
173
- return (_jsxs(TooltipTrigger, { children: [button, _jsx(Tooltip, { hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
174
- }
175
- export function SidebarMenuSubButton({ isActive, className, ...props }) {
176
- return (_jsx("a", { "data-sidebar": "menu-sub-button", "data-active": isActive, className: cn("-translate-x-px [&>svg]:text-accent-foreground", "group-data-[collapsible=icon]:hidden", Cs_SidebarButton, className), ...props }));
177
- }
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "lib/utils/primitives";
3
- export function Skeleton({ className, ...props }) {
4
- return (_jsx("div", { className: cn("animate-pulse bg-primary/10", className), ...props }));
5
- }
@@ -1,14 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Toaster as Sonner } from "sonner";
4
- export function Toaster({ ...props }) {
5
- return (_jsx(Sonner, { className: "toaster group", toastOptions: {
6
- classNames: {
7
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
8
- description: "group-[.toast]:text-muted-foreground",
9
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
10
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
11
- },
12
- }, ...props }));
13
- }
14
- ;
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "lib/utils/primitives";
3
- export function Table({ className, ...props }) {
4
- return (_jsx("table", { className: cn("caption-bottom text-sm [&_tr:last-child]:border-0 my-0 whitespace-nowrap", className), ...props }));
5
- }
6
- export function TableHeader({ className, ...props }) {
7
- return (_jsx("thead", { className: cn("[&_tr]:border-b border-b", className), ...props }));
8
- }
9
- export function TableBody({ className, ...props }) {
10
- return _jsx("tbody", { className: cn(className), ...props });
11
- }
12
- export function TableFooter({ className, ...props }) {
13
- return (_jsx("tfoot", { className: cn("border-t font-medium last:[&>tr]:border-b-0", className), ...props }));
14
- }
15
- export function TableRow({ className, ...props }) {
16
- return _jsx("tr", { className: cn("border-b border-border", className), ...props });
17
- }
18
- export function TableHead({ className, ...props }) {
19
- return (_jsx("th", { className: cn("text-left align-middle font-medium", className), ...props }));
20
- }
21
- export function TableCell({ className, ...props }) {
22
- return (_jsx("td", { className: cn("[&_tr:last-child]:border-dotted", className), ...props }));
23
- }
24
- export function TableCaption({ className, ...props }) {
25
- return (_jsx("caption", { className: cn("mt-icon text-sm text-muted-foreground", className), ...props }));
26
- }
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Tab as AriaTab, TabList as AriaTabList, TabPanel as AriaTabPanel, Tabs as AriaTabs, composeRenderProps, } from "react-aria-components";
3
- import { cn } from "lib/utils/primitives";
4
- export function Tabs({ className, ...props }) {
5
- return (_jsx(AriaTabs, { className: composeRenderProps(className, (className) => cn("group flex flex-col gap-2",
6
- /* Orientation */
7
- "data-[orientation=vertical]:flex-row", className)), ...props }));
8
- }
9
- export function TabList({ className, ...props }) {
10
- return (_jsx(AriaTabList, { className: composeRenderProps(className, (className) => cn("inline-flex items-center border-b text-muted-foreground",
11
- /* Orientation */
12
- "data-[orientation=vertical]:h-auto data-[orientation=vertical]:flex-col", className)), ...props }));
13
- }
14
- export function Tab({ className, ...props }) {
15
- return (_jsx(AriaTab, { className: composeRenderProps(className, (className) => cn("btn btn-ghost leading-none text-accent h-input truncate inline-flex items-center px-3 body font-medium transition-all",
16
- /* Selected */
17
- "data-[selected]:bg-primary/20 data-[selected]:text-primary",
18
- /* Orientation */
19
- "group-data-[orientation=vertical]:w-full", className)), ...props }));
20
- }
21
- export function TabPanel({ className, ...props }) {
22
- return (_jsx(AriaTabPanel, { className: composeRenderProps(className, (className) => cn("ring-offset-background",
23
- /* Focus Visible */
24
- "focus-ring", className)), ...props }));
25
- }
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cva } from "class-variance-authority";
3
- import { cn } from "lib/utils/primitives";
4
- export function Timeline({ className, ...props }) {
5
- return _jsx("ol", { className: cn("grid grid-col-1 gap-icon", className), ...props });
6
- }
7
- export function TimelineItem({ className, ...props }) {
8
- return (_jsx("li", { className: cn("grid grid-cols-[4rem_2rem_1fr] grid-rows-subgrid list-none gap-icon", className), ...props }));
9
- }
10
- export const timelineIconVariants = cva(`p-1 rounded-full`, {
11
- variants: {
12
- variant: {
13
- destructive: "text-destructive-foreground bg-destructive",
14
- success: "text-success-foreground bg-success",
15
- muted: "text-muted-foreground bg-muted",
16
- },
17
- },
18
- defaultVariants: {
19
- variant: "muted",
20
- },
21
- });
22
- export function TimelineIcon({ icon: Icon, className, variant, ...props }) {
23
- return _jsxs("div", { ...props, className: "flex flex-col items-center gap-2", children: [_jsx("div", { className: cn(timelineIconVariants({ variant, className })), children: _jsx(Icon, { className: "size-icon " }) }), _jsx("div", { className: "h-full w-[1px]" })] });
24
- }
25
- export function TimelineDate({ className, date, dateFormatter, ...props }) {
26
- const defaultDateDisplay = `${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`;
27
- return _jsx("time", { ...props, dateTime: date.toISOString(), className: cn("font-mono leading-none text-muted", className), children: dateFormatter ? dateFormatter(date) : defaultDateDisplay });
28
- }
29
- export function TimelineContent({ className, ...props }) {
30
- return _jsx("section", { className: cn("", className), ...props });
31
- }
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger, composeRenderProps, } from "react-aria-components";
3
- import { cn } from "lib/utils/primitives";
4
- const TooltipTrigger = AriaTooltipTrigger;
5
- const Tooltip = ({ className, offset = 4, ...props }) => (_jsx(AriaTooltip, { offset: offset, className: composeRenderProps(className, (className) => cn("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0",
6
- /* Entering */
7
- "data-[entering]:zoom-in-95",
8
- /* Exiting */
9
- "data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95",
10
- /* Placement */
11
- "data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2", className)), ...props }));
12
- export { Tooltip, TooltipTrigger };
File without changes
File without changes