@mesob/ui 0.2.2 → 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 (227) 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.d.ts +0 -34
  25. package/dist/components/app-breadcrumbs.js +0 -177
  26. package/dist/components/app-breadcrumbs.js.map +0 -1
  27. package/dist/components/app-header-actions.d.ts +0 -39
  28. package/dist/components/app-header-actions.js +0 -644
  29. package/dist/components/app-header-actions.js.map +0 -1
  30. package/dist/components/app-sidebar.d.ts +0 -24
  31. package/dist/components/app-sidebar.js +0 -674
  32. package/dist/components/app-sidebar.js.map +0 -1
  33. package/dist/components/aspect-ratio.d.ts +0 -6
  34. package/dist/components/aspect-ratio.js +0 -14
  35. package/dist/components/aspect-ratio.js.map +0 -1
  36. package/dist/components/avatar.d.ts +0 -9
  37. package/dist/components/avatar.js +0 -63
  38. package/dist/components/avatar.js.map +0 -1
  39. package/dist/components/badge.d.ts +0 -13
  40. package/dist/components/badge.js +0 -48
  41. package/dist/components/badge.js.map +0 -1
  42. package/dist/components/breadcrumb.d.ts +0 -14
  43. package/dist/components/breadcrumb.js +0 -110
  44. package/dist/components/breadcrumb.js.map +0 -1
  45. package/dist/components/button-group.d.ts +0 -17
  46. package/dist/components/button-group.js +0 -106
  47. package/dist/components/button-group.js.map +0 -1
  48. package/dist/components/button.d.ts +0 -17
  49. package/dist/components/button.js +0 -68
  50. package/dist/components/button.js.map +0 -1
  51. package/dist/components/calendar.d.ts +0 -13
  52. package/dist/components/calendar.js +0 -262
  53. package/dist/components/calendar.js.map +0 -1
  54. package/dist/components/card.d.ts +0 -12
  55. package/dist/components/card.js +0 -98
  56. package/dist/components/card.js.map +0 -1
  57. package/dist/components/carousel.d.ts +0 -24
  58. package/dist/components/carousel.js +0 -268
  59. package/dist/components/carousel.js.map +0 -1
  60. package/dist/components/chart.d.ts +0 -43
  61. package/dist/components/chart.js +0 -271
  62. package/dist/components/chart.js.map +0 -1
  63. package/dist/components/checkbox.d.ts +0 -7
  64. package/dist/components/checkbox.js +0 -41
  65. package/dist/components/checkbox.js.map +0 -1
  66. package/dist/components/collapsible.d.ts +0 -8
  67. package/dist/components/collapsible.js +0 -38
  68. package/dist/components/collapsible.js.map +0 -1
  69. package/dist/components/command.d.ts +0 -22
  70. package/dist/components/command.js +0 -281
  71. package/dist/components/command.js.map +0 -1
  72. package/dist/components/context-menu.d.ts +0 -28
  73. package/dist/components/context-menu.js +0 -233
  74. package/dist/components/context-menu.js.map +0 -1
  75. package/dist/components/data-table/index.d.ts +0 -53
  76. package/dist/components/data-table/index.js +0 -823
  77. package/dist/components/data-table/index.js.map +0 -1
  78. package/dist/components/dialog.d.ts +0 -18
  79. package/dist/components/dialog.js +0 -146
  80. package/dist/components/dialog.js.map +0 -1
  81. package/dist/components/drawer.d.ts +0 -16
  82. package/dist/components/drawer.js +0 -138
  83. package/dist/components/drawer.js.map +0 -1
  84. package/dist/components/dropdown-menu.d.ts +0 -28
  85. package/dist/components/dropdown-menu.js +0 -241
  86. package/dist/components/dropdown-menu.js.map +0 -1
  87. package/dist/components/empty.d.ts +0 -15
  88. package/dist/components/empty.js +0 -110
  89. package/dist/components/empty.js.map +0 -1
  90. package/dist/components/entity/index.d.ts +0 -236
  91. package/dist/components/entity/index.js +0 -1796
  92. package/dist/components/entity/index.js.map +0 -1
  93. package/dist/components/field.d.ts +0 -30
  94. package/dist/components/field.js +0 -279
  95. package/dist/components/field.js.map +0 -1
  96. package/dist/components/form.d.ts +0 -28
  97. package/dist/components/form.js +0 -150
  98. package/dist/components/form.js.map +0 -1
  99. package/dist/components/hover-card.d.ts +0 -9
  100. package/dist/components/hover-card.js +0 -48
  101. package/dist/components/hover-card.js.map +0 -1
  102. package/dist/components/input-group.d.ts +0 -20
  103. package/dist/components/input-group.js +0 -265
  104. package/dist/components/input-group.js.map +0 -1
  105. package/dist/components/input-otp.d.ts +0 -14
  106. package/dist/components/input-otp.js +0 -76
  107. package/dist/components/input-otp.js.map +0 -1
  108. package/dist/components/input.d.ts +0 -6
  109. package/dist/components/input.js +0 -29
  110. package/dist/components/input.js.map +0 -1
  111. package/dist/components/item.d.ts +0 -28
  112. package/dist/components/item.js +0 -220
  113. package/dist/components/item.js.map +0 -1
  114. package/dist/components/kbd.d.ts +0 -6
  115. package/dist/components/kbd.js +0 -39
  116. package/dist/components/kbd.js.map +0 -1
  117. package/dist/components/label.d.ts +0 -7
  118. package/dist/components/label.js +0 -32
  119. package/dist/components/label.js.map +0 -1
  120. package/dist/components/link.d.ts +0 -12
  121. package/dist/components/link.js +0 -51
  122. package/dist/components/link.js.map +0 -1
  123. package/dist/components/menubar.d.ts +0 -29
  124. package/dist/components/menubar.js +0 -261
  125. package/dist/components/menubar.js.map +0 -1
  126. package/dist/components/mesob-context.d.ts +0 -34
  127. package/dist/components/mesob-context.js +0 -53
  128. package/dist/components/mesob-context.js.map +0 -1
  129. package/dist/components/mesob-logo.d.ts +0 -13
  130. package/dist/components/mesob-logo.js +0 -80
  131. package/dist/components/mesob-logo.js.map +0 -1
  132. package/dist/components/navigation-menu.d.ts +0 -18
  133. package/dist/components/navigation-menu.js +0 -178
  134. package/dist/components/navigation-menu.js.map +0 -1
  135. package/dist/components/page/index.d.ts +0 -46
  136. package/dist/components/page/index.js +0 -205
  137. package/dist/components/page/index.js.map +0 -1
  138. package/dist/components/pagination.d.ts +0 -18
  139. package/dist/components/pagination.js +0 -160
  140. package/dist/components/pagination.js.map +0 -1
  141. package/dist/components/popover.d.ts +0 -10
  142. package/dist/components/popover.js +0 -54
  143. package/dist/components/popover.js.map +0 -1
  144. package/dist/components/powered-by.d.ts +0 -8
  145. package/dist/components/powered-by.js +0 -114
  146. package/dist/components/powered-by.js.map +0 -1
  147. package/dist/components/progress.d.ts +0 -7
  148. package/dist/components/progress.js +0 -41
  149. package/dist/components/progress.js.map +0 -1
  150. package/dist/components/radio-group.d.ts +0 -8
  151. package/dist/components/radio-group.js +0 -55
  152. package/dist/components/radio-group.js.map +0 -1
  153. package/dist/components/resizable.d.ts +0 -11
  154. package/dist/components/resizable.js +0 -58
  155. package/dist/components/resizable.js.map +0 -1
  156. package/dist/components/scroll-area.d.ts +0 -8
  157. package/dist/components/scroll-area.js +0 -70
  158. package/dist/components/scroll-area.js.map +0 -1
  159. package/dist/components/section/index.d.ts +0 -14
  160. package/dist/components/section/index.js +0 -147
  161. package/dist/components/section/index.js.map +0 -1
  162. package/dist/components/select.d.ts +0 -18
  163. package/dist/components/select.js +0 -181
  164. package/dist/components/select.js.map +0 -1
  165. package/dist/components/separator.d.ts +0 -7
  166. package/dist/components/separator.js +0 -36
  167. package/dist/components/separator.js.map +0 -1
  168. package/dist/components/sheet.d.ts +0 -16
  169. package/dist/components/sheet.js +0 -136
  170. package/dist/components/sheet.js.map +0 -1
  171. package/dist/components/shell.d.ts +0 -13
  172. package/dist/components/shell.js +0 -558
  173. package/dist/components/shell.js.map +0 -1
  174. package/dist/components/sidebar-context.d.ts +0 -19
  175. package/dist/components/sidebar-context.js +0 -17
  176. package/dist/components/sidebar-context.js.map +0 -1
  177. package/dist/components/sidebar.d.ts +0 -66
  178. package/dist/components/sidebar.js +0 -951
  179. package/dist/components/sidebar.js.map +0 -1
  180. package/dist/components/skeleton.d.ts +0 -5
  181. package/dist/components/skeleton.js +0 -23
  182. package/dist/components/skeleton.js.map +0 -1
  183. package/dist/components/slider.d.ts +0 -7
  184. package/dist/components/slider.js +0 -76
  185. package/dist/components/slider.js.map +0 -1
  186. package/dist/components/sonner.d.ts +0 -7
  187. package/dist/components/sonner.js +0 -43
  188. package/dist/components/sonner.js.map +0 -1
  189. package/dist/components/spinner.d.ts +0 -6
  190. package/dist/components/spinner.js +0 -28
  191. package/dist/components/spinner.js.map +0 -1
  192. package/dist/components/spotlight-search.d.ts +0 -25
  193. package/dist/components/spotlight-search.js +0 -395
  194. package/dist/components/spotlight-search.js.map +0 -1
  195. package/dist/components/switch.d.ts +0 -7
  196. package/dist/components/switch.js +0 -41
  197. package/dist/components/switch.js.map +0 -1
  198. package/dist/components/table.d.ts +0 -13
  199. package/dist/components/table.js +0 -124
  200. package/dist/components/table.js.map +0 -1
  201. package/dist/components/tabs.d.ts +0 -10
  202. package/dist/components/tabs.js +0 -77
  203. package/dist/components/tabs.js.map +0 -1
  204. package/dist/components/textarea.d.ts +0 -6
  205. package/dist/components/textarea.js +0 -26
  206. package/dist/components/textarea.js.map +0 -1
  207. package/dist/components/theme-toggle.d.ts +0 -8
  208. package/dist/components/theme-toggle.js +0 -94
  209. package/dist/components/theme-toggle.js.map +0 -1
  210. package/dist/components/toggle-group.d.ts +0 -14
  211. package/dist/components/toggle-group.js +0 -102
  212. package/dist/components/toggle-group.js.map +0 -1
  213. package/dist/components/toggle.d.ts +0 -13
  214. package/dist/components/toggle.js +0 -53
  215. package/dist/components/toggle.js.map +0 -1
  216. package/dist/components/tooltip.d.ts +0 -10
  217. package/dist/components/tooltip.js +0 -66
  218. package/dist/components/tooltip.js.map +0 -1
  219. package/dist/hooks/use-mobile.d.ts +0 -3
  220. package/dist/hooks/use-mobile.js +0 -22
  221. package/dist/hooks/use-mobile.js.map +0 -1
  222. package/dist/hooks/use-router.d.ts +0 -7
  223. package/dist/hooks/use-router.js +0 -36
  224. package/dist/hooks/use-router.js.map +0 -1
  225. package/dist/hooks/use-translation.d.ts +0 -5
  226. package/dist/hooks/use-translation.js +0 -42
  227. package/dist/hooks/use-translation.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ export { u as useEntityPagination, a as useEntityParams } from './use-entity-params-nqD69tdX.js';
