@jameskabz/nextcraft-ui 0.6.5 → 0.6.6

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 (357) hide show
  1. package/dist/index.cjs +3448 -103
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +746 -54
  4. package/dist/index.d.ts +746 -54
  5. package/dist/index.js +3388 -50
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -26
  8. package/dist/components/craft-alert.cjs +0 -69
  9. package/dist/components/craft-alert.cjs.map +0 -1
  10. package/dist/components/craft-alert.d.cts +0 -16
  11. package/dist/components/craft-alert.d.ts +0 -16
  12. package/dist/components/craft-alert.js +0 -45
  13. package/dist/components/craft-alert.js.map +0 -1
  14. package/dist/components/craft-badge.cjs +0 -54
  15. package/dist/components/craft-badge.cjs.map +0 -1
  16. package/dist/components/craft-badge.d.cts +0 -12
  17. package/dist/components/craft-badge.d.ts +0 -12
  18. package/dist/components/craft-badge.js +0 -30
  19. package/dist/components/craft-badge.js.map +0 -1
  20. package/dist/components/craft-button.cjs +0 -66
  21. package/dist/components/craft-button.cjs.map +0 -1
  22. package/dist/components/craft-button.d.cts +0 -15
  23. package/dist/components/craft-button.d.ts +0 -15
  24. package/dist/components/craft-button.js +0 -42
  25. package/dist/components/craft-button.js.map +0 -1
  26. package/dist/components/craft-card.cjs +0 -63
  27. package/dist/components/craft-card.cjs.map +0 -1
  28. package/dist/components/craft-card.d.cts +0 -13
  29. package/dist/components/craft-card.d.ts +0 -13
  30. package/dist/components/craft-card.js +0 -39
  31. package/dist/components/craft-card.js.map +0 -1
  32. package/dist/components/craft-checkbox.cjs +0 -103
  33. package/dist/components/craft-checkbox.cjs.map +0 -1
  34. package/dist/components/craft-checkbox.d.cts +0 -16
  35. package/dist/components/craft-checkbox.d.ts +0 -16
  36. package/dist/components/craft-checkbox.js +0 -69
  37. package/dist/components/craft-checkbox.js.map +0 -1
  38. package/dist/components/craft-command-palette.cjs +0 -134
  39. package/dist/components/craft-command-palette.cjs.map +0 -1
  40. package/dist/components/craft-command-palette.d.cts +0 -28
  41. package/dist/components/craft-command-palette.d.ts +0 -28
  42. package/dist/components/craft-command-palette.js +0 -100
  43. package/dist/components/craft-command-palette.js.map +0 -1
  44. package/dist/components/craft-confirm-dialog.cjs +0 -114
  45. package/dist/components/craft-confirm-dialog.cjs.map +0 -1
  46. package/dist/components/craft-confirm-dialog.d.cts +0 -21
  47. package/dist/components/craft-confirm-dialog.d.ts +0 -21
  48. package/dist/components/craft-confirm-dialog.js +0 -80
  49. package/dist/components/craft-confirm-dialog.js.map +0 -1
  50. package/dist/components/craft-create-edit-drawer.cjs +0 -112
  51. package/dist/components/craft-create-edit-drawer.cjs.map +0 -1
  52. package/dist/components/craft-create-edit-drawer.d.cts +0 -28
  53. package/dist/components/craft-create-edit-drawer.d.ts +0 -28
  54. package/dist/components/craft-create-edit-drawer.js +0 -78
  55. package/dist/components/craft-create-edit-drawer.js.map +0 -1
  56. package/dist/components/craft-currency-input.cjs +0 -68
  57. package/dist/components/craft-currency-input.cjs.map +0 -1
  58. package/dist/components/craft-currency-input.d.cts +0 -14
  59. package/dist/components/craft-currency-input.d.ts +0 -14
  60. package/dist/components/craft-currency-input.js +0 -34
  61. package/dist/components/craft-currency-input.js.map +0 -1
  62. package/dist/components/craft-data-table.cjs +0 -407
  63. package/dist/components/craft-data-table.cjs.map +0 -1
  64. package/dist/components/craft-data-table.d.cts +0 -58
  65. package/dist/components/craft-data-table.d.ts +0 -58
  66. package/dist/components/craft-data-table.js +0 -373
  67. package/dist/components/craft-data-table.js.map +0 -1
  68. package/dist/components/craft-date-picker.cjs +0 -226
  69. package/dist/components/craft-date-picker.cjs.map +0 -1
  70. package/dist/components/craft-date-picker.d.cts +0 -17
  71. package/dist/components/craft-date-picker.d.ts +0 -17
  72. package/dist/components/craft-date-picker.js +0 -192
  73. package/dist/components/craft-date-picker.js.map +0 -1
  74. package/dist/components/craft-drawer.cjs +0 -126
  75. package/dist/components/craft-drawer.cjs.map +0 -1
  76. package/dist/components/craft-drawer.d.cts +0 -19
  77. package/dist/components/craft-drawer.d.ts +0 -19
  78. package/dist/components/craft-drawer.js +0 -92
  79. package/dist/components/craft-drawer.js.map +0 -1
  80. package/dist/components/craft-dropdown-menu.cjs +0 -127
  81. package/dist/components/craft-dropdown-menu.cjs.map +0 -1
  82. package/dist/components/craft-dropdown-menu.d.cts +0 -28
  83. package/dist/components/craft-dropdown-menu.d.ts +0 -28
  84. package/dist/components/craft-dropdown-menu.js +0 -93
  85. package/dist/components/craft-dropdown-menu.js.map +0 -1
  86. package/dist/components/craft-empty-state.cjs +0 -58
  87. package/dist/components/craft-empty-state.cjs.map +0 -1
  88. package/dist/components/craft-empty-state.d.cts +0 -14
  89. package/dist/components/craft-empty-state.d.ts +0 -14
  90. package/dist/components/craft-empty-state.js +0 -34
  91. package/dist/components/craft-empty-state.js.map +0 -1
  92. package/dist/components/craft-error-state.cjs +0 -60
  93. package/dist/components/craft-error-state.cjs.map +0 -1
  94. package/dist/components/craft-error-state.d.cts +0 -15
  95. package/dist/components/craft-error-state.d.ts +0 -15
  96. package/dist/components/craft-error-state.js +0 -36
  97. package/dist/components/craft-error-state.js.map +0 -1
  98. package/dist/components/craft-filter-bar.cjs +0 -76
  99. package/dist/components/craft-filter-bar.cjs.map +0 -1
  100. package/dist/components/craft-filter-bar.d.cts +0 -18
  101. package/dist/components/craft-filter-bar.d.ts +0 -18
  102. package/dist/components/craft-filter-bar.js +0 -52
  103. package/dist/components/craft-filter-bar.js.map +0 -1
  104. package/dist/components/craft-form-builder.cjs +0 -330
  105. package/dist/components/craft-form-builder.cjs.map +0 -1
  106. package/dist/components/craft-form-builder.d.cts +0 -57
  107. package/dist/components/craft-form-builder.d.ts +0 -57
  108. package/dist/components/craft-form-builder.js +0 -301
  109. package/dist/components/craft-form-builder.js.map +0 -1
  110. package/dist/components/craft-form-field.cjs +0 -301
  111. package/dist/components/craft-form-field.cjs.map +0 -1
  112. package/dist/components/craft-form-field.d.cts +0 -30
  113. package/dist/components/craft-form-field.d.ts +0 -30
  114. package/dist/components/craft-form-field.js +0 -280
  115. package/dist/components/craft-form-field.js.map +0 -1
  116. package/dist/components/craft-form.cjs +0 -114
  117. package/dist/components/craft-form.cjs.map +0 -1
  118. package/dist/components/craft-form.d.cts +0 -27
  119. package/dist/components/craft-form.d.ts +0 -27
  120. package/dist/components/craft-form.js +0 -80
  121. package/dist/components/craft-form.js.map +0 -1
  122. package/dist/components/craft-icon.cjs +0 -102
  123. package/dist/components/craft-icon.cjs.map +0 -1
  124. package/dist/components/craft-icon.d.cts +0 -19
  125. package/dist/components/craft-icon.d.ts +0 -19
  126. package/dist/components/craft-icon.js +0 -67
  127. package/dist/components/craft-icon.js.map +0 -1
  128. package/dist/components/craft-input.cjs +0 -78
  129. package/dist/components/craft-input.cjs.map +0 -1
  130. package/dist/components/craft-input.d.cts +0 -19
  131. package/dist/components/craft-input.d.ts +0 -19
  132. package/dist/components/craft-input.js +0 -44
  133. package/dist/components/craft-input.js.map +0 -1
  134. package/dist/components/craft-link.cjs +0 -70
  135. package/dist/components/craft-link.cjs.map +0 -1
  136. package/dist/components/craft-link.d.cts +0 -14
  137. package/dist/components/craft-link.d.ts +0 -14
  138. package/dist/components/craft-link.js +0 -36
  139. package/dist/components/craft-link.js.map +0 -1
  140. package/dist/components/craft-loading-state.cjs +0 -64
  141. package/dist/components/craft-loading-state.cjs.map +0 -1
  142. package/dist/components/craft-loading-state.d.cts +0 -13
  143. package/dist/components/craft-loading-state.d.ts +0 -13
  144. package/dist/components/craft-loading-state.js +0 -40
  145. package/dist/components/craft-loading-state.js.map +0 -1
  146. package/dist/components/craft-modal.cjs +0 -174
  147. package/dist/components/craft-modal.cjs.map +0 -1
  148. package/dist/components/craft-modal.d.cts +0 -19
  149. package/dist/components/craft-modal.d.ts +0 -19
  150. package/dist/components/craft-modal.js +0 -140
  151. package/dist/components/craft-modal.js.map +0 -1
  152. package/dist/components/craft-number-input.cjs +0 -63
  153. package/dist/components/craft-number-input.cjs.map +0 -1
  154. package/dist/components/craft-number-input.d.cts +0 -12
  155. package/dist/components/craft-number-input.d.ts +0 -12
  156. package/dist/components/craft-number-input.js +0 -29
  157. package/dist/components/craft-number-input.js.map +0 -1
  158. package/dist/components/craft-pagination.cjs +0 -130
  159. package/dist/components/craft-pagination.cjs.map +0 -1
  160. package/dist/components/craft-pagination.d.cts +0 -19
  161. package/dist/components/craft-pagination.d.ts +0 -19
  162. package/dist/components/craft-pagination.js +0 -106
  163. package/dist/components/craft-pagination.js.map +0 -1
  164. package/dist/components/craft-popover.cjs +0 -123
  165. package/dist/components/craft-popover.cjs.map +0 -1
  166. package/dist/components/craft-popover.d.cts +0 -20
  167. package/dist/components/craft-popover.d.ts +0 -20
  168. package/dist/components/craft-popover.js +0 -89
  169. package/dist/components/craft-popover.js.map +0 -1
  170. package/dist/components/craft-select.cjs +0 -84
  171. package/dist/components/craft-select.cjs.map +0 -1
  172. package/dist/components/craft-select.d.cts +0 -12
  173. package/dist/components/craft-select.d.ts +0 -12
  174. package/dist/components/craft-select.js +0 -50
  175. package/dist/components/craft-select.js.map +0 -1
  176. package/dist/components/craft-skeleton.cjs +0 -45
  177. package/dist/components/craft-skeleton.cjs.map +0 -1
  178. package/dist/components/craft-skeleton.d.cts +0 -10
  179. package/dist/components/craft-skeleton.d.ts +0 -10
  180. package/dist/components/craft-skeleton.js +0 -21
  181. package/dist/components/craft-skeleton.js.map +0 -1
  182. package/dist/components/craft-stat-card.cjs +0 -67
  183. package/dist/components/craft-stat-card.cjs.map +0 -1
  184. package/dist/components/craft-stat-card.d.cts +0 -17
  185. package/dist/components/craft-stat-card.d.ts +0 -17
  186. package/dist/components/craft-stat-card.js +0 -43
  187. package/dist/components/craft-stat-card.js.map +0 -1
  188. package/dist/components/craft-submit-button.cjs +0 -71
  189. package/dist/components/craft-submit-button.cjs.map +0 -1
  190. package/dist/components/craft-submit-button.d.cts +0 -13
  191. package/dist/components/craft-submit-button.d.ts +0 -13
  192. package/dist/components/craft-submit-button.js +0 -47
  193. package/dist/components/craft-submit-button.js.map +0 -1
  194. package/dist/components/craft-switch.cjs +0 -82
  195. package/dist/components/craft-switch.cjs.map +0 -1
  196. package/dist/components/craft-switch.d.cts +0 -14
  197. package/dist/components/craft-switch.d.ts +0 -14
  198. package/dist/components/craft-switch.js +0 -48
  199. package/dist/components/craft-switch.js.map +0 -1
  200. package/dist/components/craft-table-toolbar.cjs +0 -79
  201. package/dist/components/craft-table-toolbar.cjs.map +0 -1
  202. package/dist/components/craft-table-toolbar.d.cts +0 -19
  203. package/dist/components/craft-table-toolbar.d.ts +0 -19
  204. package/dist/components/craft-table-toolbar.js +0 -55
  205. package/dist/components/craft-table-toolbar.js.map +0 -1
  206. package/dist/components/craft-tabs.cjs +0 -105
  207. package/dist/components/craft-tabs.cjs.map +0 -1
  208. package/dist/components/craft-tabs.d.cts +0 -19
  209. package/dist/components/craft-tabs.d.ts +0 -19
  210. package/dist/components/craft-tabs.js +0 -71
  211. package/dist/components/craft-tabs.js.map +0 -1
  212. package/dist/components/craft-textarea.cjs +0 -69
  213. package/dist/components/craft-textarea.cjs.map +0 -1
  214. package/dist/components/craft-textarea.d.cts +0 -12
  215. package/dist/components/craft-textarea.d.ts +0 -12
  216. package/dist/components/craft-textarea.js +0 -35
  217. package/dist/components/craft-textarea.js.map +0 -1
  218. package/dist/components/craft-toast.cjs +0 -98
  219. package/dist/components/craft-toast.cjs.map +0 -1
  220. package/dist/components/craft-toast.d.cts +0 -24
  221. package/dist/components/craft-toast.d.ts +0 -24
  222. package/dist/components/craft-toast.js +0 -63
  223. package/dist/components/craft-toast.js.map +0 -1
  224. package/dist/components/craft-tooltip.cjs +0 -75
  225. package/dist/components/craft-tooltip.cjs.map +0 -1
  226. package/dist/components/craft-tooltip.d.cts +0 -13
  227. package/dist/components/craft-tooltip.d.ts +0 -13
  228. package/dist/components/craft-tooltip.js +0 -41
  229. package/dist/components/craft-tooltip.js.map +0 -1
  230. package/dist/components/forms/types.cjs +0 -17
  231. package/dist/components/forms/types.cjs.map +0 -1
  232. package/dist/components/forms/types.d.cts +0 -7
  233. package/dist/components/forms/types.d.ts +0 -7
  234. package/dist/components/forms/types.js +0 -1
  235. package/dist/components/forms/types.js.map +0 -1
  236. package/dist/components/glass-card.cjs +0 -64
  237. package/dist/components/glass-card.cjs.map +0 -1
  238. package/dist/components/glass-card.d.cts +0 -12
  239. package/dist/components/glass-card.d.ts +0 -12
  240. package/dist/components/glass-card.js +0 -40
  241. package/dist/components/glass-card.js.map +0 -1
  242. package/dist/components/layout/app-shell.cjs +0 -49
  243. package/dist/components/layout/app-shell.cjs.map +0 -1
  244. package/dist/components/layout/app-shell.d.cts +0 -10
  245. package/dist/components/layout/app-shell.d.ts +0 -10
  246. package/dist/components/layout/app-shell.js +0 -25
  247. package/dist/components/layout/app-shell.js.map +0 -1
  248. package/dist/components/layout/app-template.cjs +0 -104
  249. package/dist/components/layout/app-template.cjs.map +0 -1
  250. package/dist/components/layout/app-template.d.cts +0 -19
  251. package/dist/components/layout/app-template.d.ts +0 -19
  252. package/dist/components/layout/app-template.js +0 -70
  253. package/dist/components/layout/app-template.js.map +0 -1
  254. package/dist/components/layout/auth-layout.cjs +0 -65
  255. package/dist/components/layout/auth-layout.cjs.map +0 -1
  256. package/dist/components/layout/auth-layout.d.cts +0 -12
  257. package/dist/components/layout/auth-layout.d.ts +0 -12
  258. package/dist/components/layout/auth-layout.js +0 -41
  259. package/dist/components/layout/auth-layout.js.map +0 -1
  260. package/dist/components/layout/breadcrumbs.cjs +0 -39
  261. package/dist/components/layout/breadcrumbs.cjs.map +0 -1
  262. package/dist/components/layout/breadcrumbs.d.cts +0 -13
  263. package/dist/components/layout/breadcrumbs.d.ts +0 -13
  264. package/dist/components/layout/breadcrumbs.js +0 -15
  265. package/dist/components/layout/breadcrumbs.js.map +0 -1
  266. package/dist/components/layout/container.cjs +0 -45
  267. package/dist/components/layout/container.cjs.map +0 -1
  268. package/dist/components/layout/container.d.cts +0 -9
  269. package/dist/components/layout/container.d.ts +0 -9
  270. package/dist/components/layout/container.js +0 -21
  271. package/dist/components/layout/container.js.map +0 -1
  272. package/dist/components/layout/grid.cjs +0 -47
  273. package/dist/components/layout/grid.cjs.map +0 -1
  274. package/dist/components/layout/grid.d.cts +0 -10
  275. package/dist/components/layout/grid.d.ts +0 -10
  276. package/dist/components/layout/grid.js +0 -23
  277. package/dist/components/layout/grid.js.map +0 -1
  278. package/dist/components/layout/layout-config.cjs +0 -78
  279. package/dist/components/layout/layout-config.cjs.map +0 -1
  280. package/dist/components/layout/layout-config.d.cts +0 -92
  281. package/dist/components/layout/layout-config.d.ts +0 -92
  282. package/dist/components/layout/layout-config.js +0 -54
  283. package/dist/components/layout/layout-config.js.map +0 -1
  284. package/dist/components/layout/page-header.cjs +0 -52
  285. package/dist/components/layout/page-header.cjs.map +0 -1
  286. package/dist/components/layout/page-header.d.cts +0 -11
  287. package/dist/components/layout/page-header.d.ts +0 -11
  288. package/dist/components/layout/page-header.js +0 -28
  289. package/dist/components/layout/page-header.js.map +0 -1
  290. package/dist/components/layout/sidebar.cjs +0 -64
  291. package/dist/components/layout/sidebar.cjs.map +0 -1
  292. package/dist/components/layout/sidebar.d.cts +0 -17
  293. package/dist/components/layout/sidebar.d.ts +0 -17
  294. package/dist/components/layout/sidebar.js +0 -40
  295. package/dist/components/layout/sidebar.js.map +0 -1
  296. package/dist/components/layout/top-nav.cjs +0 -49
  297. package/dist/components/layout/top-nav.cjs.map +0 -1
  298. package/dist/components/layout/top-nav.d.cts +0 -11
  299. package/dist/components/layout/top-nav.d.ts +0 -11
  300. package/dist/components/layout/top-nav.js +0 -25
  301. package/dist/components/layout/top-nav.js.map +0 -1
  302. package/dist/components/layout/types.cjs +0 -29
  303. package/dist/components/layout/types.cjs.map +0 -1
  304. package/dist/components/layout/types.d.cts +0 -12
  305. package/dist/components/layout/types.d.ts +0 -12
  306. package/dist/components/layout/types.js +0 -5
  307. package/dist/components/layout/types.js.map +0 -1
  308. package/dist/components/table/types.cjs +0 -17
  309. package/dist/components/table/types.cjs.map +0 -1
  310. package/dist/components/table/types.d.cts +0 -7
  311. package/dist/components/table/types.d.ts +0 -7
  312. package/dist/components/table/types.js +0 -1
  313. package/dist/components/table/types.js.map +0 -1
  314. package/dist/components/theme-switcher.cjs +0 -72
  315. package/dist/components/theme-switcher.cjs.map +0 -1
  316. package/dist/components/theme-switcher.d.cts +0 -9
  317. package/dist/components/theme-switcher.d.ts +0 -9
  318. package/dist/components/theme-switcher.js +0 -48
  319. package/dist/components/theme-switcher.js.map +0 -1
  320. package/dist/craft/components.cjs +0 -123
  321. package/dist/craft/components.cjs.map +0 -1
  322. package/dist/craft/components.d.cts +0 -36
  323. package/dist/craft/components.d.ts +0 -36
  324. package/dist/craft/components.js +0 -67
  325. package/dist/craft/components.js.map +0 -1
  326. package/dist/craft/forms.cjs +0 -35
  327. package/dist/craft/forms.cjs.map +0 -1
  328. package/dist/craft/forms.d.cts +0 -7
  329. package/dist/craft/forms.d.ts +0 -7
  330. package/dist/craft/forms.js +0 -9
  331. package/dist/craft/forms.js.map +0 -1
  332. package/dist/craft/layout.cjs +0 -56
  333. package/dist/craft/layout.cjs.map +0 -1
  334. package/dist/craft/layout.d.cts +0 -12
  335. package/dist/craft/layout.d.ts +0 -12
  336. package/dist/craft/layout.js +0 -23
  337. package/dist/craft/layout.js.map +0 -1
  338. package/dist/craft/table.cjs +0 -38
  339. package/dist/craft/table.cjs.map +0 -1
  340. package/dist/craft/table.d.cts +0 -7
  341. package/dist/craft/table.d.ts +0 -7
  342. package/dist/craft/table.js +0 -11
  343. package/dist/craft/table.js.map +0 -1
  344. package/dist/craft/theme.cjs +0 -34
  345. package/dist/craft/theme.cjs.map +0 -1
  346. package/dist/craft/theme.d.cts +0 -4
  347. package/dist/craft/theme.d.ts +0 -4
  348. package/dist/craft/theme.js +0 -8
  349. package/dist/craft/theme.js.map +0 -1
  350. package/dist/theme-context-EVI9PfKv.d.cts +0 -22
  351. package/dist/theme-context-EVI9PfKv.d.ts +0 -22
  352. package/dist/utils/cn.cjs +0 -31
  353. package/dist/utils/cn.cjs.map +0 -1
  354. package/dist/utils/cn.d.cts +0 -3
  355. package/dist/utils/cn.d.ts +0 -3
  356. package/dist/utils/cn.js +0 -7
  357. package/dist/utils/cn.js.map +0 -1
