@arch-cadre/ui 0.0.61 → 0.0.63

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 (186) hide show
  1. package/dist/components/.gitkeep +0 -0
  2. package/dist/components/accordion.d.ts +4 -4
  3. package/dist/components/accordion.mjs +58 -0
  4. package/dist/components/alert-dialog.d.ts +11 -11
  5. package/dist/components/alert-dialog.mjs +144 -0
  6. package/dist/components/alert.d.ts +4 -4
  7. package/dist/components/alert.mjs +62 -0
  8. package/dist/components/aspect-ratio.d.ts +1 -1
  9. package/dist/components/aspect-ratio.mjs +9 -0
  10. package/dist/components/avatar.d.ts +3 -3
  11. package/dist/components/avatar.mjs +50 -0
  12. package/dist/components/badge.d.ts +3 -3
  13. package/dist/components/badge.mjs +37 -0
  14. package/dist/components/breadcrumb.d.ts +7 -7
  15. package/dist/components/breadcrumb.mjs +105 -0
  16. package/dist/components/button-group.d.ts +4 -4
  17. package/dist/components/button-group.mjs +76 -0
  18. package/dist/components/button.d.ts +3 -3
  19. package/dist/components/button.mjs +51 -0
  20. package/dist/components/calendar.d.ts +2 -2
  21. package/dist/components/calendar.mjs +191 -0
  22. package/dist/components/card.d.ts +7 -7
  23. package/dist/components/card.mjs +90 -0
  24. package/dist/components/checkbox.d.ts +1 -1
  25. package/dist/components/checkbox.mjs +30 -0
  26. package/dist/components/collapsible.d.ts +3 -3
  27. package/dist/components/collapsible.mjs +31 -0
  28. package/dist/components/command.d.ts +9 -9
  29. package/dist/components/command.mjs +169 -0
  30. package/dist/components/context-menu.d.ts +15 -15
  31. package/dist/components/context-menu.mjs +218 -0
  32. package/dist/components/dialog.d.ts +10 -10
  33. package/dist/components/dialog.mjs +130 -0
  34. package/dist/components/drawer.d.ts +10 -10
  35. package/dist/components/drawer.mjs +124 -0
  36. package/dist/components/dropdown-menu.d.ts +15 -15
  37. package/dist/components/dropdown-menu.mjs +226 -0
  38. package/dist/components/empty.d.ts +7 -7
  39. package/dist/components/empty.mjs +102 -0
  40. package/dist/components/field.d.ts +11 -11
  41. package/dist/components/field.mjs +228 -0
  42. package/dist/components/form.d.ts +6 -6
  43. package/dist/components/form.mjs +123 -0
  44. package/dist/components/hover-card.d.ts +3 -3
  45. package/dist/components/hover-card.mjs +35 -0
  46. package/dist/components/input-group.d.ts +8 -8
  47. package/dist/components/input-group.mjs +155 -0
  48. package/dist/components/input-otp.d.ts +4 -4
  49. package/dist/components/input-otp.mjs +59 -0
  50. package/dist/components/input.d.ts +1 -1
  51. package/dist/components/input.mjs +19 -0
  52. package/dist/components/item.d.ts +13 -13
  53. package/dist/components/item.mjs +187 -0
  54. package/dist/components/kbd.d.ts +2 -2
  55. package/dist/components/kbd.mjs +28 -0
  56. package/dist/components/label.d.ts +1 -1
  57. package/dist/components/label.mjs +21 -0
  58. package/dist/components/language-switcher.d.ts +2 -1
  59. package/dist/components/language-switcher.mjs +30 -0
  60. package/dist/components/menubar.d.ts +16 -16
  61. package/dist/components/menubar.mjs +246 -0
  62. package/dist/components/navigation-menu.d.ts +9 -9
  63. package/dist/components/navigation-menu.mjs +166 -0
  64. package/dist/components/pagination.d.ts +7 -7
  65. package/dist/components/pagination.mjs +116 -0
  66. package/dist/components/popover.d.ts +4 -4
  67. package/dist/components/popover.mjs +40 -0
  68. package/dist/components/progress.d.ts +1 -1
  69. package/dist/components/progress.mjs +30 -0
  70. package/dist/components/radio-group.d.ts +2 -2
  71. package/dist/components/radio-group.mjs +43 -0
  72. package/dist/components/scroll-area.d.ts +2 -2
  73. package/dist/components/scroll-area.mjs +59 -0
  74. package/dist/components/select.d.ts +10 -10
  75. package/dist/components/select.mjs +173 -0
  76. package/dist/components/separator.d.ts +1 -1
  77. package/dist/components/separator.mjs +25 -0
  78. package/dist/components/sheet.d.ts +8 -8
  79. package/dist/components/sheet.mjs +119 -0
  80. package/dist/components/sidebar.d.ts +24 -24
  81. package/dist/components/sidebar.mjs +635 -0
  82. package/dist/components/skeleton.d.ts +1 -1
  83. package/dist/components/skeleton.mjs +13 -0
  84. package/dist/components/slider.d.ts +1 -1
  85. package/dist/components/slider.mjs +59 -0
  86. package/dist/components/sonner.d.ts +2 -1
  87. package/dist/components/sonner.mjs +36 -0
  88. package/dist/components/spinner.d.ts +1 -1
  89. package/dist/components/spinner.mjs +15 -0
  90. package/dist/components/switch.d.ts +1 -1
  91. package/dist/components/switch.mjs +30 -0
  92. package/dist/components/table.d.ts +8 -8
  93. package/dist/components/table.mjs +115 -0
  94. package/dist/components/tabs.d.ts +4 -4
  95. package/dist/components/tabs.mjs +63 -0
  96. package/dist/components/textarea.d.ts +1 -1
  97. package/dist/components/textarea.mjs +16 -0
  98. package/dist/components/toggle-group.d.ts +2 -2
  99. package/dist/components/toggle-group.mjs +65 -0
  100. package/dist/components/toggle.d.ts +2 -2
  101. package/dist/components/toggle.mjs +41 -0
  102. package/dist/components/tooltip.d.ts +4 -4
  103. package/dist/components/tooltip.mjs +49 -0
  104. package/dist/hooks/.gitkeep +0 -0
  105. package/dist/hooks/use-mobile.mjs +17 -0
  106. package/dist/hooks/use-user.mjs +12 -0
  107. package/dist/index.mjs +15 -0
  108. package/dist/lib/{utils.js → utils.mjs} +1 -1
  109. package/dist/logo.d.ts +2 -2
  110. package/dist/logo.mjs +32 -0
  111. package/dist/postcss.config.mjs +2 -1
  112. package/dist/providers/auth-provider.d.ts +1 -1
  113. package/dist/providers/auth-provider.mjs +37 -0
  114. package/dist/providers/index.d.ts +1 -1
  115. package/dist/providers/index.mjs +33 -0
  116. package/dist/shared/access-denied.d.ts +2 -1
  117. package/dist/shared/access-denied.mjs +12 -0
  118. package/dist/shared/loader.d.ts +4 -4
  119. package/dist/shared/loader.mjs +98 -0
  120. package/dist/shared/page-loader.d.ts +2 -1
  121. package/dist/shared/page-loader.mjs +6 -0
  122. package/dist/shared/scroll-fade-effect.d.ts +1 -1
  123. package/dist/shared/scroll-fade-effect.mjs +20 -0
  124. package/dist/styles/globals.css +1 -0
  125. package/package.json +13 -13
  126. package/dist/components/accordion.js +0 -18
  127. package/dist/components/alert-dialog.js +0 -39
  128. package/dist/components/alert.js +0 -24
  129. package/dist/components/aspect-ratio.js +0 -7
  130. package/dist/components/avatar.js +0 -14
  131. package/dist/components/badge.js +0 -22
  132. package/dist/components/breadcrumb.js +0 -30
  133. package/dist/components/button-group.js +0 -28
  134. package/dist/components/button.js +0 -33
  135. package/dist/components/calendar.js +0 -76
  136. package/dist/components/card.js +0 -24
  137. package/dist/components/checkbox.js +0 -9
  138. package/dist/components/collapsible.js +0 -13
  139. package/dist/components/command.js +0 -34
  140. package/dist/components/context-menu.js +0 -51
  141. package/dist/components/dialog.js +0 -36
  142. package/dist/components/drawer.js +0 -35
  143. package/dist/components/dropdown-menu.js +0 -51
  144. package/dist/components/empty.js +0 -33
  145. package/dist/components/field.js +0 -78
  146. package/dist/components/form.js +0 -59
  147. package/dist/components/hover-card.js +0 -14
  148. package/dist/components/input-group.js +0 -63
  149. package/dist/components/input-otp.js +0 -21
  150. package/dist/components/input.js +0 -6
  151. package/dist/components/item.js +0 -66
  152. package/dist/components/kbd.js +0 -9
  153. package/dist/components/label.js +0 -8
  154. package/dist/components/language-switcher.js +0 -20
  155. package/dist/components/menubar.js +0 -54
  156. package/dist/components/navigation-menu.js +0 -31
  157. package/dist/components/pagination.js +0 -31
  158. package/dist/components/popover.js +0 -17
  159. package/dist/components/progress.js +0 -8
  160. package/dist/components/radio-group.js +0 -12
  161. package/dist/components/scroll-area.js +0 -13
  162. package/dist/components/select.js +0 -38
  163. package/dist/components/separator.js +0 -8
  164. package/dist/components/sheet.js +0 -40
  165. package/dist/components/sidebar.js +0 -213
  166. package/dist/components/skeleton.js +0 -6
  167. package/dist/components/slider.js +0 -14
  168. package/dist/components/sonner.js +0 -21
  169. package/dist/components/spinner.js +0 -7
  170. package/dist/components/switch.js +0 -8
  171. package/dist/components/table.js +0 -28
  172. package/dist/components/tabs.js +0 -17
  173. package/dist/components/textarea.js +0 -6
  174. package/dist/components/toggle-group.js +0 -22
  175. package/dist/components/toggle.js +0 -26
  176. package/dist/components/tooltip.js +0 -17
  177. package/dist/hooks/use-mobile.js +0 -15
  178. package/dist/hooks/use-user.js +0 -25
  179. package/dist/index.js +0 -15
  180. package/dist/logo.js +0 -28
  181. package/dist/providers/auth-provider.js +0 -27
  182. package/dist/providers/index.js +0 -23
  183. package/dist/shared/access-denied.js +0 -6
  184. package/dist/shared/loader.js +0 -41
  185. package/dist/shared/page-loader.js +0 -6
  186. package/dist/shared/scroll-fade-effect.js +0 -5
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare function Input({ className, type, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
2
+ declare function Input({ className, type, ...props }: React.ComponentProps<"input">): React.JSX.Element;
3
3
  export { Input };
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { cn } from "../lib/utils.mjs";
3
+ function Input({ className, type, ...props }) {
4
+ return /* @__PURE__ */ React.createElement(
5
+ "input",
6
+ {
7
+ type,
8
+ "data-slot": "input",
9
+ className: cn(
10
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
12
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
13
+ className
14
+ ),
15
+ ...props
16
+ }
17
+ );
18
+ }
19
+ export { Input };
@@ -1,23 +1,23 @@
1
1
  import { type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
3
  import { Separator } from "./separator";
4
- declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
- declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
5
+ declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
6
6
  declare const itemVariants: (props?: ({
7
7
  variant?: "default" | "outline" | "muted" | null | undefined;
8
8
  size?: "default" | "sm" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
10
10
  declare function Item({ className, variant, size, asChild, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
11
11
  asChild?: boolean;
12
- }): import("react/jsx-runtime").JSX.Element;
12
+ }): React.JSX.Element;
13
13
  declare const itemMediaVariants: (props?: ({
14
- variant?: "image" | "default" | "icon" | null | undefined;
15
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
- declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): import("react/jsx-runtime").JSX.Element;
17
- declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
18
- declare function ItemTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
19
- declare function ItemDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
20
- declare function ItemActions({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
21
- declare function ItemHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
22
- declare function ItemFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
14
+ variant?: "default" | "image" | "icon" | null | undefined;
15
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
16
+ declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): React.JSX.Element;
17
+ declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
18
+ declare function ItemTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
19
+ declare function ItemDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
20
+ declare function ItemActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
21
+ declare function ItemHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
+ declare function ItemFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
23
23
  export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, };
@@ -0,0 +1,187 @@
1
+ import { cva } from "class-variance-authority";
2
+ import { Slot as SlotPrimitive } from "radix-ui";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/utils.mjs";
5
+ import { Separator } from "./separator.mjs";
6
+ function ItemGroup({ className, ...props }) {
7
+ return /* @__PURE__ */ React.createElement(
8
+ "div",
9
+ {
10
+ role: "list",
11
+ "data-slot": "item-group",
12
+ className: cn("group/item-group flex flex-col", className),
13
+ ...props
14
+ }
15
+ );
16
+ }
17
+ function ItemSeparator({
18
+ className,
19
+ ...props
20
+ }) {
21
+ return /* @__PURE__ */ React.createElement(
22
+ Separator,
23
+ {
24
+ "data-slot": "item-separator",
25
+ orientation: "horizontal",
26
+ className: cn("my-0", className),
27
+ ...props
28
+ }
29
+ );
30
+ }
31
+ const itemVariants = cva(
32
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
33
+ {
34
+ variants: {
35
+ variant: {
36
+ default: "bg-transparent",
37
+ outline: "border-border",
38
+ muted: "bg-muted/50"
39
+ },
40
+ size: {
41
+ default: "p-4 gap-4 ",
42
+ sm: "py-3 px-4 gap-2.5"
43
+ }
44
+ },
45
+ defaultVariants: {
46
+ variant: "default",
47
+ size: "default"
48
+ }
49
+ }
50
+ );
51
+ function Item({
52
+ className,
53
+ variant = "default",
54
+ size = "default",
55
+ asChild = false,
56
+ ...props
57
+ }) {
58
+ const Comp = asChild ? SlotPrimitive.Slot : "div";
59
+ return /* @__PURE__ */ React.createElement(
60
+ Comp,
61
+ {
62
+ "data-slot": "item",
63
+ "data-variant": variant,
64
+ "data-size": size,
65
+ className: cn(itemVariants({ variant, size, className })),
66
+ ...props
67
+ }
68
+ );
69
+ }
70
+ const itemMediaVariants = cva(
71
+ "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",
72
+ {
73
+ variants: {
74
+ variant: {
75
+ default: "bg-transparent",
76
+ icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",
77
+ image: "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover"
78
+ }
79
+ },
80
+ defaultVariants: {
81
+ variant: "default"
82
+ }
83
+ }
84
+ );
85
+ function ItemMedia({
86
+ className,
87
+ variant = "default",
88
+ ...props
89
+ }) {
90
+ return /* @__PURE__ */ React.createElement(
91
+ "div",
92
+ {
93
+ "data-slot": "item-media",
94
+ "data-variant": variant,
95
+ className: cn(itemMediaVariants({ variant, className })),
96
+ ...props
97
+ }
98
+ );
99
+ }
100
+ function ItemContent({ className, ...props }) {
101
+ return /* @__PURE__ */ React.createElement(
102
+ "div",
103
+ {
104
+ "data-slot": "item-content",
105
+ className: cn(
106
+ "flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none",
107
+ className
108
+ ),
109
+ ...props
110
+ }
111
+ );
112
+ }
113
+ function ItemTitle({ className, ...props }) {
114
+ return /* @__PURE__ */ React.createElement(
115
+ "div",
116
+ {
117
+ "data-slot": "item-title",
118
+ className: cn(
119
+ "flex w-fit items-center gap-2 text-sm leading-snug font-medium",
120
+ className
121
+ ),
122
+ ...props
123
+ }
124
+ );
125
+ }
126
+ function ItemDescription({ className, ...props }) {
127
+ return /* @__PURE__ */ React.createElement(
128
+ "p",
129
+ {
130
+ "data-slot": "item-description",
131
+ className: cn(
132
+ "text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance",
133
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
134
+ className
135
+ ),
136
+ ...props
137
+ }
138
+ );
139
+ }
140
+ function ItemActions({ className, ...props }) {
141
+ return /* @__PURE__ */ React.createElement(
142
+ "div",
143
+ {
144
+ "data-slot": "item-actions",
145
+ className: cn("flex items-center gap-2", className),
146
+ ...props
147
+ }
148
+ );
149
+ }
150
+ function ItemHeader({ className, ...props }) {
151
+ return /* @__PURE__ */ React.createElement(
152
+ "div",
153
+ {
154
+ "data-slot": "item-header",
155
+ className: cn(
156
+ "flex basis-full items-center justify-between gap-2",
157
+ className
158
+ ),
159
+ ...props
160
+ }
161
+ );
162
+ }
163
+ function ItemFooter({ className, ...props }) {
164
+ return /* @__PURE__ */ React.createElement(
165
+ "div",
166
+ {
167
+ "data-slot": "item-footer",
168
+ className: cn(
169
+ "flex basis-full items-center justify-between gap-2",
170
+ className
171
+ ),
172
+ ...props
173
+ }
174
+ );
175
+ }
176
+ export {
177
+ Item,
178
+ ItemMedia,
179
+ ItemContent,
180
+ ItemActions,
181
+ ItemGroup,
182
+ ItemSeparator,
183
+ ItemTitle,
184
+ ItemDescription,
185
+ ItemHeader,
186
+ ItemFooter
187
+ };
@@ -1,4 +1,4 @@
1
1
  import * as React from "react";
2
- declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): import("react/jsx-runtime").JSX.Element;
3
- declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
2
+ declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): React.JSX.Element;
3
+ declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
4
4
  export { Kbd, KbdGroup };
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ import { cn } from "../lib/utils.mjs";
3
+ function Kbd({ className, ...props }) {
4
+ return /* @__PURE__ */ React.createElement(
5
+ "kbd",
6
+ {
7
+ "data-slot": "kbd",
8
+ className: cn(
9
+ "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none",
10
+ "[&_svg:not([class*='size-'])]:size-3",
11
+ "[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10",
12
+ className
13
+ ),
14
+ ...props
15
+ }
16
+ );
17
+ }
18
+ function KbdGroup({ className, ...props }) {
19
+ return /* @__PURE__ */ React.createElement(
20
+ "kbd",
21
+ {
22
+ "data-slot": "kbd-group",
23
+ className: cn("inline-flex items-center gap-1", className),
24
+ ...props
25
+ }
26
+ );
27
+ }
28
+ export { Kbd, KbdGroup };
@@ -1,4 +1,4 @@
1
1
  import { Label as LabelPrimitive } from "radix-ui";
2
2
  import * as React from "react";
3
- declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): React.JSX.Element;
4
4
  export { Label };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { Label as LabelPrimitive } from "radix-ui";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/utils.mjs";
5
+ function Label({
6
+ className,
7
+ ...props
8
+ }) {
9
+ return /* @__PURE__ */ React.createElement(
10
+ LabelPrimitive.Root,
11
+ {
12
+ "data-slot": "label",
13
+ className: cn(
14
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ );
20
+ }
21
+ export { Label };
@@ -1 +1,2 @@
1
- export declare function LanguageSwitcher(): import("react/jsx-runtime").JSX.Element;
1
+ import * as React from "react";
2
+ export declare function LanguageSwitcher(): React.JSX.Element;
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { LOCALES, useLocale, useTranslation } from "@arch-cadre/intl";
3
+ import { Languages } from "lucide-react";
4
+ import { useRouter } from "next/navigation";
5
+ import * as React from "react";
6
+ import { Button } from "./button.mjs";
7
+ import {
8
+ DropdownMenu,
9
+ DropdownMenuContent,
10
+ DropdownMenuItem,
11
+ DropdownMenuTrigger
12
+ } from "./dropdown-menu.mjs";
13
+ export function LanguageSwitcher() {
14
+ const locale = useLocale();
15
+ const router = useRouter();
16
+ const { t } = useTranslation();
17
+ const handleLanguageChange = (newLocale) => {
18
+ document.cookie = `NEXT_LOCALE=${newLocale}; path=/; max-age=31536000; SameSite=Lax`;
19
+ router.refresh();
20
+ };
21
+ return /* @__PURE__ */ React.createElement(DropdownMenu, null, /* @__PURE__ */ React.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(Button, { variant: "ghost", size: "icon", className: "size-9" }, /* @__PURE__ */ React.createElement(Languages, { className: "size-4" }), /* @__PURE__ */ React.createElement("span", { className: "sr-only" }, t("Switch language")))), /* @__PURE__ */ React.createElement(DropdownMenuContent, { align: "end" }, LOCALES.map((loc) => /* @__PURE__ */ React.createElement(
22
+ DropdownMenuItem,
23
+ {
24
+ key: loc,
25
+ onClick: () => handleLanguageChange(loc),
26
+ className: locale === loc ? "font-bold" : ""
27
+ },
28
+ loc
29
+ ))));
30
+ }
@@ -1,26 +1,26 @@
1
1
  import { Menubar as MenubarPrimitive } from "radix-ui";
2
2
  import * as React from "react";
3
- declare function Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
- declare function MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>): import("react/jsx-runtime").JSX.Element;
5
- declare function MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
- declare function MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
- declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
8
- declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
9
- declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
3
+ declare function Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>): React.JSX.Element;
4
+ declare function MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>): React.JSX.Element;
5
+ declare function MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>): React.JSX.Element;
6
+ declare function MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>): React.JSX.Element;
7
+ declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>): React.JSX.Element;
8
+ declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Trigger>): React.JSX.Element;
9
+ declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Content>): React.JSX.Element;
10
10
  declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof MenubarPrimitive.Item> & {
11
11
  inset?: boolean;
12
12
  variant?: "default" | "destructive";
13
- }): import("react/jsx-runtime").JSX.Element;
14
- declare function MenubarCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
15
- declare function MenubarRadioItem({ className, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
13
+ }): React.JSX.Element;
14
+ declare function MenubarCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): React.JSX.Element;
15
+ declare function MenubarRadioItem({ className, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioItem>): React.JSX.Element;
16
16
  declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Label> & {
17
17
  inset?: boolean;
18
- }): import("react/jsx-runtime").JSX.Element;
19
- declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
20
- declare function MenubarShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
21
- declare function MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
18
+ }): React.JSX.Element;
19
+ declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Separator>): React.JSX.Element;
20
+ declare function MenubarShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
21
+ declare function MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>): React.JSX.Element;
22
22
  declare function MenubarSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
