@akanjs/ui 0.0.151 → 0.0.153

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 (352) hide show
  1. package/Button.d.ts +1 -1
  2. package/ClientSide.d.ts +1 -1
  3. package/Copy.d.ts +1 -1
  4. package/CsrImage.d.ts +1 -1
  5. package/Data/CardList.d.ts +1 -1
  6. package/Data/Dashboard.d.ts +1 -1
  7. package/Data/Insight.d.ts +1 -1
  8. package/Data/Item.d.ts +6 -6
  9. package/Data/ListContainer.d.ts +2 -2
  10. package/Data/Pagination.d.ts +1 -1
  11. package/Data/QueryMaker.d.ts +1 -1
  12. package/Data/TableList.d.ts +2 -2
  13. package/DatePicker.d.ts +3 -4
  14. package/Dialog/Close.d.ts +1 -1
  15. package/Dialog/Content.d.ts +1 -1
  16. package/Dialog/Modal.d.ts +1 -1
  17. package/Dialog/Provider.d.ts +1 -1
  18. package/Dialog/Trigger.d.ts +1 -1
  19. package/Dialog/index.d.ts +4 -4
  20. package/DragAction.d.ts +4 -4
  21. package/DraggableList.d.ts +2 -2
  22. package/Dropdown.d.ts +1 -1
  23. package/Empty.d.ts +2 -2
  24. package/Field.d.ts +22 -22
  25. package/Image.d.ts +1 -1
  26. package/InfiniteScroll.d.ts +1 -1
  27. package/Input.d.ts +6 -6
  28. package/KeyboardAvoiding.d.ts +1 -1
  29. package/Layout/BottomAction.d.ts +1 -1
  30. package/Layout/BottomInset.d.ts +1 -1
  31. package/Layout/BottomTab.d.ts +1 -1
  32. package/Layout/Header.d.ts +1 -1
  33. package/Layout/LeftSider.d.ts +1 -1
  34. package/Layout/Navbar.d.ts +2 -2
  35. package/Layout/RightSider.d.ts +1 -1
  36. package/Layout/Sider.d.ts +1 -1
  37. package/Layout/Template.d.ts +1 -1
  38. package/Layout/TopLeftAction.d.ts +1 -1
  39. package/Layout/Unit.d.ts +1 -1
  40. package/Layout/View.d.ts +1 -1
  41. package/Layout/Zone.d.ts +1 -1
  42. package/Layout/index.d.ts +12 -12
  43. package/Link/Back.d.ts +1 -1
  44. package/Link/Close.d.ts +1 -1
  45. package/Link/CsrLink.d.ts +1 -1
  46. package/Link/NextLink.d.ts +1 -1
  47. package/Link/index.d.ts +1 -1
  48. package/Load/Edit.d.ts +1 -1
  49. package/Load/Edit_Client.d.ts +1 -1
  50. package/Load/Page.d.ts +1 -1
  51. package/Load/PageCSR.d.ts +1 -1
  52. package/Load/Pagination.d.ts +1 -1
  53. package/Load/Units.d.ts +1 -1
  54. package/Load/View.d.ts +1 -1
  55. package/Load/index.d.ts +1 -1
  56. package/Loading/Area.d.ts +1 -1
  57. package/Loading/Button.d.ts +1 -1
  58. package/Loading/Input.d.ts +1 -1
  59. package/Loading/ProgressBar.d.ts +1 -1
  60. package/Loading/Skeleton.d.ts +1 -1
  61. package/Loading/Spin.d.ts +1 -1
  62. package/Loading/index.d.ts +6 -6
  63. package/Menu.d.ts +1 -1
  64. package/Modal.d.ts +3 -3
  65. package/Model/Edit.d.ts +1 -1
  66. package/Model/EditModal.d.ts +2 -2
  67. package/Model/EditWrapper.d.ts +1 -1
  68. package/Model/LoadInit.d.ts +1 -1
  69. package/Model/New.d.ts +1 -1
  70. package/Model/NewWrapper.d.ts +1 -1
  71. package/Model/NewWrapper_Client.d.ts +1 -1
  72. package/Model/Remove.d.ts +1 -1
  73. package/Model/RemoveWrapper.d.ts +1 -1
  74. package/Model/SureToRemove.d.ts +1 -1
  75. package/Model/View.d.ts +1 -1
  76. package/Model/ViewEditModal.d.ts +1 -1
  77. package/Model/ViewModal.d.ts +1 -1
  78. package/Model/ViewWrapper.d.ts +1 -1
  79. package/More.d.ts +1 -1
  80. package/ObjectId.d.ts +1 -1
  81. package/Popconfirm.d.ts +2 -2
  82. package/Radio.d.ts +2 -2
  83. package/RecentTime.d.ts +1 -1
  84. package/Refresh.d.ts +1 -1
  85. package/ScreenNavigator.d.ts +3 -3
  86. package/Select.d.ts +1 -1
  87. package/Signal/Arg.d.ts +13 -13
  88. package/Signal/Doc.d.ts +6 -6
  89. package/Signal/GraphQL.d.ts +5 -6
  90. package/Signal/Listener.d.ts +2 -2
  91. package/Signal/Message.d.ts +4 -5
  92. package/Signal/Object.d.ts +4 -4
  93. package/Signal/PubSub.d.ts +4 -4
  94. package/Signal/Request.d.ts +2 -2
  95. package/Signal/Response.d.ts +3 -3
  96. package/Signal/RestApi.d.ts +5 -6
  97. package/Signal/WebSocket.d.ts +2 -2
  98. package/System/CSR.d.ts +5 -5
  99. package/System/Client.d.ts +8 -8
  100. package/System/Common.d.ts +2 -2
  101. package/System/DevModeToggle.d.ts +1 -1
  102. package/System/Gtag.d.ts +1 -1
  103. package/System/HealthCheck.d.ts +1 -1
  104. package/System/Messages.d.ts +1 -1
  105. package/System/Reconnect.d.ts +1 -1
  106. package/System/Root.d.ts +1 -1
  107. package/System/SSR.d.ts +4 -4
  108. package/System/SelectLanguage.d.ts +1 -1
  109. package/System/ThemeToggle.d.ts +1 -1
  110. package/System/index.d.ts +7 -7
  111. package/Tab/Menu.d.ts +1 -1
  112. package/Tab/Menus.d.ts +1 -1
  113. package/Tab/Panel.d.ts +1 -1
  114. package/Tab/Provider.d.ts +1 -1
  115. package/Tab/index.d.ts +4 -4
  116. package/Table.d.ts +1 -1
  117. package/ToggleSelect.d.ts +2 -2
  118. package/Unauthorized.d.ts +2 -2
  119. package/cjs/BottomSheet.js +38 -42
  120. package/cjs/Button.js +36 -34
  121. package/cjs/ClientSide.js +2 -1
  122. package/cjs/Copy.js +5 -4
  123. package/cjs/CsrImage.js +2 -1
  124. package/cjs/Data/CardList.js +41 -33
  125. package/cjs/Data/Dashboard.js +22 -12
  126. package/cjs/Data/Insight.js +7 -3
  127. package/cjs/Data/Item.js +54 -39
  128. package/cjs/Data/ListContainer.js +104 -70
  129. package/cjs/Data/Pagination.js +3 -2
  130. package/cjs/Data/QueryMaker.js +104 -82
  131. package/cjs/Data/TableList.js +45 -34
  132. package/cjs/DatePicker.js +38 -33
  133. package/cjs/Dialog/Close.js +5 -4
  134. package/cjs/Dialog/Content.js +2 -1
  135. package/cjs/Dialog/Modal.js +60 -49
  136. package/cjs/Dialog/Provider.js +2 -1
  137. package/cjs/Dialog/Trigger.js +5 -4
  138. package/cjs/Dialog/index.js +2 -1
  139. package/cjs/DragAction.js +11 -10
  140. package/cjs/DraggableList.js +10 -9
  141. package/cjs/Dropdown.js +32 -29
  142. package/cjs/Empty.js +17 -22
  143. package/cjs/Field.js +695 -573
  144. package/cjs/Image.js +2 -1
  145. package/cjs/InfiniteScroll.js +6 -1
  146. package/cjs/Input.js +171 -154
  147. package/cjs/KeyboardAvoiding.js +2 -1
  148. package/cjs/Layout/BottomAction.js +2 -1
  149. package/cjs/Layout/BottomInset.js +6 -5
  150. package/cjs/Layout/BottomTab.js +23 -17
  151. package/cjs/Layout/Header.js +14 -10
  152. package/cjs/Layout/LeftSider.js +17 -14
  153. package/cjs/Layout/Navbar.js +6 -12
  154. package/cjs/Layout/RightSider.js +24 -18
  155. package/cjs/Layout/Sider.js +24 -11
  156. package/cjs/Layout/Template.js +2 -1
  157. package/cjs/Layout/TopLeftAction.js +2 -1
  158. package/cjs/Layout/Unit.js +2 -1
  159. package/cjs/Layout/View.js +2 -1
  160. package/cjs/Layout/Zone.js +2 -1
  161. package/cjs/Link/Back.js +2 -1
  162. package/cjs/Link/Close.js +5 -4
  163. package/cjs/Link/CsrLink.js +5 -4
  164. package/cjs/Link/NextLink.js +5 -4
  165. package/cjs/Link/index.js +4 -3
  166. package/cjs/Load/Edit.js +2 -1
  167. package/cjs/Load/Edit_Client.js +6 -5
  168. package/cjs/Load/PageCSR.js +2 -1
  169. package/cjs/Load/Pagination.js +4 -3
  170. package/cjs/Load/Units.js +34 -27
  171. package/cjs/Load/View.js +3 -2
  172. package/cjs/Loading/Area.js +5 -1
  173. package/cjs/Loading/Button.js +2 -1
  174. package/cjs/Loading/Input.js +2 -1
  175. package/cjs/Loading/ProgressBar.js +2 -1
  176. package/cjs/Loading/Skeleton.js +7 -1
  177. package/cjs/Loading/Spin.js +2 -1
  178. package/cjs/Menu.js +105 -89
  179. package/cjs/Modal.js +33 -20
  180. package/cjs/Model/Edit.js +18 -12
  181. package/cjs/Model/EditModal.js +43 -45
  182. package/cjs/Model/EditWrapper.js +5 -4
  183. package/cjs/Model/LoadInit.js +2 -1
  184. package/cjs/Model/New.js +18 -12
  185. package/cjs/Model/NewWrapper.js +2 -1
  186. package/cjs/Model/NewWrapper_Client.js +5 -4
  187. package/cjs/Model/Remove.js +45 -39
  188. package/cjs/Model/RemoveWrapper.js +6 -5
  189. package/cjs/Model/SureToRemove.js +70 -54
  190. package/cjs/Model/View.js +13 -3
  191. package/cjs/Model/ViewEditModal.js +30 -19
  192. package/cjs/Model/ViewModal.js +9 -8
  193. package/cjs/Model/ViewWrapper.js +5 -4
  194. package/cjs/More.js +10 -6
  195. package/cjs/ObjectId.js +5 -1
  196. package/cjs/Pagination.js +45 -40
  197. package/cjs/Popconfirm.js +53 -45
  198. package/cjs/Radio.js +26 -22
  199. package/cjs/RecentTime.js +16 -15
  200. package/cjs/Refresh.js +5 -4
  201. package/cjs/ScreenNavigator.js +7 -6
  202. package/cjs/Select.js +156 -135
  203. package/cjs/Signal/Arg.js +94 -54
  204. package/cjs/Signal/Doc.js +175 -98
  205. package/cjs/Signal/GraphQL.js +143 -59
  206. package/cjs/Signal/Listener.js +28 -21
  207. package/cjs/Signal/Message.js +166 -80
  208. package/cjs/Signal/Object.js +75 -39
  209. package/cjs/Signal/PubSub.js +161 -79
  210. package/cjs/Signal/Request.js +16 -9
  211. package/cjs/Signal/Response.js +30 -17
  212. package/cjs/Signal/RestApi.js +186 -84
  213. package/cjs/Signal/WebSocket.js +6 -5
  214. package/cjs/System/CSR.js +184 -165
  215. package/cjs/System/Client.js +24 -20
  216. package/cjs/System/Common.js +29 -25
  217. package/cjs/System/DevModeToggle.js +14 -10
  218. package/cjs/System/Gtag.js +11 -7
  219. package/cjs/System/HealthCheck.js +2 -1
  220. package/cjs/System/Messages.js +39 -36
  221. package/cjs/System/Reconnect.js +25 -3
  222. package/cjs/System/Root.js +2 -1
  223. package/cjs/System/SSR.js +72 -54
  224. package/cjs/System/SelectLanguage.js +25 -21
  225. package/cjs/System/ThemeToggle.js +5 -1
  226. package/cjs/System/index.js +3 -2
  227. package/cjs/Tab/Menu.js +5 -4
  228. package/cjs/Tab/Menus.js +2 -1
  229. package/cjs/Tab/Panel.js +3 -2
  230. package/cjs/Tab/Provider.js +2 -1
  231. package/cjs/Tab/index.js +2 -1
  232. package/cjs/Table.js +25 -26
  233. package/cjs/ToggleSelect.js +59 -54
  234. package/cjs/Unauthorized.js +17 -22
  235. package/esm/BottomSheet.js +38 -32
  236. package/esm/Button.js +36 -24
  237. package/esm/ClientSide.js +2 -1
  238. package/esm/Copy.js +5 -4
  239. package/esm/CsrImage.js +2 -1
  240. package/esm/Data/CardList.js +41 -33
  241. package/esm/Data/Dashboard.js +22 -12
  242. package/esm/Data/Insight.js +7 -3
  243. package/esm/Data/Item.js +54 -29
  244. package/esm/Data/ListContainer.js +104 -70
  245. package/esm/Data/Pagination.js +3 -2
  246. package/esm/Data/QueryMaker.js +104 -82
  247. package/esm/Data/TableList.js +45 -34
  248. package/esm/DatePicker.js +38 -33
  249. package/esm/Dialog/Close.js +5 -4
  250. package/esm/Dialog/Content.js +2 -1
  251. package/esm/Dialog/Modal.js +60 -49
  252. package/esm/Dialog/Provider.js +2 -1
  253. package/esm/Dialog/Trigger.js +5 -4
  254. package/esm/Dialog/index.js +2 -1
  255. package/esm/DragAction.js +11 -10
  256. package/esm/DraggableList.js +10 -9
  257. package/esm/Dropdown.js +32 -29
  258. package/esm/Empty.js +17 -12
  259. package/esm/Field.js +695 -573
  260. package/esm/Image.js +2 -1
  261. package/esm/InfiniteScroll.js +6 -1
  262. package/esm/Input.js +171 -144
  263. package/esm/KeyboardAvoiding.js +2 -1
  264. package/esm/Layout/BottomAction.js +2 -1
  265. package/esm/Layout/BottomInset.js +6 -5
  266. package/esm/Layout/BottomTab.js +23 -17
  267. package/esm/Layout/Header.js +14 -10
  268. package/esm/Layout/LeftSider.js +17 -14
  269. package/esm/Layout/Navbar.js +6 -2
  270. package/esm/Layout/RightSider.js +24 -18
  271. package/esm/Layout/Sider.js +24 -11
  272. package/esm/Layout/Template.js +2 -1
  273. package/esm/Layout/TopLeftAction.js +2 -1
  274. package/esm/Layout/Unit.js +2 -1
  275. package/esm/Layout/View.js +2 -1
  276. package/esm/Layout/Zone.js +2 -1
  277. package/esm/Link/Back.js +2 -1
  278. package/esm/Link/Close.js +5 -4
  279. package/esm/Link/CsrLink.js +5 -4
  280. package/esm/Link/NextLink.js +5 -4
  281. package/esm/Link/index.js +4 -3
  282. package/esm/Load/Edit.js +2 -1
  283. package/esm/Load/Edit_Client.js +6 -5
  284. package/esm/Load/PageCSR.js +2 -1
  285. package/esm/Load/Pagination.js +4 -3
  286. package/esm/Load/Units.js +34 -27
  287. package/esm/Load/View.js +3 -2
  288. package/esm/Loading/Area.js +5 -1
  289. package/esm/Loading/Button.js +2 -1
  290. package/esm/Loading/Input.js +2 -1
  291. package/esm/Loading/ProgressBar.js +2 -1
  292. package/esm/Loading/Skeleton.js +7 -1
  293. package/esm/Loading/Spin.js +2 -1
  294. package/esm/Menu.js +105 -89
  295. package/esm/Modal.js +33 -20
  296. package/esm/Model/Edit.js +18 -12
  297. package/esm/Model/EditModal.js +43 -35
  298. package/esm/Model/EditWrapper.js +5 -4
  299. package/esm/Model/LoadInit.js +2 -1
  300. package/esm/Model/New.js +18 -12
  301. package/esm/Model/NewWrapper.js +2 -1
  302. package/esm/Model/NewWrapper_Client.js +5 -4
  303. package/esm/Model/Remove.js +45 -39
  304. package/esm/Model/RemoveWrapper.js +6 -5
  305. package/esm/Model/SureToRemove.js +70 -54
  306. package/esm/Model/View.js +13 -3
  307. package/esm/Model/ViewEditModal.js +30 -19
  308. package/esm/Model/ViewModal.js +9 -8
  309. package/esm/Model/ViewWrapper.js +5 -4
  310. package/esm/More.js +10 -6
  311. package/esm/ObjectId.js +5 -1
  312. package/esm/Pagination.js +45 -40
  313. package/esm/Popconfirm.js +53 -35
  314. package/esm/Radio.js +26 -22
  315. package/esm/RecentTime.js +16 -15
  316. package/esm/Refresh.js +5 -4
  317. package/esm/ScreenNavigator.js +7 -6
  318. package/esm/Select.js +156 -135
  319. package/esm/Signal/Arg.js +94 -54
  320. package/esm/Signal/Doc.js +175 -98
  321. package/esm/Signal/GraphQL.js +143 -59
  322. package/esm/Signal/Listener.js +28 -21
  323. package/esm/Signal/Message.js +166 -80
  324. package/esm/Signal/Object.js +75 -39
  325. package/esm/Signal/PubSub.js +161 -79
  326. package/esm/Signal/Request.js +16 -9
  327. package/esm/Signal/Response.js +30 -17
  328. package/esm/Signal/RestApi.js +186 -84
  329. package/esm/Signal/WebSocket.js +6 -5
  330. package/esm/System/CSR.js +184 -165
  331. package/esm/System/Client.js +24 -20
  332. package/esm/System/Common.js +29 -25
  333. package/esm/System/DevModeToggle.js +14 -10
  334. package/esm/System/Gtag.js +11 -7
  335. package/esm/System/HealthCheck.js +2 -1
  336. package/esm/System/Messages.js +39 -36
  337. package/esm/System/Reconnect.js +25 -3
  338. package/esm/System/Root.js +2 -1
  339. package/esm/System/SSR.js +72 -54
  340. package/esm/System/SelectLanguage.js +25 -21
  341. package/esm/System/ThemeToggle.js +5 -1
  342. package/esm/System/index.js +3 -2
  343. package/esm/Tab/Menu.js +5 -4
  344. package/esm/Tab/Menus.js +2 -1
  345. package/esm/Tab/Panel.js +3 -2
  346. package/esm/Tab/Provider.js +2 -1
  347. package/esm/Tab/index.js +2 -1
  348. package/esm/Table.js +25 -16
  349. package/esm/ToggleSelect.js +59 -54
  350. package/esm/Unauthorized.js +17 -12
  351. package/package.json +4 -1
  352. package/styles.css +624 -0
