@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
@@ -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.3",
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