@akanjs/ui 0.0.149 → 0.0.151

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 +38 -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 +32 -0
  103. package/Signal/Listener.d.ts +9 -0
  104. package/Signal/Message.d.ts +27 -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 +40 -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 +113 -0
  135. package/cjs/Button.js +69 -0
  136. package/cjs/ClientSide.js +26 -0
  137. package/cjs/Copy.js +37 -0
  138. package/cjs/CsrImage.js +50 -0
  139. package/cjs/Data/CardList.js +119 -0
  140. package/cjs/Data/Dashboard.js +54 -0
  141. package/cjs/Data/Insight.js +38 -0
  142. package/cjs/Data/Item.js +204 -0
  143. package/cjs/Data/ListContainer.js +251 -0
  144. package/cjs/Data/Pagination.js +64 -0
  145. package/cjs/Data/QueryMaker.js +304 -0
  146. package/cjs/Data/TableList.js +139 -0
  147. package/cjs/Data/index.js +33 -0
  148. package/cjs/Data/index_.js +49 -0
  149. package/cjs/DatePicker.js +173 -0
  150. package/cjs/Dialog/Action.js +32 -0
  151. package/cjs/Dialog/Close.js +38 -0
  152. package/cjs/Dialog/Content.js +27 -0
  153. package/cjs/Dialog/Modal.js +155 -0
  154. package/cjs/Dialog/Provider.js +46 -0
  155. package/cjs/Dialog/Title.js +32 -0
  156. package/cjs/Dialog/Trigger.js +38 -0
  157. package/cjs/Dialog/context.js +32 -0
  158. package/cjs/Dialog/index.js +36 -0
  159. package/cjs/DragAction.js +111 -0
  160. package/cjs/DraggableList.js +141 -0
  161. package/cjs/Dropdown.js +64 -0
  162. package/cjs/Empty.js +50 -0
  163. package/cjs/Field.js +1109 -0
  164. package/cjs/FontFace.js +77 -0
  165. package/cjs/Image.js +61 -0
  166. package/cjs/InfiniteScroll.js +65 -0
  167. package/cjs/Input.js +440 -0
  168. package/cjs/KeyboardAvoiding.js +65 -0
  169. package/cjs/Layout/BottomAction.js +26 -0
  170. package/cjs/Layout/BottomInset.js +53 -0
  171. package/cjs/Layout/BottomTab.js +56 -0
  172. package/cjs/Layout/Header.js +52 -0
  173. package/cjs/Layout/LeftSider.js +49 -0
  174. package/cjs/Layout/Navbar.js +51 -0
  175. package/cjs/Layout/RightSider.js +52 -0
  176. package/cjs/Layout/Sider.js +39 -0
  177. package/cjs/Layout/Template.js +26 -0
  178. package/cjs/Layout/TopLeftAction.js +39 -0
  179. package/cjs/Layout/Unit.js +27 -0
  180. package/cjs/Layout/View.js +26 -0
  181. package/cjs/Layout/Zone.js +26 -0
  182. package/cjs/Layout/index.js +48 -0
  183. package/cjs/Link/Back.js +27 -0
  184. package/cjs/Link/Close.js +36 -0
  185. package/cjs/Link/CsrLink.js +49 -0
  186. package/cjs/Link/NextLink.js +71 -0
  187. package/cjs/Link/index.js +47 -0
  188. package/cjs/Link/types.js +15 -0
  189. package/cjs/Load/Edit.js +42 -0
  190. package/cjs/Load/Edit_Client.js +93 -0
  191. package/cjs/Load/Page.js +35 -0
  192. package/cjs/Load/PageCSR.js +67 -0
  193. package/cjs/Load/Pagination.js +89 -0
  194. package/cjs/Load/Units.js +232 -0
  195. package/cjs/Load/View.js +88 -0
  196. package/cjs/Load/index.js +42 -0
  197. package/cjs/Load/index_.js +39 -0
  198. package/cjs/Loading/Area.js +25 -0
  199. package/cjs/Loading/Button.js +33 -0
  200. package/cjs/Loading/Input.js +33 -0
  201. package/cjs/Loading/ProgressBar.js +29 -0
  202. package/cjs/Loading/Skeleton.js +27 -0
  203. package/cjs/Loading/Spin.js +27 -0
  204. package/cjs/Loading/index.js +29 -0
  205. package/cjs/Menu.js +215 -0
  206. package/cjs/Modal.js +75 -0
  207. package/cjs/Model/Edit.js +61 -0
  208. package/cjs/Model/EditModal.js +255 -0
  209. package/cjs/Model/EditWrapper.js +48 -0
  210. package/cjs/Model/LoadInit.js +27 -0
  211. package/cjs/Model/New.js +61 -0
  212. package/cjs/Model/NewWrapper.js +28 -0
  213. package/cjs/Model/NewWrapper_Client.js +66 -0
  214. package/cjs/Model/Remove.js +86 -0
  215. package/cjs/Model/RemoveWrapper.js +48 -0
  216. package/cjs/Model/SureToRemove.js +109 -0
  217. package/cjs/Model/View.js +44 -0
  218. package/cjs/Model/ViewEditModal.js +118 -0
  219. package/cjs/Model/ViewModal.js +92 -0
  220. package/cjs/Model/ViewWrapper.js +48 -0
  221. package/cjs/Model/index.js +38 -0
  222. package/cjs/Model/index_.js +58 -0
  223. package/cjs/More.js +67 -0
  224. package/cjs/ObjectId.js +37 -0
  225. package/cjs/Pagination.js +110 -0
  226. package/cjs/Popconfirm.js +116 -0
  227. package/cjs/Portal.js +27 -0
  228. package/cjs/Radio.js +53 -0
  229. package/cjs/RecentTime.js +86 -0
  230. package/cjs/Refresh.js +45 -0
  231. package/cjs/ScreenNavigator.js +121 -0
  232. package/cjs/Select.js +262 -0
  233. package/cjs/Signal/Arg.js +237 -0
  234. package/cjs/Signal/Doc.js +181 -0
  235. package/cjs/Signal/GraphQL.js +177 -0
  236. package/cjs/Signal/Listener.js +59 -0
  237. package/cjs/Signal/Message.js +190 -0
  238. package/cjs/Signal/Object.js +95 -0
  239. package/cjs/Signal/PubSub.js +191 -0
  240. package/cjs/Signal/Request.js +38 -0
  241. package/cjs/Signal/Response.js +53 -0
  242. package/cjs/Signal/RestApi.js +255 -0
  243. package/cjs/Signal/WebSocket.js +68 -0
  244. package/cjs/Signal/index.js +42 -0
  245. package/cjs/System/CSR.js +376 -0
  246. package/cjs/System/Client.js +200 -0
  247. package/cjs/System/Common.js +64 -0
  248. package/cjs/System/DevModeToggle.js +38 -0
  249. package/cjs/System/Gtag.js +67 -0
  250. package/cjs/System/HealthCheck.js +60 -0
  251. package/cjs/System/Messages.js +170 -0
  252. package/cjs/System/Reconnect.js +64 -0
  253. package/cjs/System/Root.js +30 -0
  254. package/cjs/System/SSR.js +144 -0
  255. package/cjs/System/SelectLanguage.js +58 -0
  256. package/cjs/System/ThemeToggle.js +40 -0
  257. package/cjs/System/index.js +55 -0
  258. package/cjs/Tab/Menu.js +70 -0
  259. package/cjs/{src/index.js → Tab/Menus.js} +8 -5
  260. package/cjs/Tab/Panel.js +42 -0
  261. package/cjs/Tab/Provider.js +31 -0
  262. package/cjs/Tab/context.js +30 -0
  263. package/cjs/Tab/index.js +32 -0
  264. package/cjs/Table.js +85 -0
  265. package/cjs/ToggleSelect.js +118 -0
  266. package/cjs/Unauthorized.js +50 -0
  267. package/cjs/index.js +88 -2
  268. package/esm/BottomSheet.js +84 -0
  269. package/esm/Button.js +40 -0
  270. package/esm/ClientSide.js +7 -0
  271. package/esm/Copy.js +18 -0
  272. package/esm/CsrImage.js +31 -0
  273. package/esm/Data/CardList.js +90 -0
  274. package/esm/Data/Dashboard.js +35 -0
  275. package/esm/Data/Insight.js +19 -0
  276. package/esm/Data/Item.js +175 -0
  277. package/esm/Data/ListContainer.js +228 -0
  278. package/esm/Data/Pagination.js +45 -0
  279. package/esm/Data/QueryMaker.js +293 -0
  280. package/esm/Data/TableList.js +110 -0
  281. package/esm/Data/index.js +14 -0
  282. package/esm/Data/index_.js +20 -0
  283. package/esm/DatePicker.js +144 -0
  284. package/esm/Dialog/Action.js +13 -0
  285. package/esm/Dialog/Close.js +19 -0
  286. package/esm/Dialog/Content.js +8 -0
  287. package/esm/Dialog/Modal.js +126 -0
  288. package/esm/Dialog/Provider.js +17 -0
  289. package/esm/Dialog/Title.js +13 -0
  290. package/esm/Dialog/Trigger.js +19 -0
  291. package/esm/Dialog/context.js +13 -0
  292. package/esm/Dialog/index.js +17 -0
  293. package/esm/DragAction.js +92 -0
  294. package/esm/DraggableList.js +112 -0
  295. package/esm/Dropdown.js +45 -0
  296. package/esm/Empty.js +21 -0
  297. package/esm/Field.js +1090 -0
  298. package/esm/FontFace.js +58 -0
  299. package/esm/Image.js +32 -0
  300. package/esm/InfiniteScroll.js +46 -0
  301. package/esm/Input.js +415 -0
  302. package/esm/KeyboardAvoiding.js +46 -0
  303. package/esm/Layout/BottomAction.js +7 -0
  304. package/esm/Layout/BottomInset.js +34 -0
  305. package/esm/Layout/BottomTab.js +37 -0
  306. package/esm/Layout/Header.js +33 -0
  307. package/esm/Layout/LeftSider.js +30 -0
  308. package/esm/Layout/Navbar.js +22 -0
  309. package/esm/Layout/RightSider.js +33 -0
  310. package/esm/Layout/Sider.js +20 -0
  311. package/esm/Layout/Template.js +7 -0
  312. package/esm/Layout/TopLeftAction.js +20 -0
  313. package/esm/Layout/Unit.js +8 -0
  314. package/esm/Layout/View.js +7 -0
  315. package/esm/Layout/Zone.js +7 -0
  316. package/esm/Layout/index.js +29 -0
  317. package/esm/Link/Back.js +8 -0
  318. package/esm/Link/Close.js +17 -0
  319. package/esm/Link/CsrLink.js +30 -0
  320. package/esm/Link/NextLink.js +42 -0
  321. package/esm/Link/index.js +18 -0
  322. package/esm/Link/types.js +0 -0
  323. package/esm/Load/Edit.js +13 -0
  324. package/esm/Load/Edit_Client.js +74 -0
  325. package/esm/Load/Page.js +16 -0
  326. package/esm/Load/PageCSR.js +48 -0
  327. package/esm/Load/Pagination.js +70 -0
  328. package/esm/Load/Units.js +213 -0
  329. package/esm/Load/View.js +69 -0
  330. package/esm/Load/index.js +13 -0
  331. package/esm/Load/index_.js +10 -0
  332. package/esm/Loading/Area.js +6 -0
  333. package/esm/Loading/Button.js +14 -0
  334. package/esm/Loading/Input.js +14 -0
  335. package/esm/Loading/ProgressBar.js +10 -0
  336. package/esm/Loading/Skeleton.js +8 -0
  337. package/esm/Loading/Spin.js +8 -0
  338. package/esm/Loading/index.js +10 -0
  339. package/esm/Menu.js +196 -0
  340. package/esm/Modal.js +46 -0
  341. package/esm/Model/Edit.js +32 -0
  342. package/esm/Model/EditModal.js +226 -0
  343. package/esm/Model/EditWrapper.js +29 -0
  344. package/esm/Model/LoadInit.js +8 -0
  345. package/esm/Model/New.js +32 -0
  346. package/esm/Model/NewWrapper.js +9 -0
  347. package/esm/Model/NewWrapper_Client.js +47 -0
  348. package/esm/Model/Remove.js +67 -0
  349. package/esm/Model/RemoveWrapper.js +29 -0
  350. package/esm/Model/SureToRemove.js +90 -0
  351. package/esm/Model/View.js +25 -0
  352. package/esm/Model/ViewEditModal.js +89 -0
  353. package/esm/Model/ViewModal.js +63 -0
  354. package/esm/Model/ViewWrapper.js +29 -0
  355. package/esm/Model/index.js +33 -0
  356. package/esm/Model/index_.js +29 -0
  357. package/esm/More.js +38 -0
  358. package/esm/ObjectId.js +18 -0
  359. package/esm/Pagination.js +91 -0
  360. package/esm/Popconfirm.js +87 -0
  361. package/esm/Portal.js +8 -0
  362. package/esm/Radio.js +34 -0
  363. package/esm/RecentTime.js +57 -0
  364. package/esm/Refresh.js +16 -0
  365. package/esm/ScreenNavigator.js +102 -0
  366. package/esm/Select.js +243 -0
  367. package/esm/Signal/Arg.js +208 -0
  368. package/esm/Signal/Doc.js +152 -0
  369. package/esm/Signal/GraphQL.js +156 -0
  370. package/esm/Signal/Listener.js +40 -0
  371. package/esm/Signal/Message.js +161 -0
  372. package/esm/Signal/Object.js +76 -0
  373. package/esm/Signal/PubSub.js +162 -0
  374. package/esm/Signal/Request.js +19 -0
  375. package/esm/Signal/Response.js +34 -0
  376. package/esm/Signal/RestApi.js +234 -0
  377. package/esm/Signal/WebSocket.js +39 -0
  378. package/esm/Signal/index.js +13 -0
  379. package/esm/System/CSR.js +357 -0
  380. package/esm/System/Client.js +191 -0
  381. package/esm/System/Common.js +45 -0
  382. package/esm/System/DevModeToggle.js +19 -0
  383. package/esm/System/Gtag.js +48 -0
  384. package/esm/System/HealthCheck.js +41 -0
  385. package/esm/System/Messages.js +156 -0
  386. package/esm/System/Reconnect.js +45 -0
  387. package/esm/System/Root.js +11 -0
  388. package/esm/System/SSR.js +125 -0
  389. package/esm/System/SelectLanguage.js +39 -0
  390. package/esm/System/ThemeToggle.js +21 -0
  391. package/esm/System/index.js +26 -0
  392. package/esm/Tab/Menu.js +51 -0
  393. package/esm/Tab/Menus.js +7 -0
  394. package/esm/Tab/Panel.js +23 -0
  395. package/esm/Tab/Provider.js +12 -0
  396. package/esm/Tab/context.js +11 -0
  397. package/esm/Tab/index.js +13 -0
  398. package/esm/Table.js +56 -0
  399. package/esm/ToggleSelect.js +99 -0
  400. package/esm/Unauthorized.js +21 -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