package/cjs/Field.js CHANGED
@@ -21,6 +21,7 @@ __export(Field_exports, {
21
21
  Field: () => Field
22
22
  });
23
23
  module.exports = __toCommonJS(Field_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_base = require("@akanjs/base");
25
26
  var import_client = require("@akanjs/client");
26
27
  var import_common = require("@akanjs/common");
@@ -35,7 +36,16 @@ var import_Input = require("./Input");
35
36
  var import_Select = require("./Select");
36
37
  var import_ToggleSelect = require("./ToggleSelect");
37
38
  const Label = ({ className, label, desc, unit, nullable, mode = "edit" }) => {
38
- return /* @__PURE__ */ React.createElement("span", { className: (0, import_client.clsx)("flex shrink-0 items-center gap-1", className) }, (0, import_common.capitalize)(label), unit ? /* @__PURE__ */ React.createElement("span", { className: "animate-fadeIn" }, " (", unit, ")") : null, desc ? /* @__PURE__ */ React.createElement("span", { className: "tooltip tooltip-info tooltip-right", "data-tip": desc }, /* @__PURE__ */ React.createElement(import_bi.BiHelpCircle, null)) : null, nullable ? /* @__PURE__ */ React.createElement("span", { className: "text-sm text-gray-400" }, "(optional)") : null);
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
+ ] });
39
49
  };