2
+ import 'nuqs';
3
+
4
+ declare function useIsMobile(): boolean;
5
+
6
+ export { useIsMobile };
package/dist/hooks.js ADDED
@@ -0,0 +1,85 @@
1
+ // src/components/entity/use-entity-pagination.ts
2
+ function useEntityPagination({
3
+ items,
4
+ total,
5
+ pageSize
6
+ }) {
7
+ const totalCount = Number(total ?? items.length);
8
+ const pageCount = Math.ceil(totalCount / pageSize);
9
+ return {
10
+ total: totalCount,
11
+ pageCount,
12
+ hasData: items.length > 0,
13
+ isEmpty: totalCount === 0
14
+ };
15
+ }
16
+
17
+ // src/components/entity/use-entity-params.ts
18
+ import { parseAsInteger, parseAsString, useQueryStates } from "nuqs";
19
+ import { useMemo } from "react";
20
+ function useEntityParams(config = {}) {
21
+ const {
22
+ searchKey = "search",
23
+ searchParamName,
24
+ defaultSort = "createdAt",
25
+ defaultOrder = "desc",
26
+ defaultPageSize = 10
27
+ } = config;
28
+ const [params, setParams] = useQueryStates({
29
+ ...searchKey && {
30
+ [searchKey]: parseAsString.withDefault("")
31
+ },
32
+ view: parseAsString.withDefault("table"),
33
+ page: parseAsInteger.withDefault(1),
34
+ pageSize: parseAsInteger.withDefault(defaultPageSize),
35
+ filter: parseAsString,
36
+ sort: parseAsString.withDefault(defaultSort),
37
+ order: parseAsString.withDefault(defaultOrder)
38
+ });
39
+ const queryConfig = useMemo(
40
+ () => ({
41
+ params: {
42
+ query: {
43
+ page: params.page,
44
+ limit: params.pageSize,
45
+ ...searchKey && params[searchKey] && {
46
+ [searchParamName || (searchKey === "search" ? "search" : "handle")]: params[searchKey]
47
+ },
48
+ ...params.filter && { filter: params.filter },
49
+ ...params.sort && { sort: params.sort, order: params.order }
50
+ }
51
+ }
52
+ }),
53
+ [params, searchKey, searchParamName]
54
+ );
55
+ return {
56
+ params,
57
+ setParams,
58
+ queryConfig
59
+ };
60
+ }
61
+
62
+ // src/hooks/use-mobile.ts
63
+ import * as React from "react";
64
+ var MOBILE_BREAKPOINT = 768;
65
+ function useIsMobile() {
66
+ const [isMobile, setIsMobile] = React.useState(
67
+ void 0
68
+ );
69
+ React.useEffect(() => {
70
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
71
+ const onChange = () => {
72
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
73
+ };
74
+ mql.addEventListener("change", onChange);
75
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
76
+ return () => mql.removeEventListener("change", onChange);
77
+ }, []);
78
+ return !!isMobile;
79
+ }
80
+ export {
81
+ useEntityPagination,
82
+ useEntityParams,
83
+ useIsMobile
84
+ };
85
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/entity/use-entity-pagination.ts","../src/components/entity/use-entity-params.ts","../src/hooks/use-mobile.ts"],"sourcesContent":["type PaginationData = {\n items: unknown[];\n total?: number | string | null;\n pageSize: number;\n};\n\nexport function useEntityPagination({\n items,\n total,\n pageSize,\n}: PaginationData) {\n const totalCount = Number(total ?? items.length);\n const pageCount = Math.ceil(totalCount / pageSize);\n\n return {\n total: totalCount,\n pageCount,\n hasData: items.length > 0,\n isEmpty: totalCount === 0,\n };\n}\n","'use client';\n\nimport { parseAsInteger, parseAsString, useQueryStates } from 'nuqs';\nimport { useMemo } from 'react';\n\ntype EntityParamsConfig = {\n searchKey?: string;\n searchParamName?: string;\n defaultSort?: string;\n defaultOrder?: 'asc' | 'desc';\n defaultPageSize?: number;\n};\n\nexport function useEntityParams(config: EntityParamsConfig = {}) {\n const {\n searchKey = 'search',\n searchParamName,\n defaultSort = 'createdAt',\n defaultOrder = 'desc',\n defaultPageSize = 10,\n } = config;\n\n const [params, setParams] = useQueryStates({\n ...(searchKey && {\n [searchKey]: parseAsString.withDefault(''),\n }),\n view: parseAsString.withDefault('table'),\n page: parseAsInteger.withDefault(1),\n pageSize: parseAsInteger.withDefault(defaultPageSize),\n filter: parseAsString,\n sort: parseAsString.withDefault(defaultSort),\n order: parseAsString.withDefault(defaultOrder),\n });\n\n const queryConfig = useMemo(\n () => ({\n params: {\n query: {\n page: params.page,\n limit: params.pageSize,\n ...(searchKey &&\n (params as Record<string, string | number | null | undefined>)[\n searchKey\n ] && {\n [searchParamName ||\n (searchKey === 'search' ? 'search' : 'handle')]: (\n params as Record<string, string | number | null | undefined>\n )[searchKey],\n }),\n ...(params.filter && { filter: params.filter }),\n ...(params.sort && { sort: params.sort, order: params.order }),\n },\n },\n }),\n [params, searchKey, searchParamName],\n );\n\n return {\n params,\n setParams,\n queryConfig,\n };\n}\n","import * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n"],"mappings":";AAMO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,aAAa,OAAO,SAAS,MAAM,MAAM;AAC/C,QAAM,YAAY,KAAK,KAAK,aAAa,QAAQ;AAEjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA,SAAS,MAAM,SAAS;AAAA,IACxB,SAAS,eAAe;AAAA,EAC1B;AACF;;;AClBA,SAAS,gBAAgB,eAAe,sBAAsB;AAC9D,SAAS,eAAe;AAUjB,SAAS,gBAAgB,SAA6B,CAAC,GAAG;AAC/D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,IACf,kBAAkB;AAAA,EACpB,IAAI;AAEJ,QAAM,CAAC,QAAQ,SAAS,IAAI,eAAe;AAAA,IACzC,GAAI,aAAa;AAAA,MACf,CAAC,SAAS,GAAG,cAAc,YAAY,EAAE;AAAA,IAC3C;AAAA,IACA,MAAM,cAAc,YAAY,OAAO;AAAA,IACvC,MAAM,eAAe,YAAY,CAAC;AAAA,IAClC,UAAU,eAAe,YAAY,eAAe;AAAA,IACpD,QAAQ;AAAA,IACR,MAAM,cAAc,YAAY,WAAW;AAAA,IAC3C,OAAO,cAAc,YAAY,YAAY;AAAA,EAC/C,CAAC;AAED,QAAM,cAAc;AAAA,IAClB,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,MAAM,OAAO;AAAA,UACb,OAAO,OAAO;AAAA,UACd,GAAI,aACD,OACC,SACF,KAAK;AAAA,YACH,CAAC,oBACE,cAAc,WAAW,WAAW,SAAS,GAC9C,OACA,SAAS;AAAA,UACb;AAAA,UACF,GAAI,OAAO,UAAU,EAAE,QAAQ,OAAO,OAAO;AAAA,UAC7C,GAAI,OAAO,QAAQ,EAAE,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,WAAW,eAAe;AAAA,EACrC;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC9DA,YAAY,WAAW;AAEvB,IAAM,oBAAoB;AAEnB,SAAS,cAAc;AAC5B,QAAM,CAAC,UAAU,WAAW,IAAU;AAAA,IACpC;AAAA,EACF;AAEA,EAAM,gBAAU,MAAM;AACpB,UAAM,MAAM,OAAO,WAAW,eAAe,oBAAoB,CAAC,KAAK;AACvE,UAAM,WAAW,MAAM;AACrB,kBAAY,OAAO,aAAa,iBAAiB;AAAA,IACnD;AACA,QAAI,iBAAiB,UAAU,QAAQ;AACvC,gBAAY,OAAO,aAAa,iBAAiB;AACjD,WAAO,MAAM,IAAI,oBAAoB,UAAU,QAAQ;AAAA,EACzD,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,CAAC;AACX;","names":[]}
@@ -0,0 +1,20 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { createNavigation } from 'next-intl/navigation';
3
+ import { ReactNode } from 'react';
4
+
5
+ type Navigation = ReturnType<typeof createNavigation>;
6
+ type MesobContextValue = {
7
+ navigation: Navigation;
8
+ linkComponent: Navigation['Link'];
9
+ locale: string;
10
+ t?: (key: string, params?: Record<string, string | number>) => string;
11
+ };
12
+ type MesobProviderProps = {
13
+ children: ReactNode;
14
+ routing: Parameters<typeof createNavigation>[0];
15
+ linkComponent?: Navigation['Link'];
16
+ };
17
+ declare function MesobProvider({ children, routing, linkComponent: linkComponentProp, }: MesobProviderProps): react_jsx_runtime.JSX.Element;
18
+ declare function useMesob(): MesobContextValue | null;
19
+
20
+ export { MesobProvider, type MesobProviderProps, useMesob };
@@ -0,0 +1,61 @@
1
+ // src/provider/mesob-provider.tsx
2
+ import { useLocale } from "next-intl";
3
+ import { createNavigation } from "next-intl/navigation";
4
+ import { createContext, useContext, useMemo } from "react";
5
+
6
+ // src/components/ui/tooltip.tsx
7
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
8
+
9
+ // src/lib/utils.ts
10
+ import { clsx } from "clsx";
11
+ import { twMerge } from "tailwind-merge";
12
+
13
+ // src/components/ui/tooltip.tsx
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ function TooltipProvider({
16
+ delayDuration = 0,
17
+ ...props
18
+ }) {
19
+ return /* @__PURE__ */ jsx(
20
+ TooltipPrimitive.Provider,
21
+ {
22
+ "data-slot": "tooltip-provider",
23
+ delayDuration,
24
+ ...props
25
+ }
26
+ );
27
+ }
28
+
29
+ // src/provider/mesob-provider.tsx
30
+ import { jsx as jsx2 } from "react/jsx-runtime";
31
+ var MesobContext = createContext(null);
32
+ var MESOB_ERR = "[MesobProvider]";
33
+ function MesobProvider({
34
+ children,
35
+ routing,
36
+ linkComponent: linkComponentProp
37
+ }) {
38
+ if (!routing) {
39
+ throw new Error(`${MESOB_ERR} routing is required`);
40
+ }
41
+ const locale = useLocale();
42
+ const navigation = useMemo(() => createNavigation(routing), [routing]);
43
+ const value = useMemo(() => {
44
+ const linkComponent = linkComponentProp ?? navigation?.Link;
45
+ if (!linkComponent) {
46
+ throw new Error(
47
+ `${MESOB_ERR} linkComponent or valid createNavigation required`
48
+ );
49
+ }
50
+ return { navigation, linkComponent, locale };
51
+ }, [navigation, linkComponentProp, locale]);
52
+ return /* @__PURE__ */ jsx2(MesobContext.Provider, { value, children: /* @__PURE__ */ jsx2(TooltipProvider, { delayDuration: 0, children }) });
53
+ }
54
+ function useMesob() {
55
+ return useContext(MesobContext);
56
+ }
57
+ export {
58
+ MesobProvider,
59
+ useMesob
60
+ };
61
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/provider/mesob-provider.tsx","../src/components/ui/tooltip.tsx","../src/lib/utils.ts"],"sourcesContent":["'use client';\n\nimport { useLocale } from 'next-intl';\nimport { createNavigation } from 'next-intl/navigation';\nimport { createContext, type ReactNode, useContext, useMemo } from 'react';\nimport { TooltipProvider } from '../components/ui/tooltip';\n\ntype Navigation = ReturnType<typeof createNavigation>;\n\ntype MesobContextValue = {\n navigation: Navigation;\n linkComponent: Navigation['Link'];\n locale: string;\n t?: (key: string, params?: Record<string, string | number>) => string;\n};\n\nconst MesobContext = createContext<MesobContextValue | null>(null);\n\nconst MESOB_ERR = '[MesobProvider]';\n\nexport type MesobProviderProps = {\n children: ReactNode;\n routing: Parameters<typeof createNavigation>[0];\n linkComponent?: Navigation['Link'];\n};\n\nexport function MesobProvider({\n children,\n routing,\n linkComponent: linkComponentProp,\n}: MesobProviderProps) {\n if (!routing) {\n throw new Error(`${MESOB_ERR} routing is required`);\n }\n\n const locale = useLocale();\n const navigation = useMemo(() => createNavigation(routing), [routing]);\n\n const value = useMemo(() => {\n const linkComponent = linkComponentProp ?? navigation?.Link;\n if (!linkComponent) {\n throw new Error(\n `${MESOB_ERR} linkComponent or valid createNavigation required`,\n );\n }\n return { navigation, linkComponent, locale };\n }, [navigation, linkComponentProp, locale]);\n\n return (\n <MesobContext.Provider value={value}>\n <TooltipProvider delayDuration={0}>{children}</TooltipProvider>\n </MesobContext.Provider>\n );\n}\n\nexport function useMesob(): MesobContextValue | null {\n return useContext(MesobContext);\n}\n","'use client';\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type * as React from 'react';\nimport { cn } from '../../lib/utils';\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 { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAEA,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AACjC,SAAS,eAA+B,YAAY,eAAe;;;ACFnE,YAAY,sBAAsB;;;ACFlC,SAA0B,YAAY;AACtC,SAAS,eAAe;;;ADUpB,cAiCE,YAjCF;AALJ,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ADiCM,gBAAAA,YAAA;AAlCN,IAAM,eAAe,cAAwC,IAAI;AAEjE,IAAM,YAAY;AAQX,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,eAAe;AACjB,GAAuB;AACrB,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,GAAG,SAAS,sBAAsB;AAAA,EACpD;AAEA,QAAM,SAAS,UAAU;AACzB,QAAM,aAAa,QAAQ,MAAM,iBAAiB,OAAO,GAAG,CAAC,OAAO,CAAC;AAErE,QAAM,QAAQ,QAAQ,MAAM;AAC1B,UAAM,gBAAgB,qBAAqB,YAAY;AACvD,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI;AAAA,QACR,GAAG,SAAS;AAAA,MACd;AAAA,IACF;AACA,WAAO,EAAE,YAAY,eAAe,OAAO;AAAA,EAC7C,GAAG,CAAC,YAAY,mBAAmB,MAAM,CAAC;AAE1C,SACE,gBAAAA,KAAC,aAAa,UAAb,EAAsB,OACrB,0BAAAA,KAAC,mBAAgB,eAAe,GAAI,UAAS,GAC/C;AAEJ;AAEO,SAAS,WAAqC;AACnD,SAAO,WAAW,YAAY;AAChC;","names":["jsx"]}
@@ -0,0 +1,82 @@
1
+ import * as nuqs from 'nuqs';
2
+
3
+ type PaginationData = {
4
+ items: unknown[];
5
+ total?: number | string | null;
6
+ pageSize: number;
7
+ };
8
+ declare function useEntityPagination({ items, total, pageSize, }: PaginationData): {
9
+ total: number;
10
+ pageCount: number;
11
+ hasData: boolean;
12
+ isEmpty: boolean;
13
+ };
14
+
15
+ type EntityParamsConfig = {
16
+ searchKey?: string;
17
+ searchParamName?: string;
18
+ defaultSort?: string;
19
+ defaultOrder?: 'asc' | 'desc';
20
+ defaultPageSize?: number;
21
+ };
22
+ declare function useEntityParams(config?: EntityParamsConfig): {
23
+ params: nuqs.Values<{
24
+ view: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
25
+ readonly defaultValue: string;
26
+ parseServerSide(value: string | string[] | undefined): string;
27
+ };
28
+ page: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
29
+ readonly defaultValue: number;
30
+ parseServerSide(value: string | string[] | undefined): number;
31
+ };
32
+ pageSize: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
33
+ readonly defaultValue: number;
34
+ parseServerSide(value: string | string[] | undefined): number;
35
+ };
36
+ filter: nuqs.SingleParserBuilder<string>;
37
+ sort: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
38
+ readonly defaultValue: string;
39
+ parseServerSide(value: string | string[] | undefined): string;
40
+ };
41
+ order: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
42
+ readonly defaultValue: string;
43
+ parseServerSide(value: string | string[] | undefined): string;
44
+ };
45
+ }>;
46
+ setParams: nuqs.SetValues<{
47
+ view: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
48
+ readonly defaultValue: string;
49
+ parseServerSide(value: string | string[] | undefined): string;
50
+ };
51
+ page: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
52
+ readonly defaultValue: number;
53
+ parseServerSide(value: string | string[] | undefined): number;
54
+ };
55
+ pageSize: Omit<nuqs.SingleParserBuilder<number>, "parseServerSide"> & {
56
+ readonly defaultValue: number;
57
+ parseServerSide(value: string | string[] | undefined): number;
58
+ };
59
+ filter: nuqs.SingleParserBuilder<string>;
60
+ sort: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
61
+ readonly defaultValue: string;
62
+ parseServerSide(value: string | string[] | undefined): string;
63
+ };
64
+ order: Omit<nuqs.SingleParserBuilder<string>, "parseServerSide"> & {
65
+ readonly defaultValue: string;
66
+ parseServerSide(value: string | string[] | undefined): string;
67
+ };
68
+ }>;
69
+ queryConfig: {
70
+ params: {
71
+ query: {
72
+ sort?: string | undefined;
73
+ order?: string | undefined;
74
+ filter?: string | undefined;
75
+ page: number;
76
+ limit: number;
77
+ };
78
+ };
79
+ };
80
+ };
81
+
82
+ export { useEntityParams as a, useEntityPagination as u };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mesob/ui",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -10,34 +10,22 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "default": "./dist/index.js"
12
12
  },