@@ -0,0 +1,77 @@
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 FontFace_exports = {};
20
+ __export(FontFace_exports, {
21
+ FontFace: () => FontFace
22
+ });
23
+ module.exports = __toCommonJS(FontFace_exports);
24
+ var import_react = require("react");
25
+ const fontStyleMap = {
26
+ thin: 100,
27
+ extralight: 200,
28
+ light: 300,
29
+ regular: 400,
30
+ medium: 500,
31
+ extrabold: 600,
32
+ semibold: 700,
33
+ bold: 800,
34
+ black: 900
35
+ };
36
+ const fontWeightMap = {
37
+ 100: "thin",
38
+ 200: "extralight",
39
+ 300: "light",
40
+ 400: "regular",
41
+ 500: "medium",
42
+ 600: "extrabold",
43
+ 700: "semibold",
44
+ 800: "bold",
45
+ 900: "black"
46
+ };
47
+ const FontFace = ({ font }) => {
48
+ const getWeight = (style) => {
49
+ const findWeight = font.paths.find((path) => fontWeightMap[path.weight] === style);
50
+ if (!findWeight) {
51
+ const findWeight2 = font.paths.reduce((prev, curr) => {
52
+ return Math.abs(fontStyleMap[style] - curr.weight) < Math.abs(fontStyleMap[style] - prev.weight) ? curr : prev;
53
+ }, font.paths[0]);
54
+ return findWeight2.weight;
55
+ }
56
+ return findWeight.weight;
57
+ };
58
+ (0, import_react.useEffect)(() => {
59
+ const styles = ["thin", "extralight", "light", "regular", "medium", "extrabold", "semibold", "bold", "black"];
60
+ const fontFace = `:root { --font-${font.name}: ${font.name}} ${styles.map(
61
+ (style2) => `@font-face {
62
+ font-family: '${font.name}';
63
+ src: url('${font.paths.find((path) => getWeight(style2) === path.weight)?.src}');
64
+ font-weight: ${getWeight(style2)};
65
+ font-style: ${style2};
66
+ }`
67
+ )}`;
68
+ const fontText = fontFace.replace(/,/g, " ");
69
+ const style = document.createElement("style");
70
+ style.appendChild(document.createTextNode(fontText));
71
+ document.head.appendChild(style);
72
+ return () => {
73
+ document.head.removeChild(style);
74
+ };
75
+ }, [font.name, font.paths]);
76
+ return null;
77
+ };
package/cjs/Image.js ADDED
@@ -0,0 +1,61 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var Image_exports = {};
29
+ __export(Image_exports, {
30
+ Image: () => Image
31
+ });
32
+ module.exports = __toCommonJS(Image_exports);
33
+ var import_base = require("@akanjs/base");
34
+ var import_client = require("@akanjs/client");
35
+ var import_image = __toESM(require("next/image"));
36
+ var import_CsrImage = require("./CsrImage");
37
+ const Image = ({
38
+ src,
39
+ file,
40
+ className,
41
+ abstractData,
42
+ alt,
43
+ ...props
44
+ }) => {
45
+ const url = src ?? file?.url ?? "/empty.png";
46
+ const [width, height] = [props.width ?? file?.imageSize[0], props.height ?? file?.imageSize[1]];
47
+ const blurDataURL = abstractData ?? file?.abstractData;
48
+ return import_base.baseClientEnv.renderMode === "csr" ? /* @__PURE__ */ React.createElement(import_CsrImage.CsrImage, { src, file, abstractData, className, ...props }) : /* @__PURE__ */ React.createElement(
49
+ import_image.default,
50
+ {
51
+ src: url,
52
+ fill: props.fill ?? (!width && !height),
53
+ width,
54
+ height,
55
+ className: (0, import_client.clsx)("object-cover", className),
56
+ alt: alt ?? "image",
57
+ ...blurDataURL ? { placeholder: "blur", blurDataURL } : {},
58
+ ...props
59
+ }
60
+ );
61
+ };
@@ -0,0 +1,65 @@
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 InfiniteScroll_exports = {};
20
+ __export(InfiniteScroll_exports, {
21
+ InfiniteScroll: () => InfiniteScroll
22
+ });
23
+ module.exports = __toCommonJS(InfiniteScroll_exports);
24
+ var import_react = require("react");
25
+ var import_bi = require("react-icons/bi");
26
+ const InfiniteScroll = ({
27
+ itemsPerPage,
28
+ currentPage,
29
+ total,
30
+ onPageSelect,
31
+ onAddPage,
32
+ children,
33
+ reverse
34
+ }) => {
35
+ const [isFetching, setIsFetching] = (0, import_react.useState)(false);
36
+ const target = (0, import_react.useRef)(null);
37
+ const page = (0, import_react.useRef)(currentPage);
38
+ const totalPages = Math.ceil(total / (itemsPerPage || 1));
39
+ (0, import_react.useEffect)(() => {
40
+ const observer = new IntersectionObserver((entries) => {
41
+ const [entry] = entries;
42
+ if (entry.isIntersecting)
43
+ void fetchMoreItems();
44
+ });
45
+ if (target.current)
46
+ observer.observe(target.current);
47
+ return () => {
48
+ observer.disconnect();
49
+ };
50
+ }, []);
51
+ const fetchMoreItems = async () => {
52
+ if (isFetching)
53
+ return;
54
+ const nextPage = page.current + 1;
55
+ if (nextPage > totalPages)
56
+ return;
57
+ setIsFetching(true);
58
+ await onAddPage(nextPage);
59
+ void onAddPage(nextPage);
60
+ onPageSelect(nextPage);
61
+ setIsFetching(false);
62
+ page.current = nextPage;
63
+ };
64
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, reverse ? /* @__PURE__ */ React.createElement("div", { ref: target, className: "flex w-full items-end justify-center" }, isFetching && /* @__PURE__ */ React.createElement(import_bi.BiLoaderAlt, { className: "h-10 animate-spin pb-4 text-2xl" })) : null, children, !reverse ? /* @__PURE__ */ React.createElement("div", { ref: target, className: "flex h-32 w-full justify-center pt-4" }, isFetching && /* @__PURE__ */ React.createElement(import_bi.BiLoaderAlt, { className: "animate-spin text-2xl" })) : null);
65
+ };
package/cjs/Input.js ADDED
@@ -0,0 +1,440 @@
1
+ "use client";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Input_exports = {};
30
+ __export(Input_exports, {
31
+ Input: () => Input
32
+ });
33
+ module.exports = __toCommonJS(Input_exports);
34
+ var import_client = require("@akanjs/client");
35
+ var import_common = require("@akanjs/common");
36
+ var import_next = require("@akanjs/next");
37
+ var import_react = __toESM(require("react"));
38
+ var import_ai = require("react-icons/ai");
39
+ const Input = ({
40
+ className,
41
+ nullable,
42
+ inputRef,
43
+ value,
44
+ cacheKey,
45
+ inputStyleType = "bordered",
46
+ icon,
47
+ iconClassName,
48
+ inputClassName,
49
+ inputWrapperClassName,
50
+ onPressEnter,
51
+ onPressEscape,
52
+ onChange,
53
+ validate,
54
+ ...rest
55
+ }) => {
56
+ const { l } = (0, import_next.usePage)();
57
+ const [firstFocus, setFirstFocus] = (0, import_react.useState)(true);
58
+ const validateResult = validate(value);
59
+ const status = !nullable && !value ? null : !value.length ? "warning" : validateResult === true ? "success" : "error";
60
+ const invalidMessage = value && !value.length || validateResult === true || firstFocus ? null : validateResult === false ? l("util.invalidValueError") : validateResult;
61
+ const statusClass = inputStyleType === "bordered" ? status === "error" ? "input-error" : !firstFocus && status === "warning" ? "input-warning" : status === "success" ? "input-success" : "" : "";
62
+ const inputType = inputStyleType === "bordered" ? "input" : inputStyleType === "borderless" ? "input-ghost" : "border-0 border-b rounded-none";
63
+ const handleKeyDown = (e) => {
64
+ if (onPressEnter && e.key === "Enter")
65
+ onPressEnter(e.currentTarget.value, e);
66
+ if (e.key === "Escape") {
67
+ e.currentTarget.blur();
68
+ onPressEscape?.(e);
69
+ }
70
+ };
71
+ (0, import_react.useEffect)(() => {
72
+ if (!cacheKey)
73
+ return;
74
+ sessionStorage.setItem(cacheKey, value);
75
+ }, [value]);
76
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative isolate flex items-center", className) }, icon ? /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("flex items-center justify-center", iconClassName) }, icon) : null, /* @__PURE__ */ import_react.default.createElement(
77
+ "input",
78
+ {
79
+ ...rest,
80
+ ref: inputRef,
81
+ value,
82
+ onChange: (e) => {
83
+ if (cacheKey) {
84
+ sessionStorage.setItem(cacheKey, e.target.value);
85
+ }
86
+ onChange?.(e.target.value, e);
87
+ },
88
+ onBlur: (e) => {
89
+ if (firstFocus && value)
90
+ setFirstFocus(false);
91
+ },
92
+ onKeyDown: handleKeyDown,
93
+ className: (0, import_client.clsx)(
94
+ `b-5 focus:border-primary text-base-content outline-hidden duration-300 focus:outline-hidden ${icon && ""}`,
95
+ inputType,
96
+ // statusClass,
97
+ inputClassName
98
+ )
99
+ }
100
+ ), /* @__PURE__ */ import_react.default.createElement(
101
+ "div",
102
+ {
103
+ "data-validate": !!validateResult,
104
+ className: "text-error absolute -bottom-4 text-xs whitespace-nowrap duration-300"
105
+ },
106
+ invalidMessage
107
+ ));
108
+ };
109
+ const TextArea = ({
110
+ className,
111
+ nullable,
112
+ value,
113
+ inputClassName,
114
+ inputWrapperClassName,
115
+ cacheKey,
116
+ onPressEnter,
117
+ onPressEscape,
118
+ onChange,
119
+ validate,
120
+ ...rest
121
+ }) => {
122
+ const { l } = (0, import_next.usePage)();
123
+ const inputRef = (0, import_react.useRef)(null);
124
+ const validateResult = validate(value);
125
+ const [firstFocus, setFirstFocus] = (0, import_react.useState)(true);
126
+ const status = !nullable && !value.length ? "warning" : validateResult === true ? "success" : "error";
127
+ const invalidMessage = !value.length || validateResult === true || firstFocus ? null : validateResult === false ? l("util.invalidValueError") : validateResult;
128
+ const statusClass = status === "error" ? "textarea-error" : !firstFocus && status === "warning" ? "textarea-warning" : status === "success" ? "textarea-success" : "";
129
+ const handleKeyDown = (e) => {
130
+ if (onPressEnter && e.key === "Enter")
131
+ onPressEnter(e.currentTarget.value, e);
132
+ };
133
+ (0, import_react.useEffect)(() => {
134
+ if (!cacheKey)
135
+ return;
136
+ const value2 = sessionStorage.getItem(cacheKey);
137
+ if (value2) {
138
+ onChange?.(value2);
139
+ }
140
+ }, []);
141
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative mb-5", className) }, /* @__PURE__ */ import_react.default.createElement(
142
+ "textarea",
143
+ {
144
+ ...rest,
145
+ ref: inputRef,
146
+ value,
147
+ onChange: (e) => {
148
+ if (cacheKey) {
149
+ sessionStorage.setItem(cacheKey, e.target.value);
150
+ }
151
+ onChange?.(e.target.value, e);
152
+ },
153
+ onKeyDown: handleKeyDown,
154
+ onBlur: (e) => {
155
+ if (firstFocus && value)
156
+ setFirstFocus(false);
157
+ },
158
+ className: (0, import_client.clsx)(
159
+ `textarea textarea-bordered focus:border-primary text-base-content resize-none outline-hidden duration-300 focus:outline-hidden`,
160
+ statusClass,
161
+ inputClassName
162
+ )
163
+ }
164
+ ), invalidMessage ? /* @__PURE__ */ import_react.default.createElement("div", { className: "text-error animate-fadeIn absolute -bottom-4 text-xs" }, invalidMessage) : null);
165
+ };
166
+ Input.TextArea = TextArea;
167
+ const Password = ({
168
+ className,
169
+ nullable,
170
+ value,
171
+ icon,
172
+ iconClassName,
173
+ inputClassName,
174
+ inputWrapperClassName,
175
+ cacheKey,
176
+ onPressEnter,
177
+ onPressEscape,
178
+ onChange,
179
+ validate,
180
+ ...rest
181
+ }) => {
182
+ const { l } = (0, import_next.usePage)();
183
+ const inputRef = (0, import_react.useRef)(null);
184
+ const validateResult = validate(value);
185
+ const [firstFocus, setFirstFocus] = (0, import_react.useState)(true);
186
+ const [showPassword, setShowPassword] = (0, import_react.useState)(false);
187
+ const status = !nullable && !value.length ? "warning" : validateResult === true ? "success" : "error";
188
+ const invalidMessage = !value.length || validateResult === true || firstFocus ? "" : validateResult === false ? l("util.invalidValueError") : validateResult;
189
+ const statusClass = status === "error" ? "input-error" : !firstFocus && status === "warning" ? "input-warning" : status === "success" ? "input-success" : "";
190
+ const handleKeyDown = (e) => {
191
+ if (onPressEnter && e.key === "Enter")
192
+ onPressEnter(e.currentTarget.value, e);
193
+ if (onPressEscape && e.key === "Escape")
194
+ onPressEscape(e);
195
+ };
196
+ (0, import_react.useEffect)(() => {
197
+ if (!cacheKey)
198
+ return;
199
+ const value2 = sessionStorage.getItem(cacheKey);
200
+ if (value2) {
201
+ onChange?.(value2);
202
+ }
203
+ }, []);
204
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative isolate pb-2", className) }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative flex items-center justify-between", inputWrapperClassName) }, icon ? /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("absolute inset-y-0 left-4 z-10 flex items-center justify-center", iconClassName) }, icon) : null, /* @__PURE__ */ import_react.default.createElement(
205
+ "input",
206
+ {
207
+ ...rest,
208
+ type: showPassword ? "text" : "password",
209
+ ref: inputRef,
210
+ value,
211
+ onBlur: (e) => {
212
+ if (firstFocus && value)
213
+ setFirstFocus(false);
214
+ },
215
+ onKeyDown: handleKeyDown,
216
+ onChange: (e) => {
217
+ if (cacheKey) {
218
+ sessionStorage.setItem(cacheKey, e.target.value);
219
+ }
220
+ onChange?.(e.target.value, e);
221
+ },
222
+ className: (0, import_client.clsx)(
223
+ `input focus:border-primary text-base-content duration-300 focus:outline-hidden ${icon && "pl-12"}`,
224
+ statusClass,
225
+ inputClassName
226
+ )
227
+ }
228
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: "absolute top-1/2 right-2 flex -translate-y-1/2 items-center justify-center" }, /* @__PURE__ */ import_react.default.createElement(
229
+ "button",
230
+ {
231
+ onClick: () => {
232
+ setShowPassword(!showPassword);
233
+ }
234
+ },
235
+ showPassword ? /* @__PURE__ */ import_react.default.createElement(import_ai.AiOutlineEye, null) : /* @__PURE__ */ import_react.default.createElement(import_ai.AiOutlineEyeInvisible, null)
236
+ ))), /* @__PURE__ */ import_react.default.createElement(
237
+ "div",
238
+ {
239
+ "data-validate": !!invalidMessage.length,
240
+ className: "text-error h-2 text-xs duration-300 data-[validate=false]:opacity-0 data-[validate=true]:opacity-100"
241
+ },
242
+ invalidMessage
243
+ ));
244
+ };
245
+ Input.Password = Password;
246
+ const Email = ({
247
+ inputStyleType = "bordered",
248
+ className,
249
+ nullable,
250
+ value,
251
+ cacheKey,
252
+ onPressEnter,
253
+ onPressEscape,
254
+ onChange,
255
+ validate,
256
+ icon,
257
+ iconClassName,
258
+ inputClassName,
259
+ inputWrapperClassName,
260
+ ...rest
261
+ }) => {
262
+ const { l } = (0, import_next.usePage)();
263
+ const inputRef = (0, import_react.useRef)(null);
264
+ const isValidEmail = (0, import_common.isEmail)(value);
265
+ const [firstFocus, setFirstFocus] = (0, import_react.useState)(true);
266
+ const validateResult = !isValidEmail ? l("util.emailInvalidError") : validate(value);
267
+ const status = !nullable && !value.length ? "warning" : !isValidEmail ? "error" : validateResult === true ? "success" : "error";
268
+ const invalidMessage = !value.length || validateResult === true || firstFocus ? null : validateResult === false ? l("util.invalidValueError") : validateResult;
269
+ const statusClass = status === "error" ? "input-error" : !firstFocus && status === "warning" ? "input-warning" : status === "success" ? "input-success" : "";
270
+ const inputType = inputStyleType === "bordered" ? "input-bordered" : inputStyleType === "borderless" ? "input" : "input-bordered rounded-none";
271
+ const handleKeyDown = (e) => {
272
+ if (onPressEnter && e.key === "Enter")
273
+ onPressEnter(e.currentTarget.value, e);
274
+ if (e.key === "Escape") {
275
+ e.currentTarget.blur();
276
+ onPressEscape?.(e);
277
+ }
278
+ };
279
+ (0, import_react.useEffect)(() => {
280
+ if (!cacheKey)
281
+ return;
282
+ const value2 = sessionStorage.getItem(cacheKey);
283
+ if (value2) {
284
+ onChange?.(value2);
285
+ }
286
+ }, []);
287
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative isolate mb-5", className) }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("flex items-center", inputWrapperClassName) }, icon ? /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("absolute inset-y-0 left-4 z-10 flex items-center justify-center", iconClassName) }, icon) : null, /* @__PURE__ */ import_react.default.createElement(
288
+ "input",
289
+ {
290
+ ...rest,
291
+ type: "email",
292
+ value,
293
+ ref: inputRef,
294
+ onKeyDown: handleKeyDown,
295
+ onBlur: (e) => {
296
+ if (firstFocus && value)
297
+ setFirstFocus(false);
298
+ },
299
+ onChange: (e) => {
300
+ if (cacheKey) {
301
+ sessionStorage.setItem(cacheKey, e.target.value);
302
+ }
303
+ onChange?.(e.target.value, e);
304
+ },
305
+ className: (0, import_client.clsx)(
306
+ `input focus:border-primary text-base-content outline-hidden duration-300 focus:outline-hidden ${icon && "pl-12"}`,
307
+ inputType,
308
+ statusClass,
309
+ inputClassName
310
+ )
311
+ }
312
+ )), invalidMessage ? /* @__PURE__ */ import_react.default.createElement("div", { className: "text-error animate-fadeIn absolute -bottom-4 text-xs" }, invalidMessage) : null);
313
+ };
314
+ Input.Email = Email;
315
+ const Number = ({
316
+ className,
317
+ nullable,
318
+ value,
319
+ icon,
320
+ cacheKey,
321
+ iconClassName,
322
+ inputClassName,
323
+ inputWrapperClassName,
324
+ numberFormat,
325
+ onPressEnter,
326
+ onPressEscape,
327
+ validate,
328
+ onChange,
329
+ formatter,
330
+ parser,
331
+ ...rest
332
+ }) => {
333
+ const { l } = (0, import_next.usePage)();
334
+ const inputRef = (0, import_react.useRef)(null);
335
+ const validateResult = validate ? validate(value) : void 0;
336
+ const generateFormat = () => {
337
+ return isNaN(value ?? 0) ? "" : formatter ? formatter(value?.toString() ?? "") : value?.toString() ?? "";
338
+ };
339
+ const [firstFocus, setFirstFocus] = (0, import_react.useState)(true);
340
+ const [formatValue, setFormatValue] = (0, import_react.useState)(generateFormat());
341
+ const status = validate !== void 0 ? validateResult === true ? "success" : "error" : !nullable && value === null ? "warning" : "";
342
+ const invalidMessage = value === null || validateResult === true ? null : validateResult === false ? l("util.invalidValueError") : validateResult;
343
+ const statusClass = validate !== void 0 ? status === "error" ? "input-error" : !firstFocus && status === "warning" ? "input-warning" : status === "success" ? "input-success" : "input" : "input";
344
+ const handleKeyDown = (e) => {
345
+ const numberValue = parseFloat(e.currentTarget.value.replace(/[^\d-]/g, ""));
346
+ if (e.key === "Enter") {
347
+ if (isNaN(numberValue)) {
348
+ e.currentTarget.value = "";
349
+ setFormatValue("");
350
+ onChange(null);
351
+ return;
352
+ }
353
+ if (rest.max !== void 0 && numberValue > parseFloat(rest.max)) {
354
+ const maxValue = formatter ? formatter(String(rest.max)) : String(rest.max);
355
+ e.currentTarget.value = maxValue;
356
+ setFormatValue(maxValue);
357
+ onPressEnter?.(parseFloat(maxValue), e);
358
+ return;
359
+ } else if (rest.min !== void 0 && numberValue < parseFloat(rest.min)) {
360
+ const minValue = formatter ? formatter(String(rest.min)) : String(rest.min);
361
+ e.currentTarget.value = minValue;
362
+ setFormatValue(minValue);
363
+ onPressEnter?.(parseFloat(minValue), e);
364
+ return;
365
+ }
366
+ setFormatValue(formatter ? formatter(String(numberValue)) : String(numberValue));
367
+ onPressEnter?.(numberValue, e);
368
+ }
369
+ if (e.key === "Escape") {
370
+ if (isNaN(numberValue)) {
371
+ e.currentTarget.value = "";
372
+ setFormatValue("");
373
+ onChange(null);
374
+ return;
375
+ }
376
+ if (rest.max !== void 0 && numberValue > parseFloat(rest.max)) {
377
+ e.currentTarget.value = formatter ? formatter(String(rest.max)) : String(rest.max);
378
+ } else if (rest.min !== void 0 && numberValue < parseFloat(rest.min)) {
379
+ e.currentTarget.value = formatter ? formatter(String(rest.min)) : String(rest.min);
380
+ }
381
+ e.currentTarget.blur();
382
+ onPressEscape?.(e);
383
+ }
384
+ };
385
+ (0, import_react.useEffect)(() => {
386
+ if (cacheKey) {
387
+ const value2 = sessionStorage.getItem(cacheKey);
388
+ if (value2) {
389
+ setFormatValue(value2);
390
+ onChange(parser ? parseFloat(value2) : parseFloat(value2));
391
+ }
392
+ } else {
393
+ setFormatValue(generateFormat());
394
+ }
395
+ }, []);
396
+ (0, import_react.useEffect)(() => {
397
+ setFormatValue(generateFormat());
398
+ }, [value]);
399
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("relative isolate mb-2", className) }, /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("flex items-center", inputWrapperClassName) }, icon ? /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_client.clsx)("absolute inset-y-0 left-4 z-10 flex items-center justify-center", iconClassName) }, icon) : null, /* @__PURE__ */ import_react.default.createElement(
400
+ "input",
401
+ {
402
+ ...rest,
403
+ ref: inputRef,
404
+ value: formatValue,
405
+ onKeyDown: handleKeyDown,
406
+ onBlur: (e) => {
407
+ if (firstFocus && value)
408
+ setFirstFocus(false);
409
+ },
410
+ onChange: (e) => {
411
+ const parsedValue = parser ? parser(e.target.value) : e.target.value;
412
+ setFormatValue(formatter ? formatter(parsedValue) : e.target.value);
413
+ onChange(parser ? parseFloat(parsedValue) : parseFloat(e.target.value), e);
414
+ if (cacheKey)
415
+ sessionStorage.setItem(cacheKey, parsedValue);
416
+ },
417
+ className: (0, import_client.clsx)(
418
+ `input focus:border-primary text-base-content duration-300 focus:outline-hidden ${icon && "pl-12"}`,
419
+ statusClass,
420
+ inputClassName
421
+ )
422
+ }
423
+ )), invalidMessage ? /* @__PURE__ */ import_react.default.createElement("div", { className: "text-error animate-fadeIn absolute -bottom-4 text-xs" }, invalidMessage) : null);
424
+ };
425
+ Input.Number = Number;
426
+ const Checkbox = ({ checked, onChange, className, ...rest }) => {
427
+ return /* @__PURE__ */ import_react.default.createElement(
428
+ "input",
429
+ {
430
+ ...rest,
431
+ type: "checkbox",
432
+ checked,
433
+ className: (0, import_client.clsx)("checkbox", className),
434
+ onChange: (e) => {
435
+ onChange(e.target.checked, e);
436
+ }
437
+ }
438
+ );
439
+ };
440
+ Input.Checkbox = Checkbox;