@kirill.konshin/utils 0.0.19 → 0.0.21

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/README.md +6 -0
  2. package/dist/bootstrap/index.d.ts +1 -12
  3. package/dist/bootstrap/index.d.ts.map +1 -1
  4. package/dist/bootstrap/index.js +2 -35
  5. package/dist/browser/index.d.ts +2 -0
  6. package/dist/browser/index.d.ts.map +1 -0
  7. package/dist/browser/index.js +2 -0
  8. package/dist/core/index.d.ts +1 -9
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +2 -35
  11. package/dist/electron/index.d.ts +1 -2
  12. package/dist/electron/index.d.ts.map +1 -1
  13. package/dist/electron/index.js +2 -9
  14. package/dist/electron-builder/index.d.ts +1 -2
  15. package/dist/electron-builder/index.d.ts.map +1 -1
  16. package/dist/electron-builder/index.js +2 -7
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +13 -0
  20. package/dist/mui/index.d.ts +1 -4
  21. package/dist/mui/index.d.ts.map +1 -1
  22. package/dist/mui/index.js +2 -11
  23. package/dist/next/index.d.ts +1 -5
  24. package/dist/next/index.d.ts.map +1 -1
  25. package/dist/next/index.js +2 -15
  26. package/dist/node/index.d.ts +2 -0
  27. package/dist/node/index.d.ts.map +1 -0
  28. package/dist/node/index.js +2 -0
  29. package/dist/react/index.d.ts +1 -5
  30. package/dist/react/index.d.ts.map +1 -1
  31. package/dist/react/index.js +2 -26
  32. package/dist/react-native/index.d.ts +1 -3
  33. package/dist/react-native/index.d.ts.map +1 -1
  34. package/dist/react-native/index.js +2 -9
  35. package/dist/tailwind/index.d.ts +1 -2
  36. package/dist/tailwind/index.d.ts.map +1 -1
  37. package/dist/tailwind/index.js +2 -7
  38. package/dist/worker/index.d.ts +2 -0
  39. package/dist/worker/index.d.ts.map +1 -0
  40. package/dist/worker/index.js +2 -0
  41. package/package.json +51 -99
  42. package/.ctirc +0 -11
  43. package/.storybook/main.ts +0 -21
  44. package/.storybook/preview.ts +0 -17
  45. package/.turbo/turbo-build.log +0 -72
  46. package/.turbo/turbo-test.log +0 -171
  47. package/CHANGELOG.md +0 -116
  48. package/builders/.swcrc +0 -18
  49. package/builders/build.config.ts +0 -11
  50. package/builders/bun.build.js +0 -23
  51. package/builders/package.json +0 -209
  52. package/builders/perf.mjs +0 -63
  53. package/builders/rollup.config.mjs +0 -50
  54. package/builders/rslib.config.ts +0 -26
  55. package/builders/tsconfig.json +0 -21
  56. package/builders/tsup.config.ts +0 -20
  57. package/builders/turbo.json +0 -24
  58. package/builders/vite.config.ts +0 -37
  59. package/demo/worker-demo.ts +0 -73
  60. package/dist/bootstrap/adaptiveContainer.d.ts +0 -4
  61. package/dist/bootstrap/adaptiveContainer.d.ts.map +0 -1
  62. package/dist/bootstrap/adaptiveContainer.js +0 -11
  63. package/dist/bootstrap/adaptiveContainer.js.map +0 -1
  64. package/dist/bootstrap/controls.d.ts +0 -38
  65. package/dist/bootstrap/controls.d.ts.map +0 -1
  66. package/dist/bootstrap/controls.js +0 -78
  67. package/dist/bootstrap/controls.js.map +0 -1
  68. package/dist/bootstrap/controls.stories.d.ts +0 -9
  69. package/dist/bootstrap/controls.stories.d.ts.map +0 -1
  70. package/dist/bootstrap/error.d.ts +0 -9
  71. package/dist/bootstrap/error.d.ts.map +0 -1
  72. package/dist/bootstrap/error.js +0 -27
  73. package/dist/bootstrap/error.js.map +0 -1
  74. package/dist/bootstrap/error.stories.d.ts +0 -8
  75. package/dist/bootstrap/error.stories.d.ts.map +0 -1
  76. package/dist/bootstrap/field.d.ts +0 -11
  77. package/dist/bootstrap/field.d.ts.map +0 -1
  78. package/dist/bootstrap/field.js +0 -29
  79. package/dist/bootstrap/field.js.map +0 -1
  80. package/dist/bootstrap/field.stories.d.ts +0 -8
  81. package/dist/bootstrap/field.stories.d.ts.map +0 -1
  82. package/dist/bootstrap/footer.d.ts +0 -10
  83. package/dist/bootstrap/footer.d.ts.map +0 -1
  84. package/dist/bootstrap/footer.js +0 -45
  85. package/dist/bootstrap/footer.js.map +0 -1
  86. package/dist/bootstrap/globalLoading.d.ts +0 -6
  87. package/dist/bootstrap/globalLoading.d.ts.map +0 -1
  88. package/dist/bootstrap/globalLoading.js +0 -10
  89. package/dist/bootstrap/globalLoading.js.map +0 -1
  90. package/dist/bootstrap/globalLoading.stories.d.ts +0 -7
  91. package/dist/bootstrap/globalLoading.stories.d.ts.map +0 -1
  92. package/dist/bootstrap/index.js.map +0 -1
  93. package/dist/bootstrap/loading.d.ts +0 -10
  94. package/dist/bootstrap/loading.d.ts.map +0 -1
  95. package/dist/bootstrap/loading.js +0 -19
  96. package/dist/bootstrap/loading.js.map +0 -1
  97. package/dist/bootstrap/loading.stories.d.ts +0 -9
  98. package/dist/bootstrap/loading.stories.d.ts.map +0 -1
  99. package/dist/bootstrap/responsiveHelper.d.ts +0 -8
  100. package/dist/bootstrap/responsiveHelper.d.ts.map +0 -1
  101. package/dist/bootstrap/responsiveHelper.js +0 -46
  102. package/dist/bootstrap/responsiveHelper.js.map +0 -1
  103. package/dist/bootstrap/screen.d.ts +0 -22
  104. package/dist/bootstrap/screen.d.ts.map +0 -1
  105. package/dist/bootstrap/screen.js +0 -80
  106. package/dist/bootstrap/screen.js.map +0 -1
  107. package/dist/bootstrap/screen.stories.d.ts +0 -14
  108. package/dist/bootstrap/screen.stories.d.ts.map +0 -1
  109. package/dist/bootstrap/toaster.d.ts +0 -11
  110. package/dist/bootstrap/toaster.d.ts.map +0 -1
  111. package/dist/bootstrap/toaster.js +0 -34
  112. package/dist/bootstrap/toaster.js.map +0 -1
  113. package/dist/bootstrap/toaster.stories.d.ts +0 -8
  114. package/dist/bootstrap/toaster.stories.d.ts.map +0 -1
  115. package/dist/bootstrap/useModal.d.ts +0 -23
  116. package/dist/bootstrap/useModal.d.ts.map +0 -1
  117. package/dist/bootstrap/useModal.js +0 -50
  118. package/dist/bootstrap/useModal.js.map +0 -1
  119. package/dist/bootstrap/useModal.stories.d.ts +0 -9
  120. package/dist/bootstrap/useModal.stories.d.ts.map +0 -1
  121. package/dist/bootstrap/useWrappedForm.d.ts +0 -14
  122. package/dist/bootstrap/useWrappedForm.d.ts.map +0 -1
  123. package/dist/bootstrap/useWrappedForm.js +0 -32
  124. package/dist/bootstrap/useWrappedForm.js.map +0 -1
  125. package/dist/core/cache.d.ts +0 -120
  126. package/dist/core/cache.d.ts.map +0 -1
  127. package/dist/core/cache.js +0 -107
  128. package/dist/core/cache.js.map +0 -1
  129. package/dist/core/cache.test.d.ts +0 -2
  130. package/dist/core/cache.test.d.ts.map +0 -1
  131. package/dist/core/errors.d.ts +0 -2
  132. package/dist/core/errors.d.ts.map +0 -1
  133. package/dist/core/errors.js +0 -15
  134. package/dist/core/errors.js.map +0 -1
  135. package/dist/core/files.d.ts +0 -4
  136. package/dist/core/files.d.ts.map +0 -1
  137. package/dist/core/files.js +0 -31
  138. package/dist/core/files.js.map +0 -1
  139. package/dist/core/index.js.map +0 -1
  140. package/dist/core/ls.d.ts +0 -6
  141. package/dist/core/ls.d.ts.map +0 -1
  142. package/dist/core/ls.js +0 -12
  143. package/dist/core/ls.js.map +0 -1
  144. package/dist/core/measure.d.ts +0 -35
  145. package/dist/core/measure.d.ts.map +0 -1
  146. package/dist/core/measure.js +0 -60
  147. package/dist/core/measure.js.map +0 -1
  148. package/dist/core/mutex.d.ts +0 -6
  149. package/dist/core/mutex.d.ts.map +0 -1
  150. package/dist/core/mutex.js +0 -26
  151. package/dist/core/mutex.js.map +0 -1
  152. package/dist/core/worker.d.ts +0 -98
  153. package/dist/core/worker.d.ts.map +0 -1
  154. package/dist/core/worker.js +0 -240
  155. package/dist/core/worker.js.map +0 -1
  156. package/dist/core/worker.test.d.ts +0 -2
  157. package/dist/core/worker.test.d.ts.map +0 -1
  158. package/dist/core/workerUtils.d.ts +0 -3
  159. package/dist/core/workerUtils.d.ts.map +0 -1
  160. package/dist/core/workerUtils.js +0 -31
  161. package/dist/core/workerUtils.js.map +0 -1
  162. package/dist/core/wrpc.d.ts +0 -45
  163. package/dist/core/wrpc.d.ts.map +0 -1
  164. package/dist/core/wrpc.fixture.d.ts +0 -26
  165. package/dist/core/wrpc.fixture.d.ts.map +0 -1
  166. package/dist/core/wrpc.js +0 -242
  167. package/dist/core/wrpc.js.map +0 -1
  168. package/dist/core/wrpc.test.d.ts +0 -1
  169. package/dist/core/wrpc.test.d.ts.map +0 -1
  170. package/dist/electron/createWindow.d.ts +0 -23
  171. package/dist/electron/createWindow.d.ts.map +0 -1
  172. package/dist/electron/createWindow.js +0 -160
  173. package/dist/electron/createWindow.js.map +0 -1
  174. package/dist/electron/index.js.map +0 -1
  175. package/dist/electron/updater.d.ts +0 -2
  176. package/dist/electron/updater.d.ts.map +0 -1
  177. package/dist/electron/updater.js +0 -47
  178. package/dist/electron/updater.js.map +0 -1
  179. package/dist/electron-builder/builder.d.ts +0 -8
  180. package/dist/electron-builder/builder.d.ts.map +0 -1
  181. package/dist/electron-builder/builder.js +0 -130
  182. package/dist/electron-builder/builder.js.map +0 -1
  183. package/dist/electron-builder/images.d.ts +0 -7
  184. package/dist/electron-builder/images.d.ts.map +0 -1
  185. package/dist/electron-builder/images.js +0 -25
  186. package/dist/electron-builder/images.js.map +0 -1
  187. package/dist/electron-builder/index.js.map +0 -1
  188. package/dist/mui/formControlFieldset.d.ts +0 -5
  189. package/dist/mui/formControlFieldset.d.ts.map +0 -1
  190. package/dist/mui/formControlFieldset.js +0 -28
  191. package/dist/mui/formControlFieldset.js.map +0 -1
  192. package/dist/mui/formControlFieldset.stories.d.ts +0 -7
  193. package/dist/mui/formControlFieldset.stories.d.ts.map +0 -1
  194. package/dist/mui/formLabelLegend.d.ts +0 -4
  195. package/dist/mui/formLabelLegend.d.ts.map +0 -1
  196. package/dist/mui/formLabelLegend.js +0 -12
  197. package/dist/mui/formLabelLegend.js.map +0 -1
  198. package/dist/mui/genericControl.d.ts +0 -7
  199. package/dist/mui/genericControl.d.ts.map +0 -1
  200. package/dist/mui/genericControl.js +0 -21
  201. package/dist/mui/genericControl.js.map +0 -1
  202. package/dist/mui/index.js.map +0 -1
  203. package/dist/mui/readOnly.d.ts +0 -6
  204. package/dist/mui/readOnly.d.ts.map +0 -1
  205. package/dist/mui/readOnly.js +0 -7
  206. package/dist/mui/readOnly.js.map +0 -1
  207. package/dist/next/appLink.d.ts +0 -8
  208. package/dist/next/appLink.d.ts.map +0 -1
  209. package/dist/next/appLink.js +0 -34
  210. package/dist/next/appLink.js.map +0 -1
  211. package/dist/next/index.js.map +0 -1
  212. package/dist/next/measure.d.ts +0 -15
  213. package/dist/next/measure.d.ts.map +0 -1
  214. package/dist/next/measure.js +0 -9
  215. package/dist/next/measure.js.map +0 -1
  216. package/dist/next/noSSR.d.ts +0 -29
  217. package/dist/next/noSSR.d.ts.map +0 -1
  218. package/dist/next/noSSR.js +0 -13
  219. package/dist/next/noSSR.js.map +0 -1
  220. package/dist/next/redirect.d.ts +0 -6
  221. package/dist/next/redirect.d.ts.map +0 -1
  222. package/dist/next/useIsInner.d.ts +0 -3
  223. package/dist/next/useIsInner.d.ts.map +0 -1
  224. package/dist/next/useIsInner.js +0 -15
  225. package/dist/next/useIsInner.js.map +0 -1
  226. package/dist/react/apiCall.d.ts +0 -6
  227. package/dist/react/apiCall.d.ts.map +0 -1
  228. package/dist/react/apiCall.js +0 -24
  229. package/dist/react/apiCall.js.map +0 -1
  230. package/dist/react/form/client.d.ts +0 -7
  231. package/dist/react/form/client.d.ts.map +0 -1
  232. package/dist/react/form/client.js +0 -46
  233. package/dist/react/form/client.js.map +0 -1
  234. package/dist/react/form/form.d.ts +0 -59
  235. package/dist/react/form/form.d.ts.map +0 -1
  236. package/dist/react/form/form.js +0 -89
  237. package/dist/react/form/form.js.map +0 -1
  238. package/dist/react/form/index.d.ts +0 -3
  239. package/dist/react/form/index.d.ts.map +0 -1
  240. package/dist/react/index.js.map +0 -1
  241. package/dist/react/keyboard.d.ts +0 -10
  242. package/dist/react/keyboard.d.ts.map +0 -1
  243. package/dist/react/keyboard.js +0 -38
  244. package/dist/react/keyboard.js.map +0 -1
  245. package/dist/react/useFetch.d.ts +0 -2
  246. package/dist/react/useFetch.d.ts.map +0 -1
  247. package/dist/react/useFetch.js +0 -20
  248. package/dist/react/useFetch.js.map +0 -1
  249. package/dist/react/useFetcher.d.ts +0 -10
  250. package/dist/react/useFetcher.d.ts.map +0 -1
  251. package/dist/react/useFetcher.js +0 -43
  252. package/dist/react/useFetcher.js.map +0 -1
  253. package/dist/react-native/index.js.map +0 -1
  254. package/dist/react-native/share.d.ts +0 -9
  255. package/dist/react-native/share.d.ts.map +0 -1
  256. package/dist/react-native/share.js +0 -23
  257. package/dist/react-native/share.js.map +0 -1
  258. package/dist/react-native/update.d.ts +0 -3
  259. package/dist/react-native/update.d.ts.map +0 -1
  260. package/dist/react-native/update.js +0 -40
  261. package/dist/react-native/update.js.map +0 -1
  262. package/dist/react-native/useAppState.d.ts +0 -2
  263. package/dist/react-native/useAppState.d.ts.map +0 -1
  264. package/dist/react-native/useAppState.js +0 -18
  265. package/dist/react-native/useAppState.js.map +0 -1
  266. package/dist/tailwind/fullpage.d.ts +0 -3
  267. package/dist/tailwind/fullpage.d.ts.map +0 -1
  268. package/dist/tailwind/fullpage.js +0 -14
  269. package/dist/tailwind/fullpage.js.map +0 -1
  270. package/dist/tailwind/index.js.map +0 -1
  271. package/dist/tailwind/responsiveHelper.d.ts +0 -3
  272. package/dist/tailwind/responsiveHelper.d.ts.map +0 -1
  273. package/dist/tailwind/responsiveHelper.js +0 -16
  274. package/dist/tailwind/responsiveHelper.js.map +0 -1
  275. package/src/bootstrap/adaptiveContainer.tsx +0 -12
  276. package/src/bootstrap/controls.stories.tsx +0 -62
  277. package/src/bootstrap/controls.tsx +0 -119
  278. package/src/bootstrap/error.stories.tsx +0 -34
  279. package/src/bootstrap/error.tsx +0 -37
  280. package/src/bootstrap/field.stories.tsx +0 -42
  281. package/src/bootstrap/field.tsx +0 -37
  282. package/src/bootstrap/footer.tsx +0 -61
  283. package/src/bootstrap/globalLoading.stories.tsx +0 -25
  284. package/src/bootstrap/globalLoading.tsx +0 -19
  285. package/src/bootstrap/index.ts +0 -12
  286. package/src/bootstrap/loading.stories.tsx +0 -35
  287. package/src/bootstrap/loading.tsx +0 -24
  288. package/src/bootstrap/main.scss +0 -86
  289. package/src/bootstrap/responsiveHelper.tsx +0 -55
  290. package/src/bootstrap/screen.stories.tsx +0 -160
  291. package/src/bootstrap/screen.tsx +0 -146
  292. package/src/bootstrap/toaster.stories.tsx +0 -32
  293. package/src/bootstrap/toaster.tsx +0 -40
  294. package/src/bootstrap/useModal.stories.tsx +0 -51
  295. package/src/bootstrap/useModal.tsx +0 -93
  296. package/src/bootstrap/useWrappedForm.ts +0 -42
  297. package/src/core/README.md +0 -91
  298. package/src/core/cache.test.ts +0 -121
  299. package/src/core/cache.ts +0 -246
  300. package/src/core/errors.ts +0 -17
  301. package/src/core/files.ts +0 -29
  302. package/src/core/index.ts +0 -9
  303. package/src/core/ls.ts +0 -15
  304. package/src/core/measure.ts +0 -109
  305. package/src/core/mutex.ts +0 -22
  306. package/src/core/worker.test.ts +0 -197
  307. package/src/core/worker.ts +0 -347
  308. package/src/core/workerUtils.ts +0 -32
  309. package/src/core/wrpc.fixture.ts +0 -106
  310. package/src/core/wrpc.test.ts +0 -225
  311. package/src/core/wrpc.ts +0 -377
  312. package/src/electron/README.md +0 -13
  313. package/src/electron/createWindow.ts +0 -234
  314. package/src/electron/index.ts +0 -2
  315. package/src/electron/updater.ts +0 -54
  316. package/src/electron-builder/builder.ts +0 -150
  317. package/src/electron-builder/images.ts +0 -33
  318. package/src/electron-builder/index.ts +0 -2
  319. package/src/mui/README.md +0 -3
  320. package/src/mui/formControlFieldset.stories.tsx +0 -71
  321. package/src/mui/formControlFieldset.tsx +0 -26
  322. package/src/mui/formLabelLegend.tsx +0 -11
  323. package/src/mui/genericControl.tsx +0 -20
  324. package/src/mui/index.ts +0 -4
  325. package/src/mui/readOnly.tsx +0 -6
  326. package/src/next/appLink.tsx +0 -40
  327. package/src/next/index.ts +0 -5
  328. package/src/next/measure.ts +0 -24
  329. package/src/next/noSSR.tsx +0 -36
  330. package/src/next/redirect.tsx +0 -13
  331. package/src/next/useIsInner.ts +0 -13
  332. package/src/react/apiCall.ts +0 -25
  333. package/src/react/form/client.tsx +0 -73
  334. package/src/react/form/form.tsx +0 -178
  335. package/src/react/form/index.ts +0 -2
  336. package/src/react/index.ts +0 -5
  337. package/src/react/keyboard.tsx +0 -54
  338. package/src/react/useFetch.ts +0 -29
  339. package/src/react/useFetcher.ts +0 -54
  340. package/src/react-native/index.ts +0 -3
  341. package/src/react-native/share.ts +0 -31
  342. package/src/react-native/update.tsx +0 -40
  343. package/src/react-native/useAppState.ts +0 -18
  344. package/src/tailwind/README.md +0 -8
  345. package/src/tailwind/fullpage.tsx +0 -11
  346. package/src/tailwind/index.ts +0 -2
  347. package/src/tailwind/responsiveHelper.tsx +0 -16
  348. package/src-todo/auth0.tsx +0 -177
  349. package/tsconfig.json +0 -23
  350. package/turbo.json +0 -10
  351. package/vite.config.ts +0 -56
  352. package/vite.exports.ts +0 -121