40
50
  const Field = ({
41
51
  className,
@@ -46,7 +56,10 @@ const Field = ({
46
56
  nullable,
47
57
  children
48
58
  }) => {
49
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("w-full", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("mt-2 flex w-full flex-col gap-4 px-4", containerClassName) }, children));
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
+ ] });
50
63
  };
51
64
  Field.Label = Label;
52
65
  const List = ({
@@ -61,26 +74,40 @@ const List = ({
61
74
  renderItem
62
75
  }) => {
63
76
  const { l } = (0, import_next.usePage)();
64
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex w-full flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "mb-2 flex w-full flex-col gap-2 rounded-md border border-gray-300 p-2" }, value.map((item, idx) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { key: idx, className: "flex h-full w-full items-center justify-between gap-2" }, renderItem(item, idx), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2 border-l border-gray-300 pl-2" }, /* @__PURE__ */ React.createElement(
65
- "button",
66
- {
67
- className: "btn btn-xs btn-error btn-square btn-outline",
68
- onClick: () => {
69
- onChange(value.filter((_, i) => i !== idx));
70
- }
71
- },
72
- /* @__PURE__ */ React.createElement(import_bi.BiTrash, null)
73
- ))), /* @__PURE__ */ React.createElement("div", { className: "h-[0.5px] w-full bg-gray-300 px-2 last:h-0" }))), /* @__PURE__ */ React.createElement(
74
- "button",
75
- {
76
- className: "btn btn-outline",
77
- onClick: () => {
78
- onAdd();
79
- }
80
- },
81
- "+ ",
82
- l("shared.addModel", { model: l("appSubRoute.modelName") })
83
- )));
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
+ ] });
84
111
  };
