@mesob/ui 0.2.3 → 0.2.4

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 (230) hide show
  1. package/dist/components.d.ts +992 -0
  2. package/dist/components.js +8030 -0
  3. package/dist/components.js.map +1 -0
  4. package/dist/hooks.d.ts +6 -0
  5. package/dist/hooks.js +85 -0
  6. package/dist/hooks.js.map +1 -0
  7. package/dist/providers.d.ts +20 -0
  8. package/dist/providers.js +61 -0
  9. package/dist/providers.js.map +1 -0
  10. package/dist/use-entity-params-nqD69tdX.d.ts +82 -0
  11. package/package.json +14 -27
  12. package/dist/components/accordion.d.ts +0 -10
  13. package/dist/components/accordion.js +0 -74
  14. package/dist/components/accordion.js.map +0 -1
  15. package/dist/components/alert-dialog.d.ts +0 -17
  16. package/dist/components/alert-dialog.js +0 -187
  17. package/dist/components/alert-dialog.js.map +0 -1
  18. package/dist/components/alert.d.ts +0 -13
  19. package/dist/components/alert.js +0 -74
  20. package/dist/components/alert.js.map +0 -1
  21. package/dist/components/animated-tabs.d.ts +0 -26
  22. package/dist/components/animated-tabs.js +0 -290
  23. package/dist/components/animated-tabs.js.map +0 -1
  24. package/dist/components/app-breadcrumbs-context.d.ts +0 -19
  25. package/dist/components/app-breadcrumbs-context.js +0 -19
  26. package/dist/components/app-breadcrumbs-context.js.map +0 -1
  27. package/dist/components/app-breadcrumbs.d.ts +0 -25
  28. package/dist/components/app-breadcrumbs.js +0 -175
  29. package/dist/components/app-breadcrumbs.js.map +0 -1
  30. package/dist/components/app-header-actions.d.ts +0 -39
  31. package/dist/components/app-header-actions.js +0 -644
  32. package/dist/components/app-header-actions.js.map +0 -1
  33. package/dist/components/app-sidebar.d.ts +0 -24
  34. package/dist/components/app-sidebar.js +0 -667
  35. package/dist/components/app-sidebar.js.map +0 -1
  36. package/dist/components/aspect-ratio.d.ts +0 -6
  37. package/dist/components/aspect-ratio.js +0 -14
  38. package/dist/components/aspect-ratio.js.map +0 -1
  39. package/dist/components/avatar.d.ts +0 -9
  40. package/dist/components/avatar.js +0 -63
  41. package/dist/components/avatar.js.map +0 -1
  42. package/dist/components/badge.d.ts +0 -13
  43. package/dist/components/badge.js +0 -48
  44. package/dist/components/badge.js.map +0 -1
  45. package/dist/components/breadcrumb.d.ts +0 -14
  46. package/dist/components/breadcrumb.js +0 -110
  47. package/dist/components/breadcrumb.js.map +0 -1
  48. package/dist/components/button-group.d.ts +0 -17
  49. package/dist/components/button-group.js +0 -106
  50. package/dist/components/button-group.js.map +0 -1
  51. package/dist/components/button.d.ts +0 -17
  52. package/dist/components/button.js +0 -68
  53. package/dist/components/button.js.map +0 -1
  54. package/dist/components/calendar.d.ts +0 -13
  55. package/dist/components/calendar.js +0 -262
  56. package/dist/components/calendar.js.map +0 -1
  57. package/dist/components/card.d.ts +0 -12
  58. package/dist/components/card.js +0 -98
  59. package/dist/components/card.js.map +0 -1
  60. package/dist/components/carousel.d.ts +0 -24
  61. package/dist/components/carousel.js +0 -268
  62. package/dist/components/carousel.js.map +0 -1
  63. package/dist/components/chart.d.ts +0 -43
  64. package/dist/components/chart.js +0 -271
  65. package/dist/components/chart.js.map +0 -1
  66. package/dist/components/checkbox.d.ts +0 -7
  67. package/dist/components/checkbox.js +0 -41
  68. package/dist/components/checkbox.js.map +0 -1
  69. package/dist/components/collapsible.d.ts +0 -8
  70. package/dist/components/collapsible.js +0 -38
  71. package/dist/components/collapsible.js.map +0 -1
  72. package/dist/components/command.d.ts +0 -22
  73. package/dist/components/command.js +0 -281
  74. package/dist/components/command.js.map +0 -1
  75. package/dist/components/context-menu.d.ts +0 -28
  76. package/dist/components/context-menu.js +0 -233
  77. package/dist/components/context-menu.js.map +0 -1
  78. package/dist/components/data-table/index.d.ts +0 -53
  79. package/dist/components/data-table/index.js +0 -823
  80. package/dist/components/data-table/index.js.map +0 -1
  81. package/dist/components/dialog.d.ts +0 -18
  82. package/dist/components/dialog.js +0 -146
  83. package/dist/components/dialog.js.map +0 -1
  84. package/dist/components/drawer.d.ts +0 -16
  85. package/dist/components/drawer.js +0 -138
  86. package/dist/components/drawer.js.map +0 -1
  87. package/dist/components/dropdown-menu.d.ts +0 -28
  88. package/dist/components/dropdown-menu.js +0 -241
  89. package/dist/components/dropdown-menu.js.map +0 -1
  90. package/dist/components/empty.d.ts +0 -15
  91. package/dist/components/empty.js +0 -110
  92. package/dist/components/empty.js.map +0 -1
  93. package/dist/components/entity/index.d.ts +0 -236
  94. package/dist/components/entity/index.js +0 -1796
  95. package/dist/components/entity/index.js.map +0 -1
  96. package/dist/components/field.d.ts +0 -30
  97. package/dist/components/field.js +0 -279
  98. package/dist/components/field.js.map +0 -1
  99. package/dist/components/form.d.ts +0 -28
  100. package/dist/components/form.js +0 -150
  101. package/dist/components/form.js.map +0 -1
  102. package/dist/components/hover-card.d.ts +0 -9
  103. package/dist/components/hover-card.js +0 -48
  104. package/dist/components/hover-card.js.map +0 -1
  105. package/dist/components/input-group.d.ts +0 -20
  106. package/dist/components/input-group.js +0 -265
  107. package/dist/components/input-group.js.map +0 -1
  108. package/dist/components/input-otp.d.ts +0 -14
  109. package/dist/components/input-otp.js +0 -76
  110. package/dist/components/input-otp.js.map +0 -1
  111. package/dist/components/input.d.ts +0 -6
  112. package/dist/components/input.js +0 -29
  113. package/dist/components/input.js.map +0 -1
  114. package/dist/components/item.d.ts +0 -28
  115. package/dist/components/item.js +0 -220
  116. package/dist/components/item.js.map +0 -1
  117. package/dist/components/kbd.d.ts +0 -6
  118. package/dist/components/kbd.js +0 -39
  119. package/dist/components/kbd.js.map +0 -1
  120. package/dist/components/label.d.ts +0 -7
  121. package/dist/components/label.js +0 -32
  122. package/dist/components/label.js.map +0 -1
  123. package/dist/components/link.d.ts +0 -12
  124. package/dist/components/link.js +0 -51
  125. package/dist/components/link.js.map +0 -1
  126. package/dist/components/menubar.d.ts +0 -29
  127. package/dist/components/menubar.js +0 -261
  128. package/dist/components/menubar.js.map +0 -1
  129. package/dist/components/mesob-context.d.ts +0 -34
  130. package/dist/components/mesob-context.js +0 -53
  131. package/dist/components/mesob-context.js.map +0 -1
  132. package/dist/components/mesob-logo.d.ts +0 -13
  133. package/dist/components/mesob-logo.js +0 -80
  134. package/dist/components/mesob-logo.js.map +0 -1
  135. package/dist/components/navigation-menu.d.ts +0 -18
  136. package/dist/components/navigation-menu.js +0 -178
  137. package/dist/components/navigation-menu.js.map +0 -1
  138. package/dist/components/page/index.d.ts +0 -46
  139. package/dist/components/page/index.js +0 -205
  140. package/dist/components/page/index.js.map +0 -1
  141. package/dist/components/pagination.d.ts +0 -18
  142. package/dist/components/pagination.js +0 -160
  143. package/dist/components/pagination.js.map +0 -1
  144. package/dist/components/popover.d.ts +0 -10
  145. package/dist/components/popover.js +0 -54
  146. package/dist/components/popover.js.map +0 -1
  147. package/dist/components/powered-by.d.ts +0 -8
  148. package/dist/components/powered-by.js +0 -114
  149. package/dist/components/powered-by.js.map +0 -1
  150. package/dist/components/progress.d.ts +0 -7
  151. package/dist/components/progress.js +0 -41
  152. package/dist/components/progress.js.map +0 -1
  153. package/dist/components/radio-group.d.ts +0 -8
  154. package/dist/components/radio-group.js +0 -55
  155. package/dist/components/radio-group.js.map +0 -1
  156. package/dist/components/resizable.d.ts +0 -11
  157. package/dist/components/resizable.js +0 -58
  158. package/dist/components/resizable.js.map +0 -1
  159. package/dist/components/scroll-area.d.ts +0 -8
  160. package/dist/components/scroll-area.js +0 -70
  161. package/dist/components/scroll-area.js.map +0 -1
  162. package/dist/components/section/index.d.ts +0 -14
  163. package/dist/components/section/index.js +0 -147
  164. package/dist/components/section/index.js.map +0 -1
  165. package/dist/components/select.d.ts +0 -18
  166. package/dist/components/select.js +0 -181
  167. package/dist/components/select.js.map +0 -1
  168. package/dist/components/separator.d.ts +0 -7
  169. package/dist/components/separator.js +0 -36
  170. package/dist/components/separator.js.map +0 -1
  171. package/dist/components/sheet.d.ts +0 -16
  172. package/dist/components/sheet.js +0 -136
  173. package/dist/components/sheet.js.map +0 -1
  174. package/dist/components/shell.d.ts +0 -13
  175. package/dist/components/shell.js +0 -548
  176. package/dist/components/shell.js.map +0 -1
  177. package/dist/components/sidebar-context.d.ts +0 -19
  178. package/dist/components/sidebar-context.js +0 -17
  179. package/dist/components/sidebar-context.js.map +0 -1
  180. package/dist/components/sidebar.d.ts +0 -66
  181. package/dist/components/sidebar.js +0 -943
  182. package/dist/components/sidebar.js.map +0 -1
  183. package/dist/components/skeleton.d.ts +0 -5
  184. package/dist/components/skeleton.js +0 -23
  185. package/dist/components/skeleton.js.map +0 -1
  186. package/dist/components/slider.d.ts +0 -7
  187. package/dist/components/slider.js +0 -76
  188. package/dist/components/slider.js.map +0 -1
  189. package/dist/components/sonner.d.ts +0 -7
  190. package/dist/components/sonner.js +0 -43
  191. package/dist/components/sonner.js.map +0 -1
  192. package/dist/components/spinner.d.ts +0 -6
  193. package/dist/components/spinner.js +0 -28
  194. package/dist/components/spinner.js.map +0 -1
  195. package/dist/components/spotlight-search.d.ts +0 -25
  196. package/dist/components/spotlight-search.js +0 -395
  197. package/dist/components/spotlight-search.js.map +0 -1
  198. package/dist/components/switch.d.ts +0 -7
  199. package/dist/components/switch.js +0 -41
  200. package/dist/components/switch.js.map +0 -1
  201. package/dist/components/table.d.ts +0 -13
  202. package/dist/components/table.js +0 -124
  203. package/dist/components/table.js.map +0 -1
  204. package/dist/components/tabs.d.ts +0 -10
  205. package/dist/components/tabs.js +0 -77
  206. package/dist/components/tabs.js.map +0 -1
  207. package/dist/components/textarea.d.ts +0 -6
  208. package/dist/components/textarea.js +0 -26
  209. package/dist/components/textarea.js.map +0 -1
  210. package/dist/components/theme-toggle.d.ts +0 -8
  211. package/dist/components/theme-toggle.js +0 -94
  212. package/dist/components/theme-toggle.js.map +0 -1
  213. package/dist/components/toggle-group.d.ts +0 -14
  214. package/dist/components/toggle-group.js +0 -102
  215. package/dist/components/toggle-group.js.map +0 -1
  216. package/dist/components/toggle.d.ts +0 -13
  217. package/dist/components/toggle.js +0 -53
  218. package/dist/components/toggle.js.map +0 -1
  219. package/dist/components/tooltip.d.ts +0 -10
  220. package/dist/components/tooltip.js +0 -66
  221. package/dist/components/tooltip.js.map +0 -1
  222. package/dist/hooks/use-mobile.d.ts +0 -3
  223. package/dist/hooks/use-mobile.js +0 -22
  224. package/dist/hooks/use-mobile.js.map +0 -1
  225. package/dist/hooks/use-router.d.ts +0 -7
  226. package/dist/hooks/use-router.js +0 -36
  227. package/dist/hooks/use-router.js.map +0 -1
  228. package/dist/hooks/use-translation.d.ts +0 -5
  229. package/dist/hooks/use-translation.js +0 -42
  230. package/dist/hooks/use-translation.js.map +0 -1
