@akanjs/ui 0.0.150 → 0.0.152

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 (405) hide show
  1. package/BottomSheet.d.ts +13 -0
  2. package/Button.d.ts +9 -0
  3. package/ClientSide.d.ts +6 -0
  4. package/Copy.d.ts +6 -0
  5. package/CsrImage.d.ts +11 -0
  6. package/Data/CardList.d.ts +36 -0
  7. package/Data/Dashboard.d.ts +15 -0
  8. package/Data/Insight.d.ts +8 -0
  9. package/Data/Item.d.ts +74 -0
  10. package/Data/ListContainer.d.ts +38 -0
  11. package/Data/Pagination.d.ts +6 -0
  12. package/Data/QueryMaker.d.ts +9 -0
  13. package/Data/TableList.d.ts +26 -0
  14. package/Data/index.d.ts +10 -0
  15. package/Data/index_.d.ts +8 -0
  16. package/DatePicker.d.ts +37 -0
  17. package/Dialog/Action.d.ts +5 -0
  18. package/Dialog/Close.d.ts +5 -0
  19. package/Dialog/Content.d.ts +6 -0
  20. package/Dialog/Modal.d.ts +8 -0
  21. package/Dialog/Provider.d.ts +7 -0
  22. package/Dialog/Title.d.ts +5 -0
  23. package/Dialog/Trigger.d.ts +5 -0
  24. package/Dialog/context.d.ts +10 -0
  25. package/Dialog/index.d.ts +9 -0
  26. package/DragAction.d.ts +24 -0
  27. package/DraggableList.d.ts +25 -0
  28. package/Dropdown.d.ts +10 -0
  29. package/Empty.d.ts +9 -0
  30. package/Field.d.ts +404 -0
  31. package/FontFace.d.ts +6 -0
  32. package/Image.d.ts +17 -0
  33. package/InfiniteScroll.d.ts +10 -0
  34. package/Input.d.ts +85 -0
  35. package/KeyboardAvoiding.d.ts +7 -0
  36. package/Layout/BottomAction.d.ts +5 -0
  37. package/Layout/BottomInset.d.ts +6 -0
  38. package/Layout/BottomTab.d.ts +14 -0
  39. package/Layout/Header.d.ts +7 -0
  40. package/Layout/LeftSider.d.ts +8 -0
  41. package/Layout/Navbar.d.ts +11 -0
  42. package/Layout/RightSider.d.ts +9 -0
  43. package/Layout/Sider.d.ts +6 -0
  44. package/Layout/Template.d.ts +5 -0
  45. package/Layout/TopLeftAction.d.ts +5 -0
  46. package/Layout/Unit.d.ts +6 -0
  47. package/Layout/View.d.ts +5 -0
  48. package/Layout/Zone.d.ts +5 -0
  49. package/Layout/index.d.ts +14 -0
  50. package/Link/Back.d.ts +6 -0
  51. package/Link/Close.d.ts +6 -0
  52. package/Link/CsrLink.d.ts +2 -0
  53. package/Link/NextLink.d.ts +2 -0
  54. package/Link/index.d.ts +8 -0
  55. package/Link/types.d.ts +22 -0
  56. package/Load/Edit.d.ts +4 -0
  57. package/Load/Edit_Client.d.ts +25 -0
  58. package/Load/Page.d.ts +10 -0
  59. package/Load/PageCSR.d.ts +11 -0
  60. package/Load/Pagination.d.ts +8 -0
  61. package/Load/Units.d.ts +34 -0
  62. package/Load/View.d.ts +17 -0
  63. package/Load/index.d.ts +8 -0
  64. package/Load/index_.d.ts +3 -0
  65. package/Loading/Area.d.ts +1 -0
  66. package/Loading/Button.d.ts +7 -0
  67. package/Loading/Input.d.ts +7 -0
  68. package/Loading/ProgressBar.d.ts +6 -0
  69. package/Loading/Skeleton.d.ts +7 -0
  70. package/Loading/Spin.d.ts +7 -0
  71. package/Loading/index.d.ts +8 -0
  72. package/Menu.d.ts +26 -0
  73. package/Modal.d.ts +23 -0
  74. package/Model/Edit.d.ts +15 -0
  75. package/Model/EditModal.d.ts +33 -0
  76. package/Model/EditWrapper.d.ts +11 -0
  77. package/Model/LoadInit.d.ts +10 -0
  78. package/Model/New.d.ts +15 -0
  79. package/Model/NewWrapper.d.ts +12 -0
  80. package/Model/NewWrapper_Client.d.ts +12 -0
  81. package/Model/Remove.d.ts +10 -0
  82. package/Model/RemoveWrapper.d.ts +11 -0
  83. package/Model/SureToRemove.d.ts +10 -0
  84. package/Model/View.d.ts +19 -0
  85. package/Model/ViewEditModal.d.ts +11 -0
  86. package/Model/ViewModal.d.ts +13 -0
  87. package/Model/ViewWrapper.d.ts +11 -0
  88. package/Model/index.d.ts +15 -0
  89. package/Model/index_.d.ts +13 -0
  90. package/More.d.ts +12 -0
  91. package/ObjectId.d.ts +5 -0
  92. package/Pagination.d.ts +14 -0
  93. package/Popconfirm.d.ts +18 -0
  94. package/Portal.d.ts +6 -0
  95. package/Radio.d.ts +19 -0
  96. package/RecentTime.d.ts +7 -0
  97. package/Refresh.d.ts +7 -0
  98. package/ScreenNavigator.d.ts +18 -0
  99. package/Select.d.ts +29 -0
  100. package/Signal/Arg.d.ts +75 -0
  101. package/Signal/Doc.d.ts +19 -0
  102. package/Signal/GraphQL.d.ts +31 -0
  103. package/Signal/Listener.d.ts +9 -0
  104. package/Signal/Message.d.ts +26 -0
  105. package/Signal/Object.d.ts +19 -0
  106. package/Signal/PubSub.d.ts +26 -0
  107. package/Signal/Request.d.ts +8 -0
  108. package/Signal/Response.d.ts +16 -0
  109. package/Signal/RestApi.d.ts +39 -0
  110. package/Signal/WebSocket.d.ts +9 -0
  111. package/Signal/index.d.ts +20 -0
  112. package/System/CSR.d.ts +31 -0
  113. package/System/Client.d.ts +48 -0
  114. package/System/Common.d.ts +66 -0
  115. package/System/DevModeToggle.d.ts +1 -0
  116. package/System/Gtag.d.ts +3 -0
  117. package/System/HealthCheck.d.ts +5 -0
  118. package/System/Messages.d.ts +1 -0
  119. package/System/Reconnect.d.ts +6 -0
  120. package/System/Root.d.ts +5 -0
  121. package/System/SSR.d.ts +26 -0
  122. package/System/SelectLanguage.d.ts +5 -0
  123. package/System/ThemeToggle.d.ts +1 -0
  124. package/System/index.d.ts +11 -0
  125. package/Tab/Menu.d.ts +11 -0
  126. package/Tab/Menus.d.ts +5 -0
  127. package/Tab/Panel.d.ts +7 -0
  128. package/Tab/Provider.d.ts +6 -0
  129. package/Tab/context.d.ts +9 -0
  130. package/Tab/index.d.ts +7 -0
  131. package/Table.d.ts +26 -0
  132. package/ToggleSelect.d.ts +31 -0
  133. package/Unauthorized.d.ts +9 -0
  134. package/cjs/BottomSheet.js +109 -0
  135. package/cjs/Button.js +71 -0
  136. package/cjs/ClientSide.js +27 -0
  137. package/cjs/Copy.js +38 -0
  138. package/cjs/CsrImage.js +51 -0
  139. package/cjs/Data/CardList.js +127 -0
  140. package/cjs/Data/Dashboard.js +64 -0
  141. package/cjs/Data/Insight.js +42 -0
  142. package/cjs/Data/Item.js +219 -0
  143. package/cjs/Data/ListContainer.js +285 -0
  144. package/cjs/Data/Pagination.js +65 -0
  145. package/cjs/Data/QueryMaker.js +326 -0
  146. package/cjs/Data/TableList.js +150 -0
  147. package/cjs/Data/index.js +33 -0
  148. package/cjs/Data/index_.js +49 -0
  149. package/cjs/DatePicker.js +178 -0
  150. package/cjs/Dialog/Action.js +32 -0
  151. package/cjs/Dialog/Close.js +39 -0
  152. package/cjs/Dialog/Content.js +28 -0
  153. package/cjs/Dialog/Modal.js +166 -0
  154. package/cjs/Dialog/Provider.js +47 -0
  155. package/cjs/Dialog/Title.js +32 -0
  156. package/cjs/Dialog/Trigger.js +39 -0
  157. package/cjs/Dialog/context.js +32 -0
  158. package/cjs/Dialog/index.js +37 -0
  159. package/cjs/DragAction.js +112 -0
  160. package/cjs/DraggableList.js +142 -0
  161. package/cjs/Dropdown.js +67 -0
  162. package/cjs/Empty.js +45 -0
  163. package/cjs/Field.js +1231 -0
  164. package/cjs/FontFace.js +77 -0
  165. package/cjs/Image.js +62 -0
  166. package/cjs/InfiniteScroll.js +70 -0
  167. package/cjs/Input.js +457 -0
  168. package/cjs/KeyboardAvoiding.js +66 -0
  169. package/cjs/Layout/BottomAction.js +27 -0
  170. package/cjs/Layout/BottomInset.js +54 -0
  171. package/cjs/Layout/BottomTab.js +62 -0
  172. package/cjs/Layout/Header.js +56 -0
  173. package/cjs/Layout/LeftSider.js +52 -0
  174. package/cjs/Layout/Navbar.js +45 -0
  175. package/cjs/Layout/RightSider.js +58 -0
  176. package/cjs/Layout/Sider.js +52 -0
  177. package/cjs/Layout/Template.js +27 -0
  178. package/cjs/Layout/TopLeftAction.js +40 -0
  179. package/cjs/Layout/Unit.js +28 -0
  180. package/cjs/Layout/View.js +27 -0
  181. package/cjs/Layout/Zone.js +27 -0
  182. package/cjs/Layout/index.js +48 -0
  183. package/cjs/Link/Back.js +28 -0
  184. package/cjs/Link/Close.js +37 -0
  185. package/cjs/Link/CsrLink.js +50 -0
  186. package/cjs/Link/NextLink.js +72 -0
  187. package/cjs/Link/index.js +48 -0
  188. package/cjs/{src/index.js → Link/types.js} +2 -10
  189. package/cjs/Load/Edit.js +43 -0
  190. package/cjs/Load/Edit_Client.js +94 -0
  191. package/cjs/Load/Page.js +35 -0
  192. package/cjs/Load/PageCSR.js +68 -0
  193. package/cjs/Load/Pagination.js +90 -0
  194. package/cjs/Load/Units.js +239 -0
  195. package/cjs/Load/View.js +89 -0
  196. package/cjs/Load/index.js +42 -0
  197. package/cjs/Load/index_.js +39 -0
  198. package/cjs/Loading/Area.js +29 -0
  199. package/cjs/Loading/Button.js +34 -0
  200. package/cjs/Loading/Input.js +34 -0
  201. package/cjs/Loading/ProgressBar.js +30 -0
  202. package/cjs/Loading/Skeleton.js +33 -0
  203. package/cjs/Loading/Spin.js +28 -0
  204. package/cjs/Loading/index.js +29 -0
  205. package/cjs/Menu.js +231 -0
  206. package/cjs/Modal.js +88 -0
  207. package/cjs/Model/Edit.js +67 -0
  208. package/cjs/Model/EditModal.js +253 -0
  209. package/cjs/Model/EditWrapper.js +49 -0
  210. package/cjs/Model/LoadInit.js +28 -0
  211. package/cjs/Model/New.js +67 -0
  212. package/cjs/Model/NewWrapper.js +29 -0
  213. package/cjs/Model/NewWrapper_Client.js +67 -0
  214. package/cjs/Model/Remove.js +92 -0
  215. package/cjs/Model/RemoveWrapper.js +49 -0
  216. package/cjs/Model/SureToRemove.js +125 -0
  217. package/cjs/Model/View.js +54 -0
  218. package/cjs/Model/ViewEditModal.js +129 -0
  219. package/cjs/Model/ViewModal.js +93 -0
  220. package/cjs/Model/ViewWrapper.js +49 -0
  221. package/cjs/Model/index.js +38 -0
  222. package/cjs/Model/index_.js +58 -0
  223. package/cjs/More.js +71 -0
  224. package/cjs/ObjectId.js +41 -0
  225. package/cjs/Pagination.js +115 -0
  226. package/cjs/Popconfirm.js +124 -0
  227. package/cjs/Portal.js +27 -0
  228. package/cjs/Radio.js +57 -0
  229. package/cjs/RecentTime.js +87 -0
  230. package/cjs/Refresh.js +46 -0
  231. package/cjs/ScreenNavigator.js +122 -0
  232. package/cjs/Select.js +283 -0
  233. package/cjs/Signal/Arg.js +277 -0
  234. package/cjs/Signal/Doc.js +258 -0
  235. package/cjs/Signal/GraphQL.js +261 -0
  236. package/cjs/Signal/Listener.js +66 -0
  237. package/cjs/Signal/Message.js +276 -0
  238. package/cjs/Signal/Object.js +131 -0
  239. package/cjs/Signal/PubSub.js +273 -0
  240. package/cjs/Signal/Request.js +45 -0
  241. package/cjs/Signal/Response.js +66 -0
  242. package/cjs/Signal/RestApi.js +357 -0
  243. package/cjs/Signal/WebSocket.js +69 -0
  244. package/cjs/Signal/index.js +42 -0
  245. package/cjs/System/CSR.js +395 -0
  246. package/cjs/System/Client.js +204 -0
  247. package/cjs/System/Common.js +68 -0
  248. package/cjs/System/DevModeToggle.js +42 -0
  249. package/cjs/System/Gtag.js +71 -0
  250. package/cjs/System/HealthCheck.js +61 -0
  251. package/cjs/System/Messages.js +173 -0
  252. package/cjs/System/Reconnect.js +86 -0
  253. package/cjs/System/Root.js +31 -0
  254. package/cjs/System/SSR.js +162 -0
  255. package/cjs/System/SelectLanguage.js +62 -0
  256. package/cjs/System/ThemeToggle.js +44 -0
  257. package/cjs/System/index.js +56 -0
  258. package/cjs/Tab/Menu.js +71 -0
  259. package/cjs/Tab/Menus.js +27 -0
  260. package/cjs/Tab/Panel.js +43 -0
  261. package/cjs/Tab/Provider.js +32 -0
  262. package/cjs/Tab/context.js +30 -0
  263. package/cjs/Tab/index.js +33 -0
  264. package/cjs/Table.js +84 -0
  265. package/cjs/ToggleSelect.js +123 -0
  266. package/cjs/Unauthorized.js +45 -0
  267. package/cjs/index.js +88 -2
  268. package/esm/BottomSheet.js +90 -0
  269. package/esm/Button.js +52 -0
  270. package/esm/ClientSide.js +8 -0
  271. package/esm/Copy.js +19 -0
  272. package/esm/CsrImage.js +32 -0
  273. package/esm/Data/CardList.js +98 -0
  274. package/esm/Data/Dashboard.js +45 -0
  275. package/esm/Data/Insight.js +23 -0
  276. package/esm/Data/Item.js +200 -0
  277. package/esm/Data/ListContainer.js +262 -0
  278. package/esm/Data/Pagination.js +46 -0
  279. package/esm/Data/QueryMaker.js +315 -0
  280. package/esm/Data/TableList.js +121 -0
  281. package/esm/Data/index.js +14 -0
  282. package/esm/Data/index_.js +20 -0
  283. package/esm/DatePicker.js +149 -0
  284. package/esm/Dialog/Action.js +13 -0
  285. package/esm/Dialog/Close.js +20 -0
  286. package/esm/Dialog/Content.js +9 -0
  287. package/esm/Dialog/Modal.js +137 -0
  288. package/esm/Dialog/Provider.js +18 -0
  289. package/esm/Dialog/Title.js +13 -0
  290. package/esm/Dialog/Trigger.js +20 -0
  291. package/esm/Dialog/context.js +13 -0
  292. package/esm/Dialog/index.js +18 -0
  293. package/esm/DragAction.js +93 -0
  294. package/esm/DraggableList.js +113 -0
  295. package/esm/Dropdown.js +48 -0
  296. package/esm/Empty.js +26 -0
  297. package/esm/Field.js +1212 -0
  298. package/esm/FontFace.js +58 -0
  299. package/esm/Image.js +33 -0
  300. package/esm/InfiniteScroll.js +51 -0
  301. package/esm/Input.js +442 -0
  302. package/esm/KeyboardAvoiding.js +47 -0
  303. package/esm/Layout/BottomAction.js +8 -0
  304. package/esm/Layout/BottomInset.js +35 -0
  305. package/esm/Layout/BottomTab.js +43 -0
  306. package/esm/Layout/Header.js +37 -0
  307. package/esm/Layout/LeftSider.js +33 -0
  308. package/esm/Layout/Navbar.js +26 -0
  309. package/esm/Layout/RightSider.js +39 -0
  310. package/esm/Layout/Sider.js +33 -0
  311. package/esm/Layout/Template.js +8 -0
  312. package/esm/Layout/TopLeftAction.js +21 -0
  313. package/esm/Layout/Unit.js +9 -0
  314. package/esm/Layout/View.js +8 -0
  315. package/esm/Layout/Zone.js +8 -0
  316. package/esm/Layout/index.js +29 -0
  317. package/esm/Link/Back.js +9 -0
  318. package/esm/Link/Close.js +18 -0
  319. package/esm/Link/CsrLink.js +31 -0
  320. package/esm/Link/NextLink.js +43 -0
  321. package/esm/Link/index.js +19 -0
  322. package/esm/Link/types.js +0 -0
  323. package/esm/Load/Edit.js +14 -0
  324. package/esm/Load/Edit_Client.js +75 -0
  325. package/esm/Load/Page.js +16 -0
  326. package/esm/Load/PageCSR.js +49 -0
  327. package/esm/Load/Pagination.js +71 -0
  328. package/esm/Load/Units.js +220 -0
  329. package/esm/Load/View.js +70 -0
  330. package/esm/Load/index.js +13 -0
  331. package/esm/Load/index_.js +10 -0
  332. package/esm/Loading/Area.js +10 -0
  333. package/esm/Loading/Button.js +15 -0
  334. package/esm/Loading/Input.js +15 -0
  335. package/esm/Loading/ProgressBar.js +11 -0
  336. package/esm/Loading/Skeleton.js +14 -0
  337. package/esm/Loading/Spin.js +9 -0
  338. package/esm/Loading/index.js +10 -0
  339. package/esm/Menu.js +212 -0
  340. package/esm/Modal.js +59 -0
  341. package/esm/Model/Edit.js +38 -0
  342. package/esm/Model/EditModal.js +234 -0
  343. package/esm/Model/EditWrapper.js +30 -0
  344. package/esm/Model/LoadInit.js +9 -0
  345. package/esm/Model/New.js +38 -0
  346. package/esm/Model/NewWrapper.js +10 -0
  347. package/esm/Model/NewWrapper_Client.js +48 -0
  348. package/esm/Model/Remove.js +73 -0
  349. package/esm/Model/RemoveWrapper.js +30 -0
  350. package/esm/Model/SureToRemove.js +106 -0
  351. package/esm/Model/View.js +35 -0
  352. package/esm/Model/ViewEditModal.js +100 -0
  353. package/esm/Model/ViewModal.js +64 -0
  354. package/esm/Model/ViewWrapper.js +30 -0
  355. package/esm/Model/index.js +33 -0
  356. package/esm/Model/index_.js +29 -0
  357. package/esm/More.js +42 -0
  358. package/esm/ObjectId.js +22 -0
  359. package/esm/Pagination.js +96 -0
  360. package/esm/Popconfirm.js +105 -0
  361. package/esm/Portal.js +8 -0
  362. package/esm/Radio.js +38 -0
  363. package/esm/RecentTime.js +58 -0
  364. package/esm/Refresh.js +17 -0
  365. package/esm/ScreenNavigator.js +103 -0
  366. package/esm/Select.js +264 -0
  367. package/esm/Signal/Arg.js +248 -0
  368. package/esm/Signal/Doc.js +229 -0
  369. package/esm/Signal/GraphQL.js +240 -0
  370. package/esm/Signal/Listener.js +47 -0
  371. package/esm/Signal/Message.js +247 -0
  372. package/esm/Signal/Object.js +112 -0
  373. package/esm/Signal/PubSub.js +244 -0
  374. package/esm/Signal/Request.js +26 -0
  375. package/esm/Signal/Response.js +47 -0
  376. package/esm/Signal/RestApi.js +336 -0
  377. package/esm/Signal/WebSocket.js +40 -0
  378. package/esm/Signal/index.js +13 -0
  379. package/esm/System/CSR.js +376 -0
  380. package/esm/System/Client.js +195 -0
  381. package/esm/System/Common.js +49 -0
  382. package/esm/System/DevModeToggle.js +23 -0
  383. package/esm/System/Gtag.js +52 -0
  384. package/esm/System/HealthCheck.js +42 -0
  385. package/esm/System/Messages.js +159 -0
  386. package/esm/System/Reconnect.js +67 -0
  387. package/esm/System/Root.js +12 -0
  388. package/esm/System/SSR.js +143 -0
  389. package/esm/System/SelectLanguage.js +43 -0
  390. package/esm/System/ThemeToggle.js +25 -0
  391. package/esm/System/index.js +27 -0
  392. package/esm/Tab/Menu.js +52 -0
  393. package/esm/Tab/Menus.js +8 -0
  394. package/esm/Tab/Panel.js +24 -0
  395. package/esm/Tab/Provider.js +13 -0
  396. package/esm/Tab/context.js +11 -0
  397. package/esm/Tab/index.js +14 -0
  398. package/esm/Table.js +65 -0
  399. package/esm/ToggleSelect.js +104 -0
  400. package/esm/Unauthorized.js +26 -0
  401. package/esm/index.js +84 -1
  402. package/index.d.ts +41 -1
  403. package/package.json +23 -2
  404. package/esm/src/index.js +0 -4
  405. package/src/index.d.ts +0 -1