85
112
  Field.List = List;
86
113
  const Text = ({
@@ -103,31 +130,34 @@ const Text = ({
103
130
  inputStyleType = "bordered"
104
131
  }) => {
105
132
  const { l } = (0, import_next.usePage)();
106
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
107
- import_Input.Input,
108
- {
109
- cacheKey: cache ? `${label}-${desc}-text` : void 0,
110
- inputStyleType,
111
- value: value ?? "",
112
- nullable,
113
- placeholder,
114
- onChange: (value2) => {
115
- onChange(transform(value2));
116
- },
117
- disabled,
118
- className: (0, import_client.clsx)("w-full", ""),
119
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
120
- validate: (text) => {
121
- if (text.length < minlength)
122
- return l("shared.textTooShortError", { minlength });
123
- else if (text.length > maxlength)
124
- return l("shared.textTooLongError", { maxlength });
125
- else
126
- return validate?.(text) ?? true;
127
- },
128
- onPressEnter
129
- }
130
- ));
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
+ ] });
131
161
  };
132
162
  Field.Text = (0, import_react.memo)(Text);
133
163
  //! 삭제
@@ -150,31 +180,34 @@ const Price = ({
150
180
  inputStyleType = "bordered"
151
181
  }) => {
152
182
  const { l } = (0, import_next.usePage)();
153
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
154
- import_Input.Input,
155
- {
156
- inputStyleType,
157
- value: value ?? "",
158
- nullable,
159
- placeholder: placeholder ?? `~ ${l("shared.priceUnit")}`,
160
- onChange: (value2) => {
161
- const withoutComma = value2.replace(/,/g, "").replace(/ /g, "");
162
- onChange(transform(withoutComma));
163
- },
164
- disabled,
165
- className: (0, import_client.clsx)("w-full", ""),
166
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
167
- validate: (text) => {
168
- if (text.length < minlength)
169
- return l("shared.textTooShortError", { minlength });
170
- else if (text.length > maxlength)
171
- return l("shared.textTooLongError", { maxlength });
172
- else
173
- return validate?.(text) ?? true;
174
- },
175
- onPressEnter
176
- }
177
- ));
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
+ ] });
178
211
  };
