@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,33 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ import { useEffect, useRef, useState } from "react";
4
+ const Header = ({ className, type, children, height = 40 }) => {
5
+ const [visible, setVisible] = useState(true);
6
+ const position = useRef(0);
7
+ useEffect(() => {
8
+ if (type === "static")
9
+ return;
10
+ const handleScroll = () => {
11
+ const isVisible = window.scrollY < 64 ? true : position.current > window.scrollY;
12
+ position.current = window.scrollY;
13
+ setVisible(isVisible);
14
+ };
15
+ window.addEventListener("scroll", handleScroll);
16
+ return () => {
17
+ window.removeEventListener("scroll", handleScroll);
18
+ };
19
+ }, []);
20
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { style: { height } }), /* @__PURE__ */ React.createElement(
21
+ "div",
22
+ {
23
+ className: clsx(
24
+ `fixed top-0 z-[9] flex duration-300 ${!visible && "md:-translate-y-full"} bg-base-100 w-full shadow-sm backdrop-blur-lg`,
25
+ className
26
+ )
27
+ },
28
+ children
29
+ ));
30
+ };
31
+ export {
32
+ Header
33
+ };
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ import { BiX } from "react-icons/bi";
4
+ const LeftSider = ({ className, children, open, width, onCancel }) => {
5
+ return /* @__PURE__ */ React.createElement(
6
+ "div",
7
+ {
8
+ className: clsx(
9
+ "bg-base-100 border-base-200 absolute top-0 border-r transition-all duration-150",
10
+ { "translate-x-0": open, "translate-x-[-100%]": !open },
11
+ className
12
+ ),
13
+ style: { width }
14
+ },
15
+ children,
16
+ /* @__PURE__ */ React.createElement(
17
+ "button",
18
+ {
19
+ className: "btn btn-ghost btn-square absolute top-0 right-0",
20
+ onClick: () => {
21
+ onCancel();
22
+ }
23
+ },
24
+ /* @__PURE__ */ React.createElement(BiX, null)
25
+ )
26
+ );
27
+ };
28
+ export {
29
+ LeftSider
30
+ };
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { baseClientEnv } from "@akanjs/base";
3
+ import { clsx, usePathCtx } from "@akanjs/client";
4
+ import React, { useEffect, useState } from "react";
5
+ import { BiChevronLeft } from "react-icons/bi";
6
+ import { Link } from "../Link";
7
+ import { Portal } from "../Portal";
8
+ const Navbar = ({ back = false, className, height, children, title, left, right }) => {
9
+ const [render, setRender] = useState(false);
10
+ //! 이거 왜 쓰는지 모르겠음 삭제해도 될듯
11
+ const { location } = usePathCtx();
12
+ const suffix = baseClientEnv.renderMode === "csr" ? `-${location.pathRoute.path}` : "";
13
+ useEffect(() => {
14
+ setRender(true);
15
+ }, []);
16
+ if (!render)
17
+ return null;
18
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Portal, { id: `topInsetContent${suffix}` }, /* @__PURE__ */ React.createElement("div", { className: clsx("size-full", className) }, children)), back ? /* @__PURE__ */ React.createElement(Portal, { id: `topLeftActionContent${suffix}` }, typeof back === "boolean" ? /* @__PURE__ */ React.createElement(Link.Back, { className: "text-4xl" }, /* @__PURE__ */ React.createElement(BiChevronLeft, null)) : back) : null);
19
+ };
20
+ export {
21
+ Navbar
22
+ };
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ import { AiOutlineClose } from "react-icons/ai";
4
+ const RightSider = ({ className, children, open, title, width, onCancel }) => {
5
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
6
+ "div",
7
+ {
8
+ className: clsx(
9
+ "bg-base-100 border-base-200 group absolute top-0 right-0 overflow-y-auto border-l pt-14 transition-all duration-150",
10
+ { "translate-x-0": open, "translate-x-[100%]": !open },
11
+ className
12
+ ),
13
+ style: { width }
14
+ },
15
+ children,
16
+ /* @__PURE__ */ React.createElement("div", { className: "absolute top-2 left-4 flex items-center gap-4 pt-2 text-xl" }, /* @__PURE__ */ React.createElement(
17
+ "div",
18
+ {
19
+ className: clsx("bg-base-100 border-base-200 cursor-pointer transition-all duration-150", {
20
+ "opacity-100": open,
21
+ "opacity-0": !open
22
+ }),
23
+ onClick: () => {
24
+ onCancel();
25
+ }
26
+ },
27
+ /* @__PURE__ */ React.createElement(AiOutlineClose, null)
28
+ ), title ? /* @__PURE__ */ React.createElement("div", { className: "whitespace-nowrap" }, title) : null)
29
+ ));
30
+ };
31
+ export {
32
+ RightSider
33
+ };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ import { AiOutlineMenu } from "react-icons/ai";
4
+ import { BiX } from "react-icons/bi";
5
+ const Sider = ({ className, bgClassName, children }) => {
6
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "drawer-content" }, /* @__PURE__ */ React.createElement("label", { htmlFor: "sider", className: "btn btn-ghost" }, /* @__PURE__ */ React.createElement(AiOutlineMenu, null))), /* @__PURE__ */ React.createElement("div", { className: "drawer drawer-start fixed" }, /* @__PURE__ */ React.createElement("input", { id: "sider", type: "checkbox", className: "drawer-toggle" }), /* @__PURE__ */ React.createElement("div", { className: "drawer-side" }, /* @__PURE__ */ React.createElement("label", { htmlFor: "sider", className: clsx("drawer-overlay", bgClassName) }), /* @__PURE__ */ React.createElement("div", { className: clsx("bg-base-200 text-base-content h-full w-3/4 p-4 md:w-80", className) }, /* @__PURE__ */ React.createElement(
7
+ "button",
8
+ {
9
+ className: "absolute top-4 left-4 text-lg",
10
+ onClick: (e) => {
11
+ e.preventDefault();
12
+ document.getElementById("sider")?.click();
13
+ }
14
+ },
15
+ /* @__PURE__ */ React.createElement(BiX, null)
16
+ ), children))));
17
+ };
18
+ export {
19
+ Sider
20
+ };
@@ -0,0 +1,7 @@
1
+ import { clsx } from "@akanjs/client";
2
+ const Template = ({ className, children }) => {
3
+ return /* @__PURE__ */ React.createElement("div", { className: clsx("flex w-full max-w-[100vw] flex-col gap-6 p-2 lg:max-w-screen-md", className) }, children);
4
+ };
5
+ export {
6
+ Template
7
+ };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { baseClientEnv } from "@akanjs/base";
3
+ import { usePathCtx } from "@akanjs/client";
4
+ import { useEffect, useState } from "react";
5
+ import { Portal } from "../Portal";
6
+ const TopLeftAction = ({ className, children }) => {
7
+ const [render, setRender] = useState(false);
8
+ //! 이거 왜 쓰는지 모르겠음 삭제해도 될듯
9
+ const { location } = usePathCtx();
10
+ const suffix = baseClientEnv.renderMode === "csr" ? `-${location.pathRoute.path}` : "";
11
+ useEffect(() => {
12
+ setRender(true);
13
+ }, []);
14
+ if (!render)
15
+ return null;
16
+ return /* @__PURE__ */ React.createElement(Portal, { id: `topLeftActionContent${suffix}` }, /* @__PURE__ */ React.createElement("div", { className }, children));
17
+ };
18
+ export {
19
+ TopLeftAction
20
+ };
@@ -0,0 +1,8 @@
1
+ import { clsx } from "@akanjs/client";
2
+ import { Link } from "../Link";
3
+ const Unit = ({ className, children, href }) => {
4
+ return /* @__PURE__ */ React.createElement(Link, { href }, /* @__PURE__ */ React.createElement("div", { className: clsx("flex w-full flex-col gap-2 p-4", { "cursor-pointer": !!href }, className) }, children));
5
+ };
6
+ export {
7
+ Unit
8
+ };
@@ -0,0 +1,7 @@
1
+ import { clsx } from "@akanjs/client";
2
+ const View = ({ className, children }) => {
3
+ return /* @__PURE__ */ React.createElement("div", { className: clsx("flex size-full max-w-screen-lg flex-col gap-6 px-2", className) }, children);
4
+ };
5
+ export {
6
+ View
7
+ };
@@ -0,0 +1,7 @@
1
+ import { clsx } from "@akanjs/client";
2
+ const Zone = ({ className, children }) => {
3
+ return /* @__PURE__ */ React.createElement("div", { className: clsx("flex size-full max-w-screen-lg flex-col gap-6 px-2", className) }, children);
4
+ };
5
+ export {
6
+ Zone
7
+ };
@@ -0,0 +1,29 @@
1
+ import { BottomInset } from "./BottomInset";
2
+ import { BottomTab } from "./BottomTab";
3
+ import { Header } from "./Header";
4
+ import { LeftSider } from "./LeftSider";
5
+ import { Navbar } from "./Navbar";
6
+ import { RightSider } from "./RightSider";
7
+ import { Sider } from "./Sider";
8
+ import { Template } from "./Template";
9
+ import { TopLeftAction } from "./TopLeftAction";
10
+ import { Unit } from "./Unit";
11
+ import { View } from "./View";
12
+ import { Zone } from "./Zone";
13
+ const Layout = {
14
+ Header,
15
+ Sider,
16
+ Navbar,
17
+ BottomTab,
18
+ BottomInset,
19
+ Template,
20
+ Unit,
21
+ View,
22
+ Zone,
23
+ TopLeftAction,
24
+ LeftSider,
25
+ RightSider
26
+ };
27
+ export {
28
+ Layout
29
+ };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { clsx, router } from "@akanjs/client";
3
+ function Back({ className, children }) {
4
+ return /* @__PURE__ */ React.createElement("div", { className: clsx("cursor-pointer", className), onClick: () => router.back() }, children);
5
+ }
6
+ export {
7
+ Back as default
8
+ };
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ function Close({ className, children }) {
4
+ return /* @__PURE__ */ React.createElement(
5
+ "div",
6
+ {
7
+ className: clsx("cursor-pointer", className),
8
+ onClick: () => {
9
+ window.close();
10
+ }
11
+ },
12
+ children
13
+ );
14
+ }
15
+ export {
16
+ Close as default
17
+ };
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { clsx, getPathInfo, router } from "@akanjs/client";
3
+ import { usePage } from "@akanjs/next";
4
+ import { st } from "@akanjs/store";
5
+ import { Browser } from "@capacitor/browser";
6
+ function CsrLink({ className, children, href, replace, activeClassName, ...props }) {
7
+ const prefix = st.use.prefix();
8
+ const currentPath = st.use.path();
9
+ const { lang } = usePage();
10
+ const isExternal = href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("tel:");
11
+ const { path } = getPathInfo(href, lang, prefix ?? "");
12
+ return /* @__PURE__ */ React.createElement(
13
+ "a",
14
+ {
15
+ className: clsx("cursor-pointer", className, { [activeClassName ?? ""]: currentPath === path }),
16
+ onClick: () => {
17
+ if (isExternal)
18
+ void Browser.open({ url: href, presentationStyle: "popover" });
19
+ else if (replace)
20
+ router.replace(href);
21
+ else
22
+ router.push(href);
23
+ }
24
+ },
25
+ children
26
+ );
27
+ }
28
+ export {
29
+ CsrLink as default
30
+ };
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { clsx, getPathInfo } from "@akanjs/client";
3
+ import { Logger } from "@akanjs/common";
4
+ import { usePage } from "@akanjs/next";
5
+ import { st } from "@akanjs/store";
6
+ import NextjsLink from "next/link";
7
+ function NextLink({
8
+ className,
9
+ children,
10
+ disabled,
11
+ href,
12
+ scrollToTop,
13
+ replace,
14
+ activeClassName,
15
+ ...props
16
+ }) {
17
+ const prefix = st.use.prefix();
18
+ const { lang } = usePage();
19
+ const isExternal = href.startsWith("http") || href.startsWith("mailto:") || href.startsWith("tel:");
20
+ const { path, pathname } = getPathInfo(href, lang, prefix ?? "");
21
+ const currentPath = st.use.path();
22
+ return /* @__PURE__ */ React.createElement(
23
+ NextjsLink,
24
+ {
25
+ className: clsx(className, { [activeClassName ?? ""]: currentPath === path }),
26
+ href: isExternal ? href : pathname,
27
+ passHref: true,
28
+ replace,
29
+ onClick: () => {
30
+ Logger.log(`pathChange-start:${path}`);
31
+ window.parent.postMessage({ type: "pathChange", path, pathname }, "*");
32
+ if (scrollToTop)
33
+ window.scrollTo(0, 0);
34
+ },
35
+ ...props
36
+ },
37
+ children
38
+ );
39
+ }
40
+ export {
41
+ NextLink as default
42
+ };
@@ -0,0 +1,18 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+ import { lazy } from "@akanjs/next";
3
+ import Back from "./Back";
4
+ import Close from "./Close";
5
+ const CsrLink = lazy(() => import("./CsrLink"));
6
+ const NextLink = lazy(() => import("./NextLink"));
7
+ const Link = ({ className, href, disabled = false, children, ...props }) => {
8
+ if (disabled || !href)
9
+ return /* @__PURE__ */ React.createElement("div", { className, ...props }, children);
10
+ if (baseClientEnv.renderMode === "csr")
11
+ return /* @__PURE__ */ React.createElement(CsrLink, { className, href, ...props }, children);
12
+ return /* @__PURE__ */ React.createElement(NextLink, { className, href, ...props }, children);
13
+ };
14
+ Link.Back = Back;
15
+ Link.Close = Close;
16
+ export {
17
+ Link
18
+ };
File without changes
@@ -0,0 +1,13 @@
1
+ import { deepObjectify } from "@akanjs/common";
2
+ import Edit_Client from "./Edit_Client";
3
+ function Edit({ edit, ...props }) {
4
+ const getObjEdit = (edit2) => {
5
+ const editType = edit2.refName && edit2[`${edit2.refName}Obj`] ? "edit" : "new";
6
+ return editType === "edit" ? edit2 : deepObjectify(edit2, { serializable: true });
7
+ };
8
+ const objEdit = edit instanceof Promise ? edit.then(getObjEdit) : getObjEdit(edit);
9
+ return /* @__PURE__ */ React.createElement(Edit_Client, { edit: objEdit, ...props });
10
+ }
11
+ export {
12
+ Edit as default
13
+ };
@@ -0,0 +1,74 @@
1
+ "use client";
2
+ import { deepObjectify } from "@akanjs/common";
3
+ import { useFetch } from "@akanjs/next";
4
+ import { Empty } from "../Empty";
5
+ import { Model } from "../Model";
6
+ function Render({
7
+ className,
8
+ checkSubmit,
9
+ modalClassName,
10
+ type,
11
+ edit,
12
+ modal,
13
+ sliceName,
14
+ children,
15
+ onSubmit,
16
+ onCancel,
17
+ submitOption,
18
+ renderSubmit
19
+ }) {
20
+ const editType = edit.refName && edit[`${edit.refName}Obj`] ? "edit" : "new";
21
+ const modelId = editType === "edit" ? edit[`${edit.refName}Obj`].id : void 0;
22
+ return /* @__PURE__ */ React.createElement(
23
+ Model.EditModal,
24
+ {
25
+ type,
26
+ id: modelId,
27
+ checkSubmit,
28
+ className,
29
+ modalClassName,
30
+ sliceName,
31
+ edit: editType === "edit" ? edit : deepObjectify(edit, { serializable: true }),
32
+ modal,
33
+ onSubmit,
34
+ onCancel,
35
+ submitOption,
36
+ renderSubmit
37
+ },
38
+ children
39
+ );
40
+ }
41
+ function Edit_Client({
42
+ className,
43
+ checkSubmit,
44
+ modalClassName,
45
+ type,
46
+ edit,
47
+ modal,
48
+ sliceName,
49
+ children,
50
+ onSubmit,
51
+ onCancel,
52
+ submitOption,
53
+ renderSubmit
54
+ }) {
55
+ const props = {
56
+ className,
57
+ checkSubmit,
58
+ modalClassName,
59
+ type,
60
+ edit,
61
+ modal,
62
+ sliceName,
63
+ children,
64
+ onSubmit,
65
+ onCancel,
66
+ submitOption,
67
+ renderSubmit
68
+ };
69
+ const { fulfilled, value: promiseEdit } = useFetch(edit);
70
+ return fulfilled ? promiseEdit ? /* @__PURE__ */ React.createElement(Render, { ...props, edit: promiseEdit }) : /* @__PURE__ */ React.createElement(Empty, null) : /* @__PURE__ */ React.createElement(Empty, null);
71
+ }
72
+ export {
73
+ Edit_Client as default
74
+ };
@@ -0,0 +1,16 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+ import { PageCSR } from "./PageCSR";
3
+ const Page = baseClientEnv.renderMode === "csr" ? PageCSR : ({ loader, render }) => {
4
+ const promise = new Promise((resolve, reject) => {
5
+ loader().then((data) => {
6
+ resolve(render(data));
7
+ }).catch((error) => {
8
+ reject(error);
9
+ });
10
+ });
11
+ return promise;
12
+ };
13
+ var Page_default = Page;
14
+ export {
15
+ Page_default as default
16
+ };
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { useEffect, useMemo, useState } from "react";
3
+ const setFetchedData = (target, data) => {
4
+ Reflect.defineMetadata("fetchedData", data, target);
5
+ };
6
+ const getFetchedData = (target) => {
7
+ const data = Reflect.getMetadata("fetchedData", target);
8
+ return data ?? null;
9
+ };
10
+ const PageCSR = ({
11
+ of,
12
+ loader,
13
+ render,
14
+ loading,
15
+ noCache = false,
16
+ header,
17
+ pageContent = true
18
+ }) => {
19
+ const fetchData = useMemo(() => {
20
+ const cachedData = getFetchedData(of);
21
+ if (!noCache && cachedData)
22
+ return cachedData;
23
+ else
24
+ return loader();
25
+ }, []);
26
+ const [fetchState, setFetchState] = useState(
27
+ fetchData instanceof Promise ? { fulfilled: false, value: null } : { fulfilled: true, value: fetchData }
28
+ );
29
+ useEffect(() => {
30
+ if (fetchState.fulfilled || !(fetchData instanceof Promise))
31
+ return;
32
+ void (async () => {
33
+ try {
34
+ const ret = await fetchData;
35
+ setFetchState({ fulfilled: true, value: ret });
36
+ setFetchedData(of, ret);
37
+ } catch (err) {
38
+ }
39
+ })();
40
+ }, []);
41
+ if (!fetchState.fulfilled || !fetchState.value)
42
+ return loading ? loading() : null;
43
+ else
44
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, render(fetchState.value));
45
+ };
46
+ export {
47
+ PageCSR
48
+ };
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { clsx } from "@akanjs/client";
3
+ import { capitalize, lowerlize } from "@akanjs/common";
4
+ import { useFetch } from "@akanjs/next";
5
+ import { st } from "@akanjs/store";
6
+ import { use, useRef } from "react";
7
+ import { Empty } from "../Empty";
8
+ import { Pagination as Pagn } from "../Pagination";
9
+ function Render({ className, init, scrollToTop }) {
10
+ const storeUse = st.use;
11
+ const storeDo = st.do;
12
+ const storeGet = st.get;
13
+ const modelInit = init.then ? use(init) : init;
14
+ const { refName, sliceName } = modelInit;
15
+ const [modelName, ModelName] = [lowerlize(refName), capitalize(refName)];
16
+ const initModelInitAt = modelInit[`${modelName}InitAt`];
17
+ const loaded = useRef(storeGet()[`${modelInit.refName}InitAt`].getTime() >= initModelInitAt.getTime());
18
+ const names = {
19
+ model: modelName,
20
+ modelInsight: `${modelName}Insight`,
21
+ modelInitAt: `${modelName}InitAt`,
22
+ modelObjInsight: `${modelName}ObjInsight`,
23
+ pageOfModel: `pageOf${ModelName}`,
24
+ lastPageOfModel: `lastPageOf${ModelName}`,
25
+ limitOfModel: `limitOf${ModelName}`,
26
+ setPageOfModel: `setPageOf${ModelName}`,
27
+ addPageOfModel: `addPageOf${ModelName}`
28
+ };
29
+ const namesOfSlice = {
30
+ modelInsight: sliceName.replace(names.model, names.modelInsight),
31
+ limitOfModel: sliceName.replace(names.model, names.limitOfModel),
32
+ lastPageOfModel: sliceName.replace(names.model, names.lastPageOfModel),
33
+ pageOfModel: sliceName.replace(names.model, names.pageOfModel),
34
+ setPageOfModel: sliceName.replace(names.model, names.setPageOfModel),
35
+ addPageOfModel: sliceName.replace(names.model, names.addPageOfModel)
36
+ };
37
+ const modelInsight = storeUse[namesOfSlice.modelInsight]();
38
+ const limitOfModel = storeUse[namesOfSlice.limitOfModel]();
39
+ const pageOfModel = storeUse[namesOfSlice.pageOfModel]();
40
+ const initModelObjInsight = modelInit[names.modelObjInsight];
41
+ const initPageOfModel = modelInit[names.pageOfModel];
42
+ const initLimitOfModel = modelInit[names.limitOfModel];
43
+ const insight = loaded.current ? modelInsight : initModelObjInsight;
44
+ const page = loaded.current ? pageOfModel : initPageOfModel;
45
+ const limit = loaded.current ? limitOfModel : initLimitOfModel;
46
+ if (!loaded.current)
47
+ loaded.current = true;
48
+ return /* @__PURE__ */ React.createElement("div", { className: clsx("mt-4 flex flex-wrap justify-center", className) }, insight.count > limit && /* @__PURE__ */ React.createElement(
49
+ Pagn,
50
+ {
51
+ currentPage: page,
52
+ total: insight.count,
53
+ itemsPerPage: limit || insight.count,
54
+ onPageSelect: (page2) => {
55
+ void storeDo[namesOfSlice.setPageOfModel](page2);
56
+ if (scrollToTop) {
57
+ window.parent.postMessage({ type: "pathChange", page: page2 }, "*");
58
+ window.scrollTo({ top: 0, behavior: "instant" });
59
+ }
60
+ }
61
+ }
62
+ ));
63
+ }
64
+ function Pagination({ className, init, scrollToTop }) {
65
+ const { fulfilled, value: promiseInit } = useFetch(init);
66
+ return fulfilled ? promiseInit ? /* @__PURE__ */ React.createElement(Render, { scrollToTop: true, init: promiseInit }) : /* @__PURE__ */ React.createElement(Empty, null) : /* @__PURE__ */ React.createElement(React.Fragment, null);
67
+ }
68
+ export {
69
+ Pagination as default
70
+ };