package/cjs/Field.js ADDED
@@ -0,0 +1,1231 @@
1
+ "use client";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var Field_exports = {};
20
+ __export(Field_exports, {
21
+ Field: () => Field
22
+ });
23
+ module.exports = __toCommonJS(Field_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_base = require("@akanjs/base");
26
+ var import_client = require("@akanjs/client");
27
+ var import_common = require("@akanjs/common");
28
+ var import_next = require("@akanjs/next");
29
+ var import_store = require("@akanjs/store");
30
+ var import_react = require("react");
31
+ var import_ai = require("react-icons/ai");
32
+ var import_bi = require("react-icons/bi");
33
+ var import_md = require("react-icons/md");
34
+ var import_DraggableList = require("./DraggableList");
35
+ var import_Input = require("./Input");
36
+ var import_Select = require("./Select");
37
+ var import_ToggleSelect = require("./ToggleSelect");
38
+ const Label = ({ className, label, desc, unit, nullable, mode = "edit" }) => {
39
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: (0, import_client.clsx)("flex shrink-0 items-center gap-1", className), children: [
40
+ (0, import_common.capitalize)(label),
41
+ unit ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "animate-fadeIn", children: [
42
+ " (",
43
+ unit,
44
+ ")"
45
+ ] }) : null,
46
+ desc ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "tooltip tooltip-info tooltip-right", "data-tip": desc, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_bi.BiHelpCircle, {}) }) : null,
47
+ nullable ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm text-gray-400", children: "(optional)" }) : null
48
+ ] });
49
+ };
50
+ const Field = ({
51
+ className,
52
+ containerClassName,
53
+ labelClassName,
54
+ label,
55
+ desc,
56
+ nullable,
57
+ children
58
+ }) => {
59
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("w-full", className), children: [
60
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_client.clsx)("mt-2 flex w-full flex-col gap-4 px-4", containerClassName), children })
62
+ ] });
63
+ };
64
+ Field.Label = Label;
65
+ const List = ({
66
+ className,
67
+ labelClassName,
68
+ label,
69
+ desc,
70
+ value,
71
+ onChange,
72
+ onAdd,
73
+ nullable,
74
+ renderItem
75
+ }) => {
76
+ const { l } = (0, import_next.usePage)();
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex w-full flex-col", className), children: [
78
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
79
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-2 flex w-full flex-col gap-2 rounded-md border border-gray-300 p-2", children: [
80
+ value.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex h-full w-full items-center justify-between gap-2", children: [
82
+ renderItem(item, idx),
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex gap-2 border-l border-gray-300 pl-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
+ "button",
85
+ {
86
+ className: "btn btn-xs btn-error btn-square btn-outline",
87
+ onClick: () => {
88
+ onChange(value.filter((_, i) => i !== idx));
89
+ },
90
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_bi.BiTrash, {})
91
+ }
92
+ ) })
93
+ ] }, idx),
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-[0.5px] w-full bg-gray-300 px-2 last:h-0" })
95
+ ] })),
96
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
97
+ "button",
98
+ {
99
+ className: "btn btn-outline",
100
+ onClick: () => {
101
+ onAdd();
102
+ },
103
+ children: [
104
+ "+ ",
105
+ l("shared.addModel", { model: l("appSubRoute.modelName") })
106
+ ]
107
+ }
108
+ )
109
+ ] })
110
+ ] });
111
+ };
112
+ Field.List = List;
113
+ const Text = ({
114
+ label,
115
+ desc,
116
+ labelClassName,
117
+ className,
118
+ value,
119
+ onChange,
120
+ placeholder,
121
+ nullable,
122
+ disabled,
123
+ minlength = nullable ? 0 : 2,
124
+ maxlength = 200,
125
+ transform = (v) => v,
126
+ validate,
127
+ onPressEnter,
128
+ cache,
129
+ inputClassName,
130
+ inputStyleType = "bordered"
131
+ }) => {
132
+ const { l } = (0, import_next.usePage)();
133
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
134
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
135
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
136
+ import_Input.Input,
137
+ {
138
+ cacheKey: cache ? `${label}-${desc}-text` : void 0,
139
+ inputStyleType,
140
+ value: value ?? "",
141
+ nullable,
142
+ placeholder,
143
+ onChange: (value2) => {
144
+ onChange(transform(value2));
145
+ },
146
+ disabled,
147
+ className: (0, import_client.clsx)("w-full", ""),
148
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
149
+ validate: (text) => {
150
+ if (text.length < minlength)
151
+ return l("shared.textTooShortError", { minlength });
152
+ else if (text.length > maxlength)
153
+ return l("shared.textTooLongError", { maxlength });
154
+ else
155
+ return validate?.(text) ?? true;
156
+ },
157
+ onPressEnter
158
+ }
159
+ )
160
+ ] });
161
+ };
162
+ Field.Text = (0, import_react.memo)(Text);
163
+ //! 삭제
164
+ const Price = ({
165
+ label,
166
+ desc,
167
+ labelClassName,
168
+ className,
169
+ value,
170
+ onChange,
171
+ placeholder,
172
+ nullable,
173
+ disabled,
174
+ minlength = nullable ? 0 : 2,
175
+ maxlength = 80,
176
+ transform = (v) => v,
177
+ validate,
178
+ onPressEnter,
179
+ inputClassName,
180
+ inputStyleType = "bordered"
181
+ }) => {
182
+ const { l } = (0, import_next.usePage)();
183
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
184
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
185
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
186
+ import_Input.Input,
187
+ {
188
+ inputStyleType,
189
+ value: value ?? "",
190
+ nullable,
191
+ placeholder: placeholder ?? `~ ${l("shared.priceUnit")}`,
192
+ onChange: (value2) => {
193
+ const withoutComma = value2.replace(/,/g, "").replace(/ /g, "");
194
+ onChange(transform(withoutComma));
195
+ },
196
+ disabled,
197
+ className: (0, import_client.clsx)("w-full", ""),
198
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
199
+ validate: (text) => {
200
+ if (text.length < minlength)
201
+ return l("shared.textTooShortError", { minlength });
202
+ else if (text.length > maxlength)
203
+ return l("shared.textTooLongError", { maxlength });
204
+ else
205
+ return validate?.(text) ?? true;
206
+ },
207
+ onPressEnter
208
+ }
209
+ )
210
+ ] });
211
+ };
212
+ Field.Price = (0, import_react.memo)(Price);
213
+ const TextArea = ({
214
+ label,
215
+ desc,
216
+ labelClassName,
217
+ className,
218
+ value,
219
+ onChange,
220
+ placeholder,
221
+ nullable,
222
+ disabled,
223
+ rows = 3,
224
+ minlength = nullable ? 0 : 2,
225
+ maxlength = 1e3,
226
+ transform = (v) => v,
227
+ validate,
228
+ onPressEnter,
229
+ cache,
230
+ inputClassName
231
+ }) => {
232
+ const { l } = (0, import_next.usePage)();
233
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
234
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
235
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
236
+ import_Input.Input.TextArea,
237
+ {
238
+ value: value ?? "",
239
+ cacheKey: cache ? `${label}-${desc}-textArea` : void 0,
240
+ nullable,
241
+ placeholder,
242
+ onChange: (value2) => {
243
+ onChange(transform(value2));
244
+ },
245
+ disabled,
246
+ rows,
247
+ className: (0, import_client.clsx)("h-full w-full"),
248
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
249
+ validate: (text) => {
250
+ if (text.length < minlength)
251
+ return l("shared.textTooShortError", { minlength });
252
+ else if (text.length > maxlength)
253
+ return l("shared.textTooLongError", { maxlength });
254
+ else
255
+ return validate?.(text) ?? true;
256
+ },
257
+ onPressEnter
258
+ }
259
+ )
260
+ ] });
261
+ };
262
+ Field.TextArea = (0, import_react.memo)(TextArea);
263
+ const Switch = ({
264
+ label,
265
+ desc,
266
+ labelClassName,
267
+ className,
268
+ value,
269
+ onChange,
270
+ disabled,
271
+ inputClassName,
272
+ onDesc,
273
+ offDesc
274
+ }) => {
275
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
276
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable: true, label, desc }) : null,
277
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
278
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
279
+ "input",
280
+ {
281
+ type: "checkbox",
282
+ disabled,
283
+ className: (0, import_client.clsx)("toggle toggle-accent", inputClassName),
284
+ checked: value,
285
+ onChange: (e) => {
286
+ onChange(e.target.checked);
287
+ }
288
+ }
289
+ ),
290
+ onDesc ?? offDesc ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-info text-sm", children: value ? onDesc : offDesc }) : null
291
+ ] })
292
+ ] });
293
+ };
294
+ Field.Switch = Switch;
295
+ const ToggleSelect = ({
296
+ className,
297
+ labelClassName,
298
+ label,
299
+ desc,
300
+ model,
301
+ field,
302
+ items,
303
+ value,
304
+ validate,
305
+ onChange,
306
+ nullable,
307
+ disabled,
308
+ btnClassName
309
+ }) => {
310
+ const { l } = (0, import_next.usePage)();
311
+ const isEnum = items instanceof import_base.Enum;
312
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
313
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
314
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
315
+ import_ToggleSelect.ToggleSelect,
316
+ {
317
+ className: "mt-2",
318
+ nullable: !!nullable,
319
+ btnClassName,
320
+ items: model && field ? (isEnum ? items.values : items).map((item) => ({
321
+ label: l.enum(model, field, item),
322
+ value: item
323
+ })) : isEnum ? items.values : items,
324
+ value,
325
+ onChange: (value2, idx) => {
326
+ onChange(value2);
327
+ },
328
+ disabled,
329
+ validate: (value2) => {
330
+ return validate?.(value2) ?? true;
331
+ }
332
+ }
333
+ )
334
+ ] });
335
+ };
336
+ Field.ToggleSelect = ToggleSelect;
337
+ const MultiToggleSelect = ({
338
+ className,
339
+ labelClassName,
340
+ label,
341
+ desc,
342
+ model,
343
+ field,
344
+ items,
345
+ value,
346
+ minlength,
347
+ maxlength,
348
+ validate,
349
+ onChange,
350
+ disabled
351
+ }) => {
352
+ const { l } = (0, import_next.usePage)();
353
+ const isEnum = items instanceof import_base.Enum;
354
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
355
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable: !!minlength, label, desc }) : null,
356
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
357
+ import_ToggleSelect.ToggleSelect.Multi,
358
+ {
359
+ nullable: !minlength,
360
+ items: model && field ? (isEnum ? items.values : items).map((item) => ({
361
+ label: l.enum(model, field, item),
362
+ value: item
363
+ })) : isEnum ? items.values : items,
364
+ value,
365
+ onChange: (values) => {
366
+ onChange(values);
367
+ },
368
+ disabled,
369
+ validate: (value2) => {
370
+ if (minlength && value2.length < minlength)
371
+ return l("shared.selectTooShortError", { minlength });
372
+ else if (maxlength && value2.length > maxlength)
373
+ return l("shared.selectTooLongError", { maxlength });
374
+ else
375
+ return validate?.(value2) ?? true;
376
+ }
377
+ }
378
+ )
379
+ ] });
380
+ };
381
+ Field.MultiToggleSelect = MultiToggleSelect;
382
+ const TextList = ({
383
+ label,
384
+ desc,
385
+ labelClassName,
386
+ className,
387
+ value,
388
+ onChange,
389
+ placeholder,
390
+ disabled,
391
+ transform = (v) => v,
392
+ minlength = 0,
393
+ maxlength = 50,
394
+ minTextlength = 2,
395
+ maxTextlength = 200,
396
+ cache,
397
+ validate,
398
+ inputClassName
399
+ }) => {
400
+ const { l } = (0, import_next.usePage)();
401
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
402
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable: !minlength, label, desc }) : null,
403
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-5 h-full gap-2 rounded-md border border-gray-300 p-2", children: [
404
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DraggableList.DraggableList, { className: "h-full gap-2", onChange, children: value.map((text, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DraggableList.DraggableList.Item, { value: text, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-full items-center", children: [
405
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DraggableList.DraggableList.Cursor, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_md.MdDragIndicator, { className: "text-xl" }) }),
406
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-full items-center justify-center gap-5", children: [
407
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
408
+ import_Input.Input,
409
+ {
410
+ value: text,
411
+ cacheKey: cache ? `${label}-${desc}-textList-[${idx}]` : void 0,
412
+ onChange: (text2) => {
413
+ const newValue = [...value];
414
+ newValue[idx] = transform(text2);
415
+ onChange(newValue);
416
+ },
417
+ validate: (text2) => {
418
+ if (text2.length < minlength)
419
+ return l("shared.textTooShortError", { minlength: minTextlength });
420
+ else if (text2.length > maxlength)
421
+ return l("shared.textTooLongError", { maxlength: maxTextlength });
422
+ else
423
+ return validate?.(text2) ?? true;
424
+ },
425
+ className: (0, import_client.clsx)("w-full", inputClassName),
426
+ inputClassName: "w-full input-sm",
427
+ placeholder,
428
+ disabled
429
+ }
430
+ ),
431
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
432
+ "button",
433
+ {
434
+ className: "btn btn-xs btn-error btn-square btn-outline",
435
+ onClick: () => {
436
+ onChange(value.filter((_, i) => i !== idx));
437
+ },
438
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_bi.BiTrash, {})
439
+ }
440
+ )
441
+ ] })
442
+ ] }) }, idx)) }),
443
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-base-content/20 my-5 h-[0.5px]" }),
444
+ value.length <= maxTextlength ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
445
+ "button",
446
+ {
447
+ className: "btn btn-outline w-full",
448
+ onClick: () => {
449
+ onChange([...value, ""]);
450
+ },
451
+ children: "+ New"
452
+ }
453
+ ) : null
454
+ ] })
455
+ ] });
456
+ };
457
+ Field.TextList = TextList;
458
+ const Tags = ({
459
+ label,
460
+ desc,
461
+ labelClassName,
462
+ className,
463
+ value,
464
+ onChange,
465
+ placeholder,
466
+ disabled,
467
+ transform = (v) => v,
468
+ minlength = 0,
469
+ maxlength = 50,
470
+ minTextlength = 2,
471
+ maxTextlength = 10,
472
+ validate,
473
+ inputClassName
474
+ }) => {
475
+ const { l } = (0, import_next.usePage)();
476
+ const [inputVisible, setInputVisible] = (0, import_react.useState)(false);
477
+ const [tag, setTag] = (0, import_react.useState)("");
478
+ const addTag = () => {
479
+ if (!tag.length)
480
+ return;
481
+ onChange([...value, tag]);
482
+ setInputVisible(false);
483
+ setTag("");
484
+ };
485
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
486
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable: !minlength, label, desc }) : null,
487
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "border-base-content/20 flex w-full flex-wrap items-center gap-1 rounded-md border p-2", children: [
488
+ value.map((val, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "badge badge-outline items-center rounded-full text-xs", children: [
489
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs italic", children: "#" }),
490
+ val,
491
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
492
+ import_bi.BiX,
493
+ {
494
+ className: "ml-1 cursor-pointer opacity-50 duration-200 hover:opacity-100",
495
+ onClick: () => {
496
+ if (!disabled)
497
+ onChange(value.filter((v, i) => i !== idx));
498
+ }
499
+ }
500
+ )
501
+ ] }, idx)),
502
+ inputVisible ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
503
+ import_Input.Input,
504
+ {
505
+ autoFocus: true,
506
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs italic", children: "#" }),
507
+ className: "h-6 w-24 items-center justify-start rounded-full border px-4",
508
+ inputClassName: "focus:border-0 border-0 bg-transparent text-xs h-full w-full",
509
+ placeholder,
510
+ value: tag,
511
+ onChange: (value2) => {
512
+ if (value2.length > maxTextlength)
513
+ return;
514
+ setTag(transform(value2));
515
+ },
516
+ onBlur: addTag,
517
+ onPressEnter: addTag,
518
+ onPressEscape: () => {
519
+ setInputVisible(false);
520
+ setTag("");
521
+ },
522
+ validate: (text) => {
523
+ if (text.length < minTextlength)
524
+ return l("shared.textTooShortError", { minlength: minTextlength });
525
+ else if (text.length > maxTextlength)
526
+ return l("shared.textTooLongError", { maxlength: maxTextlength });
527
+ else
528
+ return validate?.(text) ?? true;
529
+ }
530
+ }
531
+ ) : !disabled ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
532
+ "div",
533
+ {
534
+ className: "bg-success text-success-content flex items-center gap-2 rounded-full px-2 py-1 text-xs duration-200 hover:cursor-pointer hover:opacity-80",
535
+ onClick: () => {
536
+ setInputVisible(true);
537
+ },
538
+ children: [
539
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ai.AiOutlinePlus, {}),
540
+ "New Tag"
541
+ ]
542
+ }
543
+ ) : null
544
+ ] })
545
+ ] });
546
+ };
547
+ Field.Tags = Tags;
548
+ const Date = ({
549
+ className,
550
+ labelClassName,
551
+ nullable,
552
+ label,
553
+ desc,
554
+ value,
555
+ min,
556
+ max,
557
+ onChange,
558
+ showTime,
559
+ dateClassName
560
+ }) => {
561
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
562
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
563
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
564
+ "input",
565
+ {
566
+ type: showTime ? "datetime-local" : "date",
567
+ className: (0, import_client.clsx)(
568
+ "input validator text-xs duration-200 outline-none focus-within:outline-none focus:outline-none",
569
+ dateClassName
570
+ ),
571
+ min: min ? showTime ? (0, import_base.dayjs)(min).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(min).format("YYYY-MM-DD") : void 0,
572
+ max: max ? showTime ? (0, import_base.dayjs)(max).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(max).format("YYYY-MM-DD") : void 0,
573
+ value: value ? showTime ? (0, import_base.dayjs)(value).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(value).format("YYYY-MM-DD") : "",
574
+ onChange: (e) => {
575
+ onChange((0, import_base.dayjs)(e.target.value));
576
+ }
577
+ }
578
+ )
579
+ ] });
580
+ };
581
+ Field.Date = Date;
582
+ const DateRange = ({
583
+ className,
584
+ labelClassName,
585
+ nullable,
586
+ label,
587
+ desc,
588
+ from,
589
+ to,
590
+ min,
591
+ max,
592
+ onChangeFrom,
593
+ onChangeTo,
594
+ onChange,
595
+ showTime
596
+ }) => {
597
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
598
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
599
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative flex w-full flex-col items-start gap-2 pt-2 text-center md:flex-row md:items-center", children: [
600
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative flex w-full flex-col items-start justify-start", children: [
601
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-base-100 absolute -top-2 left-2 z-10 px-2 text-xs font-light", children: "From" }),
602
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
603
+ Date,
604
+ {
605
+ className: "w-full",
606
+ dateClassName: "w-full",
607
+ showTime,
608
+ value: from,
609
+ max,
610
+ min,
611
+ onChange: (value) => {
612
+ onChangeFrom(value);
613
+ }
614
+ }
615
+ )
616
+ ] }),
617
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative flex w-full flex-col items-start gap-2 text-center md:flex-row md:items-center", children: [
618
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-base-100 absolute -top-2 left-2 z-10 px-2 text-xs font-light", children: "To" }),
619
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
620
+ Date,
621
+ {
622
+ className: "w-full",
623
+ dateClassName: "w-full",
624
+ showTime,
625
+ value: to,
626
+ max,
627
+ min,
628
+ onChange: (value) => {
629
+ onChangeTo(value);
630
+ }
631
+ }
632
+ )
633
+ ] })
634
+ ] })
635
+ ] });
636
+ };
637
+ Field.DateRange = DateRange;
638
+ const Number = ({
639
+ label,
640
+ desc,
641
+ labelClassName,
642
+ className,
643
+ value,
644
+ onChange,
645
+ placeholder,
646
+ nullable,
647
+ disabled,
648
+ min,
649
+ max,
650
+ cache,
651
+ transform = (v) => v,
652
+ validate,
653
+ onPressEnter,
654
+ inputClassName,
655
+ unit,
656
+ formatter,
657
+ parser
658
+ }) => {
659
+ const { l } = (0, import_next.usePage)();
660
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
661
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc, unit }) : null,
662
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
663
+ import_Input.Input.Number,
664
+ {
665
+ min,
666
+ max,
667
+ cacheKey: cache ? `${label}-${desc}-number` : void 0,
668
+ value,
669
+ nullable,
670
+ formatter,
671
+ parser,
672
+ placeholder,
673
+ onChange: (value2) => {
674
+ onChange(transform(value2 ?? 0));
675
+ },
676
+ disabled,
677
+ className: (0, import_client.clsx)("w-full", ""),
678
+ inputClassName: (0, import_client.clsx)(" w-full", inputClassName),
679
+ validate: (value2) => {
680
+ if (min !== void 0 && value2 < min)
681
+ return l("shared.numberTooSmallError", { min });
682
+ else if (max !== void 0 && value2 > max)
683
+ return l("shared.numberTooBigError", { max });
684
+ else
685
+ return validate?.(value2) ?? true;
686
+ },
687
+ onPressEnter
688
+ }
689
+ )
690
+ ] });
691
+ };
692
+ Field.Number = Number;
693
+ const DoubleNumber = ({
694
+ label,
695
+ desc,
696
+ labelClassName,
697
+ className,
698
+ value,
699
+ placeholder,
700
+ nullable,
701
+ disabled,
702
+ min,
703
+ max,
704
+ inputClassName,
705
+ cache,
706
+ separator,
707
+ onChange,
708
+ transform = (v) => v,
709
+ validate,
710
+ onPressEnter
711
+ }) => {
712
+ const { l } = (0, import_next.usePage)();
713
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
714
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
715
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
716
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
717
+ import_Input.Input.Number,
718
+ {
719
+ value: value ? value[0] : 0,
720
+ nullable,
721
+ cacheKey: cache ? `${label}-${desc}-number-[0]` : void 0,
722
+ placeholder,
723
+ onChange: (num) => {
724
+ if (num === null)
725
+ return;
726
+ onChange([transform(num), value ? value[1] : 0]);
727
+ },
728
+ disabled,
729
+ className: (0, import_client.clsx)("w-full", ""),
730
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
731
+ validate: (value2) => {
732
+ if (min && value2 < min[0])
733
+ return l("shared.numberTooSmallError", { min: min[0] });
734
+ else if (max && value2 > max[0])
735
+ return l("shared.numberTooBigError", { max: max[0] });
736
+ else
737
+ return validate?.(value2) ?? true;
738
+ },
739
+ onPressEnter
740
+ }
741
+ ),
742
+ separator,
743
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
744
+ import_Input.Input.Number,
745
+ {
746
+ cacheKey: cache ? `${label}-${desc}-number-[1]` : void 0,
747
+ value: value ? value[1] : 0,
748
+ nullable,
749
+ placeholder,
750
+ onChange: (num) => {
751
+ onChange([value ? value[0] : 0, transform(num ?? 0)]);
752
+ },
753
+ disabled,
754
+ className: (0, import_client.clsx)("w-full", ""),
755
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
756
+ validate: (value2) => {
757
+ if (min && value2 < min[1])
758
+ return l("shared.numberTooSmallError", { min: min[1] });
759
+ else if (max && value2 > max[1])
760
+ return l("shared.numberTooBigError", { max: max[1] });
761
+ else
762
+ return validate?.(value2) ?? true;
763
+ },
764
+ onPressEnter
765
+ }
766
+ )
767
+ ] })
768
+ ] });
769
+ };
770
+ Field.DoubleNumber = DoubleNumber;
771
+ const Email = ({
772
+ label,
773
+ desc,
774
+ labelClassName,
775
+ className,
776
+ value,
777
+ onChange,
778
+ cache,
779
+ placeholder = "example@email.com",
780
+ nullable,
781
+ disabled,
782
+ minlength = nullable ? 0 : 2,
783
+ maxlength = 80,
784
+ transform = (v) => v,
785
+ validate,
786
+ onPressEnter,
787
+ inputClassName,
788
+ inputStyleType
789
+ }) => {
790
+ const { l } = (0, import_next.usePage)();
791
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
792
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
793
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
794
+ import_Input.Input.Email,
795
+ {
796
+ value: value ?? "",
797
+ cacheKey: cache ? `${label}-${desc}-email` : void 0,
798
+ nullable,
799
+ placeholder,
800
+ onChange: (value2) => {
801
+ onChange(transform(value2));
802
+ },
803
+ disabled,
804
+ className: (0, import_client.clsx)("w-full", ""),
805
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
806
+ inputStyleType,
807
+ validate: (text) => {
808
+ if (text.length < minlength)
809
+ return l("shared.textTooShortError", { minlength });
810
+ else if (text.length > maxlength)
811
+ return l("shared.textTooLongError", { maxlength });
812
+ else
813
+ return validate?.(text) ?? true;
814
+ },
815
+ onPressEnter
816
+ }
817
+ )
818
+ ] });
819
+ };
820
+ Field.Email = Email;
821
+ const Phone = ({
822
+ label,
823
+ desc,
824
+ labelClassName,
825
+ className,
826
+ value,
827
+ onChange,
828
+ placeholder,
829
+ nullable,
830
+ disabled,
831
+ maxlength = 13,
832
+ cache,
833
+ transform = (v) => (0, import_common.formatPhone)(v),
834
+ validate,
835
+ onPressEnter,
836
+ inputClassName
837
+ }) => {
838
+ const { l } = (0, import_next.usePage)();
839
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
840
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
841
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
842
+ import_Input.Input,
843
+ {
844
+ value: value ?? "",
845
+ cacheKey: cache ? `${label}-${desc}-phone` : void 0,
846
+ nullable,
847
+ placeholder,
848
+ onChange: (value2) => {
849
+ onChange(transform(value2));
850
+ },
851
+ disabled,
852
+ maxLength: maxlength,
853
+ className: (0, import_client.clsx)("w-full", ""),
854
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
855
+ validate: (text) => {
856
+ if (!(0, import_common.isPhoneNumber)(text))
857
+ return l("util.phoneInvalidError");
858
+ else
859
+ return validate?.(text) ?? true;
860
+ },
861
+ onPressEnter
862
+ }
863
+ )
864
+ ] });
865
+ };
866
+ Field.Phone = Phone;
867
+ const Password = ({
868
+ label,
869
+ desc,
870
+ labelClassName,
871
+ className,
872
+ value,
873
+ onChange,
874
+ cache,
875
+ confirmValue,
876
+ onChangeConfirm,
877
+ placeholder,
878
+ nullable,
879
+ disabled,
880
+ minlength = nullable ? 0 : 8,
881
+ maxlength = 20,
882
+ transform = (v) => v,
883
+ validate,
884
+ onPressEnter,
885
+ inputClassName,
886
+ showConfirm
887
+ }) => {
888
+ const { l } = (0, import_next.usePage)();
889
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
890
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
891
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-2", children: [
892
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
893
+ import_Input.Input.Password,
894
+ {
895
+ cacheKey: cache ? `${label}-${desc}-password` : void 0,
896
+ value: value ?? "",
897
+ nullable,
898
+ placeholder: placeholder ?? l("user.password"),
899
+ onChange: (value2) => {
900
+ onChange(transform(value2));
901
+ },
902
+ disabled,
903
+ className: (0, import_client.clsx)("w-full", ""),
904
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
905
+ validate: (text) => {
906
+ if (text.length < minlength)
907
+ return l("shared.textTooShortError", { minlength });
908
+ else if (text.length > maxlength)
909
+ return l("shared.textTooLongError", { maxlength });
910
+ else
911
+ return validate?.(text) ?? true;
912
+ },
913
+ onPressEnter
914
+ }
915
+ ),
916
+ showConfirm ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
917
+ import_Input.Input.Password,
918
+ {
919
+ value: confirmValue ?? "",
920
+ nullable,
921
+ placeholder: l("user.passwordConfirm"),
922
+ onChange: (value2) => onChangeConfirm?.(transform(value2)),
923
+ disabled,
924
+ className: (0, import_client.clsx)("w-full", ""),
925
+ inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
926
+ validate: (text) => {
927
+ if (value && text !== value)
928
+ return l("shared.passwordNotMatchError");
929
+ else
930
+ return true;
931
+ },
932
+ onPressEnter
933
+ }
934
+ ) : null
935
+ ] })
936
+ ] });
937
+ };
938
+ Field.Password = Password;
939
+ const Parent = ({
940
+ label,
941
+ desc,
942
+ labelClassName,
943
+ selectClassName,
944
+ className,
945
+ nullable,
946
+ disabled,
947
+ initArgs,
948
+ sliceName,
949
+ value,
950
+ onChange,
951
+ onSearch,
952
+ sortOption,
953
+ renderOption,
954
+ renderSelected = renderOption
955
+ }) => {
956
+ const refName = import_store.st.slice[sliceName].refName;
957
+ const [modelName, ModelName] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
958
+ const storeUse = import_store.st.use;
959
+ const storeDo = import_store.st.do;
960
+ const storeGet = import_store.st.get;
961
+ const names = {
962
+ model: modelName,
963
+ modelList: `${modelName}List`,
964
+ modelListLoading: `${modelName}ListLoading`,
965
+ initModel: `init${ModelName}`
966
+ };
967
+ const namesOfSlice = {
968
+ modelList: sliceName.replace(names.model, names.modelList),
969
+ modelListLoading: sliceName.replace(names.model, names.modelListLoading),
970
+ initModel: sliceName.replace(names.model, names.initModel)
971
+ };
972
+ const modelList = storeUse[namesOfSlice.modelList]();
973
+ const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
974
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
975
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
976
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
977
+ import_Select.Select,
978
+ {
979
+ label,
980
+ desc,
981
+ labelClassName,
982
+ selectClassName,
983
+ value: value?.id,
984
+ searchable: true,
985
+ options: modelList.map((model) => model.id),
986
+ renderOption: (modelId) => {
987
+ const model = modelList.get(modelId);
988
+ if (!model)
989
+ return null;
990
+ return renderOption(model);
991
+ },
992
+ renderSelected: (modelId) => {
993
+ const model = modelList.get(modelId);
994
+ if (!model)
995
+ return null;
996
+ return renderSelected(model);
997
+ },
998
+ onChange: (modelId) => {
999
+ onChange(modelList.get(modelId));
1000
+ },
1001
+ onOpen: () => {
1002
+ if (!disabled)
1003
+ void storeDo[namesOfSlice.initModel](...initArgs ?? []);
1004
+ },
1005
+ onSearch: (text) => {
1006
+ if (text) {
1007
+ onSearch?.(text);
1008
+ }
1009
+ }
1010
+ }
1011
+ )
1012
+ ] });
1013
+ };
1014
+ Field.Parent = Parent;
1015
+ const ParentId = ({
1016
+ label,
1017
+ desc,
1018
+ className,
1019
+ selectClassName,
1020
+ labelClassName,
1021
+ nullable,
1022
+ disabled,
1023
+ initArgs,
1024
+ sliceName,
1025
+ value,
1026
+ onChange,
1027
+ onSearch,
1028
+ sortOption,
1029
+ renderOption,
1030
+ renderSelected = renderOption
1031
+ }) => {
1032
+ const refName = import_store.st.slice[sliceName].refName;
1033
+ const [modelName, ModelName] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
1034
+ const storeUse = import_store.st.use;
1035
+ const storeDo = import_store.st.do;
1036
+ const storeGet = import_store.st.get;
1037
+ const names = {
1038
+ model: modelName,
1039
+ modelList: `${modelName}List`,
1040
+ modelListLoading: `${modelName}ListLoading`,
1041
+ initModel: `init${ModelName}`
1042
+ };
1043
+ const namesOfSlice = {
1044
+ modelList: sliceName.replace(names.model, names.modelList),
1045
+ modelListLoading: sliceName.replace(names.model, names.modelListLoading),
1046
+ initModel: sliceName.replace(names.model, names.initModel)
1047
+ };
1048
+ const modelList = storeUse[namesOfSlice.modelList]();
1049
+ const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
1050
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
1051
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
1052
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1053
+ import_Select.Select,
1054
+ {
1055
+ searchable: true,
1056
+ desc,
1057
+ label,
1058
+ labelClassName,
1059
+ selectClassName,
1060
+ value,
1061
+ options: modelList.map((model) => ({ label: model.id, value: model.id })),
1062
+ renderOption: (renderId) => {
1063
+ const model = modelList.get(renderId);
1064
+ if (!model)
1065
+ return null;
1066
+ return renderOption?.(model);
1067
+ },
1068
+ renderSelected: (renderId) => {
1069
+ const model = modelList.get(renderId);
1070
+ if (!model)
1071
+ return null;
1072
+ return renderSelected?.(model);
1073
+ },
1074
+ onOpen: () => {
1075
+ if (!disabled)
1076
+ void storeDo[namesOfSlice.initModel](...initArgs ?? []);
1077
+ },
1078
+ onChange: (modelId) => {
1079
+ onChange(modelId, modelList.get(modelId));
1080
+ },
1081
+ onSearch: (text) => {
1082
+ if (text) {
1083
+ onSearch?.(text);
1084
+ }
1085
+ }
1086
+ }
1087
+ )
1088
+ ] });
1089
+ };
1090
+ Field.ParentId = ParentId;
1091
+ const Children = ({
1092
+ label,
1093
+ desc,
1094
+ labelClassName,
1095
+ selectClassName,
1096
+ className,
1097
+ nullable,
1098
+ disabled,
1099
+ initArgs,
1100
+ sliceName,
1101
+ value,
1102
+ onChange,
1103
+ onSearch,
1104
+ sortOption,
1105
+ renderOption,
1106
+ renderSelected = renderOption
1107
+ }) => {
1108
+ const refName = import_store.st.slice[sliceName].refName;
1109
+ const [modelName, ModelName] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
1110
+ const storeUse = import_store.st.use;
1111
+ const storeDo = import_store.st.do;
1112
+ const storeGet = import_store.st.get;
1113
+ const names = {
1114
+ model: modelName,
1115
+ modelList: `${modelName}List`,
1116
+ modelListLoading: `${modelName}ListLoading`,
1117
+ initModel: `init${ModelName}`
1118
+ };
1119
+ const namesOfSlice = {
1120
+ modelList: sliceName.replace(names.model, names.modelList),
1121
+ modelListLoading: sliceName.replace(names.model, names.modelListLoading),
1122
+ initModel: sliceName.replace(names.model, names.initModel)
1123
+ };
1124
+ const modelList = storeUse[namesOfSlice.modelList]();
1125
+ const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
1126
+ (0, import_react.useEffect)(() => {
1127
+ if (!disabled)
1128
+ void storeDo[namesOfSlice.initModel](...initArgs ?? []);
1129
+ }, []);
1130
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
1131
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
1132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1133
+ import_Select.Select,
1134
+ {
1135
+ searchable: true,
1136
+ desc,
1137
+ label,
1138
+ labelClassName,
1139
+ selectClassName,
1140
+ multiple: true,
1141
+ value: value.map((model) => model.id),
1142
+ options: modelList.map((model) => model.id),
1143
+ renderOption: (modelId) => {
1144
+ const model = modelList.get(modelId);
1145
+ if (!model)
1146
+ return null;
1147
+ return renderOption(model);
1148
+ },
1149
+ renderSelected: (modelId) => {
1150
+ const model = modelList.get(modelId);
1151
+ if (!model)
1152
+ return null;
1153
+ return renderSelected(model);
1154
+ },
1155
+ onChange: (modelIds) => {
1156
+ onChange(modelIds.map((id) => modelList.get(id)).filter((model) => model !== void 0));
1157
+ },
1158
+ onSearch: (text) => {
1159
+ if (text) {
1160
+ onSearch?.(text);
1161
+ }
1162
+ }
1163
+ }
1164
+ )
1165
+ ] });
1166
+ };
1167
+ Field.Children = Children;
1168
+ const ChildrenId = ({
1169
+ label,
1170
+ desc,
1171
+ labelClassName,
1172
+ className,
1173
+ nullable,
1174
+ disabled,
1175
+ initArgs,
1176
+ sliceName,
1177
+ value,
1178
+ onChange,
1179
+ onSearch,
1180
+ sortOption,
1181
+ renderOption
1182
+ }) => {
1183
+ const refName = import_store.st.slice[sliceName].refName;
1184
+ const [modelName, ModelName] = [(0, import_common.lowerlize)(refName), (0, import_common.capitalize)(refName)];
1185
+ const storeUse = import_store.st.use;
1186
+ const storeDo = import_store.st.do;
1187
+ const storeGet = import_store.st.get;
1188
+ const names = {
1189
+ model: modelName,
1190
+ modelList: `${modelName}List`,
1191
+ modelListLoading: `${modelName}ListLoading`,
1192
+ initModel: `init${ModelName}`
1193
+ };
1194
+ const namesOfSlice = {
1195
+ modelList: sliceName.replace(names.model, names.modelList),
1196
+ modelListLoading: sliceName.replace(names.model, names.modelListLoading),
1197
+ initModel: sliceName.replace(names.model, names.initModel)
1198
+ };
1199
+ const modelList = storeUse[namesOfSlice.modelList]();
1200
+ const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
1201
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_client.clsx)("flex flex-col", className), children: [
1202
+ label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Label, { className: labelClassName, nullable, label, desc }) : null,
1203
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1204
+ import_Select.Select,
1205
+ {
1206
+ searchable: true,
1207
+ desc,
1208
+ label,
1209
+ labelClassName,
1210
+ multiple: true,
1211
+ value,
1212
+ options: modelList.map((model) => ({ label: model.id, value: model.id })),
1213
+ renderOption: (renderId) => {
1214
+ const model = modelList.get(renderId);
1215
+ if (!model)
1216
+ return null;
1217
+ return renderOption(model);
1218
+ },
1219
+ onChange: (modelIds) => {
1220
+ onChange(modelIds);
1221
+ },
1222
+ onSearch: (text) => {
1223
+ if (text) {
1224
+ onSearch?.(text);
1225
+ }
1226
+ }
1227
+ }
1228
+ )
1229
+ ] });
1230
+ };
1231
+ Field.ChildrenId = ChildrenId;