179
212
  Field.Price = (0, import_react.memo)(Price);
180
213
  const TextArea = ({
@@ -197,31 +230,34 @@ const TextArea = ({
197
230
  inputClassName
198
231
  }) => {
199
232
  const { l } = (0, import_next.usePage)();
200
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
201
- import_Input.Input.TextArea,
202
- {
203
- value: value ?? "",
204
- cacheKey: cache ? `${label}-${desc}-textArea` : void 0,
205
- nullable,
206
- placeholder,
207
- onChange: (value2) => {
208
- onChange(transform(value2));
209
- },
210
- disabled,
211
- rows,
212
- className: (0, import_client.clsx)("h-full w-full"),
213
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
214
- validate: (text) => {
215
- if (text.length < minlength)
216
- return l("shared.textTooShortError", { minlength });
217
- else if (text.length > maxlength)
218
- return l("shared.textTooLongError", { maxlength });
219
- else
220
- return validate?.(text) ?? true;
221
- },
222
- onPressEnter
223
- }
224
- ));
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
+ ] });
225
261
  };
226
262
  Field.TextArea = (0, import_react.memo)(TextArea);
227
263
  const Switch = ({
@@ -236,18 +272,24 @@ const Switch = ({
236
272
  onDesc,
237
273
  offDesc
238
274
  }) => {
239
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable: true, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement(
240
- "input",
241
- {
242
- type: "checkbox",
243
- disabled,
244
- className: (0, import_client.clsx)("toggle toggle-accent", inputClassName),
245
- checked: value,
246
- onChange: (e) => {
247
- onChange(e.target.checked);
248
- }
249
- }
250
- ), onDesc ?? offDesc ? /* @__PURE__ */ React.createElement("div", { className: "text-info text-sm" }, value ? onDesc : offDesc) : null));
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
+ ] });
251
293
  };
252
294
  Field.Switch = Switch;
253
295
  const ToggleSelect = ({
@@ -267,26 +309,29 @@ const ToggleSelect = ({
267
309
  }) => {
268
310
  const { l } = (0, import_next.usePage)();
269
311
  const isEnum = items instanceof import_base.Enum;
270
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
271
- import_ToggleSelect.ToggleSelect,
272
- {
273
- className: "mt-2",
274
- nullable: !!nullable,
275
- btnClassName,
276
- items: model && field ? (isEnum ? items.values : items).map((item) => ({
277
- label: l.enum(model, field, item),
278
- value: item
279
- })) : isEnum ? items.values : items,
280
- value,
281
- onChange: (value2, idx) => {
282
- onChange(value2);
283
- },
284
- disabled,
285
- validate: (value2) => {
286
- return validate?.(value2) ?? true;
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
+ }
287
332
  }
288
- }
289
- ));
333
+ )
334
+ ] });
290
335
  };
291
336
  Field.ToggleSelect = ToggleSelect;
292
337
  const MultiToggleSelect = ({
@@ -306,29 +351,32 @@ const MultiToggleSelect = ({
306
351
  }) => {
307
352
  const { l } = (0, import_next.usePage)();
308
353
  const isEnum = items instanceof import_base.Enum;
309
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable: !!minlength, label, desc }) : null, /* @__PURE__ */ React.createElement(
310
- import_ToggleSelect.ToggleSelect.Multi,
311
- {
312
- nullable: !minlength,
313
- items: model && field ? (isEnum ? items.values : items).map((item) => ({
314
- label: l.enum(model, field, item),
315
- value: item
316
- })) : isEnum ? items.values : items,
317
- value,
318
- onChange: (values) => {
319
- onChange(values);
320
- },
321
- disabled,
322
- validate: (value2) => {
323
- if (minlength && value2.length < minlength)
324
- return l("shared.selectTooShortError", { minlength });
325
- else if (maxlength && value2.length > maxlength)
326
- return l("shared.selectTooLongError", { maxlength });
327
- else
328
- return validate?.(value2) ?? true;
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
+ }
329
377
  }
330
- }
331
- ));
378
+ )
379
+ ] });
332
380
  };
333
381
  Field.MultiToggleSelect = MultiToggleSelect;
334
382
  const TextList = ({
@@ -350,48 +398,61 @@ const TextList = ({
350
398
  inputClassName
351
399
  }) => {
352
400
  const { l } = (0, import_next.usePage)();
353
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable: !minlength, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "mb-5 h-full gap-2 rounded-md border border-gray-300 p-2" }, /* @__PURE__ */ React.createElement(import_DraggableList.DraggableList, { className: "h-full gap-2", onChange }, value.map((text, idx) => /* @__PURE__ */ React.createElement(import_DraggableList.DraggableList.Item, { key: idx, value: text }, /* @__PURE__ */ React.createElement("div", { className: "flex w-full items-center" }, /* @__PURE__ */ React.createElement(import_DraggableList.DraggableList.Cursor, null, /* @__PURE__ */ React.createElement(import_md.MdDragIndicator, { className: "text-xl" })), /* @__PURE__ */ React.createElement("div", { className: "flex w-full items-center justify-center gap-5" }, /* @__PURE__ */ React.createElement(
354
- import_Input.Input,
355
- {
356
- value: text,
357
- cacheKey: cache ? `${label}-${desc}-textList-[${idx}]` : void 0,
358
- onChange: (text2) => {
359
- const newValue = [...value];
360
- newValue[idx] = transform(text2);
361
- onChange(newValue);
362
- },
363
- validate: (text2) => {
364
- if (text2.length < minlength)
365
- return l("shared.textTooShortError", { minlength: minTextlength });
366
- else if (text2.length > maxlength)
367
- return l("shared.textTooLongError", { maxlength: maxTextlength });
368
- else
369
- return validate?.(text2) ?? true;
370
- },
371
- className: (0, import_client.clsx)("w-full", inputClassName),
372
- inputClassName: "w-full input-sm",
373
- placeholder,
374
- disabled
375
- }
376
- ), /* @__PURE__ */ React.createElement(
377
- "button",
378
- {
379
- className: "btn btn-xs btn-error btn-square btn-outline",
380
- onClick: () => {
381
- onChange(value.filter((_, i) => i !== idx));
382
- }
383
- },
384
- /* @__PURE__ */ React.createElement(import_bi.BiTrash, null)
385
- )))))), /* @__PURE__ */ React.createElement("div", { className: "bg-base-content/20 my-5 h-[0.5px]" }), value.length <= maxTextlength ? /* @__PURE__ */ React.createElement(
386
- "button",
387
- {
388
- className: "btn btn-outline w-full",
389
- onClick: () => {
390
- onChange([...value, ""]);
391
- }
392
- },
393
- "+ New"
394
- ) : null));
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
+ ] });
395
456
  };