23
23
  inset?: boolean;
24
- }): import("react/jsx-runtime").JSX.Element;
25
- declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
24
+ }): React.JSX.Element;
25
+ declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubContent>): React.JSX.Element;
26
26
  export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
@@ -0,0 +1,246 @@
1
+ "use client";
2
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
3
+ import { Menubar as MenubarPrimitive } from "radix-ui";
4
+ import * as React from "react";
5
+ import { cn } from "../lib/utils.mjs";
6
+ function Menubar({
7
+ className,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ React.createElement(
11
+ MenubarPrimitive.Root,
12
+ {
13
+ "data-slot": "menubar",
14
+ className: cn(
15
+ "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
16
+ className
17
+ ),
18
+ ...props
19
+ }
20
+ );
21
+ }
22
+ function MenubarMenu({
23
+ ...props
24
+ }) {
25
+ return /* @__PURE__ */ React.createElement(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
26
+ }
27
+ function MenubarGroup({
28
+ ...props
29
+ }) {
30
+ return /* @__PURE__ */ React.createElement(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
31
+ }
32
+ function MenubarPortal({
33
+ ...props
34
+ }) {
35
+ return /* @__PURE__ */ React.createElement(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
36
+ }
37
+ function MenubarRadioGroup({
38
+ ...props
39
+ }) {
40
+ return /* @__PURE__ */ React.createElement(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
41
+ }
42
+ function MenubarTrigger({
43
+ className,
44
+ ...props
45
+ }) {
46
+ return /* @__PURE__ */ React.createElement(
47
+ MenubarPrimitive.Trigger,
48
+ {
49
+ "data-slot": "menubar-trigger",
50
+ className: cn(
51
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
52
+ className
53
+ ),
54
+ ...props
55
+ }
56
+ );
57
+ }
58
+ function MenubarContent({
59
+ className,
60
+ align = "start",
61
+ alignOffset = -4,
62
+ sideOffset = 8,
63
+ ...props
64
+ }) {
65
+ return /* @__PURE__ */ React.createElement(MenubarPortal, null, /* @__PURE__ */ React.createElement(
66
+ MenubarPrimitive.Content,
67
+ {
68
+ "data-slot": "menubar-content",
69
+ align,
70
+ alignOffset,
71
+ sideOffset,
72
+ className: cn(
73
+ "bg-popover text-popover-foreground data-[state=open]:animate-in 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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
74
+ className
75
+ ),
76
+ ...props
77
+ }
78
+ ));
79
+ }
80
+ function MenubarItem({
81
+ className,
82
+ inset,
83
+ variant = "default",
84
+ ...props
85
+ }) {
86
+ return /* @__PURE__ */ React.createElement(
87
+ MenubarPrimitive.Item,
88
+ {
89
+ "data-slot": "menubar-item",
90
+ "data-inset": inset,
91
+ "data-variant": variant,
92
+ className: cn(
93
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
94
+ className
95
+ ),
96
+ ...props
97
+ }
98
+ );
99
+ }
100
+ function MenubarCheckboxItem({
101
+ className,
102
+ children,
103
+ checked,
104
+ ...props
105
+ }) {
106
+ return /* @__PURE__ */ React.createElement(
107
+ MenubarPrimitive.CheckboxItem,
108
+ {
109
+ "data-slot": "menubar-checkbox-item",
110
+ className: cn(
111
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
112
+ className
113
+ ),
114
+ checked,
115
+ ...props
116
+ },
117
+ /* @__PURE__ */ React.createElement("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React.createElement(CheckIcon, { className: "size-4" }))),
118
+ children
119
+ );
120
+ }
121
+ function MenubarRadioItem({
122
+ className,
123
+ children,
124
+ ...props
125
+ }) {
126
+ return /* @__PURE__ */ React.createElement(
127
+ MenubarPrimitive.RadioItem,
128
+ {
129
+ "data-slot": "menubar-radio-item",
130
+ className: cn(
131
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
132
+ className
133
+ ),
134
+ ...props
135
+ },
136
+ /* @__PURE__ */ React.createElement("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React.createElement(CircleIcon, { className: "size-2 fill-current" }))),
137
+ children
138
+ );
139
+ }
140
+ function MenubarLabel({
141
+ className,
142
+ inset,
143
+ ...props
144
+ }) {
145
+ return /* @__PURE__ */ React.createElement(
146
+ MenubarPrimitive.Label,
147
+ {
148
+ "data-slot": "menubar-label",
149
+ "data-inset": inset,
150
+ className: cn(
151
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
152
+ className
153
+ ),
154
+ ...props
155
+ }
156
+ );
157
+ }
158
+ function MenubarSeparator({
159
+ className,
160
+ ...props
161
+ }) {
162
+ return /* @__PURE__ */ React.createElement(
163
+ MenubarPrimitive.Separator,
164
+ {
165
+ "data-slot": "menubar-separator",
166
+ className: cn("bg-border -mx-1 my-1 h-px", className),
167
+ ...props
168
+ }
169
+ );
170
+ }
171
+ function MenubarShortcut({
172
+ className,
173
+ ...props
174
+ }) {
175
+ return /* @__PURE__ */ React.createElement(
176
+ "span",
177
+ {
178
+ "data-slot": "menubar-shortcut",
179
+ className: cn(
180
+ "text-muted-foreground ml-auto text-xs tracking-widest",
181
+ className
182
+ ),
183
+ ...props
184
+ }
185
+ );
186
+ }
187
+ function MenubarSub({
188
+ ...props
189
+ }) {
190
+ return /* @__PURE__ */ React.createElement(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
191
+ }
192
+ function MenubarSubTrigger({
193
+ className,
194
+ inset,
195
+ children,
196
+ ...props
197
+ }) {
198
+ return /* @__PURE__ */ React.createElement(
199
+ MenubarPrimitive.SubTrigger,
200
+ {
201
+ "data-slot": "menubar-sub-trigger",
202
+ "data-inset": inset,
203
+ className: cn(
204
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
205
+ className
206
+ ),
207
+ ...props
208
+ },
209
+ children,
210
+ /* @__PURE__ */ React.createElement(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
211
+ );
212
+ }
213
+ function MenubarSubContent({
214
+ className,
215
+ ...props
216
+ }) {
217
+ return /* @__PURE__ */ React.createElement(
218
+ MenubarPrimitive.SubContent,
219
+ {
220
+ "data-slot": "menubar-sub-content",
221
+ className: cn(
222
+ "bg-popover 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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
223
+ className
224
+ ),
225
+ ...props
226
+ }
227
+ );
228
+ }
229
+ export {
230
+ Menubar,
231
+ MenubarPortal,
232
+ MenubarMenu,
233
+ MenubarTrigger,
234
+ MenubarContent,
235
+ MenubarGroup,
236
+ MenubarSeparator,
237
+ MenubarLabel,
238
+ MenubarItem,
239
+ MenubarShortcut,
240
+ MenubarCheckboxItem,
241
+ MenubarRadioGroup,
242
+ MenubarRadioItem,
243
+ MenubarSub,
244
+ MenubarSubTrigger,
245
+ MenubarSubContent
246
+ };