@@ -1,178 +0,0 @@
1
- // src/lib/utils.ts
2
- import { clsx } from "clsx";
3
- import { twMerge } from "tailwind-merge";
4
- function cn(...inputs) {
5
- return twMerge(clsx(inputs));
6
- }
7
-
8
- // src/components/navigation-menu.tsx
9
- import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
10
- import { IconChevronDown } from "@tabler/icons-react";
11
- import { cva } from "class-variance-authority";
12
- import { jsx, jsxs } from "react/jsx-runtime";
13
- function NavigationMenu({
14
- className,
15
- children,
16
- viewport = true,
17
- ...props
18
- }) {
19
- return /* @__PURE__ */ jsxs(
20
- NavigationMenuPrimitive.Root,
21
- {
22
- "data-slot": "navigation-menu",
23
- "data-viewport": viewport,
24
- className: cn(
25
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
26
- className
27
- ),
28
- ...props,
29
- children: [
30
- children,
31
- viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})
32
- ]
33
- }
34
- );
35
- }
36
- function NavigationMenuList({
37
- className,
38
- ...props
39
- }) {
40
- return /* @__PURE__ */ jsx(
41
- NavigationMenuPrimitive.List,
42
- {
43
- "data-slot": "navigation-menu-list",
44
- className: cn(
45
- "group flex flex-1 list-none items-center justify-center gap-1",
46
- className
47
- ),
48
- ...props
49
- }
50
- );
51
- }
52
- function NavigationMenuItem({
53
- className,
54
- ...props
55
- }) {
56
- return /* @__PURE__ */ jsx(
57
- NavigationMenuPrimitive.Item,
58
- {
59
- "data-slot": "navigation-menu-item",
60
- className: cn("relative", className),
61
- ...props
62
- }
63
- );
64
- }
65
- var navigationMenuTriggerStyle = cva(
66
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
67
- );
68
- function NavigationMenuTrigger({
69
- className,
70
- children,
71
- ...props
72
- }) {
73
- return /* @__PURE__ */ jsxs(
74
- NavigationMenuPrimitive.Trigger,
75
- {
76
- "data-slot": "navigation-menu-trigger",
77
- className: cn(navigationMenuTriggerStyle(), "group", className),
78
- ...props,
79
- children: [
80
- children,
81
- " ",
82
- /* @__PURE__ */ jsx(
83
- IconChevronDown,
84
- {
85
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
86
- "aria-hidden": "true"
87
- }
88
- )
89
- ]
90
- }
91
- );
92
- }
93
- function NavigationMenuContent({
94
- className,
95
- ...props
96
- }) {
97
- return /* @__PURE__ */ jsx(
98
- NavigationMenuPrimitive.Content,
99
- {
100
- "data-slot": "navigation-menu-content",
101
- className: cn(
102
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
103
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
104
- className
105
- ),
106
- ...props
107
- }
108
- );
109
- }
110
- function NavigationMenuViewport({
111
- className,
112
- ...props
113
- }) {
114
- return /* @__PURE__ */ jsx(
115
- "div",
116
- {
117
- className: cn(
118
- "absolute top-full left-0 isolate z-50 flex justify-center"
119
- ),
120
- children: /* @__PURE__ */ jsx(
121
- NavigationMenuPrimitive.Viewport,
122
- {
123
- "data-slot": "navigation-menu-viewport",
124
- className: cn(
125
- "origin-top-center bg-popover text-popover-foreground border-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
126
- className
127
- ),
128
- ...props
129
- }
130
- )
131
- }
132
- );
133
- }
134
- function NavigationMenuLink({
135
- className,
136
- ...props
137
- }) {
138
- return /* @__PURE__ */ jsx(
139
- NavigationMenuPrimitive.Link,
140
- {
141
- "data-slot": "navigation-menu-link",
142
- className: cn(
143
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
144
- className
145
- ),
146
- ...props
147
- }
148
- );
149
- }
150
- function NavigationMenuIndicator({
151
- className,
152
- ...props
153
- }) {
154
- return /* @__PURE__ */ jsx(
155
- NavigationMenuPrimitive.Indicator,
156
- {
157
- "data-slot": "navigation-menu-indicator",
158
- className: cn(
159
- "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
160
- className
161
- ),
162
- ...props,
163
- children: /* @__PURE__ */ jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
164
- }
165
- );
166
- }
167
- export {
168
- NavigationMenu,
169
- NavigationMenuContent,
170
- NavigationMenuIndicator,
171
- NavigationMenuItem,
172
- NavigationMenuLink,
173
- NavigationMenuList,
174
- NavigationMenuTrigger,
175
- NavigationMenuViewport,
176
- navigationMenuTriggerStyle
177
- };
178
- //# sourceMappingURL=navigation-menu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/navigation-menu.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';\nimport { IconChevronDown } from '@tabler/icons-react';\nimport { cva } from 'class-variance-authority';\nimport type * as React from 'react';\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n 'group flex flex-1 list-none items-center justify-center gap-1',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn('relative', className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1',\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <IconChevronDown\n className=\"relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n 'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto',\n 'group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div\n className={cn(\n 'absolute top-full left-0 isolate z-50 flex justify-center',\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n 'origin-top-center bg-popover text-popover-foreground border-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]',\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n 'data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden',\n className,\n )}\n {...props}\n >\n <div className=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACJA,YAAY,6BAA6B;AACzC,SAAS,uBAAuB;AAChC,SAAS,WAAW;AAYhB,SAUe,KAVf;AATJ,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,iBAAe;AAAA,MACf,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,YAAY,oBAAC,0BAAuB;AAAA;AAAA;AAAA,EACvC;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,YAAY,SAAS;AAAA,MAClC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,IAAM,6BAA6B;AAAA,EACjC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;AAAA,MAC7D,GAAG;AAAA,MAEH;AAAA;AAAA,QAAU;AAAA,QACX;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,MACF;AAAA,MAEA;AAAA,QAAyB;AAAA,QAAxB;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,wBAAwB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,GAAmE;AACjE,SACE;AAAA,IAAyB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,8BAAC,SAAI,WAAU,0EAAyE;AAAA;AAAA,EAC1F;AAEJ;","names":[]}
@@ -1,46 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
3
-
4
- type PageBodyProps = {
5
- className?: string;
6
- children: ReactNode;
7
- };
8
- declare function PageBody({ className, children }: PageBodyProps): react_jsx_runtime.JSX.Element;
9
-
10
- type PageContainerProps = {
11
- className?: string;
12
- children: ReactNode;
13
- };
14
- declare function PageContainer({ className, children }: PageContainerProps): react_jsx_runtime.JSX.Element;
15
-
16
- type PageGoBackProps = {
17
- onBack: () => void;
18
- label?: string;
19
- className?: string;
20
- children?: ReactNode;
21
- };
22
- declare function PageGoBack({ onBack, label, className, children, }: PageGoBackProps): react_jsx_runtime.JSX.Element;
23
-
24
- type PageSectionProps = {
25
- title?: ReactNode;
26
- className?: string;
27
- children: ReactNode;
28
- };
29
- declare function PageSection({ title, className, children }: PageSectionProps): react_jsx_runtime.JSX.Element;
30
-
31
- type PageSubTitleProps = {
32
- className?: string;
33
- children: ReactNode;
34
- };
35
- declare function PageSubTitle({ className, children }: PageSubTitleProps): react_jsx_runtime.JSX.Element;
36
-
37
- type PageTitleProps = {
38
- icon?: ReactNode;
39
- back?: ReactNode;
40
- action?: ReactNode;
41
- children: ReactNode;
42
- className?: string;
43
- };
44
- declare function PageTitle({ icon, back, action, children, className, }: PageTitleProps): react_jsx_runtime.JSX.Element;
45
-
46
- export { PageBody, PageContainer, PageGoBack, PageSection, PageSubTitle, PageTitle };
@@ -1,205 +0,0 @@
1
- // src/lib/utils.ts
2
- import { clsx } from "clsx";
3
- import { twMerge } from "tailwind-merge";
4
- function cn(...inputs) {
5
- return twMerge(clsx(inputs));
6
- }
7
-
8
- // src/components/page/page-body.tsx
9
- import { jsx } from "react/jsx-runtime";
10
- function PageBody({ className, children }) {
11
- return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-4 px-4", className), children });
12
- }
13
-
14
- // src/components/page/page-container.tsx
15
- import { jsx as jsx2 } from "react/jsx-runtime";
16
- function PageContainer({ className, children }) {
17
- return /* @__PURE__ */ jsx2("div", { className: cn("pb-4", className), children });
18
- }
19
-
20
- // src/components/page/page-go-back.tsx
21
- import { IconArrowLeft } from "@tabler/icons-react";
22
-
23
- // src/components/button.tsx
24
- import { Slot } from "@radix-ui/react-slot";
25
- import { cva } from "class-variance-authority";
26
- import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
27
- var buttonVariants = cva(
28
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
29
- {
30
- variants: {
31
- variant: {
32
- default: "bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400",
33
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
34
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
35
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400",
36
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
37
- link: "text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline"
38
- },
39
- size: {
40
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
41
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
42
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
43
- icon: "size-9",
44
- "icon-sm": "size-8",
45
- "icon-lg": "size-10"
46
- }
47
- },
48
- defaultVariants: {
49
- variant: "default",
50
- size: "default"
51
- }
52
- }
53
- );
54
- function Button({
55
- className,
56
- variant,
57
- size,
58
- asChild = false,
59
- leftIcon,
60
- rightIcon,
61
- children,
62
- ...props
63
- }) {
64
- const Comp = asChild ? Slot : "button";
65
- return /* @__PURE__ */ jsx3(
66
- Comp,
67
- {
68
- "data-slot": "button",
69
- className: cn(buttonVariants({ variant, size, className })),
70
- ...props,
71
- children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
72
- leftIcon,
73
- children,
74
- rightIcon
75
- ] })
76
- }
77
- );
78
- }
79
-
80
- // src/components/tooltip.tsx
81
- import * as TooltipPrimitive from "@radix-ui/react-tooltip";
82
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
83
- function TooltipProvider({
84
- delayDuration = 0,
85
- ...props
86
- }) {
87
- return /* @__PURE__ */ jsx4(
88
- TooltipPrimitive.Provider,
89
- {
90
- "data-slot": "tooltip-provider",
91
- delayDuration,
92
- ...props
93
- }
94
- );
95
- }
96
- function Tooltip({
97
- children,
98
- ...props
99
- }) {
100
- return /* @__PURE__ */ jsx4(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children });
101
- }
102
- function TooltipTrigger({
103
- ...props
104
- }) {
105
- return /* @__PURE__ */ jsx4(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
106
- }
107
- function TooltipContent({
108
- className,
109
- sideOffset = 0,
110
- children,
111
- ...props
112
- }) {
113
- return /* @__PURE__ */ jsx4(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
114
- TooltipPrimitive.Content,
115
- {
116
- "data-slot": "tooltip-content",
117
- sideOffset,
118
- className: cn(
119
- "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
120
- className
121
- ),
122
- ...props,
123
- children: [
124
- children,
125
- /* @__PURE__ */ jsx4(TooltipPrimitive.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
126
- ]
127
- }
128
- ) });
129
- }
130
-
131
- // src/components/page/page-go-back.tsx
132
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
133
- function PageGoBack({
134
- onBack,
135
- label = "Go back",
136
- className,
137
- children
138
- }) {
139
- return /* @__PURE__ */ jsx5(TooltipProvider, { children: /* @__PURE__ */ jsxs3(Tooltip, { children: [
140
- /* @__PURE__ */ jsx5(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx5(
141
- Button,
142
- {
143
- variant: "ghost",
144
- size: "icon-sm",
145
- onClick: onBack,
146
- className: cn(className),
147
- "aria-label": label,
148
- children: children ?? /* @__PURE__ */ jsx5(IconArrowLeft, { className: "size-4", stroke: 1.5 })
149
- }
150
- ) }),
151
- /* @__PURE__ */ jsx5(TooltipContent, { side: "bottom", children: label })
152
- ] }) });
153
- }
154
-
155
- // src/components/page/page-section.tsx
156
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
157
- function PageSection({ title, className, children }) {
158
- return /* @__PURE__ */ jsxs4("div", { className: cn("flex flex-col gap-4", className), children: [
159
- title ? /* @__PURE__ */ jsx6("h4", { className: "font-medium text-foreground", children: title }) : null,
160
- children
161
- ] });
162
- }
163
-
164
- // src/components/page/page-subtitle.tsx
165
- import { jsx as jsx7 } from "react/jsx-runtime";
166
- function PageSubTitle({ className, children }) {
167
- return /* @__PURE__ */ jsx7("span", { className: cn("text-sm text-muted-foreground", className), children });
168
- }
169
-
170
- // src/components/page/page-title.tsx
171
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
172
- function PageTitle({
173
- icon,
174
- back,
175
- action,
176
- children,
177
- className
178
- }) {
179
- return /* @__PURE__ */ jsxs5(
180
- "div",
181
- {
182
- className: cn(
183
- "flex min-h-12 items-center gap-2 border-b text-foreground",
184
- className
185
- ),
186
- children: [
187
- back ?? null,
188
- icon ?? null,
189
- /* @__PURE__ */ jsxs5("div", { className: "flex grow items-center justify-between", children: [
190
- /* @__PURE__ */ jsx8("h3", { className: "font-medium", children }),
191
- action ?? null
192
- ] })
193
- ]
194
- }
195
- );
196
- }
197
- export {
198
- PageBody,
199
- PageContainer,
200
- PageGoBack,
201
- PageSection,
202
- PageSubTitle,
203
- PageTitle
204
- };
205
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/page/page-body.tsx","../../../src/components/page/page-container.tsx","../../../src/components/page/page-go-back.tsx","../../../src/components/button.tsx","../../../src/components/tooltip.tsx","../../../src/components/page/page-section.tsx","../../../src/components/page/page-subtitle.tsx","../../../src/components/page/page-title.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport type { ReactNode } from 'react';\n\ntype PageBodyProps = {\n className?: string;\n children: ReactNode;\n};\n\nexport function PageBody({ className, children }: PageBodyProps) {\n return (\n <div className={cn('flex flex-col gap-4 px-4', className)}>{children}</div>\n );\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport type { ReactNode } from 'react';\n\ntype PageContainerProps = {\n className?: string;\n children: ReactNode;\n};\n\nexport function PageContainer({ className, children }: PageContainerProps) {\n return <div className={cn('pb-4', className)}>{children}</div>;\n}\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport { IconArrowLeft } from '@tabler/icons-react';\nimport type { ReactNode } from 'react';\nimport { Button } from '../button';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '../tooltip';\n\ntype PageGoBackProps = {\n onBack: () => void;\n label?: string;\n className?: string;\n children?: ReactNode;\n};\n\nexport function PageGoBack({\n onBack,\n label = 'Go back',\n className,\n children,\n}: PageGoBackProps) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={onBack}\n className={cn(className)}\n aria-label={label}\n >\n {children ?? <IconArrowLeft className=\"size-4\" stroke={1.5} />}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{label}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type * as React from 'react';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline:\n 'border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonProps = React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n };\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n leftIcon,\n rightIcon,\n children,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {leftIcon}\n {children}\n {rightIcon}\n </>\n )}\n </Comp>\n );\n}\n\nexport { Button, buttonVariants };\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type * as React from 'react';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props}>\n {children}\n </TooltipPrimitive.Root>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import { cn } from '@mesob/ui/lib/utils';\nimport type { ReactNode } from 'react';\n\ntype PageSectionProps = {\n title?: ReactNode;\n className?: string;\n children: ReactNode;\n};\n\nexport function PageSection({ title, className, children }: PageSectionProps) {\n return (\n <div className={cn('flex flex-col gap-4', className)}>\n {title ? <h4 className=\"font-medium text-foreground\">{title}</h4> : null}\n {children}\n </div>\n );\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport type { ReactNode } from 'react';\n\ntype PageSubTitleProps = {\n className?: string;\n children: ReactNode;\n};\n\nexport function PageSubTitle({ className, children }: PageSubTitleProps) {\n return (\n <span className={cn('text-sm text-muted-foreground', className)}>\n {children}\n </span>\n );\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport type { ReactNode } from 'react';\n\ntype PageTitleProps = {\n icon?: ReactNode;\n back?: ReactNode;\n action?: ReactNode;\n children: ReactNode;\n className?: string;\n};\n\nexport function PageTitle({\n icon,\n back,\n action,\n children,\n className,\n}: PageTitleProps) {\n return (\n <div\n className={cn(\n 'flex min-h-12 items-center gap-2 border-b text-foreground',\n className,\n )}\n >\n {back ?? null}\n {icon ?? null}\n <div className=\"flex grow items-center justify-between\">\n <h3 className=\"font-medium\">{children}</h3>\n {action ?? null}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs"]}
@@ -1,18 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Button } from './button.js';
3
- import * as React from 'react';
4
- import 'class-variance-authority/types';
5
- import 'class-variance-authority';
6
-
7
- declare function Pagination({ className, ...props }: React.ComponentProps<'nav'>): react_jsx_runtime.JSX.Element;
8
- declare function PaginationContent({ className, ...props }: React.ComponentProps<'ul'>): react_jsx_runtime.JSX.Element;
9
- declare function PaginationItem({ ...props }: React.ComponentProps<'li'>): react_jsx_runtime.JSX.Element;
10
- type PaginationLinkProps = {
11
- isActive?: boolean;
12
- } & Pick<React.ComponentProps<typeof Button>, 'size'> & React.ComponentProps<'a'>;
13
- declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
14
- declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
15
- declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
16
- declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<'span'>): react_jsx_runtime.JSX.Element;
17
-
18
- export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -1,160 +0,0 @@
1
- // src/lib/utils.ts
2
- import { clsx } from "clsx";
3
- import { twMerge } from "tailwind-merge";
4
- function cn(...inputs) {
5
- return twMerge(clsx(inputs));
6
- }
7
-
8
- // src/components/button.tsx
9
- import { Slot } from "@radix-ui/react-slot";
10
- import { cva } from "class-variance-authority";
11
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
- var buttonVariants = cva(
13
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
14
- {
15
- variants: {
16
- variant: {
17
- default: "bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400",
18
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
19
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
20
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400",
21
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
22
- link: "text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline"
23
- },
24
- size: {
25
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
27
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
- icon: "size-9",
29
- "icon-sm": "size-8",
30
- "icon-lg": "size-10"
31
- }
32
- },
33
- defaultVariants: {
34
- variant: "default",
35
- size: "default"
36
- }
37
- }
38
- );
39
-
40
- // src/components/pagination.tsx
41
- import {
42
- IconChevronLeft,
43
- IconChevronRight,
44
- IconDots
45
- } from "@tabler/icons-react";
46
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
47
- function Pagination({ className, ...props }) {
48
- return /* @__PURE__ */ jsx2(
49
- "nav",
50
- {
51
- "aria-label": "pagination",
52
- "data-slot": "pagination",
53
- className: cn("mx-auto flex w-full justify-center", className),
54
- ...props
55
- }
56
- );
57
- }
58
- function PaginationContent({
59
- className,
60
- ...props
61
- }) {
62
- return /* @__PURE__ */ jsx2(
63
- "ul",
64
- {
65
- "data-slot": "pagination-content",
66
- className: cn("flex flex-row items-center gap-1", className),
67
- ...props
68
- }
69
- );
70
- }
71
- function PaginationItem({ ...props }) {
72
- return /* @__PURE__ */ jsx2("li", { "data-slot": "pagination-item", ...props });
73
- }
74
- function PaginationLink({
75
- className,
76
- isActive,
77
- size = "icon",
78
- ...props
79
- }) {
80
- return /* @__PURE__ */ jsx2(
81
- "a",
82
- {
83
- "aria-current": isActive ? "page" : void 0,
84
- "data-slot": "pagination-link",
85
- "data-active": isActive,
86
- className: cn(
87
- buttonVariants({
88
- variant: isActive ? "outline" : "ghost",
89
- size
90
- }),
91
- className
92
- ),
93
- ...props
94
- }
95
- );
96
- }
97
- function PaginationPrevious({
98
- className,
99
- ...props
100
- }) {
101
- return /* @__PURE__ */ jsxs2(
102
- PaginationLink,
103
- {
104
- "aria-label": "Go to previous page",
105
- size: "default",
106
- className: cn("gap-1 px-2.5 sm:pl-2.5", className),
107
- ...props,
108
- children: [
109
- /* @__PURE__ */ jsx2(IconChevronLeft, {}),
110
- /* @__PURE__ */ jsx2("span", { className: "hidden sm:block", children: "Previous" })
111
- ]
112
- }
113
- );
114
- }
115
- function PaginationNext({
116
- className,
117
- ...props
118
- }) {
119
- return /* @__PURE__ */ jsxs2(
120
- PaginationLink,
121
- {
122
- "aria-label": "Go to next page",
123
- size: "default",
124
- className: cn("gap-1 px-2.5 sm:pr-2.5", className),
125
- ...props,
126
- children: [
127
- /* @__PURE__ */ jsx2("span", { className: "hidden sm:block", children: "Next" }),
128
- /* @__PURE__ */ jsx2(IconChevronRight, {})
129
- ]
130
- }
131
- );
132
- }
133
- function PaginationEllipsis({
134
- className,
135
- ...props
136
- }) {
137
- return /* @__PURE__ */ jsxs2(
138
- "span",
139
- {
140
- "aria-hidden": true,
141
- "data-slot": "pagination-ellipsis",
142
- className: cn("flex size-9 items-center justify-center", className),
143
- ...props,
144
- children: [
145
- /* @__PURE__ */ jsx2(IconDots, { className: "size-4" }),
146
- /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "More pages" })
147
- ]
148
- }
149
- );
150
- }
151
- export {
152
- Pagination,
153
- PaginationContent,
154
- PaginationEllipsis,
155
- PaginationItem,
156
- PaginationLink,
157
- PaginationNext,
158
- PaginationPrevious
159
- };
160
- //# sourceMappingURL=pagination.js.map