396
457
  Field.TextList = TextList;
397
458
  const Tags = ({
@@ -421,55 +482,67 @@ const Tags = ({
421
482
  setInputVisible(false);
422
483
  setTag("");
423
484
  };
424
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable: !minlength, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "border-base-content/20 flex w-full flex-wrap items-center gap-1 rounded-md border p-2" }, value.map((val, idx) => /* @__PURE__ */ React.createElement("span", { className: "badge badge-outline items-center rounded-full text-xs", key: idx }, /* @__PURE__ */ React.createElement("div", { className: "text-xs italic" }, "#"), val, /* @__PURE__ */ React.createElement(
425
- import_bi.BiX,
426
- {
427
- className: "ml-1 cursor-pointer opacity-50 duration-200 hover:opacity-100",
428
- onClick: () => {
429
- if (!disabled)
430
- onChange(value.filter((v, i) => i !== idx));
431
- }
432
- }
433
- ))), inputVisible ? /* @__PURE__ */ React.createElement(
434
- import_Input.Input,
435
- {
436
- autoFocus: true,
437
- icon: /* @__PURE__ */ React.createElement("div", { className: "text-xs italic" }, "#"),
438
- className: "h-6 w-24 items-center justify-start rounded-full border px-4",
439
- inputClassName: "focus:border-0 border-0 bg-transparent text-xs h-full w-full",
440
- placeholder,
441
- value: tag,
442
- onChange: (value2) => {
443
- if (value2.length > maxTextlength)
444
- return;
445
- setTag(transform(value2));
446
- },
447
- onBlur: addTag,
448
- onPressEnter: addTag,
449
- onPressEscape: () => {
450
- setInputVisible(false);
451
- setTag("");
452
- },
453
- validate: (text) => {
454
- if (text.length < minTextlength)
455
- return l("shared.textTooShortError", { minlength: minTextlength });
456
- else if (text.length > maxTextlength)
457
- return l("shared.textTooLongError", { maxlength: maxTextlength });
458
- else
459
- return validate?.(text) ?? true;
460
- }
461
- }
462
- ) : !disabled ? /* @__PURE__ */ React.createElement(
463
- "div",
464
- {
465
- 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",
466
- onClick: () => {
467
- setInputVisible(true);
468
- }
469
- },
470
- /* @__PURE__ */ React.createElement(import_ai.AiOutlinePlus, null),
471
- "New Tag"
472
- ) : null));
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
+ ] });
473
546
  };
474
547
  Field.Tags = Tags;
475
548
  const Date = ({
@@ -485,22 +558,25 @@ const Date = ({
485
558
  showTime,
486
559
  dateClassName
487
560
  }) => {
488
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
489
- "input",
490
- {
491
- type: showTime ? "datetime-local" : "date",
492
- className: (0, import_client.clsx)(
493
- "input validator text-xs duration-200 outline-none focus-within:outline-none focus:outline-none",
494
- dateClassName
495
- ),
496
- min: min ? showTime ? (0, import_base.dayjs)(min).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(min).format("YYYY-MM-DD") : void 0,
497
- max: max ? showTime ? (0, import_base.dayjs)(max).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(max).format("YYYY-MM-DD") : void 0,
498
- value: value ? showTime ? (0, import_base.dayjs)(value).format("YYYY-MM-DDTHH:mm") : (0, import_base.dayjs)(value).format("YYYY-MM-DD") : "",
499
- onChange: (e) => {
500
- onChange((0, import_base.dayjs)(e.target.value));
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
+ }
501
577
  }
502
- }
503
- ));
578
+ )
579
+ ] });
504
580
  };
505
581
  Field.Date = Date;
506
582
  const DateRange = ({
@@ -518,33 +594,45 @@ const DateRange = ({
518
594
  onChange,
519
595
  showTime
520
596
  }) => {
521
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "relative flex w-full flex-col items-start gap-2 pt-2 text-center md:flex-row md:items-center" }, /* @__PURE__ */ React.createElement("div", { className: "relative flex w-full flex-col items-start justify-start" }, /* @__PURE__ */ React.createElement("div", { className: "bg-base-100 absolute -top-2 left-2 z-10 px-2 text-xs font-light" }, "From"), /* @__PURE__ */ React.createElement(
522
- Date,
523
- {
524
- className: "w-full",
525
- dateClassName: "w-full",
526
- showTime,
527
- value: from,
528
- max,
529
- min,
530
- onChange: (value) => {
531
- onChangeFrom(value);
532
- }
533
- }
534
- )), /* @__PURE__ */ React.createElement("div", { className: "relative flex w-full flex-col items-start gap-2 text-center md:flex-row md:items-center" }, /* @__PURE__ */ React.createElement("div", { className: "bg-base-100 absolute -top-2 left-2 z-10 px-2 text-xs font-light" }, "To"), /* @__PURE__ */ React.createElement(
535
- Date,
536
- {
537
- className: "w-full",
538
- dateClassName: "w-full",
539
- showTime,
540
- value: to,
541
- max,
542
- min,
543
- onChange: (value) => {
544
- onChangeTo(value);
545
- }
546
- }
547
- ))));
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
+ ] });
548
636
  };
549
637
  Field.DateRange = DateRange;
