@lerianstudio/sindarian-ui 2.0.0-beta.25 → 2.0.0-beta.26

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 (305) hide show
  1. package/dist/charts/chart.js +4 -231
  2. package/dist/charts/index.js +1 -11
  3. package/dist/components/breadcrumb/get-breadcrumb-paths.js +1 -18
  4. package/dist/components/breadcrumb/index.js +1 -37
  5. package/dist/components/card/account-card/index.js +1 -69
  6. package/dist/components/card/basic-card/index.js +1 -20
  7. package/dist/components/card/dashboard-card/index.js +1 -20
  8. package/dist/components/card/entity-card/index.js +1 -68
  9. package/dist/components/card/index.js +1 -20
  10. package/dist/components/dialog/confirmation-dialog/index.js +1 -96
  11. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.js +1 -55
  12. package/dist/components/dialog/index.js +1 -19
  13. package/dist/components/dialog/large-dialog/index.js +1 -21
  14. package/dist/components/entity-box/index.js +1 -67
  15. package/dist/components/entity-data-table/index.js +1 -20
  16. package/dist/components/form/combo-box-field/index.js +1 -35
  17. package/dist/components/form/country-field/index.js +1 -11
  18. package/dist/components/form/date-picker-field/index.js +1 -83
  19. package/dist/components/form/date-range-field/index.js +1 -58
  20. package/dist/components/form/date-time-picker-field/index.js +1 -114
  21. package/dist/components/form/file-upload-field/index.js +1 -69
  22. package/dist/components/form/index.js +1 -31
  23. package/dist/components/form/input-field/index.js +1 -96
  24. package/dist/components/form/otp-field/index.js +1 -19
  25. package/dist/components/form/pagination-limit-field/index.js +1 -10
  26. package/dist/components/form/password-field/index.js +1 -16
  27. package/dist/components/form/radio-group-field/index.js +1 -36
  28. package/dist/components/form/renderable-label.js +1 -57
  29. package/dist/components/form/select-field/index.js +1 -68
  30. package/dist/components/form/state-field/index.js +1 -42
  31. package/dist/components/form/switch-field/index.js +1 -16
  32. package/dist/components/form/textarea-field/index.js +1 -23
  33. package/dist/components/page/index.js +1 -20
  34. package/dist/components/page-header/index.js +1 -80
  35. package/dist/components/pagination/index.js +1 -10
  36. package/dist/components/table/id-table-cell.js +1 -109
  37. package/dist/components/table/index.js +1 -19
  38. package/dist/components/table/locked-table-actions.js +1 -41
  39. package/dist/components/table/name-table-cell.js +1 -58
  40. package/dist/components/ui/accordion/index.js +1 -62
  41. package/dist/components/ui/alert/index.js +1 -45
  42. package/dist/components/ui/alert-dialog/index.js +1 -84
  43. package/dist/components/ui/autocomplete/index.js +1 -440
  44. package/dist/components/ui/autosize-textarea/index.js +1 -89
  45. package/dist/components/ui/avatar/index.js +1 -51
  46. package/dist/components/ui/badge/index.js +1 -83
  47. package/dist/components/ui/breadcrumb/index.js +1 -35
  48. package/dist/components/ui/button/index.js +1 -65
  49. package/dist/components/ui/calendar/index.js +1 -118
  50. package/dist/components/ui/card/index.js +1 -32
  51. package/dist/components/ui/checkbox/index.js +1 -44
  52. package/dist/components/ui/collapsible/index.js +1 -50
  53. package/dist/components/ui/command/index.js +1 -95
  54. package/dist/components/ui/copy-field/index.js +1 -163
  55. package/dist/components/ui/dialog/index.js +1 -80
  56. package/dist/components/ui/dropdown-menu/index.js +1 -110
  57. package/dist/components/ui/field/index.js +1 -82
  58. package/dist/components/ui/file-upload/index.js +1 -574
  59. package/dist/components/ui/form.js +1 -162
  60. package/dist/components/ui/hover-card/index.js +1 -51
  61. package/dist/components/ui/icon-button/index.js +1 -35
  62. package/dist/components/ui/input/adornment.js +1 -21
  63. package/dist/components/ui/input/index.js +1 -99
  64. package/dist/components/ui/label/index.js +1 -45
  65. package/dist/components/ui/lerian-wordmark/index.js +1 -7
  66. package/dist/components/ui/loading-button/index.js +1 -9
  67. package/dist/components/ui/multiple-select/index.js +1 -235
  68. package/dist/components/ui/otp-input/index.js +1 -62
  69. package/dist/components/ui/paper/index.js +1 -8
  70. package/dist/components/ui/paper-collapsible/index.js +1 -24
  71. package/dist/components/ui/popover/index.js +1 -55
  72. package/dist/components/ui/progress/index.js +1 -66
  73. package/dist/components/ui/qr-code/index.js +1 -27
  74. package/dist/components/ui/radio-group/index.js +1 -48
  75. package/dist/components/ui/scroll-area/index.js +1 -49
  76. package/dist/components/ui/select/index.js +1 -119
  77. package/dist/components/ui/separator/index.js +1 -43
  78. package/dist/components/ui/sheet/index.js +1 -136
  79. package/dist/components/ui/sidebar/index.js +1 -27
  80. package/dist/components/ui/sidebar/next-router.cjs +1 -119
  81. package/dist/components/ui/sidebar/sidebar-back-button.js +1 -8
  82. package/dist/components/ui/sidebar/sidebar-components.js +1 -23
  83. package/dist/components/ui/sidebar/sidebar-expand-button.js +1 -49
  84. package/dist/components/ui/sidebar/sidebar-item-button.js +1 -21
  85. package/dist/components/ui/sidebar/sidebar-item-collapsible.js +1 -52
  86. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +1 -18
  87. package/dist/components/ui/sidebar/sidebar-item.js +1 -44
  88. package/dist/components/ui/sidebar/sidebar-provider.js +1 -201
  89. package/dist/components/ui/sidebar/sidebar-root.js +1 -130
  90. package/dist/components/ui/sidebar/sidebar-router.js +1 -126
  91. package/dist/components/ui/sidebar/sidebar-trigger.js +1 -57
  92. package/dist/components/ui/skeleton/index.js +1 -8
  93. package/dist/components/ui/stepper/index.js +1 -29
  94. package/dist/components/ui/switch/index.js +1 -43
  95. package/dist/components/ui/table/index.js +1 -56
  96. package/dist/components/ui/tabs/index.js +1 -55
  97. package/dist/components/ui/textarea/index.js +1 -8
  98. package/dist/components/ui/time-picker/index.js +1 -85
  99. package/dist/components/ui/toast/index.js +1 -3
  100. package/dist/components/ui/toast/toaster.js +1 -16
  101. package/dist/components/ui/toggle-group/index.js +1 -156
  102. package/dist/components/ui/tooltip/index.js +1 -81
  103. package/dist/domain/blotter/index.js +1 -20
  104. package/dist/domain/delinquency-aging/aging-buckets.js +1 -120
  105. package/dist/domain/delinquency-aging/index.js +1 -222
  106. package/dist/domain/figure/index.js +1 -19
  107. package/dist/domain/format.js +1 -137
  108. package/dist/domain/index.js +1 -43
  109. package/dist/domain/key-id/index.js +1 -174
  110. package/dist/domain/ledger-sheet/index.js +1 -28
  111. package/dist/domain/money-diff.js +1 -48
  112. package/dist/domain/money-math.js +1 -104
  113. package/dist/domain/money-text/index.js +1 -123
  114. package/dist/domain/section-label/index.js +1 -17
  115. package/dist/domain/status-rail/index.js +1 -76
  116. package/dist/domain/threshold-gauge/index.js +1 -161
  117. package/dist/enterprise/alert-banner/index.js +1 -24
  118. package/dist/enterprise/app-shell/index.js +1 -87
  119. package/dist/enterprise/cursor-pager/index.js +1 -26
  120. package/dist/enterprise/data-table/column-size.js +1 -103
  121. package/dist/enterprise/data-table/index.js +1 -345
  122. package/dist/enterprise/date-range-picker/index.js +1 -115
  123. package/dist/enterprise/detail-panel/index.js +1 -20
  124. package/dist/enterprise/empty-state/index.js +1 -14
  125. package/dist/enterprise/index.js +1 -39
  126. package/dist/enterprise/number-input/index.js +1 -252
  127. package/dist/enterprise/search-input/index.js +1 -121
  128. package/dist/enterprise/stat-card/index.js +1 -75
  129. package/dist/enterprise/status-badge/index.js +1 -120
  130. package/dist/enterprise/use-is-mobile.js +1 -68
  131. package/dist/enterprise/virtualized-table/index.js +1 -141
  132. package/dist/esm/charts/chart.js +4 -190
  133. package/dist/esm/charts/index.js +1 -3
  134. package/dist/esm/components/breadcrumb/get-breadcrumb-paths.js +1 -12
  135. package/dist/esm/components/breadcrumb/index.js +1 -30
  136. package/dist/esm/components/card/account-card/index.js +1 -53
  137. package/dist/esm/components/card/basic-card/index.js +1 -14
  138. package/dist/esm/components/card/dashboard-card/index.js +1 -14
  139. package/dist/esm/components/card/entity-card/index.js +1 -52
  140. package/dist/esm/components/card/index.js +1 -4
  141. package/dist/esm/components/dialog/confirmation-dialog/index.js +1 -60
  142. package/dist/esm/components/dialog/confirmation-dialog/use-confirm-dialog.js +1 -49
  143. package/dist/esm/components/dialog/index.js +1 -3
  144. package/dist/esm/components/dialog/large-dialog/index.js +1 -16
  145. package/dist/esm/components/entity-box/index.js +1 -56
  146. package/dist/esm/components/entity-data-table/index.js +1 -17
  147. package/dist/esm/components/form/combo-box-field/index.js +1 -28
  148. package/dist/esm/components/form/country-field/index.js +1 -7
  149. package/dist/esm/components/form/date-picker-field/index.js +1 -43
  150. package/dist/esm/components/form/date-range-field/index.js +1 -18
  151. package/dist/esm/components/form/date-time-picker-field/index.js +1 -74
  152. package/dist/esm/components/form/file-upload-field/index.js +1 -65
  153. package/dist/esm/components/form/index.js +1 -15
  154. package/dist/esm/components/form/input-field/index.js +1 -92
  155. package/dist/esm/components/form/otp-field/index.js +1 -15
  156. package/dist/esm/components/form/pagination-limit-field/index.js +1 -6
  157. package/dist/esm/components/form/password-field/index.js +1 -10
  158. package/dist/esm/components/form/radio-group-field/index.js +1 -32
  159. package/dist/esm/components/form/renderable-label.js +1 -54
  160. package/dist/esm/components/form/select-field/index.js +1 -64
  161. package/dist/esm/components/form/state-field/index.js +1 -35
  162. package/dist/esm/components/form/switch-field/index.js +1 -12
  163. package/dist/esm/components/form/textarea-field/index.js +1 -19
  164. package/dist/esm/components/page/index.js +1 -15
  165. package/dist/esm/components/page-header/index.js +1 -71
  166. package/dist/esm/components/pagination/index.js +1 -6
  167. package/dist/esm/components/table/id-table-cell.js +1 -105
  168. package/dist/esm/components/table/index.js +1 -3
  169. package/dist/esm/components/table/locked-table-actions.js +1 -37
  170. package/dist/esm/components/table/name-table-cell.js +1 -54
  171. package/dist/esm/components/ui/accordion/index.js +1 -24
  172. package/dist/esm/components/ui/alert/index.js +1 -38
  173. package/dist/esm/components/ui/alert-dialog/index.js +1 -39
  174. package/dist/esm/components/ui/autocomplete/index.js +1 -392
  175. package/dist/esm/components/ui/autosize-textarea/index.js +1 -51
  176. package/dist/esm/components/ui/avatar/index.js +1 -14
  177. package/dist/esm/components/ui/badge/index.js +1 -79
  178. package/dist/esm/components/ui/breadcrumb/index.js +1 -27
  179. package/dist/esm/components/ui/button/index.js +1 -60
  180. package/dist/esm/components/ui/calendar/index.js +1 -82
  181. package/dist/esm/components/ui/card/index.js +1 -24
  182. package/dist/esm/components/ui/checkbox/index.js +1 -9
  183. package/dist/esm/components/ui/collapsible/index.js +1 -13
  184. package/dist/esm/components/ui/command/index.js +1 -51
  185. package/dist/esm/components/ui/copy-field/index.js +1 -127
  186. package/dist/esm/components/ui/dialog/index.js +1 -36
  187. package/dist/esm/components/ui/dropdown-menu/index.js +1 -60
  188. package/dist/esm/components/ui/field/index.js +1 -71
  189. package/dist/esm/components/ui/file-upload/index.js +1 -536
  190. package/dist/esm/components/ui/form.js +1 -118
  191. package/dist/esm/components/ui/hover-card/index.js +1 -14
  192. package/dist/esm/components/ui/icon-button/index.js +1 -31
  193. package/dist/esm/components/ui/input/adornment.js +1 -17
  194. package/dist/esm/components/ui/input/index.js +1 -60
  195. package/dist/esm/components/ui/label/index.js +1 -10
  196. package/dist/esm/components/ui/lerian-wordmark/index.js +1 -4
  197. package/dist/esm/components/ui/loading-button/index.js +1 -7
  198. package/dist/esm/components/ui/multiple-select/index.js +1 -196
  199. package/dist/esm/components/ui/otp-input/index.js +1 -21
  200. package/dist/esm/components/ui/paper/index.js +1 -5
  201. package/dist/esm/components/ui/paper-collapsible/index.js +1 -19
  202. package/dist/esm/components/ui/popover/index.js +1 -17
  203. package/dist/esm/components/ui/progress/index.js +1 -31
  204. package/dist/esm/components/ui/qr-code/index.js +1 -24
  205. package/dist/esm/components/ui/radio-group/index.js +1 -12
  206. package/dist/esm/components/ui/scroll-area/index.js +1 -13
  207. package/dist/esm/components/ui/select/index.js +1 -74
  208. package/dist/esm/components/ui/separator/index.js +1 -8
  209. package/dist/esm/components/ui/sheet/index.js +1 -92
  210. package/dist/esm/components/ui/sidebar/index.js +1 -11
  211. package/dist/esm/components/ui/sidebar/next-router.cjs +1 -119
  212. package/dist/esm/components/ui/sidebar/sidebar-back-button.js +1 -5
  213. package/dist/esm/components/ui/sidebar/sidebar-components.js +1 -15
  214. package/dist/esm/components/ui/sidebar/sidebar-expand-button.js +1 -42
  215. package/dist/esm/components/ui/sidebar/sidebar-item-button.js +1 -18
  216. package/dist/esm/components/ui/sidebar/sidebar-item-collapsible.js +1 -44
  217. package/dist/esm/components/ui/sidebar/sidebar-item-icon-button.js +1 -14
  218. package/dist/esm/components/ui/sidebar/sidebar-item.js +1 -40
  219. package/dist/esm/components/ui/sidebar/sidebar-provider.js +1 -193
  220. package/dist/esm/components/ui/sidebar/sidebar-root.js +1 -126
  221. package/dist/esm/components/ui/sidebar/sidebar-router.js +1 -89
  222. package/dist/esm/components/ui/sidebar/sidebar-trigger.js +1 -53
  223. package/dist/esm/components/ui/skeleton/index.js +1 -6
  224. package/dist/esm/components/ui/stepper/index.js +1 -20
  225. package/dist/esm/components/ui/switch/index.js +1 -8
  226. package/dist/esm/components/ui/table/index.js +1 -44
  227. package/dist/esm/components/ui/tabs/index.js +1 -17
  228. package/dist/esm/components/ui/textarea/index.js +1 -6
  229. package/dist/esm/components/ui/time-picker/index.js +1 -49
  230. package/dist/esm/components/ui/toast/index.js +1 -2
  231. package/dist/esm/components/ui/toast/toaster.js +1 -13
  232. package/dist/esm/components/ui/toggle-group/index.js +1 -120
  233. package/dist/esm/components/ui/tooltip/index.js +1 -43
  234. package/dist/esm/domain/blotter/index.js +1 -16
  235. package/dist/esm/domain/delinquency-aging/aging-buckets.js +1 -115
  236. package/dist/esm/domain/delinquency-aging/index.js +1 -218
  237. package/dist/esm/domain/figure/index.js +1 -15
  238. package/dist/esm/domain/format.js +1 -128
  239. package/dist/esm/domain/index.js +1 -19
  240. package/dist/esm/domain/key-id/index.js +1 -169
  241. package/dist/esm/domain/ledger-sheet/index.js +1 -24
  242. package/dist/esm/domain/money-diff.js +1 -45
  243. package/dist/esm/domain/money-math.js +1 -98
  244. package/dist/esm/domain/money-text/index.js +1 -118
  245. package/dist/esm/domain/section-label/index.js +1 -14
  246. package/dist/esm/domain/status-rail/index.js +1 -71
  247. package/dist/esm/domain/threshold-gauge/index.js +1 -157
  248. package/dist/esm/enterprise/alert-banner/index.js +1 -21
  249. package/dist/esm/enterprise/app-shell/index.js +1 -51
  250. package/dist/esm/enterprise/cursor-pager/index.js +1 -23
  251. package/dist/esm/enterprise/data-table/column-size.js +1 -97
  252. package/dist/esm/enterprise/data-table/index.js +1 -342
  253. package/dist/esm/enterprise/date-range-picker/index.js +1 -112
  254. package/dist/esm/enterprise/detail-panel/index.js +1 -17
  255. package/dist/esm/enterprise/empty-state/index.js +1 -11
  256. package/dist/esm/enterprise/index.js +1 -22
  257. package/dist/esm/enterprise/number-input/index.js +1 -214
  258. package/dist/esm/enterprise/search-input/index.js +1 -85
  259. package/dist/esm/enterprise/stat-card/index.js +1 -72
  260. package/dist/esm/enterprise/status-badge/index.js +1 -116
  261. package/dist/esm/enterprise/use-is-mobile.js +1 -31
  262. package/dist/esm/enterprise/virtualized-table/index.js +1 -138
  263. package/dist/esm/hooks/use-click-away.js +1 -22
  264. package/dist/esm/hooks/use-pagination.js +1 -38
  265. package/dist/esm/hooks/use-stepper.js +1 -22
  266. package/dist/esm/hooks/use-time.js +1 -13
  267. package/dist/esm/hooks/use-toast.js +1 -107
  268. package/dist/esm/index.js +1 -77
  269. package/dist/esm/lib/storage/get-storage-object.js +1 -17
  270. package/dist/esm/lib/storage/get-storage.js +1 -14
  271. package/dist/esm/lib/storage/index.js +1 -2
  272. package/dist/esm/lib/typography.js +1 -31
  273. package/dist/esm/lib/utils.js +1 -41
  274. package/dist/esm/theme/get-theme-script.js +1 -41
  275. package/dist/esm/theme/index.js +1 -4
  276. package/dist/esm/theme/mode-toggle.js +1 -45
  277. package/dist/esm/theme/theme-provider.js +1 -122
  278. package/dist/esm/toast/helpers.js +1 -36
  279. package/dist/esm/toast/index.js +1 -4
  280. package/dist/esm/types/metadata-type.js +1 -1
  281. package/dist/esm/utils/countries.cjs +1 -17
  282. package/dist/esm/utils/country-utils.js +1 -18
  283. package/dist/esm/utils/currency-codes.js +1 -181
  284. package/dist/hooks/use-click-away.js +1 -29
  285. package/dist/hooks/use-pagination.js +1 -41
  286. package/dist/hooks/use-stepper.js +1 -26
  287. package/dist/hooks/use-time.js +1 -20
  288. package/dist/hooks/use-toast.js +1 -111
  289. package/dist/index.js +1 -96
  290. package/dist/lib/storage/get-storage-object.js +1 -23
  291. package/dist/lib/storage/get-storage.js +1 -17
  292. package/dist/lib/storage/index.js +1 -18
  293. package/dist/lib/typography.js +1 -34
  294. package/dist/lib/utils.js +1 -45
  295. package/dist/theme/get-theme-script.js +1 -44
  296. package/dist/theme/index.js +1 -11
  297. package/dist/theme/mode-toggle.js +1 -48
  298. package/dist/theme/theme-provider.js +1 -160
  299. package/dist/toast/helpers.js +1 -41
  300. package/dist/toast/index.js +1 -10
  301. package/dist/types/metadata-type.js +1 -2
  302. package/dist/utils/countries.cjs +1 -17
  303. package/dist/utils/country-utils.js +1 -25
  304. package/dist/utils/currency-codes.js +1 -184
  305. package/package.json +4 -3
