@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 +0,0 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../src/react/keyboard.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, createContext, useMemo, useState, Dispatch, SetStateAction, useContext, FC, Context } from 'react';\n\nconst isCtrlOrMeta = (e: KeyboardEvent) => e.metaKey || e.ctrlKey;\n\nconst EVENT = 'keydown';\n\nexport type Hotkeys = Record<KeyboardEvent['code'], (e: KeyboardEvent) => void>;\n\nexport type HotkeyContextType = {\n enabled: boolean;\n setEnabled: Dispatch<SetStateAction<boolean>>;\n};\n\nexport const HotkeysContext: Context<HotkeyContextType> = createContext<{\n enabled: boolean;\n setEnabled: Dispatch<SetStateAction<boolean>>;\n}>(null as never);\n\nexport const HotkeysProvider: FC<any> = ({ children }) => {\n const [enabled, setEnabled] = useState(true);\n\n const control = useMemo(() => ({ enabled, setEnabled }), [enabled, setEnabled]);\n\n return <HotkeysContext.Provider value={control}>{children}</HotkeysContext.Provider>;\n};\n\nexport const useHotkeys = (hotkeys: Hotkeys): void => {\n const { enabled } = useContext(HotkeysContext);\n\n useEffect(() => {\n if (typeof document === 'undefined' || !enabled) {\n return;\n }\n\n const listeners = (e: KeyboardEvent) => {\n if (!isCtrlOrMeta(e)) return;\n\n for (const [code, callback] of Object.entries(hotkeys)) {\n if (e.code === code) {\n callback(e);\n return;\n }\n }\n };\n\n window.addEventListener(EVENT, listeners, true);\n\n return () => {\n window.removeEventListener(EVENT, listeners);\n };\n }, [hotkeys, enabled]);\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,eAAe,CAAC,MAAqB,EAAE,WAAW,EAAE;AAE1D,MAAM,QAAQ;AASD,MAAA,iBAA6C,cAGvD,IAAa;AAET,MAAM,kBAA2B,CAAC,EAAE,eAAe;AACtD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAErC,QAAA,UAAU,QAAQ,OAAO,EAAE,SAAS,eAAe,CAAC,SAAS,UAAU,CAAC;AAE9E,6BAAQ,eAAe,UAAf,EAAwB,OAAO,SAAU,UAAS;AAC9D;AAEa,MAAA,aAAa,CAAC,YAA2B;AAClD,QAAM,EAAE,QAAA,IAAY,WAAW,cAAc;AAE7C,YAAU,MAAM;AACZ,QAAI,OAAO,aAAa,eAAe,CAAC,SAAS;AAC7C;AAAA,IAAA;AAGE,UAAA,YAAY,CAAC,MAAqB;AAChC,UAAA,CAAC,aAAa,CAAC,EAAG;AAEtB,iBAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,OAAO,GAAG;AAChD,YAAA,EAAE,SAAS,MAAM;AACjB,mBAAS,CAAC;AACV;AAAA,QAAA;AAAA,MACJ;AAAA,IAER;AAEO,WAAA,iBAAiB,OAAO,WAAW,IAAI;AAE9C,WAAO,MAAM;AACF,aAAA,oBAAoB,OAAO,SAAS;AAAA,IAC/C;AAAA,EAAA,GACD,CAAC,SAAS,OAAO,CAAC;AACzB;"}
@@ -1,2 +0,0 @@
1
- export declare function useFetch<R>(fn: (...args: any[]) => Promise<R>, defaultValue?: R | null): [R | null, typeof fn, boolean, Error | undefined];
2
- //# sourceMappingURL=useFetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../src/react/useFetch.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,CAAC,EACtB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,YAAY,GAAE,CAAC,GAAG,IAAW,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC,CAkBnD"}
@@ -1,20 +0,0 @@
1
- "use client";
2
- import { useTransition, useState, useCallback } from "react";
3
- function useFetch(fn, defaultValue = null) {
4
- const [isPending, startTransition] = useTransition();
5
- const [data, setData] = useState(defaultValue);
6
- const [error, setError] = useState();
7
- const actionFn = useCallback(
8
- (...args) => {
9
- const promise = fn(...args);
10
- startTransition(() => promise.then(setData).catch(setError));
11
- return promise;
12
- },
13
- [fn]
14
- );
15
- return [data, actionFn, isPending, error];
16
- }
17
- export {
18
- useFetch
19
- };
20
- //# sourceMappingURL=useFetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetch.js","sources":["../../src/react/useFetch.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useState, useTransition } from 'react';\n\n//TODO useFetch https://use-http.com\n//TODO SWR?\n//TODO Tanstack Query?\nexport function useFetch<R>(\n fn: (...args: any[]) => Promise<R>,\n defaultValue: R | null = null,\n): [R | null, typeof fn, boolean, Error | undefined] {\n // An async function was passed to useActionState, but it was dispatched outside of an action context.\n // This is likely not what you intended. Either pass the dispatch function to an `action` prop, or dispatch manually inside `startTransition`\n const [isPending, startTransition] = useTransition();\n const [data, setData] = useState<R | null>(defaultValue);\n const [error, setError] = useState<Error>();\n\n const actionFn = useCallback(\n (...args: Parameters<typeof fn>) => {\n const promise = fn(...args);\n // https://react.dev/reference/react/useTransition#react-doesnt-treat-my-state-update-after-await-as-a-transition\n startTransition(() => promise.then(setData).catch(setError)); //FIXME sub-chain...\n return promise;\n },\n [fn],\n );\n\n return [data, actionFn, isPending, error];\n}\n"],"names":[],"mappings":";;AAOgB,SAAA,SACZ,IACA,eAAyB,MACwB;AAGjD,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,YAAY;AACvD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAgB;AAE1C,QAAM,WAAW;AAAA,IACb,IAAI,SAAgC;AAC1B,YAAA,UAAU,GAAG,GAAG,IAAI;AAE1B,sBAAgB,MAAM,QAAQ,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACpD,aAAA;AAAA,IACX;AAAA,IACA,CAAC,EAAE;AAAA,EACP;AAEA,SAAO,CAAC,MAAM,UAAU,WAAW,KAAK;AAC5C;"}
@@ -1,10 +0,0 @@
1
- export declare function useFetcher<T = any>(cb: any, { fetchOnMount, onError }?: {
2
- fetchOnMount?: boolean;
3
- onError?: (e: Error) => void;
4
- }): {
5
- loading: boolean;
6
- error: Error | null;
7
- data: T | null;
8
- trigger: (...args: any[]) => Promise<any>;
9
- };
10
- //# sourceMappingURL=useFetcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetcher.d.ts","sourceRoot":"","sources":["../../src/react/useFetcher.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAC9B,EAAE,EAAE,GAAG,EAEP,EAAE,YAAoB,EAAE,OAAO,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CAAO,GACjG;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7C,CA0CA"}
@@ -1,43 +0,0 @@
1
- import { useState, useRef, useCallback, useEffect } from "react";
2
- function useFetcher(cb, { fetchOnMount = false, onError } = {}) {
3
- const [loading, setLoading] = useState(fetchOnMount);
4
- const [error, setError] = useState(null);
5
- const [data, setData] = useState(null);
6
- const isMounted = useRef(false);
7
- const trigger = useCallback(
8
- async (...args) => {
9
- try {
10
- setLoading(true);
11
- setError(null);
12
- const res = await cb(args);
13
- if (!isMounted.current) return;
14
- setData(res);
15
- return res;
16
- } catch (e) {
17
- console.error("Fetch failed", e);
18
- if (!isMounted.current) return;
19
- setError(e);
20
- onError == null ? void 0 : onError(e);
21
- } finally {
22
- if (isMounted.current) setLoading(false);
23
- }
24
- },
25
- [cb, onError]
26
- );
27
- useEffect(() => {
28
- if (fetchOnMount) {
29
- trigger().catch((e) => console.error("Fetch on mount failed", e));
30
- }
31
- }, [fetchOnMount, cb, trigger]);
32
- useEffect(() => {
33
- isMounted.current = true;
34
- return () => {
35
- isMounted.current = false;
36
- };
37
- });
38
- return { loading, error, data, trigger };
39
- }
40
- export {
41
- useFetcher
42
- };
43
- //# sourceMappingURL=useFetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFetcher.js","sources":["../../src/react/useFetcher.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useFetcher<T = any>(\n cb: any,\n\n { fetchOnMount = false, onError }: { fetchOnMount?: boolean; onError?: (e: Error) => void } = {},\n): {\n loading: boolean;\n error: Error | null;\n data: T | null;\n trigger: (...args: any[]) => Promise<any>;\n} {\n const [loading, setLoading] = useState(fetchOnMount);\n const [error, setError] = useState<Error | null>(null);\n const [data, setData] = useState<T | null>(null);\n\n const isMounted = useRef(false);\n\n const trigger = useCallback(\n async (...args: any[]): Promise<any> => {\n try {\n setLoading(true);\n setError(null);\n const res = await cb(args);\n if (!isMounted.current) return;\n setData(res);\n return res;\n } catch (e) {\n console.error('Fetch failed', e);\n if (!isMounted.current) return;\n setError(e);\n (onError as any)?.(e);\n } finally {\n if (isMounted.current) setLoading(false);\n }\n },\n [cb, onError],\n );\n\n useEffect(() => {\n if (fetchOnMount) {\n trigger().catch((e) => console.error('Fetch on mount failed', e)); // catch actually will never happen\n }\n }, [fetchOnMount, cb, trigger]);\n\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n });\n\n return { loading, error, data, trigger };\n}\n"],"names":[],"mappings":";AAEgB,SAAA,WACZ,IAEA,EAAE,eAAe,OAAO,QAAQ,IAA8D,IAMhG;AACE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,YAAY;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB,IAAI;AACrD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,IAAI;AAEzC,QAAA,YAAY,OAAO,KAAK;AAE9B,QAAM,UAAU;AAAA,IACZ,UAAU,SAA8B;AAChC,UAAA;AACA,mBAAW,IAAI;AACf,iBAAS,IAAI;AACP,cAAA,MAAM,MAAM,GAAG,IAAI;AACrB,YAAA,CAAC,UAAU,QAAS;AACxB,gBAAQ,GAAG;AACJ,eAAA;AAAA,eACF,GAAG;AACA,gBAAA,MAAM,gBAAgB,CAAC;AAC3B,YAAA,CAAC,UAAU,QAAS;AACxB,iBAAS,CAAC;AACT,2CAAkB;AAAA,MAAC,UACtB;AACM,YAAA,UAAU,QAAS,YAAW,KAAK;AAAA,MAAA;AAAA,IAE/C;AAAA,IACA,CAAC,IAAI,OAAO;AAAA,EAChB;AAEA,YAAU,MAAM;AACZ,QAAI,cAAc;AACN,cAAA,EAAE,MAAM,CAAC,MAAM,QAAQ,MAAM,yBAAyB,CAAC,CAAC;AAAA,IAAA;AAAA,EAErE,GAAA,CAAC,cAAc,IAAI,OAAO,CAAC;AAE9B,YAAU,MAAM;AACZ,cAAU,UAAU;AACpB,WAAO,MAAM;AACT,gBAAU,UAAU;AAAA,IACxB;AAAA,EAAA,CACH;AAED,SAAO,EAAE,SAAS,OAAO,MAAM,QAAQ;AAC3C;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,9 +0,0 @@
1
- /**
2
- * data:text/plain;base64,W29iamV
3
- * @see https://stackoverflow.com/questions/69738812/problem-to-generate-pdf-from-a-blob-in-an-expo-app-using-filesystem
4
- * @param base64
5
- * @param fileName
6
- * @returns {Promise<void>}
7
- */
8
- export declare const shareDialog: (base64: string, fileName: string) => Promise<void>;
9
- //# sourceMappingURL=share.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/react-native/share.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,WAAkB,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAoBhF,CAAC"}
@@ -1,23 +0,0 @@
1
- import * as FileSystem from "expo-file-system";
2
- import * as Sharing from "expo-sharing";
3
- const shareDialog = async (base64, fileName) => {
4
- const path = `${FileSystem.documentDirectory}/${fileName}`;
5
- try {
6
- if (!await Sharing.isAvailableAsync()) throw new Error("Sharing is not available");
7
- const [header, buffer] = base64.split(",");
8
- const [, mimeTypeStr] = header.split(":");
9
- const [mimeType] = mimeTypeStr.split(";");
10
- await FileSystem.writeAsStringAsync(`${path}`, buffer, {
11
- encoding: FileSystem.EncodingType.Base64
12
- });
13
- await Sharing.shareAsync(path, { mimeType, UTI: fileName, dialogTitle: "Save or share document" });
14
- } catch (error) {
15
- alert("Sharing failed: " + error.message);
16
- } finally {
17
- await FileSystem.deleteAsync(path);
18
- }
19
- };
20
- export {
21
- shareDialog
22
- };
23
- //# sourceMappingURL=share.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"share.js","sources":["../../src/react-native/share.ts"],"sourcesContent":["import * as FileSystem from 'expo-file-system';\nimport * as Sharing from 'expo-sharing';\n\n/**\n * data:text/plain;base64,W29iamV\n * @see https://stackoverflow.com/questions/69738812/problem-to-generate-pdf-from-a-blob-in-an-expo-app-using-filesystem\n * @param base64\n * @param fileName\n * @returns {Promise<void>}\n */\nexport const shareDialog = async (base64: string, fileName: string): Promise<void> => {\n const path = `${FileSystem.documentDirectory}/${fileName}`;\n\n try {\n if (!(await Sharing.isAvailableAsync())) throw new Error('Sharing is not available');\n\n const [header, buffer] = base64.split(',');\n const [, mimeTypeStr] = header.split(':');\n const [mimeType] = mimeTypeStr.split(';');\n\n await FileSystem.writeAsStringAsync(`${path}`, buffer, {\n encoding: FileSystem.EncodingType.Base64,\n });\n\n await Sharing.shareAsync(path, { mimeType, UTI: fileName, dialogTitle: 'Save or share document' });\n } catch (error) {\n alert('Sharing failed: ' + error.message);\n } finally {\n await FileSystem.deleteAsync(path);\n }\n};\n"],"names":[],"mappings":";;AAUa,MAAA,cAAc,OAAO,QAAgB,aAAoC;AAClF,QAAM,OAAO,GAAG,WAAW,iBAAiB,IAAI,QAAQ;AAEpD,MAAA;AACI,QAAA,CAAE,MAAM,QAAQ,mBAA2B,OAAA,IAAI,MAAM,0BAA0B;AAEnF,UAAM,CAAC,QAAQ,MAAM,IAAI,OAAO,MAAM,GAAG;AACzC,UAAM,CAAG,EAAA,WAAW,IAAI,OAAO,MAAM,GAAG;AACxC,UAAM,CAAC,QAAQ,IAAI,YAAY,MAAM,GAAG;AAExC,UAAM,WAAW,mBAAmB,GAAG,IAAI,IAAI,QAAQ;AAAA,MACnD,UAAU,WAAW,aAAa;AAAA,IAAA,CACrC;AAEK,UAAA,QAAQ,WAAW,MAAM,EAAE,UAAU,KAAK,UAAU,aAAa,0BAA0B;AAAA,WAC5F,OAAO;AACN,UAAA,qBAAqB,MAAM,OAAO;AAAA,EAAA,UAC1C;AACQ,UAAA,WAAW,YAAY,IAAI;AAAA,EAAA;AAEzC;"}
@@ -1,3 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const Update: FC<any>;
3
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/react-native/update.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAGhD,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,GAAG,CAmC1B,CAAC"}
@@ -1,40 +0,0 @@
1
- import { jsxs } from "react/jsx-runtime";
2
- import * as Updates from "expo-updates";
3
- import { useState, useEffect } from "react";
4
- import { Text } from "react-native";
5
- const Update = function Update2({ children }) {
6
- const [updating, setUpdating] = useState(true);
7
- useEffect(() => {
8
- (async () => {
9
- try {
10
- if (__DEV__) {
11
- setUpdating(false);
12
- return;
13
- }
14
- const update = await Updates.checkForUpdateAsync();
15
- if (!update.isAvailable) {
16
- setUpdating(false);
17
- return;
18
- }
19
- await Updates.fetchUpdateAsync();
20
- alert("Update is available. App will reload.");
21
- await Updates.reloadAsync();
22
- } catch (error) {
23
- alert(`Error fetching latest Expo update: ${error}`);
24
- setUpdating(false);
25
- }
26
- })();
27
- });
28
- if (updating) {
29
- return /* @__PURE__ */ jsxs(Text, { children: [
30
- "Checking for updates (",
31
- Updates.channel,
32
- ")..."
33
- ] });
34
- }
35
- return children;
36
- };
37
- export {
38
- Update
39
- };
40
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sources":["../../src/react-native/update.tsx"],"sourcesContent":["import * as Updates from 'expo-updates';\nimport { FC, useEffect, useState } from 'react';\nimport { Text } from 'react-native';\n\nexport const Update: FC<any> = function Update({ children }) {\n //FIXME useUpdates https://blog.expo.dev/feature-preview-updates-js-api-for-expo-updates-3b92beb40dab\n const [updating, setUpdating] = useState(true);\n\n useEffect(() => {\n (async () => {\n try {\n if (__DEV__) {\n setUpdating(false);\n return;\n }\n\n const update = await Updates.checkForUpdateAsync();\n\n if (!update.isAvailable) {\n setUpdating(false);\n return;\n }\n\n await Updates.fetchUpdateAsync();\n alert('Update is available. App will reload.');\n await Updates.reloadAsync();\n } catch (error) {\n // You can also add an alert() to see the error message in case of an error when fetching updates.\n alert(`Error fetching latest Expo update: ${error}`);\n setUpdating(false);\n }\n })();\n });\n\n if (updating) {\n return <Text>Checking for updates ({Updates.channel})...</Text>;\n }\n\n return children;\n};\n"],"names":["Update"],"mappings":";;;;AAIO,MAAM,SAAkB,SAASA,QAAO,EAAE,YAAY;AAEzD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,IAAI;AAE7C,YAAU,MAAM;AACZ,KAAC,YAAY;AACL,UAAA;AACA,YAAI,SAAS;AACT,sBAAY,KAAK;AACjB;AAAA,QAAA;AAGE,cAAA,SAAS,MAAM,QAAQ,oBAAoB;AAE7C,YAAA,CAAC,OAAO,aAAa;AACrB,sBAAY,KAAK;AACjB;AAAA,QAAA;AAGJ,cAAM,QAAQ,iBAAiB;AAC/B,cAAM,uCAAuC;AAC7C,cAAM,QAAQ,YAAY;AAAA,eACrB,OAAO;AAEN,cAAA,sCAAsC,KAAK,EAAE;AACnD,oBAAY,KAAK;AAAA,MAAA;AAAA,IACrB,GACD;AAAA,EAAA,CACN;AAED,MAAI,UAAU;AACV,gCAAQ,MAAK,EAAA,UAAA;AAAA,MAAA;AAAA,MAAuB,QAAQ;AAAA,MAAQ;AAAA,IAAA,GAAI;AAAA,EAAA;AAGrD,SAAA;AACX;"}
@@ -1,2 +0,0 @@
1
- export declare function useAppState(): 'active' | 'background' | 'inactive' | 'unknown' | 'extension';
2
- //# sourceMappingURL=useAppState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAppState.d.ts","sourceRoot":"","sources":["../../src/react-native/useAppState.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,IAAI,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAc5F"}
@@ -1,18 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- import { AppState } from "react-native";
3
- function useAppState() {
4
- const [appState, setAppState] = useState(AppState.currentState);
5
- useEffect(() => {
6
- const subscription = AppState.addEventListener("change", (nextAppState) => {
7
- setAppState(nextAppState);
8
- });
9
- return () => {
10
- subscription.remove();
11
- };
12
- }, []);
13
- return appState;
14
- }
15
- export {
16
- useAppState
17
- };
18
- //# sourceMappingURL=useAppState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAppState.js","sources":["../../src/react-native/useAppState.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { AppState } from 'react-native';\n\nexport function useAppState(): 'active' | 'background' | 'inactive' | 'unknown' | 'extension' {\n const [appState, setAppState] = useState(AppState.currentState);\n\n useEffect(() => {\n const subscription = AppState.addEventListener('change', (nextAppState) => {\n setAppState(nextAppState);\n });\n\n return () => {\n subscription.remove();\n };\n }, []);\n\n return appState;\n}\n"],"names":[],"mappings":";;AAGO,SAAS,cAA8E;AAC1F,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,SAAS,YAAY;AAE9D,YAAU,MAAM;AACZ,UAAM,eAAe,SAAS,iBAAiB,UAAU,CAAC,iBAAiB;AACvE,kBAAY,YAAY;AAAA,IAAA,CAC3B;AAED,WAAO,MAAM;AACT,mBAAa,OAAO;AAAA,IACxB;AAAA,EACJ,GAAG,EAAE;AAEE,SAAA;AACX;"}
@@ -1,3 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const Fullpage: FC<any>;
3
- //# sourceMappingURL=fullpage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fullpage.d.ts","sourceRoot":"","sources":["../../src/tailwind/fullpage.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,GAAG,CAQ5B,CAAC"}
@@ -1,14 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- const Fullpage = ({ divRef = null, className = "", children, ...props }) => /* @__PURE__ */ jsx(
3
- "div",
4
- {
5
- ref: divRef,
6
- ...props,
7
- className: `container h-screen flex flex-col justify-center items-center ${className}`,
8
- children
9
- }
10
- );
11
- export {
12
- Fullpage
13
- };
14
- //# sourceMappingURL=fullpage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fullpage.js","sources":["../../src/tailwind/fullpage.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport const Fullpage: FC<any> = ({ divRef = null, className = '', children, ...props }) => (\n <div\n ref={divRef}\n {...props}\n className={`container h-screen flex flex-col justify-center items-center ${className}`}\n >\n {children}\n </div>\n);\n"],"names":[],"mappings":";AAEa,MAAA,WAAoB,CAAC,EAAE,SAAS,MAAM,YAAY,IAAI,UAAU,GAAG,MAAA,MAC5E;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,KAAK;AAAA,IACJ,GAAG;AAAA,IACJ,WAAW,gEAAgE,SAAS;AAAA,IAEnF;AAAA,EAAA;AACL;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,3 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const ResponsiveHelperTW: FC<any>;
3
- //# sourceMappingURL=responsiveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responsiveHelper.d.ts","sourceRoot":"","sources":["../../src/tailwind/responsiveHelper.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,GAAG,CAWtC,CAAC"}
@@ -1,16 +0,0 @@
1
- "use client";
2
- import { jsxs, jsx } from "react/jsx-runtime";
3
- const ResponsiveHelperTW = function ResponsiveHelperTW2() {
4
- return /* @__PURE__ */ jsxs("span", { className: "fixed bottom-0 right-2 z-30 leading-none text-xs", children: [
5
- /* @__PURE__ */ jsx("small", { className: "hidden xs:max-sm:block", children: "XS" }),
6
- /* @__PURE__ */ jsx("small", { className: "hidden sm:max-md:block", children: "SM" }),
7
- /* @__PURE__ */ jsx("small", { className: "hidden md:max-lg:block", children: "MD" }),
8
- /* @__PURE__ */ jsx("small", { className: "hidden lg:max-xl:block", children: "LG" }),
9
- /* @__PURE__ */ jsx("small", { className: "hidden xl:max-2xl:block", children: "XL" }),
10
- /* @__PURE__ */ jsx("small", { className: "hidden 2xl:block", children: "XXL" })
11
- ] });
12
- };
13
- export {
14
- ResponsiveHelperTW
15
- };
16
- //# sourceMappingURL=responsiveHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responsiveHelper.js","sources":["../../src/tailwind/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC } from 'react';\n\nexport const ResponsiveHelperTW: FC<any> = function ResponsiveHelperTW() {\n return (\n <span className=\"fixed bottom-0 right-2 z-30 leading-none text-xs\">\n <small className=\"hidden xs:max-sm:block\">XS</small>\n <small className=\"hidden sm:max-md:block\">SM</small>\n <small className=\"hidden md:max-lg:block\">MD</small>\n <small className=\"hidden lg:max-xl:block\">LG</small>\n <small className=\"hidden xl:max-2xl:block\">XL</small>\n <small className=\"hidden 2xl:block\">XXL</small>\n </span>\n );\n};\n"],"names":["ResponsiveHelperTW"],"mappings":";;AAIa,MAAA,qBAA8B,SAASA,sBAAqB;AAEjE,SAAA,qBAAC,QAAK,EAAA,WAAU,oDACZ,UAAA;AAAA,IAAC,oBAAA,SAAA,EAAM,WAAU,0BAAyB,UAAE,MAAA;AAAA,IAC3C,oBAAA,SAAA,EAAM,WAAU,0BAAyB,UAAE,MAAA;AAAA,IAC3C,oBAAA,SAAA,EAAM,WAAU,0BAAyB,UAAE,MAAA;AAAA,IAC3C,oBAAA,SAAA,EAAM,WAAU,0BAAyB,UAAE,MAAA;AAAA,IAC3C,oBAAA,SAAA,EAAM,WAAU,2BAA0B,UAAE,MAAA;AAAA,IAC5C,oBAAA,SAAA,EAAM,WAAU,oBAAmB,UAAG,MAAA,CAAA;AAAA,EAAA,GAC3C;AAER;"}
@@ -1,12 +0,0 @@
1
- import React, { FC } from 'react';
2
- import { Container, ContainerProps } from 'react-bootstrap';
3
- import { useBreakpoint } from './responsiveHelper';
4
-
5
- export const AdaptiveContainer: FC<ContainerProps> = function AdaptiveContainer({ children, ...props }) {
6
- const { isMobile } = useBreakpoint();
7
- return (
8
- <Container fluid={isMobile} {...props}>
9
- {children}
10
- </Container>
11
- );
12
- };
@@ -1,62 +0,0 @@
1
- import React, { cloneElement, useCallback, useState } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { fn } from '@storybook/test';
4
-
5
- import { Select, Control, Range, Checkbox } from './controls';
6
-
7
- const defaultOptions = { num: 1, bool: false, select: 'bar' };
8
-
9
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
10
- const meta: Meta<typeof Control> = {
11
- title: 'Bootstrap / Controls',
12
- parameters: {
13
- layout: 'centered',
14
- },
15
- tags: ['autodocs'],
16
- argTypes: {},
17
- args: { options: { ...defaultOptions }, setOptions: fn(), defaultOptions: { ...defaultOptions }, name: 'unused' },
18
- render: function Demo(args) {
19
- const [options, setOptionsRaw] = useState(args.options);
20
-
21
- const setOptions = useCallback(
22
- (options: any) =>
23
- setOptionsRaw((currentOptions) => {
24
- return { ...currentOptions, ...options };
25
- }),
26
- [],
27
- );
28
-
29
- const controlProps = { options, setOptions, defaultOptions };
30
-
31
- const { children, name, ...safeArgs } = args;
32
-
33
- return <div style={{ width: '300px' }}>{cloneElement(children as any, { ...safeArgs, ...controlProps })}</div>;
34
- },
35
- };
36
-
37
- export default meta;
38
-
39
- type Story = StoryObj<typeof meta>;
40
-
41
- export const RangeControl: Story = {
42
- args: {
43
- children: <Range name="Num" min={0} max={1} />,
44
- },
45
- };
46
-
47
- export const CheckboxControl: Story = {
48
- args: {
49
- children: <Checkbox name="Bool" />,
50
- },
51
- };
52
-
53
- export const SelectControl: Story = {
54
- args: {
55
- children: (
56
- <Select name="Select">
57
- <option value="foo">Foo</option>
58
- <option value="bar">Bar</option>
59
- </Select>
60
- ),
61
- },
62
- };
@@ -1,119 +0,0 @@
1
- import React, { HTMLInputTypeAttribute, memo, FC } from 'react';
2
-
3
- const lcFirst = (str: string) => str[0].toLowerCase() + str.substring(1, str.length);
4
-
5
- const toProperty = (str: string) => lcFirst(str).split(' ').join('');
6
-
7
- export interface ControlProps {
8
- value?: any;
9
- setValue?: (v: any) => void;
10
- defaultValue?: any;
11
- options?: { [key: string]: any };
12
- setOptions?: (v: { [key: string]: any }) => void;
13
- defaultOptions?: { [key: string]: any };
14
- name: string;
15
- children?: React.ReactNode;
16
- inputProps?: {
17
- type: HTMLInputTypeAttribute;
18
- property?: string;
19
- valueExtractor?: (e: any) => any;
20
- className?: string;
21
- } & any;
22
- hideValue?: boolean;
23
- }
24
-
25
- export type LabelProps = Pick<ControlProps, 'name' | 'value' | 'defaultValue'> & { reset: () => void };
26
-
27
- export const Label: FC<LabelProps> = memo(function Label({ name, reset, value, defaultValue }) {
28
- return (
29
- <label className="flex-grow-1 mb-0 d-flex align-items-center justify-content-start gap-2">
30
- {name}
31
- {value !== defaultValue && (
32
- <>
33
- <a href="javascript: void(0)" onClick={reset}>
34
- <small>reset</small>
35
- </a>
36
- </>
37
- )}
38
- </label>
39
- );
40
- });
41
-
42
- export const Control: FC<ControlProps> = memo(function Control({
43
- value = null,
44
- setValue,
45
- defaultValue = null,
46
- options = {},
47
- setOptions,
48
- defaultOptions = {},
49
- name,
50
- inputProps: { Tag = 'input', property = 'value', valueExtractor = (e: any) => e.target.value, ...inputProps } = {},
51
- hideValue = false,
52
- children,
53
- }) {
54
- const prop = toProperty(name);
55
-
56
- defaultValue = defaultValue || defaultOptions[prop];
57
- value = value || options?.[prop];
58
- setValue = setValue || ((v) => setOptions?.({ [prop]: v }));
59
-
60
- const reset = () => setValue(defaultValue);
61
-
62
- return (
63
- <div className="d-flex align-items-center gap-2">
64
- <Label name={name} reset={reset} value={value} defaultValue={defaultValue} />
65
- <Tag
66
- {...inputProps}
67
- {...{ [property]: value || '' }} // null is needed to make it always controlled
68
- className={`${value === defaultValue ? 'opacity-75' : ''} ${inputProps.className}`}
69
- onChange={(e: Event) => setValue(valueExtractor(e))}
70
- >
71
- {children}
72
- </Tag>
73
- {!hideValue && (
74
- <span onDoubleClick={reset} className="text-start" style={{ width: '20px' }}>
75
- {value}
76
- </span>
77
- )}
78
- </div>
79
- );
80
- });
81
-
82
- export interface RangeProps extends ControlProps {
83
- min: number;
84
- max: number;
85
- step?: number;
86
- }
87
-
88
- export const Range: FC<RangeProps> = memo(function Range({ min, max, step = 0.1, ...props }) {
89
- return (
90
- <Control
91
- inputProps={{
92
- type: 'range',
93
- min,
94
- max,
95
- step,
96
- className: 'form-control-range',
97
- valueExtractor: (e: any) => parseFloat(e.target.value),
98
- }}
99
- {...props}
100
- />
101
- );
102
- });
103
-
104
- export const Checkbox: FC<ControlProps> = memo(function Checkbox(props) {
105
- return (
106
- <Control
107
- inputProps={{ type: 'checkbox', property: 'checked', valueExtractor: (e: any) => e.target.checked }}
108
- {...props}
109
- />
110
- );
111
- });
112
-
113
- export const Select: FC<ControlProps> = memo(function Select({ children, ...props }) {
114
- return (
115
- <Control inputProps={{ Tag: 'select', className: 'form-select' }} {...props} hideValue={true}>
116
- {children}
117
- </Control>
118
- );
119
- });
@@ -1,34 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { fn } from '@storybook/test';
3
-
4
- import { ErrorAlert } from './error';
5
-
6
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
7
- const meta: Meta<typeof ErrorAlert> = {
8
- title: 'Bootstrap / ErrorAlert',
9
- component: ErrorAlert,
10
- parameters: {
11
- layout: 'centered',
12
- },
13
- tags: ['autodocs'],
14
- argTypes: {
15
- // backgroundColor: { control: 'color' },
16
- children: { control: 'text' },
17
- },
18
- args: { onRetry: fn() },
19
- };
20
-
21
- export default meta;
22
- type Story = StoryObj<typeof meta>;
23
-
24
- export const String: Story = {
25
- args: {
26
- children: 'An error occurred',
27
- },
28
- };
29
-
30
- export const ErrorObject: Story = {
31
- args: {
32
- children: new Error('An error occurred') as any,
33
- },
34
- };
@@ -1,37 +0,0 @@
1
- 'use client';
2
-
3
- import React, { FC } from 'react';
4
- import { Alert, AlertProps, Button, ButtonProps } from 'react-bootstrap';
5
-
6
- export type ErrorAlertProps = {
7
- children?: Error | string | any;
8
- onRetry?: () => any;
9
- buttonProps?: ButtonProps;
10
- };
11
-
12
- //TODO Create MUI-specific?
13
- export const ErrorAlert: FC<ErrorAlertProps> = function ErrorAlert({ onRetry, children, buttonProps, ...props }) {
14
- if (!children) return null;
15
-
16
- return (
17
- <Alert variant="danger" {...props}>
18
- <div>{children.message || children.toString()}</div>
19
- {onRetry && (
20
- <div>
21
- <Button
22
- variant="link"
23
- className="alert-link"
24
- {...buttonProps}
25
- onClick={(e) => {
26
- e.preventDefault();
27
- e.stopPropagation();
28
- onRetry();
29
- }}
30
- >
31
- Retry
32
- </Button>
33
- </div>
34
- )}
35
- </Alert>
36
- );
37
- };
@@ -1,42 +0,0 @@
1
- import React from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { fn } from '@storybook/test';
4
-
5
- import { FieldGroup } from './field';
6
- import { FormControl } from 'react-bootstrap';
7
-
8
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
9
- const meta: Meta<typeof FieldGroup> = {
10
- title: 'Bootstrap / FieldGroup',
11
- component: FieldGroup,
12
- parameters: {
13
- layout: 'centered',
14
- },
15
- tags: ['autodocs'],
16
- argTypes: {
17
- text: { control: 'text' },
18
- label: { control: 'text' },
19
- horizontal: { control: 'check' },
20
- },
21
- args: { onClick: fn() },
22
- };
23
-
24
- export default meta;
25
-
26
- type Story = StoryObj<typeof meta>;
27
-
28
- export const Vertical: Story = {
29
- args: {
30
- label: 'Label',
31
- children: <FormControl placeholder="Input" />,
32
- text: 'Text',
33
- },
34
- };
35
-
36
- export const Horizontal: Story = {
37
- args: {
38
- label: 'Label',
39
- children: <FormControl placeholder="Input" />,
40
- horizontal: true,
41
- },
42
- };