550
638
  const Number = ({
@@ -569,34 +657,37 @@ const Number = ({
569
657
  parser
570
658
  }) => {
571
659
  const { l } = (0, import_next.usePage)();
572
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc, unit }) : null, /* @__PURE__ */ React.createElement(
573
- import_Input.Input.Number,
574
- {
575
- min,
576
- max,
577
- cacheKey: cache ? `${label}-${desc}-number` : void 0,
578
- value,
579
- nullable,
580
- formatter,
581
- parser,
582
- placeholder,
583
- onChange: (value2) => {
584
- onChange(transform(value2 ?? 0));
585
- },
586
- disabled,
587
- className: (0, import_client.clsx)("w-full", ""),
588
- inputClassName: (0, import_client.clsx)(" w-full", inputClassName),
589
- validate: (value2) => {
590
- if (min !== void 0 && value2 < min)
591
- return l("shared.numberTooSmallError", { min });
592
- else if (max !== void 0 && value2 > max)
593
- return l("shared.numberTooBigError", { max });
594
- else
595
- return validate?.(value2) ?? true;
596
- },
597
- onPressEnter
598
- }
599
- ));
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
+ ] });
600
691
  };
601
692
  Field.Number = Number;
602
693
  const DoubleNumber = ({
@@ -619,55 +710,62 @@ const DoubleNumber = ({
619
710
  onPressEnter
620
711
  }) => {
621
712
  const { l } = (0, import_next.usePage)();
622
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement(
623
- import_Input.Input.Number,
624
- {
625
- value: value ? value[0] : 0,
626
- nullable,
627
- cacheKey: cache ? `${label}-${desc}-number-[0]` : void 0,
628
- placeholder,
629
- onChange: (num) => {
630
- if (num === null)
631
- return;
632
- onChange([transform(num), value ? value[1] : 0]);
633
- },
634
- disabled,
635
- className: (0, import_client.clsx)("w-full", ""),
636
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
637
- validate: (value2) => {
638
- if (min && value2 < min[0])
639
- return l("shared.numberTooSmallError", { min: min[0] });
640
- else if (max && value2 > max[0])
641
- return l("shared.numberTooBigError", { max: max[0] });
642
- else
643
- return validate?.(value2) ?? true;
644
- },
645
- onPressEnter
646
- }
647
- ), separator, /* @__PURE__ */ React.createElement(
648
- import_Input.Input.Number,
649
- {
650
- cacheKey: cache ? `${label}-${desc}-number-[1]` : void 0,
651
- value: value ? value[1] : 0,
652
- nullable,
653
- placeholder,
654
- onChange: (num) => {
655
- onChange([value ? value[0] : 0, transform(num ?? 0)]);
656
- },
657
- disabled,
658
- className: (0, import_client.clsx)("w-full", ""),
659
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
660
- validate: (value2) => {
661
- if (min && value2 < min[1])
662
- return l("shared.numberTooSmallError", { min: min[1] });
663
- else if (max && value2 > max[1])
664
- return l("shared.numberTooBigError", { max: max[1] });
665
- else
666
- return validate?.(value2) ?? true;
667
- },
668
- onPressEnter
669
- }
670
- )));
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
+ ] });
671
769
  };
672
770
  Field.DoubleNumber = DoubleNumber;
673
771
  const Email = ({
@@ -690,31 +788,34 @@ const Email = ({
690
788
  inputStyleType
691
789
  }) => {
692
790
  const { l } = (0, import_next.usePage)();
693
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
694
- import_Input.Input.Email,
695
- {
696
- value: value ?? "",
697
- cacheKey: cache ? `${label}-${desc}-email` : void 0,
698
- nullable,
699
- placeholder,
700
- onChange: (value2) => {
701
- onChange(transform(value2));
702
- },
703
- disabled,
704
- className: (0, import_client.clsx)("w-full", ""),
705
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
706
- inputStyleType,
707
- validate: (text) => {
708
- if (text.length < minlength)
709
- return l("shared.textTooShortError", { minlength });
710
- else if (text.length > maxlength)
711
- return l("shared.textTooLongError", { maxlength });
712
- else
713
- return validate?.(text) ?? true;
714
- },
715
- onPressEnter
716
- }
717
- ));
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
+ ] });
718
819
  };
719
820
  Field.Email = Email;
720
821
  const Phone = ({
@@ -735,29 +836,32 @@ const Phone = ({
735
836
  inputClassName
736
837
  }) => {
737
838
  const { l } = (0, import_next.usePage)();
738
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
739
- import_Input.Input,
740
- {
741
- value: value ?? "",
742
- cacheKey: cache ? `${label}-${desc}-phone` : void 0,
743
- nullable,
744
- placeholder,
745
- onChange: (value2) => {
746
- onChange(transform(value2));
747
- },
748
- disabled,
749
- maxLength: maxlength,
750
- className: (0, import_client.clsx)("w-full", ""),
751
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
752
- validate: (text) => {
753
- if (!(0, import_common.isPhoneNumber)(text))
754
- return l("util.phoneInvalidError");
755
- else
756
- return validate?.(text) ?? true;
757
- },
758
- onPressEnter
759
- }
760
- ));
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
+ ] });
761
865
  };
762
866
  Field.Phone = Phone;
763
867
  const Password = ({
@@ -782,48 +886,54 @@ const Password = ({
782
886
  showConfirm
783
887
  }) => {
784
888
  const { l } = (0, import_next.usePage)();
785
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React.createElement(
786
- import_Input.Input.Password,
787
- {
788
- cacheKey: cache ? `${label}-${desc}-password` : void 0,
789
- value: value ?? "",
790
- nullable,
791
- placeholder: placeholder ?? l("user.password"),
792
- onChange: (value2) => {
793
- onChange(transform(value2));
794
- },
795
- disabled,
796
- className: (0, import_client.clsx)("w-full", ""),
797
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
798
- validate: (text) => {
799
- if (text.length < minlength)
800
- return l("shared.textTooShortError", { minlength });
801
- else if (text.length > maxlength)
802
- return l("shared.textTooLongError", { maxlength });
803
- else
804
- return validate?.(text) ?? true;
805
- },
806
- onPressEnter
807
- }
808
- ), showConfirm ? /* @__PURE__ */ React.createElement(
809
- import_Input.Input.Password,
810
- {
811
- value: confirmValue ?? "",
812
- nullable,
813
- placeholder: l("user.passwordConfirm"),
814
- onChange: (value2) => onChangeConfirm?.(transform(value2)),
815
- disabled,
816
- className: (0, import_client.clsx)("w-full", ""),
817
- inputClassName: (0, import_client.clsx)("focus:border-primary w-full", inputClassName),
818
- validate: (text) => {
819
- if (value && text !== value)
820
- return l("shared.passwordNotMatchError");
821
- else
822
- return true;
823
- },
824
- onPressEnter
825
- }
826
- ) : null));
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
+ ] });
827
937
  };