13
+ "./components": {
14
+ "types": "./dist/components.d.ts",
15
+ "default": "./dist/components.js"
16
+ },
17
+ "./providers": {
18
+ "types": "./dist/providers.d.ts",
19
+ "default": "./dist/providers.js"
20
+ },
21
+ "./hooks": {
22
+ "types": "./dist/hooks.d.ts",
23
+ "default": "./dist/hooks.js"
24
+ },
13
25
  "./postcss.config": "./postcss.config.mjs",
14
26
  "./lib/*": {
15
27
  "types": "./dist/lib/*.d.ts",
16
28
  "default": "./dist/lib/*.js"
17
- },
18
- "./components/*": {
19
- "types": "./dist/components/*.d.ts",
20
- "default": "./dist/components/*.js"
21
- },
22
- "./hooks/*": {
23
- "types": "./dist/hooks/*.d.ts",
24
- "default": "./dist/hooks/*.js"
25
- },
26
- "./components/data-table": {
27
- "types": "./dist/components/data-table/index.d.ts",
28
- "default": "./dist/components/data-table/index.js"
29
- },
30
- "./components/entity": {
31
- "types": "./dist/components/entity/index.d.ts",
32
- "default": "./dist/components/entity/index.js"
33
- },
34
- "./components/page": {
35
- "types": "./dist/components/page/index.d.ts",
36
- "default": "./dist/components/page/index.js"
37
- },
38
- "./components/section": {
39
- "types": "./dist/components/section/index.d.ts",
40
- "default": "./dist/components/section/index.js"
41
29
  }