@@ -1,7 +0,0 @@
1
- import { FC } from 'react';
2
- import { FormControlProps } from '@mui/material/FormControl';
3
- export type GenericControlProps = FormControlProps & {
4
- children: any;
5
- };
6
- export declare const GenericControl: FC<GenericControlProps>;
7
- //# sourceMappingURL=genericControl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genericControl.d.ts","sourceRoot":"","sources":["../../src/mui/genericControl.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,2BAA2B,CAAC;AAGrF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAalD,CAAC"}
@@ -1,21 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import FormControl from "@mui/material/FormControl";
3
- import { inputClasses } from "@mui/material/Input";
4
- const GenericControl = ({ children, sx, ...props }) => /* @__PURE__ */ jsx(
5
- FormControl,
6
- {
7
- variant: "standard",
8
- sx: {
9
- ...sx,
10
- [`& .${inputClasses.root}`]: {
11
- "&:before, &:after": { display: "none" }
12
- }
13
- },
14
- ...props,
15
- children
16
- }
17
- );
18
- export {
19
- GenericControl
20
- };
21
- //# sourceMappingURL=genericControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genericControl.js","sources":["../../src/mui/genericControl.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { FormControlProps, default as FormControl } from '@mui/material/FormControl';\nimport { inputClasses } from '@mui/material/Input';\n\nexport type GenericControlProps = FormControlProps & { children: any };\n\nexport const GenericControl: FC<GenericControlProps> = ({ children, sx, ...props }) => (\n <FormControl\n variant=\"standard\"\n sx={{\n ...sx,\n [`& .${inputClasses.root}`]: {\n '&:before, &:after': { display: 'none' },\n },\n }}\n {...props}\n >\n {children}\n </FormControl>\n);\n"],"names":[],"mappings":";;;AAMO,MAAM,iBAA0C,CAAC,EAAE,UAAU,IAAI,GAAG,MACvE,MAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,SAAQ;AAAA,IACR,IAAI;AAAA,MACA,GAAG;AAAA,MACH,CAAC,MAAM,aAAa,IAAI,EAAE,GAAG;AAAA,QACzB,qBAAqB,EAAE,SAAS,OAAO;AAAA,MAAA;AAAA,IAE/C;AAAA,IACC,GAAG;AAAA,IAEH;AAAA,EAAA;AACL;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,6 +0,0 @@
1
- import { FC } from 'react';
2
- import { InputProps } from '@mui/material/Input';
3
- export declare const ReadOnly: FC<InputProps & {
4
- children: any;
5
- }>;
6
- //# sourceMappingURL=readOnly.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readOnly.d.ts","sourceRoot":"","sources":["../../src/mui/readOnly.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,UAAU,GAAG;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAEvD,CAAC"}
@@ -1,7 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import Input from "@mui/material/Input";
3
- const ReadOnly = ({ children, inputProps, ...props }) => /* @__PURE__ */ jsx(Input, { ...props, inputComponent: "div", inputProps: { ...inputProps, children } });
4
- export {
5
- ReadOnly
6
- };
7
- //# sourceMappingURL=readOnly.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readOnly.js","sources":["../../src/mui/readOnly.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { default as Input, InputProps } from '@mui/material/Input';\n\nexport const ReadOnly: FC<InputProps & { children: any }> = ({ children, inputProps, ...props }) => (\n <Input {...props} inputComponent={'div' as any} inputProps={{ ...inputProps, children }}></Input>\n);\n"],"names":[],"mappings":";;AAGO,MAAM,WAA+C,CAAC,EAAE,UAAU,YAAY,GAAG,YACpF,oBAAC,SAAO,GAAG,OAAO,gBAAgB,OAAc,YAAY,EAAE,GAAG,YAAY,WAAY,CAAA;"}
@@ -1,8 +0,0 @@
1
- import { ComponentProps, FC } from 'react';
2
- import { default as Link, LinkProps } from 'next/link';
3
- export declare const AppLink: FC<{
4
- children: any;
5
- exact?: boolean;
6
- activeClassName?: any;
7
- } & LinkProps & ComponentProps<typeof Link>>;
8
- //# sourceMappingURL=appLink.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appLink.d.ts","sourceRoot":"","sources":["../../src/next/appLink.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAI5C,eAAO,MAAM,OAAO,EAAE,EAAE,CACpB;IACI,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,GAAG,CAAC;CACzB,GAAG,SAAS,GACT,cAAc,CAAC,OAAO,IAAI,CAAC,CAyBlC,CAAC"}
@@ -1,34 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { usePathname } from "next/navigation";
4
- import Link from "next/link";
5
- import clsx from "clsx";
6
- const AppLink = function AppLink2({
7
- href,
8
- children,
9
- className = "",
10
- activeClassName = "",
11
- prefetch = false,
12
- // set explicit default
13
- exact = false,
14
- ...props
15
- }) {
16
- const pathname = usePathname();
17
- const hrefPath = typeof href === "string" ? href : href.pathname || "/";
18
- return /* @__PURE__ */ jsx(
19
- Link,
20
- {
21
- ...props,
22
- href,
23
- className: clsx(className, {
24
- [activeClassName]: !exact && pathname.startsWith(hrefPath) || exact && pathname === hrefPath
25
- }),
26
- prefetch,
27
- children
28
- }
29
- );
30
- };
31
- export {
32
- AppLink
33
- };
34
- //# sourceMappingURL=appLink.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appLink.js","sources":["../../src/next/appLink.tsx"],"sourcesContent":["'use client';\n\nimport React, { ComponentProps, FC } from 'react';\nimport { usePathname } from 'next/navigation';\nimport Link, { LinkProps } from 'next/link';\nimport clsx from 'clsx';\n\n//TODO Test this\nexport const AppLink: FC<\n {\n children: any;\n exact?: boolean;\n activeClassName?: any;\n } & LinkProps &\n ComponentProps<typeof Link>\n> = function AppLink({\n href,\n children,\n className = '',\n activeClassName = '',\n prefetch = false, // set explicit default\n exact = false,\n ...props\n}) {\n const pathname = usePathname();\n const hrefPath = typeof href === 'string' ? href : href.pathname || '/';\n\n return (\n <Link\n {...props}\n href={href}\n className={clsx(className, {\n [activeClassName]: (!exact && pathname.startsWith(hrefPath)) || (exact && pathname === hrefPath),\n })}\n prefetch={prefetch}\n >\n {children}\n </Link>\n );\n};\n"],"names":["AppLink"],"mappings":";;;;;AAQa,MAAA,UAOT,SAASA,SAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,WAAW;AAAA;AAAA,EACX,QAAQ;AAAA,EACR,GAAG;AACP,GAAG;AACC,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,OAAO,SAAS,WAAW,OAAO,KAAK,YAAY;AAGhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAW,KAAK,WAAW;AAAA,QACvB,CAAC,eAAe,GAAI,CAAC,SAAS,SAAS,WAAW,QAAQ,KAAO,SAAS,aAAa;AAAA,MAAA,CAC1F;AAAA,MACD;AAAA,MAEC;AAAA,IAAA;AAAA,EACL;AAER;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,15 +0,0 @@
1
- export declare const isProd: boolean;
2
- export declare const measurer: {
3
- measure: (what: string, step: string, supplemental?: string, ...args: any[]) => {
4
- done: (result?: string, ...args2: any[]) => void;
5
- fail: (result?: string, ...args2: any[]) => void;
6
- log: (...args2: any[]) => void;
7
- };
8
- important: (str: any) => any;
9
- subject: (str: any) => any;
10
- arg: (str: any) => any;
11
- sup: (str: any) => any;
12
- ok: (str: any) => any;
13
- err: (str: any) => any;
14
- };
15
- //# sourceMappingURL=measure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../src/next/measure.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,EAAE,OACsF,CAAC;AAE5G,eAAO,MAAM,QAAQ,EAAE;IACnB,OAAO,EAAE,CACL,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,IAAI,EAAE,GAAG,EAAE,KACb;QACD,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QACjD,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QACjD,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IACvB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IACvB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IACtB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;CACW,CAAC"}
@@ -1,9 +0,0 @@
1
- import { createMeasurer } from "../core/measure.js";
2
- import { PHASE_PRODUCTION_BUILD, PHASE_PRODUCTION_SERVER } from "next/constants";
3
- const isProd = process.env.NEXT_PHASE === PHASE_PRODUCTION_BUILD || process.env.NEXT_PHASE === PHASE_PRODUCTION_SERVER;
4
- const measurer = createMeasurer({ colors: isProd });
5
- export {
6
- isProd,
7
- measurer
8
- };
9
- //# sourceMappingURL=measure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"measure.js","sources":["../../src/next/measure.ts"],"sourcesContent":["import { createMeasurer } from '../core/measure';\nimport { PHASE_PRODUCTION_BUILD, PHASE_PRODUCTION_SERVER } from 'next/constants';\n\nexport const isProd: boolean =\n process.env.NEXT_PHASE === PHASE_PRODUCTION_BUILD || process.env.NEXT_PHASE === PHASE_PRODUCTION_SERVER;\n\nexport const measurer: {\n measure: (\n what: string,\n step: string,\n supplemental?: string,\n ...args: any[]\n ) => {\n done: (result?: string, ...args2: any[]) => void;\n fail: (result?: string, ...args2: any[]) => void;\n log: (...args2: any[]) => void;\n };\n important: (str: any) => any;\n subject: (str: any) => any;\n arg: (str: any) => any;\n sup: (str: any) => any;\n ok: (str: any) => any;\n err: (str: any) => any;\n} = createMeasurer({ colors: isProd });\n"],"names":[],"mappings":";;AAGO,MAAM,SACT,QAAQ,IAAI,eAAe,0BAA0B,QAAQ,IAAI,eAAe;AAE7E,MAAM,WAiBT,eAAe,EAAE,QAAQ,OAAQ,CAAA;"}
@@ -1,29 +0,0 @@
1
- import { FC, JSX } from 'react';
2
- /**
3
- * Prefer using Next.js `dynamic()` import with `ssr: false` because this will also remove import from server bundle.
4
- *
5
- * ```tsx
6
- * 'use client';
7
- *
8
- * import React from 'react';
9
- * import dynamic from 'next/dynamic';
10
- *
11
- * const PageClient = dynamic(() => import('./pageClient'), { ssr: false });
12
- *
13
- * export default function Page() {
14
- * return (
15
- * <PageClient />
16
- * );
17
- * }
18
- * ```
19
- *
20
- * In other cases this component can be used to just prevent server rendering.
21
- *
22
- * @see https://github.com/kadirahq/react-no-ssr/blob/master/src/index.js
23
- * @see https://nextjs.org/docs/messages/react-hydration-error#solution-1-using-useeffect-to-run-on-the-client-only
24
- */
25
- export declare const NoSSR: FC<{
26
- children: any;
27
- onSSR?: JSX.Element;
28
- }>;
29
- //# sourceMappingURL=noSSR.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noSSR.d.ts","sourceRoot":"","sources":["../../src/next/noSSR.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,EAAE,EAAE,GAAG,EAA6B,MAAM,OAAO,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,CAQ5D,CAAC"}
@@ -1,13 +0,0 @@
1
- "use client";
2
- import { useState, useLayoutEffect } from "react";
3
- const NoSSR = function NoSSR2({ children, onSSR = null }) {
4
- const [canRender, setCanRender] = useState(false);
5
- useLayoutEffect(() => {
6
- setCanRender(true);
7
- }, []);
8
- return canRender ? children : onSSR;
9
- };
10
- export {
11
- NoSSR
12
- };
13
- //# sourceMappingURL=noSSR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noSSR.js","sources":["../../src/next/noSSR.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, JSX, useLayoutEffect, useState } from 'react';\n\n/**\n * Prefer using Next.js `dynamic()` import with `ssr: false` because this will also remove import from server bundle.\n *\n * ```tsx\n * 'use client';\n *\n * import React from 'react';\n * import dynamic from 'next/dynamic';\n *\n * const PageClient = dynamic(() => import('./pageClient'), { ssr: false });\n *\n * export default function Page() {\n * return (\n * <PageClient />\n * );\n * }\n * ```\n *\n * In other cases this component can be used to just prevent server rendering.\n *\n * @see https://github.com/kadirahq/react-no-ssr/blob/master/src/index.js\n * @see https://nextjs.org/docs/messages/react-hydration-error#solution-1-using-useeffect-to-run-on-the-client-only\n */\nexport const NoSSR: FC<{ children: any; onSSR?: JSX.Element }> = function NoSSR({ children, onSSR = null }): any {\n const [canRender, setCanRender] = useState(false);\n\n useLayoutEffect(() => {\n setCanRender(true);\n }, []);\n\n return canRender ? children : onSSR;\n};\n"],"names":["NoSSR"],"mappings":";;AA2BO,MAAM,QAAoD,SAASA,OAAM,EAAE,UAAU,QAAQ,QAAa;AAC7G,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,kBAAgB,MAAM;AAClB,iBAAa,IAAI;AAAA,EACrB,GAAG,EAAE;AAEL,SAAO,YAAY,WAAW;AAClC;"}
@@ -1,6 +0,0 @@
1
- import { LinkProps } from 'next/link';
2
- export default function Redirect({ to, replace }: {
3
- to: LinkProps['href'];
4
- replace?: LinkProps['replace'];
5
- }): null;
6
- //# sourceMappingURL=redirect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../src/next/redirect.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAAE,QAM1G"}
@@ -1,3 +0,0 @@
1
- export declare const useIsInner: () => boolean;
2
- export declare const useIsIndex: () => boolean;
3
- //# sourceMappingURL=useIsInner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsInner.d.ts","sourceRoot":"","sources":["../../src/next/useIsInner.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,QAAO,OAG7B,CAAC;AAEF,eAAO,MAAM,UAAU,QAAO,OAG7B,CAAC"}
@@ -1,15 +0,0 @@
1
- "use client";
2
- import { useSelectedLayoutSegments } from "next/navigation";
3
- const useIsInner = () => {
4
- const pathname = useSelectedLayoutSegments();
5
- return pathname.length > 0;
6
- };
7
- const useIsIndex = () => {
8
- const pathname = useSelectedLayoutSegments();
9
- return pathname.length === 0;
10
- };
11
- export {
12
- useIsIndex,
13
- useIsInner
14
- };
15
- //# sourceMappingURL=useIsInner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsInner.js","sources":["../../src/next/useIsInner.ts"],"sourcesContent":["'use client';\n\nimport { useSelectedLayoutSegments } from 'next/navigation';\n\nexport const useIsInner = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length > 0;\n};\n\nexport const useIsIndex = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length === 0;\n};\n"],"names":[],"mappings":";;AAIO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,SAAS;AAC7B;AAEO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,WAAW;AAC/B;"}
@@ -1,6 +0,0 @@
1
- export declare const jsonContentType = "application/json";
2
- export type DataResponse<R> = Response & {
3
- data?: R;
4
- };
5
- export declare function apiCall<R>(url: string, init?: RequestInit): Promise<DataResponse<R>>;
6
- //# sourceMappingURL=apiCall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiCall.d.ts","sourceRoot":"","sources":["../../src/react/apiCall.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEtD,wBAAsB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAoB1F"}
@@ -1,24 +0,0 @@
1
- const jsonContentType = "application/json";
2
- async function apiCall(url, init) {
3
- var _a;
4
- const useBodyAsIs = !(init == null ? void 0 : init.body) || (init == null ? void 0 : init.body) instanceof FormData || typeof (init == null ? void 0 : init.body) === "string";
5
- const res = await fetch(url, {
6
- method: "POST",
7
- ...init,
8
- body: useBodyAsIs ? init == null ? void 0 : init.body : JSON.stringify(init.body),
9
- headers: {
10
- ...init == null ? void 0 : init.headers,
11
- ...useBodyAsIs ? {} : { "Content-Type": jsonContentType }
12
- }
13
- });
14
- if ((_a = res.headers.get("Content-Type")) == null ? void 0 : _a.includes(jsonContentType)) {
15
- res.data = await res.json();
16
- }
17
- if (!res.ok) throw new Error(res.statusText, { cause: res });
18
- return res;
19
- }
20
- export {
21
- apiCall,
22
- jsonContentType
23
- };
24
- //# sourceMappingURL=apiCall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiCall.js","sources":["../../src/react/apiCall.ts"],"sourcesContent":["export const jsonContentType = 'application/json';\n\nexport type DataResponse<R> = Response & { data?: R };\n\nexport async function apiCall<R>(url: string, init?: RequestInit): Promise<DataResponse<R>> {\n const useBodyAsIs = !init?.body || init?.body instanceof FormData || typeof init?.body === 'string';\n\n const res: DataResponse<R> = await fetch(url, {\n method: 'POST',\n ...init,\n body: useBodyAsIs ? init?.body : JSON.stringify(init.body),\n headers: {\n ...init?.headers,\n ...(useBodyAsIs ? {} : { 'Content-Type': jsonContentType }),\n },\n });\n\n if (res.headers.get('Content-Type')?.includes(jsonContentType)) {\n res.data = await res.json();\n }\n\n if (!res.ok) throw new Error(res.statusText, { cause: res });\n\n return res;\n}\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB;AAIT,eAAA,QAAW,KAAa,MAA8C;AAJrF;AAKG,QAAA,cAAc,EAAC,6BAAM,UAAQ,6BAAM,iBAAgB,YAAY,QAAO,6BAAM,UAAS;AAErF,QAAA,MAAuB,MAAM,MAAM,KAAK;AAAA,IAC1C,QAAQ;AAAA,IACR,GAAG;AAAA,IACH,MAAM,cAAc,6BAAM,OAAO,KAAK,UAAU,KAAK,IAAI;AAAA,IACzD,SAAS;AAAA,MACL,GAAG,6BAAM;AAAA,MACT,GAAI,cAAc,CAAA,IAAK,EAAE,gBAAgB,gBAAgB;AAAA,IAAA;AAAA,EAC7D,CACH;AAED,OAAI,SAAI,QAAQ,IAAI,cAAc,MAA9B,mBAAiC,SAAS,kBAAkB;AACxD,QAAA,OAAO,MAAM,IAAI,KAAK;AAAA,EAAA;AAG1B,MAAA,CAAC,IAAI,GAAU,OAAA,IAAI,MAAM,IAAI,YAAY,EAAE,OAAO,KAAK;AAEpD,SAAA;AACX;"}
@@ -1,7 +0,0 @@
1
- import { MaybeTypeOf, Validation } from './form';
2
- import { z } from 'zod';
3
- export declare function createClient<S extends z.ZodObject<any>>(schema: S): {
4
- useValidation: (actionFn: (data: FormData) => Promise<Validation<S>>, initialData?: MaybeTypeOf<S>) => [state: Validation<S>, dispatch: (payload: FormData) => void, isPending: boolean];
5
- useValidationTransition: (actionFn: (data: FormData) => Promise<Validation<S>>, initialData?: MaybeTypeOf<S>) => [Validation<S>, (formData: FormData) => Promise<Validation<S>>, boolean];
6
- };
7
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/react/form/client.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACnD,MAAM,EAAE,CAAC,GACV;IACC,aAAa,EAAE,CACX,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpD,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAC3B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvF,uBAAuB,EAAE,CACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpD,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAC3B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CACjF,CAqDA"}
@@ -1,46 +0,0 @@
1
- "use client";
2
- import { useActionState, useTransition, useState, useCallback } from "react";
3
- import { create } from "./form.js";
4
- const FORM_DEBUG = process.env.NEXT_PUBLIC_FORM_DEBUG === "true";
5
- function createClient(schema) {
6
- const { validate } = create(schema);
7
- function useValidationCallback(actionFn) {
8
- return useCallback(
9
- async (formData) => {
10
- const clientRes = validate(formData);
11
- console.log("Client validation", FORM_DEBUG ? "ignored" : "active", clientRes);
12
- if (!clientRes.success && !FORM_DEBUG) return clientRes;
13
- const serverRes = await actionFn(formData);
14
- console.log("Server validation", serverRes);
15
- return serverRes;
16
- },
17
- [actionFn]
18
- );
19
- }
20
- function useValidation(actionFn, initialData = {}) {
21
- const cb = useValidationCallback(actionFn);
22
- return useActionState(async (_, data) => cb(data), {
23
- success: false,
24
- data: initialData
25
- });
26
- }
27
- function useValidationTransition(actionFn, initialData = {}) {
28
- const [isPending, startTransition] = useTransition();
29
- const [state, setState] = useState({ success: false, data: initialData });
30
- const cb = useValidationCallback(actionFn);
31
- const wrappedCb = useCallback(
32
- (formData) => {
33
- const promise = cb(formData);
34
- startTransition(() => promise.then(setState));
35
- return promise;
36
- },
37
- [cb, startTransition]
38
- );
39
- return [state, wrappedCb, isPending];
40
- }
41
- return { useValidation, useValidationTransition };
42
- }
43
- export {
44
- createClient
45
- };
46
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sources":["../../../src/react/form/client.tsx"],"sourcesContent":["'use client';\n\nimport { useActionState, useCallback, useState, useTransition } from 'react';\nimport { create, MaybeTypeOf, Validation } from './form';\nimport { z } from 'zod';\n\nconst FORM_DEBUG = process.env.NEXT_PUBLIC_FORM_DEBUG === 'true';\n\nexport function createClient<S extends z.ZodObject<any>>(\n schema: S,\n): {\n useValidation: (\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData?: MaybeTypeOf<S>,\n ) => [state: Validation<S>, dispatch: (payload: FormData) => void, isPending: boolean];\n useValidationTransition: (\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData?: MaybeTypeOf<S>,\n ) => [Validation<S>, (formData: FormData) => Promise<Validation<S>>, boolean];\n} {\n const { validate } = create(schema);\n\n function useValidationCallback(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n ): (formData: FormData) => Promise<Validation<S>> {\n return useCallback(\n async (formData: FormData) => {\n const clientRes = validate(formData);\n console.log('Client validation', FORM_DEBUG ? 'ignored' : 'active', clientRes);\n if (!clientRes.success && !FORM_DEBUG) return clientRes;\n\n const serverRes = await actionFn(formData);\n console.log('Server validation', serverRes);\n return serverRes;\n },\n [actionFn],\n );\n }\n\n function useValidation(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ): [state: Validation<S>, dispatch: (payload: FormData) => void, isPending: boolean] {\n const cb = useValidationCallback(actionFn);\n\n return useActionState<Validation<S>, FormData>(async (_, data) => cb(data), {\n success: false,\n data: initialData,\n });\n }\n\n function useValidationTransition(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ): [Validation<S>, (formData: FormData) => Promise<Validation<S>>, boolean] {\n const [isPending, startTransition] = useTransition();\n const [state, setState] = useState<Validation<S>>({ success: false, data: initialData });\n const cb = useValidationCallback(actionFn);\n\n const wrappedCb = useCallback(\n (formData: FormData) => {\n const promise = cb(formData);\n startTransition(() => promise.then(setState));\n return promise;\n },\n [cb, startTransition],\n );\n\n return [state, wrappedCb, isPending];\n }\n\n return { useValidation, useValidationTransition };\n}\n"],"names":[],"mappings":";;;AAMA,MAAM,aAAa,QAAQ,IAAI,2BAA2B;AAEnD,SAAS,aACZ,QAUF;AACE,QAAM,EAAE,SAAA,IAAa,OAAO,MAAM;AAElC,WAAS,sBACL,UAC8C;AACvC,WAAA;AAAA,MACH,OAAO,aAAuB;AACpB,cAAA,YAAY,SAAS,QAAQ;AACnC,gBAAQ,IAAI,qBAAqB,aAAa,YAAY,UAAU,SAAS;AAC7E,YAAI,CAAC,UAAU,WAAW,CAAC,WAAmB,QAAA;AAExC,cAAA,YAAY,MAAM,SAAS,QAAQ;AACjC,gBAAA,IAAI,qBAAqB,SAAS;AACnC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,QAAQ;AAAA,IACb;AAAA,EAAA;AAGJ,WAAS,cACL,UACA,cAA8B,IACmD;AAC3E,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,WAAO,eAAwC,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG;AAAA,MACxE,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACT;AAAA,EAAA;AAGL,WAAS,wBACL,UACA,cAA8B,IAC0C;AACxE,UAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AAC7C,UAAA,CAAC,OAAO,QAAQ,IAAI,SAAwB,EAAE,SAAS,OAAO,MAAM,aAAa;AACjF,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,UAAM,YAAY;AAAA,MACd,CAAC,aAAuB;AACd,cAAA,UAAU,GAAG,QAAQ;AAC3B,wBAAgB,MAAM,QAAQ,KAAK,QAAQ,CAAC;AACrC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,IAAI,eAAe;AAAA,IACxB;AAEO,WAAA,CAAC,OAAO,WAAW,SAAS;AAAA,EAAA;AAGhC,SAAA,EAAE,eAAe,wBAAwB;AACpD;"}
@@ -1,59 +0,0 @@
1
- import { typeToFlattenedError, z, SafeParseReturnType, TypeOf } from 'zod';
2
- import { Context, FC } from 'react';
3
- export declare const stringRequired: () => z.ZodString;
4
- export declare const maxLength: (schema: z.ZodString) => number;
5
- export declare const minLength: (schema: z.ZodString) => number;
6
- export declare const isRequired: (schema: z.ZodString) => boolean;
7
- export type ZodObject = z.ZodObject<any> | z.ZodEffects<z.ZodObject<any>>;
8
- export type MaybeTypeOf<S extends ZodObject> = Partial<TypeOf<S>>;
9
- export type SafeTypeOf<S extends ZodObject> = SafeParseReturnType<TypeOf<S>, TypeOf<S>>['data'];
10
- export type Errors<S extends ZodObject> = typeToFlattenedError<TypeOf<S>>['fieldErrors'];
11
- export type Validation<S extends ZodObject> = {
12
- success: true;
13
- data: SafeTypeOf<S>;
14
- errors?: never;
15
- } | {
16
- success: false;
17
- data?: MaybeTypeOf<S>;
18
- errors?: Errors<S>;
19
- };
20
- export declare const FormContext: Context<{
21
- schema: ZodObject;
22
- }>;
23
- export interface FormProps<S extends ZodObject> {
24
- schema: S;
25
- children: any;
26
- }
27
- export declare const Form: FC<FormProps<any>>;
28
- export declare function create<S extends ZodObject>(schema: S): {
29
- register: (name: keyof TypeOf<S>, data?: MaybeTypeOf<S>, errors?: Errors<S>, mui?: boolean) => {
30
- label?: any;
31
- helperText?: string;
32
- error?: boolean;
33
- name: keyof z.TypeOf<S>;
34
- id: keyof z.TypeOf<S>;
35
- required: boolean;
36
- maxLength: number;
37
- type: string;
38
- defaultValue?: Partial<z.TypeOf<S>>[keyof z.TypeOf<S>];
39
- };
40
- validate: (formData: FormData) => Validation<S>;
41
- validationError: (data: MaybeTypeOf<S>, errors: Errors<S>) => Validation<S>;
42
- };
43
- interface FieldProps<S extends ZodObject> {
44
- children?: any;
45
- name: keyof TypeOf<S>;
46
- errors?: Validation<S>['errors'];
47
- hint?: string;
48
- className?: string;
49
- labelProps?: any;
50
- [key: string]: any;
51
- }
52
- export declare const Field: FC<FieldProps<any>>;
53
- export interface HintProps {
54
- children: any;
55
- error?: boolean;
56
- }
57
- export declare const Hint: FC<HintProps>;
58
- export {};
59
- //# sourceMappingURL=form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/react/form/form.tsx"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { z } from "zod";
3
- import { createContext, memo, useMemo, useContext } from "react";
4
- import clsx from "clsx";
5
- const nonEmpty = "This field cannot be empty";
6
- const stringRequired = () => z.string({ required_error: nonEmpty }).min(1, nonEmpty);
7
- const maxLength = (schema) => schema.maxLength || 0;
8
- const minLength = (schema) => schema.minLength || 0;
9
- const isRequired = (schema) => minLength(schema) > 0;
10
- const FormContext = createContext(null);
11
- const Form = memo(function Form2({ schema, children }) {
12
- const value = useMemo(() => ({ schema }), [schema]);
13
- return /* @__PURE__ */ jsx(FormContext.Provider, { value, children });
14
- });
15
- const getShape = (schema) => schema.shape || schema.sourceType().shape;
16
- function create(schema) {
17
- if (!getShape(schema)) {
18
- throw new Error("Invalid schema: only z.object() or z.object().refine() are supported");
19
- }
20
- function register(name, data, errors, mui = false) {
21
- var _a, _b;
22
- const field = getShape(schema)[name];
23
- return {
24
- name,
25
- id: name,
26
- required: isRequired(field),
27
- maxLength: maxLength(field),
28
- type: field.isEmail ? "email" : name.includes("password") ? "password" : "text",
29
- defaultValue: data == null ? void 0 : data[name],
30
- ...mui ? {
31
- label: field.description,
32
- helperText: (_a = errors == null ? void 0 : errors[name]) == null ? void 0 : _a.join(", "),
33
- error: !!((_b = errors == null ? void 0 : errors[name]) == null ? void 0 : _b.length)
34
- } : {}
35
- };
36
- }
37
- function validationError(data, errors) {
38
- return {
39
- success: false,
40
- data,
41
- // data is undefined if there are errors
42
- errors
43
- // Next.js will butcher error object, so we provide something more primitive
44
- };
45
- }
46
- function validate(formData) {
47
- const rawData = Object.fromEntries(formData);
48
- const { error, data } = schema.safeParse(rawData);
49
- if (error) {
50
- return validationError(rawData, error.flatten().fieldErrors);
51
- }
52
- return { success: true, data };
53
- }
54
- return { register, validate, validationError };
55
- }
56
- const Field = memo(function Field2({
57
- children,
58
- name,
59
- errors,
60
- hint,
61
- className,
62
- labelProps,
63
- ...props
64
- }) {
65
- var _a;
66
- const { schema } = useContext(FormContext);
67
- const { description } = getShape(schema)[name];
68
- return /* @__PURE__ */ jsxs("div", { ...props, className: clsx("form-row", className), children: [
69
- description && /* @__PURE__ */ jsx("label", { ...labelProps, htmlFor: name, children: description }),
70
- children,
71
- hint && /* @__PURE__ */ jsx(Hint, { children: hint }),
72
- (_a = errors == null ? void 0 : errors[name]) == null ? void 0 : _a.map((e) => /* @__PURE__ */ jsx(Hint, { error: true, children: e }, e))
73
- ] });
74
- });
75
- const Hint = memo(function Hint2({ children, error }) {
76
- return /* @__PURE__ */ jsx("div", { className: `hint ${error ? "hint-error" : ""}`, children });
77
- });
78
- export {
79
- Field,
80
- Form,
81
- FormContext,
82
- Hint,
83
- create,
84
- isRequired,
85
- maxLength,
86
- minLength,
87
- stringRequired
88
- };
89
- //# sourceMappingURL=form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.js","sources":["../../../src/react/form/form.tsx"],"sourcesContent":["import { typeToFlattenedError, z, SafeParseReturnType, TypeOf } from 'zod';\nimport { Context, createContext, useContext, useMemo, JSX, FC, memo } from 'react';\nimport clsx from 'clsx';\n\nconst nonEmpty = 'This field cannot be empty';\n\nexport const stringRequired = (): z.ZodString => z.string({ required_error: nonEmpty }).min(1, nonEmpty);\nexport const maxLength = (schema: z.ZodString): number => schema.maxLength || 0;\nexport const minLength = (schema: z.ZodString): number => schema.minLength || 0;\nexport const isRequired = (schema: z.ZodString): boolean => minLength(schema) > 0;\n\nexport type ZodObject = z.ZodObject<any> | z.ZodEffects<z.ZodObject<any>>; // z.ZodType<any, any, any>\nexport type MaybeTypeOf<S extends ZodObject> = Partial<TypeOf<S>>;\nexport type SafeTypeOf<S extends ZodObject> = SafeParseReturnType<TypeOf<S>, TypeOf<S>>['data'];\nexport type Errors<S extends ZodObject> = typeToFlattenedError<TypeOf<S>>['fieldErrors'];\nexport type Validation<S extends ZodObject> =\n | {\n success: true; // this is true only if form was validated successfully\n data: SafeTypeOf<S>;\n errors?: never;\n }\n | {\n success: false;\n data?: MaybeTypeOf<S>;\n errors?: Errors<S>;\n };\n\nexport const FormContext: Context<{\n schema: ZodObject;\n}> = createContext(null as never);\n\nexport interface FormProps<S extends ZodObject> {\n schema: S;\n children: any;\n}\n\nexport const Form: FC<FormProps<any>> = memo(function Form({ schema, children }) {\n const value = useMemo(() => ({ schema }), [schema]);\n return <FormContext.Provider value={value}>{children}</FormContext.Provider>;\n});\n\nconst getShape = <S extends ZodObject>(schema: S) =>\n (schema as z.ZodObject<any>).shape || (schema as z.ZodEffects<z.ZodObject<any>>).sourceType().shape;\n\nexport function create<S extends ZodObject>(\n schema: S,\n): {\n register: (\n name: keyof TypeOf<S>,\n data?: MaybeTypeOf<S>,\n errors?: Errors<S>,\n mui?: boolean,\n ) => {\n label?: any;\n helperText?: string;\n error?: boolean;\n name: keyof z.TypeOf<S>;\n id: keyof z.TypeOf<S>;\n required: boolean;\n maxLength: number;\n type: string;\n defaultValue?: Partial<z.TypeOf<S>>[keyof z.TypeOf<S>];\n };\n validate: (formData: FormData) => Validation<S>;\n validationError: (data: MaybeTypeOf<S>, errors: Errors<S>) => Validation<S>;\n} {\n if (!getShape(schema)) {\n throw new Error('Invalid schema: only z.object() or z.object().refine() are supported');\n }\n\n function register(\n name: keyof TypeOf<S>,\n data?: MaybeTypeOf<S>,\n errors?: Errors<S>,\n mui: boolean = false,\n ): {\n label?: any;\n helperText?: string;\n error?: boolean;\n name: keyof z.TypeOf<S>;\n id: keyof z.TypeOf<S>;\n required: boolean;\n maxLength: number;\n type: string;\n defaultValue?: Partial<z.TypeOf<S>>[keyof z.TypeOf<S>];\n } {\n const field = getShape(schema)[name];\n return {\n name,\n id: name,\n required: isRequired(field),\n maxLength: maxLength(field),\n type: field.isEmail ? 'email' : (name as string).includes('password') ? 'password' : 'text',\n defaultValue: data?.[name],\n ...(mui\n ? {\n label: field.description,\n helperText: errors?.[name]?.join(', '),\n error: !!errors?.[name]?.length,\n }\n : {}),\n };\n }\n\n function validationError(data: MaybeTypeOf<S>, errors: Errors<S>): Validation<S> {\n return {\n success: false,\n data, // data is undefined if there are errors\n errors, // Next.js will butcher error object, so we provide something more primitive\n };\n }\n\n function validate(formData: FormData): Validation<S> {\n const rawData = Object.fromEntries(formData) as TypeOf<S>;\n const { error, data } = schema.safeParse(rawData);\n\n // console.log('Validate result', { error, data, rawData });\n\n if (error) {\n // data is undefined if there are errors\n // Next.js will butcher error object, so we provide something more primitive\n return validationError(rawData, error.flatten().fieldErrors as any);\n }\n\n return { success: true, data };\n }\n\n return { register, validate, validationError };\n}\n\ninterface FieldProps<S extends ZodObject> {\n children?: any;\n name: keyof TypeOf<S>;\n errors?: Validation<S>['errors'];\n hint?: string;\n className?: string;\n labelProps?: any;\n [key: string]: any;\n}\n\nexport const Field: FC<FieldProps<any>> = memo(function Field({\n children,\n name,\n errors,\n hint,\n className,\n labelProps,\n ...props\n}) {\n const { schema } = useContext(FormContext);\n const { description } = getShape(schema)[name];\n\n return (\n <div {...props} className={clsx('form-row', className)}>\n {description && (\n <label {...labelProps} htmlFor={name}>\n {description}\n </label>\n )}\n {children}\n {hint && <Hint>{hint}</Hint>}\n {errors?.[name]?.map((e: string) => (\n <Hint error key={e}>\n {e}\n </Hint>\n ))}\n </div>\n );\n});\n\nexport interface HintProps {\n children: any;\n error?: boolean;\n}\n\nexport const Hint: FC<HintProps> = memo(function Hint({ children, error }) {\n return <div className={`hint ${error ? 'hint-error' : ''}`}>{children}</div>;\n});\n"],"names":["Form","Field","Hint"],"mappings":";;;;AAIA,MAAM,WAAW;AAEJ,MAAA,iBAAiB,MAAmB,EAAE,OAAO,EAAE,gBAAgB,UAAU,EAAE,IAAI,GAAG,QAAQ;AAChG,MAAM,YAAY,CAAC,WAAgC,OAAO,aAAa;AACvE,MAAM,YAAY,CAAC,WAAgC,OAAO,aAAa;AACvE,MAAM,aAAa,CAAC,WAAiC,UAAU,MAAM,IAAI;AAkBnE,MAAA,cAER,cAAc,IAAa;AAOzB,MAAM,OAA2B,KAAK,SAASA,MAAK,EAAE,QAAQ,YAAY;AACvE,QAAA,QAAQ,QAAQ,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;AAClD,SAAQ,oBAAA,YAAY,UAAZ,EAAqB,OAAe,SAAS,CAAA;AACzD,CAAC;AAED,MAAM,WAAW,CAAsB,WAClC,OAA4B,SAAU,OAA0C,aAAa;AAE3F,SAAS,OACZ,QAoBF;AACM,MAAA,CAAC,SAAS,MAAM,GAAG;AACb,UAAA,IAAI,MAAM,sEAAsE;AAAA,EAAA;AAG1F,WAAS,SACL,MACA,MACA,QACA,MAAe,OAWjB;;AACE,UAAM,QAAQ,SAAS,MAAM,EAAE,IAAI;AAC5B,WAAA;AAAA,MACH;AAAA,MACA,IAAI;AAAA,MACJ,UAAU,WAAW,KAAK;AAAA,MAC1B,WAAW,UAAU,KAAK;AAAA,MAC1B,MAAM,MAAM,UAAU,UAAW,KAAgB,SAAS,UAAU,IAAI,aAAa;AAAA,MACrF,cAAc,6BAAO;AAAA,MACrB,GAAI,MACE;AAAA,QACI,OAAO,MAAM;AAAA,QACb,aAAY,sCAAS,UAAT,mBAAgB,KAAK;AAAA,QACjC,OAAO,CAAC,GAAC,sCAAS,UAAT,mBAAgB;AAAA,MAAA,IAE7B,CAAA;AAAA,IACV;AAAA,EAAA;AAGK,WAAA,gBAAgB,MAAsB,QAAkC;AACtE,WAAA;AAAA,MACH,SAAS;AAAA,MACT;AAAA;AAAA,MACA;AAAA;AAAA,IACJ;AAAA,EAAA;AAGJ,WAAS,SAAS,UAAmC;AAC3C,UAAA,UAAU,OAAO,YAAY,QAAQ;AAC3C,UAAM,EAAE,OAAO,KAAA,IAAS,OAAO,UAAU,OAAO;AAIhD,QAAI,OAAO;AAGP,aAAO,gBAAgB,SAAS,MAAM,QAAA,EAAU,WAAkB;AAAA,IAAA;AAG/D,WAAA,EAAE,SAAS,MAAM,KAAK;AAAA,EAAA;AAG1B,SAAA,EAAE,UAAU,UAAU,gBAAgB;AACjD;AAYa,MAAA,QAA6B,KAAK,SAASC,OAAM;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAG;;AACC,QAAM,EAAE,OAAA,IAAW,WAAW,WAAW;AACzC,QAAM,EAAE,YAAY,IAAI,SAAS,MAAM,EAAE,IAAI;AAGzC,SAAA,qBAAC,SAAK,GAAG,OAAO,WAAW,KAAK,YAAY,SAAS,GAChD,UAAA;AAAA,IAAA,mCACI,SAAO,EAAA,GAAG,YAAY,SAAS,MAC3B,UACL,aAAA;AAAA,IAEH;AAAA,IACA,QAAS,oBAAA,MAAA,EAAM,UAAK,KAAA,CAAA;AAAA,KACpB,sCAAS,UAAT,mBAAgB,IAAI,CAAC,MACjB,oBAAA,MAAA,EAAK,OAAK,MACN,UADY,EAAA,GAAA,CAEjB;AAAA,EACH,GACL;AAER,CAAC;AAOM,MAAM,OAAsB,KAAK,SAASC,MAAK,EAAE,UAAU,SAAS;AAChE,SAAA,oBAAC,SAAI,WAAW,QAAQ,QAAQ,eAAe,EAAE,IAAK,SAAS,CAAA;AAC1E,CAAC;"}
@@ -1,3 +0,0 @@
1
- export * from './client';
2
- export * from './form';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,10 +0,0 @@
1
- import { Dispatch, SetStateAction, FC, Context } from 'react';
2
- export type Hotkeys = Record<KeyboardEvent['code'], (e: KeyboardEvent) => void>;
3
- export type HotkeyContextType = {
4
- enabled: boolean;
5
- setEnabled: Dispatch<SetStateAction<boolean>>;
6
- };
7
- export declare const HotkeysContext: Context<HotkeyContextType>;
8
- export declare const HotkeysProvider: FC<any>;
9
- export declare const useHotkeys: (hotkeys: Hotkeys) => void;
10
- //# sourceMappingURL=keyboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/react/keyboard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+C,QAAQ,EAAE,cAAc,EAAc,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMvH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAGrC,CAAC;AAElB,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,GAAG,CAMnC,CAAC;AAEF,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,IAyB7C,CAAC"}
@@ -1,38 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { createContext, useState, useMemo, useContext, useEffect } from "react";
4
- const isCtrlOrMeta = (e) => e.metaKey || e.ctrlKey;
5
- const EVENT = "keydown";
6
- const HotkeysContext = createContext(null);
7
- const HotkeysProvider = ({ children }) => {
8
- const [enabled, setEnabled] = useState(true);
9
- const control = useMemo(() => ({ enabled, setEnabled }), [enabled, setEnabled]);
10
- return /* @__PURE__ */ jsx(HotkeysContext.Provider, { value: control, children });
11
- };
12
- const useHotkeys = (hotkeys) => {
13
- const { enabled } = useContext(HotkeysContext);
14
- useEffect(() => {
15
- if (typeof document === "undefined" || !enabled) {
16
- return;
17
- }
18
- const listeners = (e) => {
19
- if (!isCtrlOrMeta(e)) return;
20
- for (const [code, callback] of Object.entries(hotkeys)) {
21
- if (e.code === code) {
22
- callback(e);
23
- return;
24
- }
25
- }
26
- };
27
- window.addEventListener(EVENT, listeners, true);
28
- return () => {
29
- window.removeEventListener(EVENT, listeners);
30
- };
31
- }, [hotkeys, enabled]);
32
- };
33
- export {
34
- HotkeysContext,
35
- HotkeysProvider,
36
- useHotkeys
37
- };
38
- //# sourceMappingURL=keyboard.js.map