828
938
  Field.Password = Password;
829
939
  const Parent = ({
@@ -861,42 +971,45 @@ const Parent = ({
861
971
  };
862
972
  const modelList = storeUse[namesOfSlice.modelList]();
863
973
  const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
864
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
865
- import_Select.Select,
866
- {
867
- label,
868
- desc,
869
- labelClassName,
870
- selectClassName,
871
- value: value?.id,
872
- searchable: true,
873
- options: modelList.map((model) => model.id),
874
- renderOption: (modelId) => {
875
- const model = modelList.get(modelId);
876
- if (!model)
877
- return null;
878
- return renderOption(model);
879
- },
880
- renderSelected: (modelId) => {
881
- const model = modelList.get(modelId);
882
- if (!model)
883
- return null;
884
- return renderSelected(model);
885
- },
886
- onChange: (modelId) => {
887
- onChange(modelList.get(modelId));
888
- },
889
- onOpen: () => {
890
- if (!disabled)
891
- void storeDo[namesOfSlice.initModel](...initArgs ?? []);
892
- },
893
- onSearch: (text) => {
894
- if (text) {
895
- onSearch?.(text);
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
+ }
896
1009
  }
897
1010
  }
898
- }
899
- ));
1011
+ )
1012
+ ] });
900
1013
  };
901
1014
  Field.Parent = Parent;
902
1015
  const ParentId = ({
@@ -934,42 +1047,45 @@ const ParentId = ({
934
1047
  };
935
1048
  const modelList = storeUse[namesOfSlice.modelList]();
936
1049
  const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
937
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
938
- import_Select.Select,
939
- {
940
- searchable: true,
941
- desc,
942
- label,
943
- labelClassName,
944
- selectClassName,
945
- value,
946
- options: modelList.map((model) => ({ label: model.id, value: model.id })),
947
- renderOption: (renderId) => {
948
- const model = modelList.get(renderId);
949
- if (!model)
950
- return null;
951
- return renderOption?.(model);
952
- },
953
- renderSelected: (renderId) => {
954
- const model = modelList.get(renderId);
955
- if (!model)
956
- return null;
957
- return renderSelected?.(model);
958
- },
959
- onOpen: () => {
960
- if (!disabled)
961
- void storeDo[namesOfSlice.initModel](...initArgs ?? []);
962
- },
963
- onChange: (modelId) => {
964
- onChange(modelId, modelList.get(modelId));
965
- },
966
- onSearch: (text) => {
967
- if (text) {
968
- onSearch?.(text);
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
+ }
969
1085
  }
970
1086
  }
971
- }
972
- ));
1087
+ )
1088
+ ] });
973
1089
  };
974
1090
  Field.ParentId = ParentId;
975
1091
  const Children = ({
@@ -1011,39 +1127,42 @@ const Children = ({
1011
1127
  if (!disabled)
1012
1128
  void storeDo[namesOfSlice.initModel](...initArgs ?? []);
1013
1129
  }, []);
1014
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
1015
- import_Select.Select,
1016
- {
1017
- searchable: true,
1018
- desc,
1019
- label,
1020
- labelClassName,
1021
- selectClassName,
1022
- multiple: true,
1023
- value: value.map((model) => model.id),
1024
- options: modelList.map((model) => model.id),
1025
- renderOption: (modelId) => {
1026
- const model = modelList.get(modelId);
1027
- if (!model)
1028
- return null;
1029
- return renderOption(model);
1030
- },
1031
- renderSelected: (modelId) => {
1032
- const model = modelList.get(modelId);
1033
- if (!model)
1034
- return null;
1035
- return renderSelected(model);
1036
- },
1037
- onChange: (modelIds) => {
1038
- onChange(modelIds.map((id) => modelList.get(id)).filter((model) => model !== void 0));
1039
- },
1040
- onSearch: (text) => {
1041
- if (text) {
1042
- onSearch?.(text);
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
+ }
1043
1162
  }
1044
1163
  }
1045
- }
1046
- ));
1164
+ )
1165
+ ] });
1047
1166
  };
1048
1167
  Field.Children = Children;
1049
1168
  const ChildrenId = ({
@@ -1079,31 +1198,34 @@ const ChildrenId = ({
1079
1198
  };
1080
1199
  const modelList = storeUse[namesOfSlice.modelList]();
1081
1200
  const modelListLoading = storeUse[namesOfSlice.modelListLoading]();
1082
- return /* @__PURE__ */ React.createElement("div", { className: (0, import_client.clsx)("flex flex-col", className) }, label ? /* @__PURE__ */ React.createElement(Label, { className: labelClassName, nullable, label, desc }) : null, /* @__PURE__ */ React.createElement(
1083
- import_Select.Select,
1084
- {
1085
- searchable: true,
1086
- desc,
1087
- label,
1088
- labelClassName,
1089
- multiple: true,
1090
- value,
1091
- options: modelList.map((model) => ({ label: model.id, value: model.id })),
1092
- renderOption: (renderId) => {
1093
- const model = modelList.get(renderId);
1094
- if (!model)
1095
- return null;
1096
- return renderOption(model);
1097
- },
1098
- onChange: (modelIds) => {
1099
- onChange(modelIds);
1100
- },
1101
- onSearch: (text) => {
1102
- if (text) {
1103
- onSearch?.(text);
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
+ }
1104
1226
  }
1105
1227
  }
1106
- }
1107
- ));
1228
+ )
1229
+ ] });
1108
1230
  };
1109
1231
  Field.ChildrenId = ChildrenId;