@@ -1,130 +0,0 @@
1
- "use strict";
2
- "use client";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var craft_pagination_exports = {};
21
- __export(craft_pagination_exports, {
22
- CraftPagination: () => CraftPagination
23
- });
24
- module.exports = __toCommonJS(craft_pagination_exports);
25
- var import_jsx_runtime = require("react/jsx-runtime");
26
- var import_cn = require("@/utils/cn");
27
- function getPageNumbers(pageIndex, pageCount, maxButtons = 5) {
28
- if (pageCount <= maxButtons) {
29
- return Array.from({ length: pageCount }, (_, i) => i);
30
- }
31
- const pages = [];
32
- const start = Math.max(0, pageIndex - 1);
33
- const end = Math.min(pageCount - 1, pageIndex + 1);
34
- pages.push(0);
35
- if (start > 1) pages.push("ellipsis");
36
- for (let i = start; i <= end; i += 1) {
37
- if (i !== 0 && i !== pageCount - 1) pages.push(i);
38
- }
39
- if (end < pageCount - 2) pages.push("ellipsis");
40
- pages.push(pageCount - 1);
41
- return pages;
42
- }
43
- function CraftPagination({
44
- pageIndex,
45
- pageCount,
46
- onPageChange,
47
- canPrevious = pageIndex > 0,
48
- canNext = pageIndex < pageCount - 1,
49
- pageSize,
50
- pageSizeOptions = [10, 20, 50],
51
- onPageSizeChange,
52
- tone,
53
- className
54
- }) {
55
- const pages = getPageNumbers(pageIndex, pageCount);
56
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
57
- "div",
58
- {
59
- className: (0, import_cn.cn)(
60
- "flex flex-wrap items-center justify-between gap-4",
61
- className
62
- ),
63
- "data-nc-theme": tone,
64
- children: [
65
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
66
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
- "button",
68
- {
69
- type: "button",
70
- className: (0, import_cn.cn)(
71
- "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition",
72
- "hover:bg-[rgb(var(--nc-surface)/0.2)]",
73
- !canPrevious && "opacity-50 cursor-not-allowed"
74
- ),
75
- onClick: () => onPageChange(Math.max(pageIndex - 1, 0)),
76
- disabled: !canPrevious,
77
- children: "Prev"
78
- }
79
- ),
80
- pages.map(
81
- (page, index) => page === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "px-2 text-[rgb(var(--nc-fg-muted))]", children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
- "button",
83
- {
84
- type: "button",
85
- className: (0, import_cn.cn)(
86
- "rounded-xl border px-3 py-2 text-xs transition",
87
- page === pageIndex ? "border-[rgb(var(--nc-accent-1)/0.6)] bg-[rgb(var(--nc-accent-1)/0.2)] text-[rgb(var(--nc-fg))]" : "border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] text-[rgb(var(--nc-fg-muted))] hover:text-[rgb(var(--nc-fg))] hover:bg-[rgb(var(--nc-surface)/0.2)]"
88
- ),
89
- onClick: () => onPageChange(page),
90
- children: page + 1
91
- },
92
- page
93
- )
94
- ),
95
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
96
- "button",
97
- {
98
- type: "button",
99
- className: (0, import_cn.cn)(
100
- "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition",
101
- "hover:bg-[rgb(var(--nc-surface)/0.2)]",
102
- !canNext && "opacity-50 cursor-not-allowed"
103
- ),
104
- onClick: () => onPageChange(Math.min(pageIndex + 1, pageCount - 1)),
105
- disabled: !canNext,
106
- children: "Next"
107
- }
108
- )
109
- ] }),
110
- onPageSizeChange && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2 text-xs text-[rgb(var(--nc-fg-muted))]", children: [
111
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Rows" }),
112
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
113
- "select",
114
- {
115
- className: "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-2 py-1 text-xs text-[rgb(var(--nc-fg))]",
116
- value: pageSize,
117
- onChange: (event) => onPageSizeChange(Number(event.target.value)),
118
- children: pageSizeOptions.map((size) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: size, children: size }, size))
119
- }
120
- )
121
- ] })
122
- ]
123
- }
124
- );
125
- }
126
- // Annotate the CommonJS export names for ESM import in node:
127
- 0 && (module.exports = {
128
- CraftPagination
129
- });
130
- //# sourceMappingURL=craft-pagination.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/craft-pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport type { ThemeName } from \"@/theme/theme-context\";\n\nexport type CraftPaginationProps = {\n pageIndex: number;\n pageCount: number;\n onPageChange: (page: number) => void;\n canPrevious?: boolean;\n canNext?: boolean;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (size: number) => void;\n tone?: ThemeName;\n className?: string;\n};\n\nfunction getPageNumbers(pageIndex: number, pageCount: number, maxButtons = 5) {\n if (pageCount <= maxButtons) {\n return Array.from({ length: pageCount }, (_, i) => i);\n }\n\n const pages: Array<number | \"ellipsis\"> = [];\n const start = Math.max(0, pageIndex - 1);\n const end = Math.min(pageCount - 1, pageIndex + 1);\n\n pages.push(0);\n\n if (start > 1) pages.push(\"ellipsis\");\n\n for (let i = start; i <= end; i += 1) {\n if (i !== 0 && i !== pageCount - 1) pages.push(i);\n }\n\n if (end < pageCount - 2) pages.push(\"ellipsis\");\n\n pages.push(pageCount - 1);\n\n return pages;\n}\n\nexport function CraftPagination({\n pageIndex,\n pageCount,\n onPageChange,\n canPrevious = pageIndex > 0,\n canNext = pageIndex < pageCount - 1,\n pageSize,\n pageSizeOptions = [10, 20, 50],\n onPageSizeChange,\n tone,\n className,\n}: CraftPaginationProps) {\n const pages = getPageNumbers(pageIndex, pageCount);\n\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center justify-between gap-4\",\n className\n )}\n data-nc-theme={tone}\n >\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n className={cn(\n \"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition\",\n \"hover:bg-[rgb(var(--nc-surface)/0.2)]\",\n !canPrevious && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => onPageChange(Math.max(pageIndex - 1, 0))}\n disabled={!canPrevious}\n >\n Prev\n </button>\n {pages.map((page, index) =>\n page === \"ellipsis\" ? (\n <span key={`ellipsis-${index}`} className=\"px-2 text-[rgb(var(--nc-fg-muted))]\">\n ...\n </span>\n ) : (\n <button\n key={page}\n type=\"button\"\n className={cn(\n \"rounded-xl border px-3 py-2 text-xs transition\",\n page === pageIndex\n ? \"border-[rgb(var(--nc-accent-1)/0.6)] bg-[rgb(var(--nc-accent-1)/0.2)] text-[rgb(var(--nc-fg))]\"\n : \"border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] text-[rgb(var(--nc-fg-muted))] hover:text-[rgb(var(--nc-fg))] hover:bg-[rgb(var(--nc-surface)/0.2)]\"\n )}\n onClick={() => onPageChange(page)}\n >\n {page + 1}\n </button>\n )\n )}\n <button\n type=\"button\"\n className={cn(\n \"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition\",\n \"hover:bg-[rgb(var(--nc-surface)/0.2)]\",\n !canNext && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => onPageChange(Math.min(pageIndex + 1, pageCount - 1))}\n disabled={!canNext}\n >\n Next\n </button>\n </div>\n\n {onPageSizeChange && (\n <div className=\"flex items-center gap-2 text-xs text-[rgb(var(--nc-fg-muted))]\">\n <span>Rows</span>\n <select\n className=\"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-2 py-1 text-xs text-[rgb(var(--nc-fg))]\"\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkEM;AA9DN,gBAAmB;AAgBnB,SAAS,eAAe,WAAmB,WAAmB,aAAa,GAAG;AAC5E,MAAI,aAAa,YAAY;AAC3B,WAAO,MAAM,KAAK,EAAE,QAAQ,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC;AAAA,EACtD;AAEA,QAAM,QAAoC,CAAC;AAC3C,QAAM,QAAQ,KAAK,IAAI,GAAG,YAAY,CAAC;AACvC,QAAM,MAAM,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC;AAEjD,QAAM,KAAK,CAAC;AAEZ,MAAI,QAAQ,EAAG,OAAM,KAAK,UAAU;AAEpC,WAAS,IAAI,OAAO,KAAK,KAAK,KAAK,GAAG;AACpC,QAAI,MAAM,KAAK,MAAM,YAAY,EAAG,OAAM,KAAK,CAAC;AAAA,EAClD;AAEA,MAAI,MAAM,YAAY,EAAG,OAAM,KAAK,UAAU;AAE9C,QAAM,KAAK,YAAY,CAAC;AAExB,SAAO;AACT;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc,YAAY;AAAA,EAC1B,UAAU,YAAY,YAAY;AAAA,EAClC;AAAA,EACA,kBAAkB,CAAC,IAAI,IAAI,EAAE;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,QAAQ,eAAe,WAAW,SAAS;AAEjD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,iBAAe;AAAA,MAEf;AAAA,qDAAC,SAAI,WAAU,2BACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,eAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA,CAAC,eAAe;AAAA,cAClB;AAAA,cACA,SAAS,MAAM,aAAa,KAAK,IAAI,YAAY,GAAG,CAAC,CAAC;AAAA,cACtD,UAAU,CAAC;AAAA,cACZ;AAAA;AAAA,UAED;AAAA,UACC,MAAM;AAAA,YAAI,CAAC,MAAM,UAChB,SAAS,aACP,4CAAC,UAA+B,WAAU,uCAAsC,mBAArE,YAAY,KAAK,EAE5B,IAEA;AAAA,cAAC;AAAA;AAAA,gBAEC,MAAK;AAAA,gBACL,eAAW;AAAA,kBACT;AAAA,kBACA,SAAS,YACL,mGACA;AAAA,gBACN;AAAA,gBACA,SAAS,MAAM,aAAa,IAAI;AAAA,gBAE/B,iBAAO;AAAA;AAAA,cAVH;AAAA,YAWP;AAAA,UAEJ;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,eAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA,CAAC,WAAW;AAAA,cACd;AAAA,cACA,SAAS,MAAM,aAAa,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC,CAAC;AAAA,cAClE,UAAU,CAAC;AAAA,cACZ;AAAA;AAAA,UAED;AAAA,WACF;AAAA,QAEC,oBACC,6CAAC,SAAI,WAAU,kEACb;AAAA,sDAAC,UAAK,kBAAI;AAAA,UACV;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,iBAAiB,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,cAE/D,0BAAgB,IAAI,CAAC,SACpB,4CAAC,YAAkB,OAAO,MACvB,kBADU,IAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
@@ -1,19 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as ThemeName } from '../theme-context-EVI9PfKv.cjs';
3
- import 'react';
4
-
5
- type CraftPaginationProps = {
6
- pageIndex: number;
7
- pageCount: number;
8
- onPageChange: (page: number) => void;
9
- canPrevious?: boolean;
10
- canNext?: boolean;
11
- pageSize?: number;
12
- pageSizeOptions?: number[];
13
- onPageSizeChange?: (size: number) => void;
14
- tone?: ThemeName;
15
- className?: string;
16
- };
17
- declare function CraftPagination({ pageIndex, pageCount, onPageChange, canPrevious, canNext, pageSize, pageSizeOptions, onPageSizeChange, tone, className, }: CraftPaginationProps): react_jsx_runtime.JSX.Element;
18
-
19
- export { CraftPagination, type CraftPaginationProps };
@@ -1,19 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as ThemeName } from '../theme-context-EVI9PfKv.js';
3
- import 'react';
4
-
5
- type CraftPaginationProps = {
6
- pageIndex: number;
7
- pageCount: number;
8
- onPageChange: (page: number) => void;
9
- canPrevious?: boolean;
10
- canNext?: boolean;
11
- pageSize?: number;
12
- pageSizeOptions?: number[];
13
- onPageSizeChange?: (size: number) => void;
14
- tone?: ThemeName;
15
- className?: string;
16
- };
17
- declare function CraftPagination({ pageIndex, pageCount, onPageChange, canPrevious, canNext, pageSize, pageSizeOptions, onPageSizeChange, tone, className, }: CraftPaginationProps): react_jsx_runtime.JSX.Element;
18
-
19
- export { CraftPagination, type CraftPaginationProps };
@@ -1,106 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { cn } from "@/utils/cn";
4
- function getPageNumbers(pageIndex, pageCount, maxButtons = 5) {
5
- if (pageCount <= maxButtons) {
6
- return Array.from({ length: pageCount }, (_, i) => i);
7
- }
8
- const pages = [];
9
- const start = Math.max(0, pageIndex - 1);
10
- const end = Math.min(pageCount - 1, pageIndex + 1);
11
- pages.push(0);
12
- if (start > 1) pages.push("ellipsis");
13
- for (let i = start; i <= end; i += 1) {
14
- if (i !== 0 && i !== pageCount - 1) pages.push(i);
15
- }
16
- if (end < pageCount - 2) pages.push("ellipsis");
17
- pages.push(pageCount - 1);
18
- return pages;
19
- }
20
- function CraftPagination({
21
- pageIndex,
22
- pageCount,
23
- onPageChange,
24
- canPrevious = pageIndex > 0,
25
- canNext = pageIndex < pageCount - 1,
26
- pageSize,
27
- pageSizeOptions = [10, 20, 50],
28
- onPageSizeChange,
29
- tone,
30
- className
31
- }) {
32
- const pages = getPageNumbers(pageIndex, pageCount);
33
- return /* @__PURE__ */ jsxs(
34
- "div",
35
- {
36
- className: cn(
37
- "flex flex-wrap items-center justify-between gap-4",
38
- className
39
- ),
40
- "data-nc-theme": tone,
41
- children: [
42
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
43
- /* @__PURE__ */ jsx(
44
- "button",
45
- {
46
- type: "button",
47
- className: cn(
48
- "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition",
49
- "hover:bg-[rgb(var(--nc-surface)/0.2)]",
50
- !canPrevious && "opacity-50 cursor-not-allowed"
51
- ),
52
- onClick: () => onPageChange(Math.max(pageIndex - 1, 0)),
53
- disabled: !canPrevious,
54
- children: "Prev"
55
- }
56
- ),
57
- pages.map(
58
- (page, index) => page === "ellipsis" ? /* @__PURE__ */ jsx("span", { className: "px-2 text-[rgb(var(--nc-fg-muted))]", children: "..." }, `ellipsis-${index}`) : /* @__PURE__ */ jsx(
59
- "button",
60
- {
61
- type: "button",
62
- className: cn(
63
- "rounded-xl border px-3 py-2 text-xs transition",
64
- page === pageIndex ? "border-[rgb(var(--nc-accent-1)/0.6)] bg-[rgb(var(--nc-accent-1)/0.2)] text-[rgb(var(--nc-fg))]" : "border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] text-[rgb(var(--nc-fg-muted))] hover:text-[rgb(var(--nc-fg))] hover:bg-[rgb(var(--nc-surface)/0.2)]"
65
- ),
66
- onClick: () => onPageChange(page),
67
- children: page + 1
68
- },
69
- page
70
- )
71
- ),
72
- /* @__PURE__ */ jsx(
73
- "button",
74
- {
75
- type: "button",
76
- className: cn(
77
- "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition",
78
- "hover:bg-[rgb(var(--nc-surface)/0.2)]",
79
- !canNext && "opacity-50 cursor-not-allowed"
80
- ),
81
- onClick: () => onPageChange(Math.min(pageIndex + 1, pageCount - 1)),
82
- disabled: !canNext,
83
- children: "Next"
84
- }
85
- )
86
- ] }),
87
- onPageSizeChange && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-[rgb(var(--nc-fg-muted))]", children: [
88
- /* @__PURE__ */ jsx("span", { children: "Rows" }),
89
- /* @__PURE__ */ jsx(
90
- "select",
91
- {
92
- className: "rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-2 py-1 text-xs text-[rgb(var(--nc-fg))]",
93
- value: pageSize,
94
- onChange: (event) => onPageSizeChange(Number(event.target.value)),
95
- children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx("option", { value: size, children: size }, size))
96
- }
97
- )
98
- ] })
99
- ]
100
- }
101
- );
102
- }
103
- export {
104
- CraftPagination
105
- };
106
- //# sourceMappingURL=craft-pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/craft-pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport type { ThemeName } from \"@/theme/theme-context\";\n\nexport type CraftPaginationProps = {\n pageIndex: number;\n pageCount: number;\n onPageChange: (page: number) => void;\n canPrevious?: boolean;\n canNext?: boolean;\n pageSize?: number;\n pageSizeOptions?: number[];\n onPageSizeChange?: (size: number) => void;\n tone?: ThemeName;\n className?: string;\n};\n\nfunction getPageNumbers(pageIndex: number, pageCount: number, maxButtons = 5) {\n if (pageCount <= maxButtons) {\n return Array.from({ length: pageCount }, (_, i) => i);\n }\n\n const pages: Array<number | \"ellipsis\"> = [];\n const start = Math.max(0, pageIndex - 1);\n const end = Math.min(pageCount - 1, pageIndex + 1);\n\n pages.push(0);\n\n if (start > 1) pages.push(\"ellipsis\");\n\n for (let i = start; i <= end; i += 1) {\n if (i !== 0 && i !== pageCount - 1) pages.push(i);\n }\n\n if (end < pageCount - 2) pages.push(\"ellipsis\");\n\n pages.push(pageCount - 1);\n\n return pages;\n}\n\nexport function CraftPagination({\n pageIndex,\n pageCount,\n onPageChange,\n canPrevious = pageIndex > 0,\n canNext = pageIndex < pageCount - 1,\n pageSize,\n pageSizeOptions = [10, 20, 50],\n onPageSizeChange,\n tone,\n className,\n}: CraftPaginationProps) {\n const pages = getPageNumbers(pageIndex, pageCount);\n\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center justify-between gap-4\",\n className\n )}\n data-nc-theme={tone}\n >\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n className={cn(\n \"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition\",\n \"hover:bg-[rgb(var(--nc-surface)/0.2)]\",\n !canPrevious && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => onPageChange(Math.max(pageIndex - 1, 0))}\n disabled={!canPrevious}\n >\n Prev\n </button>\n {pages.map((page, index) =>\n page === \"ellipsis\" ? (\n <span key={`ellipsis-${index}`} className=\"px-2 text-[rgb(var(--nc-fg-muted))]\">\n ...\n </span>\n ) : (\n <button\n key={page}\n type=\"button\"\n className={cn(\n \"rounded-xl border px-3 py-2 text-xs transition\",\n page === pageIndex\n ? \"border-[rgb(var(--nc-accent-1)/0.6)] bg-[rgb(var(--nc-accent-1)/0.2)] text-[rgb(var(--nc-fg))]\"\n : \"border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] text-[rgb(var(--nc-fg-muted))] hover:text-[rgb(var(--nc-fg))] hover:bg-[rgb(var(--nc-surface)/0.2)]\"\n )}\n onClick={() => onPageChange(page)}\n >\n {page + 1}\n </button>\n )\n )}\n <button\n type=\"button\"\n className={cn(\n \"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-2 text-xs text-[rgb(var(--nc-fg))] transition\",\n \"hover:bg-[rgb(var(--nc-surface)/0.2)]\",\n !canNext && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => onPageChange(Math.min(pageIndex + 1, pageCount - 1))}\n disabled={!canNext}\n >\n Next\n </button>\n </div>\n\n {onPageSizeChange && (\n <div className=\"flex items-center gap-2 text-xs text-[rgb(var(--nc-fg-muted))]\">\n <span>Rows</span>\n <select\n className=\"rounded-xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-2 py-1 text-xs text-[rgb(var(--nc-fg))]\"\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";AAkEM,SACE,KADF;AA9DN,SAAS,UAAU;AAgBnB,SAAS,eAAe,WAAmB,WAAmB,aAAa,GAAG;AAC5E,MAAI,aAAa,YAAY;AAC3B,WAAO,MAAM,KAAK,EAAE,QAAQ,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC;AAAA,EACtD;AAEA,QAAM,QAAoC,CAAC;AAC3C,QAAM,QAAQ,KAAK,IAAI,GAAG,YAAY,CAAC;AACvC,QAAM,MAAM,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC;AAEjD,QAAM,KAAK,CAAC;AAEZ,MAAI,QAAQ,EAAG,OAAM,KAAK,UAAU;AAEpC,WAAS,IAAI,OAAO,KAAK,KAAK,KAAK,GAAG;AACpC,QAAI,MAAM,KAAK,MAAM,YAAY,EAAG,OAAM,KAAK,CAAC;AAAA,EAClD;AAEA,MAAI,MAAM,YAAY,EAAG,OAAM,KAAK,UAAU;AAE9C,QAAM,KAAK,YAAY,CAAC;AAExB,SAAO;AACT;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc,YAAY;AAAA,EAC1B,UAAU,YAAY,YAAY;AAAA,EAClC;AAAA,EACA,kBAAkB,CAAC,IAAI,IAAI,EAAE;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,QAAQ,eAAe,WAAW,SAAS;AAEjD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,iBAAe;AAAA,MAEf;AAAA,6BAAC,SAAI,WAAU,2BACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA,CAAC,eAAe;AAAA,cAClB;AAAA,cACA,SAAS,MAAM,aAAa,KAAK,IAAI,YAAY,GAAG,CAAC,CAAC;AAAA,cACtD,UAAU,CAAC;AAAA,cACZ;AAAA;AAAA,UAED;AAAA,UACC,MAAM;AAAA,YAAI,CAAC,MAAM,UAChB,SAAS,aACP,oBAAC,UAA+B,WAAU,uCAAsC,mBAArE,YAAY,KAAK,EAE5B,IAEA;AAAA,cAAC;AAAA;AAAA,gBAEC,MAAK;AAAA,gBACL,WAAW;AAAA,kBACT;AAAA,kBACA,SAAS,YACL,mGACA;AAAA,gBACN;AAAA,gBACA,SAAS,MAAM,aAAa,IAAI;AAAA,gBAE/B,iBAAO;AAAA;AAAA,cAVH;AAAA,YAWP;AAAA,UAEJ;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA,CAAC,WAAW;AAAA,cACd;AAAA,cACA,SAAS,MAAM,aAAa,KAAK,IAAI,YAAY,GAAG,YAAY,CAAC,CAAC;AAAA,cAClE,UAAU,CAAC;AAAA,cACZ;AAAA;AAAA,UAED;AAAA,WACF;AAAA,QAEC,oBACC,qBAAC,SAAI,WAAU,kEACb;AAAA,8BAAC,UAAK,kBAAI;AAAA,UACV;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,iBAAiB,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,cAE/D,0BAAgB,IAAI,CAAC,SACpB,oBAAC,YAAkB,OAAO,MACvB,kBADU,IAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- "use client";
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
- var craft_popover_exports = {};
31
- __export(craft_popover_exports, {
32
- CraftPopover: () => CraftPopover
33
- });
34
- module.exports = __toCommonJS(craft_popover_exports);
35
- var import_jsx_runtime = require("react/jsx-runtime");
36
- var React = __toESM(require("react"), 1);
37
- var import_cn = require("@/utils/cn");
38
- const alignClasses = {
39
- start: "left-0",
40
- center: "left-1/2 -translate-x-1/2",
41
- end: "right-0"
42
- };
43
- function CraftPopover({
44
- open,
45
- defaultOpen = false,
46
- onOpenChange,
47
- trigger,
48
- content,
49
- align = "start",
50
- sideOffset = 10,
51
- tone,
52
- className,
53
- contentClassName
54
- }) {
55
- const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);
56
- const isControlled = typeof open === "boolean";
57
- const isOpen = isControlled ? open : uncontrolledOpen;
58
- const rootRef = React.useRef(null);
59
- const setOpen = React.useCallback(
60
- (next) => {
61
- if (!isControlled) setUncontrolledOpen(next);
62
- onOpenChange == null ? void 0 : onOpenChange(next);
63
- },
64
- [isControlled, onOpenChange]
65
- );
66
- React.useEffect(() => {
67
- if (!isOpen) return;
68
- const handleClick = (event) => {
69
- if (!rootRef.current) return;
70
- if (!rootRef.current.contains(event.target)) setOpen(false);
71
- };
72
- const handleKey = (event) => {
73
- if (event.key === "Escape") setOpen(false);
74
- };
75
- document.addEventListener("mousedown", handleClick);
76
- document.addEventListener("keydown", handleKey);
77
- return () => {
78
- document.removeEventListener("mousedown", handleClick);
79
- document.removeEventListener("keydown", handleKey);
80
- };
81
- }, [isOpen, setOpen]);
82
- const triggerNode = React.isValidElement(trigger) ? React.cloneElement(trigger, {
83
- onClick: (event) => {
84
- const handler = trigger.props.onClick;
85
- handler == null ? void 0 : handler(event);
86
- if (!event.defaultPrevented) setOpen(!isOpen);
87
- },
88
- "aria-expanded": isOpen,
89
- "aria-haspopup": "dialog"
90
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
- "button",
92
- {
93
- type: "button",
94
- onClick: () => setOpen(!isOpen),
95
- className: "inline-flex",
96
- "aria-expanded": isOpen,
97
- "aria-haspopup": "dialog",
98
- children: trigger
99
- }
100
- );
101
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_cn.cn)("relative inline-flex", className), ref: rootRef, children: [
102
- triggerNode,
103
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
- "div",
105
- {
106
- className: (0, import_cn.cn)(
107
- "absolute z-40 w-max min-w-48 rounded-2xl border border-[rgb(var(--nc-border)/0.35)] bg-[rgb(var(--nc-surface)/0.08)] p-3 text-[rgb(var(--nc-fg))] shadow-[0_18px_40px_rgba(0,0,0,0.35)] backdrop-blur-2xl",
108
- alignClasses[align],
109
- contentClassName
110
- ),
111
- style: { marginTop: sideOffset },
112
- role: "dialog",
113
- "data-nc-theme": tone,
114
- children: content
115
- }
116
- )
117
- ] });
118
- }
119
- // Annotate the CommonJS export names for ESM import in node:
120
- 0 && (module.exports = {
121
- CraftPopover
122
- });
123
- //# sourceMappingURL=craft-popover.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/craft-popover.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport type { ThemeName } from \"@/theme/theme-context\";\n\ntype PopoverAlign = \"start\" | \"center\" | \"end\";\n\nexport type CraftPopoverProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n content: React.ReactNode;\n align?: PopoverAlign;\n sideOffset?: number;\n tone?: ThemeName;\n className?: string;\n contentClassName?: string;\n};\n\nconst alignClasses: Record<PopoverAlign, string> = {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n};\n\nexport function CraftPopover({\n open,\n defaultOpen = false,\n onOpenChange,\n trigger,\n content,\n align = \"start\",\n sideOffset = 10,\n tone,\n className,\n contentClassName,\n}: CraftPopoverProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = typeof open === \"boolean\";\n const isOpen = isControlled ? open : uncontrolledOpen;\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const setOpen = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange]\n );\n\n React.useEffect(() => {\n if (!isOpen) return;\n const handleClick = (event: MouseEvent) => {\n if (!rootRef.current) return;\n if (!rootRef.current.contains(event.target as Node)) setOpen(false);\n };\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", handleClick);\n document.addEventListener(\"keydown\", handleKey);\n return () => {\n document.removeEventListener(\"mousedown\", handleClick);\n document.removeEventListener(\"keydown\", handleKey);\n };\n }, [isOpen, setOpen]);\n\n type TriggerProps = { onClick?: (event: React.MouseEvent) => void; \"aria-expanded\"?: boolean; \"aria-haspopup\"?: string };\n const triggerNode = React.isValidElement(trigger)\n ? React.cloneElement(trigger as React.ReactElement<TriggerProps>, {\n onClick: (event: React.MouseEvent) => {\n const handler = (trigger.props as TriggerProps).onClick;\n handler?.(event);\n if (!event.defaultPrevented) setOpen(!isOpen);\n },\n \"aria-expanded\": isOpen,\n \"aria-haspopup\": \"dialog\",\n })\n : (\n <button\n type=\"button\"\n onClick={() => setOpen(!isOpen)}\n className=\"inline-flex\"\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n >\n {trigger}\n </button>\n );\n\n return (\n <div className={cn(\"relative inline-flex\", className)} ref={rootRef}>\n {triggerNode}\n {isOpen && (\n <div\n className={cn(\n \"absolute z-40 w-max min-w-48 rounded-2xl border border-[rgb(var(--nc-border)/0.35)] bg-[rgb(var(--nc-surface)/0.08)] p-3 text-[rgb(var(--nc-fg))] shadow-[0_18px_40px_rgba(0,0,0,0.35)] backdrop-blur-2xl\",\n alignClasses[align],\n contentClassName\n )}\n style={{ marginTop: sideOffset }}\n role=\"dialog\"\n data-nc-theme={tone}\n >\n {content}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkFQ;AAhFR,YAAuB;AAEvB,gBAAmB;AAkBnB,MAAM,eAA6C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AAEO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAS,WAAW;AAC1E,QAAM,eAAe,OAAO,SAAS;AACrC,QAAM,SAAS,eAAe,OAAO;AACrC,QAAM,UAAU,MAAM,OAAuB,IAAI;AAEjD,QAAM,UAAU,MAAM;AAAA,IACpB,CAAC,SAAkB;AACjB,UAAI,CAAC,aAAc,qBAAoB,IAAI;AAC3C,mDAAe;AAAA,IACjB;AAAA,IACA,CAAC,cAAc,YAAY;AAAA,EAC7B;AAEA,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,OAAQ;AACb,UAAM,cAAc,CAAC,UAAsB;AACzC,UAAI,CAAC,QAAQ,QAAS;AACtB,UAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,MAAc,EAAG,SAAQ,KAAK;AAAA,IACpE;AACA,UAAM,YAAY,CAAC,UAAyB;AAC1C,UAAI,MAAM,QAAQ,SAAU,SAAQ,KAAK;AAAA,IAC3C;AACA,aAAS,iBAAiB,aAAa,WAAW;AAClD,aAAS,iBAAiB,WAAW,SAAS;AAC9C,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,WAAW;AACrD,eAAS,oBAAoB,WAAW,SAAS;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,CAAC;AAGpB,QAAM,cAAc,MAAM,eAAe,OAAO,IAC5C,MAAM,aAAa,SAA6C;AAAA,IAC9D,SAAS,CAAC,UAA4B;AACpC,YAAM,UAAW,QAAQ,MAAuB;AAChD,yCAAU;AACV,UAAI,CAAC,MAAM,iBAAkB,SAAQ,CAAC,MAAM;AAAA,IAC9C;AAAA,IACA,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,EACnB,CAAC,IAEC;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MAAM,QAAQ,CAAC,MAAM;AAAA,MAC9B,WAAU;AAAA,MACV,iBAAe;AAAA,MACf,iBAAc;AAAA,MAEb;AAAA;AAAA,EACH;AAGN,SACE,6CAAC,SAAI,eAAW,cAAG,wBAAwB,SAAS,GAAG,KAAK,SACzD;AAAA;AAAA,IACA,UACC;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA,aAAa,KAAK;AAAA,UAClB;AAAA,QACF;AAAA,QACA,OAAO,EAAE,WAAW,WAAW;AAAA,QAC/B,MAAK;AAAA,QACL,iBAAe;AAAA,QAEd;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;","names":[]}
@@ -1,20 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { a as ThemeName } from '../theme-context-EVI9PfKv.cjs';
4
-
5
- type PopoverAlign = "start" | "center" | "end";
6
- type CraftPopoverProps = {
7
- open?: boolean;
8
- defaultOpen?: boolean;
9
- onOpenChange?: (open: boolean) => void;
10
- trigger: React.ReactNode;
11
- content: React.ReactNode;
12
- align?: PopoverAlign;
13
- sideOffset?: number;
14
- tone?: ThemeName;
15
- className?: string;
16
- contentClassName?: string;
17
- };
18
- declare function CraftPopover({ open, defaultOpen, onOpenChange, trigger, content, align, sideOffset, tone, className, contentClassName, }: CraftPopoverProps): react_jsx_runtime.JSX.Element;
19
-
20
- export { CraftPopover, type CraftPopoverProps };
@@ -1,20 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { a as ThemeName } from '../theme-context-EVI9PfKv.js';
4
-
5
- type PopoverAlign = "start" | "center" | "end";
6
- type CraftPopoverProps = {
7
- open?: boolean;
8
- defaultOpen?: boolean;
9
- onOpenChange?: (open: boolean) => void;
10
- trigger: React.ReactNode;
11
- content: React.ReactNode;
12
- align?: PopoverAlign;
13
- sideOffset?: number;
14
- tone?: ThemeName;
15
- className?: string;
16
- contentClassName?: string;
17
- };
18
- declare function CraftPopover({ open, defaultOpen, onOpenChange, trigger, content, align, sideOffset, tone, className, contentClassName, }: CraftPopoverProps): react_jsx_runtime.JSX.Element;
19
-
20
- export { CraftPopover, type CraftPopoverProps };
@@ -1,89 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { cn } from "@/utils/cn";
5
- const alignClasses = {
6
- start: "left-0",
7
- center: "left-1/2 -translate-x-1/2",
8
- end: "right-0"
9
- };
10
- function CraftPopover({
11
- open,
12
- defaultOpen = false,
13
- onOpenChange,
14
- trigger,
15
- content,
16
- align = "start",
17
- sideOffset = 10,
18
- tone,
19
- className,
20
- contentClassName
21
- }) {
22
- const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);
23
- const isControlled = typeof open === "boolean";
24
- const isOpen = isControlled ? open : uncontrolledOpen;
25
- const rootRef = React.useRef(null);
26
- const setOpen = React.useCallback(
27
- (next) => {
28
- if (!isControlled) setUncontrolledOpen(next);
29
- onOpenChange == null ? void 0 : onOpenChange(next);
30
- },
31
- [isControlled, onOpenChange]
32
- );
33
- React.useEffect(() => {
34
- if (!isOpen) return;
35
- const handleClick = (event) => {
36
- if (!rootRef.current) return;
37
- if (!rootRef.current.contains(event.target)) setOpen(false);
38
- };
39
- const handleKey = (event) => {
40
- if (event.key === "Escape") setOpen(false);
41
- };
42
- document.addEventListener("mousedown", handleClick);
43
- document.addEventListener("keydown", handleKey);
44
- return () => {
45
- document.removeEventListener("mousedown", handleClick);
46
- document.removeEventListener("keydown", handleKey);
47
- };
48
- }, [isOpen, setOpen]);
49
- const triggerNode = React.isValidElement(trigger) ? React.cloneElement(trigger, {
50
- onClick: (event) => {
51
- const handler = trigger.props.onClick;
52
- handler == null ? void 0 : handler(event);
53
- if (!event.defaultPrevented) setOpen(!isOpen);
54
- },
55
- "aria-expanded": isOpen,
56
- "aria-haspopup": "dialog"
57
- }) : /* @__PURE__ */ jsx(
58
- "button",
59
- {
60
- type: "button",
61
- onClick: () => setOpen(!isOpen),
62
- className: "inline-flex",
63
- "aria-expanded": isOpen,
64
- "aria-haspopup": "dialog",
65
- children: trigger
66
- }
67
- );
68
- return /* @__PURE__ */ jsxs("div", { className: cn("relative inline-flex", className), ref: rootRef, children: [
69
- triggerNode,
70
- isOpen && /* @__PURE__ */ jsx(
71
- "div",
72
- {
73
- className: cn(
74
- "absolute z-40 w-max min-w-48 rounded-2xl border border-[rgb(var(--nc-border)/0.35)] bg-[rgb(var(--nc-surface)/0.08)] p-3 text-[rgb(var(--nc-fg))] shadow-[0_18px_40px_rgba(0,0,0,0.35)] backdrop-blur-2xl",
75
- alignClasses[align],
76
- contentClassName
77
- ),
78
- style: { marginTop: sideOffset },
79
- role: "dialog",
80
- "data-nc-theme": tone,
81
- children: content
82
- }
83
- )
84
- ] });
85
- }
86
- export {
87
- CraftPopover
88
- };
89
- //# sourceMappingURL=craft-popover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/craft-popover.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport type { ThemeName } from \"@/theme/theme-context\";\n\ntype PopoverAlign = \"start\" | \"center\" | \"end\";\n\nexport type CraftPopoverProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n content: React.ReactNode;\n align?: PopoverAlign;\n sideOffset?: number;\n tone?: ThemeName;\n className?: string;\n contentClassName?: string;\n};\n\nconst alignClasses: Record<PopoverAlign, string> = {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n};\n\nexport function CraftPopover({\n open,\n defaultOpen = false,\n onOpenChange,\n trigger,\n content,\n align = \"start\",\n sideOffset = 10,\n tone,\n className,\n contentClassName,\n}: CraftPopoverProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = typeof open === \"boolean\";\n const isOpen = isControlled ? open : uncontrolledOpen;\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const setOpen = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange]\n );\n\n React.useEffect(() => {\n if (!isOpen) return;\n const handleClick = (event: MouseEvent) => {\n if (!rootRef.current) return;\n if (!rootRef.current.contains(event.target as Node)) setOpen(false);\n };\n const handleKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", handleClick);\n document.addEventListener(\"keydown\", handleKey);\n return () => {\n document.removeEventListener(\"mousedown\", handleClick);\n document.removeEventListener(\"keydown\", handleKey);\n };\n }, [isOpen, setOpen]);\n\n type TriggerProps = { onClick?: (event: React.MouseEvent) => void; \"aria-expanded\"?: boolean; \"aria-haspopup\"?: string };\n const triggerNode = React.isValidElement(trigger)\n ? React.cloneElement(trigger as React.ReactElement<TriggerProps>, {\n onClick: (event: React.MouseEvent) => {\n const handler = (trigger.props as TriggerProps).onClick;\n handler?.(event);\n if (!event.defaultPrevented) setOpen(!isOpen);\n },\n \"aria-expanded\": isOpen,\n \"aria-haspopup\": \"dialog\",\n })\n : (\n <button\n type=\"button\"\n onClick={() => setOpen(!isOpen)}\n className=\"inline-flex\"\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n >\n {trigger}\n </button>\n );\n\n return (\n <div className={cn(\"relative inline-flex\", className)} ref={rootRef}>\n {triggerNode}\n {isOpen && (\n <div\n className={cn(\n \"absolute z-40 w-max min-w-48 rounded-2xl border border-[rgb(var(--nc-border)/0.35)] bg-[rgb(var(--nc-surface)/0.08)] p-3 text-[rgb(var(--nc-fg))] shadow-[0_18px_40px_rgba(0,0,0,0.35)] backdrop-blur-2xl\",\n alignClasses[align],\n contentClassName\n )}\n style={{ marginTop: sideOffset }}\n role=\"dialog\"\n data-nc-theme={tone}\n >\n {content}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";AAkFQ,cAYJ,YAZI;AAhFR,YAAY,WAAW;AAEvB,SAAS,UAAU;AAkBnB,MAAM,eAA6C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AAEO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAS,WAAW;AAC1E,QAAM,eAAe,OAAO,SAAS;AACrC,QAAM,SAAS,eAAe,OAAO;AACrC,QAAM,UAAU,MAAM,OAAuB,IAAI;AAEjD,QAAM,UAAU,MAAM;AAAA,IACpB,CAAC,SAAkB;AACjB,UAAI,CAAC,aAAc,qBAAoB,IAAI;AAC3C,mDAAe;AAAA,IACjB;AAAA,IACA,CAAC,cAAc,YAAY;AAAA,EAC7B;AAEA,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,OAAQ;AACb,UAAM,cAAc,CAAC,UAAsB;AACzC,UAAI,CAAC,QAAQ,QAAS;AACtB,UAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,MAAc,EAAG,SAAQ,KAAK;AAAA,IACpE;AACA,UAAM,YAAY,CAAC,UAAyB;AAC1C,UAAI,MAAM,QAAQ,SAAU,SAAQ,KAAK;AAAA,IAC3C;AACA,aAAS,iBAAiB,aAAa,WAAW;AAClD,aAAS,iBAAiB,WAAW,SAAS;AAC9C,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,WAAW;AACrD,eAAS,oBAAoB,WAAW,SAAS;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,CAAC;AAGpB,QAAM,cAAc,MAAM,eAAe,OAAO,IAC5C,MAAM,aAAa,SAA6C;AAAA,IAC9D,SAAS,CAAC,UAA4B;AACpC,YAAM,UAAW,QAAQ,MAAuB;AAChD,yCAAU;AACV,UAAI,CAAC,MAAM,iBAAkB,SAAQ,CAAC,MAAM;AAAA,IAC9C;AAAA,IACA,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,EACnB,CAAC,IAEC;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS,MAAM,QAAQ,CAAC,MAAM;AAAA,MAC9B,WAAU;AAAA,MACV,iBAAe;AAAA,MACf,iBAAc;AAAA,MAEb;AAAA;AAAA,EACH;AAGN,SACE,qBAAC,SAAI,WAAW,GAAG,wBAAwB,SAAS,GAAG,KAAK,SACzD;AAAA;AAAA,IACA,UACC;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,aAAa,KAAK;AAAA,UAClB;AAAA,QACF;AAAA,QACA,OAAO,EAAE,WAAW,WAAW;AAAA,QAC/B,MAAK;AAAA,QACL,iBAAe;AAAA,QAEd;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;","names":[]}