@@ -1,96 +1 @@
1
- 'use client';
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.ConfirmationDialog = ConfirmationDialog;
38
- const jsx_runtime_1 = require("react/jsx-runtime");
39
- const React = __importStar(require("react"));
40
- const button_1 = require("../../../components/ui/button");
41
- const alert_dialog_1 = require("../../../components/ui/alert-dialog");
42
- const loading_button_1 = require("../../../components/ui/loading-button");
43
- const lucide_react_1 = require("lucide-react");
44
- const utils_1 = require("../../../lib/utils");
45
- const class_variance_authority_1 = require("class-variance-authority");
46
- const confirmationDialogIconVariants = (0, class_variance_authority_1.cva)('flex size-10 shrink-0 items-center justify-center rounded-lg [&>svg]:size-6', {
47
- variants: {
48
- // System tokens, not raw palette steps: a raw 50-step surface has no dark
49
- // counterpart, so on the dark canvas it rendered a near-white block.
50
- // `default` is deliberately neutral so `destructive` reads as a distinct,
51
- // heavier warning instead of an alias of it.
52
- variant: {
53
- default: 'bg-muted text-foreground',
54
- warning: 'bg-system-alert-surface text-system-alert-h1a',
55
- destructive: 'bg-system-error-surface text-system-error-h1a',
56
- success: 'bg-system-success-surface text-system-success-h1a'
57
- }
58
- },
59
- defaultVariants: {
60
- variant: 'default'
61
- }
62
- });
63
- const ConfirmationDialogIcon = ({ className, variant, ...props }) => ((0, jsx_runtime_1.jsxs)("span", { className: (0, utils_1.cn)(confirmationDialogIconVariants({ variant }), className), ...props, children: [variant === 'default' && (0, jsx_runtime_1.jsx)(lucide_react_1.CircleQuestionMark, {}), variant === 'warning' && (0, jsx_runtime_1.jsx)(lucide_react_1.TriangleAlert, {}), variant === 'destructive' && (0, jsx_runtime_1.jsx)(lucide_react_1.Ban, {}), variant === 'success' && (0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, {})] }));
64
- function ConfirmationDialog({ open, onOpenChange, title = null, description = null, variant = 'default', loading, onConfirm = () => { }, onCancel = () => { }, confirmLabel, cancelLabel, pendingLabel }) {
65
- const [pending, setPending] = React.useState(false);
66
- const busy = Boolean(loading) || pending;
67
- const handleConfirm = async () => {
68
- if (busy) {
69
- return;
70
- }
71
- setPending(true);
72
- try {
73
- await onConfirm();
74
- onOpenChange(false);
75
- }
76
- catch {
77
- // Deliberately silent: the caller owns error UX. Catching only keeps a
78
- // rejection from escaping the click handler as an unhandled rejection —
79
- // the dialog stays open so the caller can render the failure in place.
80
- }
81
- finally {
82
- setPending(false);
83
- }
84
- };
85
- return ((0, jsx_runtime_1.jsx)(alert_dialog_1.AlertDialog, { open: open, onOpenChange: onOpenChange, children: (0, jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogContent, { "data-testid": "dialog",
86
- // Radix already blocks outside interaction on an alert dialog, so
87
- // Escape is the only remaining way to abandon a mutation mid-flight.
88
- onEscapeKeyDown: (event) => {
89
- if (busy) {
90
- event.preventDefault();
91
- }
92
- }, children: [(0, jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogHeader, { className: "flex-row items-center", children: [(0, jsx_runtime_1.jsx)(ConfirmationDialogIcon, { variant: variant }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-4", children: [title == null ||
93
- title === false ||
94
- title === true ||
95
- title === '' ? ((0, jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogTitle, { className: "sr-only", children: confirmLabel || 'Confirm' })) : ((0, jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogTitle, { children: title })), description == null ? null : ((0, jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogDescription, { children: description }))] })] }), pendingLabel ? ((0, jsx_runtime_1.jsx)("span", { role: "status", className: "sr-only", children: busy ? pendingLabel : '' })) : null, (0, jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogFooter, { className: "gap-4", children: [(0, jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogCancel, { asChild: true, variant: "secondary", children: (0, jsx_runtime_1.jsx)(button_1.Button, { onClick: onCancel, disabled: busy, variant: "secondary", size: "small", children: cancelLabel ?? 'Cancel' }) }), (0, jsx_runtime_1.jsx)(loading_button_1.LoadingButton, { loading: busy, onClick: handleConfirm, variant: variant === 'destructive' ? 'destructive' : 'primary', size: "small", "data-testid": "confirm", children: confirmLabel ?? 'Confirm' })] })] }) }));
96
- }
1
+ "use client";"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(s,e,t,r){if(r===void 0)r=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(s,r,n)}):(function(s,e,t,r){if(r===void 0)r=t;s[r]=e[t]}));var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(s,e){Object.defineProperty(s,"default",{enumerable:true,value:e})}):function(s,e){s["default"]=e});var __importStar=this&&this.__importStar||(function(){var s=function(e){s=Object.getOwnPropertyNames||function(t){var r=[];for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))r[r.length]=n;return r};return s(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null){for(var r=s(e),n=0;n<r.length;n++)if(r[n]!=="default")__createBinding(t,e,r[n])}__setModuleDefault(t,e);return t}})();Object.defineProperty(exports,"__esModule",{value:true});exports.ConfirmationDialog=ConfirmationDialog;const jsx_runtime_1=require("react/jsx-runtime");const React=__importStar(require("react"));const button_1=require("../../../components/ui/button");const alert_dialog_1=require("../../../components/ui/alert-dialog");const loading_button_1=require("../../../components/ui/loading-button");const lucide_react_1=require("lucide-react");const utils_1=require("../../../lib/utils");const class_variance_authority_1=require("class-variance-authority");const confirmationDialogIconVariants=(0,class_variance_authority_1.cva)("flex size-10 shrink-0 items-center justify-center rounded-lg [&>svg]:size-6",{variants:{variant:{default:"bg-muted text-foreground",warning:"bg-system-alert-surface text-system-alert-h1a",destructive:"bg-system-error-surface text-system-error-h1a",success:"bg-system-success-surface text-system-success-h1a"}},defaultVariants:{variant:"default"}});const ConfirmationDialogIcon=({className:s,variant:e,...t})=>(0,jsx_runtime_1.jsxs)("span",{className:(0,utils_1.cn)(confirmationDialogIconVariants({variant:e}),s),...t,children:[e==="default"&&(0,jsx_runtime_1.jsx)(lucide_react_1.CircleQuestionMark,{}),e==="warning"&&(0,jsx_runtime_1.jsx)(lucide_react_1.TriangleAlert,{}),e==="destructive"&&(0,jsx_runtime_1.jsx)(lucide_react_1.Ban,{}),e==="success"&&(0,jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2,{})]});function ConfirmationDialog({open:s,onOpenChange:e,title:t=null,description:r=null,variant:n="default",loading:o,onConfirm:u=()=>{},onCancel:d=()=>{},confirmLabel:i,cancelLabel:f,pendingLabel:l}){const[g,c]=React.useState(false);const a=Boolean(o)||g;const h=async()=>{if(a){return}c(true);try{await u();e(false)}catch{}finally{c(false)}};return(0,jsx_runtime_1.jsx)(alert_dialog_1.AlertDialog,{open:s,onOpenChange:e,children:(0,jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogContent,{"data-testid":"dialog",onEscapeKeyDown:_=>{if(a){_.preventDefault()}},children:[(0,jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogHeader,{className:"flex-row items-center",children:[(0,jsx_runtime_1.jsx)(ConfirmationDialogIcon,{variant:n}),(0,jsx_runtime_1.jsxs)("div",{className:"flex flex-col gap-4",children:[t==null||t===false||t===true||t===""?(0,jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogTitle,{className:"sr-only",children:i||"Confirm"}):(0,jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogTitle,{children:t}),r==null?null:(0,jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogDescription,{children:r})]})]}),l?(0,jsx_runtime_1.jsx)("span",{role:"status",className:"sr-only",children:a?l:""}):null,(0,jsx_runtime_1.jsxs)(alert_dialog_1.AlertDialogFooter,{className:"gap-4",children:[(0,jsx_runtime_1.jsx)(alert_dialog_1.AlertDialogCancel,{asChild:true,variant:"secondary",children:(0,jsx_runtime_1.jsx)(button_1.Button,{onClick:d,disabled:a,variant:"secondary",size:"small",children:f??"Cancel"})}),(0,jsx_runtime_1.jsx)(loading_button_1.LoadingButton,{loading:a,onClick:h,variant:n==="destructive"?"destructive":"primary",size:"small","data-testid":"confirm",children:i??"Confirm"})]})]})})}
@@ -1,55 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useConfirmDialog = useConfirmDialog;
7
- const react_1 = __importDefault(require("react"));
8
- /**
9
- * A custom hook that manages the state and behavior of a confirmation dialog.
10
- *
11
- * @template TData - The type of the data associated with the dialog.
12
- *
13
- * @param {UseConfirmDialog} param0 - An object containing the onConfirm callback.
14
- * @param {Function} [param0.onConfirm] - A callback function that is called when the dialog is confirmed.
15
- *
16
- * @returns {Object} An object containing the dialog state and handlers.
17
- * @returns {string} id - The current id associated with the dialog.
18
- * @returns {TData | null} data - The current data associated with the dialog.
19
- * @returns {Function} handleDialogOpen - A function to open the dialog with a specific id and optional data.
20
- * @returns {Object} dialogProps - An object containing the dialog properties and handlers.
21
- */
22
- function useConfirmDialog({ onConfirm: onConfirmProp }) {
23
- const [id, setId] = react_1.default.useState('');
24
- const [data, setData] = react_1.default.useState(null);
25
- const [open, setOpen] = react_1.default.useState(false);
26
- const onOpenChange = (open) => setOpen(open);
27
- const handleDialogOpen = (id, data) => {
28
- setId(id);
29
- setData(data);
30
- setOpen(true);
31
- };
32
- const handleDialogClose = () => setOpen(false);
33
- const onCancel = () => {
34
- setId('');
35
- setData(null);
36
- setOpen(false);
37
- };
38
- const onConfirm = () => {
39
- setId('');
40
- setData(null);
41
- onConfirmProp?.(id);
42
- };
43
- return {
44
- id,
45
- data,
46
- handleDialogClose,
47
- handleDialogOpen,
48
- dialogProps: {
49
- open,
50
- onOpenChange,
51
- onCancel,
52
- onConfirm
53
- }
54
- };
55
- }
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{"default":e}};Object.defineProperty(exports,"__esModule",{value:true});exports.useConfirmDialog=useConfirmDialog;const react_1=__importDefault(require("react"));function useConfirmDialog({onConfirm:e}){const[a,n]=react_1.default.useState("");const[l,o]=react_1.default.useState(null);const[u,t]=react_1.default.useState(false);const r=s=>t(s);const i=(s,p)=>{n(s);o(p);t(true)};const c=()=>t(false);const f=()=>{n("");o(null);t(false)};const d=()=>{n("");o(null);e?.(a)};return{id:a,data:l,handleDialogClose:c,handleDialogOpen:i,dialogProps:{open:u,onOpenChange:r,onCancel:f,onConfirm:d}}}
@@ -1,19 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./confirmation-dialog"), exports);
18
- __exportStar(require("./confirmation-dialog/use-confirm-dialog"), exports);
19
- __exportStar(require("./large-dialog"), exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,e,t){if(t===void 0)t=e;var n=Object.getOwnPropertyDescriptor(r,e);if(!n||("get"in n?!r.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return r[e]}}}Object.defineProperty(i,t,n)}):(function(i,r,e,t){if(t===void 0)t=e;i[t]=r[e]}));var __exportStar=this&&this.__exportStar||function(i,r){for(var e in i)if(e!=="default"&&!Object.prototype.hasOwnProperty.call(r,e))__createBinding(r,i,e)};Object.defineProperty(exports,"__esModule",{value:true});__exportStar(require("./confirmation-dialog"),exports);__exportStar(require("./confirmation-dialog/use-confirm-dialog"),exports);__exportStar(require("./large-dialog"),exports);
@@ -1,21 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OnboardDialogContent = OnboardDialogContent;
4
- exports.OnboardDialogHeader = OnboardDialogHeader;
5
- exports.OnboardDialogTitle = OnboardDialogTitle;
6
- exports.OnboardDialogIcon = OnboardDialogIcon;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const utils_1 = require("../../../lib/utils");
9
- const dialog_1 = require("../../../components/ui/dialog");
10
- function OnboardDialogContent({ className, ...props }) {
11
- return ((0, jsx_runtime_1.jsx)(dialog_1.DialogContent, { "data-slot": "onboard-dialog-content", showCloseButton: false, className: (0, utils_1.cn)('w-full max-w-[640px] p-12 sm:min-w-[640px]', className), ...props }));
12
- }
13
- function OnboardDialogHeader({ className, ...props }) {
14
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "onboard-dialog-header", className: (0, utils_1.cn)('flex flex-row justify-between', className), ...props }));
15
- }
16
- function OnboardDialogTitle({ upperTitle, title, className, ...props }) {
17
- return ((0, jsx_runtime_1.jsxs)("div", { "data-slot": "onboard-dialog-title", className: (0, utils_1.cn)('flex flex-col gap-8', className), ...props, children: [(0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground text-base font-medium", children: upperTitle }), (0, jsx_runtime_1.jsx)(dialog_1.DialogTitle, { className: "text-muted-foreground text-4xl font-bold", children: title })] }));
18
- }
19
- function OnboardDialogIcon({ className, children, ...props }) {
20
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "onboard-dialog-icon", className: (0, utils_1.cn)('flex items-center px-12', className), ...props, children: (0, jsx_runtime_1.jsx)("div", { className: "shrink-0", children: children }) }));
21
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.OnboardDialogContent=OnboardDialogContent;exports.OnboardDialogHeader=OnboardDialogHeader;exports.OnboardDialogTitle=OnboardDialogTitle;exports.OnboardDialogIcon=OnboardDialogIcon;const jsx_runtime_1=require("react/jsx-runtime");const utils_1=require("../../../lib/utils");const dialog_1=require("../../../components/ui/dialog");function OnboardDialogContent({className:e,...o}){return(0,jsx_runtime_1.jsx)(dialog_1.DialogContent,{"data-slot":"onboard-dialog-content",showCloseButton:false,className:(0,utils_1.cn)("w-full max-w-[640px] p-12 sm:min-w-[640px]",e),...o})}function OnboardDialogHeader({className:e,...o}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"onboard-dialog-header",className:(0,utils_1.cn)("flex flex-row justify-between",e),...o})}function OnboardDialogTitle({upperTitle:e,title:o,className:t,...n}){return(0,jsx_runtime_1.jsxs)("div",{"data-slot":"onboard-dialog-title",className:(0,utils_1.cn)("flex flex-col gap-8",t),...n,children:[(0,jsx_runtime_1.jsx)("p",{className:"text-muted-foreground text-base font-medium",children:e}),(0,jsx_runtime_1.jsx)(dialog_1.DialogTitle,{className:"text-muted-foreground text-4xl font-bold",children:o})]})}function OnboardDialogIcon({className:e,children:o,...t}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"onboard-dialog-icon",className:(0,utils_1.cn)("flex items-center px-12",e),...t,children:(0,jsx_runtime_1.jsx)("div",{className:"shrink-0",children:o})})}
@@ -1,67 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EntityBox = EntityBox;
7
- exports.EntityBoxCollapsible = EntityBoxCollapsible;
8
- exports.EntityBoxCollapsibleTrigger = EntityBoxCollapsibleTrigger;
9
- exports.EntityBoxCollapsibleContent = EntityBoxCollapsibleContent;
10
- exports.EntityBoxHeaderTitle = EntityBoxHeaderTitle;
11
- exports.EntityBoxBanner = EntityBoxBanner;
12
- exports.EntityBoxActions = EntityBoxActions;
13
- const jsx_runtime_1 = require("react/jsx-runtime");
14
- const react_1 = __importDefault(require("react"));
15
- const utils_1 = require("../../lib/utils");
16
- const tooltip_1 = require("../ui/tooltip");
17
- const lucide_react_1 = require("lucide-react");
18
- const collapsible_1 = require("../ui/collapsible");
19
- const button_1 = require("../ui/button");
20
- const separator_1 = require("../ui/separator");
21
- function EntityBox({ className, children, ...props }) {
22
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "entity-box", className: (0, utils_1.cn)('shadow-entity-box bg-card mb-2 flex items-center justify-between rounded-lg p-6', className), ...props, children: children }));
23
- }
24
- /**
25
- * The open state, republished for the trigger.
26
- *
27
- * Radix keeps it in a context it does not export, and the trigger one element
28
- * down needs it to say what activating it will DO. Mirroring it here rather
29
- * than forcing every consumer to lift the state: all ten console call sites
30
- * render `<EntityBoxCollapsible>` uncontrolled.
31
- */
32
- const EntityBoxCollapsibleContext = react_1.default.createContext(false);
33
- function EntityBoxCollapsible({ className, open, defaultOpen, onOpenChange, ...props }) {
34
- const [uncontrolled, setUncontrolled] = react_1.default.useState(defaultOpen ?? false);
35
- return ((0, jsx_runtime_1.jsx)(EntityBoxCollapsibleContext.Provider, { value: open ?? uncontrolled, children: (0, jsx_runtime_1.jsx)(collapsible_1.Collapsible, { className: (0, utils_1.cn)('shadow-entity-box bg-card mb-2 flex flex-col rounded-lg', className), open: open, defaultOpen: defaultOpen, onOpenChange: (next) => {
36
- setUncontrolled(next);
37
- onOpenChange?.(next);
38
- }, ...props }) }));
39
- }
40
- /**
41
- * ⛔ THIS TRIGGER HAS NO TEXT NODE. It is a `Settings2` glyph inside a Button,
42
- * so without an `aria-label` a screen reader announced "button" and nothing
43
- * else (SC 4.1.2) — and this is the control that opens the filter panel on
44
- * every console list page.
45
- *
46
- * The name describes the ACTION and Radix's `aria-expanded` carries the state,
47
- * so the two halves do not repeat each other. English defaults because no
48
- * consumer passes a label today; a translated console overrides both.
49
- */
50
- function EntityBoxCollapsibleTrigger({ expandLabel = 'Expand', collapseLabel = 'Collapse', 'aria-label': ariaLabel, ...props }) {
51
- const open = react_1.default.useContext(EntityBoxCollapsibleContext);
52
- return ((0, jsx_runtime_1.jsx)(collapsible_1.CollapsibleTrigger, { ...props, asChild: true, children: (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "secondary", className: "h-[34px] w-[34px] p-2", "aria-label": ariaLabel ?? (open ? collapseLabel : expandLabel), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Settings2, { size: 16, "aria-hidden": true }) }) }));
53
- }
54
- function EntityBoxCollapsibleContent({ children, ...props }) {
55
- return ((0, jsx_runtime_1.jsxs)(collapsible_1.CollapsibleContent, { ...props, children: [(0, jsx_runtime_1.jsx)(separator_1.Separator, { orientation: "horizontal" }), (0, jsx_runtime_1.jsx)("div", { className: "grid w-full grid-cols-3 p-6", children: children })] }));
56
- }
57
- function EntityBoxHeaderTitle({ title, subtitle, tooltip, tooltipWidth, className, as: Heading = 'h2', ...props }) {
58
- return ((0, jsx_runtime_1.jsxs)("div", { "data-slot": "entity-box-header", className: (0, utils_1.cn)('flex flex-col items-start', className), ...props, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-[10px]", children: [(0, jsx_runtime_1.jsx)(Heading, { className: "text-muted-foreground text-lg font-medium", children: title }), tooltip && ((0, jsx_runtime_1.jsx)(tooltip_1.TooltipProvider, { children: (0, jsx_runtime_1.jsxs)(tooltip_1.Tooltip, { children: [(0, jsx_runtime_1.jsx)(tooltip_1.TooltipTrigger, { asChild: true, children: (0, jsx_runtime_1.jsx)(lucide_react_1.CircleHelp, { className: "pointer text-muted-foreground h-5 w-5" }) }), (0, jsx_runtime_1.jsx)(tooltip_1.TooltipContent, { side: "right", style: tooltipWidth
59
- ? { width: tooltipWidth, maxWidth: tooltipWidth }
60
- : undefined, children: tooltip })] }) }))] }), subtitle && (0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground text-sm", children: subtitle })] }));
61
- }
62
- function EntityBoxBanner({ className, children, ...props }) {
63
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "entity-box-banner", className: (0, utils_1.cn)('grid grid-cols-3 p-6', className), ...props, children: children }));
64
- }
65
- function EntityBoxActions({ className, children, ...props }) {
66
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "entity-box-actions", className: (0, utils_1.cn)('col-start-3 flex flex-row items-center justify-end gap-4', className), ...props, children: children }));
67
- }
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{"default":e}};Object.defineProperty(exports,"__esModule",{value:true});exports.EntityBox=EntityBox;exports.EntityBoxCollapsible=EntityBoxCollapsible;exports.EntityBoxCollapsibleTrigger=EntityBoxCollapsibleTrigger;exports.EntityBoxCollapsibleContent=EntityBoxCollapsibleContent;exports.EntityBoxHeaderTitle=EntityBoxHeaderTitle;exports.EntityBoxBanner=EntityBoxBanner;exports.EntityBoxActions=EntityBoxActions;const jsx_runtime_1=require("react/jsx-runtime");const react_1=__importDefault(require("react"));const utils_1=require("../../lib/utils");const tooltip_1=require("../ui/tooltip");const lucide_react_1=require("lucide-react");const collapsible_1=require("../ui/collapsible");const button_1=require("../ui/button");const separator_1=require("../ui/separator");function EntityBox({className:e,children:t,...n}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"entity-box",className:(0,utils_1.cn)("shadow-entity-box bg-card mb-2 flex items-center justify-between rounded-lg p-6",e),...n,children:t})}const EntityBoxCollapsibleContext=react_1.default.createContext(false);function EntityBoxCollapsible({className:e,open:t,defaultOpen:n,onOpenChange:r,...i}){const[l,s]=react_1.default.useState(n??false);return(0,jsx_runtime_1.jsx)(EntityBoxCollapsibleContext.Provider,{value:t??l,children:(0,jsx_runtime_1.jsx)(collapsible_1.Collapsible,{className:(0,utils_1.cn)("shadow-entity-box bg-card mb-2 flex flex-col rounded-lg",e),open:t,defaultOpen:n,onOpenChange:o=>{s(o);r?.(o)},...i})})}function EntityBoxCollapsibleTrigger({expandLabel:e="Expand",collapseLabel:t="Collapse","aria-label":n,...r}){const i=react_1.default.useContext(EntityBoxCollapsibleContext);return(0,jsx_runtime_1.jsx)(collapsible_1.CollapsibleTrigger,{...r,asChild:true,children:(0,jsx_runtime_1.jsx)(button_1.Button,{variant:"secondary",className:"h-[34px] w-[34px] p-2","aria-label":n??(i?t:e),children:(0,jsx_runtime_1.jsx)(lucide_react_1.Settings2,{size:16,"aria-hidden":true})})})}function EntityBoxCollapsibleContent({children:e,...t}){return(0,jsx_runtime_1.jsxs)(collapsible_1.CollapsibleContent,{...t,children:[(0,jsx_runtime_1.jsx)(separator_1.Separator,{orientation:"horizontal"}),(0,jsx_runtime_1.jsx)("div",{className:"grid w-full grid-cols-3 p-6",children:e})]})}function EntityBoxHeaderTitle({title:e,subtitle:t,tooltip:n,tooltipWidth:r,className:i,as:l="h2",...s}){return(0,jsx_runtime_1.jsxs)("div",{"data-slot":"entity-box-header",className:(0,utils_1.cn)("flex flex-col items-start",i),...s,children:[(0,jsx_runtime_1.jsxs)("div",{className:"flex items-center gap-[10px]",children:[(0,jsx_runtime_1.jsx)(l,{className:"text-muted-foreground text-lg font-medium",children:e}),n&&(0,jsx_runtime_1.jsx)(tooltip_1.TooltipProvider,{children:(0,jsx_runtime_1.jsxs)(tooltip_1.Tooltip,{children:[(0,jsx_runtime_1.jsx)(tooltip_1.TooltipTrigger,{asChild:true,children:(0,jsx_runtime_1.jsx)(lucide_react_1.CircleHelp,{className:"pointer text-muted-foreground h-5 w-5"})}),(0,jsx_runtime_1.jsx)(tooltip_1.TooltipContent,{side:"right",style:r?{width:r,maxWidth:r}:void 0,children:n})]})})]}),t&&(0,jsx_runtime_1.jsx)("p",{className:"text-muted-foreground text-sm",children:t})]})}function EntityBoxBanner({className:e,children:t,...n}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"entity-box-banner",className:(0,utils_1.cn)("grid grid-cols-3 p-6",e),...n,children:t})}function EntityBoxActions({className:e,children:t,...n}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"entity-box-actions",className:(0,utils_1.cn)("col-start-3 flex flex-row items-center justify-end gap-4",e),...n,children:t})}
@@ -1,20 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityDataTable = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const utils_1 = require("../../lib/utils");
6
- const paper_1 = require("../ui/paper");
7
- function EntityDataTableRoot({ className, ...props }) {
8
- return (0, jsx_runtime_1.jsx)(paper_1.Paper, { className: className, ...props });
9
- }
10
- function EntityDataTableFooter({ className, ...props }) {
11
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "data-table-footer", className: (0, utils_1.cn)('flex flex-row items-center justify-between px-6 py-3', className), ...props }));
12
- }
13
- function EntityDataTableFooterText({ className, ...props }) {
14
- return ((0, jsx_runtime_1.jsx)("p", { "data-slot": "data-table-footer-text", className: (0, utils_1.cn)('text-muted-foreground text-sm leading-8 italic', className), ...props }));
15
- }
16
- exports.EntityDataTable = {
17
- Root: EntityDataTableRoot,
18
- Footer: EntityDataTableFooter,
19
- FooterText: EntityDataTableFooterText
20
- };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.EntityDataTable=void 0;const jsx_runtime_1=require("react/jsx-runtime");const utils_1=require("../../lib/utils");const paper_1=require("../ui/paper");function EntityDataTableRoot({className:t,...e}){return(0,jsx_runtime_1.jsx)(paper_1.Paper,{className:t,...e})}function EntityDataTableFooter({className:t,...e}){return(0,jsx_runtime_1.jsx)("div",{"data-slot":"data-table-footer",className:(0,utils_1.cn)("flex flex-row items-center justify-between px-6 py-3",t),...e})}function EntityDataTableFooterText({className:t,...e}){return(0,jsx_runtime_1.jsx)("p",{"data-slot":"data-table-footer-text",className:(0,utils_1.cn)("text-muted-foreground text-sm leading-8 italic",t),...e})}exports.EntityDataTable={Root:EntityDataTableRoot,Footer:EntityDataTableFooter,FooterText:EntityDataTableFooterText};
@@ -1,35 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ComboBoxField = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = __importDefault(require("react"));
9
- const form_1 = require("../../../components/ui/form");
10
- const popover_1 = require("../../../components/ui/popover");
11
- const command_1 = require("../../../components/ui/command");
12
- const button_1 = require("../../../components/ui/button");
13
- const utils_1 = require("../../../lib/utils");
14
- const lucide_react_1 = require("lucide-react");
15
- const ComboBoxField = ({ name, label, placeholder, emptyMessage, required, children, readOnly, ...others }) => {
16
- const [open, setOpen] = react_1.default.useState(false);
17
- // with the value and label
18
- const options = react_1.default.useMemo(() => react_1.default.Children.map(react_1.default.Children.toArray(children), (child) => react_1.default.isValidElement(child) && {
19
- value: child.props.value,
20
- label: child.props.children
21
- }), [children]);
22
- const getDisplayValue = react_1.default.useCallback((value) => {
23
- return options.find((option) => option.value === value)?.label ?? null;
24
- }, [options]);
25
- return ((0, jsx_runtime_1.jsx)(form_1.FormField, { name: name, ...others, render: ({ field }) => ((0, jsx_runtime_1.jsxs)(form_1.FormItem, { required: required, children: [label && (0, jsx_runtime_1.jsx)(form_1.FormLabel, { children: label }), (0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: readOnly ? false : open, onOpenChange: readOnly ? () => { } : setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(button_1.Button, { variant: "outline", role: "combobox", "aria-expanded": readOnly ? false : open, readOnly: readOnly, tabIndex: 0, className: (0, utils_1.cn)('border-input-border bg-input hover:bg-input text-foreground h-10 w-full justify-between rounded-md border px-4 py-2 pl-6 text-left text-base font-normal focus:ring-2 focus:ring-offset-0 focus:outline-none', !field.value && 'text-muted-foreground'), children: [getDisplayValue(field.value) ?? placeholder, !readOnly && ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" }))] }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-(--radix-popover-trigger-width) p-0", children: (0, jsx_runtime_1.jsxs)(command_1.Command, { children: [(0, jsx_runtime_1.jsx)(command_1.CommandInput, { placeholder: placeholder }), (0, jsx_runtime_1.jsxs)(command_1.CommandList, { children: [(0, jsx_runtime_1.jsx)(command_1.CommandEmpty, { children: emptyMessage }), (0, jsx_runtime_1.jsx)(command_1.CommandGroup, { children: react_1.default.Children.map(react_1.default.Children.toArray(children), (child) => react_1.default.isValidElement(child)
26
- ? react_1.default.cloneElement(child, {
27
- keywords: [child.props.children],
28
- onSelect: (value) => {
29
- field.onChange(field.value !== value ? value : '');
30
- setOpen(false);
31
- }
32
- })
33
- : child) })] })] }) })] }), (0, jsx_runtime_1.jsx)(form_1.FormMessage, {})] })) }));
34
- };
35
- exports.ComboBoxField = ComboBoxField;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(o){return o&&o.__esModule?o:{"default":o}};Object.defineProperty(exports,"__esModule",{value:true});exports.ComboBoxField=void 0;const jsx_runtime_1=require("react/jsx-runtime");const react_1=__importDefault(require("react"));const form_1=require("../../../components/ui/form");const popover_1=require("../../../components/ui/popover");const command_1=require("../../../components/ui/command");const button_1=require("../../../components/ui/button");const utils_1=require("../../../lib/utils");const lucide_react_1=require("lucide-react");const ComboBoxField=({name:o,label:s,placeholder:u,emptyMessage:p,required:c,children:n,readOnly:r,...m})=>{const[a,l]=react_1.default.useState(false);const i=react_1.default.useMemo(()=>react_1.default.Children.map(react_1.default.Children.toArray(n),e=>react_1.default.isValidElement(e)&&{value:e.props.value,label:e.props.children}),[n]);const x=react_1.default.useCallback(e=>{return i.find(t=>t.value===e)?.label??null},[i]);return(0,jsx_runtime_1.jsx)(form_1.FormField,{name:o,...m,render:({field:e})=>(0,jsx_runtime_1.jsxs)(form_1.FormItem,{required:c,children:[s&&(0,jsx_runtime_1.jsx)(form_1.FormLabel,{children:s}),(0,jsx_runtime_1.jsxs)(popover_1.Popover,{open:r?false:a,onOpenChange:r?()=>{}:l,children:[(0,jsx_runtime_1.jsx)(popover_1.PopoverTrigger,{asChild:true,children:(0,jsx_runtime_1.jsxs)(button_1.Button,{variant:"outline",role:"combobox","aria-expanded":r?false:a,readOnly:r,tabIndex:0,className:(0,utils_1.cn)("border-input-border bg-input hover:bg-input text-foreground h-10 w-full justify-between rounded-md border px-4 py-2 pl-6 text-left text-base font-normal focus:ring-2 focus:ring-offset-0 focus:outline-none",!e.value&&"text-muted-foreground"),children:[x(e.value)??u,!r&&(0,jsx_runtime_1.jsx)(lucide_react_1.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,jsx_runtime_1.jsx)(popover_1.PopoverContent,{className:"w-(--radix-popover-trigger-width) p-0",children:(0,jsx_runtime_1.jsxs)(command_1.Command,{children:[(0,jsx_runtime_1.jsx)(command_1.CommandInput,{placeholder:u}),(0,jsx_runtime_1.jsxs)(command_1.CommandList,{children:[(0,jsx_runtime_1.jsx)(command_1.CommandEmpty,{children:p}),(0,jsx_runtime_1.jsx)(command_1.CommandGroup,{children:react_1.default.Children.map(react_1.default.Children.toArray(n),t=>react_1.default.isValidElement(t)?react_1.default.cloneElement(t,{keywords:[t.props.children],onSelect:d=>{e.onChange(e.value!==d?d:"");l(false)}}):t)})]})]})})]}),(0,jsx_runtime_1.jsx)(form_1.FormMessage,{})]})})};exports.ComboBoxField=ComboBoxField;
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CountryField = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const command_1 = require("../../../components/ui/command");
6
- const combo_box_field_1 = require("../combo-box-field");
7
- const country_utils_1 = require("../../../utils/country-utils");
8
- const CountryField = ({ ...others }) => {
9
- return ((0, jsx_runtime_1.jsx)(combo_box_field_1.ComboBoxField, { ...others, children: (0, country_utils_1.getCountries)().map((country) => ((0, jsx_runtime_1.jsx)(command_1.CommandItem, { value: country.code, children: country.name }, country.code))) }));
10
- };
11
- exports.CountryField = CountryField;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.CountryField=void 0;const jsx_runtime_1=require("react/jsx-runtime");const command_1=require("../../../components/ui/command");const combo_box_field_1=require("../combo-box-field");const country_utils_1=require("../../../utils/country-utils");const CountryField=({...o})=>{return(0,jsx_runtime_1.jsx)(combo_box_field_1.ComboBoxField,{...o,children:(0,country_utils_1.getCountries)().map(e=>(0,jsx_runtime_1.jsx)(command_1.CommandItem,{value:e.code,children:e.name},e.code))})};exports.CountryField=CountryField;
@@ -1,83 +1 @@
1
- 'use client';
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.DatePickerField = void 0;
41
- const jsx_runtime_1 = require("react/jsx-runtime");
42
- const button_1 = require("../../../components/ui/button");
43
- const calendar_1 = require("../../../components/ui/calendar");
44
- const form_1 = require("../../../components/ui/form");
45
- const popover_1 = require("../../../components/ui/popover");
46
- const utils_1 = require("../../../lib/utils");
47
- const dayjs_1 = __importDefault(require("dayjs"));
48
- const lucide_react_1 = require("lucide-react");
49
- const React = __importStar(require("react"));
50
- const locale_1 = require("react-day-picker/locale");
51
- const DatePickerField = ({ name, label, tooltip, labelExtra, description, placeholder, disabled, readOnly, control, required, dateFormat = 'MMM DD, YYYY', align = 'start', valueAsString, locale = locale_1.enUS, ...others }) => {
52
- const [open, setOpen] = React.useState(false);
53
- return ((0, jsx_runtime_1.jsx)(form_1.FormField, { name: name, control: control, render: ({ field }) => {
54
- const convertFieldValueToDate = (fieldValue) => {
55
- if (!fieldValue)
56
- return undefined;
57
- if (valueAsString) {
58
- const parsed = (0, dayjs_1.default)(fieldValue);
59
- return parsed.isValid() ? parsed.toDate() : undefined;
60
- }
61
- return fieldValue;
62
- };
63
- const convertDateToOutputFormat = (date) => {
64
- if (!date)
65
- return undefined;
66
- if (valueAsString) {
67
- const parsed = (0, dayjs_1.default)(date);
68
- return parsed.isValid() ? parsed.format('YYYY-MM-DD') : undefined;
69
- }
70
- return date;
71
- };
72
- const value = convertFieldValueToDate(field.value);
73
- const handleSelect = (date) => {
74
- field.onChange(convertDateToOutputFormat(date));
75
- };
76
- return ((0, jsx_runtime_1.jsxs)(form_1.FormItem, { required: required, children: [label && ((0, jsx_runtime_1.jsx)(form_1.FormLabel, { extra: tooltip ? (0, jsx_runtime_1.jsx)(form_1.FormTooltip, { children: tooltip }) : labelExtra, children: label })), (0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsx)(form_1.FormControl, { children: (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", disabled: disabled, className: (0, utils_1.cn)('bg-input hover:bg-input border-input-border text-foreground h-10 w-full justify-start rounded-md px-2.5 font-normal', readOnly && 'pointer-events-none', open && 'ring-ring ring-2 ring-offset-0'), "data-testid": others['data-testid'], icon: (0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { className: "size-4" }), children: value ? ((0, jsx_runtime_1.jsx)("span", { className: "text-foreground flex-1 text-left font-bold", children: (0, dayjs_1.default)(value).format(dateFormat) })) : ((0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground flex-1 text-left", children: placeholder })) }) }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-auto p-0", align: align, children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: "single",
77
- // `required` mirrors the field's own required: a required
78
- // field is not emptied by a re-click; an optional one keeps
79
- // react-day-picker's clear gesture.
80
- required: required, defaultMonth: value, selected: value, onSelect: handleSelect, disabled: disabled || readOnly, locale: locale }) })] }), (0, jsx_runtime_1.jsx)(form_1.FormMessage, {}), description && (0, jsx_runtime_1.jsx)(form_1.FormDescription, { children: description })] }));
81
- } }));
82
- };
83
- exports.DatePickerField = DatePickerField;
1
+ "use client";"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,o,r){if(r===void 0)r=o;var n=Object.getOwnPropertyDescriptor(e,o);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[o]}}}Object.defineProperty(t,r,n)}):(function(t,e,o,r){if(r===void 0)r=o;t[r]=e[o]}));var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:true,value:e})}):function(t,e){t["default"]=e});var __importStar=this&&this.__importStar||(function(){var t=function(e){t=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)if(Object.prototype.hasOwnProperty.call(o,n))r[r.length]=n;return r};return t(e)};return function(e){if(e&&e.__esModule)return e;var o={};if(e!=null){for(var r=t(e),n=0;n<r.length;n++)if(r[n]!=="default")__createBinding(o,e,r[n])}__setModuleDefault(o,e);return o}})();var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{"default":t}};Object.defineProperty(exports,"__esModule",{value:true});exports.DatePickerField=void 0;const jsx_runtime_1=require("react/jsx-runtime");const button_1=require("../../../components/ui/button");const calendar_1=require("../../../components/ui/calendar");const form_1=require("../../../components/ui/form");const popover_1=require("../../../components/ui/popover");const utils_1=require("../../../lib/utils");const dayjs_1=__importDefault(require("dayjs"));const lucide_react_1=require("lucide-react");const React=__importStar(require("react"));const locale_1=require("react-day-picker/locale");const DatePickerField=({name:t,label:e,tooltip:o,labelExtra:r,description:n,placeholder:_,disabled:u,readOnly:c,control:h,required:l,dateFormat:x="MMM DD, YYYY",align:j="start",valueAsString:d,locale:m=locale_1.enUS,...g})=>{const[f,v]=React.useState(false);return(0,jsx_runtime_1.jsx)(form_1.FormField,{name:t,control:h,render:({field:p})=>{const b=i=>{if(!i)return void 0;if(d){const s=(0,dayjs_1.default)(i);return s.isValid()?s.toDate():void 0}return i};const D=i=>{if(!i)return void 0;if(d){const s=(0,dayjs_1.default)(i);return s.isValid()?s.format("YYYY-MM-DD"):void 0}return i};const a=b(p.value);const F=i=>{p.onChange(D(i))};return(0,jsx_runtime_1.jsxs)(form_1.FormItem,{required:l,children:[e&&(0,jsx_runtime_1.jsx)(form_1.FormLabel,{extra:o?(0,jsx_runtime_1.jsx)(form_1.FormTooltip,{children:o}):r,children:e}),(0,jsx_runtime_1.jsxs)(popover_1.Popover,{open:f,onOpenChange:v,children:[(0,jsx_runtime_1.jsx)(popover_1.PopoverTrigger,{asChild:true,children:(0,jsx_runtime_1.jsx)(form_1.FormControl,{children:(0,jsx_runtime_1.jsx)(button_1.Button,{variant:"outline",disabled:u,className:(0,utils_1.cn)("bg-input hover:bg-input border-input-border text-foreground h-10 w-full justify-start rounded-md px-2.5 font-normal",c&&"pointer-events-none",f&&"ring-ring ring-2 ring-offset-0"),"data-testid":g["data-testid"],icon:(0,jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon,{className:"size-4"}),children:a?(0,jsx_runtime_1.jsx)("span",{className:"text-foreground flex-1 text-left font-bold",children:(0,dayjs_1.default)(a).format(x)}):(0,jsx_runtime_1.jsx)("span",{className:"text-muted-foreground flex-1 text-left",children:_})})})}),(0,jsx_runtime_1.jsx)(popover_1.PopoverContent,{className:"w-auto p-0",align:j,children:(0,jsx_runtime_1.jsx)(calendar_1.Calendar,{mode:"single",required:l,defaultMonth:a,selected:a,onSelect:F,disabled:u||c,locale:m})})]}),(0,jsx_runtime_1.jsx)(form_1.FormMessage,{}),n&&(0,jsx_runtime_1.jsx)(form_1.FormDescription,{children:n})]})}})};exports.DatePickerField=DatePickerField;
@@ -1,58 +1 @@
1
- 'use client';
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.DateRangeField = void 0;
41
- const jsx_runtime_1 = require("react/jsx-runtime");
42
- const button_1 = require("../../../components/ui/button");
43
- const calendar_1 = require("../../../components/ui/calendar");
44
- const form_1 = require("../../../components/ui/form");
45
- const popover_1 = require("../../../components/ui/popover");
46
- const utils_1 = require("../../../lib/utils");
47
- const dayjs_1 = __importDefault(require("dayjs"));
48
- const lucide_react_1 = require("lucide-react");
49
- const React = __importStar(require("react"));
50
- const locale_1 = require("react-day-picker/locale");
51
- const DateRangeField = ({ name, label, tooltip, labelExtra, description, placeholder, disabled, readOnly, control, required, numberOfMonths = 2, dateFormat = 'MMM DD, YYYY', align = 'start', locale = locale_1.enUS, ...others }) => {
52
- const [open, setOpen] = React.useState(false);
53
- return ((0, jsx_runtime_1.jsx)(form_1.FormField, { name: name, control: control, render: ({ field }) => {
54
- const value = field.value;
55
- return ((0, jsx_runtime_1.jsxs)(form_1.FormItem, { required: required, children: [label && ((0, jsx_runtime_1.jsx)(form_1.FormLabel, { extra: tooltip ? (0, jsx_runtime_1.jsx)(form_1.FormTooltip, { children: tooltip }) : labelExtra, children: label })), (0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsx)(form_1.FormControl, { children: (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", disabled: disabled, className: (0, utils_1.cn)('bg-input hover:bg-input border-input-border text-foreground h-10 w-full justify-start rounded-md px-2.5 font-normal', readOnly && 'pointer-events-none', open && 'ring-ring ring-2 ring-offset-0'), "data-testid": others['data-testid'], icon: (0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { className: "size-4" }), children: value?.from ? ((0, jsx_runtime_1.jsx)("span", { className: "text-foreground flex-1 text-left font-bold", children: value.to ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, dayjs_1.default)(value.from).format(dateFormat), " -", ' ', (0, dayjs_1.default)(value.to).format(dateFormat)] })) : ((0, dayjs_1.default)(value.from).format(dateFormat)) })) : ((0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground flex-1 text-left", children: placeholder })) }) }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-auto p-0", align: align, children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: "range", defaultMonth: value?.from, selected: value, onSelect: field.onChange, numberOfMonths: numberOfMonths, disabled: disabled || readOnly, locale: locale }) })] }), (0, jsx_runtime_1.jsx)(form_1.FormMessage, {}), description && (0, jsx_runtime_1.jsx)(form_1.FormDescription, { children: description })] }));
56
- } }));
57
- };
58
- exports.DateRangeField = DateRangeField;
1
+ "use client";"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,o,r){if(r===void 0)r=o;var n=Object.getOwnPropertyDescriptor(e,o);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[o]}}}Object.defineProperty(t,r,n)}):(function(t,e,o,r){if(r===void 0)r=o;t[r]=e[o]}));var __setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:true,value:e})}):function(t,e){t["default"]=e});var __importStar=this&&this.__importStar||(function(){var t=function(e){t=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)if(Object.prototype.hasOwnProperty.call(o,n))r[r.length]=n;return r};return t(e)};return function(e){if(e&&e.__esModule)return e;var o={};if(e!=null){for(var r=t(e),n=0;n<r.length;n++)if(r[n]!=="default")__createBinding(o,e,r[n])}__setModuleDefault(o,e);return o}})();var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{"default":t}};Object.defineProperty(exports,"__esModule",{value:true});exports.DateRangeField=void 0;const jsx_runtime_1=require("react/jsx-runtime");const button_1=require("../../../components/ui/button");const calendar_1=require("../../../components/ui/calendar");const form_1=require("../../../components/ui/form");const popover_1=require("../../../components/ui/popover");const utils_1=require("../../../lib/utils");const dayjs_1=__importDefault(require("dayjs"));const lucide_react_1=require("lucide-react");const React=__importStar(require("react"));const locale_1=require("react-day-picker/locale");const DateRangeField=({name:t,label:e,tooltip:o,labelExtra:r,description:n,placeholder:f,disabled:s,readOnly:u,control:d,required:p,numberOfMonths:_=2,dateFormat:a="MMM DD, YYYY",align:h="start",locale:x=locale_1.enUS,...g})=>{const[l,j]=React.useState(false);return(0,jsx_runtime_1.jsx)(form_1.FormField,{name:t,control:d,render:({field:c})=>{const i=c.value;return(0,jsx_runtime_1.jsxs)(form_1.FormItem,{required:p,children:[e&&(0,jsx_runtime_1.jsx)(form_1.FormLabel,{extra:o?(0,jsx_runtime_1.jsx)(form_1.FormTooltip,{children:o}):r,children:e}),(0,jsx_runtime_1.jsxs)(popover_1.Popover,{open:l,onOpenChange:j,children:[(0,jsx_runtime_1.jsx)(popover_1.PopoverTrigger,{asChild:true,children:(0,jsx_runtime_1.jsx)(form_1.FormControl,{children:(0,jsx_runtime_1.jsx)(button_1.Button,{variant:"outline",disabled:s,className:(0,utils_1.cn)("bg-input hover:bg-input border-input-border text-foreground h-10 w-full justify-start rounded-md px-2.5 font-normal",u&&"pointer-events-none",l&&"ring-ring ring-2 ring-offset-0"),"data-testid":g["data-testid"],icon:(0,jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon,{className:"size-4"}),children:i?.from?(0,jsx_runtime_1.jsx)("span",{className:"text-foreground flex-1 text-left font-bold",children:i.to?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,dayjs_1.default)(i.from).format(a)," -"," ",(0,dayjs_1.default)(i.to).format(a)]}):(0,dayjs_1.default)(i.from).format(a)}):(0,jsx_runtime_1.jsx)("span",{className:"text-muted-foreground flex-1 text-left",children:f})})})}),(0,jsx_runtime_1.jsx)(popover_1.PopoverContent,{className:"w-auto p-0",align:h,children:(0,jsx_runtime_1.jsx)(calendar_1.Calendar,{mode:"range",defaultMonth:i?.from,selected:i,onSelect:c.onChange,numberOfMonths:_,disabled:s||u,locale:x})})]}),(0,jsx_runtime_1.jsx)(form_1.FormMessage,{}),n&&(0,jsx_runtime_1.jsx)(form_1.FormDescription,{children:n})]})}})};exports.DateRangeField=DateRangeField;