42
30
  },
43
31
  "files": [
@@ -113,8 +101,7 @@
113
101
  "access": "public"
114
102
  },
115
103
  "scripts": {
116
- "build": "tsup",
117
- "prebuild": "tsx scripts/generate-exports.ts",
104
+ "build": "tsup && node scripts/prepend-use-client.mjs",
118
105
  "dev": "tsup --watch",
119
106
  "lint": "biome check --write .",
120
107
  "check-types": "tsc --noEmit"
@@ -1,10 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
- import * as React from 'react';
4
-
5
- declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime.JSX.Element;
7
- declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
8
- declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime.JSX.Element;
9
-
10
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -1,74 +0,0 @@
1
- "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/accordion.tsx
11
- import * as AccordionPrimitive from "@radix-ui/react-accordion";
12
- import { IconChevronDown } from "@tabler/icons-react";
13
- import { jsx, jsxs } from "react/jsx-runtime";
14
- function Accordion({
15
- ...props
16
- }) {
17
- return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
18
- }
19
- function AccordionItem({
20
- className,
21
- ...props
22
- }) {
23
- return /* @__PURE__ */ jsx(
24
- AccordionPrimitive.Item,
25
- {
26
- "data-slot": "accordion-item",
27
- className: cn("border-b last:border-b-0", className),
28
- ...props
29
- }
30
- );
31
- }
32
- function AccordionTrigger({
33
- className,
34
- children,
35
- ...props
36
- }) {
37
- return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
38
- AccordionPrimitive.Trigger,
39
- {
40
- "data-slot": "accordion-trigger",
41
- className: cn(
42
- "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
43
- className
44
- ),
45
- ...props,
46
- children: [
47
- children,
48
- /* @__PURE__ */ jsx(IconChevronDown, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
49
- ]
50
- }
51
- ) });
52
- }
53
- function AccordionContent({
54
- className,
55
- children,
56
- ...props
57
- }) {
58
- return /* @__PURE__ */ jsx(
59
- AccordionPrimitive.Content,
60
- {
61
- "data-slot": "accordion-content",
62
- className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
63
- ...props,
64
- children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
65
- }
66
- );
67
- }
68
- export {
69
- Accordion,
70
- AccordionContent,
71
- AccordionItem,
72
- AccordionTrigger
73
- };
74
- //# sourceMappingURL=accordion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/accordion.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","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { IconChevronDown } from '@tabler/icons-react';\nimport type * as React from 'react';\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <IconChevronDown className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACFA,YAAY,wBAAwB;AACpC,SAAS,uBAAuB;AAMvB,cAuBH,YAvBG;AAHT,SAAS,UAAU;AAAA,EACjB,GAAG;AACL,GAAyD;AACvD,SAAO,oBAAoB,yBAAnB,EAAwB,aAAU,aAAa,GAAG,OAAO;AACnE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE,oBAAoB,2BAAnB,EAA0B,WAAU,QACnC;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,mBAAgB,WAAU,+GAA8G;AAAA;AAAA;AAAA,EAC3I,GACF;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA4D;AAC1D,SACE;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,8BAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GAAI,UAAS;AAAA;AAAA,EACxD;AAEJ;","names":[]}
@@ -1,17 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
3
- import * as React from 'react';
4
-
5
- declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
7
- declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
8
- declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
9
- declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
10
- declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
11
- declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
12
- declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
13
- declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
14
- declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime.JSX.Element;
15
- declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime.JSX.Element;
16
-
17
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
@@ -1,187 +0,0 @@
1
- "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/button.tsx
11
- import { Slot } from "@radix-ui/react-slot";
12
- import { cva } from "class-variance-authority";
13
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
- var buttonVariants = cva(
15
- "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",
16
- {
17
- variants: {
18
- variant: {
19
- default: "bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400",
20
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
21
- 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",
22
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400",
23
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
24
- link: "text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline"
25
- },
26
- size: {
27
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
28
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
29
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
30
- icon: "size-9",
31
- "icon-sm": "size-8",
32
- "icon-lg": "size-10"
33
- }
34
- },
35
- defaultVariants: {
36
- variant: "default",
37
- size: "default"
38
- }
39
- }
40
- );
41
-
42
- // src/components/alert-dialog.tsx
43
- import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
44
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
45
- function AlertDialog({
46
- ...props
47
- }) {
48
- return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
49
- }
50
- function AlertDialogTrigger({
51
- ...props
52
- }) {
53
- return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
54
- }
55
- function AlertDialogPortal({
56
- ...props
57
- }) {
58
- return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props });
59
- }
60
- function AlertDialogOverlay({
61
- className,
62
- ...props
63
- }) {
64
- return /* @__PURE__ */ jsx2(
65
- AlertDialogPrimitive.Overlay,
66
- {
67
- "data-slot": "alert-dialog-overlay",
68
- className: cn(
69
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=open]:opacity-100 fixed inset-0 z-50 bg-[var(--overlay,oklch(0_0_0/0.5))]",
70
- className
71
- ),
72
- ...props
73
- }
74
- );
75
- }
76
- function AlertDialogContent({
77
- className,
78
- ...props
79
- }) {
80
- return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
81
- /* @__PURE__ */ jsx2(AlertDialogOverlay, {}),
82
- /* @__PURE__ */ jsx2(
83
- AlertDialogPrimitive.Content,
84
- {
85
- "data-slot": "alert-dialog-content",
86
- className: cn(
87
- "bg-background text-foreground border-border 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 fixed top-[50%] left-[50%] z-[51] grid w-full min-w-[280px] max-w-[calc(100vw-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:min-w-[320px] sm:max-w-[32rem]",
88
- className
89
- ),
90
- ...props
91
- }
92
- )
93
- ] });
94
- }
95
- function AlertDialogHeader({
96
- className,
97
- ...props
98
- }) {
99
- return /* @__PURE__ */ jsx2(
100
- "div",
101
- {
102
- "data-slot": "alert-dialog-header",
103
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
104
- ...props
105
- }
106
- );
107
- }
108
- function AlertDialogFooter({
109
- className,
110
- ...props
111
- }) {
112
- return /* @__PURE__ */ jsx2(
113
- "div",
114
- {
115
- "data-slot": "alert-dialog-footer",
116
- className: cn(
117
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
118
- className
119
- ),
120
- ...props
121
- }
122
- );
123
- }
124
- function AlertDialogTitle({
125
- className,
126
- ...props
127
- }) {
128
- return /* @__PURE__ */ jsx2(
129
- AlertDialogPrimitive.Title,
130
- {
131
- "data-slot": "alert-dialog-title",
132
- className: cn("text-lg font-semibold", className),
133
- ...props
134
- }
135
- );
136
- }
137
- function AlertDialogDescription({
138
- className,
139
- ...props
140
- }) {
141
- return /* @__PURE__ */ jsx2(
142
- AlertDialogPrimitive.Description,
143
- {
144
- "data-slot": "alert-dialog-description",
145
- className: cn("text-muted-foreground text-sm", className),
146
- ...props
147
- }
148
- );
149
- }
150
- function AlertDialogAction({
151
- className,
152
- ...props
153
- }) {
154
- return /* @__PURE__ */ jsx2(
155
- AlertDialogPrimitive.Action,
156
- {
157
- className: cn(buttonVariants(), className),
158
- ...props
159
- }
160
- );
161
- }
162
- function AlertDialogCancel({
163
- className,
164
- ...props
165
- }) {
166
- return /* @__PURE__ */ jsx2(
167
- AlertDialogPrimitive.Cancel,
168
- {
169
- className: cn(buttonVariants({ variant: "outline" }), className),
170
- ...props
171
- }
172
- );
173
- }
174
- export {
175
- AlertDialog,
176
- AlertDialogAction,
177
- AlertDialogCancel,
178
- AlertDialogContent,
179
- AlertDialogDescription,
180
- AlertDialogFooter,
181
- AlertDialogHeader,
182
- AlertDialogOverlay,
183
- AlertDialogPortal,
184
- AlertDialogTitle,
185
- AlertDialogTrigger
186
- };
187
- //# sourceMappingURL=alert-dialog.js.map